Aggiunta documentazione in linea

git-svn-id: svn://10.65.10.50/trunk@1633 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
andrea 1995-07-21 17:27:58 +00:00
parent 9411b75057
commit 1fada2786c
13 changed files with 1542 additions and 542 deletions

View File

@ -12,7 +12,7 @@
// @base public | TObject
class THash_object : public TObject
{
// @friend class TAssoc_array
// @cfriend TAssoc_array
friend class TAssoc_array;
// @access Private Member
@ -49,7 +49,7 @@ class TAssoc_array : public TObject
//@access Private Member
// @cmember Dimensione della tabella hash
// @ccost HASH_SIZE | 113 | Dimensione della tabella hash
enum { HASH_SIZE = 113 };
// @cmember Numero di oggetti contenuti nella tabella
word _cnt;
@ -94,8 +94,7 @@ public:
// @cmember Controlla l'esistenza di una chiave
bool is_key(const char* key);
// @cmember Ritorna l'indice del oggetto con chiave key (pi— intuitivo di
// <mf TAssoc_array::find>
// @cmember Ritorna l'indice del oggetto con chiave key (piu' intuitivo di <mf TAssoc_array::find>)
TObject& operator[] (const char* key)
{ return find(key); }

View File

@ -31,6 +31,7 @@
int fatal_box(
const char* fmt, ...) // @parm Messaggio da stampare nella finestra
// (il formato e' come nella printf del C)
// @comm Se si opera in ambiente Windows crea la finestra con il bottone OK
@ -64,8 +65,9 @@ int fatal_box(
// @msg error_box | Crea una finestra di ERRORE con il relativo messaggio
int error_box(
const char* fmt, ...) // @parm Messaggio da stampare nella finestra
// (il formato e' come nella printf del C)
const char* fmt, // @parm Messaggio da stampare nella finestra
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Se si opera in ambiente Windows crea la finestra con il bottone OK
// e l'icona punto esclamativo.
@ -91,8 +93,8 @@ int error_box(
// @msg warning_box | Crea una finestra di ATTENZIONE con il relativo messaggio
int warning_box(
const char* fmt, ...) // @parm Messaggio da stampare nella finestra
// (il formato e' come nella printf del C)
const char* fmt, // @parm Messaggio da stampare nella finestra
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Se si opera in ambiente Windows crea la finestra con il bottone OK
// e l'icona punto di domanda.
@ -113,9 +115,9 @@ int warning_box(
// @msg message_box | Crea una finestra di INFORMAZIONE con relativo il messaggio
int message_box(
const char* fmt, ...) // @parm Messaggio da stampare nella finestra
// (il formato e' come nella printf del C)
const char* fmt, // @parm Messaggio da stampare nella finestra
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Se si opera in ambiente Windows crea la finestra con il bottone OK
// e l'icona informazioni.
{
@ -133,8 +135,8 @@ int message_box(
// @msg sorry_box | Crea una finestra di SCUSE con il relativo messaggio
int sorry_box(
const char* fmt, ...) // @parm Messaggio da stampare nella finestra
// (il formato e' come nella printf del C)
const char* fmt, // @parm Messaggio da stampare nella finestra
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Se si opera in ambiente Windows crea la finestra con il bottone OK
// e l'icona informazioni.
@ -153,8 +155,8 @@ int sorry_box(
// @msg yesno_box | Crea una finestra di RICHIESTA con il relativo messaggio
int yesno_box(
const char* fmt, ...) // @parm Messaggio da stampare nella finestra
// (il formato e' come nella printf del C)
const char* fmt, // @parm Messaggio da stampare nella finestra
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Se si opera in ambiente Windows crea la finestra con i bottni SI e NO
@ -182,8 +184,8 @@ int yesno_box(
// @msg yesnofatal_box | Crea una finestra di RICHIESTA con il relativo
// messaggio, ma permette di terminare il programma
int yesnofatal_box(
const char* fmt, ...) // @parm Messaggio da stampare nella finestra
// (il formato e' come nella printf del C)
const char* fmt, // @parm Messaggio da stampare nella finestra
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Se si opera in ambiente Windows crea la finestra con i bottoni SI e NO
// e l'icona col punto di domanda.
@ -213,8 +215,8 @@ int yesnofatal_box(
// @msg yesnocancel_box | Crea una finestra di RICHIESTA con il relativo messaggio
int yesnocancel_box(
const char* fmt, ...) // @parm Messaggio da stampare nella finestra
// (il formato e' come nella printf del C)
const char* fmt, // @parm Messaggio da stampare nella finestra
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Se si opera in ambiente Windows crea la finestra con i bottoni SI e NO
// e l'icona col punto di domanda.
@ -250,8 +252,8 @@ int yesnocancel_box(
// @msg __trace | Permette di mandare dei messaggi nel file trace.log
int __trace(
const char* fmt, ...) // @parm Messaggio da stampare
// (il formato e' come nella printf del C)
const char* fmt, // @parm Messaggio da stampare
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Usato in fase di debug, permette di vedere se il programma ha
// fatto certe operazioni (deve essere definito il simbolo TRC in

View File

@ -35,9 +35,12 @@ enum TDate_mgafmt {
// @base public | TObject
class TDate : public TObject
{
// @access Private Member
// @cmember Valore data in formato packed
long _val;
// @access Protected Member
protected:
// @cmember Controlla se una data e' minore di un'altra
@ -52,13 +55,17 @@ protected:
friend bool operator ==(const TDate& a, const TDate& b);
// @cmember Controlla se una 2 date sono diverse
friend bool operator !=(const TDate& a, const TDate& b);
long makedata(int day, int month, int year) const { return (10000L * year) + ( 100L * month) + day; }
// @cmember Costruisce la data in formato packed
long makedata(int day, int month, int year) const
{ return (10000L * year) + ( 100L * month) + day; }
// @access Public Member
public:
// @cmember Ritorna la data in formato di stringa (anche in formato ANSI)
char* string(TDate_mgafmt year = full, char sep = '-', TDate_mgafmt day = full, TDate_mgafmt month = full, TDate_order ord = gma_date) const ;
// @cmember Trasforma la data da odierna ??? a ???
long date2julian() const;
// @cmember Trasforma la data da ??? a ???
long julian2date(long julian) const;
// @cmember Ritorna il giorno
@ -141,21 +148,38 @@ public:
TDate(int day, int month, int year);
};
// @class TFormatted_date | Classe per la definizione di date con un formato
//
// @base public | TDate
class TFormatted_date : public TDate
{
// @access Private Member
// @cmember Formato per tutti i pezzettini
char _format[5];
// @access Public Member
public:
// @cmember Permette di stabilire il criterio di formattazione delle date
void set_format(const char* f);
// @cmember Ritorna la data in formato di stringa (vedi <mf TDate::string>)
const char* string() const;
TFormatted_date& operator =(const char* s) { TDate::operator =(s); return *this; }
TFormatted_date& operator =(const TDate& d) { TDate::operator =(d); return *this; }
TFormatted_date& operator =(const TFormatted_date& d) { TDate::operator =(d); set_format(d._format); return *this; }
// @cmember Controlla se due stringhe contenenti date coincidono (TRUE se uguali)
TFormatted_date& operator =(const char* s)
{ TDate::operator =(s); return *this; }
// @cmember Controlla se due oggetti TDate coincidono (TRUE se uguali)
TFormatted_date& operator =(const TDate& d)
{ TDate::operator =(d); return *this; }
// @cmember Controlla se due oggetti TFormatted_date coincidono (TRUE se uguali)
TFormatted_date& operator =(const TFormatted_date& d)
{ TDate::operator =(d); set_format(d._format); return *this; }
// @cmember Costruttore (accetta la definizione di giorno, mese e anno)
TFormatted_date(int day = 0, int month = 0, int year = 0, const char* f = "1444-");
// @cmember Costruttore (accetta una TDate)
TFormatted_date(const TDate& d, const char* f = "1444-");
// @cmember Costruttore
TFormatted_date(const TFormatted_date& d);
};

View File

@ -16,11 +16,11 @@
// @base public | TObject
class TMessage : public TObject
{
// @access Private Member
// @friend class TMailbox
// @cfriend TMailbox
friend class TMailbox;
// @access Private Member
// @cmember Applicazione che lancia il messaggio
TString16 _from;
// @cmember Applicazione che deve ricevere il messaggio

File diff suppressed because it is too large Load Diff

View File

@ -13,193 +13,341 @@
#include <real.h>
#endif
// @doc EXTERNAL
// @T
// @type MASK_HANDLER | Funzione per gestire i tasti speciali all'interno di una maschera.
typedef bool (*MASK_HANDLER)(TMask& mask, KEY key);
enum TMaskmode { NO_MODE, MODE_INS , MODE_MOD ,
MODE_VIS , MODE_QUERY, MODE_QUERYINS };
// @END
// @C
// Classe TMask : public TWindow
// @END
// @enum Modalita' di utilizzo della maschera corrente
enum TMaskmode {
NO_MODE, // @emem Nessun modo
MODE_INS , // @emem Modalita' di inserimento dati
MODE_MOD , // @emem Modalita' di modifca dati
MODE_VIS , // @emem Modalita' di visualizzaione dati
MODE_QUERY, // @emem Modalita' di richiesta chiave
MODE_QUERYINS }; // @emem Modalita' di richiesta chiave e inserimento dati
// @class TMask | Classe per la gestione delle maschere video
//
// @base public | TWindow
class TMask : public TWindow
{
// @DPRIV
enum { MAX_PAGES = 12 }; // Massimo numero di pagine nella maschera
WINDOW _pagewin[MAX_PAGES+1]; // Windows of the pages
WINDOW _pagepag[MAX_PAGES]; // Windows of pgup/pgdn
WINDOW _pagetag[MAX_PAGES]; // Windows of pagetags
int _pages; // Number of pages of the mask
int _page; // Current page
// @author:(INTERNAL) Guido
TBit_array _enabled; // Are pages enabled
int _mode; // Mode of the mask
TArray _field; // Fields in the mask
int _first_focus; // First control to have focus
int _focus; // Control with focus
int _next_fld; // Control who is gaining the focus
int _sheets; // Number of sheets
// @access Private Member
MASK_HANDLER _handler; // User defined key handler
// @ccost MAX_PAGES | 12 | Massimo numero di pagine nella maschera
enum { MAX_PAGES = 12 };
// @cmember Windows delle pagine
WINDOW _pagewin[MAX_PAGES+1];
// @cmember Windows per pgup/pgdn
WINDOW _pagepag[MAX_PAGES];
// @cmember Windows di numeri pagina
WINDOW _pagetag[MAX_PAGES];
TFilename _source_file; // Source file of the mask
TFilename _workfile; // Name of savefile
// @cmember Numero di pagine della maschera
int _pages;
// @cmember Pagina corrente
int _page;
long _lastpos; // last read offset on savefile
// @cmember Controlla le pagine abilitate
TBit_array _enabled;
// @cmember Modalita' di utilizzo della maschera
int _mode;
// @cmember Numero di campi della maschera
TArray _field;
real _exchange; // Current value exhange
bool _sheetmask; // Mask owned by a sheet
bool _should_check; // Mask should load checks when starting
long _total_time, _build_time, _init_time;
// @cmember Primo controllo che deve ricevere il focus
int _first_focus;
// @cmember Controllo che possiede il focus
int _focus;
// @cmember Controllo che deve ricevere il focus
int _next_fld;
// @cmember Numero di sheet
int _sheets;
// @cmember Handler per gestire i tasti speciali nelle maschere
MASK_HANDLER _handler;
// @cmember Nome del file sorgente contenente la maschera
TFilename _source_file;
// @cmember Nome del file di salvataggio in cui sono scaricati i valori della maschera
TFilename _workfile;
// @cmember Ultimo offset letto nel file di salvataggio
long _lastpos;
// @cmember Cambio attuale per i cambi in valuta
real _exchange;
// @cmember Controlla se e' una maschera contenuto in un sheet
bool _sheetmask;
// @cmember Controlla se la maschera deve fare i controlli iniziali di validita' dei campi
bool _should_check;
// @cmember Tempo totale di caricamento della maschera
long _total_time;
// @cmember Tempo di compilazione della maschera
long _build_time;
// @cmember Tempo di inizializzazione della maschera
long _init_time;
// @access Protected Member
protected:
// Ritorna la finestra della pagina corrente (Usare con attenzione)
WINDOW win() const { return _page < 0 ? _pagewin[0] : _pagewin[_page]; }
WINDOW toolwin() const { return _pagewin[MAX_PAGES]; }
// @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 toolbar
WINDOW toolwin() const
{ return _pagewin[MAX_PAGES]; }
int find_field_win(WINDOW win) const; // number of field with window win
// @cmember Ritorna il numero di campi nella finestra
int find_field_win(WINDOW win) const;
void set_mask_fields() const; // update screen
// @cmember Aggiorna i controlli a video con i valori iniziali della maschera
void set_mask_fields() const;
void load_checks() const; // load checks related fields
virtual void start_run(); // called when the mask starts to run
// @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
virtual TMask_field* parse_field(TScanner& scanner);
// @cmember Inizializza la maschera
void init_mask();
// @cmember Legge la pagina da file
WINDOW read_page(TScanner& scanner, bool toolbar = FALSE);
// @cmember Legge la maschera da file
void read_mask(const char* name, int num, int max);
// @cmember Permette di aggiungere sulla maschera tutti i bottoni per la
// navigazione tra le pagine
void add_buttons();
int find_parent_page(const TMask_field&) const;
// @cmember Ritorna il numero della finestra padre del campo <p f>
int find_parent_page(const TMask_field& f) const;
// @cmember Ritorna la posizione del primo campo attivo nella direzione specificata
int find_first_field(WINDOW w, int dir) const;
int find_active_field(int first, int dir) const;
bool check_current_page(); // Check all the fields on the current page
void next_page(int p); // Show next/previous page
int curr_page() const { return _page; } // Current page number
// @cmember Ritorna il prossimo campo attivabile
int find_active_field(int first, int dir) const;
// @cmember Controlla tutti i campi della pagina corrente
bool check_current_page();
// @cmember Mostra la prossima/precedente pagina
void next_page(int p);
// @cmember Ritorna il numero della pagina corrente
int curr_page() const
{ return _page; }
bool test_focus_change(WINDOW w = NULL_WIN);
// @cmember Controlla se e' possibile dare il focus alla finestra <p next> (TRUE se possibile)
bool test_focus_change(WINDOW next = NULL_WIN);
// @cmember Funzione chiamata ogni volta che arriva un evento e lo gestisce
void control_handler(EVENT* ep);
void handler(WINDOW win, EVENT* ep);
// @cmember Gestisce gli eventi XVT diretti alla pagina corrente della maschera
virtual void handler(WINDOW win, EVENT* ep);
// @access Public Member
public:
// @FPUB
// crea leggendo descrizione da file .msk
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
TMask(const char* name, 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);
// crea mask vuota con parametri dati
TMask(const char* title, int pages, int cols, int rows, int xpos = -1,
int ypos = -1);
// @cmember Distruttore
virtual ~TMask();
const TFilename& source_file() const { return _source_file; }
// @cmember Ritorna il nome del file contentente la maschera
const TFilename& source_file() const
{ return _source_file; }
// aggiunta campi a runtime
WINDOW add_static (short id, int page, const char* prompt, int x, int y,
const char* flags = "");
WINDOW add_string (short id, int page, const char* prompt, int x, int y,
int dim, const char* flags = "", int width = 0);
WINDOW add_number (short id, int page, const char* prompt, int x, int y,
int dim, const char* flags = "", int ndec = 0);
WINDOW add_date (short id, int page, const char* prompt, int x, int y,
const char* flags = "");
WINDOW add_button (short id, int page, const char* prompt, int x, int y,
int dx = 9, int dy = 1, const char* flags = "");
WINDOW add_radio(short id, int page, const char* prompt, int x, int y,
int dx, const char* codes, const char* items, const char* flags = "");
WINDOW 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 testo alla maschera
WINDOW add_static (short id, int page, const char* prompt, int x, int y, const char* flags = "");
// @cmember Aggiunge runtime un campo stringa alla maschera
WINDOW 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
WINDOW 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 data alla maschera
WINDOW add_date (short id, int page, const char* prompt, int x, int y, const char* flags = "");
// @cmember Aggiunge runtime un campo bottone alla maschera
WINDOW add_button (short id, int page, const char* prompt, int x, int y, int dx = 9, int dy = 1, const char* flags = "");
// @cmember Aggiunge runtime un campo radio button alla maschera
WINDOW 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
WINDOW add_memo (short id, int page, const char* prompt, int x, int y, int dx = 78, int dy = 4, const char* flags = "");
int fields() const { return _field.items(); }
int sheets() const { return _sheets; }
void set_mode(int m) { _mode = m; }
int mode() const { return _mode; }
// @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; }
// @cmember Setta il valore attuale della valuta
void set_exchange(bool show_value, const real& nuo);
const real& exchange() const { return _exchange; }
// @cmember Ritorna il valore attuale del cambio
const real& exchange() const
{ return _exchange; }
// @cmember Controlla i campi di una maschera (TRUE se tutti validi)
bool check_fields();
void get_mask_fields(); // read screen contents
virtual bool stop_run(KEY key); // called to close the mask
// @cmember Mette il contenuto dei campi a video in stringhe interne
void get_mask_fields();
// @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);
int id2pos(short id) const;
short next_fld() const { return _next_fld;} // id of the field who is gaining the focus DLG_NULL is not exists
TMask_field& fld(int i) const { return (TMask_field&)_field[i]; } // Ritorna il campo i-esimo della maschera
TMask_field& field(short id) const; // field with given id
TEdit_field& efield(short id) const; // edit-field with given id
// @cmember Converte un identificatore di campo nella sua posizione
int id2pos(short id) const;
// @cmember Ritorna l'id del campo che sta prendendo il focus, DLG_NULL se non esiste
short next_fld() const
{ return _next_fld;}
// @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
void set(short fld_id, const char* str, bool hit=FALSE);
// @cmember Setta il campo con un valore
void set(short fld_id, long num, bool hit=FALSE);
// @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di stringa
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;
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 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 Indica quale campo deve ricevere per primo il focus nella maschera
int first_focus(short id);
// @cmember Setta il focus al campo corrente
void set_focus();
// @cmember Muove il focus al prossimo o al precedente controllo valido
void move_focus_field(int num);
// @cmember Setta il focus al campo la cui finestra e' <p win>
void set_focus_win(WINDOW win, bool force);
int focus_field() const { return _focus;}
void disable_starting_check() { _should_check = FALSE;}
// @cmember Ritorna il numero del controllo che possiede il focus
int focus_field() const
{ return _focus;}
// @cmember Disabilita la lettura dei check della maschera
void disable_starting_check()
{ _should_check = FALSE;}
// @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
void on_firm_change();
void enable(short fld_id, bool on = TRUE); // Abilita un campo
void disable(short fld_id) { enable(fld_id, FALSE); }
// @cmember Abilita/disabilita un campo
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 = -1);
// @cmember Abilita/disabilita una pagina e tutte le successive
void enable_page(byte p, bool on = TRUE);
void disable_page(byte p) { enable_page(p, FALSE); }
// @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
byte num_keys() const;
// @cmember Abilita/disabilita i campi di una chiave sulla maschera
void enable_key(byte key, bool on = TRUE);
void disable_key(byte key) { enable_key(key, FALSE); }
// @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>
short get_key_field(byte key, bool first) const;
// @cmember Controlla se la chiave <p key> ha un valore significativo
// (TRUE se il valore e' valido)
bool key_valid(int key) const;
// @cmember Permette di mostrare/nascondere un campo
void show(short fld_id = -1, bool on = TRUE);
void hide(short fld_id = -1) { show(fld_id, FALSE); }
// @cmember Permette di nascondere un campo (chiama <mf TMask::show>)
void hide(short fld_id = -1)
{ show(fld_id, FALSE); }
// @cmember Rimette lo stato di default del campo
void show_default(short fld_id = -1);
// @cmember Rimette lo stato di default del campo
void reset(short fld_id = -1);
// @cmember Riporta il valori originali nel campo
void undo(short fld_id = -1);
// @cmember Legge, dalla relazione <p Trelation>, i valori del campo con specifica FIELD
void autoload(const TRelation*);
// @cmember Scrive, dalla relazione <p Trelation>, i valori del campo con specifica FIELD
void autosave(TRelation*) 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
void set_handler(short fld_id, CONTROL_HANDLER handler);
// @cmember Permette di mandare un handler ad una maschera
void set_handler(MASK_HANDLER handler);
void set_workfile(const char* workfile) { _workfile = workfile; _lastpos = 0L;}
// @cmember Permette di settare il nome del file di salvataggio
void set_workfile(const char* workfile)
{ _workfile = workfile; _lastpos = 0L;}
// @cmember Permette di salvare il file di salvataggio
bool save(bool append = FALSE) const;
// @cmember Permette di leggere il file di salvataggio
bool load(bool reset = FALSE);
short dirty() const; // Ritorna il primo campo dirty
bool is_sheetmask() const { return _sheetmask; }
// @cmember Ritorna il primo campo dirty
short dirty() const;
// @cmember Ritorna se la maschera e' contenuta in uno sheet (TRUE se contenuta)
bool is_sheetmask() const
{ return _sheetmask; }
bool no_mode() const { return _mode == NO_MODE; }
bool query_mode() const { return _mode == MODE_QUERY || _mode == MODE_QUERYINS; }
bool edit_mode() const { return _mode == MODE_MOD; }
bool insert_mode() const { return _mode == MODE_QUERYINS || _mode == MODE_INS; }
// @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() const;
// @cmember Setta il titolo della maschera
virtual void set_caption(const char* c);
virtual bool on_dirty( TMask_field& c );
// @cmember Viene eseguita se il campo viene modificato???
virtual bool on_dirty(TMask_field& c );
};

View File

@ -149,8 +149,24 @@ short TMask_field::atodlg(const char* s) const
return d;
}
void TMask_field::construct(short id, const char* prompt, int x, int y,
int len, WINDOW parent, const char* flags, int width)
// @cmember Costruisce il campo
void TMask_field::construct(
short id, // @parm Identificatore del campo
const char* prompt, // @parm Prompt del campo
int x, // @parm Posizione in x (in caratteri) del campo nella maschera
int y, // @parm Posizione in y (in caratteri) del campo nella maschera
int len, // @parm Lunghezza vidibile del campo
WINDOW parent, // @parm Finestra padre alla quale assegnare il campo
const char* flags, // @parm Flags del campo (default "")
int width) // @parm Lunghezza del campo
// @parm TScanner& | scanner | File dal quale leggere leggere le informazioni
// @syntax void construct(TScanner& scanner, WINDOW parent);
// @syntax void construct(short id, const char* prompt, int x, int y, int len, WINDOW parent, const char* flags, int width);
//
// @comm E' possibile costruire il campo leggendo direttamente dal file, oppure passare alla funzione
// tutti i parametri necessari alla definizione del campo stesso
{
_x = x; _y = y;
_prompt = prompt;
@ -260,9 +276,16 @@ long TMask_field::default_flags() const
}
// Certified 100%
WINDOW TMask_field::wincreate(WIN_TYPE ct, short dx, short dy,
const char* title, WINDOW parent,
long flags)
// @mfunc Crea la finestra del controllo
//
// @rdesc Ritorna la finestra creata
WINDOW TMask_field::wincreate(
WIN_TYPE ct, // @parm Tipo di finestra da creare
short dx, // @parm Larghezza iniziale della finestra
short dy, // @parm Altezza iniziale della finestra
const char* title, // @parm Titolo della finestra
WINDOW parent, // @parm Finestra padre di quella da creare
long flags) // @parm fleg della finestra
{
_win = xvt_create_control(ct,
_x, _y, dx, dy,
@ -282,7 +305,13 @@ WINDOW TMask_field::parent() const
// Certified 90%
int TMask_field::create_prompt(WINDOW parent, int width, int heigth)
// @mfunc Crea il prompt del controllo
//
// @rdesc Ritorna la lunghezza del prompt creato
int TMask_field::create_prompt(
WINDOW parent, // @parm Finestra padre alla quale assegnare il prompt del controllo
int width, // @parm Larghezza del controllo
int heigth) // @parm Altezza del controllo
{
const WIN_TYPE wt = (heigth < 3) ? WC_TEXT : WC_GROUPBOX;
if (width < 1) width = _prompt.len() - (_prompt[0] == '@' ? 2 : 0);
@ -333,7 +362,12 @@ void TMask_field::create(WINDOW parent)
// Certified 100%
void TMask_field::enable(bool on)
// @mfunc Abilita/disabilita il campo (lo rende scrivibile)
void TMask_field::enable(
bool on) // @parm Operazione da svolgere:
//
// @flag TRUE | Abilita il campo (default)
// @flag FALSE | Disabilita il campo
{
const word c = class_id();
if (c != CLASS_FIELD)
@ -353,7 +387,12 @@ void TMask_field::enable_default()
// Certified 100%
void TMask_field::show(bool on)
// @mfunc Permette di rendere visibile/invisibile un campo
void TMask_field::show(
bool on) // @parm Operazione da svolgere:
//
// @flag TRUE | Rendere visibile il campo (default)
// @flag FALSE | Rendere invisibile il campo
{
xvt_vobj_set_visible(_win, on);
if (_promptwin != NULL_WIN)
@ -420,7 +459,16 @@ const char* TMask_field::get_field_data() const
{ return NULL; }
const char* TMask_field::picture_data(const char* data, bool video)
// @mfunc Permette di dare la stessa formattazione del campo della maschera
//
// @rdesc Ritorna la stringa formattata
const char* TMask_field::picture_data(
const char* data, // @parm Stringa da dare il formato
bool video) // @parm Se TRUE permette di visualizzare la stringa a video
// @comm Utilizzata soprattutto dagli sheet che in questo modo possono formattare
// il contenuto delle celle con lo stesso formato deglia altri campi della maschera
// dell stesso tipo.
{
fpark = data;
if (video)
@ -760,7 +808,15 @@ bool TMask_field::on_hit()
}
bool TMask_field::to_check(KEY k, bool checkrun) const
// @mfunc Permette di spedire il check
//
// @rdesc Ritorna il risultato del check:
//
// @flag TRUE | Se il check ha dato esito positivo
// @flag FALSE | Se il check ha dato esito negativo
bool TMask_field::to_check(
KEY k, // @parm Tasto da passare al campo come simulazione di inizio controllo
bool checkrun) const // @parm Indice se il controllo va effettuato mentre il campo ha il focus??
{
bool yes = (k == K_TAB && focusdirty()) || (k == K_ENTER && dirty());
@ -884,7 +940,16 @@ void TMask_field::set_focus() const
HIDDEN char* const _msg = &__tmp_string[512];
#define build_msg() va_list argptr;va_start(argptr,fmt);vsprintf(_msg,fmt,argptr);va_end(argptr)
bool TMask_field::error_box(const char* fmt, ...) const
// @mfunc Crea una error-box relativo al campo (chiama <f error_box>)
//
// @rdesc Ritorna sempre FALSE
bool TMask_field::error_box(
const char* fmt, // @parm Formato della stringa da scrivere
...) const // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Se il campo e' uno sheet viene aggiornata la barra di stato, altrimenti
// viene creata una finestra di errore normale.
{
build_msg();
if (mask().is_sheetmask() && !mask().is_running())
@ -910,7 +975,15 @@ bool TMask_field::message_box(const char* fmt, ...) const
return FALSE;
}
bool TMask_field::warning_box(const char* fmt, ...) const
// @mfunc Crea una warning-box relativo al campo (chiama <f warning_box>)
//
// @rdesc Ritorna sempre FALSE
bool TMask_field::warning_box(
const char* fmt, // @parm Formato della stringa da scrivere
...) const // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Se il campo e' uno sheet viene aggiornata la barra di stato, altrimenti
// viene creata una finestra di warning normale.
{
build_msg();
@ -1286,8 +1359,13 @@ int TBrowse::inputs()
return inp;
}
// Ritorna il numero di campi non vuoti e non filtrati
int TBrowse::do_input(bool filter)
// @mfunc Ritorna il numero di campi non vuoti e non filtrati
//
// @rdesc Numero di campi vuoti e non filtrati
int TBrowse::do_input(
bool filter) // @parm ??
// @comm Questa funzione serve ai TCursor_sheet
{
int ne = 0;
if (_inp_id.empty()) return ne;
@ -2032,7 +2110,9 @@ const char* TEdit_field::format(const char* d)
}
const char* TEdit_field::picture_data(const char* data, bool video)
{
if (video)
{
@ -2049,7 +2129,14 @@ const char* TEdit_field::picture_data(const char* data, bool video)
}
bool TEdit_field::validate(KEY k)
// @mfunc Chiama l' eventuale funzione di validazione
//
// @rdesc Ritorna il risultato dell funzione di validazione:
//
// @flag TRUE | Se la validata ha avuto successo
// @flag FALSE | Se la validata no ha avuto successo
bool TEdit_field::validate(
KEY k) // @parm Tasto da passare alla funzione di validazione
{
return ::validate(_validate_func, *this, k, _validate_parms);
}
@ -2076,7 +2163,14 @@ bool TEdit_field::on_hit()
return TRUE;
}
// @mfunc Mostra un messaggio di errore di default per il campo
//
// @rdesc Ritorna sempre FALSE
bool TEdit_field::default_error_box() const
// @comm Se il campo non possiede un warning particolare chiama la <f error_box>
// indicando genericamente che il valore immesso non e' valido, altrimenti
// riporta il warning associato al campo
{
if (_warning.empty())
{
@ -2226,7 +2320,12 @@ bool TEdit_field::check(CheckTime t)
return ok;
}
void TEdit_field::enable_check(bool on)
// @mfunc Permette di abilitare/disabilitare un check di un campo
void TEdit_field::enable_check(
bool on) // @parm Operazione da svolgere
//
// @flag TRUE | Abilita il check del campo (default)
// @flag FALSE | Disabilita il check del campo
{
_check_enabled = on;
if (_buttonwin != NULL_WIN)
@ -2481,7 +2580,21 @@ TDate_field::TDate_field(TMask* m) : TEdit_field(m)
}
const char* TDate_field::format_data(const char* datum, bool* ch)
// @mfunc Permette di formattare la data secondo i flag correnti
//
// @rdesc Ritorna la data formattata
const char* TDate_field::format_data(
const char* datum, // @parm Stringa contenenete la data da formattare
bool* ch) // @parm Indica se e' stata cambiato il formato rispetto alla stringa passsata
// @comm Permette di gestire anche alcuni date particolari come:
//
// @flag IERI | Inserisce la data del giorno precedente a quella del sistema
// @flag OGGI | Inserisce la data del sistema
// @flag DOMANI | Inserisce la data del giorno successivo a quella del sistema
// @flag PRIMO | Primo giorno dell'anno (01-01-aa)
// @flag ULTIMO | Ultimo giorno dell'anno (31-12-aa)
// @flag NATALE | Giorno di natale (25-12-aa)
{
bool changed = FALSE;
// TFixed_string data(get_window_data(), 15);
@ -2866,7 +2979,12 @@ int TList_field::items() const
return _codes.items();
}
void TList_field::add_item(const char* s)
// @mfunc Aggiunge delle voci al list sheet
void TList_field::add_item(
const char* s) // @parm Voci da aggiungere
// @comm Se il parametro <p s> e' passato con il formato di una <c TToken_string> vengono
// aggiunte tante voci quanti sono gli elementi.
{
TToken_string t(s);
const TString16 item(t.get());
@ -2936,7 +3054,13 @@ void TList_field::add_list()
}
void TList_field::replace_items(const char* codes, const char* values)
// @mfunc Sostituisce alle voci correnti quelle passate come parametri
void TList_field::replace_items(
const char* codes, // @parm Codici da sostituire ai correnti
const char* values) // @parm Voci da sostituire a quelle correnti
// @comm I parametri <p codes> e <p values> devono essere TToken_string se lo voci da sostiutire
// sono piu' di una
{
_codes = codes;
_values = values;
@ -3217,8 +3341,15 @@ void TRadio_field::show(bool on)
_flags.shown = on;
}
// Return TRUE if focus has left the radio
bool TRadio_field::move_focus(int d)
// @mfunc Sposta il focus dal radio button
//
// @mfunc Ritorna TRUE se il focus ha lasciato il radio button
bool TRadio_field::move_focus(
int d) // @parm Numero di posizioni di spostamento del focus
// @comm Poiche' la gestione dei radio button e' gestita direttamente da Windows
// in caso si prema TAB o SHIF+TAB all'interno si passa da una voce
// all'altra e non al campo successivo o precedente.
{
const int act = _active_item + d;
if (act >= _nitems || act < 0)

File diff suppressed because it is too large Load Diff

View File

@ -21,9 +21,9 @@ class TIndwin : public TWindow
// @access Private Member
enum {
// @cmember Controlla se e' stato premuto il tasto "Annulla"
// @ccost IND_CANCELLED | 0x01 | Controlla se e' stato premuto il tasto "Annulla"
IND_CANCELLED = 0x01,
// @cmember Controlla se l'operazione e' terminata
// @ccost IND_FINISHED | 0x02 | Controlla se l'operazione e' terminata
IND_FINISHED= 0x02 };
// @cmember Testo da inserire nella finestra

View File

@ -17,11 +17,11 @@
class TSort : public TObject
// @author:(INTERNAL) Alex
{
// @access Private Member
// @friend TRecfield
friend TRecfield;
// @access Private Member
// @cmember Puntatore alla struttura di un sort
struct s_prm* _sortvar;
// @cmember Indice nella tabella dei campi della chiave

View File

@ -616,7 +616,8 @@ TString& TString::picture(
// Certified 90% (spark size limited)
// @mfunc Manda un output formattato alla stringa oggetto
TString& TString::format(
const char* fmt, ...) // @parm Stringa da formattare
const char* fmt, // @parm Stringa da formattare
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Funziona come la funzione "sprintf" standard del C e ritorna la
// stringa formattata con i parametri passati.
@ -781,7 +782,8 @@ void TFixed_string::strncpy(const char* s, int n)
// Certified 99%
// @mfunc Manda un output formattato alla stringa oggetto
TString& TFixed_string::format(
const char* fmt, ...)// @parm Formato della stringa
const char* fmt, // @parm Formato della stringa
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Funziona come la funzione "sprintf" standard del C e ritorna la
// stringa formattata con i parametri passati.

View File

@ -85,7 +85,8 @@ public:
int size() const
{ return _size; }
// @cmember Ritorna la lunghezza della stringa (numero di caratteri)
int len() const { return strlen(_str); }
int len() const
{ return strlen(_str); }
// @cmember Controlla se la stringa e' vuota (TRUE se non contiene caratteri)
bool empty() const
{ return *_str == '\0'; }
@ -305,10 +306,12 @@ public:
// @class TFilename | Classe per la gestione dei nome dei file
//
// @base public | TString80 (TString256 per Windows '95)
// @base public | TString80
class TFilename : public TString80
{
// @comm Nel caso di utilizzo di Windows 95 occorre cambiare le classe base in <c TString256>
// @access Public Member
public:
// @cmember Costruttore

View File

@ -175,7 +175,8 @@ int list_files(
//
// @rdesc Ritorna la stringa desiderata
char* format(
const char* fmt, ...) // @parm Formato che deve essere dato alla stringa
const char* fmt, // @parm Formato che deve essere dato alla stringa
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
// @comm Il funzionamento e' come la <f sprintf> del C, solo che non e' necessario passare la
// stringa di destinazione alla funzione