#ifndef __SCSELECT_H #define __SCSELECT_H #ifndef __MASK_H #include #endif #ifndef __RELATION_H #include #endif #ifndef __SHEET_H #include #endif #ifndef __SCSELMSK_H #include "scselmsk.h" #endif class TCursor_sheet_recno : public TCursor_sheet { TBit_array _recnos; protected: virtual bool on_key(KEY k); public: TCursor_sheet_recno(TCursor * cursor, const char* fields, const char * title, const char * head, byte buttons = 0); virtual ~TCursor_sheet_recno() {} bool rec_checked(TRecnotype n) { return _recnos[n]; } void rec_check(TRecnotype n, bool on = TRUE) ; void rec_uncheck(TRecnotype n) { rec_check(n,FALSE); } }; 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_recno* _cli_sh_k1; TCursor_sheet_recno* _cli_sh_k2; TCursor_sheet_recno* _for_sh_k1; TCursor_sheet_recno* _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_recno& cur_sheet(); char get_who() const { return _who; } int get_key() const { return _key; } TSelection_mask(const char* name); virtual ~TSelection_mask(); }; #endif