Files correlati : Ricompilazione Demo : [ ] Commento : Riportate le patch fino alla 2.1 490 Controllare velib.h. il merge era impossibile Controllare modaut.h e campo.aut. pack DT Contabilità industriale conflittano git-svn-id: svn://10.65.10.50/trunk@13668 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			490 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			490 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef __MASK_H
 | |
| #define __MASK_H
 | |
| 
 | |
| #ifndef __WINDOW_H
 | |
| #include <window.h>
 | |
| #endif
 | |
| 
 | |
| #ifndef __MASKFLD_H
 | |
| #include <maskfld.h>
 | |
| #endif
 | |
| 
 | |
| class TSheet_field;
 | |
| class TCurrency;
 | |
| 
 | |
| // @doc EXTERNAL
 | |
| 
 | |
| // @type MASK_HANDLER | Prototipo funzione per gestire i tasti speciali all'interno di una maschera.
 | |
| typedef bool (*MASK_HANDLER)(TMask& mask, KEY key);
 | |
| 
 | |
| 
 | |
| // @doc EXTERNAL
 | |
| 
 | |
| // @enum Modalita' di utilizzo della maschera corrente
 | |
| enum TMaskmode {
 | |
|   NO_MODE,         // @emem Nessun modo
 | |
|   MODE_QUERY,      // @emem Modalita' di richiesta chiave
 | |
|   MODE_QUERYINS,   // @emem Modalita' di richiesta chiave e inserimento dati
 | |
|   MODE_INS ,       // @emem Modalita' di inserimento dati
 | |
|   MODE_MOD        // @emem Modalita' di modifca dati
 | |
| };
 | |
| 
 | |
| // @doc EXTERNAL
 | |
| 
 | |
| // @class TMask | Classe per la gestione delle maschere video
 | |
| //
 | |
| // @base public | TWindow
 | |
| class TMask : public TWindow
 | |
