1994-12-05 14:23:30 +00:00
|
|
|
#ifndef __MASK_H
|
|
|
|
#define __MASK_H
|
|
|
|
|
|
|
|
#ifndef __WINDOW_H
|
|
|
|
#include <window.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __MASKFLD_H
|
|
|
|
#include <maskfld.h>
|
|
|
|
#endif
|
|
|
|
|
1996-06-17 08:52:00 +00:00
|
|
|
class TSheet_field;
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @doc EXTERNAL
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @type MASK_HANDLER | Prototipo funzione per gestire i tasti speciali all'interno di una maschera.
|
1994-12-05 14:23:30 +00:00
|
|
|
typedef bool (*MASK_HANDLER)(TMask& mask, KEY key);
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
|
|
|
// @doc EXTERNAL
|
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @enum Modalita' di utilizzo della maschera corrente
|
|
|
|
enum TMaskmode {
|
|
|
|
NO_MODE, // @emem Nessun modo
|
|
|
|
MODE_QUERY, // @emem Modalita' di richiesta chiave
|
1996-05-08 11:09:13 +00:00
|
|
|
MODE_QUERYINS, // @emem Modalita' di richiesta chiave e inserimento dati
|
|
|
|
MODE_INS , // @emem Modalita' di inserimento dati
|
|
|
|
MODE_MOD // @emem Modalita' di modifca dati
|
|
|
|
};
|
1996-02-05 19:00:53 +00:00
|
|
|
|
|
|
|
// @doc EXTERNAL
|
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @class TMask | Classe per la gestione delle maschere video
|
|
|
|
//
|
|
|
|
// @base public | TWindow
|
1994-12-05 14:23:30 +00:00
|
|
|
class TMask : public TWindow
|
|
|
|
{
|
1995-07-21 17:27:58 +00:00
|
|
|
// @author:(INTERNAL) Guido
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @access Protected Member
|
|
|
|
protected:
|
|
|
|
|
|
|
|
// @ccost:(INTERNAL) MAX_PAGES | 16 | Massimo numero di pagine nella maschera
|
|
|
|
enum { MAX_PAGES = 16 };
|
1995-07-21 17:27:58 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @access:(INTERNAL) Private Member
|
1996-05-08 11:09:13 +00:00
|
|
|
private:
|
1995-07-21 17:27:58 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Windows delle pagine
|
1995-07-21 17:27:58 +00:00
|
|
|
WINDOW _pagewin[MAX_PAGES+1];
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Numero di pagine della maschera
|
1995-07-21 17:27:58 +00:00
|
|
|
int _pages;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Pagina corrente
|
1995-07-21 17:27:58 +00:00
|
|
|
int _page;
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Controlla le pagine abilitate
|
1995-07-21 17:27:58 +00:00
|
|
|
TBit_array _enabled;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Modalita' di utilizzo della maschera
|
1995-07-21 17:27:58 +00:00
|
|
|
int _mode;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Numero di campi della maschera
|
1995-07-21 17:27:58 +00:00
|
|
|
TArray _field;
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Primo controllo che deve ricevere il focus
|
1995-07-21 17:27:58 +00:00
|
|
|
int _first_focus;
|
1996-05-08 11:09:13 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
int _focus;
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Puntatore allo sheet che contiene la maschera (puo' essere NULL)
|
1995-08-21 07:47:18 +00:00
|
|
|
TSheet_field* _sheet;
|
1995-07-21 17:27:58 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Handler per gestire i tasti speciali nelle maschere
|
1995-07-21 17:27:58 +00:00
|
|
|
MASK_HANDLER _handler;
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Nome del file sorgente contenente la maschera
|
1995-07-21 17:27:58 +00:00
|
|
|
TFilename _source_file;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Nome del file di salvataggio in cui sono scaricati i valori della maschera
|
1995-07-21 17:27:58 +00:00
|
|
|
TFilename _workfile;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Ultimo offset letto nel file di salvataggio
|
1995-07-21 17:27:58 +00:00
|
|
|
long _lastpos;
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Cambio attuale per i cambi in valuta
|
1995-07-21 17:27:58 +00:00
|
|
|
real _exchange;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Controlla se la maschera deve fare i controlli iniziali di validita' dei campi
|
1995-07-21 17:27:58 +00:00
|
|
|
bool _should_check;
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
int _error_severity;
|
|
|
|
TString _error_message;
|
1996-06-17 08:52:00 +00:00
|
|
|
short _msg_field;
|
|
|
|
KEY _msg_key;
|
1995-07-21 17:27:58 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Tempo totale di caricamento della maschera
|
1995-07-21 17:27:58 +00:00
|
|
|
long _total_time;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Tempo di compilazione della maschera
|
1995-07-21 17:27:58 +00:00
|
|
|
long _build_time;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Tempo di inizializzazione della maschera
|
1995-07-21 17:27:58 +00:00
|
|
|
long _init_time;
|
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember:(INTERNAL) identificatore del campo da testare per l'autopremimento
|
|
|
|
short _test_fld;
|
1996-05-14 10:09:58 +00:00
|
|
|
// @cmember:(INTERNAL) posizione del campo che per ultimo ha testato l'autopremimento
|
|
|
|
int _last_test;
|
1996-05-08 11:09:13 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @access Protected Member
|
1994-12-05 14:23:30 +00:00
|
|
|
protected:
|
1996-06-11 15:53:58 +00:00
|
|
|
TArray& fields_array() { return _field; }
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember:(INTERNAL) Numero di sheet contenuti nella maschera
|
|
|
|
int _sheets;
|
1995-07-21 17:27:58 +00:00
|
|
|
|
|
|
|
// @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 Legge il campo da file
|
1994-12-05 14:23:30 +00:00
|
|
|
virtual TMask_field* parse_field(TScanner& scanner);
|
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Inizializza la maschera
|
1994-12-05 14:23:30 +00:00
|
|
|
void init_mask();
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Legge la pagina da file
|
1994-12-05 14:23:30 +00:00
|
|
|
WINDOW read_page(TScanner& scanner, bool toolbar = FALSE);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Legge la maschera da file
|
1994-12-05 14:23:30 +00:00
|
|
|
void read_mask(const char* name, int num, int max);
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @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);
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Ritorna il numero del primo campo attivo della pagina con finestra <p w>
|
|
|
|
int find_first_active(WINDOW w) const;
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Ritorna il numero della finestra padre del campo <p f>
|
|
|
|
int find_parent_page(const TMask_field& f) const;
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Esegue i check del campo corrente
|
|
|
|
bool check_current_field() const;
|
1996-06-17 08:52:00 +00:00
|
|
|
// @cmember Mostra la prossima/precedente pagina
|
1995-07-21 17:27:58 +00:00
|
|
|
void next_page(int p);
|
|
|
|
// @cmember Ritorna il numero della pagina corrente
|
|
|
|
int curr_page() const
|
|
|
|
{ return _page; }
|
1996-07-27 09:19:01 +00:00
|
|
|
// @cmember Costruttore (crea una maschera vuota)
|
1996-05-08 11:09:13 +00:00
|
|
|
TMask() { init_mask();}
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @access Public Member
|
1994-12-05 14:23:30 +00:00
|
|
|
public:
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
|
1996-05-08 11:09:13 +00:00
|
|
|
TMask(const char* title, int num = 0, int max = MAX_PAGES);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @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);
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Distruttore
|
1994-12-05 14:23:30 +00:00
|
|
|
virtual ~TMask();
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Ritorna l'identificatore della classe maschera
|
|
|
|
virtual word class_id() const;
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Ritorna TRUE se la maschera deriva dalla classe <p c>
|
|
|
|
virtual bool is_kind_of(word c) const;
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Ritorna la finestra della pagina corrente (Usare con attenzione)
|
|
|
|
WINDOW win() const
|
|
|
|
{ return _page < 0 ? _pagewin[0] : _pagewin[_page]; }
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Ritorna il nome del file contentente la maschera
|
|
|
|
const TFilename& source_file() const
|
|
|
|
{ return _source_file; }
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Aggiunge alla maschera tutti i bottoni Pag. n
|
|
|
|
void add_default_tag_buttons();
|
1995-07-21 17:27:58 +00:00
|
|
|
|
|
|
|
// @cmember Aggiunge runtime un campo testo alla maschera
|
1996-05-08 11:09:13 +00:00
|
|
|
TMask_field& add_static (short id, int page, const char* prompt, int x, int y, const char* flags = "");
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Aggiunge runtime un campo stringa alla maschera
|
1996-05-08 11:09:13 +00:00
|
|
|
TEdit_field& add_string (short id, int page, const char* prompt, int x, int y, int dim, const char* flags = "", int width = 0);
|
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Aggiunge runtime un campo numerico alla maschera
|
1996-05-08 11:09:13 +00:00
|
|
|
TReal_field& add_number (short id, int page, const char* prompt, int x, int y, int dim, const char* flags = "", int ndec = 0);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Aggiunge runtime un campo data alla maschera
|
1996-05-08 11:09:13 +00:00
|
|
|
TDate_field& add_date (short id, int page, const char* prompt, int x, int y, const char* flags = "");
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Aggiunge runtime un campo bottone alla maschera
|
1996-05-08 11:09:13 +00:00
|
|
|
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);
|
1995-12-14 10:45:17 +00:00
|
|
|
// @cmember Aggiunge runtime un campo boolean alla maschera
|
1996-05-08 11:09:13 +00:00
|
|
|
TBoolean_field& add_boolean (short id, int page, const char* prompt, int x, int y, const char* flags = "");
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Aggiunge runtime un campo radio button alla maschera
|
1996-05-08 11:09:13 +00:00
|
|
|
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 = "");
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Aggiunge runtime un campo memo alla maschera
|
1996-05-08 11:09:13 +00:00
|
|
|
TMemo_field& add_memo (short id, int page, const char* prompt, int x, int y, int dx = 78, int dy = 4, const char* flags = "");
|
1995-11-27 17:31:19 +00:00
|
|
|
// @cmember Aggiunge runtime un campo zoom alla maschera
|
1996-05-08 11:09:13 +00:00
|
|
|
TZoom_field& add_zoom (short id, int page, const char* prompt, int x, int y, int dim, const char* flags = "", int width = 0);
|
1995-12-14 10:45:17 +00:00
|
|
|
// @cmember Aggiunge runtime un campo lista alla maschera
|
1996-05-08 11:09:13 +00:00
|
|
|
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);
|
1995-07-21 17:27:58 +00:00
|
|
|
|
|
|
|
// @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
|
|
|
|
{ return _sheets; }
|
|
|
|
|
|
|
|
// @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; }
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Setta la chiave da testare per l'autopremimento
|
|
|
|
void set_test_field(int id)
|
1996-06-17 08:52:00 +00:00
|
|
|
{ if (_test_fld < 0) _test_fld = id; }
|
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
void set_focus_field(short id);
|
|
|
|
void notify_focus_field(short id);
|
1995-07-21 17:27:58 +00:00
|
|
|
|
|
|
|
// @cmember Setta il valore attuale della valuta
|
1994-12-05 14:23:30 +00:00
|
|
|
void set_exchange(bool show_value, const real& nuo);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Ritorna il valore attuale del cambio
|
|
|
|
const real& exchange() const
|
|
|
|
{ return _exchange; }
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Controlla i campi di una maschera (TRUE se tutti validi)
|
1994-12-05 14:23:30 +00:00
|
|
|
bool check_fields();
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Esegue il check e i messaggi sul campo <p fld_id> della maschera
|
|
|
|
virtual void check_field( short fld_id );
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Forza la chiusura della maschera
|
|
|
|
virtual bool stop_run(KEY key);
|
|
|
|
// @cmember Controlla se la maschera puo' essere chiusa (TRUE se puo' esserlo)
|
1994-12-05 14:23:30 +00:00
|
|
|
virtual bool can_be_closed() const;
|
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Permette di aprire una maschera
|
1994-12-05 14:23:30 +00:00
|
|
|
virtual void open();
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Permette di chiudere una maschera
|
1994-12-05 14:23:30 +00:00
|
|
|
virtual void close();
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Permette di attivare/disattivare tutta la pagina
|
1994-12-07 18:03:51 +00:00
|
|
|
virtual void activate(bool on = TRUE);
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @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 di edit contraddistinto dall'identificatore passato
|
|
|
|
TEdit_field& efield(short id) const;
|
|
|
|
|
|
|
|
// @cmember Setta il campo con una stringa
|
1995-11-22 13:51:52 +00:00
|
|
|
virtual void set(short fld_id, const char* str, bool hit=FALSE);
|
1995-10-25 09:43:56 +00:00
|
|
|
// @cmember Setta il campo con un reale
|
|
|
|
void set(short fld_id, const real& num, bool hit=FALSE);
|
|
|
|
// @cmember Setta il campo con una data
|
|
|
|
void set(short fld_id, const TDate& day, bool hit=FALSE);
|
1995-11-22 13:51:52 +00:00
|
|
|
// @cmember Setta il campo con un valore
|
|
|
|
void set(short fld_id, long num, bool hit=FALSE);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di stringa
|
1995-11-22 13:51:52 +00:00
|
|
|
virtual const TString& get(short fld_id) const;
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di long
|
1994-12-05 14:23:30 +00:00
|
|
|
long get_long(short fld_id) const;
|
1995-07-21 17:27:58 +00:00
|
|
|
// @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
|
1994-12-05 14:23:30 +00:00
|
|
|
bool get_bool(short fld_id) const;
|
1995-12-23 09:43:52 +00:00
|
|
|
// @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;
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Indica quale campo deve ricevere per primo il focus nella maschera
|
1994-12-05 14:23:30 +00:00
|
|
|
int first_focus(short id);
|
1996-05-08 11:09:13 +00:00
|
|
|
|
1995-11-22 13:51:52 +00:00
|
|
|
// @cmember Ritorna il numero del controllo che possiede il focus
|
1996-05-29 08:24:23 +00:00
|
|
|
TOperable_field& focus_field() const;
|
1996-05-08 11:09:13 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Disabilita la lettura dei check della maschera
|
|
|
|
void disable_starting_check()
|
|
|
|
{ _should_check = FALSE;}
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-23 15:36:50 +00:00
|
|
|
// @cmember Evita che venga chiamata la TWindow
|
|
|
|
virtual void TMask::on_button(short);
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Assegna una azione al tasto non standard
|
1994-12-05 14:23:30 +00:00
|
|
|
virtual bool on_key(KEY key);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Aggiorna i campi con i valori salvati una volta che non ci sono processi attivi
|
1995-06-19 08:13:19 +00:00
|
|
|
virtual void on_idle();
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Aggiorna in tutti campi della maschera, che fanno riferimento ad una ditta,
|
|
|
|
// con il riferimento alla ditta attuale
|
1995-11-27 08:39:18 +00:00
|
|
|
virtual void on_firm_change();
|
1995-07-21 17:27:58 +00:00
|
|
|
|
|
|
|
// @cmember Abilita/disabilita un campo
|
1995-11-22 13:51:52 +00:00
|
|
|
virtual void enable(short fld_id, bool on = TRUE);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @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
|
1996-05-08 11:09:13 +00:00
|
|
|
void enable_default(short fld_id = 0);
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-09-12 07:59:16 +00:00
|
|
|
// @cmember Forza la visualizzazione della pagina p
|
|
|
|
void show_page(int p);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Abilita/disabilita una pagina e tutte le successive
|
1994-12-05 14:23:30 +00:00
|
|
|
void enable_page(byte p, bool on = TRUE);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @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)
|
1994-12-05 14:23:30 +00:00
|
|
|
bool page_enabled(byte p) const;
|
1995-07-21 17:27:58 +00:00
|
|
|
|
|
|
|
// @cmember Ritorna il numero di chiavi utilizzate nei campi della maschera
|
1994-12-05 14:23:30 +00:00
|
|
|
byte num_keys() const;
|
1996-06-17 08:52:00 +00:00
|
|
|
// @cmember Abilita/disabilita i campi di una chiave sulla maschera
|
1994-12-05 14:23:30 +00:00
|
|
|
void enable_key(byte key, bool on = TRUE);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Disabilita i campi di una chiave sulla maschera (chiama <mf TMask::enable_key>)
|
|
|
|
void disable_key(byte key)
|
|
|
|
{ enable_key(key, FALSE); }
|
|
|
|
// @cmember Ritorna il l'identificatore di un campo della chiave <p key>
|
1996-05-08 11:09:13 +00:00
|
|
|
TEditable_field* get_key_field(byte key, bool first) const;
|
1996-06-17 08:52:00 +00:00
|
|
|
// @cmember Controlla se la chiave <p key> ha un valore significativo
|
1995-07-21 17:27:58 +00:00
|
|
|
// (TRUE se il valore e' valido)
|
1994-12-05 14:23:30 +00:00
|
|
|
bool key_valid(int key) const;
|
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Permette di mostrare/nascondere un campo (chiama <mf TMask_field::show>)
|
1995-11-22 13:51:52 +00:00
|
|
|
virtual void show(short fld_id = -1, bool on = TRUE);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Permette di nascondere un campo (chiama <mf TMask::show>)
|
1996-05-08 11:09:13 +00:00
|
|
|
void hide(short fld_id = 0)
|
1995-07-21 17:27:58 +00:00
|
|
|
{ show(fld_id, FALSE); }
|
|
|
|
// @cmember Rimette lo stato di default del campo
|
1996-05-08 11:09:13 +00:00
|
|
|
void show_default(short fld_id = 0);
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Azzera il campo
|
|
|
|
void reset(short fld_id = 0);
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Legge, dalla relazione <p Trelation>, i valori del campo con specifica FIELD
|
1996-05-08 11:09:13 +00:00
|
|
|
void autoload(const TRelation& r);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Scrive, dalla relazione <p Trelation>, i valori del campo con specifica FIELD
|
1996-05-08 11:09:13 +00:00
|
|
|
void autosave(TRelation& r) const;
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Permette di mandare un tasto ad un campo
|
1994-12-05 14:23:30 +00:00
|
|
|
void send_key(KEY key, short id, TMask_field* from = NULL);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Permette di mandare un handler ad un controllo
|
1995-11-22 13:51:52 +00:00
|
|
|
virtual void set_handler(short fld_id, CONTROL_HANDLER handler);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Permette di mandare un handler ad una maschera
|
1994-12-05 14:23:30 +00:00
|
|
|
void set_handler(MASK_HANDLER handler);
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Permette di settare il nome del file di salvataggio
|
|
|
|
void set_workfile(const char* workfile)
|
|
|
|
{ _workfile = workfile; _lastpos = 0L;}
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Salva i valori dei campi della maschera sul file di salvataggio
|
1994-12-05 14:23:30 +00:00
|
|
|
bool save(bool append = FALSE) const;
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Legge i valori dei campi della maschera da file di salvataggio
|
1994-12-05 14:23:30 +00:00
|
|
|
bool load(bool reset = FALSE);
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Copia i valori dei campi dalla maschera <p m>
|
|
|
|
void copy_values(const TMask &m);
|
1994-12-05 14:23:30 +00:00
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Ritorna il primo campo dirty
|
|
|
|
short dirty() const;
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1995-10-06 16:38:58 +00:00
|
|
|
// @cmember Setta lo sheet di cui la maschera gestisce le righe
|
1996-06-17 08:52:00 +00:00
|
|
|
void set_sheet(TSheet_field* s)
|
1995-08-21 07:47:18 +00:00
|
|
|
{ _sheet = s; }
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1995-08-21 07:47:18 +00:00
|
|
|
// @cmember Ritorna lo sheet che gestisce la maschera
|
1996-08-21 15:29:02 +00:00
|
|
|
TSheet_field* get_sheet() const
|
1995-08-21 07:47:18 +00:00
|
|
|
{ return _sheet; }
|
|
|
|
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Ritorna se la maschera e' contenuta in uno sheet (TRUE se contenuta)
|
|
|
|
bool is_sheetmask() const
|
1995-08-21 07:47:18 +00:00
|
|
|
{ return _sheet != NULL; }
|
1995-07-21 17:27:58 +00:00
|
|
|
|
|
|
|
// @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
|
1994-12-05 14:23:30 +00:00
|
|
|
virtual const char* get_caption() const;
|
1995-07-21 17:27:58 +00:00
|
|
|
// @cmember Setta il titolo della maschera
|
1994-12-05 14:23:30 +00:00
|
|
|
virtual void set_caption(const char* c);
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Mostra un messaggio d'errore appena possibile
|
|
|
|
void post_error_message(const char* msg, int severity);
|
1995-02-28 10:30:50 +00:00
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @cmember Viene eseguita se il campo viene modificato
|
|
|
|
virtual bool on_dirty(TMask_field& c);
|
1996-06-17 08:52:00 +00:00
|
|
|
|
1995-11-22 13:51:52 +00:00
|
|
|
// @cmember Ritorna la finestra della toolbar
|
|
|
|
WINDOW toolwin() const
|
|
|
|
{ return _pagewin[MAX_PAGES]; }
|
1994-12-05 14:23:30 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // __MASK_H
|