diff --git a/include/assoc.h b/include/assoc.h index a18ae91e2..91e76c155 100755 --- a/include/assoc.h +++ b/include/assoc.h @@ -7,8 +7,7 @@ // @doc EXTERNAL // -// @class THash_object | Classe per la definizione degli elementi di una tabella -hash. Ha come classe friend la classe +// @class THash_object | Classe per la definizione degli elementi di una tabella hash. // // @base public | TObject class THash_object : public TObject diff --git a/include/maskfld.h b/include/maskfld.h index b5bbd47f7..94e11e7ba 100755 --- a/include/maskfld.h +++ b/include/maskfld.h @@ -1,581 +1,581 @@ -/* $Id: maskfld.h,v 1.28 1995-05-10 15:39:56 guy Exp $ */ -#ifndef __MASKFLD_H -#define __MASKFLD_H - -#ifndef __REAL_H -#include -#endif - -#ifndef __SCANNER_H -#include -#endif - -class TMask_field; - -class TRelation; // __RELATION_H -class TCursor; -class TFieldref; -class TArray_sheet; // __SHEET_H - -// @T -typedef bool (*CONTROL_HANDLER)(TMask_field& field, KEY key); -// @END - -enum CheckType { CHECK_NONE, CHECK_NORMAL, CHECK_REQUIRED }; -enum CheckTime { RUNNING_CHECK, STARTING_CHECK, FINAL_CHECK }; - -// @C -// Classe TMask_field : public TObject -// @END - -class TMask_field : public TObject -{ - // @DPRIV - friend class TMask; - - TMask* _mask; // The mask the control belongs to - - TString _help; // Help message - TFieldref* _field; // Corresponding field on the file - TBit_array _keys; // The keys the field belongs to - TBit_array _groups; // The groups the field belongs to - - // nuovo - TToken_string _userdata; // User Data - -protected: - // @DPROT - static int _x, _y; // Coordinate of the control - static int _width; // Size of the control - static TString80 _prompt; - CONTROL_HANDLER _handler; - - int _size; // Max length of the string - - WINDOW _win; // Window of the control (not its parent!) - WINDOW _promptwin; // Prompt of the control - short _dlg; // Identifier of the control - - int _validate_func; // Number of validation function - TArray _validate_parms; // Parameters for validation function - TArray _message; // Messages to send on modify - - struct TField_Flags - { - bool automagic : 1; - bool dirty : 2; // Modified during run ? - bool enabled : 1; // Is editable - bool enable_default : 1; - bool firm : 1; // Is the current firm ? - bool focusdirty : 1; // Modified during focus ? - bool ghost : 1; - bool password : 1; - bool persistent : 1; - bool rightjust : 1; - bool roman : 1; // Is a Roman number ? - bool shown : 1; // Is visible - bool show_default : 1; - bool trim : 1; // Trim the string - bool uppercase : 1; - bool exchange : 1; // Value exchange - bool zerofilled : 1; - - TField_Flags(); - char update(const char*); - } _flags; - - void construct(TScanner& scanner, WINDOW parent); - void construct(short id, const char* prompt, int x, int y, int len, - WINDOW parent, const char* flags = "", int width = 0); - - virtual WINDOW win() const { return _win; } - - WINDOW wincreate(WIN_TYPE ct, short dx, short dy, - const char* title, WINDOW parent, long flags); - int create_prompt(WINDOW parent, int width = 0, int heigth = 1); - - long default_flags() const; - - virtual void parse_head(TScanner& scanner); - virtual bool parse_item(TScanner& scanner); - - virtual void create(WINDOW parent); - virtual void destroy(); - virtual void highlight() const; - - virtual const char* get_window_data() const; - virtual void set_window_data(const char* data); - virtual void set_field_data(const char* data); - virtual const char* get_field_data() const; - virtual void exchange(bool show_value, const real& n) {} - - bool do_message(int n); - -public: - // @FPUB - short atodlg(const char* s) const; - - WINDOW parent() const; - short dlg() const { return _dlg; } - - virtual bool ok() const; - - bool dirty() const { return _flags.dirty; } - bool focusdirty() const { return _flags.focusdirty; } - void set_focusdirty(bool d = TRUE) { _flags.focusdirty = d; } - void set_dirty(bool d = TRUE); - void set_justify(bool r) { _flags.rightjust = r; } - - virtual const char* class_name() const; - virtual word class_id() const; - - int size() const { return _size; } - - bool roman() const { return _flags.roman; } - bool automagic() const { return _flags.automagic; } - bool ghost() const { return _flags.ghost; } - bool exchangeable() const { return _flags.exchange; } - - virtual bool has_check() const { return FALSE;} - virtual bool has_query() const { return FALSE;} - virtual bool has_message() const { return _message.items() > 0; } - - virtual CheckType check_type() const { return CHECK_NONE; } - bool required() const { return check_type() == CHECK_REQUIRED; } - virtual bool check(CheckTime = RUNNING_CHECK) { return TRUE;} - - virtual void reset(); - - virtual void enable(bool on = TRUE); - void disable() { enable(FALSE); } - bool enabled() const { return _flags.enabled; } - void enable_default(); - bool enabled_default() const { return _flags.enable_default; } - - virtual void show(bool on = TRUE); - void hide() { show(FALSE); } - bool shown() const { return _flags.shown; } - void show_default(); - - bool active() const; // Is visible and enabled? - - void set_handler(CONTROL_HANDLER handler) { _handler = handler; } - - bool is_edit() const; - bool to_check(KEY k, bool checkrun = FALSE) const; - - virtual bool on_hit(); - virtual bool on_key(KEY key); - virtual bool test_focus_change(); - - void set(const char* s); - TString& get() const; - - TToken_string& custom_data() { return _userdata; }; - - virtual const char* picture_data(const char* data, bool video); - virtual const char* warning() { return "";} - - virtual bool autoload(const TRelation* r = NULL); - bool autosave(TRelation* r = NULL) const; - - void undo(); - - const char* prompt() const; - void set_prompt(const char* p); - - bool in_key(byte key) const { return _keys[key]; } - void set_key(byte key) { _keys.set(long(key)); _keys.set(0L);} - word last_key() const; - - bool in_group(byte group) const { return _groups[group]; } - void set_group(byte group) { _groups.set(long(group)); _groups.set(0L);} - - const TFieldref* field() const { return _field; } - - void set_focus() const; - void send_key(KEY k, short to); - - // set focus, message-box, set focus - bool message_box(const char* fmt, ...) const; - bool warning_box(const char* fmt, ...) const; - bool error_box(const char* fmt, ...) const; - bool yesno_box(const char* fmt, ...) const; - KEY yesnocancel_box(const char* fmt, ...) const; - - TMask& mask() const { return *_mask; } - TMask_field(TMask* mask); - virtual ~TMask_field(); -}; - - -// @C -// Classe TEdit_field : public TMask_field -// -// @END - -class TEdit_field : public TMask_field -{ - friend class TBrowse; - friend class TList_sheet; - friend class TBrowse_sheet; - -protected: - // @DPROT - TString256 _str; - TString16 _picture; - TString _warning; - CheckType _check; // Accettabilita' di valori nulli - bool _forced; - bool _check_enabled; // Abilitato - - TBrowse* _browse; - TList_sheet* _sheet; - WINDOW _buttonwin; - - const TBrowse* get_browse(TScanner& scanner) const; - - virtual word class_id() const; - virtual void parse_head(TScanner& scanner); - virtual bool parse_item(TScanner& scanner); - - virtual void create(WINDOW parent); - virtual void destroy(); - - bool validate(KEY k); - - virtual void set_window_data(const char* data); - virtual void set_field_data(const char* data); - virtual const char* get_field_data() const; - bool default_error_box() const; - -public: - // @FPUB - virtual bool on_hit(); - virtual bool on_key(KEY key); - virtual bool has_check() const; - virtual bool has_query() const { return _browse || _sheet;} - virtual const char* picture_data(const char* data, bool video); - virtual const char * warning() { return _warning;} - virtual void show(bool on = TRUE); - virtual void enable(bool on = TRUE); - virtual CheckType check_type() const { return _check; } - void check_type(CheckType c) { _check = c; } - - bool forced() const { return _forced;} - virtual bool check(CheckTime = RUNNING_CHECK); - TBrowse* browse() const { return _browse;} - TList_sheet* sheet() const { return _sheet;} - void enable_check(bool on = TRUE) ; - bool check_enabled() const { return _check_enabled;} - - const char* format(const char* data); - const char* picture() const { return _picture; } - - TEdit_field(TMask* mask); - virtual ~TEdit_field(); -}; - - -/////////////////////////////////////////////////////////// -// TBrowse -/////////////////////////////////////////////////////////// - -class TBrowse -{ - TEdit_field* _fld; // The field owning the sheet - TRelation* _relation; // Main relation - TCursor* _cursor; // Cursor on the relation - TString _insert; - TString _filter; - long _rec; - bool _secondary; - bool _checked; - - TToken_string _head, _items; - TToken_string _inp_id, _inp_fn; - TToken_string _out_id, _out_fn; - -protected: - void do_output(CheckTime = RUNNING_CHECK); - void do_clear(); - bool do_insert(); - - TMask_field& field(short n) const; - TToken_string& create_siblings(TToken_string& siblings); - -public: - int inputs(); - int do_input(bool filter = FALSE); // Serve ai TCursor_sheet - - TBrowse(TEdit_field* f, TRelation* r, int key = 1, const char* filter = ""); - TBrowse(TEdit_field* f, TCursor* c); - ~TBrowse(); - - void parse_join(TScanner& scanner); - void parse_input(TScanner& scanner); - void parse_display(TScanner& scanner); - void parse_output(TScanner& scanner); - void parse_insert(TScanner& scanner); - bool parse_copy(const TString& what, const TBrowse& b); - - void set_insert(const char* s) { _insert = s;} - const TString& get_insert() const { return _insert;} - const TString& get_filter() const { return _filter;} - - TEdit_field& field() const { return *_fld; } - - bool check(CheckTime = RUNNING_CHECK); - bool empty_check(); - const TToken_string& head() const { return _head;} - const TToken_string& items() const { return _items;} - TCursor* cursor() const { return _cursor;} - bool checked() const { return _checked;} - bool secondary() const { return _secondary;} - - KEY run(); -}; - -/////////////////////////////////////////////////////////// -// TList_sheet -/////////////////////////////////////////////////////////// - -class TList_sheet -{ - TEdit_field* _fld; // The field owning the sheet - TArray_sheet* _sheet; // sheet with data; - int _row; - - TToken_string _inp_id; - TToken_string _out_id; - -protected: - int do_input(); - void do_output(CheckTime = RUNNING_CHECK); - bool do_insert(); - TMask_field& field(short id) const; - -public: - TList_sheet(TEdit_field* f, const char* caption, const char* head); - ~TList_sheet(); - - void parse_input(TScanner& scanner); - void read_item(TScanner& scanner); - void parse_output(TScanner& scanner); - TArray_sheet* sheet() { return _sheet; } - TEdit_field& field() const { return *_fld; } - - bool check(CheckTime = RUNNING_CHECK); - - KEY run(); -}; - -// @C -// class TReal_field : public TEdit_field -// @END - -class TReal_field : public TEdit_field -{ - int _decimals; - -protected: - // @FPROT - virtual word class_id() const; - - virtual const char* get_window_data() const; - virtual void set_window_data(const char* data); - virtual void exchange(bool show_value, const real& n); - - virtual void create(WINDOW parent); - virtual void parse_head(TScanner& scanner); - virtual bool on_key(KEY key); - virtual bool autoload(const TRelation* r); - -public: - // @FPUB - - void set_decimals(int d); // Set precision & picture - int decimals() const { return _decimals; } // Get precision - - TReal_field(TMask* mask); -}; - - -// @C -// class TDate_field : public TEdit_field -//@END - -class TDate_field : public TEdit_field -{ -protected: - // @FPROT - const char* format_data(const char* data,bool* changed=NULL); - - virtual word class_id() const; - virtual void create(WINDOW parent); - virtual bool on_key(KEY key); - virtual const char* get_window_data() const; - virtual void set_window_data(const char* data); - virtual const char* picture_data(const char* data, bool video); - -public: - // @FPUB - void parse_head(TScanner& scanner); - TDate_field(TMask* mask); -}; - - -// @C -// class TBoolean_field : public TMask_field -// @END - -class TBoolean_field : public TMask_field -{ -protected: - // @DPROT - bool _on; - - virtual word class_id() const; - - virtual void create(WINDOW parent); - virtual const char* get_window_data() const; - virtual void set_window_data(const char* data); - virtual void set_field_data(const char* data = NULL); - virtual const char* get_field_data() const; - virtual bool parse_item(TScanner& scanner); - virtual void enable(bool on); - virtual bool on_hit(); - virtual bool on_key(KEY key); - -public: - // @FPUB - TBoolean_field(TMask* mask); -}; - - -// @C -// class TList_field : public TMask_field -// @END - -class TList_field : public TMask_field -{ - // @FPRIV - void add_list(); - -protected: - // @FPROT - TToken_string _values; - TToken_string _codes; - TString _str; - - virtual word class_id() const; - - virtual void set_window_data(const char* data); - virtual const char* get_window_data() const; - virtual void set_field_data(const char* data = NULL); - virtual const char* get_field_data() const; - - virtual void create(WINDOW parent); - - virtual void current(int n); - virtual int current() const; - - int str2curr(const char* data); - virtual bool on_hit(); - virtual bool on_key(KEY key); - virtual void read_item(TScanner& scanner); - - virtual void parse_head(TScanner& scanner); - virtual bool parse_item(TScanner& scanner); - -public: - // @FPUB - TList_field(TMask* mask); - virtual void replace_items(const char* codes, const char* values); - virtual void add_item(const char* code_value); - virtual void delete_item(const char* code); - int items() const; -}; - - -// @C -// class TRadio_field : public TList_field -// @END - -class TRadio_field : public TList_field -{ - enum { MAX_RADIO = 8 }; - - // @FPRIV - int _nitems; - int _active_item; - WINDOW _radio_ctl_win[MAX_RADIO]; - -protected: - // @FPROT - virtual word class_id() const; - virtual void create(WINDOW parent); - virtual void destroy(); - virtual void enable(bool on); - virtual void show(bool on); - - virtual void current(int n); - virtual int current() const; - WINDOW win() const { return _radio_ctl_win[_active_item]; } - -public: - // @FPUB - TRadio_field(TMask* mask); - - void check_radiobutton(WINDOW checked); - bool move_focus(int d); -}; - - - -// @C -// class TButton_field : public TMask_field -// @END - -class TButton_field : public TMask_field -{ - KEY _virtual_key, _exit_key; - -protected: - // @FPROT - virtual word class_id() const; - virtual void create(WINDOW parent); - - void parse_head(TScanner& scanner); - bool parse_item(TScanner& scanner); - virtual void enable(bool); - virtual void show(bool); - virtual bool on_key(KEY key); - -public: - // @FPUB - TButton_field(TMask* mask); - KEY virtual_key() const { return _virtual_key; } - KEY exit_key() const { return _exit_key; } -}; - - -// @C -// class TGroup_field : public TMask_field -// @END - -class TGroup_field : public TMask_field -{ -protected: - // @DPROT - virtual void parse_head(TScanner& scanner); - virtual void create(WINDOW parent); - virtual void set_window_data(const char* data); - virtual void set_field_data(const char* data); - -public: - // @FPUB - TGroup_field(TMask* mask); -}; - -#endif // __MASKFLD_H +/* $Id: maskfld.h,v 1.29 1995-05-10 16:12:43 guy Exp $ */ +#ifndef __MASKFLD_H +#define __MASKFLD_H + +#ifndef __REAL_H +#include +#endif + +#ifndef __SCANNER_H +#include +#endif + +class TMask_field; + +class TRelation; // __RELATION_H +class TCursor; +class TFieldref; +class TArray_sheet; // __SHEET_H + +// @T +typedef bool (*CONTROL_HANDLER)(TMask_field& field, KEY key); +// @END + +enum CheckType { CHECK_NONE, CHECK_NORMAL, CHECK_REQUIRED }; +enum CheckTime { RUNNING_CHECK, STARTING_CHECK, FINAL_CHECK }; + +// @C +// Classe TMask_field : public TObject +// @END + +class TMask_field : public TObject +{ + // @DPRIV + friend class TMask; + + TMask* _mask; // The mask the control belongs to + + TString _help; // Help message + TFieldref* _field; // Corresponding field on the file + TBit_array _keys; // The keys the field belongs to + TBit_array _groups; // The groups the field belongs to + + // nuovo + TToken_string _userdata; // User Data + +protected: + // @DPROT + static int _x, _y; // Coordinate of the control + static int _width; // Size of the control + static TString80 _prompt; + CONTROL_HANDLER _handler; + + int _size; // Max length of the string + + WINDOW _win; // Window of the control (not its parent!) + WINDOW _promptwin; // Prompt of the control + short _dlg; // Identifier of the control + + int _validate_func; // Number of validation function + TArray _validate_parms; // Parameters for validation function + TArray _message; // Messages to send on modify + + struct TField_Flags + { + bool automagic : 1; + bool dirty : 2; // Modified during run ? + bool enabled : 1; // Is editable + bool enable_default : 1; + bool firm : 1; // Is the current firm ? + bool focusdirty : 1; // Modified during focus ? + bool ghost : 1; + bool password : 1; + bool persistent : 1; + bool rightjust : 1; + bool roman : 1; // Is a Roman number ? + bool shown : 1; // Is visible + bool show_default : 1; + bool trim : 1; // Trim the string + bool uppercase : 1; + bool exchange : 1; // Value exchange + bool zerofilled : 1; + + TField_Flags(); + char update(const char*); + } _flags; + + void construct(TScanner& scanner, WINDOW parent); + void construct(short id, const char* prompt, int x, int y, int len, + WINDOW parent, const char* flags = "", int width = 0); + + virtual WINDOW win() const { return _win; } + + WINDOW wincreate(WIN_TYPE ct, short dx, short dy, + const char* title, WINDOW parent, long flags); + int create_prompt(WINDOW parent, int width = 0, int heigth = 1); + + long default_flags() const; + + virtual void parse_head(TScanner& scanner); + virtual bool parse_item(TScanner& scanner); + + virtual void create(WINDOW parent); + virtual void destroy(); + virtual void highlight() const; + + virtual const char* get_window_data() const; + virtual void set_window_data(const char* data); + virtual void set_field_data(const char* data); + virtual const char* get_field_data() const; + virtual void exchange(bool show_value, const real& n) {} + + bool do_message(int n); + +public: + // @FPUB + short atodlg(const char* s) const; + + WINDOW parent() const; + short dlg() const { return _dlg; } + + virtual bool ok() const; + + bool dirty() const { return _flags.dirty; } + bool focusdirty() const { return _flags.focusdirty; } + void set_focusdirty(bool d = TRUE) { _flags.focusdirty = d; } + void set_dirty(bool d = TRUE); + void set_justify(bool r) { _flags.rightjust = r; } + + virtual const char* class_name() const; + virtual word class_id() const; + + int size() const { return _size; } + + bool roman() const { return _flags.roman; } + bool automagic() const { return _flags.automagic; } + bool ghost() const { return _flags.ghost; } + bool exchangeable() const { return _flags.exchange; } + + virtual bool has_check() const { return FALSE;} + virtual bool has_query() const { return FALSE;} + virtual bool has_message() const { return _message.items() > 0; } + + virtual CheckType check_type() const { return CHECK_NONE; } + bool required() const { return check_type() == CHECK_REQUIRED; } + virtual bool check(CheckTime = RUNNING_CHECK) { return TRUE;} + + virtual void reset(); + + virtual void enable(bool on = TRUE); + void disable() { enable(FALSE); } + bool enabled() const { return _flags.enabled; } + void enable_default(); + bool enabled_default() const { return _flags.enable_default; } + + virtual void show(bool on = TRUE); + void hide() { show(FALSE); } + bool shown() const { return _flags.shown; } + void show_default(); + + bool active() const; // Is visible and enabled? + + void set_handler(CONTROL_HANDLER handler) { _handler = handler; } + + bool is_edit() const; + bool to_check(KEY k, bool checkrun = FALSE) const; + + virtual bool on_hit(); + virtual bool on_key(KEY key); + virtual bool test_focus_change(); + + void set(const char* s); + TString& get() const; + + TToken_string& custom_data() { return _userdata; }; + + virtual const char* picture_data(const char* data, bool video); + virtual const char* warning() { return "";} + + virtual bool autoload(const TRelation* r = NULL); + bool autosave(TRelation* r = NULL) const; + + void undo(); + + const char* prompt() const; + void set_prompt(const char* p); + + bool in_key(byte key) const { return _keys[key]; } + void set_key(byte key) { _keys.set(long(key)); _keys.set(0L);} + word last_key() const; + + bool in_group(byte group) const { return _groups[group]; } + void set_group(byte group) { _groups.set(long(group)); _groups.set(0L);} + + const TFieldref* field() const { return _field; } + + void set_focus() const; + void send_key(KEY k, short to); + + // set focus, message-box, set focus + bool message_box(const char* fmt, ...) const; + bool warning_box(const char* fmt, ...) const; + bool error_box(const char* fmt, ...) const; + bool yesno_box(const char* fmt, ...) const; + KEY yesnocancel_box(const char* fmt, ...) const; + + TMask& mask() const { return *_mask; } + TMask_field(TMask* mask); + virtual ~TMask_field(); +}; + + +// @C +// Classe TEdit_field : public TMask_field +// +// @END + +class TEdit_field : public TMask_field +{ + friend class TBrowse; + friend class TList_sheet; + friend class TBrowse_sheet; + +protected: + // @DPROT + TString256 _str; + TString16 _picture; + TString _warning; + CheckType _check; // Accettabilita' di valori nulli + bool _forced; + bool _check_enabled; // Abilitato + + TBrowse* _browse; + TList_sheet* _sheet; + WINDOW _buttonwin; + + const TBrowse* get_browse(TScanner& scanner) const; + + virtual word class_id() const; + virtual void parse_head(TScanner& scanner); + virtual bool parse_item(TScanner& scanner); + + virtual void create(WINDOW parent); + virtual void destroy(); + + bool validate(KEY k); + + virtual void set_window_data(const char* data); + virtual void set_field_data(const char* data); + virtual const char* get_field_data() const; + bool default_error_box() const; + +public: + // @FPUB + virtual bool on_hit(); + virtual bool on_key(KEY key); + virtual bool has_check() const; + virtual bool has_query() const { return _browse || _sheet;} + virtual const char* picture_data(const char* data, bool video); + virtual const char * warning() { return _warning;} + virtual void show(bool on = TRUE); + virtual void enable(bool on = TRUE); + virtual CheckType check_type() const { return _check; } + void check_type(CheckType c) { _check = c; } + + bool forced() const { return _forced;} + virtual bool check(CheckTime = RUNNING_CHECK); + TBrowse* browse() const { return _browse;} + TList_sheet* sheet() const { return _sheet;} + void enable_check(bool on = TRUE) ; + bool check_enabled() const { return _check_enabled;} + + const char* format(const char* data); + const char* picture() const { return _picture; } + + TEdit_field(TMask* mask); + virtual ~TEdit_field(); +}; + + +/////////////////////////////////////////////////////////// +// TBrowse +/////////////////////////////////////////////////////////// + +class TBrowse +{ + TEdit_field* _fld; // The field owning the sheet + TRelation* _relation; // Main relation + TCursor* _cursor; // Cursor on the relation + TString _insert; + TString _filter; + long _rec; + bool _secondary; + bool _checked; + + TToken_string _head, _items; + TToken_string _inp_id, _inp_fn; + TToken_string _out_id, _out_fn; + +protected: + void do_output(CheckTime = RUNNING_CHECK); + void do_clear(); + bool do_insert(); + + TMask_field& field(short n) const; + TToken_string& create_siblings(TToken_string& siblings); + +public: + int inputs(); + int do_input(bool filter = FALSE); // Serve ai TCursor_sheet + + TBrowse(TEdit_field* f, TRelation* r, int key = 1, const char* filter = ""); + TBrowse(TEdit_field* f, TCursor* c); + ~TBrowse(); + + void parse_join(TScanner& scanner); + void parse_input(TScanner& scanner); + void parse_display(TScanner& scanner); + void parse_output(TScanner& scanner); + void parse_insert(TScanner& scanner); + bool parse_copy(const TString& what, const TBrowse& b); + + void set_insert(const char* s) { _insert = s;} + const TString& get_insert() const { return _insert;} + const TString& get_filter() const { return _filter;} + + TEdit_field& field() const { return *_fld; } + + bool check(CheckTime = RUNNING_CHECK); + bool empty_check(); + const TToken_string& head() const { return _head;} + const TToken_string& items() const { return _items;} + TCursor* cursor() const { return _cursor;} + bool checked() const { return _checked;} + bool secondary() const { return _secondary;} + + KEY run(); +}; + +/////////////////////////////////////////////////////////// +// TList_sheet +/////////////////////////////////////////////////////////// + +class TList_sheet +{ + TEdit_field* _fld; // The field owning the sheet + TArray_sheet* _sheet; // sheet with data; + int _row; + + TToken_string _inp_id; + TToken_string _out_id; + +protected: + int do_input(); + void do_output(CheckTime = RUNNING_CHECK); + bool do_insert(); + TMask_field& field(short id) const; + +public: + TList_sheet(TEdit_field* f, const char* caption, const char* head); + ~TList_sheet(); + + void parse_input(TScanner& scanner); + void read_item(TScanner& scanner); + void parse_output(TScanner& scanner); + TArray_sheet* sheet() { return _sheet; } + TEdit_field& field() const { return *_fld; } + + bool check(CheckTime = RUNNING_CHECK); + + KEY run(); +}; + +// @C +// class TReal_field : public TEdit_field +// @END + +class TReal_field : public TEdit_field +{ + int _decimals; + +protected: + // @FPROT + virtual word class_id() const; + + virtual const char* get_window_data() const; + virtual void set_window_data(const char* data); + virtual void exchange(bool show_value, const real& n); + + virtual void create(WINDOW parent); + virtual void parse_head(TScanner& scanner); + virtual bool on_key(KEY key); + virtual bool autoload(const TRelation* r); + +public: + // @FPUB + + void set_decimals(int d); // Set precision & picture + int decimals() const { return _decimals; } // Get precision + + TReal_field(TMask* mask); +}; + + +// @C +// class TDate_field : public TEdit_field +//@END + +class TDate_field : public TEdit_field +{ +protected: + // @FPROT + const char* format_data(const char* data,bool* changed=NULL); + + virtual word class_id() const; + virtual void create(WINDOW parent); + virtual bool on_key(KEY key); + virtual const char* get_window_data() const; + virtual void set_window_data(const char* data); + virtual const char* picture_data(const char* data, bool video); + +public: + // @FPUB + void parse_head(TScanner& scanner); + TDate_field(TMask* mask); +}; + + +// @C +// class TBoolean_field : public TMask_field +// @END + +class TBoolean_field : public TMask_field +{ +protected: + // @DPROT + bool _on; + + virtual word class_id() const; + + virtual void create(WINDOW parent); + virtual const char* get_window_data() const; + virtual void set_window_data(const char* data); + virtual void set_field_data(const char* data = NULL); + virtual const char* get_field_data() const; + virtual bool parse_item(TScanner& scanner); + virtual void enable(bool on); + virtual bool on_hit(); + virtual bool on_key(KEY key); + +public: + // @FPUB + TBoolean_field(TMask* mask); +}; + + +// @C +// class TList_field : public TMask_field +// @END + +class TList_field : public TMask_field +{ + // @FPRIV + void add_list(); + +protected: + // @FPROT + TToken_string _values; + TToken_string _codes; + TString _str; + + virtual word class_id() const; + + virtual void set_window_data(const char* data); + virtual const char* get_window_data() const; + virtual void set_field_data(const char* data = NULL); + virtual const char* get_field_data() const; + + virtual void create(WINDOW parent); + + virtual void current(int n); + virtual int current() const; + + int str2curr(const char* data); + virtual bool on_hit(); + virtual bool on_key(KEY key); + virtual void read_item(TScanner& scanner); + + virtual void parse_head(TScanner& scanner); + virtual bool parse_item(TScanner& scanner); + +public: + // @FPUB + TList_field(TMask* mask); + virtual void replace_items(const char* codes, const char* values); + virtual void add_item(const char* code_value); + virtual void delete_item(const char* code); + int items() const; +}; + + +// @C +// class TRadio_field : public TList_field +// @END + +class TRadio_field : public TList_field +{ + enum { MAX_RADIO = 8 }; + + // @FPRIV + int _nitems; + int _active_item; + WINDOW _radio_ctl_win[MAX_RADIO]; + +protected: + // @FPROT + virtual word class_id() const; + virtual void create(WINDOW parent); + virtual void destroy(); + virtual void enable(bool on); + virtual void show(bool on); + + virtual void current(int n); + virtual int current() const; + WINDOW win() const { return _radio_ctl_win[_active_item]; } + +public: + // @FPUB + TRadio_field(TMask* mask); + + void check_radiobutton(WINDOW checked); + bool move_focus(int d); +}; + + + +// @C +// class TButton_field : public TMask_field +// @END + +class TButton_field : public TMask_field +{ + KEY _virtual_key, _exit_key; + +protected: + // @FPROT + virtual word class_id() const; + virtual void create(WINDOW parent); + + void parse_head(TScanner& scanner); + bool parse_item(TScanner& scanner); + virtual void enable(bool); + virtual void show(bool); + virtual bool on_key(KEY key); + +public: + // @FPUB + TButton_field(TMask* mask); + KEY virtual_key() const { return _virtual_key; } + KEY exit_key() const { return _exit_key; } +}; + + +// @C +// class TGroup_field : public TMask_field +// @END + +class TGroup_field : public TMask_field +{ +protected: + // @DPROT + virtual void parse_head(TScanner& scanner); + virtual void create(WINDOW parent); + virtual void set_window_data(const char* data); + virtual void set_field_data(const char* data); + +public: + // @FPUB + TGroup_field(TMask* mask); +}; + +#endif // __MASKFLD_H diff --git a/include/printer.cpp b/include/printer.cpp index 5f91856bc..2638240bc 100755 --- a/include/printer.cpp +++ b/include/printer.cpp @@ -560,13 +560,13 @@ TPrintrow & TPrintrow::put(const char *str, int position, int len) } break; case 'B': - _currentstyle |= boldstyle; + _currentstyle = boldstyle; break; case 'I': - _currentstyle |= italicstyle; + _currentstyle = italicstyle; break; case 'U': - _currentstyle |= underlinedstyle; + _currentstyle = underlinedstyle; break; case 'R': _currentstyle = normalstyle; diff --git a/include/relapp.cpp b/include/relapp.cpp index 30a968bbd..145f59826 100755 --- a/include/relapp.cpp +++ b/include/relapp.cpp @@ -1,4 +1,4 @@ -// $Id: relapp.cpp,v 1.55 1995-05-10 08:57:48 alex Exp $ +// $Id: relapp.cpp,v 1.56 1995-05-10 16:12:51 guy Exp $ #include #include #include @@ -654,11 +654,10 @@ bool TRelation_application::save(bool check_dirty) if (!changed) { _mask->disable_starting_check(); - enable_query(); // Abilita chiave 1 per rinumerazione manuale + enable_query(); // Abilita chiave 1 per rinumerazione manuale } else changed_key = TRUE; - } } else changed = FALSE;