| {
 | |
|   // @author:(INTERNAL) Guido
 | |
| 
 | |
|   // @access Protected Member
 | |
|   protected:
 | |
|   // @ccost:(INTERNAL) MAX_PAGES | 16 | Massimo numero di pagine nella maschera
 | |
|   enum { MAX_PAGES = 16 };
 | |
| 
 | |
|   // @cmember Gestisce gli eventi della finestra
 | |
|   virtual void handler(WINDOW win, EVENT* ep);
 | |
| 
 | |
|   // @access:(INTERNAL) Private Member
 | |
|   private:
 | |
| 
 | |
|   // @cmember:(INTERNAL) Windows delle pagine
 | |
|   WINDOW _pagewin[MAX_PAGES+1];
 | |
|   
 | |
|   // @cmember:(INTERNAL) Numero della maschera all'interno del file sorgente
 | |
|   int _mask_num;
 | |
| 
 | |
|   // @cmember:(INTERNAL) Numero di pagine della maschera
 | |
|   int _pages;
 | |
|   // @cmember:(INTERNAL) Pagina corrente
 | |
|   int _page;
 | |
| 
 | |
|   // @cmember:(INTERNAL) Controlla le pagine abilitate
 | |
|   TBit_array _enabled;
 | |
|   // @cmember:(INTERNAL) Modalita' di utilizzo della maschera
 | |
|   int _mode;
 | |
|   // @cmember:(INTERNAL) Numero di campi della maschera
 | |
|   TArray _field;
 | |
| 
 | |
|   // @cmember:(INTERNAL) Primo controllo che deve ricevere il focus
 | |
|   int _first_focus;
 | |
| 
 | |
|   // @cmember:(INTERNAL) Numero del controllo con il focus
 | |
|   int _focus;
 | |
| 
 | |
|   // @cmember:(INTERNAL) Puntatore allo sheet che contiene la maschera (puo' essere NULL)
 | |
|   TSheet_field* _sheet;
 | |
| 
 | |
|   // @cmember:(INTERNAL) Handler per gestire i tasti speciali nelle maschere
 | |
|   MASK_HANDLER _handler;
 | |
| 
 | |
|   // @cmember:(INTERNAL) Nome del file sorgente contenente la maschera
 | |
|   TFilename _source_file;
 | |
|   // @cmember:(INTERNAL) Nome del file di salvataggio in cui sono scaricati i valori della maschera
 | |
|   TFilename _workfile;
 | |
|   // @cmember:(INTERNAL) Ultimo offset letto nel file di salvataggio
 | |
|   long _lastpos;
 | |
|   
 | |
|   // @cmember:(INTERNAL) Array per convertire da id a posizione
 | |
|   TPointer_array _position;
 | |
| 
 | |
|   // @cmember:(INTERNAL) Controlla se la maschera deve fare i controlli iniziali di validita' dei campi
 | |
|   bool _should_check;
 | |
| 
 | |
|   int _error_severity;
 | |
|   TString _error_message;
 | |
|   short _msg_field;
 | |
|   KEY   _msg_key;
 | |
| 
 | |
|   // @cmember:(INTERNAL) Tempo totale di caricamento della maschera
 | |
|   long _total_time;
 | |
|   // @cmember:(INTERNAL) Tempo di compilazione della maschera
 | |
|   long _build_time;
 | |
|   // @cmember:(INTERNAL) Tempo di inizializzazione della maschera
 | |
|   long _init_time;
 | |
| 
 | |
|   // @cmember:(INTERNAL) identificatore del campo da testare per l'autopremimento
 | |
|   short _test_fld;
 | |
|   // @cmember:(INTERNAL) posizione del campo che per ultimo ha testato l'autopremimento
 | |
|   int _last_test;
 | |
| 
 | |
|   // @access Protected Member
 | |
| protected:
 | |
|   TArray& fields_array() { return _field; }
 | |
|  
 | |
|   // @cmember Legge i controlli relativi ad un campo
 | |
|   void load_checks() const;
 | |
|   // @cmember Inizializza la maschera (Chiamata quando la maschera parte)
 | |
|   virtual void start_run();
 | |
| 
 | |
|   // @cmember Inizializza la maschera
 | |
|   void init_mask();
 | |
|   // @cmember Legge la pagina da file
 | |
|   WINDOW read_page(TScanner& scanner, bool toolbar = false);
 | |
|   WINDOW insert_page(const char* title, int where);
 | |
| 
 | |
|   // @cmember Aggiunge i tags ad una pagina
 | |
|   void add_tag_button(byte pag, TToken_string& tags, byte sel);
 | |
| 
 | |
|   // @cmember Aggiunge alla maschera tutti i bottoni per la navigazione tra le pagine
 | |
|   void add_tag_buttons(TToken_string& tags);
 | |
| 
 | |
|   // @cmember Ritorna il numero del primo campo attivo della pagina con finestra <p w>
 | |
|   int find_first_active(WINDOW w) const;
 | |
|   // @cmember Ritorna il numero della finestra padre del campo <p f>
 | |
|   int find_parent_page(const TMask_field& f) const;
 | |
|   // @cmember Esegue i check del campo corrente
 | |
|   bool check_current_field() const;
 | |
|   // @cmember Mostra la prossima/precedente pagina
 | |
|   virtual void next_page(int p);
 | |
|   // @cmember Cambia arbitrariamente il nome del file (uso molto raro)
 | |
|   void set_source_file(const char* name) { _source_file = name; }
 | |
| 
 | |
|   // @access Public Member
 | |
| public:
 | |
|   // @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
 | |
|   TMask(const char* filename, int num = 0, int max = MAX_PAGES);
 | |
|   // @cmember Costruttore (crea una maschera vuota con i parametri dati)
 | |
|   TMask(const char* title, int pages, int cols, int rows, int xpos = -1, int ypos = -1, WINDOW parent = NULL_WIN);
 | |
|   // @cmember Costruttore (crea una maschera vuota per leggerla con read_mask)
 | |
| 
 | |
|   TMask();
 | |
| 
 | |
|   // @cmember Distruttore
 | |
|   virtual ~TMask();
 | |
| 
 | |
|   // @cmember Imposta i bit di read_only
 | |
| 	void set_locking(TBit_array & read_only, TToken_string & fields, bool on = true);
 | |
|   // @cmember Legge la maschera da file
 | |
|   void read_mask(const char* name, int num, int max);
 | |
| 
 | |
|   // @cmember Legge il campo da file
 | |
|   virtual TMask_field* parse_field(TScanner& scanner);
 | |
| 
 | |
|   // Aggiunge un campo all'array _field
 | |
|   void add_field(TMask_field* f);
 | |
| 
 | |
|   // @cmember Ritorna l'identificatore della classe maschera
 | |
|   virtual word class_id() const;
 | |
| 
 | |
|   // @cmember Ritorna TRUE se la maschera deriva dalla classe <p c>
 | |
|   virtual bool is_kind_of(word c) const;
 | |
| 
 | |
|   // @cmember Ritorna il numero della pagina corrente
 | |
|   int curr_page() const { return _page; }
 | |
| 
 | |
|   // @cmember Ritorna la finestra della pagina corrente (Usare con attenzione)
 | |
|   WINDOW win() const
 | |
|   { return _page < 0 ? _pagewin[0] : _pagewin[_page]; }
 | |
| 
 | |
|   // @cmember Ritorna la finestra della pagina <p> (Usare con attenzione)
 | |
|   WINDOW win(int p) const
 | |
|   { return p < 0 ? toolwin() : _pagewin[p]; }
 | |
|   // @cmember Ritorna il nome del file contentente la maschera
 | |
|   const TFilename& source_file() const
 | |
|   { return _source_file; }
 | |
|   
 | |
|   // @cmember Ritorna il numero della maschera nel file (> 0 se spreadsheet)
 | |
|   int number() const 
 | |
|   { return _mask_num; }
 | |
| 
 | |
|   // @cmember Aggiunge alla maschera tutti i bottoni Pag. n
 | |
|   void add_default_tag_buttons();
 | |
| 
 | |
|   // @cmember Aggiunge runtime un campo testo alla maschera
 | |
|   TMask_field& add_static (short id, int page, const char* prompt, int x, int y, const char* flags = "");
 | |
|   // @cmember Aggiunge runtime un campo stringa alla maschera                                                       
 | |
|   TEdit_field& add_string (short id, int page, const char* prompt, int x, int y, int dim, const char* flags = "", int width = 0);
 | |
| 
 | |
|   // @cmember Aggiunge runtime un campo numerico alla maschera
 | |
|   TReal_field& add_number (short id, int page, const char* prompt, int x, int y, int dim,  const char* flags = "", int ndec = 0);
 | |
|     // @cmember Aggiunge runtime un campo importo alla maschera
 | |
|   TCurrency_field& add_currency (short id, int page, const char* prompt, int x, int y, int dim,  const char* flags = "", short driver = 0);
 | |
|   // @cmember Aggiunge runtime un campo data alla maschera
 | |
|   TDate_field& add_date (short id, int page, const char* prompt, int x, int y, const char* flags = "");
 | |
|   // @cmember Aggiunge runtime un campo bottone alla maschera
 | |
|   TButton_field& add_button (short id, int page, const char* prompt, int x, int y, int dx = 9, int dy = 1, const char* flags = "", short bmpup = 0, short bmpdn = 0);
 | |
|   // @cmember Aggiunge runtime un campo boolean alla maschera
 | |
|   TBoolean_field& add_boolean (short id, int page, const char* prompt, int x, int y, const char* flags = "");
 | |
|   TCheckbutton_field& add_checkbutton (short id, int page, const char* prompt, int x, int y, int dx = 9, int dy = 1, const char* flags = "", short bmpup = 0, short bmpdn = 0);
 | |
|   // @cmember Aggiunge runtime un campo radio button alla maschera
 | |
|   TRadio_field& add_radio(short id, int page, const char* prompt, int x, int y, int dx, const char* codes, const char* items, const char* flags = "");
 | |
|   // @cmember Aggiunge runtime un campo memo alla maschera
 | |
|   TMemo_field& add_memo (short id, int page, const char* prompt, int x, int y, int dx = 78, int dy = 4, const char* flags = "");
 | |
|   // @cmember Aggiunge runtime un campo zoom alla maschera
 | |
|   TZoom_field& add_zoom (short id, int page, const char* prompt, int x, int y, int dim, const char* flags = "", int width = 0);
 | |
|   // @cmember Aggiunge runtime un campo lista alla maschera
 | |
|   TList_field& add_list (short id, int page, const char* prompt, int x, int y, int dim, const char* flags = "", const char* codes = NULL, const char* items = NULL);
 | |
|     // @cmember Aggiunge runtime un campo albero
 | |
|   TTree_field& add_tree (short id, int page, int x, int y, int dx, int dy, const char* flags = "");
 | |
|   // @cmember Aggiunge runtime un group box alla maschera
 | |
|   TGroup_field& add_groupbox (short id, int page, const char* prompt, int x, int y, int dx = 78, int dy = 3, const char* flags = "");
 | |
| 
 | |
|   // @cmember Ritorna il numero di campi della maschera
 | |
|   int fields() const
 | |
|   { return _field.items(); }
 | |
|   // @cmember Ritorna il numero di sheet della maschera
 | |
|   int sheets() const;
 | |
| 
 | |
|   // @cmember Setta la modalita' di utilizzo della maschera
 | |
|   void set_mode(int m)
 | |
|   { _mode = m; }
 | |
|   // @cmember Ritorna la modalita' corrente di utilizzo della maschera
 | |
|   int mode() const
 | |
|   { return _mode; }
 | |
| 
 | |
|   // @cmember Setta la chiave da testare per l'autopremimento
 | |
|   void set_test_field(short id)
 | |
|   { if (_test_fld < 0) _test_fld = id; }
 | |
| 
 | |
|   void set_focus_field(short id);
 | |
|   virtual void notify_focus_field(short id);
 | |
| 
 | |
|   // @cmember Controlla i campi di una maschera (TRUE se tutti validi)
 | |
|   bool check_fields();
 | |
|   // @cmember Esegue il check e i messaggi sul campo <p fld_id> della maschera
 | |
|   virtual void check_field( short fld_id );
 | |
|   // @cmember Forza la chiusura della maschera
 | |
|   virtual bool stop_run(KEY key);
 | |
|   // @cmember Controlla se la maschera puo' essere chiusa (TRUE se puo' esserlo)
 | |
|   virtual bool can_be_closed() const;
 | |
| 
 | |
|   // @cmember Permette di aprire una maschera
 | |
|   virtual void open();
 | |
|   // @cmember Permette di chiudere una maschera
 | |
|   virtual void close();
 | |
|   // @cmember Permette di attivare/disattivare tutta la pagina
 | |
|   virtual void activate(bool on = TRUE);
 | |
| 
 | |
|   // @cmember Converte un identificatore di campo nella sua posizione
 | |
|   int id2pos(short id) const;
 | |
|   // @cmember Ritorna il campo i-esimo della maschera
 | |
|   TMask_field& fld(int i) const
 | |
|   { return (TMask_field&)_field[i]; }
 | |
|   // @cmember Ritorna il campo contraddistinto dall'identificatore passato
 | |
|   TMask_field& field(short id) const;
 | |
|   // @cmember Ritorna il campo corrispondente al FIELD fieldname
 | |
|   TMask_field* find_by_fieldname(const char* fieldname) const;
 | |
|   // @cmember Ritorna il campo di edit contraddistinto dall'identificatore passato
 | |
|   TEdit_field& efield(short id) const;
 | |
|   // @cmember Ritorna il campo listbox contraddistinto dall'identificatore passato
 | |
|   TList_field& lfield(short id) const;
 | |
|   // @cmember Ritorna il campo sheet contraddistinto dall'identificatore passato
 | |
|   TSheet_field& sfield(short id) const;
 | |
|   // @cmember Ritorna il campo tree contraddistinto dall'identificatore passato
 | |
|   TTree_field& tfield(short id) const;
 | |
| 
 | |
|   // @cmember Setta il campo con una stringa
 | |
|   virtual void set(short fld_id, const char* str, byte hit=0x0);
 | |
|   // @cmember Setta il campo con un reale
 | |
|   void set(short fld_id, const real& num, byte hit=0x0);
 | |
|   // @cmember Setta il campo con una data
 | |
|   void set(short fld_id, const TDate& day, byte hit=0x0);
 | |
|   // @cmember Setta il campo con un valore
 | |
|   void set(short fld_id, long num, byte hit=0x0);
 | |
|   // @cmember Setta il campo con un currency
 | |
|   void set(short fld_id, const TCurrency& num, byte hit=0x0);
 | |
|   // @cmember Setta una tutti i campi che hanno come FIELD <p fld_id>
 | |
|   void set(const char * fld_id, const char * str, byte hit=0x0);
 | |
|   // @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di stringa
 | |
|   
 | |
|   virtual const TString& get(short fld_id) const;
 | |
|   // @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di long
 | |
|   long get_long(short fld_id) const;
 | |
|   // @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di int
 | |
|   //              (chiama <mf TMask::get_long>)
 | |
|   int get_int(short fld_id) const
 | |
|   { return (int)get_long(fld_id); }
 | |
|   // @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di bool
 | |
|   bool get_bool(short fld_id) const;
 | |
|   // @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di real
 | |
|   real get_real(short fld_id) const;
 | |
|   // @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di data
 | |
|   TDate get_date(short fld_id) const;
 | |
|   // @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di currency
 | |
|   TCurrency& get_currency(short fld_id, TCurrency& curr) const;
 | |
| 
 | |
|   // @cmember Ritorna il contenuto del primo campo attivo campo che ha come FIELD <p fld_id>
 | |
|   const TString& get(const char * fld_id) const;
 | |
|   // @cmember Indica quale campo deve ricevere per primo il focus nella maschera
 | |
|   int first_focus(short id);
 | |
| 
 | |
|   // @cmember Ritorna il numero del controllo che possiede il focus
 | |
|   TOperable_field& focus_field() const;
 | |
| 
 | |
|   // @cmember Disabilita la lettura dei check della maschera
 | |
|   void disable_starting_check()
 | |
|   { _should_check = false;}
 | |
| 
 | |
|   // @cmember Evita che venga chiamata la TWindow
 | |
|   virtual void on_button(short);
 | |
| 
 | |
|   // @cmember Assegna una azione al tasto non standard
 | |
|   virtual bool on_key(KEY key);
 | |
|   // @cmember Aggiorna i campi con i valori salvati una volta che non ci sono processi attivi
 | |
|   virtual void on_idle();
 | |
|   // @cmember Aggiorna in tutti campi della maschera, che fanno riferimento ad una ditta,
 | |
|   //              con il riferimento alla ditta attuale
 | |
|   virtual void on_firm_change();
 | |
| 
 | |
|   // @cmember Abilita/disabilita un campo
 | |
|   virtual void enable(short fld_id, bool on = TRUE);
 | |
|   // @cmember Disabilita un campo (chiama <mf TMask::enable>)
 | |
|   void disable(short fld_id)
 | |
|   { enable(fld_id, false); }
 | |
|   // @cmember Riporta il cmpo allo stato di abilitazione iniziale
 | |
|   void enable_default(short fld_id = 0);
 | |
| 
 | |
|   // @cmember Forza la visualizzazione della pagina p
 | |
|   void show_page(int p);
 | |
|   // @cmember Abilita/disabilita una pagina e tutte le successive
 | |
|   void enable_page(byte p, bool on = TRUE);
 | |
|   // @cmember Disabilita una pagina e tutte le successive (chiama <mf TMask::enable_page>)
 | |
|   void disable_page(byte p)
 | |
|   { enable_page(p, false); }
 | |
|   // @cmember Controlla se una pagina e' disabilitata (TRUE se disabilitata)
 | |
|   bool page_enabled(byte p) const;
 | |
| 
 | |
|   // @cmember Ritorna il numero di chiavi utilizzate nei campi della maschera
 | |
|   word num_keys() const;
 | |
|   // @cmember Abilita/disabilita i campi di una chiave sulla maschera
 | |
|   void enable_key(word key, bool on = TRUE);
 | |
|   // @cmember Disabilita i campi di una chiave sulla maschera (chiama <mf TMask::enable_key>)
 | |
|   void disable_key(word key)
 | |
|   { enable_key(key, false); }
 | |
|   // @cmember Ritorna il l'identificatore di un campo della chiave <p key>
 | |
|   TEditable_field* get_key_field(word key, bool first) const;
 | |
|   // @cmember Controlla se la chiave <p key> ha un valore significativo
 | |
|   //                              (TRUE se il valore e' valido)
 | |
|   bool key_valid(word key) const;
 | |
| 
 | |
|   // @cmember Permette di mostrare/nascondere un campo (chiama <mf TMask_field::show>)
 | |
|   virtual void show(short fld_id = -1, bool on = TRUE);
 | |
|   // @cmember Permette di nascondere un campo (chiama <mf TMask::show>)
 | |
|   void hide(short fld_id = 0)
 | |
|   { show(fld_id, false); }
 | |
|   // @cmember Rimette lo stato di default del campo
 | |
|   void show_default(short fld_id = 0);
 | |
| 
 | |
|   // @cmember Azzera il campo
 | |
|   void reset(short fld_id = 0);
 | |
|   // @cmember Azzera il campo
 | |
|   void reset(const char * fld_id) {set(fld_id, "");}
 | |
| 
 | |
|   // @cmember Legge, dalla relazione <p Trelation>, i valori del campo con specifica FIELD
 | |
|   void autoload(const TRelation& r);
 | |
|   // @cmember Scrive, dalla relazione <p Trelation>, i valori del campo con specifica FIELD
 | |
|   void autosave(TRelation& r) const;
 | |
| 
 | |
|   // @cmember Permette di mandare un tasto ad un campo
 | |
|   void send_key(KEY key, short id, TMask_field* from = NULL);
 | |
|   // @cmember Permette di mandare un handler ad un controllo
 | |
|   virtual void set_handler(short fld_id, CONTROL_HANDLER handler);
 | |
|   // @cmember Permette di mandare un handler ad una maschera
 | |
|   void set_handler(MASK_HANDLER handler);
 | |
|   // @cmember Permette di settare il nome del file di salvataggio
 | |
|   void set_workfile(const char* workfile)
 | |
|   { _workfile = workfile; _lastpos = 0L;}
 | |
|   // @cmember Salva i valori dei campi della maschera sul file di salvataggio
 | |
|   bool save(bool append = false) const;
 | |
|   // @cmember Legge i valori dei campi della maschera da file di salvataggio
 | |
|   bool load(bool reset = false);
 | |
|   // @cmember Copia i valori dei campi dalla maschera <p m>
 | |
|   void copy_values(const TMask &m);
 | |
| 
 | |
|   // @cmember Crea il nome del file dei profili in <p f>
 | |
|   bool make_profile_name(TFilename& f) const;
 | |
|   // @cmember Salva il profilo <p num>
 | |
|   int save_profile(int num = 0, const char* desc = NULL) const;
 | |
|   // @cmember Carica il profilo <p num>
 | |
|   int load_profile(int num = 0, bool reset = TRUE);
 | |
|   // @cmember Elimina il profilo <p num>
 | |
|   bool kill_profile(int num);
 | |
| 
 | |
|   // @cmember Ritorna il primo campo dirty
 | |
|   short dirty() const;
 | |
| 
 | |
|   // @cmember Setta lo sheet di cui la maschera gestisce le righe
 | |
|   void set_sheet(TSheet_field* s)
 | |
|   { _sheet = s; }
 | |
| 
 | |
|   // @cmember Ritorna lo sheet che gestisce la maschera
 | |
|   TSheet_field* get_sheet() const
 | |
|   { return _sheet; }
 | |
| 
 | |
|   // @cmember Ritorna se la maschera e' contenuta in uno sheet (TRUE se contenuta)
 | |
|   bool is_sheetmask() const
 | |
|   { return _sheet != NULL; }
 | |
| 
 | |
|   // @cmember Ritorna TRUE se la maschera non ha modalita' di utilizzo (vedi <t TMaskmode>)
 | |
|   bool no_mode() const
 | |
|   { return _mode == NO_MODE; }
 | |
|   // @cmember Ritorna TRUE se la maschera e' in modalita' di richiesta (vedi <t TMaskmode>)
 | |
|   bool query_mode() const
 | |
|   { return _mode == MODE_QUERY || _mode == MODE_QUERYINS; }
 | |
|   // @cmember Ritorna TRUE se la maschera e' in modalita' di modifica (vedi <t TMaskmode>)
 | |
|   bool edit_mode() const
 | |
|   { return _mode == MODE_MOD; }
 | |
|   // @cmember Ritorna TRUE se la maschera e' in modalita' di inserimento (vedi <t TMaskmode>)
 | |
|   bool insert_mode() const
 | |
|   { return _mode == MODE_QUERYINS || _mode == MODE_INS; }
 | |
| 
 | |
|   // @cmember Ritorna il titolo della maschera
 | |
|   virtual const char* get_caption(TString& str) const;
 | |
|   // @cmember Setta il titolo della maschera
 | |
|   virtual void set_caption(const char* c);
 | |
| 
 | |
|   // @cmember Mostra un messaggio d'errore appena possibile
 | |
|   void post_error_message(const char* msg, int severity);
 | |
| 
 | |
|   // @cmember Viene eseguita se il campo viene modificato
 | |
|   virtual bool on_dirty(TMask_field& c);
 | |
| 
 | |
|   // @cmember Ritorna la pagina identificata da <p w> 
 | |
| 	int win2page(WINDOW p) const ;
 | |
|   // @cmember Ritorna la finestra della toolbar
 | |
|   WINDOW toolwin() const
 | |
|   { return _pagewin[MAX_PAGES]; }
 | |
| };
 | |
