campo-sirio/sc/scselect.h

69 lines
1.5 KiB
C
Raw Normal View History

#ifndef __SCSELECT_H
#define __SCSELECT_H
#ifndef __MASK_H
#include <mask.h>
#endif
#ifndef __RELATION_H
#include <relation.h>
#endif
#ifndef __SHEET_H
#include <sheet.h>
#endif
#ifndef __SCSELMSK_H
#include "scselmsk.h"
#endif
class TSelection_mask : public TMask
{
TRelation* _clifo_rel;
TCursor* _cli_cur_k1;
TCursor* _cli_cur_k2;
TCursor* _for_cur_k1;
TCursor* _for_cur_k2;
TCursor_sheet* _cli_sh_k1;
TCursor_sheet* _cli_sh_k2;
TCursor_sheet* _for_sh_k1;
TCursor_sheet* _for_sh_k2;
char _who;
int _key;
protected: // TMask
virtual void set_handler(short fld_id, CONTROL_HANDLER handler);
protected:
void select_clifo_range(long from, long to);
void set_clifo_limits();
void set_who(char w) { _who = w; }
void set_key (int k) { _key = k; }
virtual void reset_sheets();
// handlers
static bool bfrom_handler(TMask_field& f, KEY k);
static bool bto_handler(TMask_field& f, KEY k);
static bool ffrom_handler(TMask_field& f, KEY k);
static bool fto_handler(TMask_field& f, KEY k);
static bool breset_handler(TMask_field& f, KEY k);
static bool bselect_handler(TMask_field& f, KEY k);
static bool rclifo_handler(TMask_field& f, KEY k);
static bool rsortcf_handler(TMask_field& f, KEY k);
public:
virtual TCursor_sheet& cur_sheet();
char get_who() const { return _who; }
int get_key() const { return _key; }
TSelection_mask(const char* name);
virtual ~TSelection_mask();
};
#endif