| 
 | |
| // @doc EXTERNAL
 | |
| 
 | |
| // @class TTimed_box | Classe per la gestione dei box di richiesta temporizzati
 | |
| //
 | |
| // @base public | TMask
 | |
| class TTimed_box: public TMask
 | |
| {
 | |
|   long _timer_delay;
 | |
|   long _timer_id;
 | |
|   short _button_id;
 | |
| protected:
 | |
|   virtual void handler(WINDOW win, EVENT* ep);
 | |
|   virtual void start_run();
 | |
| public:
 | |
|   TTimed_box(const char * header,const char * message,int seconds,short button_id,int x,int y);
 | |
|   ~TTimed_box();
 | |
| };
 | |
| 
 | |
| 
 | |
| // @doc EXTERNAL
 | |
| 
 | |
| // @class TTimed_breakbox | Classe per la gestione dei box di richiesta interruzione
 | |
| //
 | |
| // @base public | TTimed_box
 | |
| class TTimed_breakbox: public TTimed_box
 | |
| {
 | |
| public:
 | |
|   TTimed_breakbox(const char * message,int seconds,int x=40,int y=10);
 | |
|   ~TTimed_breakbox();
 | |
| };
 | |
| 
 | |
| class TYesnoallnone_box: public TMask
 | |
| {
 | |
| public:
 | |
|   TYesnoallnone_box(const char * message, int default_key = K_YES);
 | |
|   ~TYesnoallnone_box();
 | |
| };
 | |
| 
 | |
| #endif // __MASK_H
 |