Aggiunta documentazione in linea
git-svn-id: svn://10.65.10.50/trunk@2562 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
42bd4c1615
commit
d1298ebfb2
include
applicat.cppapplicat.harchives.cpparchives.harray.cpparray.hassoc.cppassoc.hbrwapp.cppbrwapp.hchecks.cppchecks.hconfapp.cppconfapp.hconfig.cppconfig.hcontrols.cppcontrols.hdate.cppdate.hexecp.cppexecp.hexpr.hfiles.cppfiles.hform.cppform.hgolem.hisam.cppisam.hmailbox.cppmailbox.hmask.cppmask.hmaskfld.cppmaskfld.hmsksheet.cppmsksheet.hobject.hprefix.cppprefix.hprintapp.cppprintapp.hprinter.cppprinter.hprintwin.cppprintwin.hprogind.cppprogind.hreal.cppreal.hrectypes.hrelapp.cpprelapp.hrelation.cpprelation.hscanner.cppscanner.hsheet.cppsheet.hsort.hstack.hstdtypes.cppstdtypes.hstrings.cppstrings.htabapp.htabutil.htext.cpptext.hutility.cpputility.hvalidate.cppviswin.cppviswin.hwindow.cppwindow.hxvtility.cpp
@ -26,7 +26,6 @@
|
||||
|
||||
#define BITTEST(w,p) (((w) & (0x0001 << (p))) != 0)
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Metodi di accesso globali all'applicazione corrente
|
||||
@ -34,6 +33,8 @@
|
||||
|
||||
HIDDEN TApplication* _application = NULL;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna l'applicazione in corso
|
||||
//
|
||||
// @rdesc Ritorna il reference all'applicazione in corso
|
||||
@ -43,6 +44,8 @@ TApplication& main_app()
|
||||
return *_application;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Controlla se si sta eseguendo xvt
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
@ -52,6 +55,7 @@ TApplication& main_app()
|
||||
bool xvt_running()
|
||||
{ return _application != NULL; }
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Gestione dello sfondo della finestra principale
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -389,6 +393,7 @@ void TApplication::set_perms()
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge il parametro /uUTENTE e lo toglie dalla lista
|
||||
void TApplication::check_parameters(
|
||||
@ -418,6 +423,7 @@ void TApplication::check_parameters(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Fa partire l'applicazione
|
||||
void TApplication::run(
|
||||
@ -512,6 +518,7 @@ void TApplication::uncheck_menu_item(MENU_TAG item)
|
||||
xvt_menu_update(TASK_WIN);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di abilitare/disabilitare una voce di menu'
|
||||
void TApplication::enable_menu_item(
|
||||
@ -616,6 +623,7 @@ bool TApplication::set_firm(long newfirm)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Gestisce le voci di configurazione
|
||||
//
|
||||
@ -676,6 +684,7 @@ bool TApplication::config()
|
||||
return ok;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
// @mfunc Cambia il cursore del mouse
|
||||
void TApplication::set_cursor(
|
||||
bool w) // @parm Indica il tipo di cursore da utilizzare:
|
||||
@ -700,9 +709,11 @@ void TApplication::set_cursor(
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla se al programma corrente e' concesso cambiare ditta da menu.
|
||||
//
|
||||
// @rdesc Ritoran i seguenti valori:
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
//
|
||||
// @flag TRUE | Se e' abilitata la voce di menu' per il cambio della ditta
|
||||
// @flag FALSE | Se non e' possibile cambiare ditta da menu'
|
||||
|
@ -9,7 +9,6 @@
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
#define MSG_AI "AI" // message auto_insert (relapp)
|
||||
#define MSG_FS "FS" // message filtered start (relapp)
|
||||
@ -18,44 +17,45 @@
|
||||
#define CHK_DONGLE 0 // dongle authorization checks
|
||||
#define CHK_USER 1 // user authorization checks
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TApplication | Classe per la gestione di tutte le applicazioni PRASSI
|
||||
class TApplication
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Identificatore del menu' legato all'applicazione
|
||||
// @cmember:(INTERNAL) Identificatore del menu' legato all'applicazione
|
||||
int _bar;
|
||||
// @cmember Numero di argomenti passati all'applicazione
|
||||
// @cmember:(INTERNAL) Numero di argomenti passati all'applicazione
|
||||
int __argc;
|
||||
// @cmember Array di argomenti passati all'applicazione
|
||||
// @cmember:(INTERNAL) Array di argomenti passati all'applicazione
|
||||
const char** __argv;
|
||||
// @cmember Array di autorizzazione concessa della chiavi
|
||||
// @cmember:(INTERNAL) Array di autorizzazione concessa della chiavi
|
||||
TBit_array _dongle_aut;
|
||||
// @cmember Array di autorizzazione concessa all'utente
|
||||
// @cmember:(INTERNAL) Array di autorizzazione concessa all'utente
|
||||
TBit_array _user_aut;
|
||||
|
||||
// @cmember Nome dell'applicazione
|
||||
// @cmember:(INTERNAL) Nome dell'applicazione
|
||||
TString80 _name;
|
||||
// @cmember Titolo della finestra
|
||||
// @cmember:(INTERNAL) Titolo della finestra
|
||||
TString80 _title;
|
||||
|
||||
// @cmember Codice della ditta
|
||||
// @cmember:(INTERNAL) Codice della ditta
|
||||
long _savefirm;
|
||||
// @cmember Indica se e' stata creata con successo
|
||||
// @cmember:(INTERNAL) Indica se e' stata creata con successo
|
||||
bool _create_ok;
|
||||
// @cmember Handle del modulo del programma di cui si sta attendendo la fine
|
||||
// @cmember:(INTERNAL) Handle del modulo del programma di cui si sta attendendo la fine
|
||||
word _waiting;
|
||||
|
||||
// @cmember Termine dell'applicazione
|
||||
// @cmember:(INTERNAL) Termine dell'applicazione
|
||||
void terminate();
|
||||
// @cmember Cambia il cursore del mouse
|
||||
// @cmember:(INTERNAL) Cambia il cursore del mouse
|
||||
void set_cursor(bool w);
|
||||
// @cmember Gestisce le voci di configurazione
|
||||
// @cmember:(INTERNAL) Gestisce le voci di configurazione
|
||||
bool config();
|
||||
// @cmember About box: risposta alla opzione Informazioni del menu File
|
||||
// @cmember:(INTERNAL) About box: risposta alla opzione Informazioni del menu File
|
||||
void about() const;
|
||||
|
||||
// @access Protected Member
|
||||
@ -92,7 +92,7 @@ protected:
|
||||
|
||||
// @cmember Setta i permessi di utilizzo dei moduli
|
||||
void set_perms();
|
||||
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
// @cmember Modifca la barra dei menu' inserendo la <p menubar>
|
||||
@ -101,8 +101,6 @@ public:
|
||||
// @cmember Fa partire l'applicazione
|
||||
void run(int argc, char* argv[], const char* name);
|
||||
|
||||
// @comm Queste funzioni possono essere ridefinite da ogni applicazione
|
||||
//
|
||||
// @cmember Ritorna l'identificatore della classe
|
||||
virtual word class_id() const
|
||||
{ return CLASS_APPLICATION; }
|
||||
|
@ -37,8 +37,20 @@ public:
|
||||
// TArchive
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
FILE* TArchive::ask_disk(TFilename& name, int disk, char floppy, bool lettura) const
|
||||
// @mfunc Funzione per richiedere all'utente il dischetto e per controllare la
|
||||
// corretta sequenza dei dischetti da inserire
|
||||
//
|
||||
// @rdesc Ritorna il puntatore al file presente (o meno) sul dischetto
|
||||
FILE* TArchive::ask_disk(
|
||||
TFilename& name, // @parm Nome del file da creare/cercare su disco
|
||||
int disk, // @parm Numero progressivo del set
|
||||
char floppy, // @parm Drive sul quale effettuare l'operazione (A, B, C, ...)
|
||||
bool lettura) const // @parm Indica il modo di apertura del file:
|
||||
//
|
||||
// @flag TRUE | Apre il file in lettura
|
||||
// @flag FALSE | Apre il file in scrittura
|
||||
{
|
||||
TFilename prev(name);
|
||||
prev.ext(format("%03d", disk-1)); // File precedente
|
||||
@ -111,9 +123,15 @@ int TArchive::build_backup_list(long firm, TString_array& fl) const
|
||||
return fl.items();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// Costruisce la lista delle directory da scompattare
|
||||
int TArchive::build_restore_list(long firm, char floppy, TString_array& fl) const
|
||||
// @mfunc Costruisce la lista delle directory da scompattare
|
||||
//
|
||||
// @rdesc Ritorna il numero di direttori da ripristinare
|
||||
int TArchive::build_restore_list(
|
||||
long firm, // @parm Ditta di cui effettuare il salvataggio
|
||||
char floppy, // @parm Floppy su cui effettuare il backup
|
||||
TString_array& fl) const // @parm Nomi dei direttori da ripristinare
|
||||
{
|
||||
if (firm < 0) // Crea lista automaticamente
|
||||
{
|
||||
@ -144,8 +162,15 @@ int TArchive::build_restore_list(long firm, char floppy, TString_array& fl) cons
|
||||
return fl.items();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
bool TArchive::fsplit(const char* filename, char floppy, const char* desc) const
|
||||
// @mfunc Spezza il file in modo da farlo stare sul dischetto
|
||||
//
|
||||
// @rdesc Ritorna se e' riuscito a spezzare il file
|
||||
bool TArchive::fsplit(
|
||||
const char* filename, // @parm Nome del file da spezare
|
||||
char floppy, // @parm Floppy su cui scaricare il file
|
||||
const char* desc) const // @parm Descrizione dell'archivio
|
||||
{
|
||||
const TFilename from(filename); // File da splittare
|
||||
|
||||
@ -237,8 +262,14 @@ bool TArchive::fsplit(const char* filename, char floppy, const char* desc) const
|
||||
return ok;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
bool TArchive::fbuild(const char* filename, char floppy) const
|
||||
// @mfunc Ricostruisce il file spezzato
|
||||
//
|
||||
// @rdesc Ritorna se e' riuscito a ricostruire il file
|
||||
bool TArchive::fbuild(
|
||||
const char* filename, // @parm Nome del file da ricostrutire
|
||||
char floppy) const // @parm Floppy da cui recupare i pezzi del file
|
||||
{
|
||||
const TFilename work(filename);
|
||||
|
||||
@ -320,7 +351,23 @@ bool TArchive::fbuild(const char* filename, char floppy) const
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TArchive::backup(const char* dir, char floppy, const char* desc, bool pr_set)
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Effettua il backup della ditta o della directory
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione
|
||||
bool TArchive::backup(
|
||||
const char* dir, // @parm Directory di cui effettuare il backup
|
||||
char floppy, // @parm Floppy su cui effettuare il backup
|
||||
const char* desc, // @parm Descrizione da assegnare al backup
|
||||
bool pr_set) // @parm Se TRUE setta il prefix come vuoto (default TRUE)
|
||||
// @parm long | firm | Ditta di cui effettuare il backup
|
||||
|
||||
// @syntax bool backup(const char* dir, char floppy, const char* desc, bool pr_set);
|
||||
// @syntax bool backup(long firm, char floppy, const char* desc, bool pr_set);
|
||||
|
||||
// @comm Il parametro <p pr_set> e' utilizzato per evitare errori di riaperture di files.
|
||||
|
||||
{
|
||||
const TString16 old(prefix().name());
|
||||
if (pr_set)
|
||||
@ -376,7 +423,22 @@ bool TArchive::backup(long firm, char floppy, const char* desc, bool pr_set)
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TArchive::restore(const char* dir, char floppy, bool tmp, bool pr_set)
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Effettua il restore della ditta o dell directory
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione
|
||||
bool TArchive::restore(
|
||||
const char* dir, // @parm Directory di cui effettuare il restore
|
||||
char floppy, // @parm Floppy da cui leggere i dati
|
||||
bool tmp, // @parm Directory temporanea da utilizzare
|
||||
bool pr_set) // @parm Se TRUE setta il prefix come vuoto (default TRUE)
|
||||
|
||||
// @syntax bool restore(const char* dir, char floppy, bool temp, bool pr_set);
|
||||
// @syntax bool restore(long firm, char floppy, bool temp, bool pr_set);
|
||||
|
||||
// @comm Il parametro <p pr_set> e' utilizzato per evitare errori di riaperture di files.
|
||||
|
||||
{
|
||||
TFilename work;
|
||||
if (tmp)
|
||||
|
@ -15,29 +15,55 @@
|
||||
|
||||
class ALArchive;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TArchive | Classe per effettuare compressione e archiviazione di dati
|
||||
//
|
||||
// @base public | TObject
|
||||
class TArchive : public TObject
|
||||
|
||||
// @author:(INTERNAL) Angelo
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @ccost:(INTERNAL) BUFSIZE | 4096*7 | Dimensione del buffer di lettura/scrittura su dischetto
|
||||
enum { BUFSIZE = 4096*7 };
|
||||
// @cmember:(INTERNAL) Oggetto per la gestione di archivi (vedi <c ALArchive>)
|
||||
ALArchive* _arc;
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
// @cmember NON IMPLEMENTATA
|
||||
KEY query() const;
|
||||
// @cmember Funzione per richiedere all'utente il dischetto e per controllare la
|
||||
// corretta sequenza dei dischetti da inserire
|
||||
FILE* ask_disk(TFilename& name, int disk, char floppy, bool lettura) const;
|
||||
|
||||
// @cmember Ritorna la dimensione del file <p f>
|
||||
long fsize(FILE* f) const;
|
||||
// @cmember Spezza il file in modo da farlo stare sul dischetto
|
||||
bool fsplit(const char* filename, char floppy, const char* desc = "") const;
|
||||
// @cmember Ricostruisce il file spezzato
|
||||
bool fbuild(const char* filename, char floppy) const;
|
||||
|
||||
|
||||
// @cmember Ricostruisce la lista dei file contenuti nel backup
|
||||
int build_backup_list(long firm, TString_array& fl) const;
|
||||
// @cmember Costruisce la lista delle directory da scompattare
|
||||
int build_restore_list(long firm, char floppy, TString_array& fl) const;
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
// @cmember Effettua il backup della directory
|
||||
bool backup(const char* dir, char floppy, const char* desc, bool pr_set=TRUE);
|
||||
// @cmember Effettua il backup della ditta
|
||||
bool backup(long firm, char floppy, const char* desc, bool pr_set=TRUE);
|
||||
|
||||
// @cmember Effettua il restore della directory
|
||||
bool restore(const char* dir, char floppy, bool temp, bool pr_set=TRUE);
|
||||
// @cmember Effettua il restore della ditta
|
||||
bool restore(long firm, char floppy, bool temp, bool pr_set=TRUE);
|
||||
|
||||
// @cmember Interrompe le operazioni
|
||||
void stop_job();
|
||||
};
|
||||
|
||||
|
@ -114,7 +114,7 @@ TObject* TArray::pred_item( )
|
||||
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Modifica la dimensione dell'array.
|
||||
void TArray::resize(
|
||||
@ -145,8 +145,12 @@ void TArray::resize(
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
|
||||
// @mfunc Rimuove uno o tutti (default) gli elementi
|
||||
// @rdesc Ritorna uno dei seguenti parametri:
|
||||
//
|
||||
// @flag TRUE | Se l'operazione e' riuscita con successo
|
||||
// @flag FALSE | Se il numero di elementi e' rimasto invariato
|
||||
bool TArray::destroy(
|
||||
int index, // @parm Numero dell'elemento da eliminare (default -1)
|
||||
bool pack) // @parm Se true richiama la funzione <mf TArray::pack> per compattare gli elementi dell'array (default FALSE)
|
||||
@ -156,11 +160,7 @@ bool TArray::destroy(
|
||||
// <nl>Nel caso il parametro pack sia TRUE permette di rendere contigui
|
||||
// tutti gli elementi diversi da NULL tramite la chiamata alla funzione
|
||||
// <mf TArray::pack>.
|
||||
//
|
||||
// @rdesc Ritorna uno dei seguenti parametri:
|
||||
//
|
||||
// @flag TRUE | Se l'operazione e' riuscita con successo
|
||||
// @flag FALSE | Se il numero di elementi e' rimasto invariato
|
||||
|
||||
{
|
||||
const int old = _items;
|
||||
|
||||
@ -235,6 +235,8 @@ word TArray::class_id() const
|
||||
return CLASS_ARRAY;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Stampa un array
|
||||
void TArray::print_on(
|
||||
ostream& out) const // @parm indica l'output sul quale reindirizzare la stampa (funzione standard del C++)
|
||||
@ -255,15 +257,16 @@ void TArray::print_on(
|
||||
out << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla se si tratta di un oggetto valido
|
||||
bool TArray::ok() const
|
||||
|
||||
// @rdesc Ritorna uno dei seguenti parametri:
|
||||
//
|
||||
// @rdesc Ritorna uno dei seguenti parametri:
|
||||
// @flag TRUE | Se l'array contiene degli elementi
|
||||
// @flag FALSE | Se l'array e' vuoto
|
||||
//
|
||||
bool TArray::ok() const
|
||||
|
||||
// @comm Controlla se la dimensione dell'array e' uguale a 0 e se esistono
|
||||
// degli elementi diversi da NULL
|
||||
|
||||
@ -271,7 +274,12 @@ bool TArray::ok() const
|
||||
return(size() != 0 && (_data != NULL));
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge un oggetto ad un array.
|
||||
//
|
||||
// @rdesc La funzione ritorna la posizione nella quale e' stato aggiunto
|
||||
// l'oggetto.
|
||||
int TArray::add(
|
||||
TObject *object, // @parm Oggetto da aggiungere nell'array
|
||||
int index) // @parm Posizione in cui aggiungere l'oggetto
|
||||
@ -289,9 +297,6 @@ int TArray::add(
|
||||
// <nl><nl>ATTENZIONE: Nel caso si passi l'oggetto per indirizzo deve
|
||||
// essere definita la funzione <mf TObject::dup>.
|
||||
//
|
||||
// @rdesc La funzione ritorna la posizione nella quale e' stato aggiunto
|
||||
// l'oggetto.
|
||||
//
|
||||
// @xref <mf TArray::insert>
|
||||
{
|
||||
if (index < 0) for (index = _next; index < size() && _data[index]; index++);
|
||||
@ -325,7 +330,11 @@ int TArray::add(
|
||||
return index;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Inserisce un elemento dell'array nella posizione index
|
||||
//
|
||||
// @rdesc La funzione ritorna la posizione nella quale e' stato inserito l'oggetto.
|
||||
int TArray::insert(
|
||||
TObject *object, // @parm Oggetto da inserire nell'array
|
||||
int index) // @parm Posizione in cui inserire l'oggetto
|
||||
@ -341,8 +350,6 @@ int TArray::insert(
|
||||
// <nl><nl>ATTENZIONE: Nel caso si passi l'oggetto per indirizzo deve
|
||||
// essere definita la funzione <mf TObject::dup>.
|
||||
//
|
||||
// @rdesc La funzione ritorna la posizione nella quale e' stato inserito l'oggetto.
|
||||
//
|
||||
// @xref <mf TArray::add>
|
||||
{
|
||||
if (objptr(index))
|
||||
@ -368,13 +375,17 @@ int TArray::insert(const TObject& object, int index)
|
||||
return insert(objptr, index);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Elimina l'elemento nella posizione index dell'array
|
||||
//
|
||||
// @rdesc Ritorna l'elemento dell'array eliminato senza farne la delete
|
||||
TObject* TArray::remove(
|
||||
int index, // @parm Indica la posizione dell'elemento da eliminare
|
||||
bool dopack) // @parm Indica se si vuole richiamare la funzione
|
||||
// <mf TArray::pack> (default FALSE) per spostare gli elementi successivi dell'array
|
||||
|
||||
// @rdesc Ritorna l'elemento dell'array eliminato senza farne la delete
|
||||
|
||||
{
|
||||
CHECKD(index >= 0, "Can't remove array item ", index);
|
||||
|
||||
@ -404,9 +415,13 @@ void TArray::swap(int i1, int i2)
|
||||
if (o2) add(o2, i1);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Cerca il prossimo oggetto dell'array
|
||||
int TArray::succ(int i) const
|
||||
//
|
||||
// @rdesc Ritorna l'indice del prossimo elemento trovato o size() se non esiste
|
||||
int TArray::succ(int i) const
|
||||
|
||||
{
|
||||
CHECKD(i >= -1, "Bad array index ", i);
|
||||
for (i++; i < size(); i++)
|
||||
@ -414,9 +429,13 @@ int TArray::succ(int i) const
|
||||
return i;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Cerca il precedente oggetto dell'array
|
||||
int TArray::pred(int i) const
|
||||
//
|
||||
// @rdesc Ritorna l'indice dell'elemento precedente o -1 se non esiste
|
||||
int TArray::pred(int i) const
|
||||
|
||||
{
|
||||
CHECKD(i <= size(), "Bad array index ", i);
|
||||
for (i--; i >= 0; i--)
|
||||
@ -424,20 +443,30 @@ int TArray::pred(int i) const
|
||||
return i;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Cerca il primo oggetto dell'array
|
||||
int TArray::first() const
|
||||
//
|
||||
// @rdesc Ritorna l'indice del primo elemento trovato o size() se l'array e' vuoto
|
||||
int TArray::first() const
|
||||
|
||||
{
|
||||
return succ(-1);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Cerca l'ultimo oggetto dell'array
|
||||
int TArray::last() const
|
||||
//
|
||||
// @rdesc Ritorna l'indice dell'ultimo elemento trovato o -1 se l'array e' vuoto
|
||||
int TArray::last() const
|
||||
|
||||
{
|
||||
return pred(size());
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Rende contigui tutti gli elementi non nulli
|
||||
void TArray::pack()
|
||||
|
||||
@ -460,6 +489,8 @@ void TArray::pack()
|
||||
_next = next;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Funzione per permettere il confonto tra 2 oggetti.
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -483,6 +514,8 @@ static int sortable_compare(
|
||||
return s1->compare(*s2);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ordina i TObject secondo il criterio definito in <t COMPARE_FUNCTION>
|
||||
void TArray::sort(
|
||||
COMPARE_FUNCTION compare) // @parm Funzione indicante il criterio di ordinamento (default TSortable)
|
||||
@ -506,8 +539,8 @@ TBit_array::TBit_array(long size) : _bit(NULL), _size(0)
|
||||
if (size) resize(index(size));
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
//
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Copia nell'array l'elemento passato come parametro
|
||||
void TBit_array::copy(
|
||||
const TBit_array& ba) // @parm Oggetto da copiare nell'array
|
||||
@ -552,7 +585,7 @@ void TBit_array::reset()
|
||||
}
|
||||
|
||||
// Certified 99%
|
||||
// @doc INTERNAL
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
// @mfunc Modifica la dimensione dell'array.
|
||||
void TBit_array::resize(
|
||||
@ -577,7 +610,6 @@ void TBit_array::resize(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool TBit_array::operator[] (long n) const
|
||||
{
|
||||
const word i = index(n);
|
||||
@ -622,12 +654,12 @@ void TBit_array::not(long n)
|
||||
|
||||
// Certified 90%
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
|
||||
// @mfunc Ritorna il numero di 1 presenti nell'array
|
||||
//
|
||||
// @rdesc Numero di 1 trovati.
|
||||
long TBit_array::ones() const
|
||||
|
||||
// @rdesc Numero di 1 trovati.
|
||||
//
|
||||
// @comm Passa tutto l'array di bit e conta quanti degli elementi presenti sono
|
||||
// settati ad 1.
|
||||
//
|
||||
@ -648,15 +680,15 @@ long TBit_array::ones() const
|
||||
|
||||
// Certified 90%
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
// @mfunc Ritorna la posizione dell'ultimo 1 nell'array
|
||||
long TBit_array::last_one() const
|
||||
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
// @mfunc Ritorna la posizione dell'ultimo 1 nell'array
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
// @flag >0 | Posizione nella quale si trova l'ultimo 1
|
||||
// @flag -1 | Se non sono presenti bit settati ad 1
|
||||
//
|
||||
|
||||
long TBit_array::last_one() const
|
||||
|
||||
// @comm Cerca all'interno dell'array di bit la posizione dell'ultimo bit
|
||||
// settato ad 1
|
||||
//
|
||||
@ -675,14 +707,17 @@ long TBit_array::last_one() const
|
||||
}
|
||||
|
||||
// Certified 90%
|
||||
// @mfunc Ritorna la posizione del primo 1 nell'array
|
||||
long TBit_array::first_one() const
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la posizione del primo 1 nell'array
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
//
|
||||
// @flag >0 | Posizione nella quale si trova il primo 1
|
||||
// @flag -1 | Se non sono presenti bit settati ad 1
|
||||
//
|
||||
|
||||
long TBit_array::first_one() const
|
||||
|
||||
// @comm Cerca all'interno dell'array di bit la posizione del primo bit
|
||||
// settato ad 1
|
||||
//
|
||||
@ -700,16 +735,17 @@ long TBit_array::first_one() const
|
||||
return -1;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
//
|
||||
// @mfunc Controlla se si tratta di un oggetto valido
|
||||
bool TBit_array::ok() const
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla se si tratta di un oggetto valido
|
||||
//
|
||||
// @rdesc Ritorna uno dei seguenti parametri:
|
||||
//
|
||||
// @flag TRUE | Se l'array contiene degli elementi
|
||||
// @flag FALSE | Se l'array e' vuoto
|
||||
//
|
||||
bool TBit_array::ok() const
|
||||
|
||||
|
||||
// @comm Controlla se la dimensione dell'array e' maggiore di 0 e se esistono
|
||||
// degli elementi diversi da NULL
|
||||
{
|
||||
@ -724,7 +760,7 @@ void TBit_array::set(const char* numbers)
|
||||
if (isdigit(*n)) set(atol(n));
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
// @mfunc Stampa un array
|
||||
void TBit_array::print_on(
|
||||
|
@ -16,29 +16,30 @@
|
||||
typedef (*COMPARE_FUNCTION)(const TObject**, const TObject**);
|
||||
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
|
||||
// @type CONDITION_FUNCTION | Prototipo funzione di ricerca/filtro
|
||||
// per i derivati di <c TObject> da passare ai metodi dei <c TContainer>
|
||||
|
||||
typedef bool (*CONDITION_FUNCTION) ( const TObject& );
|
||||
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
|
||||
// @type OPERATION_FUNCTION | Prototipo funzione attuatore
|
||||
// da passare ai metodi sort dei <c TContainer>
|
||||
|
||||
typedef void (*OPERATION_FUNCTION) ( const TObject& );
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TContainer | Generico contenitore ad accesso casuale (con indice)
|
||||
// @base public | TObject
|
||||
|
||||
class TContainer : public TObject
|
||||
{
|
||||
|
||||
// @access Private Member
|
||||
private:
|
||||
|
||||
// @author:(INTERNAL) Matteo
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
private:
|
||||
// @cmember:(INTERNAL) Ultima condizione di ricerca/firltro (vedi <t CONDITION_FUNCTION>)
|
||||
CONDITION_FUNCTION _last_condition;
|
||||
|
||||
// @access Public Member
|
||||
@ -55,7 +56,10 @@ public:
|
||||
// @cmember Ritorna numero di oggetti nel container
|
||||
virtual long objects( ) pure;
|
||||
|
||||
// @cmember Cerca il successivo elemento che soddisfa la <t OPERATION_FUNCTION>
|
||||
virtual void for_each( OPERATION_FUNCTION );
|
||||
// @cmember Cerca il successivo elemento che soddisfa la <t OPERATION_FUNCTION>
|
||||
// per ogni elemento di <t CONDITION_FUNCTION>
|
||||
virtual void for_each_that( OPERATION_FUNCTION, CONDITION_FUNCTION = NULL );
|
||||
|
||||
// @cmember Ritorna il puntatore al primo oggetto che soddisfa la condizione
|
||||
@ -68,31 +72,37 @@ public:
|
||||
virtual TObject* pred_that( );
|
||||
// @cmember Ritorna il numero di elementi che soddisfano la condizione
|
||||
virtual long count( CONDITION_FUNCTION = NULL );
|
||||
TObject* operator++ (){ return succ_item( ); };
|
||||
TObject* operator-- (){ return pred_item( ); };
|
||||
// @cmember Operatore di incremento di un elemento
|
||||
TObject* operator++ ()
|
||||
{ return succ_item( ); };
|
||||
// @cmember Operatore di dencremento di un elemento
|
||||
TObject* operator-- ()
|
||||
{ return pred_item( ); };
|
||||
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TArray | Classe per la definizione degli array
|
||||
//
|
||||
// @base public | TObject
|
||||
class TArray : public TContainer
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Array di puntatori ad oggetti
|
||||
// @cmember:(INTERNAL) Array di puntatori ad oggetti
|
||||
TObject** _data;
|
||||
// @cmember Dimensione dell'array
|
||||
// @cmember:(INTERNAL) Dimensione dell'array
|
||||
int _size;
|
||||
// @cmember Numero di elementi presenti nell'array
|
||||
// @cmember:(INTERNAL) Numero di elementi presenti nell'array
|
||||
int _items;
|
||||
// @cmember Prossimo elemento libero nell'array
|
||||
// @cmember:(INTERNAL) Prossimo elemento libero nell'array
|
||||
int _next;
|
||||
|
||||
// @cmember Indice per la scansione sequenziale
|
||||
// @cmember:(INTERNAL) Indice per la scansione sequenziale
|
||||
int _scanindex;
|
||||
|
||||
// @access Protected Member
|
||||
@ -127,17 +137,19 @@ public:
|
||||
// @cmember Ritorna numero di oggetti nell'array
|
||||
virtual long objects( )
|
||||
{ return _items; }
|
||||
|
||||
|
||||
// @cmember Ritorna numero di oggetti nell'array
|
||||
virtual int items( ) const
|
||||
{ return _items; }
|
||||
|
||||
|
||||
|
||||
// @cmember Ritorna il primo elemento dell'array
|
||||
virtual TObject* first_item( );
|
||||
|
||||
// @cmember Ritorna l'ultimo elemento dell'array
|
||||
virtual TObject* last_item( );
|
||||
|
||||
// @cmember Ritorna il successivo elemento dell'array
|
||||
virtual TObject* succ_item( );
|
||||
|
||||
// @cmember Ritorna il precedente elemento dell'array
|
||||
virtual TObject* pred_item( );
|
||||
|
||||
// @cmember Ritorna l'indice del primo oggetto
|
||||
@ -191,19 +203,23 @@ inline TObject& TArray::operator[] (int index) const
|
||||
#endif
|
||||
return *o;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TBit_array | Come la classe <c TArray> ma i suoi elementi sono bit;
|
||||
// questo permette di costruire array piu' piccoli rispetto
|
||||
// alla classe TArray.
|
||||
//
|
||||
// @base public | TObject
|
||||
class TBit_array : public TObject
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @access Private Member
|
||||
|
||||
// @cmember dimensione dell'array
|
||||
// @cmember:(INTERNAL) dimensione dell'array
|
||||
word _size;
|
||||
// @cmember bit in cui sono contenuti i dati
|
||||
// @cmember:(INTERNAL) bit in cui sono contenuti i dati
|
||||
byte* _bit;
|
||||
|
||||
// @access Protected Member
|
||||
@ -217,10 +233,12 @@ protected:
|
||||
void resize(word size);
|
||||
// @cmember Copia nell'array l'elemento passato come parametro
|
||||
void copy(const TBit_array& ba);
|
||||
// @cmember Ritorna il numero del byte contenente il bit n
|
||||
word index(long n) const { return word(n >> 3); }
|
||||
// @cmember Ritorna la posizione del bit n all'interno del byte
|
||||
byte mask(long n) const { return 1 << (n & 0x7); }
|
||||
// @cmember Ritorna il numero del byte contenente il bit <p n>
|
||||
word index(long n) const
|
||||
{ return word(n >> 3); }
|
||||
// @cmember Ritorna la posizione del bit <p n> all'interno del byte
|
||||
byte mask(long n) const
|
||||
{ return 1 << (n & 0x7); }
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
|
@ -1,8 +1,12 @@
|
||||
#include <assoc.h>
|
||||
|
||||
// @doc EXTERNAL
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Cerca l'oggetto con chiave <p k>
|
||||
//
|
||||
// @rdesc Ritorna l'oggetto corrispondente alla chiave passate come parametro.
|
||||
// <nl>Il parametro <p isnew> assume il valore TRUE se si tratta di un
|
||||
// nuovo oggetto.
|
||||
THash_object* TAssoc_array::_lookup(
|
||||
const char* k, // @parm Chiave da cercare
|
||||
bool& isnew, // @parm Viene asseganto TRUE se si tratta di una nuova chiave
|
||||
@ -12,10 +16,6 @@ THash_object* TAssoc_array::_lookup(
|
||||
// nel caso non venga trovato <p isnew> ritorna TRUE (si tratta di un
|
||||
// oggetto nuovo) e viene inserito nella tabella se il parametro <p insert>
|
||||
// e' settato a TRUE.
|
||||
//
|
||||
// @rdesc Ritorna l'oggetto corrispondente alla chiave passate come parametro.
|
||||
// <nl>Il parametro <p isnew> assume il valore TRUE se si tratta di un
|
||||
// nuovo oggetto.
|
||||
{
|
||||
const TFixed_string key(k);
|
||||
const word hv = key.hash() % HASH_SIZE;
|
||||
@ -112,7 +112,10 @@ TObject* TAssoc_array::pred_item( )
|
||||
return (o == NULL || o->_obj == NULL) ? NULL : o->_obj;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge un oggetto all'array.
|
||||
// @rdesc Ritorna TRUE se esisteva gia' un elemento con la stessa chiave
|
||||
bool TAssoc_array::add(
|
||||
const char* key, // @parm Chiave d'ordinamento
|
||||
TObject* obj, // @parm Ogetto da inserire (default=NULL)
|
||||
@ -131,8 +134,6 @@ bool TAssoc_array::add(
|
||||
// <nl><nl>Nel caso l'oggetto da aggiungere venga passato per indirizzo
|
||||
// la funzione aggiunge una copia dell'oggetto e quindi deve essere
|
||||
// definita <mf TObject::dup>
|
||||
//
|
||||
// @rdesc Ritorna TRUE se esisteva gia' un elemento con la stessa chiave
|
||||
{
|
||||
bool isnew = FALSE;
|
||||
|
||||
@ -157,16 +158,18 @@ bool TAssoc_array::add(const char* key, const TObject& obj, bool force)
|
||||
return add(key,obj.dup(),force);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Elimina un oggetto.
|
||||
// @rdesc Ritorna il risultato dell'operazione
|
||||
//
|
||||
// @flag TRUE | Eliminazione avvenuta
|
||||
// @flag FALSE | L'oggetto non e' stato trovato
|
||||
bool TAssoc_array::remove(
|
||||
const char* k) // @parm Chiave dell'oggetto da eliminare
|
||||
|
||||
// @comm Cerca nella tabella hash l'oggetto con chiave <p k> e lo elimina.
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione
|
||||
//
|
||||
// @flag TRUE | Eliminazione avvenuta
|
||||
// @flag FALSE | L'oggetto non e' stato trovato
|
||||
// @comm Cerca nella tabella hash l'oggetto con chiave <p k> e lo elimina.
|
||||
|
||||
{
|
||||
const TFixed_string key(k);
|
||||
const word hv = key.hash() % HASH_SIZE;
|
||||
@ -186,16 +189,18 @@ bool TAssoc_array::remove(
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Trova l'oggetto indicizzato
|
||||
//
|
||||
// @rdesc Ritorna l'oggetto cercato. Se l'oggetto non viene trovato
|
||||
// ritorna un errore
|
||||
TObject& TAssoc_array::find(
|
||||
const char* key) // @parm Chiave dell'oggetto da trovare
|
||||
|
||||
|
||||
// @comm Cerca l'oggetto indicizzato con chiave <p key>. Viene controllato se
|
||||
// non c'e' (normalmente si usa operator[key])
|
||||
//
|
||||
// @rdesc Ritorna l'oggetto cercato. Se l'oggetto non viene trovato
|
||||
// ritorna un errore
|
||||
{
|
||||
/* Guy ruined this
|
||||
bool isnew = FALSE;
|
||||
@ -209,11 +214,13 @@ TObject& TAssoc_array::find(
|
||||
return *o;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna l'oggetto con chiave <p key>
|
||||
// @rdesc Se l'oggetto esiste ne ritorna il puntatore, altrimenti ritorna NULL
|
||||
TObject* TAssoc_array::objptr(
|
||||
const char* key) // @parm Chiave dell'oggetto da ritornare
|
||||
|
||||
// @rdesc Se l'oggetto esiste ne ritorna il puntatore, altrimenti ritorna NULL
|
||||
{
|
||||
bool isnew = FALSE;
|
||||
THash_object* o = _lookup(key,isnew);
|
||||
@ -222,14 +229,17 @@ TObject* TAssoc_array::objptr(
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla l'esistenza di una chiave
|
||||
//
|
||||
// @rdesc Ritorna il risultato della ricerca
|
||||
//
|
||||
// @flag TRUE | Se la chiave esiste
|
||||
// @flag FALSE | Se la chiave non esiste
|
||||
bool TAssoc_array::is_key(
|
||||
const char* key) // @parm Chiave da cercarne l'esistenza
|
||||
|
||||
// @rdesc Ritorna il risultato della ricerca
|
||||
//
|
||||
// @flag TRUE | Se la chiave esiste
|
||||
// @flag FALSE | Se la chiave non esiste
|
||||
{
|
||||
bool isnew = FALSE;
|
||||
const THash_object* o = _lookup(key, isnew);
|
||||
@ -237,13 +247,15 @@ bool TAssoc_array::is_key(
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna solo l'oggetto
|
||||
//
|
||||
// @rdesc Ritorna il puntatore all'oggetto (se diverso da NULL), altrimenti
|
||||
// ritorna error object
|
||||
TObject* TAssoc_array::get()
|
||||
|
||||
// @rdesc Ritorna il puntatore all'oggetto (se diverso da NULL), altrimenti
|
||||
// ritorna error object
|
||||
//
|
||||
// @xref <mf TAssoc_array::get_hashobj>
|
||||
// @xref <mf TAssoc_array::get_hashobj>
|
||||
{
|
||||
const TArray* arr = &_data[_row];
|
||||
|
||||
@ -261,14 +273,16 @@ TObject* TAssoc_array::get()
|
||||
return (o == NULL || o->_obj == NULL) ? &error : o->_obj;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna l'oggetto e la relativa chiave
|
||||
//
|
||||
// @rdesc Se l'oggetto esiste ne ritorna il puntatore, altrimenti ritorna NULL
|
||||
THash_object* TAssoc_array::get_hashobj()
|
||||
|
||||
// @comm Se l'oggetto viene trovato viene richiamata la funzione
|
||||
// <mf TAssoc_array::objptr>
|
||||
//
|
||||
// @rdesc Se l'oggetto esiste ne ritorna il puntatore, altrimenti ritorna NULL
|
||||
//
|
||||
// @xref <mf TAssoc_array::get>
|
||||
{
|
||||
const TArray* arr = &_data[_row];
|
||||
|
@ -5,21 +5,24 @@
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class THash_object | Classe per la definizione degli elementi di una tabella hash.
|
||||
//
|
||||
// @base public | TObject
|
||||
class THash_object : public TObject
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
{
|
||||
// @cfriend TAssoc_array
|
||||
friend class TAssoc_array;
|
||||
friend class TAssoc_array;
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Chiave d'ordinamento
|
||||
// @cmember:(INTERNAL) Chiave d'ordinamento
|
||||
TString _key;
|
||||
// @cmember Oggetto della tabella da ordinare
|
||||
// @cmember:(INTERNAL) Oggetto della tabella da ordinare
|
||||
TObject* _obj;
|
||||
|
||||
// @access Public Member
|
||||
@ -41,27 +44,30 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TAssoc_array | Tabella hash di oggetti generici
|
||||
//
|
||||
// @base public |TObject
|
||||
class TAssoc_array : public TContainer
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
//@access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
//@access Private Member
|
||||
|
||||
// @ccost HASH_SIZE | 113 | Dimensione della tabella hash
|
||||
// @ccost:(INTERNAL) HASH_SIZE | 113 | Dimensione della tabella hash
|
||||
enum { HASH_SIZE = 113 };
|
||||
// @cmember Numero di oggetti contenuti nella tabella
|
||||
// @cmember:(INTERNAL) Numero di oggetti contenuti nella tabella
|
||||
word _cnt;
|
||||
// @cmember Numero di righe della tabella hash
|
||||
// @cmember:(INTERNAL) Numero di righe della tabella hash
|
||||
word _row;
|
||||
// @cmember Numero di colonne della tabella hash
|
||||
// @cmember:(INTERNAL) Numero di colonne della tabella hash
|
||||
word _col;
|
||||
// @cmember Numero di righe della tabella hash per i metodi _item
|
||||
// @cmember:(INTERNAL) Numero di righe della tabella hash per i metodi _item
|
||||
int _rowitem;
|
||||
// @cmember Numero di colonne della tabella hash per i metodi _item
|
||||
// @cmember:(INTERNAL) Numero di colonne della tabella hash per i metodi _item
|
||||
int _colitem;
|
||||
// @cmember Array contenente i dati veri e propri
|
||||
// @cmember:(INTERNAL) Array contenente i dati veri e propri
|
||||
TArray _data[HASH_SIZE];
|
||||
|
||||
// @access Protected member
|
||||
@ -126,15 +132,15 @@ public:
|
||||
void restart()
|
||||
{ _row = 0; _col = 0; }
|
||||
|
||||
// mette chiavi e opzionalmente valori (come stringa) nel
|
||||
// TString_array passato
|
||||
// @cmember Mette chiavi e opzionalmente valori (come stringa) nel <c TString_array> passato
|
||||
int get_keys(TString_array& kl, bool add_values = FALSE);
|
||||
|
||||
// @cmember Costruttore
|
||||
TAssoc_array() : _cnt(0), _row(0), _col(0)
|
||||
{}
|
||||
// @cmember Distruttore
|
||||
virtual ~TAssoc_array() { destroy(); }
|
||||
virtual ~TAssoc_array()
|
||||
{ destroy(); }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -1,5 +1,3 @@
|
||||
// $Id: brwapp.cpp,v 1.4 1995-04-21 10:47:17 nik Exp $
|
||||
|
||||
#include <brwapp.h>
|
||||
#include <mailbox.h>
|
||||
#include <utility.h>
|
||||
|
@ -12,12 +12,12 @@
|
||||
// @base public | TRelation_application
|
||||
class TBrowse_application : public TRelation_application
|
||||
|
||||
// @author(:INTERNAL) Nicola
|
||||
// @author:(INTERNAL) Nicola
|
||||
|
||||
{
|
||||
// @access Protected Member
|
||||
protected:
|
||||
// @cmember Ciclo principale
|
||||
// @cmember:(INTERNAL) Ciclo principale
|
||||
virtual bool main_loop();
|
||||
|
||||
// @access Public Member
|
||||
|
@ -26,14 +26,11 @@
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
|
||||
// @msg fatal_box | Crea una finestra di ERRORE FATALE con il relativo messaggio
|
||||
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
|
||||
// Il programma viene interrotto al momento in cui si e' verificato
|
||||
// l'errore.
|
||||
@ -62,6 +59,7 @@ int fatal_box(
|
||||
return 0;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg error_box | Crea una finestra di ERRORE con il relativo messaggio
|
||||
int error_box(
|
||||
@ -90,11 +88,12 @@ int error_box(
|
||||
return 0;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg warning_box | Crea una finestra di ATTENZIONE con il relativo messaggio
|
||||
int warning_box(
|
||||
const char* fmt, // @parm Messaggio da stampare nella finestra
|
||||
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
|
||||
...) // @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.
|
||||
@ -112,6 +111,7 @@ int warning_box(
|
||||
return 0;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg message_box | Crea una finestra di INFORMAZIONE con relativo il messaggio
|
||||
int message_box(
|
||||
@ -132,6 +132,7 @@ int message_box(
|
||||
return 0;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg sorry_box | Crea una finestra di SCUSE con il relativo messaggio
|
||||
int sorry_box(
|
||||
@ -152,6 +153,7 @@ int sorry_box(
|
||||
|
||||
return 0;
|
||||
}
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg yesno_box | Crea una finestra di RICHIESTA con il relativo messaggio
|
||||
int yesno_box(
|
||||
@ -181,6 +183,7 @@ int yesno_box(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg yesnofatal_box | Crea una finestra di RICHIESTA con il relativo
|
||||
// messaggio, ma permette di terminare il programma
|
||||
@ -213,6 +216,7 @@ int yesnofatal_box(
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg yesnocancel_box | Crea una finestra di RICHIESTA con il relativo messaggio
|
||||
int yesnocancel_box(
|
||||
@ -251,6 +255,8 @@ int yesnocancel_box(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg __trace | Permette di mandare dei messaggi nel file trace.log
|
||||
int __trace(
|
||||
const char* fmt, // @parm Messaggio da stampare
|
||||
|
@ -33,8 +33,10 @@ extern "C" {
|
||||
// <nl>Utilizzata in fase di debug (definire il simbolo DBG in compilazione).
|
||||
//
|
||||
// @xref <m CHECKS> <m CHECKD>
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg CHECKS | Macro che richiama una <m fatal_box> per stampare messaggi a video
|
||||
// @msg CHECKS | Macro che richiama una <m fatal_box> per stampare messaggi a video
|
||||
#define CHECKS(p, m, s0) ( (p) ? (void)0 : (void) fatal_box( \
|
||||
"Check failed in %s, line %d:\n\r%s%s", \
|
||||
__FILE__, __LINE__, m, s0) )
|
||||
@ -47,8 +49,10 @@ extern "C" {
|
||||
// <nl>Utilizzata in fase di debug (definire il simbolo DBG in compilazione).
|
||||
//
|
||||
// @xref <m CHECK> <m CHECKD>
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg CHECKD | Macro che richiama una <m fatal_box> per stampare messaggi a video
|
||||
// @msg CHECKD | Macro che richiama una <m fatal_box> per stampare messaggi a video
|
||||
#define CHECKD(p, m, d0) ( (p) ? (void)0 : (void) fatal_box( \
|
||||
"Check failed in %s, line %d:\n%s%d", \
|
||||
__FILE__, __LINE__, m, d0) )
|
||||
@ -73,6 +77,8 @@ extern "C" {
|
||||
// Utilizzata in fase di debug (definire il simbolo TRC in compilazione)
|
||||
|
||||
#ifdef TRC
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @msg TRACE | Macro che richiama la funzione <m __trace>
|
||||
#define TRACE __trace
|
||||
#else
|
||||
|
@ -6,8 +6,6 @@
|
||||
|
||||
#define comunque
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
bool TConfig_application::create()
|
||||
{
|
||||
TApplication::create();
|
||||
@ -145,6 +143,8 @@ bool TConfig_application::postprocess_config (TMask& mask, TConfig& config)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Simile alla <mf TApplication::change_config>, ma viene usata
|
||||
// dalla maschera principale.
|
||||
//
|
||||
@ -154,12 +154,12 @@ bool TConfig_application::postprocess_config (TMask& mask, TConfig& config)
|
||||
// @flag FALSE | Se la modifica non viene accettata
|
||||
bool TConfig_application::postprocess_config_changed(
|
||||
const char* par, // @parm Paragrafo in corso di editing
|
||||
const char* var, // @parm vedi TApplication!!!
|
||||
const char* oldv, // @parm vedi TApplication!!!
|
||||
const char* newv) // @parm vedi TApplication!!!
|
||||
const char* var, // @parm vedi <c TApplication>
|
||||
const char* oldv, // @parm vedi <c TApplication>
|
||||
const char* newv) // @parm vedi <c TApplication>
|
||||
|
||||
// @comm Rispetto alla <mf TApplication::change_config> le viene passato in piu' il paragrafo
|
||||
// in corso di editing. E' chiamata per ogni parametro modificato
|
||||
// in corso di editing. E' chiamata per ogni parametro modificato.
|
||||
|
||||
{
|
||||
return TRUE;
|
||||
|
@ -41,23 +41,23 @@ class TConfig_application : public TApplication
|
||||
// <mf TConfig_application::postprocess_config> che agisce come la <mf TApplication::change_config>.
|
||||
// <nl>La voce Scelta parametri di <c TApplication> rimane come prima.
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Array di paragrafi da editare
|
||||
// @cmember:(INTERNAL) Array di paragrafi da editare
|
||||
TArray _paragraphs;
|
||||
// @cmember Numero del file di configurazione da modificare
|
||||
// @cmember:(INTERNAL) Numero del file di configurazione da modificare
|
||||
int _which_config;
|
||||
// @cmember Ultima voce di menu' selezionata
|
||||
// @cmember:(INTERNAL) Ultima voce di menu' selezionata
|
||||
MENU_TAG _last_choice;
|
||||
|
||||
// @cmember Crea la finestra principale (vedi <c TApplication>)
|
||||
// @cmember:(INTERNAL) Crea la finestra principale (vedi <c TApplication>)
|
||||
virtual bool create();
|
||||
// @cmember Rimuove l'applicazione (vedi <c TApplication>)
|
||||
// @cmember:(INTERNAL) Rimuove l'applicazione (vedi <c TApplication>)
|
||||
virtual bool destroy();
|
||||
// @cmember Controlla il menu' (vedi <c TApplication>)
|
||||
// @cmember:(INTERNAL) Controlla il menu' (vedi <c TApplication>)
|
||||
virtual bool menu(MENU_TAG);
|
||||
|
||||
// @cmember Permette di modificare la configurazione del paragrafo <p m>
|
||||
// @cmember:(INTERNAL) Permette di modificare la configurazione del paragrafo <p m>
|
||||
void do_config(int m);
|
||||
|
||||
// @access Protected Member
|
||||
@ -75,7 +75,7 @@ protected:
|
||||
virtual bool postprocess_config (TMask& mask, TConfig& config);
|
||||
|
||||
// @cmember Simile alla <mf TApplication::change_config>, ma viene usata
|
||||
// dalla maschera principale.
|
||||
// dalla maschera principale.
|
||||
virtual bool postprocess_config_changed (const char* par, const char* var, const char* oldv, const char* newv);
|
||||
|
||||
// @access Public Member
|
||||
|
@ -14,7 +14,7 @@ extern "C"
|
||||
int rename(const char*, const char*);
|
||||
};
|
||||
|
||||
// @doc INTERNAL
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge i dati del paragrafo
|
||||
//
|
||||
@ -63,6 +63,8 @@ bool TConfig::_read_paragraph()
|
||||
return itwas;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Scrive i dati del paragrafo
|
||||
void TConfig::_write_paragraph(
|
||||
ofstream& out) // @parm Indirizzo dell'utput sul quale scrivere il paragrafo
|
||||
@ -125,8 +127,6 @@ void TConfig::_write_file()
|
||||
remove(temp); // Cancella file temporaneo
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
void TConfig::set_paragraph(const char* section)
|
||||
{
|
||||
if (section != NULL && section != _paragraph)
|
||||
@ -138,6 +138,8 @@ void TConfig::set_paragraph(const char* section)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla se esite una variabile nel paragrafo attivo
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
@ -161,6 +163,8 @@ bool TConfig::exist(
|
||||
return _data.is_key(var);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il valore della variabile nella sezione corrente o in
|
||||
// quella specificata
|
||||
//
|
||||
@ -203,6 +207,8 @@ TString& TConfig::get(
|
||||
return s;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il valore della variabile nella sezione corrente o in
|
||||
// quella specificata
|
||||
//
|
||||
@ -230,6 +236,9 @@ long TConfig::get_long(
|
||||
return def;
|
||||
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il valore della variabile nella sezione corrente o in
|
||||
// quella specificata
|
||||
//
|
||||
@ -257,6 +266,7 @@ char TConfig::get_char(
|
||||
return def;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il valore della variabile nella sezione corrente o in
|
||||
// quella specificata
|
||||
@ -281,6 +291,7 @@ int TConfig::get_int(
|
||||
return (int)get_long(var, section, index, def);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il valore della variabile nella sezione corrente o in
|
||||
// quella specificata
|
||||
@ -319,6 +330,8 @@ HIDDEN void RGB_COLOR(COLOR c, int& r, int& g, int& b)
|
||||
b = int(c) & 0xFF;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il valore del colore settato nella variabile nella
|
||||
// sezione corrente o in quella specificata
|
||||
COLOR TConfig::get_color(
|
||||
@ -351,6 +364,8 @@ COLOR TConfig::get_color(
|
||||
return def;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta la variabile nella sezione corrente o specificata
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
@ -396,6 +411,8 @@ bool TConfig::set(const char* var, long value, const char* section,
|
||||
return set(var,t,section,force,index);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna quanti elementi dell'array nominato sono presenti nella
|
||||
// sezione indicata.
|
||||
word TConfig::items(
|
||||
@ -416,7 +433,7 @@ word TConfig::items(
|
||||
return cnt;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Inizializza il paragrafo leggendo dal file i dati
|
||||
void TConfig::init(
|
||||
@ -478,8 +495,6 @@ int TConfig::list_variables(TString_array& vl, bool value, const char* section)
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
TConfig::TConfig(int which_config, const char* paragraph)
|
||||
{
|
||||
switch (which_config)
|
||||
|
@ -9,8 +9,6 @@
|
||||
#include <assoc.h>
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
class ofstream;
|
||||
|
||||
// questo sara' il principale, per ora non c'e'
|
||||
@ -28,12 +26,15 @@ class ofstream;
|
||||
// file parametri golem
|
||||
#define CONFIG_GOLEM 6
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TConfig | Classe per la gestione dei file di configurazione in formato
|
||||
// Windows
|
||||
//
|
||||
// @base public | TObject
|
||||
class TConfig : public TObject
|
||||
{
|
||||
|
||||
// @author:(INTERNAL) Villa
|
||||
|
||||
// @comm Sono definite alcune costanti per l'individuazione immediata di
|
||||
// alcuni file particolari e di frequente uso. Tali file sono:
|
||||
@ -47,17 +48,18 @@ class TConfig : public TObject
|
||||
// @flag CONFIG_STAMPE | File parametri stampe
|
||||
// @flag CONFIG_GOLEM | File parametri golem
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember Contenuto del paragrafo
|
||||
// @cmember:(INTERNAL) Contenuto del paragrafo
|
||||
TAssoc_array _data;
|
||||
// @cmember Nome del file di configurazione
|
||||
// @cmember:(INTERNAL) Nome del file di configurazione
|
||||
TFilename _file;
|
||||
// @cmember Indica se il file??? e' presente (TRUE se esiste)
|
||||
// @cmember:(INTERNAL) Indica se il paragrafo e' stato modificato (TRUE se esiste)
|
||||
bool _dirty;
|
||||
// @cmember Indica se il paragrafo e' presente (TRUE se esiste)
|
||||
// @cmember:(INTERNAL) Indica se il paragrafo e' presente (TRUE se esiste)
|
||||
bool _ispresent;
|
||||
// @cmember Nome del paragrafo attivo
|
||||
// @cmember:(INTERNAL) Nome del paragrafo attivo
|
||||
TString _paragraph;
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -17,8 +17,6 @@ extern "C"
|
||||
#define STRICT
|
||||
#include <windows.h>
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TPicture_array
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -138,6 +136,8 @@ void xvt_draw_rect(WINDOW win, const RCT& rect, COLOR lt, COLOR rb, short depth)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Crea il controllo
|
||||
void TControl::create(
|
||||
short left, // @parm Coordinata X di posizionamento (in pixel)
|
||||
@ -303,6 +303,8 @@ long XVT_CALLCONV1 TControl::handler(WINDOW win, EVENT* ep)
|
||||
return 0L;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Abilita/disabilita il controllo
|
||||
void TControl::enable(
|
||||
bool on) // @parm Operazione da svolgere sul controllo:
|
||||
@ -317,6 +319,8 @@ void TControl::enable(
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Setta se il controllo debba avere un check
|
||||
void TControl::check(
|
||||
bool on) // @parm Puo' assumere i seguenti valori:
|
||||
@ -975,6 +979,8 @@ void TCheckbox::update() const
|
||||
// User functions
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di creare un Checkbox
|
||||
//
|
||||
// @rdesc Ritorna l'handle del controllo creato
|
||||
@ -1000,6 +1006,8 @@ WINDOW xvt_create_checkbox(
|
||||
return cb->win();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di creare un Radiobutton
|
||||
//
|
||||
// @rdesc Ritorna l'handle del controllo creato
|
||||
@ -1025,6 +1033,7 @@ WINDOW xvt_create_radiobutton(
|
||||
return cb->win();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di creare un qualsiasi Bottone premibile
|
||||
//
|
||||
@ -1067,6 +1076,7 @@ WINDOW xvt_create_pushbutton(
|
||||
return pb->win();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di creare un campo di solo Testo
|
||||
//
|
||||
@ -1091,6 +1101,7 @@ WINDOW xvt_create_text(
|
||||
return cb->win();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di creare un Groupbox
|
||||
//
|
||||
@ -1115,6 +1126,8 @@ WINDOW xvt_create_groupbox(
|
||||
return cb->win();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Dealloca le bitmab utilizzate per i controlli
|
||||
void free_controls_bmp()
|
||||
{
|
||||
|
@ -57,26 +57,26 @@ void free_controls_bmp();
|
||||
class TControl
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Handle del controllo creato
|
||||
// @cmember:(INTERNAL) Handle del controllo creato
|
||||
WINDOW _win;
|
||||
// @cmember Iedntificatore assegnato al cotrollo
|
||||
// @cmember:(INTERNAL) Iedntificatore assegnato al cotrollo
|
||||
short _id;
|
||||
// @cmember Prompt del controllo
|
||||
// @cmember:(INTERNAL) Prompt del controllo
|
||||
TString _caption;
|
||||
// @cmember Colore di foreground del controllo
|
||||
// @cmember:(INTERNAL) Colore di foreground del controllo
|
||||
COLOR _color;
|
||||
// @cmember Colore di background del controllo
|
||||
// @cmember:(INTERNAL) Colore di background del controllo
|
||||
COLOR _backcolor;
|
||||
|
||||
// @cmember Indica se il controllo e' disabilitato
|
||||
// @cmember:(INTERNAL) Indica se il controllo e' disabilitato
|
||||
bool _disabled : 1;
|
||||
// @cmember Indica se il controllo ha un check
|
||||
// @cmember:(INTERNAL) Indica se il controllo ha un check
|
||||
bool _checked : 1;
|
||||
// @cmember Indica se il controllo ha il focus
|
||||
// @cmember:(INTERNAL) Indica se il controllo ha il focus
|
||||
bool _focused : 1;
|
||||
// @cmember Indica varie cose a seconda del tipo di controllo she si sta utilizzando
|
||||
// @cmember:(INTERNAL) Indica varie cose a seconda del tipo di controllo she si sta utilizzando
|
||||
bool _multiple : 1;
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -20,8 +20,6 @@
|
||||
// Utility functions
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
HIDDEN TDate __tmp_date;
|
||||
HIDDEN char __date_tmp_string[128];
|
||||
HIDDEN const byte _days_in_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
||||
@ -229,6 +227,8 @@ void TDate::read_from(istream& in)
|
||||
_val = d._val;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la data in formato di stringa (anche in formato ANSI)
|
||||
//
|
||||
// @rdesc Se si tratta di una data valida ritorna la stringa secondo il
|
||||
@ -455,6 +455,7 @@ bool TDate::ok() const
|
||||
return _val > 0;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func TDate& | operator + | Incrementa la data di un certo numero di giorni
|
||||
TDate& operator +(
|
||||
@ -479,6 +480,7 @@ TDate& operator +(const long nday, const TDate& b)
|
||||
return __tmp_date;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func TDate& | operator - | Decrementa la data di un certo numero di giorni
|
||||
TDate& operator -(
|
||||
@ -490,6 +492,8 @@ TDate& operator -(
|
||||
return __tmp_date;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func TDate& | operator - | Calcola la differenza tra due date
|
||||
long operator -(
|
||||
const TDate& a, // @parm Data da decrementare
|
||||
@ -499,6 +503,8 @@ long operator -(
|
||||
return diff;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Scambia la data <p a> con la data <p b>
|
||||
void swap(
|
||||
TDate& a, // @parm Prima data da scambiare
|
||||
@ -510,6 +516,7 @@ void swap(
|
||||
a = __tmp_date;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna la data piu' piccola tra <p a> e <p b>
|
||||
const TDate& fnc_min(
|
||||
@ -521,6 +528,8 @@ const TDate& fnc_min(
|
||||
else return b;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna la data piu' grande tra <p a> e <p b>
|
||||
const TDate& fnc_max(
|
||||
const TDate& a, // @parm Prima data da confrontare
|
||||
@ -553,8 +562,9 @@ TFormatted_date::TFormatted_date(const TFormatted_date& d)
|
||||
set_format(d._format);
|
||||
}
|
||||
|
||||
// @mfunc Permette di stabilire il criterio di formattazione delle date
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di stabilire il criterio di formattazione delle date
|
||||
void TFormatted_date::set_format(
|
||||
const char* f) // @parm Stringa di 5 caratteri che indica il formato della data
|
||||
|
||||
@ -604,6 +614,8 @@ const char* TFormatted_date::string() const
|
||||
// Utility functions
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Converte un numero da 1 a 12 nel corrispondente mese
|
||||
const char* itom(
|
||||
byte m) // @parm Numero del mese da convertire in parole (da 1 a 12)
|
||||
@ -620,6 +632,8 @@ const char* itom(
|
||||
return nomi[(m-1) % 12];
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna il nome del giorno (1-7)
|
||||
const char* itow(
|
||||
byte d) // @parm Numero del giorna da convertire in parole (da 1 a 7)
|
||||
|
@ -20,6 +20,8 @@ enum TDate_order {
|
||||
g_date, // @emem Solo Giorno
|
||||
ma_date }; // @emem Mese-Anno
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum TDate_mgafmt | Criterio col quale visualizzare le date
|
||||
enum TDate_mgafmt {
|
||||
ANSI = -1, // @emem Formato ANSI
|
||||
@ -30,14 +32,19 @@ enum TDate_mgafmt {
|
||||
quarter = 7, // @emem Formato trimestrale
|
||||
def = 99 }; // @emem Formato standard
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TDate | Classe per la gestione delle date
|
||||
//
|
||||
// @base public | TObject
|
||||
class TDate : public TObject
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Valore data in formato packed
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Valore data in formato packed
|
||||
long _val;
|
||||
|
||||
// @access Protected Member
|
||||
@ -63,9 +70,9 @@ protected:
|
||||
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 ???
|
||||
// @cmember Trasforma la data da formato data a numero giuliano
|
||||
long date2julian() const;
|
||||
// @cmember Trasforma la data da ??? a ???
|
||||
// @cmember Trasforma la data da numero giulizno a fomato data
|
||||
long julian2date(long julian) const;
|
||||
|
||||
// @cmember Ritorna il giorno
|
||||
@ -140,14 +147,20 @@ public:
|
||||
TDate(int day, int month, int year);
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @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
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Formato per tutti i pezzettini
|
||||
char _format[5];
|
||||
|
||||
// @access Public Member
|
||||
@ -180,6 +193,8 @@ TDate& operator +(const long nday, const TDate& b) ;
|
||||
TDate& operator -(const TDate& a, long nday) ;
|
||||
long operator -(const TDate& a, const TDate& b) ;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator <gt> | Controlla se una data e' minore di un'altra
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -191,6 +206,8 @@ inline bool operator <(
|
||||
const TDate& b) // @parm Secondo data da confrontare
|
||||
{ return a._val < b._val;}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator <lt> | Controlla se una data e' maggiore di un'altra
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -202,6 +219,8 @@ inline bool operator >(
|
||||
const TDate& b) // @parm Secondo data da confrontare
|
||||
{ return a._val > b._val;}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator <lt>= | Controlla se una data e' minore o ugaule ad un'altra
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -213,6 +232,8 @@ inline bool operator <=(
|
||||
const TDate& b) // @parm Secondo data da confrontare
|
||||
{ return a._val <= b._val;}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator <gt>= | Controlla se una data e' maggiore o uguale ad un'altra
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -224,6 +245,8 @@ inline bool operator >=(
|
||||
const TDate& b) // @parm Secondo data da confrontare
|
||||
{ return a._val >= b._val;}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator == | Controlla se 2 date sono uguali
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -235,6 +258,8 @@ inline bool operator ==(
|
||||
const TDate& b) // @parm Secondo data da confrontare
|
||||
{ return a._val == b._val;}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator != | Controlla se 2 date sono diverse
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
|
@ -42,7 +42,12 @@ bool TExternal_app::can_run() const
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Esegue il processo
|
||||
//
|
||||
// @rdesc Ritorna il codice di uscita del processo (-1 in caso di errore).
|
||||
int TExternal_app::run(
|
||||
bool async, // @parm Per eseguire il processo in parallelo (default FALSE)
|
||||
bool utente) // @parm Permette di inserire il nome dell'utente nella riga
|
||||
|
@ -12,20 +12,23 @@
|
||||
// @base public | TObject
|
||||
class TExternal_app : public TObject
|
||||
|
||||
// @author:(INTERNAL) Villa
|
||||
|
||||
// @comm Gli oggetti eseguiti dalla presente classe possono essere eseguiti
|
||||
// in background in tutti gli ambienti, oppure in modo sincrono.
|
||||
// <nl>Non sono implementate linee di comando; si suppone che l'utente
|
||||
// utilizzi la mailbox per questo.
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Nome dell'applicazione (deve essere allocata dall'utente)
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Nome dell'applicazione (deve essere allocata dall'utente)
|
||||
const char* _path;
|
||||
// @cmember Ultimo errore (codice dell'errore)
|
||||
// @cmember:(INTERNAL) Ultimo errore (codice dell'errore)
|
||||
int _error;
|
||||
// @cmember Ultimo exit code
|
||||
// @cmember:(INTERNAL) Ultimo exit code
|
||||
int _exitcode;
|
||||
// @cmember Numero di chiamate
|
||||
// @cmember:(INTERNAL) Numero di chiamate
|
||||
int _count;
|
||||
|
||||
// @access Public Member
|
||||
|
100
include/expr.h
100
include/expr.h
@ -55,22 +55,28 @@ enum TCodesym {
|
||||
_round, // @emem Arrotondamento
|
||||
_ansi } ; // @emem Data in ansi
|
||||
|
||||
// @enum TTypeesp | Tipi di espressioni definiti
|
||||
// @doc INTERNAL
|
||||
|
||||
// @enum TTypeexp | Tipi di espressioni definiti
|
||||
enum TTypeexp {
|
||||
_numexpr, // @emem Espressione numerica
|
||||
_strexpr } ; // @emem Espressione in lettere
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TValue | Classe per la definizione dei valori che possono essere assunti
|
||||
// dai termini di una espressione o il valore dell'espressione stessa
|
||||
//
|
||||
// @base public | TObject
|
||||
class TValue : public TObject
|
||||
|
||||
// @author:(INTERNAL) Sandro
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Valore real
|
||||
// @cmember:(INTERNAL) Valore real
|
||||
real _r;
|
||||
// @cmember Valore in formato stringa
|
||||
// @cmember:(INTERNAL) Valore in formato stringa
|
||||
TString _s;
|
||||
|
||||
// @access Public Member
|
||||
@ -115,17 +121,22 @@ extern TValue nulltvalue;
|
||||
|
||||
#undef extern
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TCode | Classe per la ridefinizione di una espressione in
|
||||
// notazione polacca inversa (RPN)
|
||||
//
|
||||
// @base public | TObject
|
||||
class TCode : public TObject
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Simbolo-istruzione-codice
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Simbolo-istruzione-codice
|
||||
TCodesym _sym;
|
||||
// @cmember Valore
|
||||
// @cmember:(INTERNAL) Valore
|
||||
TValue _val;
|
||||
|
||||
// @access Public Member
|
||||
@ -138,7 +149,7 @@ public:
|
||||
// @cmember Ritorna il simbolo
|
||||
TCodesym getsym() const
|
||||
{ return _sym;}
|
||||
// @cmember Ritorna il valore come real
|
||||
// @cmember Ritorna il valore come <c real>
|
||||
const real& number() const
|
||||
{ return _val.number();}
|
||||
// @cmember Ritorna il valore come stringa
|
||||
@ -148,6 +159,7 @@ public:
|
||||
// @cmember Costruttore, inizializza simbolo con "invalid", valore a nullvalue
|
||||
TCode()
|
||||
{set(_invalid);}
|
||||
// @cmember Costruttore
|
||||
TCode(TCodesym sym, const TValue& val = nulltvalue)
|
||||
// @cmember Costruttore, inizializza simbolo con <p sym> e valore con <p val>
|
||||
{ set(sym, val);}
|
||||
@ -156,19 +168,24 @@ public:
|
||||
{}
|
||||
};
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TCodearray | Classe per la definizione di un array di istruzioni da valutare
|
||||
// passo per passo in una espressione
|
||||
//
|
||||
// @base public | TObject
|
||||
class TCodearray : public TObject
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Numero di istruzioni
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Numero di istruzioni
|
||||
int _last;
|
||||
// @cmember Puntatore all'istruzione corrente (Istruction pointer)
|
||||
// @cmember:(INTERNAL) Puntatore all'istruzione corrente (Istruction pointer)
|
||||
int _ip;
|
||||
// @cmember Array
|
||||
// @cmember:(INTERNAL) Array
|
||||
TArray _rpn;
|
||||
|
||||
// @access Public Member
|
||||
@ -197,23 +214,26 @@ public:
|
||||
{}
|
||||
};
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TVar | Classe per la definizione delle variabile delle espressioni
|
||||
//
|
||||
// @base public | TObject
|
||||
class TVar : public TObject
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Nome della variabile
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Nome della variabile
|
||||
TString _name;
|
||||
// @cmember Valore assegnato alla variabile
|
||||
// @cmember:(INTERNAL) Valore assegnato alla variabile
|
||||
TValue _val;
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
|
||||
// #DES Operatore = tra vari oggetti
|
||||
// #FPUB
|
||||
// @cmember Assegnamento di una stringa all'oggetto Tval
|
||||
const char* operator =(const char* val)
|
||||
{ _val.set(val); return val;}
|
||||
@ -236,7 +256,7 @@ public:
|
||||
const char* getname() const
|
||||
{ return _name;}
|
||||
|
||||
// @cmember Ritorna _val (un TValue)
|
||||
// @cmember Ritorna iv valore assgnato alla variabile (un <c TValue>)
|
||||
operator TValue&()
|
||||
{ return _val;}
|
||||
// @cmember Ritorna il valore real della variabile
|
||||
@ -260,17 +280,22 @@ public:
|
||||
{}
|
||||
};
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TVararray | Classe per la definizione di un array di variabili da
|
||||
// valutare nell'esspressione
|
||||
//
|
||||
// @base public | TObject
|
||||
class TVararray : public TObject
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Numero di variabili
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Numero di variabili
|
||||
int _last;
|
||||
// @cmember Array
|
||||
// @cmember:(INTERNAL) Array
|
||||
TArray _array;
|
||||
|
||||
// @access Public Member
|
||||
@ -326,20 +351,23 @@ public:
|
||||
//
|
||||
// @base public | TObject
|
||||
class TExpression : public TObject
|
||||
{
|
||||
// @access Provate Member
|
||||
|
||||
// @cmember Array di codice
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Array di codice
|
||||
TCodearray _code;
|
||||
// @cmember Array di variabili
|
||||
// @cmember:(INTERNAL) Array di variabili
|
||||
TVararray _var;
|
||||
// @cmember Valore dell'espressione
|
||||
// @cmember:(INTERNAL) Valore dell'espressione
|
||||
TValue _val;
|
||||
// @cmember TRUE se l'espressione e' stata modificata
|
||||
// @cmember:(INTERNAL) TRUE se l'espressione e' stata modificata
|
||||
bool _dirty;
|
||||
// @cmember Tipo dell'espressione
|
||||
// @cmember:(INTERNAL) Tipo dell'espressione
|
||||
TTypeexp _type;
|
||||
// @cmember Stringa originale
|
||||
// @cmember:(INTERNAL) Stringa originale
|
||||
TString _original;
|
||||
|
||||
// @access Protected Member
|
||||
@ -362,7 +390,7 @@ protected: // TObject
|
||||
// @cmember Stampa l'espressione su <p out> (serve per implementare l'insertore)
|
||||
virtual void print_on(ostream& out) const ;
|
||||
|
||||
// @access Protected Member
|
||||
// @access Public Member
|
||||
public:
|
||||
// @cmember operator const | real& | | Ritorna il valore real dell'espressione
|
||||
operator const real&();
|
||||
@ -379,8 +407,8 @@ public:
|
||||
// @cmember Ritorna il tipo dell'espressione
|
||||
const TTypeexp type() const
|
||||
{ return _type; }
|
||||
TCodearray& code() const
|
||||
// @cmember Ritorna l'array del codice
|
||||
// @cmember Ritorna l'array del codice
|
||||
TCodearray& code() const
|
||||
{ return (TCodearray&)_code; }
|
||||
// @cmember Ritorna l'array di variabili
|
||||
const TVararray& vars() const
|
||||
|
@ -17,8 +17,6 @@
|
||||
#define BLOCKLEN 512
|
||||
#define INVFLD 255
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
HIDDEN char _files_tmp_string[128];
|
||||
|
||||
TFile::TFile (int lenrec, int base)
|
||||
@ -40,6 +38,8 @@ TFile::~TFile ()
|
||||
delete _file;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Apre il file specificato
|
||||
void TFile::open (
|
||||
const char *name, // @parm Nome del file da aprire
|
||||
@ -56,6 +56,8 @@ bool TFile::verify (const char *name)
|
||||
return _file->IOR == NOERR;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Crea il file specificato
|
||||
void TFile::create (
|
||||
const char *name, // @parm Nome del file da creare
|
||||
@ -86,6 +88,8 @@ void TFile::unlink (const char *name)
|
||||
CDelete (_file, (char *) name);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge un record dal file
|
||||
void TFile::read (
|
||||
char *record, // @parm Record letto
|
||||
@ -98,6 +102,8 @@ void TFile::read (
|
||||
CRead (_file, record, recnum, lock);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Scrive un record sul file
|
||||
void TFile::write (
|
||||
char *record, // @parm Record da scrivere
|
||||
@ -229,6 +235,8 @@ void TDir::set (const char *name, const RecNoType eod, const RecNoType flag, con
|
||||
strncpy (_dir->FCalc, calc, sizeof (_dir->FCalc));
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiorna l'oggetto TDir con i parametri del file
|
||||
void TDir::get (
|
||||
int nfile, // @parm Numero del file con cui aggiornare l'oggetto
|
||||
@ -247,6 +255,8 @@ void TDir::get (
|
||||
_com = _dir->SysName[0] != '$';
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiorna il file indicato con i parametri passati
|
||||
void TDir::put (
|
||||
int nfile, // @parm Numero del file da aggiornare
|
||||
@ -269,7 +279,14 @@ void TDir::zero ()
|
||||
zerofdes (_dir);
|
||||
}
|
||||
|
||||
int TDir::items (TDirtype dirtype) const
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il numero di file presenti nella directory <p dirtype>
|
||||
//
|
||||
// @rdesc Ritorna il numero di file presenti
|
||||
int TDir::items (
|
||||
TDirtype dirtype) const // @parm Directory della quale contare i file
|
||||
|
||||
{
|
||||
FileDes f;
|
||||
@ -315,6 +332,8 @@ TTrec & TTrec::operator = (const TTrec & b)
|
||||
return *this;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Assegna all'oggetto TTrec il tracciato record del file indicato
|
||||
void TTrec::get (
|
||||
int nfile, // @parm Numero del file da cui estrarre il tracciato record
|
||||
@ -327,6 +346,8 @@ void TTrec::get (
|
||||
_num = nfile;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta il file indicato con il tracciato record dell'oggetto
|
||||
void TTrec::put (
|
||||
int nfile, // @parm Numero del file di cui settare il tracciato record
|
||||
|
@ -24,14 +24,17 @@
|
||||
//
|
||||
// @base public | TObject
|
||||
class TFile : public TObject
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Descrittore del file
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Descrittore del file
|
||||
SecDef* _file;
|
||||
// @cmember Lunghezza del record
|
||||
// @cmember:(INTERNAL) Lunghezza del record
|
||||
int _len;
|
||||
// @cmember Offset iniziale del file in settori
|
||||
// @cmember:(INTERNAL) Offset iniziale del file in settori
|
||||
int _base;
|
||||
|
||||
// @access Public Member
|
||||
@ -63,7 +66,9 @@ public:
|
||||
// @cmember Controlla che non vi siano errori nel file aperto (TRUE se tutto normale)
|
||||
bool ok() const
|
||||
{ return status() == NOERR; }
|
||||
bool error() const { return status() != NOERR; }
|
||||
// @cmember Controlla se vi sono errori nel file aperto (TRUE se non ci sono errori)
|
||||
bool error() const
|
||||
{ return status() != NOERR; }
|
||||
|
||||
// @cmember Costruttore
|
||||
TFile(int lenrec = 0, int base = 0);
|
||||
@ -71,18 +76,24 @@ public:
|
||||
virtual ~TFile();
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TDir | Classe per la gestione del file "dir.gen"
|
||||
//
|
||||
// @base public | TObject
|
||||
class TDir : public TObject
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Descrittore del file
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Descrittore del file
|
||||
FileDes* _dir;
|
||||
// @cmember Numero di file presenti
|
||||
// @cmember:(INTERNAL) Numero di file presenti
|
||||
int _num;
|
||||
// @cmember Appartenenza al direttorio comune (TRUE) o a quello della ditta
|
||||
// @cmember:(INTERNAL) Appartenenza al direttorio comune (TRUE) o a quello della ditta
|
||||
bool _com;
|
||||
|
||||
// @access Public Member
|
||||
@ -126,6 +137,7 @@ public:
|
||||
// @cmember Ritorna il numero di file presenti
|
||||
int num() const
|
||||
{ return _num;}
|
||||
// @cmember Ritorna il numero di file presenti nella directory <p dirtype>
|
||||
int items(TDirtype dirtype = _nordir) const;
|
||||
// @cmember Ritorna il descrittore del file "dir.gen"
|
||||
FileDes* filedesc() const
|
||||
@ -152,16 +164,22 @@ public:
|
||||
virtual ~TDir();
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TTrec | Classe per le gestione dei tracciati record dei file
|
||||
//
|
||||
// @base public | TSortable
|
||||
class TTrec : public TSortable
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Descrittore del tracciato record
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Descrittore del tracciato record
|
||||
RecDes* _rec;
|
||||
// @cmember Numero del file di appartenenza
|
||||
// @cmember:(INTERNAL) Numero del file di appartenenza
|
||||
int _num;
|
||||
|
||||
// @access Protected Member
|
||||
@ -184,6 +202,7 @@ public:
|
||||
// @cmember Ritorna il numero del file
|
||||
int num() const
|
||||
{ return _num;}
|
||||
// @cmember Ritorna il numero del campo <p fieldname>
|
||||
int field(const char* fieldname) const;
|
||||
// @cmember Ritorna il descrittore del tracciato record
|
||||
RecDes* rec() const
|
||||
|
@ -39,7 +39,6 @@ HIDDEN const int frm_id = 113;
|
||||
// Utility functions
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// Current form (edit, print)
|
||||
HIDDEN TForm* _cur_form = NULL;
|
||||
@ -64,12 +63,16 @@ HIDDEN TMask& special_mask()
|
||||
return *_special_mask;
|
||||
}
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Funzione che converte dalla notazione carattere al corrispondente
|
||||
// enum <t pagetype>
|
||||
//
|
||||
// @rdesc Ritorna il <t pagetype> corrispondente
|
||||
pagetype char2page(
|
||||
char c) // @parm Notazione carattere del tipo di pagina
|
||||
|
||||
{
|
||||
pagetype pt;
|
||||
switch(c)
|
||||
@ -577,6 +580,8 @@ void TForm_item::print_on(TRectype& prof)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Abilita/Disabilita il campo
|
||||
void TForm_item::enable(
|
||||
bool on) // @parm Operazione da svolgere sul campo:
|
||||
@ -635,6 +640,8 @@ TToken_string& TForm_item::message(int m)
|
||||
return *t;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Manda il messaggio al campo <p dest>
|
||||
void TForm_item::send_message(
|
||||
const TString& cmd, // @parm Messaggio di comando
|
||||
@ -2196,6 +2203,8 @@ bool TPrint_section::update()
|
||||
return ok;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge dal record <p rec> altezza e offset prima colonna della sezione
|
||||
//
|
||||
// @rdesc Ritorna se i valori letti hanno modificato quelli attuali
|
||||
@ -2548,6 +2557,8 @@ bool TPrint_section::detail_field_notify (TSheet_field& s, int r, KEY k)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Esegue l'edit della sezione di stampa
|
||||
//
|
||||
// @rdesc Ritorna TRUE se e' stata modificata effettivamente
|
||||
@ -3007,6 +3018,8 @@ void TForm::print_general(ostream& out) const
|
||||
out << "END\n" << endl;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla se esiste una sezione di stampa
|
||||
//
|
||||
// @rdesc Ritorna la <c TPrint_section> trovata o creata
|
||||
@ -3069,6 +3082,9 @@ TPrint_section& TForm::section(char s, word pagenum)
|
||||
return section(s, pt);
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Rilegge la sezione specificata
|
||||
//
|
||||
// @rdesc Ritorna se ce l'ha fatta
|
||||
@ -3139,6 +3155,8 @@ bool TForm::reread(
|
||||
// TForm
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Cambia il formato di tutte le date nel form
|
||||
//
|
||||
// @rdesc Ritorna sempre TRUE
|
||||
@ -3168,6 +3186,8 @@ bool TForm::ps_change_date_format(
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Cambia il formato di tutti i numeri nel form
|
||||
//
|
||||
// @rdesc Ritorna sempre TRUE
|
||||
@ -3225,6 +3245,8 @@ void TForm::change_number_format(int w, int dec, const char* p)
|
||||
if ((ps = exist(secs[sc], char2page(ptyp[pt]), FALSE)) != NULL)
|
||||
ps_change_number_format(*ps, w, dec, p);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Effettua l'update della sezione grafica background
|
||||
//
|
||||
@ -3247,11 +3269,13 @@ word TForm::set_background(
|
||||
return len;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Effettua l'update della sezione header
|
||||
//
|
||||
// @rdesc Ritorna l'altezza dell'header settato
|
||||
word TForm::set_header(
|
||||
word p, // @parm !!!
|
||||
word p, // @parm Numero pagina
|
||||
bool u) // @parm Indica se cambiare l'eventuale header corrente!!!
|
||||
|
||||
// @xref <mf TForm::set_background> <mf TForm::set_body> <mf TForm::set_footer>
|
||||
@ -3274,11 +3298,13 @@ word TForm::set_header(
|
||||
return head.height();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Effettua l'update della sezione body
|
||||
//
|
||||
// @rdesc Ritorna l'altezza del body settato
|
||||
word TForm::set_body(
|
||||
word p, // @parm !!!
|
||||
word p, // @parm Numero pagina
|
||||
bool u) // @parm Indica se cambiare l'eventuale body corrente!!!
|
||||
|
||||
// @xref <mf TForm::set_background> <mf TForm::set_header> <mf TForm::set_footer>
|
||||
@ -3299,11 +3325,13 @@ word TForm::set_body(
|
||||
return body.height();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Effettua l'update della sezione footer
|
||||
//
|
||||
// @rdesc Ritorna l'altezza del footer settato
|
||||
word TForm::set_footer(
|
||||
word p, // @parm !!!
|
||||
word p, // @parm Numero pagina
|
||||
bool u) // @parm Indica se cambiare l'eventuale footer corrente!!!
|
||||
|
||||
// @xref <mf TForm::set_background> <mf TForm::set_header> <mf TForm::set_body>
|
||||
@ -3343,6 +3371,7 @@ void TForm::footer_handler(TPrinter& p)
|
||||
form().set_header(page+1, FALSE);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il numero di pagina correntemente in stampa
|
||||
//
|
||||
@ -3355,6 +3384,8 @@ word TForm::page(
|
||||
return _lastpage ? 0 : p.getcurrentpage();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Effettua il posizionamento manuale del modulo
|
||||
void TForm::arrange_form()
|
||||
|
||||
@ -3436,6 +3467,8 @@ long TForm::records() const
|
||||
return r;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Genera automaticamente la sezione grafica con colonne fincate
|
||||
//
|
||||
// @rdesc Ritorna FALSE se non c'e' il body per quella pagina
|
||||
@ -3525,6 +3558,8 @@ bool TForm::genera_fincatura(
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Genera le righe di intestazione colonna alla riga indicata, vale per COLUMNWISE
|
||||
//
|
||||
// @rdesc Ritorna FALSE se non esiste body (o non e' COLUMNWISE) o se non esiste l'header
|
||||
@ -3631,6 +3666,8 @@ void TForm::remove_examples(char sez, pagetype p)
|
||||
}
|
||||
*/
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Stampa gli items da <p form> a <p to>
|
||||
//
|
||||
// @rdesc Ritorna se ha effettuato correttamente la stampa
|
||||
@ -3812,6 +3849,8 @@ word TForm::height(word page)
|
||||
return h;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge un profilo
|
||||
//
|
||||
// @rdesc Ritorna se e' riuscito nell'operazione:
|
||||
@ -3971,6 +4010,8 @@ void TForm::init()
|
||||
_background_mode = printer().isgraphics() ? graphics : testo;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Carica il form dal file specificato
|
||||
void TForm::read(
|
||||
const char* name, // @parm Nome del profilo di stampa da leggere
|
||||
|
133
include/form.h
133
include/form.h
@ -37,6 +37,8 @@ enum pagetype {
|
||||
first_page, // @emem Prima pagina
|
||||
last_page }; // @emem Ultima pagina
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @enum bkg_mode | Tipo di background presente nella stampa
|
||||
enum bkg_mode {
|
||||
none, // @emem Nessuno sfondo
|
||||
@ -53,6 +55,8 @@ class TPrint_section;
|
||||
|
||||
const int MAXCOLUMNS = 32;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TForm | Classe per la descrizione dei formati di stampa
|
||||
//
|
||||
// @base public | TObject
|
||||
@ -60,7 +64,6 @@ class TForm : public TObject
|
||||
|
||||
// @author:(INTERNAL) Guido, Angelo, Villa
|
||||
|
||||
// @access Private Member
|
||||
{
|
||||
// @cfriend TForm_editor
|
||||
friend class TForm_editor;
|
||||
@ -68,76 +71,78 @@ class TForm : public TObject
|
||||
friend class TForm_EC_editor;
|
||||
// @cfriend TPrint_section
|
||||
friend class TPrint_section;
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Tipo di sfondo da applicare alla stampa (vedi <t bkg_mode>)
|
||||
// @cmember:(INTERNAL) Tipo di sfondo da applicare alla stampa (vedi <t bkg_mode>)
|
||||
bkg_mode _background_mode;
|
||||
|
||||
// @cmember Nome del profilo di stampa
|
||||
// @cmember:(INTERNAL) Nome del profilo di stampa
|
||||
TString _name;
|
||||
// @cmember Codice del profilo di stampa
|
||||
// @cmember:(INTERNAL) Codice del profilo di stampa
|
||||
TString _code;
|
||||
// @cmember Nome del font da utilizzare
|
||||
// @cmember:(INTERNAL) Nome del font da utilizzare
|
||||
TString _fontname;
|
||||
// @cmember Domensione del font da utilizzare
|
||||
// @cmember:(INTERNAL) Dimensione del font da utilizzare
|
||||
int _fontsize;
|
||||
// @cmember Maschera per la sezione
|
||||
// @cmember:(INTERNAL) Maschera per la sezione
|
||||
TString _section_mask;
|
||||
//@cmember Offset X valido per tutte le sezioni
|
||||
//@cmember:(INTERNAL) Offset X valido per tutte le sezioni
|
||||
int _x;
|
||||
//@cmember Offset Y valido per tutte le sezioni
|
||||
//@cmember:(INTERNAL) Offset Y valido per tutte le sezioni
|
||||
int _y;
|
||||
// @cmember Carattere utilizzato per il posizionamento dei moduli
|
||||
// @cmember:(INTERNAL) Carattere utilizzato per il posizionamento dei moduli
|
||||
char _char_to_pos;
|
||||
// @cmember Coordinata X del posizionamento iniziale
|
||||
// @cmember:(INTERNAL) Coordinata X del posizionamento iniziale
|
||||
int _ipx;
|
||||
// @cmember Coordinata Y del posizionamento iniziale
|
||||
// @cmember:(INTERNAL) Coordinata Y del posizionamento iniziale
|
||||
int _ipy;
|
||||
// @cmember Coordinata X del posizionamento finale (la riga e' la stessa)
|
||||
// @cmember:(INTERNAL) Coordinata X del posizionamento finale (la riga e' la stessa)
|
||||
int _fpx;
|
||||
// @cmember Flag per ragistrare i parametri (font ed offset)
|
||||
// @cmember:(INTERNAL) Flag per ragistrare i parametri (font ed offset)
|
||||
bool _dirty;
|
||||
|
||||
// @cmember Relazione corrente (puo' essere NULL), vedi <c TRelation>
|
||||
// @cmember:(INTERNAL) Relazione corrente (puo' essere NULL), vedi <c TRelation>
|
||||
TRelation* _relation;
|
||||
// @cmember Cursore corrente (puo' essere NULL), vedi <c Tcursor>
|
||||
// @cmember:(INTERNAL) Cursore corrente (puo' essere NULL), vedi <c Tcursor>
|
||||
TCursor* _cursor;
|
||||
// @cmember <c TRelation_description> per la gestione della relazione corrente
|
||||
// @cmember:(INTERNAL) <c TRelation_description> per la gestione della relazione corrente
|
||||
TRelation_description* _rel_desc;
|
||||
|
||||
// @cmember Array di headers
|
||||
// @cmember:(INTERNAL) Array di headers
|
||||
TArray _head;
|
||||
// @cmember Array di bodies
|
||||
// @cmember:(INTERNAL) Array di bodies
|
||||
TArray _body;
|
||||
// @cmember Array di footers
|
||||
// @cmember:(INTERNAL) Array di footers
|
||||
TArray _foot;
|
||||
// @cmember Array di sfondi grafici
|
||||
// @cmember:(INTERNAL) Array di sfondi grafici
|
||||
TArray _back;
|
||||
|
||||
// @cmember Indica se si sta stampando l'ultima pagina
|
||||
// @cmember:(INTERNAL) Indica se si sta stampando l'ultima pagina
|
||||
bool _lastpage;
|
||||
|
||||
// @cmember Indica se si tratta di un nuovo form
|
||||
// @cmember:(INTERNAL) Indica se si tratta di un nuovo form
|
||||
bool _isnew;
|
||||
// @cmember Indica se si tratta di form di base (.frm file)
|
||||
// @cmember:(INTERNAL) Indica se si tratta di form di base (.frm file)
|
||||
bool _isbase;
|
||||
// @cmember Indica se effettuare il posizionamento manuale dei moduli
|
||||
// @cmember:(INTERNAL) Indica se effettuare il posizionamento manuale dei moduli
|
||||
bool _arrange;
|
||||
// @cmember Permessi di Edit
|
||||
// @cmember:(INTERNAL) Permessi di Edit
|
||||
int _editlevel;
|
||||
// @cmember Descrizione del formato
|
||||
// @cmember:(INTERNAL) Descrizione del formato
|
||||
TString _desc;
|
||||
// @cmember Array di caratteri di fincatura
|
||||
// @cmember:(INTERNAL) Array di caratteri di fincatura
|
||||
char _fink[11];
|
||||
|
||||
// @cmember Handler di default della testata di stampa
|
||||
// @cmember:(INTERNAL) Handler di default della testata di stampa
|
||||
static void header_handler(TPrinter& p);
|
||||
// @cmember Handler di default del piede di stampa
|
||||
// @cmember:(INTERNAL) Handler di default del piede di stampa
|
||||
static void footer_handler(TPrinter& p);
|
||||
|
||||
// @cmember Ritorna l'array di caratteri di fincatura
|
||||
// @cmember:(INTERNAL) Ritorna l'array di caratteri di fincatura
|
||||
const char* get_fincatura()
|
||||
{ return _fink; }
|
||||
// @cmember Setta l'array di caratteri di fincatura
|
||||
// @cmember:(INTERNAL) Setta l'array di caratteri di fincatura
|
||||
void set_fincatura(const char* s);
|
||||
|
||||
// @access Protected Member
|
||||
@ -160,7 +165,7 @@ protected:
|
||||
// (3 e' una pagina dispari qualsiasi)
|
||||
TPrint_section& section(char s, word page = 3);
|
||||
|
||||
// @cmember Ritorna l'altezaa della pagina <p page> la prima di default
|
||||
// @cmember Ritorna l'altezza della pagina <p page> la prima di default
|
||||
word height(word page = 1);
|
||||
|
||||
// @cmember Stampa la sezione <p s>
|
||||
@ -343,13 +348,17 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TForm_flags | Classe per la gestione dei flag di una <c TForm>
|
||||
//
|
||||
// @base public | TObject
|
||||
class TForm_flags : public TObject
|
||||
|
||||
// @access Protected Member
|
||||
// @author:(INTERNAL) Guido, Angelo, Villa
|
||||
|
||||
{
|
||||
// @access Public Member
|
||||
public:
|
||||
// @cmember Indica se il campo e' automagico (determina da solo il suo valore
|
||||
// alla partenza della maschera)
|
||||
@ -398,6 +407,8 @@ public:
|
||||
bool update(const char* s);
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TPrint_section | Classe per la gestione della stampa di una sezione di <c TForm>
|
||||
//
|
||||
// @base public | TArray
|
||||
@ -405,45 +416,45 @@ class TPrint_section : public TArray
|
||||
|
||||
// @author:(INTERNAL) Guido, Angelo, Villa
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Maschera di edit della sezione corrente
|
||||
// @cmember:(INTERNAL) Maschera di edit della sezione corrente
|
||||
static TMask* _msk;
|
||||
|
||||
// @cmember Altezza della sezione
|
||||
// @cmember:(INTERNAL) Altezza della sezione
|
||||
word _height;
|
||||
// @cmember Offset prima colonna
|
||||
// @cmember:(INTERNAL) Offset prima colonna
|
||||
word _ofspc;
|
||||
// @cmember Offset verticale intestazione colonna
|
||||
// @cmember:(INTERNAL) Offset verticale intestazione colonna
|
||||
word _ofsvr;
|
||||
// @cmember Numero di colonne se COLUMNWISE
|
||||
// @cmember:(INTERNAL) Numero di colonne se COLUMNWISE
|
||||
word _nfld;
|
||||
// @cmember Flag di modifica parametri
|
||||
// @cmember:(INTERNAL) Flag di modifica parametri
|
||||
bool _dirty;
|
||||
// @cmember Specifica la sezione COLUMNWISE
|
||||
// @cmember:(INTERNAL) Specifica la sezione COLUMNWISE
|
||||
bool _columnwise;
|
||||
// @cmember Indica se si tratta di una sezione temporanea (da non salvare)
|
||||
// @cmember:(INTERNAL) Indica se si tratta di una sezione temporanea (da non salvare)
|
||||
bool _temp;
|
||||
|
||||
// @cmember <c TForm> a cui appartiene la sezione
|
||||
// @cmember:(INTERNAL) <c TForm> a cui appartiene la sezione
|
||||
TForm* _form;
|
||||
// @cmember Tipo della sezione da stampare (<p H>=header, <p B>=body
|
||||
// @cmember:(INTERNAL) Tipo della sezione da stampare (<p H>=header, <p B>=body
|
||||
// <p F>=footer, <p G>=background)
|
||||
char _sec_type;
|
||||
// @cmember Posizione della pagina da stampare (vedi <t pagetype>)
|
||||
// @cmember:(INTERNAL) Posizione della pagina da stampare (vedi <t pagetype>)
|
||||
pagetype _page_type;
|
||||
// @cmember Indica se si tratta di una sottosezione
|
||||
// @cmember:(INTERNAL) Indica se si tratta di una sottosezione
|
||||
bool _subsection;
|
||||
|
||||
// @cmember Lista dei campi da stampare
|
||||
// @cmember:(INTERNAL) Lista dei campi da stampare
|
||||
TArray _item;
|
||||
// @cmember Numero di ripetizione eseguite
|
||||
// @cmember:(INTERNAL) Numero di ripetizione eseguite
|
||||
int _repeat_count;
|
||||
|
||||
// @cmember Offset delle colonne se COLUMNWISE
|
||||
// @cmember:(INTERNAL) Offset delle colonne se COLUMNWISE
|
||||
int _tab[MAXCOLUMNS];
|
||||
|
||||
// @cmember Fa una copia della print_section
|
||||
// @cmember:(INTERNAL) Fa una copia della print_section
|
||||
const TPrint_section& copy(const TPrint_section& ps);
|
||||
|
||||
// @access Protected Member
|
||||
@ -471,7 +482,7 @@ public:
|
||||
{ return *_form; }
|
||||
|
||||
// @cmember Ritorna la lista dei campi da stampare
|
||||
TArray& field_array()
|
||||
TArray& field_array()
|
||||
{ return _item; }
|
||||
// @cmember Ritorna l'<p n>-esimo campo da stampare
|
||||
TForm_item& field(int n) const
|
||||
@ -570,6 +581,9 @@ public:
|
||||
virtual ~TPrint_section();
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TForm_item | Classe per la definizione per ogni campo del <c TForm>
|
||||
//
|
||||
// @base public | TObject
|
||||
@ -577,20 +591,22 @@ class TForm_item : public TObject
|
||||
|
||||
// @author:(INTERNAL) Guido, Angelo, Villa
|
||||
|
||||
// @access Private Member
|
||||
|
||||
{
|
||||
// @cfriend TPrint_section
|
||||
friend class TPrint_section;
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Sezione da stampare (vedi <c TPrint_section>)
|
||||
// @cmember:(INTERNAL) Sezione da stampare (vedi <c TPrint_section>)
|
||||
TPrint_section* _section;
|
||||
// @cmember Flag del campo (vedi <c TForm_flags>)
|
||||
// @cmember:(INTERNAL) Flag del campo (vedi <c TForm_flags>)
|
||||
TForm_flags _flag;
|
||||
// @cmember Gruppi a cui appartiene il campo
|
||||
// @cmember:(INTERNAL) Gruppi a cui appartiene il campo
|
||||
TBit_array _group;
|
||||
// @cmember Special attribuiti al campo (vedi <c TAssoc_array>)
|
||||
// @cmember:(INTERNAL) Special attribuiti al campo (vedi <c TAssoc_array>)
|
||||
TAssoc_array _special;
|
||||
// @cmember Indica se si tratta di un campo temporaneo (da non salvare)
|
||||
// @cmember:(INTERNAL) Indica se si tratta di un campo temporaneo (da non salvare)
|
||||
bool _temp;
|
||||
|
||||
// @access Protected Member
|
||||
@ -681,6 +697,7 @@ public:
|
||||
{ return _flag.memo; }
|
||||
|
||||
// virtual short& x() { return _x; };
|
||||
|
||||
// @cmember Setta la ccordinata X (in caratteri) del campo
|
||||
virtual void set_x(short x)
|
||||
{_x=x;}
|
||||
|
@ -13,57 +13,108 @@ class TConfig;
|
||||
class TRelation;
|
||||
#endif
|
||||
|
||||
// Generic Object Linking & Embedding Mechanism
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TGolem | Classe per le gestione del Generic Object Linking & Embedding Mechanism
|
||||
//
|
||||
// @base public | TSortable
|
||||
class TGolem : public TSortable
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember:(INTERNAL) Numero di GOLEM costruiti fin'ora
|
||||
static long _count;
|
||||
// @cmember:(INTERNAL) <c TConfig> di appoggio per leggere i paramentri
|
||||
static TConfig* _config;
|
||||
// @cmember:(INTERNAL) Nome del file di config
|
||||
static TFilename* _path;
|
||||
// @cmember:(INTERNAL) <c TRelation> dei GOLEM
|
||||
static TRelation* _golem;
|
||||
|
||||
// @cmember:(INTERNAL) Nome della classe del GOLEM
|
||||
TString16 _class;
|
||||
// @cmember:(INTERNAL) Identificatore del GOLEM
|
||||
long _id;
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
// @cmember Ritorna il path completo dell'oggetto inserito. <p test> verifica se esiste
|
||||
const TFilename& path(bool test = FALSE) const;
|
||||
// @cmember Ritorna l'estensione del GOLEM
|
||||
const char* ext() const;
|
||||
// @cmember Ritorna il <c TConfig> di appoggio per leggere i paramentri
|
||||
TConfig& config() const;
|
||||
// @cmember Genera il prossimo identificatore libero
|
||||
long new_id() const;
|
||||
|
||||
protected:// TSortable
|
||||
// @cmember Confronta due GOLEM (vedi <c TSortable>)
|
||||
virtual int compare(const TSortable& o) const;
|
||||
|
||||
// @access Public Member
|
||||
public: // TObject
|
||||
// @cmember Ritorna il nome della classe
|
||||
virtual const char* class_name() const;
|
||||
// @cmember Ritorna l'identificatore della classe
|
||||
virtual word class_id() const;
|
||||
// @cmember Ritorna se si tratta di un oggetto valido
|
||||
virtual bool ok() const;
|
||||
|
||||
public:
|
||||
// @cmember Ritorna l'identificatore dell'icona del GOLEM
|
||||
virtual short icon() const;
|
||||
// @cmember Chiama il programma di moifica del GOLEM
|
||||
virtual bool edit();
|
||||
// @cmember Mostra il dialog box di selezione del file
|
||||
virtual bool import();
|
||||
|
||||
long id() const { return _id; }
|
||||
// @cmember Ritorna l'identificatore del GOLEM
|
||||
long id() const
|
||||
{ return _id; }
|
||||
|
||||
// @cmember Costruttore
|
||||
TGolem(const char* cls, long id);
|
||||
// @cmember Distruttore
|
||||
virtual ~TGolem();
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TDDE | Classe per la gestione del DDE
|
||||
//
|
||||
// @base public | TWindow
|
||||
class TDDE : public TWindow
|
||||
|
||||
// @comm Attualmente utilizzato all'avvio di PRASSI per comunicare al Program Manager il nome
|
||||
// dell'utente in modo da comunicarlo a tutti i programmi PRASSI avviati in seguito.
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember:(INTERNAL) Handle della finestra Windows
|
||||
word _hwnd;
|
||||
// @cmember:(INTERNAL) Handle della finestra del server DDE
|
||||
word _server;
|
||||
// @cmember:(INTERNAL) Puntatore alla funzione di gestione dei messaggi
|
||||
long _old_hook;
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
void set_server(word s) { _server = s; }
|
||||
void set_server(word s)
|
||||
{ _server = s; }
|
||||
// @cmember Stabilisce il collegamento dell'<p app> per i <p topic> indicati
|
||||
bool initiate(const char* app, const char* topic);
|
||||
// @cmember Esegue il comando <p cmd>
|
||||
bool execute(const char* cmd) const;
|
||||
// @cmember Chiude la connessione
|
||||
void terminate();
|
||||
|
||||
// @cmember Costruttore
|
||||
TDDE();
|
||||
// @cmember Distruttore
|
||||
virtual ~TDDE();
|
||||
};
|
||||
|
||||
|
@ -60,14 +60,14 @@ HIDDEN void UNKNOWN_FIELD(int num, const char* name)
|
||||
|
||||
HIDDEN bool __autoload = TRUE;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Funzioni implementate per la gestione file dati tramite Codebase
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Inizio(@)
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Ritorna una Token_string con in nome dell'indice
|
||||
void get_idx_names(
|
||||
@ -382,6 +382,8 @@ HIDDEN int delkeys(isfdptr fd, char* record,long recno)
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Fine(@)
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Setta il valore della variabile <p __autoload>
|
||||
void set_autoload_new_files(
|
||||
bool on) // @parm Valore da assegnare
|
||||
@ -1183,6 +1185,7 @@ void TBaseisamfile::indexoff()
|
||||
{
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Apre il file isam di base con lock
|
||||
//
|
||||
@ -1310,12 +1313,24 @@ int TBaseisamfile::is_valid()
|
||||
// TLocalisamfile
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// Attenzione linkrecinst puo' valere 0, 1, 2.
|
||||
// Se vale 2 significa che si sta costruendo un file temporaneo
|
||||
// per cui linkrecinst va' considerato FALSE
|
||||
// @doc EXTERNAL
|
||||
|
||||
TLocalisamfile::TLocalisamfile(int logicnum, bool linkrecinst)
|
||||
// @mfunc Costruttore
|
||||
//
|
||||
// @rdesc Ritorna l'oggetto <c TLocalisamfile>
|
||||
TLocalisamfile::TLocalisamfile(
|
||||
int logicnum, // @parm Numero del logico del file
|
||||
bool linkrecinst) // @parm Puo assumere i valori:
|
||||
//
|
||||
// @flag 0 | Istanzio un nuovo file fisico (default)
|
||||
// @flag 1 | Utilizza, se possibile, un file gia' esistente
|
||||
// @flag 2 | Crea un file temporaneo
|
||||
: TBaseisamfile(logicnum, linkrecinst == TRUE)
|
||||
|
||||
// @comm ATTENZIONE: <p linkrecinst> puo' valere 0, 1, 2.
|
||||
// Se vale 2 significa che si sta costruendo un file temporaneo
|
||||
// per cui linkrecinst va' considerato FALSE
|
||||
|
||||
{
|
||||
if (linkrecinst <= TRUE)
|
||||
{
|
||||
@ -1435,6 +1450,8 @@ TIsamfile::~TIsamfile()
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiorna i flags associati al file
|
||||
//
|
||||
// @rdesc Ritorna NOERR se e' riuscita ad eseguiore l'operazione, altrimenti ritorna il numero
|
||||
@ -1527,6 +1544,8 @@ TIsamtempfile::~TIsamtempfile()
|
||||
close();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Apre il file
|
||||
//
|
||||
// @rdesc Ritorna NOERR se e' riuscita ad aprire il file, altrimenti ritorna il numero di errore
|
||||
@ -1713,6 +1732,9 @@ long TSystemisamfile::size(TRecnotype eox)
|
||||
}
|
||||
|
||||
#ifndef FOXPRO
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Esegue la conversione del file
|
||||
//
|
||||
// @rdesc Ritorna il rusultato dell'operazione
|
||||
@ -1756,6 +1778,8 @@ bool TSystemisamfile::exec_convapp(
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Recupera le conversioni logiche da effettuare sul file
|
||||
//
|
||||
// @rdesc Ritorna TRUE se occorre effettuare la conversione sul file
|
||||
@ -1811,6 +1835,8 @@ void TSystemisamfile::makelc(TRectype& rec)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Esegue la conversione del tracciato record del file
|
||||
//
|
||||
// @rdesc Ritorna il risulato della conversione, altrimenti il codice di errore generato
|
||||
@ -1963,6 +1989,8 @@ int TSystemisamfile::update(
|
||||
return err;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Rimuove fisicamente i record cancellati
|
||||
//
|
||||
// @rdesc Ritorna NOERR se l'operazione di compattamento e' riuscita, altrimenti il codice di
|
||||
@ -1988,6 +2016,8 @@ int TSystemisamfile::packfile(
|
||||
return err;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Rimuove fisicamente gli indici cancellati
|
||||
//
|
||||
// @rdesc Ritorna NOERR se l'operazione di compattamento e' riuscita, altrimenti il codice di
|
||||
@ -2032,6 +2062,8 @@ int TSystemisamfile::pack(bool vis)
|
||||
return err;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Importa un file ascii
|
||||
//
|
||||
// @rdesc Ritorna NOERR se l'operazione di lettura e' riuscita, altrimenti il codice di
|
||||
@ -2224,6 +2256,8 @@ int TSystemisamfile::load(
|
||||
return err;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Esporta VERSO un file ascii.
|
||||
//
|
||||
// @rdesc Ritorna NOERR se l'operazione di esportazione e' riuscita, altrimenti il codice di
|
||||
@ -2469,6 +2503,8 @@ const char* TRectype::last_key_field(int key) const
|
||||
return rf.Name;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Confronta le chiavi di due record
|
||||
//
|
||||
// @rdesc Ritorna il risultato di una <f strcmp>:
|
||||
@ -2715,6 +2751,7 @@ bool TRectype::get_bool(const char* fieldname) const
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il contenuto di un campo memo
|
||||
//
|
||||
|
149
include/isam.h
149
include/isam.h
@ -54,7 +54,7 @@ const int MAX_KEYS = 8;
|
||||
class TLocalisamfile;
|
||||
class TRectype;
|
||||
|
||||
// @doc EXTERNAL
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TMemo_info | Classe per la definizione dei campi Memo
|
||||
//
|
||||
@ -62,15 +62,15 @@ class TRectype;
|
||||
class TMemo_info : public TObject
|
||||
// @author:(INTERNAL) Sandro
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Campi memo modificati
|
||||
// @cmember:(INTERNAL) Campi memo modificati
|
||||
TBit_array _dirty;
|
||||
// @cmember Array di stringhe contenteti i campi memo
|
||||
// @cmember:(INTERNAL) Array di stringhe contenteti i campi memo
|
||||
TString_array _data;
|
||||
// @cmember Numero di record sul file dati
|
||||
// @cmember:(INTERNAL) Numero di record sul file dati
|
||||
TRecnotype _recno;
|
||||
// @cmember Record che possiede il campo memo
|
||||
// @cmember:(INTERNAL) Record che possiede il campo memo
|
||||
const TRectype * _owner;
|
||||
|
||||
// @access Protected Member
|
||||
@ -110,6 +110,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TRectype | Classe per la definizione del tipo di record del file
|
||||
//
|
||||
// @base public | TSortable
|
||||
@ -129,21 +131,21 @@ class TRectype : public TSortable
|
||||
// @cfriend TIsamtempfile
|
||||
friend class TIsamtempfile;
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Puntatore all'inizio inizio del record
|
||||
// @cmember:(INTERNAL) Puntatore all'inizio inizio del record
|
||||
char* _rec;
|
||||
// @cmember Numero logico del record
|
||||
// @cmember:(INTERNAL) Numero logico del record
|
||||
int _logicnum;
|
||||
// @cmember Lunghezza del record
|
||||
// @cmember:(INTERNAL) Lunghezza del record
|
||||
int _length;
|
||||
// @cmember Indica se il record e' vuoto
|
||||
// @cmember:(INTERNAL) Indica se il record e' vuoto
|
||||
bool _isempty;
|
||||
// @cmember Indentificatore della tabella
|
||||
// @cmember:(INTERNAL) Indentificatore della tabella
|
||||
char _tab[5];
|
||||
// @cmember Campo "COD" della tabella
|
||||
// @cmember:(INTERNAL) Campo "COD" della tabella
|
||||
TRecfield * _cod;
|
||||
// @cmember Puntatore alla classe contenente i campi memo
|
||||
// @cmember:(INTERNAL) Puntatore alla classe contenente i campi memo
|
||||
TMemo_info * _memoinfo;
|
||||
|
||||
// @access Protected Member
|
||||
@ -225,7 +227,7 @@ public:
|
||||
// @cmember Ritorna il contenuto del campo <p fieldname> (non tipizzata)
|
||||
const char* get_str(const char* fieldname) const ;
|
||||
#ifndef FOXPRO
|
||||
// @cmember Riotna il reference al contenuto del campo <p fieldname>
|
||||
// @cmember Ritorna il reference al contenuto del campo <p fieldname>
|
||||
const TString& get(const char* fieldname) const ;
|
||||
// @cmember Ritorna il contenuto del campo <p fieldname> in formato int
|
||||
int get_int(const char* fieldname) const ;
|
||||
@ -328,6 +330,7 @@ public:
|
||||
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TBaseisamfile | Classe per la definizione del file isam di base
|
||||
//
|
||||
@ -336,33 +339,7 @@ class TBaseisamfile : public TObject
|
||||
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access Private Member
|
||||
{
|
||||
// @cmember Descrittore del file isam
|
||||
isdef* _isamfile;
|
||||
// @cmember Numero logico del record corrente
|
||||
int _logicnum;
|
||||
// @cmember Ultimo errore
|
||||
int _lasterr;
|
||||
// @cmember Permette di sapere se rimuovere il record alla fine
|
||||
bool _delrec;
|
||||
// @cmember Permette di sapere se rimuovere il record alla fine dalla lista interna di record
|
||||
bool _delopenrec;
|
||||
// @cmember Puntatore a record corrente
|
||||
TRectype* _current;
|
||||
// @cmember UNUSED
|
||||
TFile _hf;
|
||||
// @cmember UNUSED
|
||||
TFile _hfhd;
|
||||
// @cmember Indica se il file e' archivio storico
|
||||
bool _historicfile;
|
||||
// @cmember UNUSED
|
||||
TRecnotype _lasthf;
|
||||
// @cmember Record corrente
|
||||
TRecnotype _recno;
|
||||
// @cmember Indica se il file possiede dei campi memo
|
||||
bool _has_memo;
|
||||
|
||||
// @cfriend TRectype
|
||||
friend class TRectype;
|
||||
// @cfriend TLocalisamfile
|
||||
@ -374,22 +351,51 @@ class TBaseisamfile : public TObject
|
||||
// @cfriend TRecfield
|
||||
friend class TRecfield;
|
||||
// friend class TCursor;
|
||||
|
||||
// friend TRecnotype __buildcursor(TFilecursor* tic, TRecnotype rp);
|
||||
// friend TRecnotype __filtercursor(TFilecursor* tic);
|
||||
// friend bool __evalcondition(TBaseisamfile* i,TString& condition);
|
||||
// friend void __readrec(TFilecursor* tic);
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember:(INTERNAL) Descrittore del file isam
|
||||
isdef* _isamfile;
|
||||
// @cmember:(INTERNAL) Numero logico del record corrente
|
||||
int _logicnum;
|
||||
// @cmember:(INTERNAL) Ultimo errore
|
||||
int _lasterr;
|
||||
// @cmember:(INTERNAL) Permette di sapere se rimuovere il record alla fine
|
||||
bool _delrec;
|
||||
// @cmember:(INTERNAL) Permette di sapere se rimuovere il record alla fine dalla lista interna di record
|
||||
bool _delopenrec;
|
||||
// @cmember:(INTERNAL) Puntatore a record corrente
|
||||
TRectype* _current;
|
||||
// @cmember:(INTERNAL) UNUSED
|
||||
TFile _hf;
|
||||
// @cmember:(INTERNAL) UNUSED
|
||||
TFile _hfhd;
|
||||
// @cmember:(INTERNAL) Indica se il file e' archivio storico
|
||||
bool _historicfile;
|
||||
// @cmember:(INTERNAL) UNUSED
|
||||
TRecnotype _lasthf;
|
||||
// @cmember:(INTERNAL) Record corrente
|
||||
TRecnotype _recno;
|
||||
// @cmember:(INTERNAL) Indica se il file possiede dei campi memo
|
||||
bool _has_memo;
|
||||
|
||||
|
||||
|
||||
|
||||
// @cmember UNUSED
|
||||
// @cmember:(INTERNAL) UNUSED
|
||||
int gethr(TRectype& rec, TDate& atdate);
|
||||
// @cmember Ritorna NOERR
|
||||
// @cmember:(INTERNAL) Ritorna NOERR
|
||||
int addhr(const TRectype& rec, TDate& atdate);
|
||||
// @cmember Ritorna NOERR
|
||||
// @cmember:(INTERNAL) Ritorna NOERR
|
||||
int rewhr(const TRectype& rec, TDate& atdate);
|
||||
// @cmember Ritorna NOERR
|
||||
// @cmember:(INTERNAL) Ritorna NOERR
|
||||
int delhr(const TRectype& rec, TDate& atdate);
|
||||
|
||||
// access Protected Member
|
||||
// @access Protected Member
|
||||
protected:
|
||||
// @cmember Ritorna il descrittore del file isam
|
||||
isdef** ptrfilehnd() const
|
||||
@ -603,6 +609,8 @@ public:
|
||||
virtual ~TBaseisamfile();
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TIsamfile | Classe per la definizione delle operazione sul file isam
|
||||
//
|
||||
// @base public | TBaseisamfile
|
||||
@ -627,6 +635,8 @@ public:
|
||||
virtual ~TIsamfile();
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TSystemisamfile | Classe per la definizione delle funzione per la creazione di un file
|
||||
// di isam
|
||||
//
|
||||
@ -636,18 +646,18 @@ class TSystemisamfile : public TIsamfile
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
{
|
||||
// @access Private Memebr
|
||||
// @access:(INTERNAL) Private Memebr
|
||||
|
||||
// @cmember Array di campi che descrivono il record del file
|
||||
// @cmember:(INTERNAL) Array di campi che descrivono il record del file
|
||||
TArray _flds;
|
||||
// @cmember Array di espressione
|
||||
// @cmember:(INTERNAL) Array di espressione
|
||||
TArray _exps;
|
||||
|
||||
// @cmember Recupera le conversioni logiche da effettuare sul file
|
||||
// @cmember:(INTERNAL) Recupera le conversioni logiche da effettuare sul file
|
||||
bool getlcf(long flev);
|
||||
// @cmember Esegue la conversione del file
|
||||
// @cmember:(INTERNAL) Esegue la conversione del file
|
||||
bool exec_convapp(long flev, const bool before);
|
||||
// @cmember Esegue la conversione sui record del file (utilizzando le espressione definite
|
||||
// @cmember:(INTERNAL) Esegue la conversione sui record del file (utilizzando le espressione definite
|
||||
// in fconv.ini)
|
||||
void makelc(TRectype& rec);
|
||||
|
||||
@ -683,6 +693,8 @@ public:
|
||||
{}
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TLocalisamfile | Classe per la definizione di un isam file
|
||||
//
|
||||
// @base public | TBaseisamfile
|
||||
@ -690,11 +702,11 @@ class TLocalisamfile : public TBaseisamfile
|
||||
|
||||
// @author:(INTERNAL) Sandro
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Indica se il file e' stato aperto come Localisamfile
|
||||
// @cmember:(INTERNAL) Indica se il file e' stato aperto come Localisamfile
|
||||
bool _was_open;
|
||||
// @cmember Vecchia chiave se il file e' gia' aperto
|
||||
// @cmember:(INTERNAL) Vecchia chiave se il file e' gia' aperto
|
||||
int _oldkey;
|
||||
|
||||
// @access Protected Member
|
||||
@ -726,6 +738,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TIsamtempfile | Classe per la definizione del file isam temporaneo
|
||||
//
|
||||
// @base public | TLocalisamfile
|
||||
@ -734,9 +748,9 @@ class TIsamtempfile : public TLocalisamfile
|
||||
// @author:(INTERNAL) Sandro
|
||||
{
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
//@cmember Indica se cancellare il file in chiusura
|
||||
//@cmember:(INTERNAL) Indica se cancellare il file in chiusura
|
||||
bool _autodel;
|
||||
|
||||
// @access Protected Member
|
||||
@ -757,6 +771,7 @@ public:
|
||||
virtual ~TIsamtempfile();
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TRec_array | Classe per la definizione un array di record
|
||||
//
|
||||
@ -776,22 +791,24 @@ public:
|
||||
// @base public | TObject
|
||||
class TRecfield : public TObject
|
||||
|
||||
// @access Private Member
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Nome del campo
|
||||
// @cmember:(INTERNAL) Nome del campo
|
||||
char _name[12];
|
||||
// @cmember Puntatore a inizio record
|
||||
// @cmember:(INTERNAL) Puntatore a inizio record
|
||||
TRectype* _rec;
|
||||
// @cmember Puntatore a inizio campo
|
||||
// @cmember:(INTERNAL) Puntatore a inizio campo
|
||||
char* _p;
|
||||
// @cmember Lunghezza del campo
|
||||
// @cmember:(INTERNAL) Lunghezza del campo
|
||||
byte _len;
|
||||
// @cmember Numero di decimali del campo
|
||||
// @cmember:(INTERNAL) Numero di decimali del campo
|
||||
byte _dec;
|
||||
// @cmember Tipo del campo
|
||||
// @cmember:(INTERNAL) Tipo del campo
|
||||
byte _type;
|
||||
|
||||
// @cmember Setta il campo <p to>-esimo con i valori di <p from>-esimo
|
||||
// @cmember:(INTERNAL) Setta il campo <p to>-esimo con i valori di <p from>-esimo
|
||||
void set(int from, int to);
|
||||
|
||||
// @access Public Member
|
||||
|
@ -8,8 +8,6 @@
|
||||
#define DEF_MSGS_CAPACITY 50
|
||||
#define MAX_TXT_LEN 200
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
TMessage::TMessage(const char* to, const char* sub,
|
||||
const char* text, const char* from)
|
||||
{
|
||||
@ -79,6 +77,8 @@ TMessage* TMailbox::next_read()
|
||||
return this->get(_cnt++);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il prossimo messaggio
|
||||
TMessage* TMailbox::next(
|
||||
bool read) // @parm Indica se il messaggio deve essere tra quelli
|
||||
@ -92,6 +92,8 @@ TMessage* TMailbox::next(
|
||||
return m;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il prossimo messaggio con lo stesso oggetto
|
||||
TMessage* TMailbox::next_s(
|
||||
char* s, // @parm Oggetto del messaggio da ritornare
|
||||
@ -120,6 +122,7 @@ TMessage* TMailbox::next_s(
|
||||
return this->get(_cnt);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il prossimo messaggio con lo stesso mandante
|
||||
TMessage* TMailbox::next_f(
|
||||
|
@ -15,21 +15,25 @@
|
||||
//
|
||||
// @base public | TObject
|
||||
class TMessage : public TObject
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
|
||||
{
|
||||
// @cfriend TMailbox
|
||||
friend class TMailbox;
|
||||
friend class TMailbox;
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Applicazione che lancia il messaggio
|
||||
// @cmember:(INTERNAL) Applicazione che lancia il messaggio
|
||||
TString16 _from;
|
||||
// @cmember Applicazione che deve ricevere il messaggio
|
||||
// @cmember:(INTERNAL) Applicazione che deve ricevere il messaggio
|
||||
TString16 _to;
|
||||
// @cmember Oggetto del messaggio
|
||||
// @cmember:(INTERNAL) Oggetto del messaggio
|
||||
TString80 _subject;
|
||||
// @cmember Testo del messaggio
|
||||
// @cmember:(INTERNAL) Testo del messaggio
|
||||
TString _text;
|
||||
// @cmember Flag di controllo del messaggio
|
||||
// @cmember:(INTERNAL) Flag di controllo del messaggio
|
||||
byte _flags;
|
||||
// #cmember Numero (non si sa cosa faccia)
|
||||
// int _number;
|
||||
@ -85,20 +89,23 @@ public:
|
||||
//
|
||||
// @base public | TObject
|
||||
class TMailbox : public TObject
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Nome del file che contiene i messaggi
|
||||
// @author:(INTERNAL) Villa
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
|
||||
// @cmember:(INTERNAL) Nome del file che contiene i messaggi
|
||||
TFilename _path;
|
||||
// @cmember Array di messaggi ricevuti
|
||||
// @cmember:(INTERNAL) Array di messaggi ricevuti
|
||||
TArray _msgs;
|
||||
// @cmember Numero dell'ultimo messaggio letto
|
||||
// @cmember:(INTERNAL) Numero dell'ultimo messaggio letto
|
||||
int _lastread;
|
||||
// @cmember Numero di messaggi in attesa di lettura
|
||||
// @cmember:(INTERNAL) Numero di messaggi in attesa di lettura
|
||||
int n_new;
|
||||
// @cmember Posizione nel file dell'ultimo messaggio letto
|
||||
// @cmember:(INTERNAL) Posizione nel file dell'ultimo messaggio letto
|
||||
long _lastpos;
|
||||
// @cmember Indice dei messaggi letti e non letti
|
||||
// @cmember:(INTERNAL) Indice dei messaggi letti e non letti
|
||||
int _cnt;
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -23,6 +23,8 @@ extern unsigned long _alloc_count;
|
||||
|
||||
HIDDEN bool moving_focus = FALSE;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla se e' possibile dare il focus alla finestra <p next>
|
||||
//
|
||||
// @rdesc Ritorna la possibilita' di lasciare il focus
|
||||
@ -237,7 +239,7 @@ TMask::TMask(const char* title, int pages, int cols, int rows, int xpos,
|
||||
add_buttons();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge la maschera da file
|
||||
void TMask::read_mask(
|
||||
@ -457,6 +459,8 @@ void TMask::load_checks() const
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Abilita/disabilita una pagina e tutte le successive
|
||||
void TMask::enable_page(
|
||||
byte page, // @parm Pagina da abilitare/disabilitare
|
||||
@ -585,6 +589,7 @@ void TMask::get_mask_fields()
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Converte un identificatore di campo nella sua posizione
|
||||
//
|
||||
@ -666,6 +671,7 @@ int TMask::find_field_win(WINDOW win) const
|
||||
return 0;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta il focus al campo la cui finestra e' <p win>
|
||||
void TMask::set_focus_win(
|
||||
@ -691,6 +697,8 @@ int TMask::find_parent_page(const TMask_field& f) const
|
||||
return MAX_PAGES; // Toolbar button
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il prossimo campo attivabile
|
||||
//
|
||||
// @rdesc Riorna il numero del campo cercato
|
||||
@ -755,6 +763,7 @@ void TMask::set_focus()
|
||||
f.highlight();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Muove il focus al prossimo o al precedente controllo valido
|
||||
void TMask::move_focus_field(
|
||||
@ -790,6 +799,8 @@ void TMask::move_focus_field(
|
||||
set_focus();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Forza la chiusura della maschera
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione:
|
||||
@ -847,6 +858,8 @@ bool TMask::stop_run(
|
||||
return TWindow::stop_run(key);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Assegna una azione al tasto non standard
|
||||
//
|
||||
// @rdesc Ritrna se e' stto effetuato una azione:
|
||||
@ -968,6 +981,8 @@ TMask_field* TMask::parse_field(TScanner& scanner)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge la pagina dal file
|
||||
//
|
||||
// @rdesc Ritorna l'handle della finestra creata
|
||||
@ -1046,6 +1061,8 @@ WINDOW TMask::read_page(
|
||||
return w;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la posizione del primo campo attivo nella direzione specificata
|
||||
//
|
||||
// @rdesc Ritorna il primo campo attivo
|
||||
@ -1090,6 +1107,7 @@ bool TMask::check_current_page()
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Mostra la prossima/precedente pagina
|
||||
void TMask::next_page(
|
||||
@ -1193,7 +1211,7 @@ TDate TMask::get_date(short fld_id) const
|
||||
return TDate(s);
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta il campo con un valore
|
||||
void TMask::set(
|
||||
@ -1234,6 +1252,8 @@ void TMask::set(short fld_id, const TDate& d, bool hit)
|
||||
set(fld_id, d.string(), hit);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di attivare/disattivare tutta la pagina
|
||||
void TMask::activate(
|
||||
bool on) // @parm Indica l'operazione da svolgere sul campo:
|
||||
@ -1246,6 +1266,8 @@ void TMask::activate(
|
||||
xvt_vobj_set_visible(toolwin(), on);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Abilita/disabilita un campo
|
||||
void TMask::enable(
|
||||
short fld_id, // @parm Identificatore del campo da abilitare (-1 tutti i campi)
|
||||
@ -1289,6 +1311,8 @@ byte TMask::num_keys() const
|
||||
return max;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Abilita/disabilita i campi di una chiave sulla maschera
|
||||
void TMask::enable_key(
|
||||
byte key, // @parm Chiave di cui abilitare il campo
|
||||
@ -1311,6 +1335,7 @@ void TMask::enable_key(
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il l'identificatore di un campo della chiave <p key>
|
||||
//
|
||||
@ -1362,6 +1387,8 @@ bool TMask::key_valid(int key) const
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di mostrare/nascondere un campo
|
||||
void TMask::show(
|
||||
short fld_id, // @parm Campo da mostrare/nascondere (default -1)
|
||||
@ -1386,7 +1413,7 @@ void TMask::show(
|
||||
else field(fld_id).show(on);
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Rimette lo stato di default del campo
|
||||
void TMask::show_default(
|
||||
@ -1459,6 +1486,7 @@ void TMask::on_idle()
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di mandare un tasto ad un campo
|
||||
void TMask::send_key(
|
||||
@ -1505,6 +1533,8 @@ void TMask::send_key(
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di mandare un handler ad controllo o ad una maschera
|
||||
void TMask::set_handler(
|
||||
short fld_id, // @parm Identificatere del campo che deve ricevere l'handler
|
||||
@ -1527,6 +1557,7 @@ void TMask::set_handler(MASK_HANDLER handler)
|
||||
_handler = handler;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge runtime un campo testo alla maschera
|
||||
//
|
||||
@ -1548,6 +1579,8 @@ WINDOW TMask::add_static (
|
||||
return f->win();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge runtime un campo stringa alla maschera
|
||||
//
|
||||
// @rdesc Ritorna l'handle del campo creato
|
||||
@ -1570,6 +1603,8 @@ WINDOW TMask::add_string (
|
||||
return f->win();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge runtime un campo lista alla maschera
|
||||
//
|
||||
// @rdesc Ritorna l'handle del campo creato
|
||||
@ -1594,9 +1629,11 @@ WINDOW TMask::add_list (
|
||||
return f->win();
|
||||
}
|
||||
|
||||
// @mfunc Aggiunge runtime un campo boolean alla maschera
|
||||
//
|
||||
// @rdesc Ritorna il descrittore del campo aggiunto
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge runtime un campo boolean alla maschera
|
||||
//
|
||||
// @rdesc Ritorna il descrittore del campo aggiunto
|
||||
WINDOW TMask::add_boolean (
|
||||
short id, // @parm Numero identificatore del campo da aggiungere
|
||||
int page, // @parm Pagina nel quale aggiungere il campo
|
||||
@ -1614,6 +1651,8 @@ WINDOW TMask::add_boolean (
|
||||
return f->win();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge runtime un campo zoom alla maschera
|
||||
//
|
||||
// @rdesc Ritorna l'handle del campo creato
|
||||
@ -1636,6 +1675,8 @@ WINDOW TMask::add_zoom (
|
||||
return f->win();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge runtime un campo numerico alla maschera
|
||||
//
|
||||
// @rdesc Ritorna l'handle del campo creato
|
||||
@ -1658,6 +1699,8 @@ WINDOW TMask::add_number (
|
||||
return f->win();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge runtime un campo data alla maschera
|
||||
//
|
||||
// @rdesc Ritorna l'handle del campo creato
|
||||
@ -1678,6 +1721,8 @@ WINDOW TMask::add_date (
|
||||
return f->win();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge runtime un campo bottone alla maschera
|
||||
//
|
||||
// @rdesc Ritorna l'handle del campo creato
|
||||
@ -1700,6 +1745,7 @@ WINDOW TMask::add_button (
|
||||
return f->win();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge runtime un campo radio button alla maschera
|
||||
//
|
||||
@ -1725,6 +1771,8 @@ WINDOW TMask::add_radio(
|
||||
return ((TMask_field*)f)->win();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge runtime un campo memo alla maschera
|
||||
//
|
||||
// @rdesc Ritorna l'handle del campo creato
|
||||
@ -1747,6 +1795,8 @@ WINDOW TMask::add_memo(
|
||||
return ((TMask_field*)f)->win();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di salvare il file di salvataggio
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione:
|
||||
@ -1775,9 +1825,10 @@ bool TMask::save(
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di leggere il file di salvataggio
|
||||
//
|
||||
|
||||
// @rdesc Ritorna il risultato dell'operazione:
|
||||
//
|
||||
// @flag TRUE | Se l'operazione e' avvenuta corretamente
|
||||
@ -1827,6 +1878,8 @@ void TMask::set_caption(const char* c)
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta il valore attuale della valuta
|
||||
void TMask::set_exchange(
|
||||
bool show_value, // @parm Indica se il deve essere visibile l'importo in valuta
|
||||
|
@ -13,9 +13,12 @@ class TSheet_field;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type MASK_HANDLER | Funzione per gestire i tasti speciali all'interno di una maschera.
|
||||
// @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
|
||||
@ -25,6 +28,9 @@ enum TMaskmode {
|
||||
MODE_QUERY, // @emem Modalita' di richiesta chiave
|
||||
MODE_QUERYINS }; // @emem Modalita' di richiesta chiave e inserimento dati
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TMask | Classe per la gestione delle maschere video
|
||||
//
|
||||
// @base public | TWindow
|
||||
@ -32,62 +38,62 @@ class TMask : public TWindow
|
||||
{
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @ccost MAX_PAGES | 12 | Massimo numero di pagine nella maschera
|
||||
// @ccost:(INTERNAL) MAX_PAGES | 12 | Massimo numero di pagine nella maschera
|
||||
enum { MAX_PAGES = 12 };
|
||||
// @cmember Windows delle pagine
|
||||
// @cmember:(INTERNAL) Windows delle pagine
|
||||
WINDOW _pagewin[MAX_PAGES+1];
|
||||
// @cmember Windows per pgup/pgdn
|
||||
// @cmember:(INTERNAL) Windows per pgup/pgdn
|
||||
WINDOW _pagepag[MAX_PAGES];
|
||||
// @cmember Windows di numeri pagina
|
||||
// @cmember:(INTERNAL) Windows di numeri pagina
|
||||
WINDOW _pagetag[MAX_PAGES];
|
||||
|
||||
// @cmember Numero di pagine della maschera
|
||||
// @cmember:(INTERNAL) Numero di pagine della maschera
|
||||
int _pages;
|
||||
// @cmember Pagina corrente
|
||||
// @cmember:(INTERNAL) Pagina corrente
|
||||
int _page;
|
||||
|
||||
// @cmember Controlla le pagine abilitate
|
||||
// @cmember:(INTERNAL) Controlla le pagine abilitate
|
||||
TBit_array _enabled;
|
||||
// @cmember Modalita' di utilizzo della maschera
|
||||
// @cmember:(INTERNAL) Modalita' di utilizzo della maschera
|
||||
int _mode;
|
||||
// @cmember Numero di campi della maschera
|
||||
// @cmember:(INTERNAL) Numero di campi della maschera
|
||||
TArray _field;
|
||||
|
||||
// @cmember Primo controllo che deve ricevere il focus
|
||||
// @cmember:(INTERNAL) Primo controllo che deve ricevere il focus
|
||||
int _first_focus;
|
||||
// @cmember Controllo che possiede il focus
|
||||
// @cmember:(INTERNAL) Controllo che possiede il focus
|
||||
int _focus;
|
||||
// @cmember Controllo che deve ricevere il focus
|
||||
// @cmember:(INTERNAL) Controllo che deve ricevere il focus
|
||||
int _next_fld;
|
||||
|
||||
// @cmember Numero di sheet contenuti nella maschera
|
||||
// @cmember:(INTERNAL) Numero di sheet contenuti nella maschera
|
||||
int _sheets;
|
||||
// @cmember Puntatore allo sheet che contiene la maschera (puo' essere NULL)
|
||||
// @cmember:(INTERNAL) Puntatore allo sheet che contiene la maschera (puo' essere NULL)
|
||||
TSheet_field* _sheet;
|
||||
|
||||
// @cmember Handler per gestire i tasti speciali nelle maschere
|
||||
// @cmember:(INTERNAL) Handler per gestire i tasti speciali nelle maschere
|
||||
MASK_HANDLER _handler;
|
||||
|
||||
// @cmember Nome del file sorgente contenente la maschera
|
||||
// @cmember:(INTERNAL) Nome del file sorgente contenente la maschera
|
||||
TFilename _source_file;
|
||||
// @cmember Nome del file di salvataggio in cui sono scaricati i valori della maschera
|
||||
// @cmember:(INTERNAL) Nome del file di salvataggio in cui sono scaricati i valori della maschera
|
||||
TFilename _workfile;
|
||||
|
||||
// @cmember Ultimo offset letto nel file di salvataggio
|
||||
// @cmember:(INTERNAL) Ultimo offset letto nel file di salvataggio
|
||||
long _lastpos;
|
||||
|
||||
// @cmember Cambio attuale per i cambi in valuta
|
||||
// @cmember:(INTERNAL) Cambio attuale per i cambi in valuta
|
||||
real _exchange;
|
||||
// @cmember Controlla se la maschera deve fare i controlli iniziali di validita' dei campi
|
||||
// @cmember:(INTERNAL) Controlla se la maschera deve fare i controlli iniziali di validita' dei campi
|
||||
bool _should_check;
|
||||
|
||||
// @cmember Tempo totale di caricamento della maschera
|
||||
// @cmember:(INTERNAL) Tempo totale di caricamento della maschera
|
||||
long _total_time;
|
||||
// @cmember Tempo di compilazione della maschera
|
||||
// @cmember:(INTERNAL) Tempo di compilazione della maschera
|
||||
long _build_time;
|
||||
// @cmember Tempo di inizializzazione della maschera
|
||||
// @cmember:(INTERNAL) Tempo di inizializzazione della maschera
|
||||
long _init_time;
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -23,8 +23,6 @@
|
||||
|
||||
HIDDEN TString256 fpark;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Field Flags
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -146,6 +144,7 @@ short TMask_field::atodlg(const char* s) const
|
||||
return d;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Costruisce il campo
|
||||
void TMask_field::construct(
|
||||
@ -305,6 +304,8 @@ long TMask_field::default_flags() const
|
||||
}
|
||||
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Crea la finestra del controllo
|
||||
//
|
||||
// @rdesc Ritorna la finestra creata
|
||||
@ -334,6 +335,8 @@ WINDOW TMask_field::parent() const
|
||||
|
||||
|
||||
// Certified 90%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Crea il prompt del controllo
|
||||
//
|
||||
// @rdesc Ritorna la lunghezza del prompt creato
|
||||
@ -394,6 +397,8 @@ void TMask_field::create(WINDOW parent)
|
||||
|
||||
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Abilita/disabilita il campo (lo rende scrivibile)
|
||||
void TMask_field::enable(
|
||||
bool on) // @parm Operazione da svolgere:
|
||||
@ -419,6 +424,8 @@ void TMask_field::enable_default()
|
||||
|
||||
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di rendere visibile/invisibile un campo
|
||||
void TMask_field::show(
|
||||
bool on) // @parm Operazione da svolgere:
|
||||
@ -500,6 +507,7 @@ void TMask_field::set_field_data(const char*)
|
||||
const char* TMask_field::get_field_data() const
|
||||
{ return NULL; }
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di dare la stessa formattazione del campo della maschera
|
||||
//
|
||||
@ -867,6 +875,7 @@ bool TMask_field::on_hit()
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di spedire il check
|
||||
//
|
||||
@ -1000,6 +1009,8 @@ 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)
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Crea una error-box relativo al campo (chiama <f error_box>)
|
||||
//
|
||||
// @rdesc Ritorna sempre FALSE
|
||||
@ -1035,6 +1046,8 @@ bool TMask_field::message_box(const char* fmt, ...) const
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Crea una warning-box relativo al campo (chiama <f warning_box>)
|
||||
//
|
||||
// @rdesc Ritorna sempre FALSE
|
||||
@ -1430,13 +1443,15 @@ int TBrowse::inputs()
|
||||
return inp;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Ritorna il numero di campi non vuoti e non filtrati
|
||||
//
|
||||
// @rdesc Numero di campi non vuoti e non filtrati
|
||||
int TBrowse::do_input(
|
||||
bool filter) // @parm ??
|
||||
bool filter) // @parm Indica se effettuare il filtro sulla selezione
|
||||
|
||||
// @comm Questa funzione serve ai TCursor_sheet
|
||||
// @comm Questa funzione serve ai <c TCursor_sheet>
|
||||
{
|
||||
int ne = 0;
|
||||
if (_inp_id.empty()) return ne;
|
||||
@ -2224,6 +2239,7 @@ const char* TEdit_field::picture_data(const char* data, bool video) const
|
||||
return fpark;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Chiama l' eventuale funzione di validazione
|
||||
//
|
||||
@ -2259,6 +2275,8 @@ bool TEdit_field::on_hit()
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Mostra un messaggio di errore di default per il campo
|
||||
//
|
||||
// @rdesc Ritorna sempre FALSE
|
||||
@ -2434,6 +2452,8 @@ bool TEdit_field::check(CheckTime t)
|
||||
return ok;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di abilitare/disabilitare un check di un campo
|
||||
void TEdit_field::enable_check(
|
||||
bool on) // @parm Operazione da svolgere
|
||||
@ -2719,7 +2739,7 @@ void TDate_field::set_window_data(const char* data)
|
||||
TEdit_field::set_window_data(d.string());
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di formattare la data secondo i flag correnti
|
||||
//
|
||||
@ -3176,6 +3196,8 @@ int TList_field::items() const
|
||||
return _codes.items();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge delle voci al list sheet
|
||||
void TList_field::add_item(
|
||||
const char* s) // @parm Voci da aggiungere
|
||||
@ -3250,6 +3272,7 @@ void TList_field::add_list()
|
||||
set_field_data(init);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Sostituisce alle voci correnti quelle passate come parametri
|
||||
void TList_field::replace_items(
|
||||
@ -3562,6 +3585,8 @@ void TRadio_field::show(bool on)
|
||||
_flags.shown = on;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Sposta il focus dal radio button
|
||||
//
|
||||
// @rdesc Ritorna TRUE se il focus ha lasciato il radio button
|
||||
|
@ -22,9 +22,11 @@ class TArray_sheet; // __SHEET_H
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type CONTROL_HANDLER | Funzione per gestire i tasti speciali all'interno di un controllo
|
||||
// @type CONTROL_HANDLER | Prototipo funzione per gestire i tasti speciali all'interno di un controllo
|
||||
typedef bool (*CONTROL_HANDLER)(TMask_field& field, KEY key);
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum Tipo di check da eseguire su un controllo
|
||||
enum CheckType {
|
||||
CHECK_NONE, // @emem Nessun controllo
|
||||
@ -33,36 +35,42 @@ enum CheckType {
|
||||
CHECK_SEARCH // @emem Controlla se il campo c'e' ma non da' nessuna segnalazione se e' errato
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum Momento di richiesta del check
|
||||
enum CheckTime {
|
||||
RUNNING_CHECK, // @emem Check chiamato mentra la maschera sta andando
|
||||
STARTING_CHECK, // @emem Check chiamato al caricamento della maschera
|
||||
FINAL_CHECK }; // @emem Check chiamato quando la maschera si sta fermando
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TMask_field | Classe per la definizione delle operazioni sui campi di
|
||||
// una maschera
|
||||
//
|
||||
// @base public | TObject
|
||||
class TMask_field : public TObject
|
||||
// @author:(INTERNAL)Guido
|
||||
|
||||
|
||||
{
|
||||
// @cfriend TMask
|
||||
friend class TMask;
|
||||
friend class TMask;
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Maschera all'interno del quale e' contenuto il campo
|
||||
// @cmember:(INTERNAL) Maschera all'interno del quale e' contenuto il campo
|
||||
TMask* _mask;
|
||||
// @cmember Messaggio di help del campo
|
||||
// @cmember:(INTERNAL) Messaggio di help del campo
|
||||
TString _help;
|
||||
// @cmember Campo corrispondente sul file
|
||||
// @cmember:(INTERNAL) Campo corrispondente sul file
|
||||
TFieldref* _field;
|
||||
// @cmember Chiave al quale appartiene il campo
|
||||
// @cmember:(INTERNAL) Chiave al quale appartiene il campo
|
||||
TBit_array _keys;
|
||||
// @cmember Gruppo al quale appartiene il campo
|
||||
// @cmember:(INTERNAL) Gruppo al quale appartiene il campo
|
||||
TBit_array _groups;
|
||||
|
||||
// @cmember Stringa definibile dall'utilizzatore della classe da utilizzare a piacimento
|
||||
// @cmember:(INTERNAL) Stringa definibile dall'utilizzatore della classe da utilizzare a piacimento
|
||||
TToken_string _userdata;
|
||||
|
||||
// @access Protected Member
|
||||
@ -94,9 +102,9 @@ protected:
|
||||
TArray _validate_parms;
|
||||
// @cmember Warning da segnalare in caso di dato errato del campo
|
||||
TString _warning;
|
||||
// @cmember Massaggi da mandare in caso di modifica del controllo
|
||||
// @cmember Messaggi da mandare in caso di modifica del controllo
|
||||
TArray _message;
|
||||
|
||||
|
||||
// @cmember <t TField_Flags> | _flags | | Flag indicante lo stato del campo
|
||||
struct TField_Flags
|
||||
{
|
||||
@ -383,10 +391,39 @@ public:
|
||||
virtual ~TMask_field();
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @struct TField_Flags | Flag indicante il settaggio del campo
|
||||
// @comm ATTENZIONE: Questa struttura e' definita ed utilizzata unicamente nella classe
|
||||
// <c TMask_field>
|
||||
// @field bool | automagic: 1 | Indica se il campo e' automagic
|
||||
// @field bool | dirty: 2 | Indica se il campo e' stato modificato
|
||||
// @field bool | enabled: 1 | Indica se il campo e' editabile
|
||||
// @field bool | enable_default: 1 | Indica se il campo e' abilitato di default
|
||||
// @field bool | firm: 1 | Indica se il campo appartiene alla ditta corrente
|
||||
// @field bool | focusdirty: 1 | Indica se il campo e' stato modificat mentre aveva il focus
|
||||
// @field bool | ghost: 1 | Indica se il campo e' ghost
|
||||
// @field bool | password: 1 | Indica che e' un campo password (no si vede quello che scrivi)
|
||||
// @field bool | persistent: 1 | Indica se il valore del campo deve rimanere anche quando viene ricaricata la maschera
|
||||
// @field bool | rightjust: 1 | Indica se il campo e' allineato a destra
|
||||
// @field bool | roman: 1 | Indica se il campo contiene un numero romano
|
||||
// @field bool | shown: 1 | Indica se il campo e' visibile
|
||||
// @field bool | show_default: 1 | Indica se il campo e' visibile di default
|
||||
// @field bool | trim: 1 | Indica se bisogna fare il trim della stringa (vedi <mf TString::trim>)
|
||||
// @field bool | uppercase: 1 | Indica se il campo e' maiuscolo
|
||||
// @field bool | exchange: 1 | Indica se si tratta di un cambio valuta
|
||||
// @field bool | zerofilled: 1 | Indica se il campo e' zerofilled
|
||||
// @field bool | pipeallowed: 1 | Indica se il campo e' pipeallowed
|
||||
// @field void | TField_Flags() | Costruttore
|
||||
// @field char | update(const char*) | Aggiorna i bit della struttura secondo i valori letti da file
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TEdit_field | Classe per la definizione dei campi editabili
|
||||
//
|
||||
// @base public | TMask_field
|
||||
class TEdit_field : public TMask_field
|
||||
|
||||
{
|
||||
// @cfriend TBrowse
|
||||
friend class TBrowse;
|
||||
@ -504,39 +541,42 @@ public:
|
||||
// TBrowse
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TBrowse | Classe per la definizione dei campi con ricerca
|
||||
class TBrowse
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Campo che possiode lo sheet
|
||||
// @cmember:(INTERNAL) Campo che possiode lo sheet
|
||||
TEdit_field* _fld;
|
||||
// @cmember Relazione della ricerca
|
||||
// @cmember:(INTERNAL) Relazione della ricerca
|
||||
TRelation* _relation;
|
||||
// @cmember Cursore sulla relazione
|
||||
// @cmember:(INTERNAL) Cursore sulla relazione
|
||||
TCursor* _cursor;
|
||||
// @cmember Comando da eseguire alla pressione del tasto Gestione
|
||||
// @cmember:(INTERNAL) Comando da eseguire alla pressione del tasto Gestione
|
||||
TString _insert;
|
||||
// @cmember Filtro sul cursore
|
||||
// @cmember:(INTERNAL) Filtro sul cursore
|
||||
TString _filter;
|
||||
// @cmember Record selezionato
|
||||
// @cmember:(INTERNAL) Record selezionato
|
||||
long _rec;
|
||||
// @cmember Indica se e' presente un campo secondario nella ricerca
|
||||
// @cmember:(INTERNAL) Indica se e' presente un campo secondario nella ricerca
|
||||
bool _secondary;
|
||||
// @cmember Indica se sul campo e' gia' stao effettuato il check
|
||||
// @cmember:(INTERNAL) Indica se sul campo e' gia' stao effettuato il check
|
||||
bool _checked;
|
||||
|
||||
// @cmember Testata della maschera di ricerca
|
||||
// @cmember:(INTERNAL) Testata della maschera di ricerca
|
||||
TToken_string _head;
|
||||
// @cmember Item della maschera di ricerca
|
||||
// @cmember:(INTERNAL) Item della maschera di ricerca
|
||||
TToken_string _items;
|
||||
// @cmember Campi di input sulla maschera
|
||||
// @cmember:(INTERNAL) Campi di input sulla maschera
|
||||
TToken_string _inp_id;
|
||||
// @cmember Campi di input sul file
|
||||
// @cmember:(INTERNAL) Campi di input sul file
|
||||
TToken_string _inp_fn;
|
||||
// @cmember Campi di output sulla maschera
|
||||
// @cmember:(INTERNAL) Campi di output sulla maschera
|
||||
TToken_string _out_id;
|
||||
// @cmember Campi di output sul file
|
||||
// @cmember:(INTERNAL) Campi di output sul file
|
||||
TToken_string _out_fn;
|
||||
|
||||
// @access Protected Member
|
||||
@ -623,21 +663,24 @@ public:
|
||||
// TList_sheet
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TList_sheet | Classe per la gestione dei list sheet
|
||||
class TList_sheet
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Private Memeber
|
||||
// @access:(INTERNAL) Private Memeber
|
||||
|
||||
// @cmember Campo che possiede lo sheet
|
||||
// @cmember:(INTERNAL) Campo che possiede lo sheet
|
||||
TEdit_field* _fld;
|
||||
// @cmember Sheet con i dati
|
||||
// @cmember:(INTERNAL) Sheet con i dati
|
||||
TArray_sheet* _sheet;
|
||||
// @cmember Numero di righe dello sheet
|
||||
// @cmember:(INTERNAL) Numero di righe dello sheet
|
||||
int _row;
|
||||
|
||||
// @cmember Campi di input sulla maschera
|
||||
// @cmember:(INTERNAL) Campi di input sulla maschera
|
||||
TToken_string _inp_id;
|
||||
// @cmember Campi di output sulla maschera
|
||||
// @cmember:(INTERNAL) Campi di output sulla maschera
|
||||
TToken_string _out_id;
|
||||
|
||||
// @access Protected Member
|
||||
@ -678,14 +721,17 @@ public:
|
||||
KEY run();
|
||||
};
|
||||
|
||||
//@class TReal_field | Classe per la gestione dei campi di numeri reali
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TReal_field | Classe per la gestione dei campi di numeri reali
|
||||
//
|
||||
// @base public | TEdit_field
|
||||
class TReal_field : public TEdit_field
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Numero di decimeali del campo
|
||||
// @cmember:(INTERNAL) Numero di decimeali del campo
|
||||
int _decimals;
|
||||
|
||||
// @access Protected Member
|
||||
@ -728,10 +774,14 @@ public:
|
||||
TReal_field(TMask* mask);
|
||||
};
|
||||
|
||||
//@class TDate_field | Classe per la gestione dei campi data
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TDate_field | Classe per la gestione dei campi data
|
||||
//
|
||||
// @base public | TEdit_field
|
||||
class TDate_field : public TEdit_field
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Protected Member
|
||||
protected:
|
||||
@ -762,10 +812,14 @@ public:
|
||||
TDate_field(TMask* mask);
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TBoolean_field | Classe per la gestione dei campi boolean (check box)
|
||||
//
|
||||
// @base public | TMask_field
|
||||
class TBoolean_field : public TMask_field
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Protected Member
|
||||
protected:
|
||||
@ -802,11 +856,13 @@ public:
|
||||
TBoolean_field(TMask* mask);
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TList_field | Classe per la gestione dei campi lista (list box)
|
||||
//
|
||||
// @base public | TMask_field
|
||||
class TList_field : public TMask_field
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
@ -872,20 +928,23 @@ public:
|
||||
int items() const;
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TRadio_field | Classe per la gestione dei campi lista (list box)
|
||||
//
|
||||
// @base public | TList_field
|
||||
class TRadio_field : public TList_field
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Provate Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @ccost MAX_RADIO | 8 | Numero massimo di opzioni di un radio button
|
||||
// @ccost:(INTERNAL) MAX_RADIO | 8 | Numero massimo di opzioni di un radio button
|
||||
enum { MAX_RADIO = 8 };
|
||||
// @cmember Numero di opzioni presenti nel radio button
|
||||
// @cmember:(INTERNAL) Numero di opzioni presenti nel radio button
|
||||
int _nitems;
|
||||
// @cmember Numero della voce attiva nel radio button
|
||||
// @cmember:(INTERNAL) Numero della voce attiva nel radio button
|
||||
int _active_item;
|
||||
// @cmember Finestre delle righe del radiobutton
|
||||
// @cmember:(INTERNAL) Finestre delle righe del radiobutton
|
||||
WINDOW _radio_ctl_win[MAX_RADIO];
|
||||
|
||||
// @access Protected Member
|
||||
@ -922,16 +981,20 @@ public:
|
||||
bool move_focus(int d);
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TButton_field | Classe per la gestione dei campi bottone
|
||||
//
|
||||
// @base public | TMask_field
|
||||
class TButton_field : public TMask_field
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Valore della combinazione di tasti che sostituisce il bottone
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember:(INTERNAL) Valore della combinazione di tasti che sostituisce il bottone
|
||||
KEY _virtual_key;
|
||||
// @cmember Tasto generato quando viene premuto il bottone che si sta gestendo
|
||||
// @cmember:(INTERNAL) Tasto generato quando viene premuto il bottone che si sta gestendo
|
||||
KEY _exit_key;
|
||||
|
||||
// @access Protected Member
|
||||
@ -965,11 +1028,13 @@ public:
|
||||
{ return _exit_key; }
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TGroup_field | Classe per la gestione del disegno dei group box
|
||||
//
|
||||
// @base public | TMask_field
|
||||
class TGroup_field : public TMask_field
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Protected Member
|
||||
protected:
|
||||
@ -990,16 +1055,19 @@ public:
|
||||
TGroup_field(TMask* mask);
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TMemo_field | Classe per la gestione dei campi memo
|
||||
//
|
||||
// @base public | TMask_field
|
||||
class TMemo_field : public TMask_field
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Oggetto text che contiene il valore del campo memo
|
||||
// @cmember:(INTERNAL) Oggetto text che contiene il valore del campo memo
|
||||
TXEDIT _te;
|
||||
// @cmember:(INTERNAL) Contenuto del campo memo
|
||||
TToken_string _data;
|
||||
|
||||
// @access Protected Member
|
||||
@ -1043,23 +1111,25 @@ public:
|
||||
virtual ~TMemo_field();
|
||||
};
|
||||
|
||||
// @class TZoom_field | Come edit filed ma zooma per l'editing dei campi memo
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TZoom_field | Come <c TEdit_field> ma zooma per l'editing dei campi memo
|
||||
//
|
||||
// @base public | TEdit_field
|
||||
class TZoom_field : public TEdit_field
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember:(INTERNAL) ???
|
||||
TToken_string _memo;
|
||||
|
||||
// @cmember Finestra del bottone per lo zoom del campo
|
||||
// @cmember:(INTERNAL) Finestra del bottone per lo zoom del campo
|
||||
WINDOW _buttonzoom;
|
||||
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
// @cmember Ritorna l'identificatore della classe
|
||||
virtual word class_id() const
|
||||
{ return CLASS_ZOOM_FIELD; };
|
||||
@ -1073,8 +1143,9 @@ protected:
|
||||
virtual const char* get_window_data() const;
|
||||
// @cmember Scrive il valore del campo
|
||||
virtual void set_field_data(const char* data);
|
||||
// @cmember Legge il valore del campo
|
||||
// @cmember Legge il valore del campo
|
||||
virtual const char* get_field_data() const;
|
||||
// @cmember ???
|
||||
void set_first_line( const char * c );
|
||||
|
||||
// @cmember Crea il controllo
|
||||
@ -1104,27 +1175,3 @@ public:
|
||||
#endif // __MASKFLD_H
|
||||
|
||||
|
||||
// @struct TField_Flags | ATTENZIONE: questa struttura e' deifnita nella calsse <c TMask_field>.
|
||||
// <nl>Serve per definire i flegs di settaggio di un campo
|
||||
//
|
||||
// @field bool | automagic | TRUE se il campo e' automagic (campi data e numero che assumono data
|
||||
// odierna e anno corrente nel caso non venga inserito nessun valore)
|
||||
// @field bool | dirty | TRUE se il campo e' stato modificato durante l' esecuzione della maschera
|
||||
// @field bool | enabled | TRUE se il campo e' editabile
|
||||
// @field bool | enable_default | TRUE se il campo e' abilitato di default
|
||||
// @field bool | firm | TRUE se il campo contiene la ditta corrente
|
||||
// @field bool | focusdirty | TRUE se il campo e' stato modificato mentre il campo aveva il focus
|
||||
// @field bool | ghost | TRUE se si tratta di un campo fantasma
|
||||
// @field bool | password | Campo password (you write but you don't see anything)
|
||||
// @field bool | persistent | Campo persistente (non si cancella mai)
|
||||
// @field bool | rightjust | TRUE se il campo deve essere giustificato a destra
|
||||
// @field bool | roman | TRUE se il campo e' un numero romano
|
||||
// @field bool | shown | TRUE se il campo e' visibile
|
||||
// @field bool | show_default | TRUE se il campo e' visibile di default
|
||||
// @field bool | trim | TRUE se occorre fare la trim su una stringa (vedi <mf TString::ltrim> e
|
||||
// <mf TString::rtrim>)
|
||||
// @field bool | uppercase | TRUE se il campo e' maiuscolo
|
||||
// @field bool | exchange | TRUE se il campo e' in valuta
|
||||
// @field bool | zerofilled | TRUE se il campo
|
||||
// @field void | TField_Flags() | Costruttore
|
||||
// @field char | update(const char*) | Aggiorna i bit della struttura secondo i valori letti da file
|
||||
|
@ -27,66 +27,65 @@ class TSpreadsheet : public TWindow
|
||||
// @cfriend TSheet_field
|
||||
friend class TSheet_field;
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
enum {
|
||||
// @ccost ITF_CID | 0 | Identifica l'interfaccia dello spreadsheet
|
||||
// @ccost:(INTERNAL) ITF_CID | 0 | Identifica l'interfaccia dello spreadsheet
|
||||
ITF_CID = 0,
|
||||
// @ccost LIST_CID | 1 | Identifica il contenuto dello spreadsheet
|
||||
// @ccost:(INTERNAL) LIST_CID | 1 | Identifica il contenuto dello spreadsheet
|
||||
LIST_CID = 1 };
|
||||
|
||||
// @cmember Array di TToken_strings contenenti le righe
|
||||
// @cmember:(INTERNAL) Array di TToken_strings contenenti le righe
|
||||
TString_array _str;
|
||||
// @cmember Array delle colonne disattivate (solo visualizzazione)
|
||||
// @cmember:(INTERNAL) Array delle colonne disattivate (solo visualizzazione)
|
||||
TBit_array _column_disabled;
|
||||
// @cmember Array dell celle disattivate (solo visualizzazione)
|
||||
// @cmember:(INTERNAL) Array dell celle disattivate (solo visualizzazione)
|
||||
TArray _disabled;
|
||||
|
||||
// @cmember Maschera in cui e' contenuto lo spreadsheet
|
||||
// @cmember:(INTERNAL) Maschera in cui e' contenuto lo spreadsheet
|
||||
TMask _mask;
|
||||
// @cmember Numero di colonne presenti nello spreadsheet
|
||||
// @cmember:(INTERNAL) Numero di colonne presenti nello spreadsheet
|
||||
int _columns;
|
||||
// @cmember Trucco per evitare che lo sheet prenda il focus tutte le volte che parte la maschera
|
||||
// @cmember:(INTERNAL) Trucco per evitare che lo sheet prenda il focus tutte le volte che parte la maschera
|
||||
bool _firstfocus;
|
||||
// @cmember Indica se e' attivo lo spreadsheet
|
||||
// @cmember:(INTERNAL) Indica se e' attivo lo spreadsheet
|
||||
bool _active;
|
||||
|
||||
// @cmember Puntatore al contenuto dello spreadsheet
|
||||
// @cmember:(INTERNAL) Puntatore al contenuto dello spreadsheet
|
||||
XI_OBJ *_list;
|
||||
// @cmember Puntatore all'interfaccia dello spreadsheet
|
||||
// @cmember:(INTERNAL) Puntatore all'interfaccia dello spreadsheet
|
||||
XI_OBJ *_itf;
|
||||
|
||||
|
||||
// @cmember Funzione per la gestione di una riga dello sheet (vedi <t SPREADSHEET_NOTIFY>)
|
||||
// @cmember:(INTERNAL) Funzione per la gestione di una riga dello sheet (vedi <t SPREADSHEET_NOTIFY>)
|
||||
SPREADSHEET_NOTIFY _notify;
|
||||
// @cmember Funzione per l'apertura della maschera di edit della riga
|
||||
// @cmember:(INTERNAL) Funzione per l'apertura della maschera di edit della riga
|
||||
// (vedi <t SPREADSHEET_GETMASK>)
|
||||
SPREADSHEET_GETMASK _getmask;
|
||||
|
||||
// @cmember Campo che possiede lo spreadsheet
|
||||
// @cmember:(INTERNAL) Campo che possiede lo spreadsheet
|
||||
TSheet_field* _owner;
|
||||
|
||||
// @cmember Campo corrente che si sta editando
|
||||
// @cmember:(INTERNAL) Campo corrente che si sta editando
|
||||
TMask_field* _edit_field;
|
||||
// @cmember Coordinata della riga della cella corrente
|
||||
// @cmember:(INTERNAL) Coordinata della riga della cella corrente
|
||||
int _cur_row;
|
||||
// @cmember Numero del record sul file al quale fa riferimento la cella corrente
|
||||
// @cmember:(INTERNAL) Numero del record sul file al quale fa riferimento la cella corrente
|
||||
int _cur_rec;
|
||||
// @cmember Coordinata della colonna della cella corrente
|
||||
// @cmember:(INTERNAL) Coordinata della colonna della cella corrente
|
||||
int _cur_col;
|
||||
// @cmember Indica se la riga corrente e' stat modificata
|
||||
// @cmember:(INTERNAL) Indica se la riga corrente e' stat modificata
|
||||
bool _row_dirty;
|
||||
// @cmember Indica se la cella corrente e' stat modificata
|
||||
// @cmember:(INTERNAL) Indica se la cella corrente e' stat modificata
|
||||
bool _cell_dirty;
|
||||
// @cmember Permette di gestire i check OFF_ROW e OFF_CELL
|
||||
// @cmember:(INTERNAL) Permette di gestire i check OFF_ROW e OFF_CELL
|
||||
bool _check_enabled;
|
||||
// @cmember Numero della riga che necessita aggiornamento (vengono aggiornate
|
||||
// @cmember:(INTERNAL) Numero della riga che necessita aggiornamento (vengono aggiornate
|
||||
// nella <mf TSpreadsheet::on_idle>)
|
||||
int _needs_update;
|
||||
|
||||
// @cmember Inizializza lo spreadsheet
|
||||
// @cmember:(INTERNAL) Inizializza lo spreadsheet
|
||||
void init();
|
||||
// @cmember Funzione che intercetta gli eventi dello spreadsheet
|
||||
// @cmember:(INTERNAL) Funzione che intercetta gli eventi dello spreadsheet
|
||||
friend void XVT_CALLCONV1 xiev_handler(XI_OBJ *itf, XI_EVENT *xiev);
|
||||
|
||||
// @access Protected Member
|
||||
@ -243,8 +242,6 @@ public:
|
||||
virtual ~TSpreadsheet();
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// Certified 100%
|
||||
void TSpreadsheet::init()
|
||||
{
|
||||
@ -259,6 +256,7 @@ void TSpreadsheet::init()
|
||||
first = FALSE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Costruttore
|
||||
TSpreadsheet::TSpreadsheet(
|
||||
@ -654,6 +652,7 @@ void TSpreadsheet::set_focus_cell(int riga, int colonna)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Inserisce un record in una posizione stabilita
|
||||
//
|
||||
@ -696,6 +695,7 @@ int TSpreadsheet::insert(
|
||||
return r;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Elimina una riga
|
||||
//
|
||||
@ -737,6 +737,7 @@ bool TSpreadsheet::destroy(
|
||||
return ok;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Modifica a video la riga
|
||||
void TSpreadsheet::update(
|
||||
@ -1304,6 +1305,8 @@ void TSpreadsheet::on_idle()
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Cerca la colonna col
|
||||
XI_OBJ* TSpreadsheet::find_column(
|
||||
int col) const // @parm Indice o identificatore colonna
|
||||
@ -1526,6 +1529,8 @@ void TSpreadsheet::mask2str(int rec)
|
||||
|
||||
|
||||
// Certified 50%
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Permette di abilitare/disabilitare una singola cella
|
||||
void TSpreadsheet::enable_cell(
|
||||
int row, // @parm Riga della cella da abilitare/disabilitare
|
||||
@ -1563,6 +1568,8 @@ void TSpreadsheet::enable_cell(
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Permette di abilitare/disabiltare una colonna
|
||||
void TSpreadsheet::enable_column(
|
||||
int col, // @parm Numero della colonna da abilitare/disabilitare
|
||||
@ -1684,6 +1691,8 @@ void TSpreadsheet::set_column_justify(int col, bool right)
|
||||
}
|
||||
|
||||
// Certified 99%
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Controlla se una cella o un'intera riga e' disabilitata
|
||||
//
|
||||
// @rdesc Se column e' minore di zero si considera l'intera riga
|
||||
@ -1967,6 +1976,8 @@ int TSheet_field::first_empty() const
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna nuova riga dello spreadshhet
|
||||
//
|
||||
// @rdesc Ritorna la stringa letta
|
||||
@ -1989,6 +2000,7 @@ TToken_string& TSheet_field::row(
|
||||
return _sheet->row(n);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Forza l'aggiornamento dei dati della riga sullo schermo
|
||||
void TSheet_field::force_update(
|
||||
|
@ -7,14 +7,21 @@
|
||||
|
||||
#define K_ROWEDIT ( K_CTRL + 'I' )
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
class TSheet_field;
|
||||
|
||||
// @type SPREADSHEET_NOTIFY | Gestisce l'ingresso, l'uscita e la modifica da una riga dello sheet
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type SPREADSHEET_NOTIFY | Prototipo funzione che gestisce l'ingresso, l'uscita e la modifica da una riga dello sheet
|
||||
typedef bool (*SPREADSHEET_NOTIFY)(TSheet_field& s, int r, KEY k);
|
||||
// @type SPREADSHEET_GETMASK | Ritorna una maschera di edit diversa a seconda della riga
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type SPREADSHEET_GETMASK | Prototipo funzione che ritorna una maschera di edit diversa a seconda della riga
|
||||
typedef TMask* (*SPREADSHEET_GETMASK)( int numriga, TMask& fullmask, bool destroy );
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TSheet_field | Classe per la gestione dei campi di uno spreadsheet
|
||||
//
|
||||
// @base public | TMask_field
|
||||
@ -22,15 +29,16 @@ class TSheet_field : public TMask_field
|
||||
{
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @cfriend TSpreadsheet
|
||||
friend class TSpreadsheet;
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Spreadsheet di apprtenenza dei campi
|
||||
// @cmember:(INTERNAL) Spreadsheet di apprtenenza dei campi
|
||||
TSpreadsheet* _sheet;
|
||||
// @cmember Intestazione di tutte le colonne
|
||||
// @cmember:(INTERNAL) Intestazione di tutte le colonne
|
||||
TToken_string _head;
|
||||
// @cmember Indica se aggiungere a fondo dello spreadsheet o nella riga in cui ti trovi
|
||||
// @cmember:(INTERNAL) Indica se aggiungere a fondo dello spreadsheet o nella riga in cui ti trovi
|
||||
bool _append;
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -22,9 +22,10 @@
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
|
||||
// @class TObject | Classe base per la definizione della gerarchia degli oggetti
|
||||
class TObject
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Public Member
|
||||
public:
|
||||
@ -54,10 +55,13 @@ public:
|
||||
// Error Object
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TError_Object | Classe per poter ritornare un oggetto sempre errato (ok() == false)
|
||||
//
|
||||
// @base public | TObject
|
||||
class TError_Object : public TObject
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Public Member
|
||||
public:
|
||||
@ -75,10 +79,13 @@ public:
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Error Object
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// @class TSortable | Classe per la comparazione degli oggetti
|
||||
//
|
||||
// @base public | TObject
|
||||
class TSortable : public TObject
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Public Memebr
|
||||
public:
|
||||
@ -99,24 +106,31 @@ public:
|
||||
// inline functions
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline ostream& | operator <lt><lt> | Permette di reindirizzare l'oggeto per la stampa
|
||||
|
||||
// @rdesc Ritorna l'output sul quale e' stata reindirizzata la stampa
|
||||
inline ostream& operator <<(
|
||||
ostream& out, // @parm Indica l'output sul quale stampare l'oggetto
|
||||
const TObject& obj) // @parm Oggetto da stampare
|
||||
|
||||
// @rdesc Ritorna l'output sul quale e' stata reindirizzata la stampa
|
||||
|
||||
{
|
||||
obj.print_on(out);
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline istream& | operator <gt><gt> | Permette di leggere l'oggetto
|
||||
//
|
||||
// @rdesc Ritorna l'input dal quale e' stato letto l'oggetto
|
||||
inline istream& operator >>(
|
||||
istream& in, // @parm Input da cui leggere l'oggetto
|
||||
TObject& obj) // @parm Indirizzo in cui posizionare l'oggetto letto
|
||||
|
||||
// @rdesc Ritorna l'input dal quale e' stato letto l'oggetto
|
||||
//
|
||||
// @comm Legge dall'input passato come parametro l'oggetto, nel caso si tratti
|
||||
// di un oggetto on valido viene dato un messaggio di errore.
|
||||
{
|
||||
@ -125,6 +139,8 @@ inline istream& operator >>(
|
||||
return in;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator == | Controlla se 2 oggetti sono uguali
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -143,16 +159,18 @@ inline bool operator ==(
|
||||
return res == 0 || res == UNDEFINED;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator <gt> | Controlla se un oggetto e' maggiore dell'altro
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
//
|
||||
// @flag TRUE | Se <p a> e' maggiore di <p b>
|
||||
// @flag FALSE | Se <p b> e' maggiore o uguale a <p a>
|
||||
inline bool operator >(
|
||||
const TSortable& a, // @parm Primo oggetto da confrontare
|
||||
const TSortable& b) // @parm Secondo oggetto da confrontare
|
||||
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
//
|
||||
// @flag TRUE | Se <p a> e' maggiore di <p b>
|
||||
// @flag FALSE | Se <p b> e' maggiore o uguale a <p a>
|
||||
//
|
||||
// @comm Controlla se l'oggetti passato come primo parametro e' maggiore del
|
||||
// secondo utilizzando il criterio di comparazione previsto per l'oggetto.
|
||||
{
|
||||
@ -160,16 +178,17 @@ inline bool operator >(
|
||||
return res > 0 || res == UNDEFINED;
|
||||
}
|
||||
|
||||
// @func inline bool | operator <lt> | Controlla se un oggetto e' minore dell'altro
|
||||
inline bool operator <(
|
||||
const TSortable& a, // @parm Primo oggetto da confrontare
|
||||
const TSortable& b) // @parm Secondo oggetto da confrontare
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator <lt> | Controlla se un oggetto e' minore dell'altro
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
//
|
||||
// @flag TRUE | Se <p a> e' minore di <p b>
|
||||
// @flag FALSE | Se <p b> e' minore o uguale a <p a>
|
||||
//
|
||||
inline bool operator <(
|
||||
const TSortable& a, // @parm Primo oggetto da confrontare
|
||||
const TSortable& b) // @parm Secondo oggetto da confrontare
|
||||
|
||||
// @comm Controlla se l'oggetti passato come primo parametro e' minore del
|
||||
// secondo utilizzando il criterio di comparazione previsto per l'oggetto.
|
||||
{
|
||||
@ -177,15 +196,17 @@ inline bool operator <(
|
||||
return res < 0 || res == UNDEFINED;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator <gt>= | Controlla se un oggetto e' maggiore o uguale all'altro
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
//
|
||||
// @flag TRUE | Se <p a> e' maggiore o uguale a <p b>
|
||||
// @flag FALSE | Se <p b> e' maggiore <p a>
|
||||
inline bool operator >=(
|
||||
const TSortable& a, // @parm Primo oggetto da confrontare
|
||||
const TSortable& b) // @parm Secondo oggetto da confrontare
|
||||
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
//
|
||||
// @flag TRUE | Se <p a> e' maggiore o uguale a <p b>
|
||||
// @flag FALSE | Se <p b> e' maggiore <p a>
|
||||
//
|
||||
// @comm Controlla se l'oggetti passato come primo parametro e' maggiore o uguale al
|
||||
// secondo utilizzando il criterio di comparazione previsto per l'oggetto.
|
||||
@ -194,16 +215,17 @@ inline bool operator >=(
|
||||
return res >= 0 || res == UNDEFINED;
|
||||
}
|
||||
|
||||
// @func inline bool | operator <lt>= | Controlla se un oggetto e' minore o uguale all'altro
|
||||
inline bool operator <=(
|
||||
const TSortable& a, // @parm Primo oggetto da confrontare
|
||||
const TSortable& b) // @parm Secondo oggetto da confrontare
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator <lt>= | Controlla se un oggetto e' minore o uguale all'altro
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
//
|
||||
// @flag TRUE | Se <p a> e' minore o uguale a <p b>
|
||||
// @flag FALSE | Se <p b> e' minore <p a>
|
||||
//
|
||||
inline bool operator <=(
|
||||
const TSortable& a, // @parm Primo oggetto da confrontare
|
||||
const TSortable& b) // @parm Secondo oggetto da confrontare
|
||||
|
||||
// @comm Controlla se l'oggetti passato come primo parametro e' minore o uguale al
|
||||
// secondo utilizzando il criterio di comparazione previsto per l'oggetto.
|
||||
{
|
||||
@ -211,6 +233,7 @@ inline bool operator <=(
|
||||
return res <= 0 || res == UNDEFINED;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func inline bool | operator != | Controlla se 2 oggetti sono diversi
|
||||
//
|
||||
|
@ -27,11 +27,21 @@ extern int get_error(int);
|
||||
HIDDEN TString16 _user;
|
||||
HIDDEN TPrefix* _prefhndl = NULL;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna il nome dell'utente attuale
|
||||
//
|
||||
// @rdesc Ritorno il nome dell'utente attuale
|
||||
TString& user()
|
||||
{
|
||||
return _user;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Inizializza (crea) un nuovo file "prefix.txt"
|
||||
//
|
||||
// @rdesc Ritorna l'oggetto <c TPrefix> creato
|
||||
TPrefix& prefix_init()
|
||||
{
|
||||
CHECK(_prefhndl == NULL, "Can't create two prefix objects");
|
||||
@ -39,12 +49,20 @@ TPrefix& prefix_init()
|
||||
return *_prefhndl;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Legge il file "prefix.txt"
|
||||
//
|
||||
// @rdesc Ritorna l'oggetto <c TPrefix> letto
|
||||
TPrefix& prefix()
|
||||
{
|
||||
CHECK(_prefhndl, "Can't access null prefix");
|
||||
return *_prefhndl;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Distrugge l'oggett <c TPrefix> in memoria
|
||||
void prefix_destroy()
|
||||
{
|
||||
delete _prefhndl;
|
||||
@ -158,6 +176,8 @@ HIDDEN void openall(bool changestudy, TBit_array& excl, int oldmax, TBit_array&
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Riapre tutti gli archivi della ditta attiva
|
||||
void TPrefix::reopen() const
|
||||
|
||||
@ -175,6 +195,7 @@ void TPrefix::reopen() const
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta la ditta corrente
|
||||
void TPrefix::set(
|
||||
@ -186,7 +207,7 @@ void TPrefix::set(
|
||||
//
|
||||
// @flag NULL | Chiude tutti i files
|
||||
// @flag COM | Apre il direttorio con i dati comuni
|
||||
// @flga DEF | Riapre la ditta indicata nel file prefix.txt
|
||||
// @flag DEF | Riapre la ditta indicata nel file prefix.txt
|
||||
// @flag codice ditta | Apre la ditta indicata
|
||||
{
|
||||
if (name == NULL)
|
||||
@ -318,6 +339,7 @@ bool TPrefix::set_codditta(long codditta, bool force)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la descrizione del file passato
|
||||
const char* TPrefix::description(
|
||||
@ -371,9 +393,14 @@ const char* TPrefix::description(int cod) const
|
||||
}
|
||||
|
||||
|
||||
// Restituisce il nome di una directory dati
|
||||
// Certified 90%
|
||||
const char* firm2dir(long codditta)
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Converte il numero di una ditta nella sua directory dati
|
||||
//
|
||||
// @rdesc Restituisce il nome di una directory dati
|
||||
const char* firm2dir(
|
||||
long codditta) // @parm Codice ditta da convertire
|
||||
{
|
||||
TFixed_string dir(__tmp_string, 256);
|
||||
switch (codditta)
|
||||
|
@ -13,29 +13,31 @@
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TPrefix | Classe contenente le informazioni sulla ditta correntemente in uso
|
||||
//
|
||||
// @base public | TObject
|
||||
class TPrefix : public TObject
|
||||
|
||||
// @author:(INTERNAL) Alex-Guido
|
||||
// @author:(INTERNAL) Sandro-Guido
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Contenuto del file "prefix.txt"
|
||||
// @cmember:(INTERNAL) Contenuto del file "prefix.txt"
|
||||
TString _prefix;
|
||||
// @cmember Array di flag di apertura dei file (dir.gen)
|
||||
// @cmember:(INTERNAL) Array di flag di apertura dei file (dir.gen)
|
||||
int* _dirfl;
|
||||
// @cmember Array di flag di apertura dei file (trc.gen)
|
||||
// @cmember:(INTERNAL) Array di flag di apertura dei file (trc.gen)
|
||||
int* _recfl;
|
||||
// @cmember Livello degli archivi
|
||||
// @cmember:(INTERNAL) Livello degli archivi
|
||||
long _filelevel;
|
||||
// @cmember Numero di files esitenti
|
||||
// @cmember:(INTERNAL) Numero di files esitenti
|
||||
int _items;
|
||||
|
||||
// @cmember Puntatore alla lista dei file (dir.gen)
|
||||
// @cmember:(INTERNAL) Puntatore alla lista dei file (dir.gen)
|
||||
SecDef* _fdir;
|
||||
// @cmember Puntatore alla lista dei record (trc.gen)
|
||||
// @cmember:(INTERNAL) Puntatore alla lista dei record (trc.gen)
|
||||
SecDef* _rdir;
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -11,8 +11,6 @@
|
||||
#include <printapp.h>
|
||||
#include <urldefid.h>
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
TLocalisamfile *fff;
|
||||
|
||||
const char* const printf_types = "dDiIuUoOxXfeEgGcCnNsSpPrRtTaA";
|
||||
@ -161,6 +159,8 @@ void TPrint_application::_reset_tree(link_item * head)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Cerca per il nodo <p head> dove agganciarsi per rispettare la relazione
|
||||
//
|
||||
// @rdesc Ritorna il nodo a cui agganciarsi
|
||||
@ -184,6 +184,8 @@ link_item *TPrint_application::_look_print_node (
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta un segnalibro nell'anteprima di stampa
|
||||
//
|
||||
// @rdesc Ritorna il numero identificatore il segnalibro creato
|
||||
@ -205,6 +207,8 @@ void TPrint_application::add_file (const char *tab, int from)
|
||||
add_file(TTable::name2log (tab), from);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge un file del cursore nell'albero di stampa
|
||||
void TPrint_application::add_file (
|
||||
int file, // @parm Numero logico del file da aggiungere
|
||||
@ -245,6 +249,8 @@ void TPrint_application::add_file (
|
||||
|
||||
static char tb[120];
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di trovare un link ipertestuale
|
||||
//
|
||||
// @rdesc Ritorna l'ID del link ipertestuale trovato (-1 se non viene trovato)
|
||||
@ -265,6 +271,8 @@ int TPrint_application::find_link(
|
||||
return -1;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di abilitare determinati colori come indicatori di legame ipertestuale
|
||||
//
|
||||
// @rdesc Ritorna l'ID del link ipertestuale di cui sono stati abilitati i colori
|
||||
@ -309,6 +317,8 @@ void TPrint_application::disable_link (char fg, char bg)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Abilita/disabilita più link per la <mf TPrint_application::enable_link>
|
||||
void TPrint_application::set_multiple_link (
|
||||
bool on) // @parm Indica se effettuare il link con tutti gli elementi selezioanti della riga
|
||||
@ -352,6 +362,7 @@ void TPrint_application::_pp_footer (TPrinter &)
|
||||
new TPrintrow ((TPrintrow &) (prapp._footer)[i]));
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di stampare sullo sfondo e per variarne gli attributi
|
||||
void TPrint_application::set_background (
|
||||
@ -462,6 +473,8 @@ TCursor* TPrint_application::get_cursor (int c)
|
||||
return (TCursor *) & _cursors[c];
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge un cursore alla classe
|
||||
//
|
||||
// @rdesc Ritorna l'identificatore del cursore aggiunto
|
||||
@ -505,6 +518,8 @@ void TPrint_application::reset_print ()
|
||||
_print_defined = FALSE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di definire l'header della stampa
|
||||
void TPrint_application::set_header (
|
||||
int r, // @parm Numero della riga nella quale stampare l'header
|
||||
@ -527,6 +542,8 @@ void TPrint_application::set_header (
|
||||
pp->put (__tmp_string);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di definire il footer della stampa
|
||||
void TPrint_application::set_footer (
|
||||
int r, // @parm Numero della riga nella quale stampare il footer
|
||||
@ -582,6 +599,8 @@ void TPrint_application::merge_export_file(const char* file, bool header, bool d
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di settare una riga di stampa
|
||||
void TPrint_application::set_row (
|
||||
int r, // @parm Numero della riga da settare
|
||||
@ -976,6 +995,8 @@ void TPrint_application::set_row (
|
||||
va_end (params);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta i valori di traduzione dei campi
|
||||
void TPrint_application::set_translation (
|
||||
int lognum, // @parm Numero logido del file condenete il campo da tradurre
|
||||
@ -1123,6 +1144,7 @@ bool TPrint_application::print_tree (link_item * head)
|
||||
return go;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Stampa un singolo record
|
||||
//
|
||||
|
@ -16,13 +16,14 @@
|
||||
// compatibility
|
||||
#define TPrintapp TPrint_application
|
||||
|
||||
// @doc EXTERNAL
|
||||
// @doc INTERNAL
|
||||
|
||||
// @enum print_action
|
||||
enum print_action {
|
||||
REPEAT_PAGE, // @emem Ripeta la stampa dell'ultima pagina
|
||||
NEXT_PAGE }; // @emem Stampa la prossima pagina
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func funzione per il passaggio delle informazioni alla <mf TPrint_application::set_row>
|
||||
//
|
||||
@ -49,6 +50,8 @@ const char* FLD(
|
||||
|
||||
const char* FLD(const char* tabname, const char* f, int from = -1, int to = -1);
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @struct link_item | Definisce il file a cui si riferisce il link da effettuare sulla stampa
|
||||
struct link_item {
|
||||
int _logicnum; // @field Numero logico del link (default l)
|
||||
@ -64,6 +67,8 @@ const char* FLD(
|
||||
|
||||
class TProgind;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TPrint_application | Classe per la definizione delle applicazioni per la stampa
|
||||
//
|
||||
// @base public | TApplication
|
||||
@ -129,94 +134,94 @@ class TPrint_application : public TApplication
|
||||
// Tutti i parametri relativi al progress indicator
|
||||
// vengono settati da funzioni apposite (vedi oltre)
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Descrittore delle righe
|
||||
// @cmember:(INTERNAL) Descrittore delle righe
|
||||
TArray _rows;
|
||||
// @cmember Array di cursroi
|
||||
// @cmember:(INTERNAL) Array di cursroi
|
||||
TArray _cursors;
|
||||
// @cmember Cursore corrente
|
||||
// @cmember:(INTERNAL) Cursore corrente
|
||||
TCursor* _cur;
|
||||
// @cmember Tabella di traduzione dei campi
|
||||
// @cmember:(INTERNAL) Tabella di traduzione dei campi
|
||||
TArray _transtab;
|
||||
// @cmember Header delle linee
|
||||
// @cmember:(INTERNAL) Header delle linee
|
||||
TArray _header;
|
||||
// @cmember Footer delle linee
|
||||
// @cmember:(INTERNAL) Footer delle linee
|
||||
TArray _footer;
|
||||
// @cmember Riga corrente di stampa
|
||||
// @cmember:(INTERNAL) Riga corrente di stampa
|
||||
int _currow;
|
||||
// @cmember Stile corrente di stampa
|
||||
// @cmember:(INTERNAL) Stile corrente di stampa
|
||||
TPrintstyle _curstyle;
|
||||
// @cmember Indica se effettuare il form feed automatico dopo ogni pagina
|
||||
// @cmember:(INTERNAL) Indica se effettuare il form feed automatico dopo ogni pagina
|
||||
bool _auto_ff;
|
||||
// @cmember Messaggio di attesa per la classe <c TProgind>
|
||||
// @cmember:(INTERNAL) Messaggio di attesa per la classe <c TProgind>
|
||||
const char* _wmess;
|
||||
// @cmember Indica se attivare barra per la classe <c TProgind>
|
||||
// @cmember:(INTERNAL) Indica se attivare barra per la classe <c TProgind>
|
||||
bool _wbar;
|
||||
// @cmember Indica se abilitare o disabilitare il bottone Annulla
|
||||
// @cmember:(INTERNAL) Indica se abilitare o disabilitare il bottone Annulla
|
||||
bool _wcancel;
|
||||
// @cmember Numero minimo di item per mostrare la barra di attesa
|
||||
// @cmember:(INTERNAL) Numero minimo di item per mostrare la barra di attesa
|
||||
int _wthr;
|
||||
// @cmember Nome del file di configurazione per la stampante
|
||||
// @cmember:(INTERNAL) Nome del file di configurazione per la stampante
|
||||
const char* _confpr;
|
||||
// @cmember Carattere di riempimento per campi vuoti
|
||||
// @cmember:(INTERNAL) Carattere di riempimento per campi vuoti
|
||||
char _fillchar;
|
||||
// @cmember Funzioni per la stampa automatica delle relazioni
|
||||
// @cmember:(INTERNAL) Funzioni per la stampa automatica delle relazioni
|
||||
link_item* _pr_tree;
|
||||
// @cmember Numero massimo di righe
|
||||
// @cmember:(INTERNAL) Numero massimo di righe
|
||||
int _maxrow;
|
||||
// @cmember Identificatore del file corrente
|
||||
// @cmember:(INTERNAL) Identificatore del file corrente
|
||||
int _cur_file;
|
||||
// @cmember Indica se è stat definita la stampante
|
||||
// @cmember:(INTERNAL) Indica se è stat definita la stampante
|
||||
bool _print_defined;
|
||||
// @cmember Indica se forzare la presenza della barra di attesa anche nella stampe a video
|
||||
// @cmember:(INTERNAL) Indica se forzare la presenza della barra di attesa anche nella stampe a video
|
||||
bool _force_progind;
|
||||
// @cmember Indica se forzare la rilettura delle <mf TPrint_application::set_row>
|
||||
// @cmember:(INTERNAL) Indica se forzare la rilettura delle <mf TPrint_application::set_row>
|
||||
bool _force_setpage;
|
||||
// @cmember Indica se stampare il valore 0 per i campi vuoti
|
||||
// @cmember:(INTERNAL) Indica se stampare il valore 0 per i campi vuoti
|
||||
bool _print_zero;
|
||||
// @cmember Barra di attesa
|
||||
// @cmember:(INTERNAL) Barra di attesa
|
||||
TProgind* _prind;
|
||||
// @cmember Picture default per i reali
|
||||
// @cmember:(INTERNAL) Picture default per i reali
|
||||
const char* _picture;
|
||||
|
||||
// @cmember Ultima scelta di menù
|
||||
// @cmember:(INTERNAL) Ultima scelta di menù
|
||||
MENU_TAG _last_choice;
|
||||
// @cmember Numero di copie da stampare
|
||||
// @cmember:(INTERNAL) Numero di copie da stampare
|
||||
int _ncopies;
|
||||
// @cmember Indica se si volgia ripetere la stampa
|
||||
// @cmember:(INTERNAL) Indica se si volgia ripetere la stampa
|
||||
bool _repeat_print;
|
||||
// @cmember Indica se la stampa e' stata interrotta
|
||||
// @cmember:(INTERNAL) Indica se la stampa e' stata interrotta
|
||||
bool _cancelled;
|
||||
|
||||
// @cmember Setta la stampante
|
||||
// @cmember:(INTERNAL) Setta la stampante
|
||||
void set_printer()
|
||||
{ printer().set(); }
|
||||
// @cmember Stampa un singolo record
|
||||
// @cmember:(INTERNAL) Stampa un singolo record
|
||||
bool print_one(int file);
|
||||
// @cmember Permette di stampare tutti i campi record cercando nell'albero i file corrispondenti
|
||||
// @cmember:(INTERNAL) Permette di stampare tutti i campi record cercando nell'albero i file corrispondenti
|
||||
bool print_tree(link_item* head);
|
||||
|
||||
// @cmember Metahandlers per controllare l'header quando si usa la
|
||||
// @cmember:(INTERNAL) Metahandlers per controllare l'header quando si usa la
|
||||
// <c TViswin>; servono per controllare handlers di altre classi e chiamano
|
||||
// virtuali di <c TPrintapp>.
|
||||
static void _pp_header(TPrinter& pr);
|
||||
// @cmember Metahandlers per controllare il footer quando si usa la
|
||||
// @cmember:(INTERNAL) Metahandlers per controllare il footer quando si usa la
|
||||
// <c TViswin>; servono per controllare handlers di altre classi e chiamano
|
||||
// virtuali di <c TPrintapp>.
|
||||
static void _pp_footer(TPrinter& pr);
|
||||
// @cmember Metahandlers per controllare i links quando si usa la
|
||||
// @cmember:(INTERNAL) Metahandlers per controllare i links quando si usa la
|
||||
// <c TViswin>; servono per controllare handlers di altre classi e chiamano
|
||||
// virtuali di <c TPrintapp>.
|
||||
static void _pp_link(int id, const char* s);
|
||||
|
||||
// @cmember Cerca per il nodo <p head> dove agganciarsi per rispettare la relazione
|
||||
// @cmember:(INTERNAL) Cerca per il nodo <p head> dove agganciarsi per rispettare la relazione
|
||||
link_item* _look_print_node(link_item* head, int logicnum);
|
||||
// @cmember Annulla l'alebero a partire dal nodo <p head>
|
||||
// @cmember:(INTERNAL) Annulla l'alebero a partire dal nodo <p head>
|
||||
void _reset_tree(link_item* head);
|
||||
// @cmember Crea la finestra (vedi <mf TWindow::create>)
|
||||
// @cmember:(INTERNAL) Crea la finestra (vedi <mf TWindow::create>)
|
||||
virtual bool create();
|
||||
// @cmember Distrugge la finestra
|
||||
// @cmember:(INTERNAL) Distrugge la finestra
|
||||
virtual bool destroy();
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -31,8 +31,6 @@
|
||||
|
||||
HIDDEN TPrinter* _printer = NULL;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
TPrinter& printer()
|
||||
{
|
||||
if (_printer == NULL)
|
||||
@ -522,6 +520,8 @@ bool printers_on_key(TMask_field & f, KEY key);
|
||||
|
||||
// fv support structs for config
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Legge la descrizione della stampante dal file
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione:
|
||||
@ -893,6 +893,8 @@ PRINT_RCD* TPrinter::get_printrcd(int *size)
|
||||
|
||||
#if XVT_OS == XVT_OS_WIN
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta le caratteristiche della stampante leggendole da <p _print_rcd>
|
||||
void TPrinter::set_win_formlen(
|
||||
WINDOW prwin) // @parm Finestra effettiva di stampa (default NULL_WIN)
|
||||
@ -1097,6 +1099,8 @@ TToken_string& TPrinter::getprinternames ()
|
||||
return _printer_names;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge la configurazione della stampante
|
||||
void TPrinter::read_configuration(
|
||||
const char* parag) // parm Nome del file di configurazione della stampante (default NULL)
|
||||
@ -1305,6 +1309,8 @@ TPrintrow *TPrinter::getfooterline (int linetoget)
|
||||
return ((TPrintrow *) _footer.objptr (linetoget));
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta il contenuto di una line dell'header
|
||||
void TPrinter::setheaderline (
|
||||
int linetoset, // @parm Numero della linea da settare
|
||||
@ -1327,6 +1333,8 @@ void TPrinter::setheaderline (int linetoset, const TPrintrow & line)
|
||||
setheaderline (linetoset, p);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta il contenuto di una line dell'header
|
||||
void TPrinter::setfooterline (
|
||||
int linetoset, // @parm Numero della linea da settare
|
||||
@ -1359,6 +1367,8 @@ void TPrinter::resetfooter ()
|
||||
// _footersize = 0;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Metodo base per la stampa
|
||||
//
|
||||
// @rdesc Ritorna il risulato della stampa:
|
||||
@ -1469,6 +1479,8 @@ word TPrinter::rows_left() const
|
||||
return left;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di stampare una riga
|
||||
//
|
||||
// @rdesc Ritorna il risultato della stampa:
|
||||
@ -1534,6 +1546,8 @@ bool TPrinter::printfooter()
|
||||
return ok;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di saltare alcune righe dalla posizione corrente
|
||||
//
|
||||
// @rdesc Ritorna il risulato dell'operazione:
|
||||
@ -1552,6 +1566,8 @@ bool TPrinter::skip(
|
||||
return jump(jumpline);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di saltare alla riga indicata
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione
|
||||
@ -1904,6 +1920,8 @@ bool TPrinter::set()
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Inserisce un file di export fatto da un'altra printer
|
||||
void TPrinter::merge_export_file(
|
||||
const char* file,
|
||||
@ -1926,6 +1944,7 @@ void TPrinter::merge_export_file(
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Crea un segnalibro
|
||||
//
|
||||
|
@ -25,6 +25,8 @@ enum TPrintstyle
|
||||
italicstyle = 4 // @emem Stile corsivo
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum TPrtype | Indica il tipo di stampante da utilizzare per la stampa
|
||||
enum TPrtype
|
||||
{
|
||||
@ -37,12 +39,16 @@ enum TPrtype
|
||||
export = 6 // @emem Esporatzione di stampa
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum TGraphic_shape | Indica la forma grafica da utilizzare per la stampa
|
||||
enum TGraphic_shape
|
||||
{
|
||||
line,
|
||||
box
|
||||
line, // @emem Disgna una linea
|
||||
box // @emem Disgna un box
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TPrintrow | Classe per la definizione della stampa di una riga
|
||||
//
|
||||
@ -51,25 +57,25 @@ class TPrintrow : public TObject
|
||||
|
||||
// @author:(INTERNAL) Villa
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @ccost MAXSTR | 256 | Lunghezza massima della riga da stampare
|
||||
// @ccost:(INTERNAL) MAXSTR | 256 | Lunghezza massima della riga da stampare
|
||||
enum { MAXSTR = 256 };
|
||||
|
||||
// @cmember Stringa da stampare nella riga
|
||||
// @cmember:(INTERNAL) Stringa da stampare nella riga
|
||||
TString256 _row;
|
||||
// @cmember Attributi carattere dei caratteri
|
||||
// @cmember:(INTERNAL) Attributi carattere dei caratteri
|
||||
char _attr[MAXSTR];
|
||||
// @cmember Attributi colore dei caratteri
|
||||
// @cmember:(INTERNAL) Attributi colore dei caratteri
|
||||
int _cols[MAXSTR];
|
||||
// @cmember Inizio delle nuove posizioni di tabulazione
|
||||
// @cmember:(INTERNAL) Inizio delle nuove posizioni di tabulazione
|
||||
TBit_array _tab;
|
||||
|
||||
// @cmember Attributo carattere corrente
|
||||
// @cmember:(INTERNAL) Attributo carattere corrente
|
||||
TPrintstyle _currentstyle;
|
||||
// @cmember Attributo colore corrente
|
||||
// @cmember:(INTERNAL) Attributo colore corrente
|
||||
int _currentcolor;
|
||||
// @cmember Ultima posizione di stampa
|
||||
// @cmember:(INTERNAL) Ultima posizione di stampa
|
||||
int _lastpos;
|
||||
|
||||
// @access Public Member
|
||||
@ -120,6 +126,8 @@ public:
|
||||
{ return _lastpos; }
|
||||
};
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class PrinterDef | Classe per la definizione delle stampanti da utilizzare
|
||||
//
|
||||
// @base public | TObject
|
||||
@ -127,28 +135,29 @@ class PrinterDef : public TObject
|
||||
|
||||
// @author:(INTERNAL) Villa
|
||||
|
||||
// @access Private Member
|
||||
{
|
||||
// @cfriend TPrinter
|
||||
friend class TPrinter;
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Nome del file della stampante
|
||||
// @cmember:(INTERNAL) Nome del file della stampante
|
||||
TString _printername;
|
||||
// @cmember Tipo di stampante da utilizzare (0=diretta,1=locale,2=spool)
|
||||
// @cmember:(INTERNAL) Tipo di stampante da utilizzare (0=diretta,1=locale,2=spool)
|
||||
TString _printertype;
|
||||
// @cmember Filtro pèer la pipe '<pipe>' (solo per unix
|
||||
// @cmember:(INTERNAL) Filtro pèer la pipe '<pipe>' (solo per unix
|
||||
TString _filtername;
|
||||
// @cmember Nome del device di stampa
|
||||
// @cmember:(INTERNAL) Nome del device di stampa
|
||||
TString _devicename;
|
||||
// @cmember Codici attributo per la stampante corrente
|
||||
// @cmember:(INTERNAL) Codici attributo per la stampante corrente
|
||||
char _atstr[4][10];
|
||||
// @cmember Codici di stampa
|
||||
// @cmember:(INTERNAL) Codici di stampa
|
||||
TString_array _codes;
|
||||
// @cmember Nome dei codici di stampa
|
||||
// @cmember:(INTERNAL) Nome dei codici di stampa
|
||||
TString_array _names;
|
||||
// @cmember Codice del formfeed per la stampante corrente
|
||||
// @cmember:(INTERNAL) Codice del formfeed per la stampante corrente
|
||||
TString _ffcode;
|
||||
// @cmember Codice del new line per la stampante corrente
|
||||
// @cmember:(INTERNAL) Codice del new line per la stampante corrente
|
||||
TString _nlcode;
|
||||
|
||||
// @access Public Member
|
||||
@ -168,6 +177,8 @@ public:
|
||||
{}
|
||||
};
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class BkDef | Classe per la definizione dei bookmark in anteprima di stampa
|
||||
//
|
||||
// @base public | TObject
|
||||
@ -201,140 +212,146 @@ public:
|
||||
class TPrinter;
|
||||
class TPrint_intersector;
|
||||
|
||||
// @type PRINTSECTIONHANDLER | Funzione definita dall'utente chiamata all'inizio della stampa
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type PRINTSECTIONHANDLER | Prototipo funzione definita dall'utente chiamata all'inizio della stampa
|
||||
// dell'header o del footer
|
||||
typedef void (*PRINTSECTIONHANDLER)(TPrinter& printer);
|
||||
// @type LINKHANDLER | Funzione definita dall'utente per la gestione del link
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type LINKHANDLER | Prototipo funzione definita dall'utente per la gestione del link
|
||||
typedef void (*LINKHANDLER)(int, const char*);
|
||||
|
||||
|
||||
|
||||
class TViswin;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TPrinter | Classe per la definzione delle operazioni sulla stampante
|
||||
//
|
||||
// @base public | TObject
|
||||
class TPrinter : public TObject
|
||||
// @author:(INTERNAL) Villa
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Puntatore al file di configurazione
|
||||
// @cmember:(INTERNAL) Puntatore al file di configurazione
|
||||
FILE* _cnfptr;
|
||||
// @cmember Puntatore al file della stampante
|
||||
// @cmember:(INTERNAL) Puntatore al file della stampante
|
||||
FILE* _fp;
|
||||
// @cmember Puntatore al file di visualizzaizone
|
||||
// @cmember:(INTERNAL) Puntatore al file di visualizzaizone
|
||||
TViswin* _vf;
|
||||
|
||||
// @cmember Testo da stampare
|
||||
// @cmember:(INTERNAL) Testo da stampare
|
||||
TTextfile _txt;
|
||||
// @cmember Nome del file di esportazione
|
||||
// @cmember:(INTERNAL) Nome del file di esportazione
|
||||
TFilename _exportfile;
|
||||
// @cmember Dimensione dell'header
|
||||
// @cmember:(INTERNAL) Dimensione dell'header
|
||||
int _headersize;
|
||||
// @cmember Dimensione del footer
|
||||
// @cmember:(INTERNAL) Dimensione del footer
|
||||
int _footersize;
|
||||
// @cmember Contenuto dell'header
|
||||
// @cmember:(INTERNAL) Contenuto dell'header
|
||||
TArray _header;
|
||||
// @cmember Contenuto del footer
|
||||
// @cmember:(INTERNAL) Contenuto del footer
|
||||
TArray _footer;
|
||||
// @cmember Descrizione delle stampanti
|
||||
// @cmember:(INTERNAL) Descrizione delle stampanti
|
||||
TArray _printers;
|
||||
// @cmember Indice corrente della stampante
|
||||
// @cmember:(INTERNAL) Indice corrente della stampante
|
||||
int _curprn;
|
||||
// @cmember Codice corrente della stampante
|
||||
// @cmember:(INTERNAL) Codice corrente della stampante
|
||||
int _curcode;
|
||||
// @cmember Lunghezza della pagina logica
|
||||
// @cmember:(INTERNAL) Lunghezza della pagina logica
|
||||
int _formlen;
|
||||
// @cmember Larghezza della pagina logica
|
||||
// @cmember:(INTERNAL) Larghezza della pagina logica
|
||||
int _formwidth;
|
||||
// @cmember Prossima riga da stampare
|
||||
// @cmember:(INTERNAL) Prossima riga da stampare
|
||||
int _currentrow;
|
||||
|
||||
// @cmember Nome del font per la stampa
|
||||
// @cmember:(INTERNAL) Nome del font per la stampa
|
||||
TString80 _fontname;
|
||||
// @cmember Dimensione del font per la stampa
|
||||
// @cmember:(INTERNAL) Dimensione del font per la stampa
|
||||
int _ch_size;
|
||||
|
||||
// @cmember Pagina logica contenente la prossima riga da stampare
|
||||
// @cmember:(INTERNAL) Pagina logica contenente la prossima riga da stampare
|
||||
word _currentpage;
|
||||
// @cmember Prima pagina da stampare (normalmente 0)
|
||||
// @cmember:(INTERNAL) Prima pagina da stampare (normalmente 0)
|
||||
word _frompage;
|
||||
// @cmember Ultima pagina da stampare (normalmente USHRT_MAX)
|
||||
// @cmember:(INTERNAL) Ultima pagina da stampare (normalmente USHRT_MAX)
|
||||
word _topage;
|
||||
// @cmember Indica la stampa di un form feed dopo ogni footer
|
||||
// @cmember:(INTERNAL) Indica la stampa di un form feed dopo ogni footer
|
||||
bool _hwformfeed;
|
||||
// @cmember Indica il tipo di output selezionato dall'utente per la stampa
|
||||
// @cmember:(INTERNAL) Indica il tipo di output selezionato dall'utente per la stampa
|
||||
TPrtype _printertype;
|
||||
// @cmember Indica se la stampante e' inizializzata
|
||||
// @cmember:(INTERNAL) Indica se la stampante e' inizializzata
|
||||
bool _isopen;
|
||||
// @cmember Data di stampa
|
||||
// @cmember:(INTERNAL) Data di stampa
|
||||
TDate _date;
|
||||
// @cmember Nome del file per la stampa su disco
|
||||
// @cmember:(INTERNAL) Nome del file per la stampa su disco
|
||||
TFilename _printerfile;
|
||||
// @cmember Array di nomi dei link
|
||||
// @cmember:(INTERNAL) Array di nomi dei link
|
||||
TArray _linksdescr;
|
||||
// @cmember Array di nomi di segnalibri
|
||||
// @cmember:(INTERNAL) Array di nomi di segnalibri
|
||||
TArray _bookmarks;
|
||||
// @cmember Indica se e' attivo il link multiplo (vedi <mf TPrint_application::set_multiple_link>)
|
||||
// @cmember:(INTERNAL) Indica se e' attivo il link multiplo (vedi <mf TPrint_application::set_multiple_link>)
|
||||
bool _multiple_link;
|
||||
|
||||
// @cmember Nome del paragrafo di configurazione
|
||||
// @cmember:(INTERNAL) Nome del paragrafo di configurazione
|
||||
TString _config;
|
||||
|
||||
// @cmember Array di stringhe per la desccrizione del background
|
||||
// @cmember:(INTERNAL) Array di stringhe per la desccrizione del background
|
||||
TString_array _background;
|
||||
// @cmember Nomi dei file delle immagini da stampare
|
||||
// @cmember:(INTERNAL) Nomi dei file delle immagini da stampare
|
||||
TString_array _image_names;
|
||||
|
||||
// @cmember Stringa contenente i @codes per il disegno dello sfondo
|
||||
// @cmember:(INTERNAL) Stringa contenente i @codes per il disegno dello sfondo
|
||||
const char* _bg_desc;
|
||||
// @cmember Nomi delle stampanti utilizzabile
|
||||
// @cmember:(INTERNAL) Nomi delle stampanti utilizzabile
|
||||
TToken_string _printer_names;
|
||||
// @cmember Indica se la stampante e' abilitata a trattare grafica
|
||||
// @cmember:(INTERNAL) Indica se la stampante e' abilitata a trattare grafica
|
||||
bool _isgraphics;
|
||||
// @cmember Indica se la stampante e' stata momentaneamente interrotta
|
||||
// @cmember:(INTERNAL) Indica se la stampante e' stata momentaneamente interrotta
|
||||
bool _frozen;
|
||||
// @cmember Numero di copie da fare
|
||||
// @cmember:(INTERNAL) Numero di copie da fare
|
||||
int _ncopies;
|
||||
// @cmember Descrizione completa dello stato della stampante
|
||||
// @cmember:(INTERNAL) Descrizione completa dello stato della stampante
|
||||
PRINT_RCD* _print_rcd;
|
||||
// @cmember Dimensione del record per la descrizione completa dello stato della stampante
|
||||
// @cmember:(INTERNAL) Dimensione del record per la descrizione completa dello stato della stampante
|
||||
int _print_rcd_size;
|
||||
// @cmember Numero di linee per pollice
|
||||
// @cmember:(INTERNAL) Numero di linee per pollice
|
||||
int _lines_per_inch;
|
||||
// @cmember Offset verticale in pixels
|
||||
// @cmember:(INTERNAL) Offset verticale in pixels
|
||||
int _vert_offset;
|
||||
// @cmember Offset orizzontale in pixels
|
||||
// @cmember:(INTERNAL) Offset orizzontale in pixels
|
||||
int _horz_offset;
|
||||
// @cmember Offset verticale in linee (in caratteri)
|
||||
// @cmember:(INTERNAL) Offset verticale in linee (in caratteri)
|
||||
int _l_offset;
|
||||
// @cmember Offset orizzontale in colonne (in caratteri)
|
||||
// @cmember:(INTERNAL) Offset orizzontale in colonne (in caratteri)
|
||||
int _c_offset;
|
||||
// @cmember Definizione dell stampa in punti per linea
|
||||
// @cmember:(INTERNAL) Definizione dell stampa in punti per linea
|
||||
int _dots_per_line;
|
||||
|
||||
// @cmember Setta <p t> con il profilo della stampante
|
||||
// @cmember:(INTERNAL) Setta <p t> con il profilo della stampante
|
||||
void _get_windows_printer_names(TToken_string& t);
|
||||
// @cmember Indica se si tratta di copia multipla
|
||||
// @cmember:(INTERNAL) Indica se si tratta di copia multipla
|
||||
bool _multiple_copies;
|
||||
// @cmember Indica se occorre esportare l'header di stampa
|
||||
// @cmember:(INTERNAL) Indica se occorre esportare l'header di stampa
|
||||
bool _export_header;
|
||||
// @cmember Lunghezza dell'header di stampa da esportare
|
||||
// @cmember:(INTERNAL) Lunghezza dell'header di stampa da esportare
|
||||
int _export_header_len;
|
||||
|
||||
// @cmember Handler dell'header
|
||||
// @cmember:(INTERNAL) Handler dell'header
|
||||
PRINTSECTIONHANDLER _headerhandler;
|
||||
// @cmember Handler del footer
|
||||
// @cmember:(INTERNAL) Handler del footer
|
||||
PRINTSECTIONHANDLER _footerhandler;
|
||||
// @cmember Header del link ipertestuale
|
||||
// @cmember:(INTERNAL) Header del link ipertestuale
|
||||
LINKHANDLER _linkhandler;
|
||||
|
||||
|
||||
// @cmember caratteri per fincatura
|
||||
// @cmember:(INTERNAL) Caratteri per fincatura
|
||||
char _fink[11];
|
||||
|
||||
// @cmember fincatore per modo testo
|
||||
// @cmember:(INTERNAL) Fincatore per modo testo
|
||||
TPrint_intersector* _finker;
|
||||
|
||||
|
||||
@ -500,22 +517,47 @@ public:
|
||||
// @cmember Indica se attivato il link multiplo
|
||||
bool ismultiplelink()
|
||||
{ return _multiple_link; }
|
||||
|
||||
const char* get_fincatura() { return _fink; }
|
||||
void set_fincatura(const char* s) { strncpy(_fink, s, sizeof(_fink)); }
|
||||
|
||||
// caratteri fincazione
|
||||
char f_topleft() const { return _fink[0]; }
|
||||
char f_topmiddle() const { return _fink[1]; }
|
||||
char f_topright() const { return _fink[2]; }
|
||||
char f_botleft() const { return _fink[3]; }
|
||||
char f_botmiddle() const { return _fink[4]; }
|
||||
char f_botright() const { return _fink[5]; }
|
||||
char f_centerleft() const { return _fink[6]; }
|
||||
char f_centermiddle() const { return _fink[7]; }
|
||||
char f_centerright() const { return _fink[8]; }
|
||||
char f_horizontal() const { return _fink[9]; }
|
||||
char f_vertical() const { return _fink[10]; }
|
||||
// @cmember Ritorna i caratteri di fincatura
|
||||
const char* get_fincatura()
|
||||
{ return _fink; }
|
||||
// @cmember Setta i caratteri di fincatura
|
||||
void set_fincatura(const char* s)
|
||||
{ strncpy(_fink, s, sizeof(_fink)); }
|
||||
|
||||
// @cmember Ritorna il carattere di fincatura alto-sinistra
|
||||
char f_topleft() const
|
||||
{ return _fink[0]; }
|
||||
// @cmember Ritorna il carattere di fincatura alto-centro
|
||||
char f_topmiddle() const
|
||||
{ return _fink[1]; }
|
||||
// @cmember Ritorna il carattere di fincatura alto-destra
|
||||
char f_topright() const
|
||||
{ return _fink[2]; }
|
||||
// @cmember Ritorna il carattere di fincatura basso-sinistra
|
||||
char f_botleft() const
|
||||
{ return _fink[3]; }
|
||||
// @cmember Ritorna il carattere di fincatura basso-centro
|
||||
char f_botmiddle() const
|
||||
{ return _fink[4]; }
|
||||
// @cmember Ritorna il carattere di fincatura basso-destra
|
||||
char f_botright() const
|
||||
{ return _fink[5]; }
|
||||
// @cmember Ritorna il carattere di fincatura centro-sinistra
|
||||
char f_centerleft() const
|
||||
{ return _fink[6]; }
|
||||
// @cmember Ritorna il carattere di fincatura centro-centro
|
||||
char f_centermiddle() const
|
||||
{ return _fink[7]; }
|
||||
// @cmember Ritorna il carattere di fincatura centro-destra
|
||||
char f_centerright() const
|
||||
{ return _fink[8]; }
|
||||
// @cmember Ritorna il carattere di fincatura orizzontale
|
||||
char f_horizontal() const
|
||||
{ return _fink[9]; }
|
||||
// @cmember Ritorna il carattere di fincatura verticale
|
||||
char f_vertical() const
|
||||
{ return _fink[10]; }
|
||||
|
||||
|
||||
// @cmember Permette di saltare alcune righe dalla posizione corrente
|
||||
@ -631,6 +673,7 @@ public:
|
||||
bool is_generic() { return (_dots_per_line == 1); }
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TFile_printer | Classe per la definizione delle operazini per la stampa su file
|
||||
//
|
||||
@ -638,39 +681,39 @@ public:
|
||||
class TFile_printer : public TPrinter
|
||||
// @author:(INTERNAL) Nicola
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Dimensione del file
|
||||
// @cmember:(INTERNAL) Dimensione del file
|
||||
long _size;
|
||||
// @cmember Disco al quale appertiene il file
|
||||
// @cmember:(INTERNAL) Disco al quale appertiene il file
|
||||
const char * _drive;
|
||||
// @cmember Numero progressivo volume
|
||||
// @cmember:(INTERNAL) Numero progressivo volume
|
||||
int _volume;
|
||||
// @cmember Numero di record per disco
|
||||
// @cmember:(INTERNAL) Numero di record per disco
|
||||
int _num_rec_volume;
|
||||
// @cmember Numero di record per inizio e fine volume
|
||||
// @cmember:(INTERNAL) Numero di record per inizio e fine volume
|
||||
int _num_rec_testa_coda;
|
||||
// @cmember Numero di record per inizio volume
|
||||
// @cmember:(INTERNAL) Numero di record per inizio volume
|
||||
int _num_rec_inizio;
|
||||
// @cmember Numero di record per coda volume
|
||||
// @cmember:(INTERNAL) Numero di record per coda volume
|
||||
int _num_rec_fine;
|
||||
// @cmember Lunghezza del record
|
||||
// @cmember:(INTERNAL) Lunghezza del record
|
||||
int _len_rec;
|
||||
// @cmember Array di tipi record
|
||||
// @cmember:(INTERNAL) Array di tipi record
|
||||
TArray _record;
|
||||
// @cmember Indica se il file sui dischetti deve avere un nome NON modificabile dall'utente
|
||||
// @cmember:(INTERNAL) Indica se il file sui dischetti deve avere un nome NON modificabile dall'utente
|
||||
bool _nome_file_fissato;
|
||||
// @cmember Indica se l'etichetta dei dischetti deve essere fissa
|
||||
// @cmember:(INTERNAL) Indica se l'etichetta dei dischetti deve essere fissa
|
||||
bool _label_fissata;
|
||||
// @cmember Indica se il disco deve essere formattato prima di fare la stampa
|
||||
// @cmember:(INTERNAL) Indica se il disco deve essere formattato prima di fare la stampa
|
||||
bool _formatta;
|
||||
// @cmember File da generare sui dischetti
|
||||
// @cmember:(INTERNAL) File da generare sui dischetti
|
||||
const char* _file;
|
||||
// @cmember Etichetta da scrivere sui dischetti
|
||||
// @cmember:(INTERNAL) Etichetta da scrivere sui dischetti
|
||||
const char* _label;
|
||||
// @cmember Array dei file temporanei generati
|
||||
// @cmember:(INTERNAL) Array dei file temporanei generati
|
||||
TArray _tmp_files;
|
||||
// @cmember Puntatore al file creato
|
||||
// @cmember:(INTERNAL) Puntatore al file creato
|
||||
FILE* _fd;
|
||||
|
||||
// bool scrivi_volume();
|
||||
@ -764,11 +807,13 @@ public:
|
||||
virtual ~TFile_printer();
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna la stampante corrente
|
||||
//
|
||||
// @rdesc Ritorna l'identificatore della stamapnte corrente
|
||||
TPrinter& printer();
|
||||
// @func Distrugge la stampante corrente
|
||||
// @func Distrugge l'oggetto della stampante corrente
|
||||
void printer_destroy();
|
||||
|
||||
|
||||
|
@ -220,6 +220,8 @@ void TPrintwin::paint_row(long j)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Permette di stampare un rettangolo a video
|
||||
//
|
||||
// @rdesc Ritorna se e' riuscito a stampare in una unica pagina
|
||||
@ -242,6 +244,8 @@ bool TPrintwin::print_band(
|
||||
return j+k < _txt.lines();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Inizia la stampa
|
||||
//
|
||||
// @rdesc Ritorna se viene interrotta la stampa:
|
||||
|
@ -13,8 +13,7 @@
|
||||
#include <text.h>
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TPrintwin | Classe per la implementazione di una finestra XVT per la stampa:
|
||||
// scrivendoci su tutto l'output va sulla stampante corrente.
|
||||
@ -26,47 +25,47 @@ class TPrintwin : public TWindow
|
||||
|
||||
// @access Private Member
|
||||
{
|
||||
// @cmember Indica se la stampa e' stata interrotta
|
||||
// @cmember:(INTERNAL) Indica se la stampa e' stata interrotta
|
||||
bool _aborted;
|
||||
// @cmember Descrizione completa dello stato della stampante
|
||||
// @cmember:(INTERNAL) Descrizione completa dello stato della stampante
|
||||
PRINT_RCD* _printrcd;
|
||||
// @cmember Lunghezza del modulo di stampa
|
||||
// @cmember:(INTERNAL) Lunghezza del modulo di stampa
|
||||
int _formlen;
|
||||
// @cmember Larghezza del modulo di stampa
|
||||
// @cmember:(INTERNAL) Larghezza del modulo di stampa
|
||||
int _formwidth;
|
||||
// @cmember Lunghezza reale (vale per stampanti Generico/Solo testo) del modulo di stampa
|
||||
// @cmember:(INTERNAL) Lunghezza reale (vale per stampanti Generico/Solo testo) del modulo di stampa
|
||||
int _realformlen;
|
||||
|
||||
// @cmember L'intero background della pagina (vedi <c TPrintapp>)
|
||||
// @cmember:(INTERNAL) L'intero background della pagina (vedi <c TPrintapp>)
|
||||
TArray* _bg;
|
||||
// @cmember TText da stampare
|
||||
// @cmember:(INTERNAL) TText da stampare
|
||||
TTextfile& _txt;
|
||||
|
||||
// @cmember Array di immagini di stampare nel modulo sotto al testo
|
||||
// @cmember:(INTERNAL) Array di immagini di stampare nel modulo sotto al testo
|
||||
TArray _images;
|
||||
|
||||
// @cmember Distanza in pixel tra una riga e la successiva
|
||||
// @cmember:(INTERNAL) Distanza in pixel tra una riga e la successiva
|
||||
int _lead;
|
||||
// @cmember Numero di pixel dalla linea base al limite superiore del font
|
||||
// @cmember:(INTERNAL) Numero di pixel dalla linea base al limite superiore del font
|
||||
int _ascent;
|
||||
// @cmember Numero di pixel dalla linea base al limite inferiore del font
|
||||
// @cmember:(INTERNAL) Numero di pixel dalla linea base al limite inferiore del font
|
||||
int _descent;
|
||||
// @cmember Dimensione dell'offset orizzontale
|
||||
// @cmember:(INTERNAL) Dimensione dell'offset orizzontale
|
||||
int _hofs;
|
||||
// @cmember Dimensione dell'offset verticale
|
||||
// @cmember:(INTERNAL) Dimensione dell'offset verticale
|
||||
int _vofs;
|
||||
// @cmember Altre caratteristihce del font (vedi XVT)
|
||||
// @cmember:(INTERNAL) Altre caratteristihce del font (vedi XVT)
|
||||
int _chary;
|
||||
// @cmember Dimensione del font di stampa
|
||||
// @cmember:(INTERNAL) Dimensione del font di stampa
|
||||
int _char_size;
|
||||
// @cmember Altre caratteristihce del font (vedi XVT)
|
||||
// @cmember:(INTERNAL) Altre caratteristihce del font (vedi XVT)
|
||||
bool _inited;
|
||||
|
||||
// @cmember Permette di disegnare lo sfondo della riga <p j>-esima
|
||||
// @cmember:(INTERNAL) Permette di disegnare lo sfondo della riga <p j>-esima
|
||||
void paint_background(long j);
|
||||
// @cmember Permette di disegnare la riga <p j>-esima
|
||||
// @cmember:(INTERNAL) Permette di disegnare la riga <p j>-esima
|
||||
void paint_row(long j);
|
||||
// @cmember Permette di disegnare la parte di finestra per la pagina <p page>
|
||||
// @cmember:(INTERNAL) Permette di disegnare la parte di finestra per la pagina <p page>
|
||||
bool print_band(int page, RCT&);
|
||||
|
||||
// @access Public Member
|
||||
|
@ -1,8 +1,6 @@
|
||||
#include <defmask.h>
|
||||
#include <progind.h>
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
const char* const CANCEL_TEXT = "Annulla";
|
||||
const char* const TITLE_TEXT = "Attesa";
|
||||
|
||||
@ -55,6 +53,8 @@ TIndwin::TIndwin(long max, const char* txt, bool cancel, bool bar, int div)
|
||||
do_events();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta il testo della finestra
|
||||
void TIndwin::set_text(
|
||||
const char* t) // @parm Testo della finestra
|
||||
|
@ -18,21 +18,21 @@
|
||||
class TIndwin : public TWindow
|
||||
// @author:(INTERNAL) Villa
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
enum {
|
||||
// @ccost IND_CANCELLED | 0x01 | Controlla se e' stato premuto il tasto "Annulla"
|
||||
// @ccost:(INTERNAL) IND_CANCELLED | 0x01 | Controlla se e' stato premuto il tasto "Annulla"
|
||||
IND_CANCELLED = 0x01,
|
||||
// @ccost IND_FINISHED | 0x02 | Controlla se l'operazione e' terminata
|
||||
// @ccost:(INTERNAL) IND_FINISHED | 0x02 | Controlla se l'operazione e' terminata
|
||||
IND_FINISHED= 0x02 };
|
||||
|
||||
// @cmember Testo da inserire nella finestra
|
||||
// @cmember:(INTERNAL) Testo da inserire nella finestra
|
||||
WINDOW _text;
|
||||
// @cmember Bottone "Annulla"
|
||||
// @cmember:(INTERNAL) Bottone "Annulla"
|
||||
WINDOW _cancel;
|
||||
// @cmember Movimento della barra e percentuale
|
||||
// @cmember:(INTERNAL) Movimento della barra e percentuale
|
||||
WINDOW _bar;
|
||||
// @cmember Flage che indica quali operazioni sono state effettuate
|
||||
// @cmember:(INTERNAL) Flag che indica quali operazioni sono state effettuate
|
||||
byte _flags;
|
||||
|
||||
// @access Protected Member
|
||||
@ -81,6 +81,8 @@ public:
|
||||
virtual ~TIndwin();
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TProgind | Classe per la gestione della barra di attesa di una applicazione
|
||||
//
|
||||
// @base public | TIndwin
|
||||
@ -105,6 +107,8 @@ public:
|
||||
{}
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TTimerind | Classe per la definizione di una barra d'attesa gestita
|
||||
// dal tempo e non dallo stato dell'applicazione
|
||||
//
|
||||
@ -112,11 +116,11 @@ public:
|
||||
class TTimerind : public TIndwin
|
||||
// @author:(INTERNAL) Villa
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Intervallo di tempo
|
||||
// @cmember:(INTERNAL) Intervallo di tempo
|
||||
int _interval;
|
||||
// @cmember Indice di tempo
|
||||
// @cmember:(INTERNAL) Indice di tempo
|
||||
static long _timer_id;
|
||||
|
||||
// @access Protected Member
|
||||
|
177
include/real.cpp
177
include/real.cpp
@ -11,8 +11,6 @@ const real ZERO (0.0);
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
real::real () : _dec(0.0)
|
||||
{ }
|
||||
|
||||
@ -78,6 +76,9 @@ real& real::operator /= (long double b)
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il segno del reale
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
@ -103,6 +104,8 @@ long real::integer () const
|
||||
}
|
||||
|
||||
// Certified 91%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Trasforma un reale in stringa
|
||||
//
|
||||
// @rdesc Ritorna la stringa nella lunghezza richiesta
|
||||
@ -166,6 +169,8 @@ HIDDEN long double ipow10(int pow)
|
||||
return n;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc real& | real | round | Arrotonda al numero di decimali passati
|
||||
real& real::round (
|
||||
int prec) // @parm Numero di decimali a cui arrotondare il numero (default 0)
|
||||
@ -219,6 +224,8 @@ real& real::trunc(int prec)
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Scambia il numero reale <p a> con il numero real <p b>
|
||||
void swap (
|
||||
real& a, // @parm Primo numero da scambiare
|
||||
@ -304,8 +311,6 @@ extern "C"
|
||||
|
||||
HIDDEN real __tmp_real;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
real::real ()
|
||||
{
|
||||
dzero (ptr ());
|
||||
@ -415,6 +420,8 @@ bool real::is_zero () const
|
||||
return diszero (ptr ());
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il segno del reale
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
@ -442,6 +449,8 @@ long real::integer () const
|
||||
}
|
||||
|
||||
// Certified 91%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Trasforma un reale in stringa
|
||||
//
|
||||
// @rdesc Ritorna la stringa nella lunghezza richiesta
|
||||
@ -483,6 +492,7 @@ char *real::string (
|
||||
return __string;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func ostream& | operator <lt><lt> | Permette di reindirizzare il numero
|
||||
// reale per la stampa
|
||||
@ -496,6 +506,7 @@ ostream & operator << (
|
||||
return out << a.string ();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func istream& | operator <gt><gt> | Permette di leggere un numero reale
|
||||
//
|
||||
@ -516,6 +527,7 @@ int real ::precision ()
|
||||
return dprec (ptr ());
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc real& | real | round | Arrotonda al numero di decimali passati
|
||||
real & real ::round (
|
||||
@ -568,6 +580,8 @@ real & real ::trunc (int prec)
|
||||
return *this;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func real | operator + | Somma due numeri reali
|
||||
//
|
||||
// @rdesc Ritorna il valore della somma
|
||||
@ -598,6 +612,8 @@ real operator + (const real & a, double b)
|
||||
return __tmp_real += b;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func real | operator - | Sottrae due numeri reali
|
||||
//
|
||||
// @rdesc Ritorna il valore della sottrazione
|
||||
@ -630,6 +646,8 @@ real operator - (const real & a, double b)
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func real | operator * | Moltiplica due numeri reali
|
||||
//
|
||||
// @rdesc Ritorna il valore della moltiplicazione
|
||||
@ -661,6 +679,8 @@ real operator *(const real & a, double b)
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func real | operator / | Divide due numeri reali
|
||||
//
|
||||
// @rdesc Ritorna il valore della divisione
|
||||
@ -693,6 +713,7 @@ real operator / (const real & a, double b)
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func bool | operator <gt> | Controlla se un reale e' maggiore di un altro
|
||||
//
|
||||
@ -718,6 +739,8 @@ bool operator > (double a, const real & b)
|
||||
return a > n;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func bool | operator <lt> | Controlla se un reale e' minore di un altro
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -744,6 +767,8 @@ bool operator < (double a, const real & b)
|
||||
return a < n;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func bool | operator <gt>= | Controlla se un reale e' maggiore o uguale ad
|
||||
// un altro
|
||||
//
|
||||
@ -771,6 +796,8 @@ bool operator >= (double a, const real & b)
|
||||
return a >= n;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func bool | operator <lt>= | Controlla se un reale e' minore o uguale ad
|
||||
// un altro
|
||||
//
|
||||
@ -797,6 +824,7 @@ bool operator <= (double a, const real & b)
|
||||
return a <= n;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func bool | operator == | Controlla se un reale e' uguale ad un altro
|
||||
//
|
||||
@ -820,6 +848,8 @@ bool operator == (double a, const real & b)
|
||||
return a == n;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func bool | operator != | Controlla se 2 reali dono diversi
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -843,12 +873,17 @@ bool operator != (double a, const real & b)
|
||||
return a != n;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func real | operator % | Ritorna il modulo di due numeri
|
||||
//
|
||||
// @rdesc Ritorna il resto della divisione tra due numeri
|
||||
real operator % (
|
||||
const real& a, // @parm Primo membro della divisione
|
||||
const real& a, // @parm Primo membro della divisione
|
||||
const real& b) // @parm Secondo membro della divisione
|
||||
|
||||
// @syntax long double operator%(const real& a, const real& b)
|
||||
// @syntax real operator % (const real& a, const real& b)
|
||||
|
||||
{
|
||||
const long l = b.integer();
|
||||
@ -856,6 +891,8 @@ real operator % (
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Scambia il numero reale <p a> con il numero real <p b>
|
||||
void swap (
|
||||
real & a, // @parm Primo numero da scambiare
|
||||
@ -865,118 +902,205 @@ void swap (
|
||||
SwapDecimal (a.ptr (), b.ptr ());
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna il numero reale piu' piccolo tra <p a> e <p b>
|
||||
const real& fnc_min (
|
||||
const real & a, // @parm Primo numero da confrontare
|
||||
const real & b) // @parm Secondo numero da confrontare
|
||||
// @parm long double | a | Primo numero da confrontare
|
||||
// @parm long double | b | Secondo numero da confrontare
|
||||
|
||||
// @syntax const real& fnc_min (const real & a, const real & b)
|
||||
// @syntax inline long double fnc_min(long double a, long double b)
|
||||
|
||||
|
||||
{
|
||||
dmin (__tmp_real.ptr (), a.ptr (), b.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna il numero reale piu' grande tra <p a> e <p b>
|
||||
const real& fnc_max (
|
||||
const real & a, // @parm Primo numero da confrontare
|
||||
const real & b) // @parm Secondo numero da confrontare
|
||||
// @parm long double | a | Primo numero da confrontare
|
||||
// @parm long double | b | Secondo numero da confrontare
|
||||
|
||||
// @syntax const real& fnc_max (const real & a, const real & b)
|
||||
// @syntax inline long double fnc_max(long double a, long double b)
|
||||
|
||||
{
|
||||
dmax (__tmp_real.ptr (), a.ptr (), b.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna la radice quadrata del numero
|
||||
real sqrt (
|
||||
const real & a) // @parm Numero del quale calcolare la radice
|
||||
// @parm long double | a | Numero del quale calcolare la radice
|
||||
|
||||
// @syntax real sqrt (const real)
|
||||
// @syntax long double sqrt(long double)
|
||||
|
||||
{
|
||||
dsqrt (__tmp_real.ptr (), a.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna il quadarato del numero
|
||||
real sqr (
|
||||
const real & a) // @parm Numero del quale calcolare il quadrato
|
||||
|
||||
// @parm long double | a | Numero del quale calcolare il quadrato
|
||||
|
||||
// @syntax real sqr (const real)
|
||||
// @syntax long double sqr(long double)
|
||||
|
||||
{
|
||||
dmul (__tmp_real.ptr (), a.ptr (), a.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @func Calcola 10 a potenza <p a>
|
||||
real exp10 (const real & a)
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Calcola 10 a potenza <p a>
|
||||
real exp10 (
|
||||
const real & a) // @parm Esponente al quale elevare
|
||||
// @parm long double | a | Esponente al quale elevare
|
||||
|
||||
// @syntax real exp10 (const real)
|
||||
// @syntax long double exp10 (long double)
|
||||
|
||||
|
||||
{
|
||||
dalog (__tmp_real.ptr (), a.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Calcola l'elevamento a potenza <p b> del numero <p a>
|
||||
real pow (const real & a, const real & b)
|
||||
real pow (
|
||||
const real & a, // @parm Numero da elevare a potenza
|
||||
const real & b) // @parm Esponente
|
||||
// @parm long double | a | Numero da elevare a potenza
|
||||
// @parm long double | b | Esponente
|
||||
|
||||
// @syntax real pow (const real & a, const real & b)
|
||||
// @syntax long double pow(long double a, long double b)
|
||||
|
||||
{
|
||||
dpow (__tmp_real.ptr (), a.ptr (), b.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Calcola e (nepero) elevato ad <p a>
|
||||
real exp (const real & a)
|
||||
real exp (
|
||||
const real & a) // @parm Esponente
|
||||
// @parm long double | a | Esponente
|
||||
|
||||
// @syntax real exp (const real & a)
|
||||
// @syntax long double exp(long double a)
|
||||
|
||||
{
|
||||
dexp (__tmp_real.ptr (), a.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Calcola il logaritmo in base 10 del numero
|
||||
real log10 (
|
||||
const real & a) // @parm Numero del quale calcolare il logaritmo
|
||||
// @parm long double | a | Numero del quale calcolare il logaritmo
|
||||
|
||||
// @syntax real log10 (const real & a)
|
||||
// @syntax long double log10(long double a)
|
||||
|
||||
{
|
||||
dlog (__tmp_real.ptr (), a.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Calcoa il logaritmo naturale (base e) del numero
|
||||
real log (
|
||||
const real & a) // @parm Numero del quale calcolare il logaritmo
|
||||
// @parm long double | a | Numero del quale calcolare il logaritmo
|
||||
|
||||
// @syntax real log (const real & a)
|
||||
// @syntax long double log(long double a)
|
||||
|
||||
{
|
||||
dln (__tmp_real.ptr (), a.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Calcola il seno dell'angolo
|
||||
real sin (
|
||||
const real & a) // @parm Angolo passato in radianti
|
||||
// @parm long double | a | Angolo passato in radianti
|
||||
|
||||
// @syntax real sin (const real & a)
|
||||
// @syntax long double sin (long double a)
|
||||
|
||||
{
|
||||
dsin (__tmp_real.ptr (), a.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Calcola il coseno dell'angolo
|
||||
real cos (
|
||||
const real & a) // @parm Angolo passato in radianti
|
||||
const real & a) // @parm Angolo passato in radianti
|
||||
// @parm long double | a | Angolo passato in radianti
|
||||
|
||||
// @syntax real cos (const real & a)
|
||||
// @syntax long double cos (long double a)
|
||||
|
||||
|
||||
{
|
||||
dcos (__tmp_real.ptr (), a.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Calcola la tangente dell'angolo
|
||||
real tan (
|
||||
const real & a) // @parm Angolo passato in radianti
|
||||
// @parm long double | a | Angolo passato in radianti
|
||||
|
||||
// @syntax real tan (const real & a)
|
||||
// @syntax long double tan (long double a)
|
||||
|
||||
|
||||
{
|
||||
dtan (__tmp_real.ptr (), a.ptr ());
|
||||
return __tmp_real;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna il valore assoluto di un numero
|
||||
real abs (
|
||||
const real & a) // @parm Numero del quale si vuole conoscere il valore
|
||||
// assoluto
|
||||
const real & a) // @parm Numero del quale si vuole conoscere il valore assoluto
|
||||
// @parm long double | a | Numero del quale si vuole conoscere il valore assoluto
|
||||
|
||||
// @syntax real abs (const real & a)
|
||||
// @syntax long double abs(long double a)
|
||||
|
||||
{
|
||||
dabs (__tmp_real.ptr (), a.ptr ());
|
||||
@ -1313,12 +1437,13 @@ real TDistrib::get ()
|
||||
return r;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Inizializza l'oggetto
|
||||
void TDistrib::init (
|
||||
const real & r, // @parm Importo da dividere
|
||||
bool zap) // @parm Permette di cancellare le percenutali immesse
|
||||
// (default FALSE)
|
||||
|
||||
bool zap) // @parm Permette di cancellare le percenutali immesse (default FALSE)
|
||||
|
||||
// @comm Se <p zap> e' vero cancella tutte le percentuali immesse, altrimenti
|
||||
// cambia solo il totale
|
||||
{
|
||||
@ -1353,6 +1478,8 @@ real TGeneric_distrib::get ()
|
||||
return r;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Inizializza l'oggetto
|
||||
void TGeneric_distrib::init (
|
||||
const real & r, // @parm Importo da dividere
|
||||
@ -1444,13 +1571,17 @@ const TImporto& TImporto::swap_section()
|
||||
}
|
||||
|
||||
|
||||
// Normalizza l'importo al parametro s
|
||||
// Valore Azione
|
||||
// A Forza la sezione Avere
|
||||
// D Forza la sezione Dare
|
||||
// < 0 Forza il segno negativo
|
||||
// >=0 Forza il segno positivo
|
||||
const TImporto& TImporto::normalize(char s)
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Normalizza il segno o la sezione in base al parametro s
|
||||
const TImporto& TImporto::normalize(
|
||||
char s) // @parm Tipo di normalizzazione da effettuare:
|
||||
//
|
||||
// @flag A | Forza la sezione Avere
|
||||
// @flag D | Forza la sezione Dare
|
||||
// @flag <gt>0 | Forza il segno negativo
|
||||
// @flag <lt>=0 | Forza il segno positivo
|
||||
|
||||
{
|
||||
bool ex = FALSE;
|
||||
switch (s)
|
||||
|
@ -13,10 +13,15 @@
|
||||
//
|
||||
// @base public | TObject
|
||||
class real : public TObject
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Numero reale
|
||||
// @comm Questa classe utilizza i long double definiti per Visual C++. Esiste un'altra classe
|
||||
// real: per accedere scegliere il tasto successivo (<gt><gt>) dalla barra deo bottoni
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember:(INTERNAL) Numero reale
|
||||
long double _dec;
|
||||
|
||||
// @access Protected Member
|
||||
@ -31,7 +36,9 @@ protected:
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
operator long double () const { return _dec; }
|
||||
// @cmember long double | operator long double | | Ritorna il numero reale
|
||||
operator long double () const
|
||||
{ return _dec; }
|
||||
|
||||
// @cmember Trasforma un numero dal formato inglese (decimali con punto) in
|
||||
// formato italiano (decimali con virgola)
|
||||
@ -70,6 +77,7 @@ public:
|
||||
real& operator = (const real& a);
|
||||
// @cmember Assegna un reale
|
||||
real& operator =(long double a);
|
||||
// @cmember Aggiunge ad un reale il valore passato (passato per indirizzo)
|
||||
real& operator +=(long double a);
|
||||
// @cmember Sottrae ad un reale il valore passato (passato per indirizzo)
|
||||
real& operator -=(long double b);
|
||||
@ -96,7 +104,7 @@ public:
|
||||
{}
|
||||
};
|
||||
|
||||
inline long double fnc_min(long double a, long double b) { return a < b ? a : b; }
|
||||
inline long double fnc_min(long double a, long double b){ return a < b ? a : b; }
|
||||
inline long double fnc_max(long double a, long double b) { return a > b ? a : b; }
|
||||
|
||||
long double operator%(const real& a, const real& b);
|
||||
@ -126,14 +134,19 @@ long double abs(long double a) ;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class real | Classe per la gestione dei numeri reali
|
||||
// @class real (per GREENLEAF) | Classe per la gestione dei numeri reali
|
||||
//
|
||||
// @base public | TObject
|
||||
class real : public TObject
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Numero reale
|
||||
// @comm Questa classe utilizza i DEC definiti per GREENLEAF. Esiste un'altra classe
|
||||
// real: per accedere scegliere il tasto precedente (<lt><lt>) dalla barra deo bottoni
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember:(INTERNAL) Numero reale
|
||||
DEC _dec;
|
||||
|
||||
// @access Protected Member
|
||||
@ -286,26 +299,30 @@ real abs(const real& a) ;
|
||||
|
||||
extern const real ZERO;
|
||||
|
||||
// @class TDistrib | Classe per dividere un real in varie sue percentuali
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TDistrib | Classe per dividere un <c real> in varie sue percentuali
|
||||
// in modo che la loro somma dia sempre il real di partenza
|
||||
//
|
||||
// @base public | TObject
|
||||
class TDistrib : public TObject
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Totale da ripartire
|
||||
// @cmember:(INTERNAL) Totale da ripartire
|
||||
real _tot;
|
||||
// @cmember Progressivo gia' distribuito
|
||||
// @cmember:(INTERNAL) Progressivo gia' distribuito
|
||||
real _prog;
|
||||
// @cmember Pronto per essere usato (tutti gli add() fatti)
|
||||
// @cmember:(INTERNAL) Pronto per essere usato (tutti gli <mf TDistrib::add> fatti)
|
||||
bool _ready;
|
||||
// @cmember Percentuali da distribuire
|
||||
// @cmember:(INTERNAL) Percentuali da distribuire
|
||||
TArray _slices;
|
||||
// @cmember Indice delle percentuali aggiunte o estratte
|
||||
// @cmember:(INTERNAL) Indice delle percentuali aggiunte o estratte
|
||||
int _current;
|
||||
// @cmember Precisione
|
||||
// @cmember:(INTERNAL) Precisione
|
||||
int _decs;
|
||||
|
||||
// @access Public Member
|
||||
@ -340,6 +357,8 @@ public:
|
||||
{}
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TGeneric_distrib | Classe per dividere un real in parti fissate
|
||||
// in modo che la loro somma dia sempre il real di partenza
|
||||
//
|
||||
@ -348,19 +367,19 @@ public:
|
||||
class TGeneric_distrib : public TObject
|
||||
{
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Totale da ripartire
|
||||
// @cmember:(INTERNAL) Totale da ripartire
|
||||
real _tot;
|
||||
// @cmember Totale parti da distribuire
|
||||
// @cmember:(INTERNAL) Totale parti da distribuire
|
||||
real _totslices;
|
||||
// @cmember Pronto per essere usato (tutti gli add() fatti)
|
||||
// @cmember:(INTERNAL) Pronto per essere usato (tutti gli add() fatti)
|
||||
bool _ready;
|
||||
// @cmember Percentuali da distribuire
|
||||
// @cmember:(INTERNAL) Percentuali da distribuire
|
||||
TArray _slices;
|
||||
// @cmember Indice delle percentuali aggiunte o estratte
|
||||
// @cmember:(INTERNAL) Indice delle percentuali aggiunte o estratte
|
||||
int _current;
|
||||
// @cmember Precisione
|
||||
// @cmember:(INTERNAL) Precisione
|
||||
int _decs;
|
||||
|
||||
// @access Public Member
|
||||
@ -372,7 +391,8 @@ public:
|
||||
virtual real get();
|
||||
|
||||
// @cmember Inizializza il numero di decimali
|
||||
void set_dec(int decs) { _decs = decs;}
|
||||
void set_dec(int decs)
|
||||
{ _decs = decs;}
|
||||
|
||||
// @cmember Inizializza l'oggetto
|
||||
void init(const real& r, bool zap = FALSE);
|
||||
@ -395,17 +415,20 @@ public:
|
||||
{}
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TImporto | Classe per la definizione di oggetti con sezione e importo
|
||||
//
|
||||
// @base public | TSortable
|
||||
class TImporto : public TSortable
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Sezione alla quale apprtiene l'importo
|
||||
// @cmember:(INTERNAL) Sezione alla quale apprtiene l'importo
|
||||
char _sezione;
|
||||
// @cmember Valore dell'importo
|
||||
// @cmember:(INTERNAL) Valore dell'importo
|
||||
real _valore;
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -5,9 +5,7 @@
|
||||
#define NOERR 0
|
||||
#define FIELDERR -1
|
||||
|
||||
// @T
|
||||
typedef long TRecnotype;
|
||||
// @END
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
@ -17,6 +15,8 @@ enum TFilelock {
|
||||
_excllock = 0x100, // @emem Apertura in modo esclusivo
|
||||
_autolock = 0x200, // @emem Apertura del file in modo auto
|
||||
_manulock = 0x400}; // @emem Apertura del file in modo manuale
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum TReclock | Comandi per la gestione dei lock su record
|
||||
enum TReclock {
|
||||
@ -24,17 +24,23 @@ enum TReclock {
|
||||
_nolock = 0x2000, // @emem Nessuna operazione di lock
|
||||
_lock = 0x4000, // @emem Blocca il record
|
||||
_testandlock = (int)0x8000} ; // @emem Blocca il record se possibile, altrimenti ritorna errore
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum TDirtype | Comandi per la gestione di <c TDir>
|
||||
enum TDirtype {
|
||||
_nordir, // @emem Riferimento operazioni col prefix corrente
|
||||
_comdir } ; // @emem Riferimento operazioni al direttorio comune
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum TDirop | Comandi per la gestione di <c TDir>
|
||||
enum TDirop {
|
||||
_nordirop, // @emem Riferimento per operazioni normali
|
||||
_sysdirop }; // @emem Riferimento per operazioni di sistema
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum TFieldtypes | Elenco tipi di campi
|
||||
enum TFieldtypes {
|
||||
_nullfld, // @emem Campo vuoto
|
||||
@ -50,6 +56,7 @@ enum TFieldtypes {
|
||||
_longzerofld, // @emem Campo di tipo intero lungo zero filled
|
||||
_memofld} ; // @emem Campo di tipo memo
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum TIsamop | Comandi per eseguire operazioni di lettura sul file
|
||||
enum TIsamop {
|
||||
@ -63,6 +70,8 @@ enum TIsamop {
|
||||
_isgteq = 0x40, // @emem Legge il record con chiave maggiore o uguale di quella specificata
|
||||
_isnextn = 0x100, // @emem Legge i prossimi n record
|
||||
_isprevn = 0x200} ; // @emem Legge i precedenti n record
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @enum TIsamerr | Elenco codici di errore
|
||||
enum TIsamerr {
|
||||
|
@ -20,13 +20,13 @@
|
||||
class TChiave : public TObject
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @ccost MAX | 16 | Numero massimo di chiavi della maschera di ricerca
|
||||
// @ccost:(INTERNAL) MAX | 16 | Numero massimo di chiavi della maschera di ricerca
|
||||
enum { MAX = 16 };
|
||||
// @cmember Posizione delle chiavi nella msachera di ricerca
|
||||
// @cmember:(INTERNAL) Posizione delle chiavi nella msachera di ricerca
|
||||
int _pos[MAX];
|
||||
// @cmember Numero di chiavi presenti nella maschera di ricerca
|
||||
// @cmember:(INTERNAL) Numero di chiavi presenti nella maschera di ricerca
|
||||
byte _num;
|
||||
|
||||
// @access Public Member
|
||||
@ -89,8 +89,6 @@ TKey_array::TKey_array(const TMask* m) : _mask(m)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TRelation_application
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -117,6 +115,8 @@ void TRelation_application::setkey()
|
||||
}
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Setta i limiti
|
||||
void TRelation_application::set_limits(
|
||||
byte what) // @parm tipo di limite da assegnare al record
|
||||
@ -322,6 +322,8 @@ int TRelation_application::set_mode(int mode)
|
||||
return _mode;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Permette di autonumerare un record
|
||||
//
|
||||
// @rdesc Ritorna se e' riuscito a creare una nuova autonumerazione:
|
||||
@ -352,6 +354,8 @@ bool TRelation_application::autonum(
|
||||
return k.not_empty();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Entra in modo di ricerca
|
||||
void TRelation_application::query_mode(
|
||||
bool pre_ins) // @parm Indica in quale modo andare:
|
||||
@ -514,6 +518,8 @@ bool TRelation_application::search_mode()
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Controlla se una chiave e' completa ed esiste su file
|
||||
//
|
||||
// @rdesc Ritorna se la chave esiste sul file
|
||||
@ -751,7 +757,10 @@ int TRelation_application::rewrite(const TMask& m)
|
||||
return r->status();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Cancella il record corrente
|
||||
//
|
||||
// @rdesc Ritorna se il record e' stato eliminato
|
||||
bool TRelation_application::relation_remove()
|
||||
|
||||
|
@ -13,10 +13,10 @@
|
||||
#include <mask.h>
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
class TKey_array;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TRelation_application | Classe per la gestione di una apllicazione di manutenzione di uno
|
||||
// o piu' archivi utilizzando una relazione
|
||||
//
|
||||
@ -25,59 +25,59 @@ class TRelation_application : public TApplication
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Maschera corrente dell'applicazione
|
||||
// @cmember:(INTERNAL) Maschera corrente dell'applicazione
|
||||
TMask* _mask;
|
||||
// @cmember Array di chiavi della maschera
|
||||
// @cmember:(INTERNAL) Array di chiavi della maschera
|
||||
TKey_array* _maskeys;
|
||||
// @cmember Primo record
|
||||
// @cmember:(INTERNAL) Primo record
|
||||
TRecnotype _first;
|
||||
// @cmember Ultimo record
|
||||
// @cmember:(INTERNAL) Ultimo record
|
||||
TRecnotype _last;
|
||||
// @cmember Campo da utilizzare col bottone Ricerca
|
||||
// @cmember:(INTERNAL) Campo da utilizzare col bottone Ricerca
|
||||
int _search_id;
|
||||
|
||||
// @cmember Nome del programma chiamante
|
||||
// @cmember:(INTERNAL) Nome del programma chiamante
|
||||
TString16 _autoins_caller;
|
||||
// @cmember Numero del record nuovo/editato
|
||||
// @cmember:(INTERNAL) Numero del record nuovo/editato
|
||||
long _recins;
|
||||
|
||||
// @cmember Indica se e' stato chiamato col messaggio di link
|
||||
// @cmember:(INTERNAL) Indica se e' stato chiamato col messaggio di link
|
||||
bool _lnflag;
|
||||
// @cmember Contiene il codice del campo e il valore fisso
|
||||
// @cmember:(INTERNAL) Contiene il codice del campo e il valore fisso
|
||||
TToken_string _fixed;
|
||||
// @cmember Messaggio da passare all'utente per inidicare che e' stata fatta la rinumerazione
|
||||
// @cmember:(INTERNAL) Messaggio da passare all'utente per inidicare che e' stata fatta la rinumerazione
|
||||
TString _renum_message;
|
||||
|
||||
// @cmember Setta i campi fissati da <md TRelation_application::_fixed>
|
||||
// @cmember:(INTERNAL) Setta i campi fissati da <md TRelation_application::_fixed>
|
||||
bool filter();
|
||||
// @cmember Controlla se una chiave e' completa ed esiste su file
|
||||
// @cmember:(INTERNAL) Controlla se una chiave e' completa ed esiste su file
|
||||
bool test_key(byte k, bool err);
|
||||
// @cmember Salva i contenuti della maschera su file
|
||||
// @cmember:(INTERNAL) Salva i contenuti della maschera su file
|
||||
bool save(bool check_dirty);
|
||||
// @cmember Abilita la ricerca sulla maschera
|
||||
// @cmember:(INTERNAL) Abilita la ricerca sulla maschera
|
||||
void enable_query();
|
||||
// @cmember UNUSED
|
||||
// @cmember:(INTERNAL) UNUSED
|
||||
void set_toolbar(bool all);
|
||||
|
||||
// @cmember Seleziona il nuovo modo e ritorna il vecchio
|
||||
// @cmember:(INTERNAL) Seleziona il nuovo modo e ritorna il vecchio
|
||||
int set_mode(int mode);
|
||||
// @cmember Setta i limiti
|
||||
// @cmember:(INTERNAL) Setta i limiti
|
||||
void set_limits(byte what = 0x3);
|
||||
// @cmember Posiziona l'applicazione in modo richiesta/inserimento (chaima <mf TRelation_application::query_mode>)
|
||||
// @cmember:(INTERNAL) Posiziona l'applicazione in modo richiesta/inserimento (chaima <mf TRelation_application::query_mode>)
|
||||
void query_insert_mode()
|
||||
{ query_mode(TRUE); }
|
||||
// @cmember Entra in modo inserimento
|
||||
// @cmember:(INTERNAL) Entra in modo inserimento
|
||||
void insert_mode();
|
||||
// @cmember Cancella il record corrente
|
||||
// @cmember:(INTERNAL) Cancella il record corrente
|
||||
bool relation_remove();
|
||||
// @cmember Ritorna il campo di ricerca della maschera
|
||||
// @cmember:(INTERNAL) Ritorna il campo di ricerca della maschera
|
||||
TMask_field* get_search_field() const;
|
||||
|
||||
// @cmember Permette di autonumerare un record
|
||||
// @cmember:(INTERNAL) Permette di autonumerare un record
|
||||
bool autonum(TMask* m, bool rec);
|
||||
// @cmember Controlla se il <c TCursor> ha un filtro
|
||||
// @cmember:(INTERNAL) Controlla se il <c TCursor> ha un filtro
|
||||
bool has_filtered_cursor() const
|
||||
{ return filtered() || force_cursor_usage();}
|
||||
|
||||
@ -94,13 +94,13 @@ protected:
|
||||
// @cmember Ritorna il descrittore del file principale della relazione
|
||||
TLocalisamfile& file() const
|
||||
{ return get_relation()->lfile(); }
|
||||
// @cmember Ritorna il primo record!!!
|
||||
// @cmember Ritorna il primo record
|
||||
TRecnotype first() const
|
||||
{ return _first;}
|
||||
// @cmember Ritorna l'ultimo record!!!
|
||||
// @cmember Ritorna l'ultimo record
|
||||
TRecnotype last() const
|
||||
{ return _first;}
|
||||
// @cmember !!!
|
||||
{ return _last;}
|
||||
// @cmember Ritorna il nome del programma chiamante
|
||||
const TString& autoins_caller() const
|
||||
{ return _autoins_caller;}
|
||||
|
||||
@ -124,7 +124,7 @@ protected:
|
||||
bool modify_mode();
|
||||
// @cmember Legge i campi chiave della maschera e setta il cursore relativo
|
||||
void setkey();
|
||||
// @cmember !!!
|
||||
// @cmember Ritorna se e' stato chiamato col messaggio di link
|
||||
bool lnflag() const
|
||||
{ return _lnflag;}
|
||||
// @cmember Indica se la futura <mf TRelation_application::get_mask> ritornera' una maschera diversa
|
||||
@ -204,7 +204,7 @@ public:
|
||||
// @cmember Ritorna se sono stati posti dei filtri sul file corrente
|
||||
bool filtered() const
|
||||
{ return _fixed.not_empty(); }
|
||||
// @cmember Cerca un record corrispondete alla chiava <p key> (0 prima chiave completa!!!)
|
||||
// @cmember Cerca un record corrispondete alla chiava <p key> (0 prima chiave completa)
|
||||
bool find(byte key = 0);
|
||||
// @cmember Costruisce il membro <md TRelation_application::_fixed>
|
||||
void set_link(TMask & m, const char * keyexpr);
|
||||
|
@ -1,8 +1,3 @@
|
||||
// $Id: relation.cpp,v 1.75 1996-01-30 15:59:31 angelo Exp $
|
||||
// relation.cpp
|
||||
// fv 12/8/93
|
||||
// relation class for isam files
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@ -28,8 +23,6 @@
|
||||
|
||||
#define print_name(out, f) out << (f.num() == LF_TABCOM ? "%" : "") << f.name()
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
extern int get_error(int);
|
||||
|
||||
HIDDEN const char* field_type_str(TFieldtypes f)
|
||||
@ -331,7 +324,9 @@ void TRelation::save_status()
|
||||
}
|
||||
}
|
||||
|
||||
// @mfunc Ritorna l'indice di <p _files> del numero logico passato!!!
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna l'indice di <p _files> del numero logico passato
|
||||
//
|
||||
// @rdesc Ritorna l'indice oppure NOTFOUND nel caso non sia presente
|
||||
int TRelation::log2ind(
|
||||
@ -354,6 +349,8 @@ int TRelation::log2ind(
|
||||
return NOTFOUND;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna l'indice di <p _files> del alias del file passato
|
||||
//
|
||||
// @rdesc Ritorna l'indice oppure NOTFOUND nel caso non sia presente
|
||||
@ -374,7 +371,9 @@ int TRelation::alias2ind(
|
||||
return NOTFOUND;
|
||||
}
|
||||
|
||||
// @mfunc Ritorna l'indice di <p _files> del nome del file passato!!!
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna l'indice di <p _files> del nome del file passato
|
||||
//
|
||||
// @rdesc Ritorna l'indice oppure NOTFOUND nel caso non sia presente
|
||||
int TRelation::name2ind(
|
||||
@ -387,6 +386,8 @@ int TRelation::name2ind(
|
||||
return ind;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il descrittore del file
|
||||
//
|
||||
// @rdesc Ritorna il reference ad un <c TLocalisamfile> che indica il descrittore del
|
||||
@ -413,6 +414,8 @@ TLocalisamfile& TRelation::lfile(const char* name) const
|
||||
return (TLocalisamfile&)_files[idx];
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Abilita/disabilita la scrittura sul file
|
||||
void TRelation::write_enable(
|
||||
int logicnum, // @parm Numero logico del file da abilitare/disabilitare (default 0)
|
||||
@ -452,6 +455,8 @@ void TRelation::write_enable(const char* name, const bool on)
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge una nuovo file nella relazione
|
||||
//
|
||||
// @rdesc Ritorna se e' riuscito ad aggiungere il file alla relazione
|
||||
@ -507,7 +512,9 @@ bool TRelation::add(const char* tabname, const char* relexprs, int key,
|
||||
return add(t, relexprs, key, linkto, alias, allow_lock);
|
||||
}
|
||||
|
||||
// @mfunc Sostituisce nella relazione un file!!!
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Sostituisce nella relazione un file
|
||||
void TRelation::replace(
|
||||
TLocalisamfile* f, // @parm Descrittore del file sostituto
|
||||
int index) // @parm Posizione nel quale sostituire il file (default 0)
|
||||
@ -537,6 +544,8 @@ void TRelation::zero()
|
||||
file(i).zero();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di posizionare l'albero di relazioni tra i file
|
||||
//
|
||||
// @rdesc Ritorna il numero di errore avvenuto nell'opeerazione, NOERR nel caso
|
||||
@ -616,6 +625,8 @@ int TRelation::position_rels(
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Posiziona il numero logico sul record successivo
|
||||
//
|
||||
// @rdesc Ritorna se ha trovato la corrispondenza:
|
||||
@ -714,6 +725,8 @@ bool TRelation::next_match(
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla se c'e' un record ed e' il primo match (non si e' mai fatta
|
||||
// <mf TRelation::position_rels>)
|
||||
//
|
||||
@ -733,6 +746,8 @@ bool TRelation::is_first_match(
|
||||
|
||||
#ifdef DBG
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla se la relazione e' corretta
|
||||
//
|
||||
// @rdesc Ritorna i seguent valori
|
||||
@ -871,6 +886,8 @@ HIDDEN bool __evalcondition(const TRelation* r,TExpression* cond)
|
||||
return (bool) *cond;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Apre il file di indice
|
||||
//
|
||||
// @rdesc Ritorna l'handle del file aperto
|
||||
@ -1052,6 +1069,7 @@ TRecnotype TCursor::update()
|
||||
return totrec;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta il filtro sul cursore
|
||||
void TCursor::filter(
|
||||
@ -1232,6 +1250,8 @@ TRecnotype TCursor::readrec()
|
||||
return nrec;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Mette un lock sul record
|
||||
//
|
||||
// @rdesc Ritorna il numero di errore che si verifica nel porre il lock (NOERR) se
|
||||
@ -1309,13 +1329,20 @@ typedef struct {
|
||||
TRecnotype p;
|
||||
} El_To_Sort;
|
||||
|
||||
bool TSorted_cursor::check_expr(TString& s)
|
||||
// Controlla la validita' dell'espressione ritornando un bool
|
||||
// Modifica l'espressione in modo da avere una valido parametro per TFieldref!
|
||||
// Es. UPPER(20->RAGSOC[1,40]+) ==> 20->RAGSOC[1,40]+
|
||||
// N.B. : la direzione dell'ordinamento va messa indicata sempre dopo la definizione del campo, mai
|
||||
// dopo l'operatore UPPER(). E' a cura delle altre funzioni esterne che utilizzano la check_expr()
|
||||
// discriminare il segno + o - che sia
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla la validita' dell'espressione
|
||||
//
|
||||
// @rdesc Ritorna se si tratta di una espressione valida
|
||||
bool TSorted_cursor::check_expr(
|
||||
TString& s) // @parm Espressione da controllare
|
||||
|
||||
// @comm Modifica l'espressione in modo da avere una valido parametro per TFieldref!
|
||||
// <nl>Es. UPPER(20->RAGSOC[1,40]+) ==> 20->RAGSOC[1,40]+
|
||||
// <nl>N.B.: la direzione dell'ordinamento va messa indicata sempre dopo la definizione del campo, mai
|
||||
// dopo l'operatore UPPER(). E' a cura delle altre funzioni esterne che utilizzano la check_expr()
|
||||
// discriminare il segno + o - che sia.
|
||||
|
||||
{
|
||||
int p=s.find('(');
|
||||
int p1=s.find(')');
|
||||
@ -1565,6 +1592,8 @@ TSorted_cursor::~TSorted_cursor()
|
||||
// TFieldRef
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Converte una stringa in numero logico o numero tabella
|
||||
//
|
||||
// @rdesc Ritorna il numero logico del file o il numero della tabella
|
||||
@ -1606,6 +1635,7 @@ TFieldref::TFieldref(const TString& s, short defid)
|
||||
if (_fileid == 0) _fileid = defid;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Operatore di assegnamento
|
||||
//
|
||||
@ -1613,7 +1643,7 @@ TFieldref::TFieldref(const TString& s, short defid)
|
||||
TFieldref& TFieldref::operator =(
|
||||
const TString& s) // @parm Stringa da assegnare all'oggetto
|
||||
|
||||
// @comm Un Fildref deve avere il seguente formato (solamente NAME e il mandante):
|
||||
// @comm Un <c TFildref> deve avere il seguente formato (solamente NAME e il mandante):
|
||||
// <nl>FILE->NAME[FROM,TO]
|
||||
|
||||
{
|
||||
@ -1792,6 +1822,8 @@ bool TRecord_array::exist(int n) const
|
||||
return r != NULL;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la riga <p r>
|
||||
//
|
||||
// @rdesc Ritorna un TRectype alla riga cercata o eventualemete il reference della nuova creata,
|
||||
@ -1818,6 +1850,9 @@ TRectype& TRecord_array::row(
|
||||
CHECKD(r && n > 0, "Bad record number ", n);
|
||||
return *r;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Rinumera il campo chiave in seguito a reinsert
|
||||
//
|
||||
// @rdesc Ritorna se e' stato rinumerato il campo chiave
|
||||
@ -1876,6 +1911,8 @@ int TRecord_array::add_row(TRectype* r)
|
||||
return nr;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Cancella una riga
|
||||
//
|
||||
// @rdesc Ritorna se e' riuscito ad eliminare la riga
|
||||
@ -1913,6 +1950,8 @@ void TRecord_array::destroy_rows()
|
||||
destroy(i);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Confronta i campi della chiave 1 scartando l'ultimo
|
||||
//
|
||||
// @rdesc Ritorna il risulato del confronto:
|
||||
@ -2140,6 +2179,8 @@ void TRelation_description::read_rel()
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Cambia la relazione descritta
|
||||
void TRelation_description::change_relation(
|
||||
TRelation& r, // @parm Nuova relazione da assegnare
|
||||
@ -2166,6 +2207,8 @@ void TRelation_description::print_on(ostream& out) const
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Seleziona un file
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione:
|
||||
@ -2219,6 +2262,8 @@ bool TRelation_description::choose_file(
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Seleziona un campo <p fld> del file selezionato
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione:
|
||||
@ -2259,7 +2304,9 @@ bool TRelation_description::choose_field(
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// @func Costruisce un menu'
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Costruisce un menu'
|
||||
//
|
||||
// @rdesc Ritorna solamente FALSE
|
||||
bool TRelation_description::build_menu(
|
||||
@ -2329,6 +2376,8 @@ TFieldtypes TRelation_description::field_type()
|
||||
return (TFieldtypes)_cfield.get_int(1);
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Setta la descrizione del campo
|
||||
//
|
||||
// @rdesc Ritorna se ha trovato il campo da settare
|
||||
|
@ -1,8 +1,3 @@
|
||||
/* $Id: relation.h,v 1.33 1996-01-31 17:18:43 andrea Exp $ */
|
||||
// join.h
|
||||
// fv 12/8/93
|
||||
// join class for isam files
|
||||
|
||||
#ifndef __RELATION_H
|
||||
#define __RELATION_H
|
||||
|
||||
@ -29,15 +24,15 @@ class TRelation : public TObject
|
||||
// @cfriend TCursor
|
||||
friend class TCursor;
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Stato della relazione
|
||||
// @cmember:(INTERNAL) Stato della relazione
|
||||
TToken_string _status;
|
||||
// @cmember Array dei descrittori dei file
|
||||
// @cmember:(INTERNAL) Array dei descrittori dei file
|
||||
TArray _files;
|
||||
// @cmember Array di <c TRelationdef>
|
||||
// @cmember:(INTERNAL) Array di <c TRelationdef>
|
||||
TArray _reldefs;
|
||||
// @cmember Codice dell'ultimo errore occorso
|
||||
// @cmember:(INTERNAL) Codice dell'ultimo errore occorso
|
||||
int _errors;
|
||||
|
||||
// @access Protected Member
|
||||
@ -215,6 +210,8 @@ public:
|
||||
// TRecord_Array
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TRecord_array | Classe per la gestione di un array di record
|
||||
//
|
||||
// @base public | TArray
|
||||
@ -222,13 +219,13 @@ class TRecord_array : private TArray
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Numero logico del file principale
|
||||
// @cmember:(INTERNAL) Numero logico del file principale
|
||||
int _file;
|
||||
// @cmember Offset iniziale del record array
|
||||
// @cmember:(INTERNAL) Offset iniziale del record array
|
||||
int _offset;
|
||||
// @cmember Nome del campo col numero di riga
|
||||
// @cmember:(INTERNAL) Nome del campo col numero di riga
|
||||
TString16 _num;
|
||||
|
||||
// @access Protected Member
|
||||
@ -319,52 +316,56 @@ public:
|
||||
|
||||
class TExpression;
|
||||
|
||||
// @type FILTERFUNCTION | Controlla se il record debba essere incluso nel cursore
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type FILTERFUNCTION | Prototipo funzione che controlla se il record debba essere incluso nel cursore
|
||||
typedef bool (*FILTERFUNCTION)(const TRelation* r);
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TCursor | Classe per la definizione di un cursore su di una relazione
|
||||
//
|
||||
// @base public | TContainer
|
||||
class TCursor : public TContainer
|
||||
|
||||
// @author(:INTERNAL) Villa
|
||||
// @author:(INTERNAL) Villa
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Relazione su cui costruire il cursore
|
||||
// @cmember:(INTERNAL) Relazione su cui costruire il cursore
|
||||
TRelation* _if;
|
||||
// @cmember Chiave del file principale
|
||||
// @cmember:(INTERNAL) Chiave del file principale
|
||||
int _nkey;
|
||||
// @cmember Posizione corrente
|
||||
// @cmember:(INTERNAL) Posizione corrente
|
||||
TRecnotype _pos;
|
||||
// @cmember Numero totale di record che verificano il filtro
|
||||
// @cmember:(INTERNAL) Numero totale di record che verificano il filtro
|
||||
TRecnotype _totrec;
|
||||
// @cmember Numero dell'ultimo record
|
||||
// @cmember:(INTERNAL) Numero dell'ultimo record
|
||||
TRecnotype _lastrec;
|
||||
// @cmember Chiave dell'ultimo record
|
||||
// @cmember:(INTERNAL) Chiave dell'ultimo record
|
||||
TRecnotype _lastkrec;
|
||||
// @cmember Nome assoluto del file principale
|
||||
// @cmember:(INTERNAL) Nome assoluto del file principale
|
||||
TFilename _filename;
|
||||
// @cmember Filtro definito con la <mf TCursor::set_filter>
|
||||
// @cmember:(INTERNAL) Filtro definito con la <mf TCursor::set_filter>
|
||||
TString _filter;
|
||||
// @cmember Nome della chive iniziale
|
||||
// @cmember:(INTERNAL) Nome della chive iniziale
|
||||
TString _keyfrom;
|
||||
// @cmember Nome della chiave finale
|
||||
// @cmember:(INTERNAL) Nome della chiave finale
|
||||
TString _keyto;
|
||||
// @cmember Espressione del filtro relativo
|
||||
// @cmember:(INTERNAL) Espressione del filtro relativo
|
||||
TExpression* _fexpr;
|
||||
// @cmember Indica se e' stata messa in attesa (non puo' essere modificato)
|
||||
// @cmember:(INTERNAL) Indica se e' stata messa in attesa (non puo' essere modificato)
|
||||
bool _frozen;
|
||||
// @cmember Flag che permette l'update della relazione per l'espressione-filtro
|
||||
// @cmember:(INTERNAL) Flag che permette l'update della relazione per l'espressione-filtro
|
||||
bool _filter_update;
|
||||
// @cmember Flag che permette l'update della relazione per la funzione-filtro
|
||||
// @cmember:(INTERNAL) Flag che permette l'update della relazione per la funzione-filtro
|
||||
bool _filterfunction_update;
|
||||
// @cmember Funzione filtro
|
||||
// @cmember:(INTERNAL) Funzione filtro
|
||||
FILTERFUNCTION _filterfunction;
|
||||
// @cmember Nome del file indice
|
||||
// @cmember:(INTERNAL) Nome del file indice
|
||||
TFilename _indexname;
|
||||
|
||||
// @cmember Crea (o aggiorna) effettivamente l'indice del cursore
|
||||
// @cmember:(INTERNAL) Crea (o aggiorna) effettivamente l'indice del cursore
|
||||
TRecnotype update();
|
||||
|
||||
// @access Protected Member
|
||||
@ -515,10 +516,12 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TSorted_cursor | Costruisce e gestisce un cursore ordinato per chiavi diverse da quelle specificate nel file.
|
||||
class TSorted_cursor : public TCursor
|
||||
|
||||
// @author(:INTERNAL) Angelo
|
||||
// @author:(INTERNAL) Angelo
|
||||
|
||||
// @comm Il formato dell'espressione deve essere: [LF->]FIELDNAME[[from,to]][+<pipe>-]... Inoltre tutta l'espressione puo' essere racchiusa
|
||||
// dall'operatore UPPER(), per controlli non case-sensitive.
|
||||
@ -529,20 +532,20 @@ class TSorted_cursor : public TCursor
|
||||
// file principale della relazione.
|
||||
// <nl>Es. "CODCF-<pipe>TIPOCF<pipe>SOTTOCONTO+<pipe>UPPER(20->RAGSOC[1,40]-)"
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Espressione per l'ordinamento
|
||||
// @cmember:(INTERNAL) Espressione per l'ordinamento
|
||||
TToken_string _order_expr;
|
||||
// @cmember Puntatore all'oggetto per ordinare il cursore (vedi <c TSort>)
|
||||
// @cmember:(INTERNAL) Puntatore all'oggetto per ordinare il cursore (vedi <c TSort>)
|
||||
TSort* _sort;
|
||||
// @cmember Indica se l'espressione e' cambiata
|
||||
// @cmember:(INTERNAL) Indica se l'espressione e' cambiata
|
||||
bool _is_changed_expr;
|
||||
// @cmember Indica se l'espressione e' valida
|
||||
// @cmember:(INTERNAL) Indica se l'espressione e' valida
|
||||
bool _is_valid_expr;
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
// @cmember Controlla il formato della singola espressione di un campo di sort
|
||||
// @cmember Controlla la validita' dell'espressione
|
||||
bool check_expr(TString& s);
|
||||
// @cmember Controlla se la singola espressione contiene l'operatore UPPER(), ritornandone l'argomento
|
||||
bool is_upper(TString& s);
|
||||
@ -566,26 +569,26 @@ public:
|
||||
virtual ~TSorted_cursor();
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TFieldref | Classe per la definizione di riferimenti ad un campo di una relazione
|
||||
//
|
||||
// @base public | TObject
|
||||
class TFieldref : public TObject
|
||||
|
||||
// @author(:INTERNAL) Guido
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Numero del file
|
||||
// @cmember:(INTERNAL) Numero del file
|
||||
short _fileid;
|
||||
// @cmember Nome tabella o stringa col numero del file
|
||||
// @cmember:(INTERNAL) Nome tabella o stringa col numero del file
|
||||
TString _id;
|
||||
// @cmember Nome del campo
|
||||
// @cmember:(INTERNAL) Nome del campo
|
||||
TString _name;
|
||||
// @cmember Sottostringa di partenza
|
||||
// @cmember:(INTERNAL) Sottostringa di partenza
|
||||
int _from;
|
||||
// @cmember Sottostringa di arrivo
|
||||
// @cmember:(INTERNAL) Sottostringa di arrivo
|
||||
int _to;
|
||||
|
||||
// @access Protected Member
|
||||
@ -646,30 +649,32 @@ public:
|
||||
|
||||
int name2log(const char* name);
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TRelation_description | Gestisce l'uso interattivo di una relazione (scelta campi, descrizione)
|
||||
//
|
||||
// @base public | TObject
|
||||
class TRelation_description : public TObject
|
||||
|
||||
// @author(:INTERNAL) Guido
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Relazione descritta
|
||||
// @cmember:(INTERNAL) Relazione descritta
|
||||
TRelation* _rel;
|
||||
// @cmember Nome dei files della relazione
|
||||
// @cmember:(INTERNAL) Nome dei files della relazione
|
||||
TString_array _files;
|
||||
// @cmember Array di campi
|
||||
// @cmember:(INTERNAL) Array di campi
|
||||
TArray _fields;
|
||||
// @cmember Numero logico del file corrente
|
||||
// @cmember:(INTERNAL) Numero logico del file corrente
|
||||
int _cur_file;
|
||||
// @cmember Numero del campo corrente
|
||||
// @cmember:(INTERNAL) Numero del campo corrente
|
||||
int _cur_field;
|
||||
// @cmember UNUSED
|
||||
// @cmember:(INTERNAL) UNUSED
|
||||
bool _menu;
|
||||
// @cmember File corrente
|
||||
// @cmember:(INTERNAL) File corrente
|
||||
TToken_string _cfile;
|
||||
// @cmember Campo corrente
|
||||
// @cmember:(INTERNAL) Campo corrente
|
||||
TToken_string _cfield;
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -4,8 +4,6 @@
|
||||
|
||||
#include <scanner.h>
|
||||
|
||||
//@doc EXTERNAL
|
||||
|
||||
HIDDEN const char* strlwr (const char* str)
|
||||
{
|
||||
for (char* s = __tmp_string; *str; s++, str++) *s = tolower(*str);
|
||||
@ -48,7 +46,11 @@ const TString& TScanner::pop()
|
||||
return _token;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la linea letta dal file
|
||||
//
|
||||
// @rdesc Ritorna una stringa contenente la linea letta dal file
|
||||
TString& TScanner::line(
|
||||
char eol) //@parm Carattere fino al quale leggere la riga (default EOL)
|
||||
{
|
||||
|
@ -21,16 +21,17 @@
|
||||
class TScanner : private ifstream
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Private Member
|
||||
// @cmember Prossimo teoken
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember:(INTERNAL) Prossimo teoken
|
||||
TString _token;
|
||||
// @cmember Chiave del token (prime due lettere)
|
||||
// @cmember:(INTERNAL) Chiave del token (prime due lettere)
|
||||
TString _key;
|
||||
// @cmember Buffer utilizzato per la lettura della riga da file
|
||||
// @cmember:(INTERNAL) Buffer utilizzato per la lettura della riga da file
|
||||
TString _buffer;
|
||||
// @cmember Indica se il token e' stato ritornato al file
|
||||
// @cmember:(INTERNAL) Indica se il token e' stato ritornato al file
|
||||
bool _pushed;
|
||||
// @cmember Numero della linea in corso di lettura
|
||||
// @cmember:(INTERNAL) Numero della linea in corso di lettura
|
||||
word _line;
|
||||
|
||||
// @access Public Member
|
||||
|
@ -11,8 +11,6 @@
|
||||
// TSheet
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
TSheet::TSheet(short x, short y, short dx, short dy,
|
||||
const char* title, const char* head, byte buttons,
|
||||
long first, WINDOW parent)
|
||||
@ -91,6 +89,8 @@ TSheet::TSheet(short x, short y, short dx, short dy,
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Aggiunge un bottone nella finestra
|
||||
void TSheet::add_button(
|
||||
short id, // @parm Identificatore del bottone da aggiungere
|
||||
@ -168,6 +168,7 @@ void TSheet::set_row(const TToken_string& r, byte i)
|
||||
_page.add(r, i);
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Crea la pagina
|
||||
void TSheet::build_page(
|
||||
@ -282,6 +283,7 @@ void TSheet::handler(WINDOW win, EVENT* ep)
|
||||
TScroll_window::handler(win, ep);
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Converte le coordinate da logiche (caratteri) in coordinate fisiche (pixel)
|
||||
// (vedi <mf TWindow::log2dev>)
|
||||
@ -369,6 +371,7 @@ bool TSheet::on_key(KEY key)
|
||||
return TScroll_window::on_key(key);
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Abilita/disabilita una riga
|
||||
void TSheet::enable(
|
||||
@ -394,6 +397,8 @@ void TSheet::enable(
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Seleziona una riga facendola diventare corrente
|
||||
void TSheet::select(
|
||||
long n) // @parm Riga da selezionare (default -1)
|
||||
@ -418,6 +423,7 @@ void TSheet::select(
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Permette di attivare/disattivare una riga
|
||||
void TSheet::check(
|
||||
@ -504,6 +510,8 @@ void TSheet::invert_row(long n)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Forza il ridisegno di una riga.
|
||||
//
|
||||
// @rdesc Ritorna se e' riuscito a fare il ridisegno (cioe' se la riga era visibile)
|
||||
@ -577,6 +585,8 @@ bool TSheet::update_row(
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Ritorna il contenuto di una riga
|
||||
//
|
||||
// @rdesc Ritorna la <c TToken_string> con tutti gli elemnti della riga
|
||||
@ -703,6 +713,8 @@ bool TArray_sheet::destroy(int i)
|
||||
return _data.destroy(i, TRUE);
|
||||
}
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Copia le righe nella pagina da visualizzare
|
||||
void TArray_sheet::page_build(
|
||||
long first, // @parm Prima riga da visualizzare
|
||||
@ -712,6 +724,8 @@ void TArray_sheet::page_build(
|
||||
set_row(data(first+i), i);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge un elemento allo sheet
|
||||
//
|
||||
// @rdesc Ritorna il numero di elemnti presenti nello sheet
|
||||
|
@ -18,7 +18,7 @@ class TEdit_field;
|
||||
#endif
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TSheet | Classe per la definizione e la gestione degli sheet per le ricerche
|
||||
//
|
||||
@ -27,44 +27,44 @@ class TSheet : public TScroll_window
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Privete Member
|
||||
// @access:(INTERNAL) Privete Member
|
||||
{
|
||||
// @ccost MAX_BUT | 8 | Numero massimo di bottoni
|
||||
// @ccost:(INTERNAL) MAX_BUT | 8 | Numero massimo di bottoni
|
||||
enum { MAX_BUT = 8,
|
||||
// @ccost MAX_COL | 128 | Numero massimo di colonne
|
||||
// @ccost:(INTERNAL) MAX_COL | 128 | Numero massimo di colonne
|
||||
MAX_COL = 128 };
|
||||
|
||||
// @cmember Array di stringhe con il contenuto dello sheet
|
||||
// @cmember:(INTERNAL) Array di stringhe con il contenuto dello sheet
|
||||
TString_array _page;
|
||||
|
||||
// @cmember Numero di colonne dello sheet
|
||||
// @cmember:(INTERNAL) Numero di colonne dello sheet
|
||||
byte _columns;
|
||||
// @cmember Dimensione di ogni colonna
|
||||
// @cmember:(INTERNAL) Dimensione di ogni colonna
|
||||
byte _size[MAX_COL];
|
||||
// @cmember Tipo di ogni colonne
|
||||
// @cmember:(INTERNAL) Tipo di ogni colonne
|
||||
byte _type[MAX_COL];
|
||||
// @cmember Riga corrente
|
||||
// @cmember:(INTERNAL) Riga corrente
|
||||
long _curr;
|
||||
// @cmember Indice della prima riga visibile
|
||||
// @cmember:(INTERNAL) Indice della prima riga visibile
|
||||
long _last_update;
|
||||
|
||||
// @cmember Numero di righe visibili
|
||||
// @cmember:(INTERNAL) Numero di righe visibili
|
||||
short _visible_rows;
|
||||
|
||||
// @cmember Indica se e' possibile inserire un check (X di selezione) sulle righe sheet
|
||||
// @cmember:(INTERNAL) Indica se e' possibile inserire un check (X di selezione) sulle righe sheet
|
||||
bool _checkable;
|
||||
// @cmember Indica se e attivata la gestione dei check delle righe
|
||||
// @cmember:(INTERNAL) Indica se e attivata la gestione dei check delle righe
|
||||
bool _check_enabled;
|
||||
// @cmember Array di righe attivate
|
||||
// @cmember:(INTERNAL) Array di righe attivate
|
||||
TBit_array _checked;
|
||||
// @cmember Array di righe disabilitate
|
||||
// @cmember:(INTERNAL) Array di righe disabilitate
|
||||
TBit_array _disabled;
|
||||
|
||||
// @cmember Handles dei bottoni presenti nella finestra
|
||||
// @cmember:(INTERNAL) Handles dei bottoni presenti nella finestra
|
||||
WINDOW _button[MAX_BUT];
|
||||
// @cmember Tasto associato ad ogni bottone
|
||||
// @cmember:(INTERNAL) Tasto associato ad ogni bottone
|
||||
KEY _key[MAX_BUT];
|
||||
// @cmember Maschera di bit corrispondente ai bottoni standard
|
||||
// @cmember:(INTERNAL) Maschera di bit corrispondente ai bottoni standard
|
||||
byte _buttonmask;
|
||||
|
||||
// @access Protected Member
|
||||
@ -191,6 +191,8 @@ public:
|
||||
{ return _checked.ones(); }
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TArray_sheet | Classe per la gestione degli sheet i cui dati sono
|
||||
// forniti da un array di stringhe
|
||||
//
|
||||
@ -198,9 +200,9 @@ public:
|
||||
class TArray_sheet : public TSheet
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Contenuto dell'array di cui costruire lo sheet
|
||||
// @cmember:(INTERNAL) Contenuto dell'array di cui costruire lo sheet
|
||||
TString_array _data;
|
||||
|
||||
// @access Protected Member
|
||||
@ -235,6 +237,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TCursor_sheet | Classe per la gestione di uno sheet i cui dati
|
||||
// sono prelevati da un <c TCursor>
|
||||
//
|
||||
@ -242,14 +246,14 @@ public:
|
||||
class TCursor_sheet : public TSheet
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Array di <c TRecfield>
|
||||
// @cmember:(INTERNAL) Array di <c TRecfield>
|
||||
TArray _fields;
|
||||
// @cmember Numero del records collegato al cursore
|
||||
// @cmember:(INTERNAL) Numero del records collegato al cursore
|
||||
long _records;
|
||||
|
||||
// @cmember Cursore da cui prelevare i dati
|
||||
// @cmember:(INTERNAL) Cursore da cui prelevare i dati
|
||||
TCursor* _cursor;
|
||||
|
||||
// @access Protected Member
|
||||
@ -279,6 +283,7 @@ public:
|
||||
{}
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TBrowse_sheet | Classe per la gestione degli sheet legati ad un
|
||||
// cursore del campo della maschera
|
||||
@ -287,11 +292,11 @@ public:
|
||||
class TBrowse_sheet : public TCursor_sheet
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Campi collegati ai campi editabili (vedi <c TEdit_field>)
|
||||
// @cmember:(INTERNAL) Campi collegati ai campi editabili (vedi <c TEdit_field>)
|
||||
TEdit_field* const _field;
|
||||
// @cmember Riga selezionata
|
||||
// @cmember:(INTERNAL) Riga selezionata
|
||||
int _sel;
|
||||
|
||||
// @access Protected Member
|
||||
@ -315,7 +320,7 @@ public:
|
||||
// @cmember Distruttore
|
||||
virtual ~TBrowse_sheet()
|
||||
{}
|
||||
// @cmember ???
|
||||
// @cmember Esegue la finestra. Ritorna il tasto premuto nella finestra
|
||||
virtual KEY run();
|
||||
};
|
||||
|
||||
|
@ -11,16 +11,16 @@
|
||||
//
|
||||
// @base public | TObject
|
||||
class TSort : public TObject
|
||||
// @author:(INTERNAL) Alex
|
||||
// @author:(INTERNAL) Sandro
|
||||
{
|
||||
// @friend TRecfield
|
||||
friend class TRecfield;
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Puntatore alla struttura di un sort
|
||||
// @cmember:(INTERNAL) Puntatore alla struttura di un sort
|
||||
struct s_prm* _sortvar;
|
||||
// @cmember Indice nella tabella dei campi della chiave
|
||||
// @cmember:(INTERNAL) Indice nella tabella dei campi della chiave
|
||||
int nsortkey;
|
||||
|
||||
// @access Public Member
|
||||
|
@ -12,11 +12,11 @@
|
||||
// @base public | TArray
|
||||
class TStack : private TArray
|
||||
|
||||
// @author:(INTERNAL) ???
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Puntatore alla cima dello stack
|
||||
// @cmember:(INTERNAL) Puntatore alla cima dello stack
|
||||
int _sp;
|
||||
|
||||
// @access Public Member
|
||||
|
@ -23,12 +23,14 @@
|
||||
extern isfdptr *openf;
|
||||
HIDDEN long _stdlevel = 0;
|
||||
|
||||
// @doc EXTERNAL
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Ritorna il livello degli archivi
|
||||
long get_std_level()
|
||||
{ return _stdlevel; }
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Ritorna il numero di serie della chiave
|
||||
//
|
||||
// @rdesc Numero di serie della chiave
|
||||
@ -42,6 +44,8 @@ int get_serial_number()
|
||||
return getser();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Inizilizza le variabili globali
|
||||
void init_global_vars()
|
||||
{
|
||||
@ -76,6 +80,7 @@ void init_global_vars()
|
||||
#endif
|
||||
DB_init();
|
||||
}
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Dealloca le variabili globali
|
||||
void free_global_vars()
|
||||
@ -99,6 +104,8 @@ void free_global_vars()
|
||||
unsigned long _alloc_count = 0;
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Operatore per la creazione di un oggetto (sostituisce operatore C++)
|
||||
//
|
||||
// @rdesc Ritorna il puntatore all'oggetto creato
|
||||
@ -119,6 +126,7 @@ void* operator new(size_t size)
|
||||
|
||||
return mem;
|
||||
}
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Operatore per la distruzione di un oggetto (sostituisce operatore C++)
|
||||
void operator delete(
|
||||
|
@ -7,8 +7,6 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
#define pure =0
|
||||
|
||||
#define FALSE 0
|
||||
@ -19,17 +17,24 @@
|
||||
#define EOL -1
|
||||
#define NOERR 0
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type UINT8 | Altro nome di assegnazione per gli unsigned char
|
||||
typedef unsigned char UINT8;
|
||||
#ifdef M_I386
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type UINT16 | Altro nome di assegnazione per gli unsigned short (se compilato a 32bit)
|
||||
// oppure unsigned int (se non definito M_I386)
|
||||
typedef unsigned short UINT16;
|
||||
#else
|
||||
typedef unsigned int UINT16;
|
||||
#endif
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type UINT32 | Altro nome di assegnazione per gli unsigned long
|
||||
typedef unsigned long UINT32;
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type INT8 | Altro nome di assegnazione per i char
|
||||
typedef char INT8;
|
||||
@ -40,18 +45,28 @@ typedef short INT16;
|
||||
#else
|
||||
typedef int INT16;
|
||||
#endif
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type INT32 | Altro nome di assegnazione per i long
|
||||
typedef long INT32;
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type bool | Tipo booleano che puo' assumere i valori TRUE (definito come 1)
|
||||
// e FALSE (definito come 0).
|
||||
typedef UINT8 bool;
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type word | Tipo per la definizione di tipi di lunghezza pari a due byte
|
||||
typedef UINT16 word;
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type dword | Tipo per la definizione di tipi di lunghezza pari a quattro byte
|
||||
typedef UINT32 dword;
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type byte | Tipo per la definizione di tipi di lunghezza pari ad un byte
|
||||
typedef UINT8 byte;
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @type KEY | Tipo per la definizione di variabili destinati a contenere i caratteri
|
||||
// immessi da tastiera
|
||||
|
@ -85,7 +85,7 @@ void TString::resize(
|
||||
}
|
||||
|
||||
// Certified 99% (uses resize)
|
||||
// @doc INTERNAL
|
||||
// @doc EXTERNAL
|
||||
//
|
||||
// @mfunc Inizializza con la stringa puntata da char* di lunghezza size
|
||||
// (usa <mf TString::resize>)
|
||||
@ -101,6 +101,7 @@ TString& TString::set(
|
||||
|
||||
return *this;
|
||||
}
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Espande la stringa per altri caratteri
|
||||
int TString::make_room(
|
||||
@ -118,8 +119,6 @@ int TString::make_room(
|
||||
return lun;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
TString::TString(const char* s) : _str(NULL), _size(0)
|
||||
{ set(s); }
|
||||
|
||||
@ -195,6 +194,8 @@ TString& TString::operator <<(const TString& str)
|
||||
{ return operator <<(str._str); }
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Elimina tutti i caratteri contenuti in <p k>
|
||||
TString& TString::strip(
|
||||
const char* k) // @parm Stringa da controllarne l'esitenza nell'oggetto
|
||||
@ -266,6 +267,8 @@ const char* TString::class_name() const
|
||||
word TString::class_id() const
|
||||
{ return CLASS_STRING; }
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Duplica una stringa
|
||||
TObject* TString::dup() const
|
||||
|
||||
@ -292,6 +295,8 @@ void TString::print_on(ostream& out) const
|
||||
|
||||
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la posizione del carattere o della stringa nell'oggetto TString
|
||||
//
|
||||
// @rdesc Ritorna i seguneti parametri:
|
||||
@ -340,6 +345,8 @@ int TString::find(const char* s, int from) const
|
||||
|
||||
|
||||
// Certified 99%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna l'oggetto TString composto dai <p count> caratteri da sinistra
|
||||
const TString& TString::left(
|
||||
int count) const // @parm Indica fino quale carattere restituire la stringa
|
||||
@ -351,6 +358,8 @@ const TString& TString::left(
|
||||
}
|
||||
|
||||
// Certified 99%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna l'oggetto TString composto dai <p count> caratteri da destra
|
||||
const TString& TString::right(
|
||||
int count) const // @parm Indica da quale carattere restituire la stringa
|
||||
@ -365,6 +374,8 @@ const TString& TString::right(
|
||||
|
||||
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna l'oggetto TString composto dai <p count> caratteri a partire
|
||||
// da <p from>
|
||||
const TString& TString::mid(
|
||||
@ -392,6 +403,8 @@ const TString& TString::mid(
|
||||
|
||||
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la stringa da <p from> a <p to> (escluso)
|
||||
const TString& TString::sub(
|
||||
int from, // @parm Posizione dalla quale estrarre la stringa
|
||||
@ -417,6 +430,7 @@ TString& TString::cut(int n)
|
||||
return *this;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Elimina gli spazi da sinistra o i primi n caratteri (da sinistra).
|
||||
TString& TString::ltrim(
|
||||
@ -443,6 +457,8 @@ TString& TString::ltrim(
|
||||
return *this;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Elimina gli spazi da destra o i primi n caratteri (da destra).
|
||||
TString& TString::rtrim(
|
||||
int count) // @parm Indica il numero di caratteri da eliminare.
|
||||
@ -494,6 +510,8 @@ TString& TString::trim()
|
||||
}
|
||||
|
||||
// Certified 50%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Compara due stringhe (o i primi <p max> caratteri)
|
||||
//
|
||||
// @rdesc Ritrna i seguenti valori:
|
||||
@ -526,7 +544,11 @@ int TString::compare(
|
||||
}
|
||||
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Riempe la stringa con n caratteri c
|
||||
//
|
||||
// @rdesc Ritorna l'indirizzo dell stringa
|
||||
TString& TString::fill(
|
||||
char c, // @parm Caratteri con cui riempire la stringa
|
||||
int n) // @parm Numero di caratteri da inserire nella stringa
|
||||
@ -536,8 +558,7 @@ TString& TString::fill(
|
||||
// stessa viene ridimensionata (chaimata alla <mf TString::resize>).
|
||||
// <nl>Nel caso non venga passato il parametro <p n> la stringa viene
|
||||
// riempita col carattere <p c> per tutta la lunghezza.
|
||||
//
|
||||
// @rdesc Ritorna l'indirizzo dell stringa
|
||||
|
||||
{
|
||||
if (n < 0) n = size(); else
|
||||
if (n > size()) resize(n, FALSE);
|
||||
@ -546,7 +567,9 @@ TString& TString::fill(
|
||||
return *this;
|
||||
}
|
||||
|
||||
// Certified 100%
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Giustifica l'oggetto stringa a destra
|
||||
TString& TString::right_just(
|
||||
int n, // @parm Numero di colonne alla quali allineare (defualt larghezza della stringa)
|
||||
@ -566,7 +589,9 @@ TString& TString::right_just(
|
||||
return *this;
|
||||
}
|
||||
|
||||
// Certified 100%
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Centra l'oggetto stringa
|
||||
TString& TString::center_just(
|
||||
int n, // @parm Numero di colonne alla quali allineare (defualt larghezza della stringa)
|
||||
@ -587,7 +612,9 @@ TString& TString::center_just(
|
||||
return *this;
|
||||
}
|
||||
|
||||
// Certified 100%
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Giustifica l'oggetto stringa a sinistra
|
||||
TString& TString::left_just(
|
||||
int n, // @parm Numero di colonne alla quali allineare (defualt larghezza della stringa)
|
||||
@ -607,6 +634,8 @@ TString& TString::left_just(
|
||||
return *this;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Formatta una stringa usando il formato dato da <p pic>
|
||||
TString& TString::picture(
|
||||
const char* pic, // @parm Formato della stringa
|
||||
@ -631,6 +660,8 @@ TString& TString::picture(
|
||||
}
|
||||
|
||||
// Certified 90% (spark size limited)
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Manda un output formattato alla stringa oggetto
|
||||
TString& TString::format(
|
||||
const char* fmt, // @parm Stringa da formattare
|
||||
@ -665,7 +696,9 @@ TString& TString::lower()
|
||||
return *this;
|
||||
}
|
||||
|
||||
// Certified 50%
|
||||
// Certified 50%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di ttrovare il plurale di una stringa
|
||||
TString& TString::add_plural(
|
||||
long num, // @parm Numero di elementi per sapere la desineneza
|
||||
@ -697,6 +730,8 @@ TString& TString::add_plural(
|
||||
}
|
||||
|
||||
// Certified 90%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Sovrascrive la stringa <p s> dalla posizione <p pos>
|
||||
TString& TString::overwrite(
|
||||
const char* s, // @parm Stringa da inserire
|
||||
@ -722,7 +757,9 @@ TString& TString::overwrite(
|
||||
}
|
||||
|
||||
|
||||
// Certified 90%
|
||||
// Certified 90%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Inserisce la stringa s dalla posizione pos
|
||||
TString& TString::insert(
|
||||
const char* s, // @parm Stringa da inserire
|
||||
@ -793,6 +830,8 @@ void TFixed_string::strncpy(const char* s, int n)
|
||||
}
|
||||
|
||||
// Certified 99%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Manda un output formattato alla stringa oggetto
|
||||
TString& TFixed_string::format(
|
||||
const char* fmt, // @parm Formato della stringa
|
||||
@ -872,6 +911,9 @@ TFilename& TFilename::add(const char* n)
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Controlla il formato del nome del file
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -975,6 +1017,8 @@ const TFilename& TFilename::tempdir()
|
||||
}
|
||||
|
||||
// Certified 50%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Genera il nome di un file temporaneo
|
||||
const TFilename& TFilename::temp(
|
||||
const char* prefix) // @parm Eventuale prefisso da assegnare al file temporaneo
|
||||
@ -1088,6 +1132,8 @@ const char* TToken_string::get()
|
||||
}
|
||||
|
||||
// Certified 50%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna un Token
|
||||
//
|
||||
// @rdesc Ritorne la stringa identificata dal Token passato come parametro <p n>
|
||||
@ -1145,6 +1191,8 @@ const char* TToken_string::get(
|
||||
|
||||
|
||||
// Certified 99%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna un carattere
|
||||
//
|
||||
// @rdesc Ritorna il primo carattere del Token richiesto
|
||||
@ -1237,6 +1285,8 @@ int TToken_string::items() const
|
||||
}
|
||||
|
||||
// Certified 99%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge un elemento alla token string
|
||||
void TToken_string::add(
|
||||
const char* s, // @parm Stringa da aggiungere
|
||||
@ -1375,6 +1425,8 @@ int TString_array::add(const TToken_string& s, int n)
|
||||
return n;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Cerca una stringa nell'array
|
||||
//
|
||||
// @rdesc Ritorna la posizione nell'array in cui si trova la stringa (-1 se non
|
||||
|
@ -20,6 +20,7 @@
|
||||
//
|
||||
// @base public | TObject
|
||||
class TString : public TObject
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Protected Member
|
||||
protected:
|
||||
@ -238,11 +239,14 @@ public:
|
||||
int compare(const char* s, int max = -1, bool ignorecase = FALSE) const;
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TFixed_string | Classe per la definizione di stringhe di lunghezza
|
||||
// fissa e non rilocabili dinamicamente
|
||||
//
|
||||
// @base public | TString
|
||||
class TFixed_string : public TString
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
|
||||
// @access Protected Member
|
||||
@ -273,14 +277,17 @@ public:
|
||||
void strncpy(const char* s, int n);
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TString16 | Definisce le stringhe di 16 caratteri
|
||||
//
|
||||
// @base public | TFixed_string
|
||||
class TString16 : public TFixed_string
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Private member
|
||||
// @access:(INTERNAL) Private member
|
||||
|
||||
// @cmember Stringa di 16 caratteri
|
||||
// @cmember:(INTERNAL) Stringa di 16 caratteri
|
||||
char _str16[17];
|
||||
|
||||
// @access Public Member
|
||||
@ -303,10 +310,14 @@ public:
|
||||
// gli stessi, la differenza e' solo nel numero di caratteri della stringa.
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TString80 | Definisce le stringhe di 80 caratteri
|
||||
//
|
||||
// @base public | TFixed_string
|
||||
//
|
||||
// @author:(INTERNAL) Guido
|
||||
//
|
||||
// @comm Questa classe e' identica alla <c TString16> per quanto riguarda i public member e quindi
|
||||
// si rimanda a tale classe per ulteriori spiegazioni.
|
||||
class TString80 : public TFixed_string
|
||||
@ -320,10 +331,14 @@ public:
|
||||
const TString& operator =(const TString& s) { return set((const char*)s); }
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TString256 | Definisce le stringhe di 256 caratteri
|
||||
//
|
||||
// @base public | TFixed_string
|
||||
//
|
||||
// @author:(INTERNAL) Guido
|
||||
//
|
||||
// @comm Questa classe e' identica alla <c TString16> per quanto riguarda i public member e quindi
|
||||
// si rimanda a tale classe per ulteriori spiegazioni.
|
||||
class TString256 : public TFixed_string
|
||||
@ -337,10 +352,14 @@ public:
|
||||
const TString& operator =(const TString& s) { return set((const char*)s); }
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TFilename | Classe per la gestione dei nome dei file
|
||||
//
|
||||
// @base public | TString80
|
||||
class TFilename : public TString80
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
{
|
||||
|
||||
// @comm Nel caso di utilizzo di Windows 95 occorre cambiare le classe base in <c TString256>
|
||||
@ -385,18 +404,22 @@ public:
|
||||
const TFilename& tempdir();
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TToken_string | Contiene una stringa formata da piu' stringhe
|
||||
// separate da un carattere (di solito il pipe)
|
||||
//
|
||||
// @base public | TString
|
||||
class TToken_string : public TString
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Carattere separatore
|
||||
// @cmember:(INTERNAL) Carattere separatore
|
||||
char _separator;
|
||||
// @cmember Puntatore all'ultimo
|
||||
// @cmember:(INTERNAL) Puntatore all'ultimo
|
||||
int _last;
|
||||
|
||||
// @access Protected Member
|
||||
@ -460,15 +483,18 @@ public:
|
||||
// DES Paragraph
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TParagraph_string | Classe che serve per spezzare le stringhe in paragrafi
|
||||
// lunghi al massimo la lunghezza fissata
|
||||
// lunghi al massimo la lunghezza fissata
|
||||
//
|
||||
// @base public | TToken_string
|
||||
class TParagraph_string : public TToken_string
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Lunghezza massima del paragrafo
|
||||
// @cmember:(INTERNAL) Lunghezza massima del paragrafo
|
||||
int _width;
|
||||
|
||||
// @access Protected Member
|
||||
@ -494,10 +520,13 @@ public:
|
||||
// DES TString_array
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TString_array | Array di stringhe
|
||||
//
|
||||
// @base public | TArray
|
||||
class TString_array : public TArray
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
|
||||
// @access Public Member
|
||||
|
@ -20,13 +20,13 @@ class Tab_application : public TRelation_application
|
||||
|
||||
// @author:(INTERNAL) Nicola
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Maschera corrente dell'applicazione
|
||||
// @cmember:(INTERNAL) Maschera corrente dell'applicazione
|
||||
TMask* _msk;
|
||||
// @cmember Relazione corrente dell'applicazione
|
||||
// @cmember:(INTERNAL) Relazione corrente dell'applicazione
|
||||
TRelation* _rel;
|
||||
// @cmember Nome della tabella da utilizzare
|
||||
// @cmember:(INTERNAL) Nome della tabella da utilizzare
|
||||
TString16 _tabname;
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -12,13 +12,13 @@
|
||||
// @base public | TLocalisamfile
|
||||
class TTable : public TLocalisamfile
|
||||
|
||||
// @author(:INTERNAL) Sandro
|
||||
// @author:(INTERNAL) Sandro
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember Nome della tabella
|
||||
// @cmember:(INTERNAL) Nome della tabella
|
||||
TString16 _tabname;
|
||||
// @cmember Codice della tabella
|
||||
// @cmember:(INTERNAL) Codice della tabella
|
||||
TRecfield _cod;
|
||||
|
||||
// @access Public Member
|
||||
|
@ -5,8 +5,6 @@
|
||||
|
||||
static char TEXT_TMP[257];
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
class _HotSpot : public TObject
|
||||
{
|
||||
public:
|
||||
@ -23,8 +21,9 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di settare gli hot_spot!!!
|
||||
// @mfunc Permette di settare gli hot_spot
|
||||
void TTextfile::set_hotspots (
|
||||
char fg, // @parm Colore di foreground da utilizzare per l'hotspot
|
||||
char bg) // @parm Colore di background da utilizzare per l'hotspot
|
||||
@ -195,6 +194,7 @@ void TTextfile::_read_page (long n)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge il testo formattato
|
||||
void TTextfile::read_line (
|
||||
@ -384,6 +384,8 @@ void TTextfile::read_line (
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la stringa di caratteri senza formattazione
|
||||
//
|
||||
// @rdesc Ritorna la stringa di caratteri ed eventualmente con i campi sostituiti
|
||||
@ -409,9 +411,8 @@ const char *TTextfile::line(
|
||||
return strlen(TEXT_TMP) > (word)pos ? &(TEXT_TMP[pos]) : "";
|
||||
}
|
||||
|
||||
// search and replace (una riga per volta, rispetta i formati)
|
||||
// txt = text to search; pos = int to put the char position in;
|
||||
// from = where to start; down = FALSE == up
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Cerca una stringa di testo all'interno di una riga
|
||||
//
|
||||
// @rdesc Ritorna la posizione in cui e' stato rintracciato il testo. Ritorna -1 se non e' stato
|
||||
@ -442,6 +443,8 @@ long TTextfile::search(
|
||||
return -1l;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Sostituisce un testo all'interno di una riga
|
||||
//
|
||||
// @rdesc Ritorna la posizione in cui e' stato sostituito il testo. Ritorna -1 se non e' stata
|
||||
@ -494,6 +497,8 @@ int TTextfile::replace(
|
||||
return -1;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la stringa di caratteri con la formattazione
|
||||
//
|
||||
// @rdesc La stringa ritornata ha la formattazione (ovvere tutti i @codes, in modo che anche
|
||||
@ -532,6 +537,8 @@ long TTextfile::get_attribute (int pos)
|
||||
return stl;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna lo stile del piece
|
||||
//
|
||||
// @rdesc Ritorna un numero (vedi <t style>) indicante lo stile
|
||||
@ -545,6 +552,8 @@ int TTextfile::get_style (
|
||||
return (int) (x & 0x0000ffff);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il colore di background del piece
|
||||
//
|
||||
// @rdesc Ritorna il codice del colore, NULL se il carattere non esiste
|
||||
@ -560,6 +569,8 @@ char TTextfile::get_background (
|
||||
return (char) (x >> 24);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna il colore di foreground del piece
|
||||
//
|
||||
// @rdesc Ritorna il codice del colore, NULL se il carattere non esiste
|
||||
@ -584,6 +595,8 @@ const char* TTextfile::piece()
|
||||
return strcpy(TEXT_TMP, l);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Ritorna la parola alla posizione indicata
|
||||
//
|
||||
// @rdesc Stringa indicante la parola cercate
|
||||
@ -616,6 +629,8 @@ const char *TTextfile::word_at (
|
||||
return TEXT_TMP;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge una riga al text (con i formati del caso)
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione:
|
||||
@ -701,9 +716,11 @@ void TTextfile::print ()
|
||||
// print
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Scrive il testo (non formattato) su file
|
||||
//
|
||||
// @rdesc Rtirna il risultato dell'operazione di scrittura
|
||||
// @rdesc Ritorna il risultato dell'operazione di scrittura
|
||||
//
|
||||
// @flag TRUE | Se e' riuscito a scrivere il testo
|
||||
// @flag FALSE | Se ha avuto qualche problema nella gestione del file in cui scrivere
|
||||
|
@ -18,7 +18,7 @@
|
||||
#include <relation.h>
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
// @doc INTERNAL
|
||||
|
||||
// @enum direction | Direzioni da seguire nella lettura del file di testo
|
||||
enum direction {
|
||||
@ -26,6 +26,9 @@ enum direction {
|
||||
down, // @emem Direzione verso il basso
|
||||
updown}; // @emem Entrambe le direzioni
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @enum style | Stile del carattere da utilizzare per il disegno del testo
|
||||
enum style {
|
||||
normal = XVT_FS_NONE, // @emem Stile carattere normale
|
||||
@ -34,80 +37,82 @@ enum style {
|
||||
underlined = XVT_FS_UNDERLINE, // @emem Stile carattere sottolineato
|
||||
tabbed = XVT_FS_SCALE }; // @emem Stile carattere scalato
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TTextfile | Classe per la definizione delle procedure di stampa di un testo
|
||||
//
|
||||
// @base public | TObject
|
||||
class TTextfile: public TObject
|
||||
// @author:(INTERNAL) Villa
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @ccost DEFAULT_PAGESIZE | 128 | Dimensione di default della pagina
|
||||
// @ccost:(INTERNAL) DEFAULT_PAGESIZE | 128 | Dimensione di default della pagina
|
||||
enum {DEFAULT_PAGESIZE = 128};
|
||||
|
||||
// @cmember Pagina di testo correntemente in memoria
|
||||
// @cmember:(INTERNAL) Pagina di testo correntemente in memoria
|
||||
TArray _page;
|
||||
// @cmember Un bit per ogni riga, TRUE se ci si e' fatto replace
|
||||
// @cmember:(INTERNAL) Un bit per ogni riga, TRUE se ci si e' fatto replace
|
||||
TBit_array _dirty_lines;
|
||||
// @cmember Inizio della pagina in coordinate testo
|
||||
// @cmember:(INTERNAL) Inizio della pagina in coordinate testo
|
||||
long _page_start;
|
||||
// @cmember Fine della pagina in coordinate testo
|
||||
// @cmember:(INTERNAL) Fine della pagina in coordinate testo
|
||||
long _page_end;
|
||||
// @cmember Numero di righe di <p _page>
|
||||
// @cmember:(INTERNAL) Numero di righe di <p _page>
|
||||
long _page_size;
|
||||
// @cmember Numero totale delle linee di testo
|
||||
// @cmember:(INTERNAL) Numero totale delle linee di testo
|
||||
long _lines;
|
||||
// @cmember Numero della linea corrente
|
||||
// @cmember:(INTERNAL) Numero della linea corrente
|
||||
long _cur_line;
|
||||
// @cmember Nome del file di testo (puo' essere temporaneo)
|
||||
// @cmember:(INTERNAL) Nome del file di testo (puo' essere temporaneo)
|
||||
TFilename _filename;
|
||||
// @cmember Nome del file indice (sempre temporaneo)
|
||||
// @cmember:(INTERNAL) Nome del file indice (sempre temporaneo)
|
||||
TFilename _indname;
|
||||
// @cmember Puntatore al file indice
|
||||
// @cmember:(INTERNAL) Puntatore al file indice
|
||||
FILE* _index;
|
||||
// @cmember Puntatore al file di testo
|
||||
// @cmember:(INTERNAL) Puntatore al file di testo
|
||||
FILE* _instr;
|
||||
// @cmember Direzione ottimale di lettura del file (vedi <t direction>)
|
||||
// @cmember:(INTERNAL) Direzione ottimale di lettura del file (vedi <t direction>)
|
||||
direction _direction;
|
||||
|
||||
// @cmember Piece corrente
|
||||
// @cmember:(INTERNAL) Piece corrente
|
||||
int _item;
|
||||
// @cmember Testo della riga corrente
|
||||
// @cmember:(INTERNAL) Testo della riga corrente
|
||||
TToken_string _line;
|
||||
// @cmember Codifica delllo stile e del colore del carattere
|
||||
// @cmember:(INTERNAL) Codifica delllo stile e del colore del carattere
|
||||
long _styles[256];
|
||||
// @cmember Indica se la piece e' <e style.tabbed>
|
||||
// @cmember:(INTERNAL) Indica se la piece e' <e style.tabbed>
|
||||
bool _tabbed_piece;
|
||||
|
||||
// @cmember Punti ipertestuali come passati da utente (<c TViswin>)
|
||||
// @cmember:(INTERNAL) Punti ipertestuali come passati da utente (<c TViswin>)
|
||||
TArray _hotspots;
|
||||
// @cmember Rappresentazione interna punti ipertestuali
|
||||
// @cmember:(INTERNAL) Rappresentazione interna punti ipertestuali
|
||||
TArray _spots;
|
||||
// @cmember Indice se e' stato modificato
|
||||
// @cmember:(INTERNAL) Indice se e' stato modificato
|
||||
bool _dirty;
|
||||
// @cmember Indica se i file sono aperti
|
||||
// @cmember:(INTERNAL) Indica se i file sono aperti
|
||||
bool _isopen;
|
||||
// @cmember Indica se si tratta di un file temporaneo
|
||||
// @cmember:(INTERNAL) Indica se si tratta di un file temporaneo
|
||||
bool _istemp;
|
||||
// @cmember Indica se e' permessao dare una <mf TTextfile::append>
|
||||
// @cmember:(INTERNAL) Indica se e' permessao dare una <mf TTextfile::append>
|
||||
bool _accept;
|
||||
// @cmember Indica se si sta modificando con <mf TTextfile::add> e si puo' fare <mf TTextfile::replace>
|
||||
// @cmember:(INTERNAL) Indica se si sta modificando con <mf TTextfile::add> e si puo' fare <mf TTextfile::replace>
|
||||
bool _interactive;
|
||||
|
||||
// @cmember Gestisce la sostituzione di campi al posto di tag nel testo
|
||||
// @cmember:(INTERNAL) Gestisce la sostituzione di campi al posto di tag nel testo
|
||||
TRelation* _rel;
|
||||
|
||||
// @cmember Riempe la pagina contenente <p line>, ottimizzando start ed end
|
||||
// @cmember:(INTERNAL) Riempe la pagina contenente <p line>, ottimizzando start ed end
|
||||
void _read_page(long line);
|
||||
// @cmember Ritorna TRUE se la roga <p l> e' nella pagina corrente
|
||||
// @cmember:(INTERNAL) Ritorna TRUE se la roga <p l> e' nella pagina corrente
|
||||
bool _in_page(long l)
|
||||
{ return l >= _page_start && l < _page_end; }
|
||||
// @cmember Salva i replace fatti sul file (anche temporaneo)
|
||||
// @cmember:(INTERNAL) Salva i replace fatti sul file (anche temporaneo)
|
||||
void _save_changes();
|
||||
|
||||
// void _parse_style(long j);
|
||||
|
||||
// @cmember Traduce il tag dello stile passato in <p c> (tag) con uno di <t style> (stile XVT)
|
||||
// @cmember:(INTERNAL) Traduce il tag dello stile passato in <p c> (tag) con uno di <t style> (stile XVT)
|
||||
style _trans_style(char c);
|
||||
|
||||
// @access Public Member
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Permette di rimuovere un file (chiama unlink)
|
||||
@ -33,6 +34,8 @@ int remove(
|
||||
#define __UTILITY_CPP
|
||||
#include <utility.h>
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Permette di copiare un file
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione:
|
||||
@ -88,6 +91,8 @@ bool fcopy(
|
||||
return ok;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Controlla l'esistenza di un file
|
||||
//
|
||||
// @rdesc Ritrona i seguenti valori:
|
||||
@ -100,6 +105,8 @@ bool fexist(
|
||||
return access(file, F_OK) == 0;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Permette di creare una directory
|
||||
//
|
||||
// @rdesc Ritorna il risultato dell'operazione
|
||||
@ -120,6 +127,8 @@ bool make_dir(
|
||||
|
||||
#ifndef FOXPRO
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Ritorna la lista dei file il cui nome corrisponde alla stringa (con caratteri
|
||||
// jolly) passata.
|
||||
//
|
||||
@ -171,6 +180,8 @@ int list_files(
|
||||
#endif
|
||||
|
||||
// Certified 99%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Permette di ritornare una stringa formattata
|
||||
//
|
||||
// @rdesc Ritorna la stringa desiderata
|
||||
@ -191,6 +202,7 @@ char* format(
|
||||
return(__tmp_string);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Converte la coppia nome-parametro in una stringa che identifica il programma
|
||||
//
|
||||
@ -233,6 +245,9 @@ HIDDEN int ctoi(char c)
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Converte una cifra romana in intero normale
|
||||
//
|
||||
// @rdesc Ritorna l'equivalente in numeri della cifra romane
|
||||
@ -254,6 +269,8 @@ int rtoi(
|
||||
return (value == 0) ? tot : -1;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Converte un numero intero nell'equivalente cifra romana
|
||||
//
|
||||
// @rdesc Ritorna una stringa contenente la cifra romana
|
||||
@ -292,6 +309,8 @@ const char* itor(
|
||||
return roman_string;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Permette di codificare i caratteri di escape
|
||||
//
|
||||
// @rdesc Ritorna il carattere codificato
|
||||
@ -363,6 +382,8 @@ const char *esc(
|
||||
|
||||
HIDDEN const char * const key = "QSECOFR-";
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Permette di criptare una parola
|
||||
//
|
||||
// @rdesc Ritorna la stringa criptata
|
||||
@ -377,6 +398,8 @@ const char * encode(
|
||||
return __tmp_string;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Permette di decodificare una stringa criptata
|
||||
//
|
||||
// @rdesc Ritorna la stringa in chiaro
|
||||
@ -393,6 +416,8 @@ const char * decode(
|
||||
|
||||
#if XVT_OS != XVT_OS_WIN
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Permette di confrontare due stringhe ignorando la differenza
|
||||
// tra lettere maiuscole o minuscole
|
||||
//
|
||||
@ -414,6 +439,9 @@ int stricmp(
|
||||
|
||||
|
||||
#ifdef __WATCOMC__
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Costruisce il percorso per un file temporaneo
|
||||
//
|
||||
// @rdesc Ritorna il nome assoluto del file temporaneo
|
||||
|
@ -5,8 +5,6 @@
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
char* format (const char* fmt, ...);
|
||||
const char* cmd2name(const char* argv0, const char* argv1 = "");
|
||||
int rtoi(const char * roman);
|
||||
@ -18,6 +16,9 @@ bool make_dir(const char* file);
|
||||
int list_files(TToken_string& names);
|
||||
const char * encode(const char* data);
|
||||
const char * decode(const char* data);
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Controlla se il carattere passato e' il simbolo di slash ('\\' oppure '/')
|
||||
//
|
||||
// @rdesc Ritorna i seguneti valori:
|
||||
|
@ -12,8 +12,6 @@
|
||||
#include <nditte.h>
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
typedef bool (*VAL_FUNC)(TMask_field&, KEY k);
|
||||
HIDDEN const TArray* _parms;
|
||||
|
||||
@ -67,6 +65,8 @@ HIDDEN bool _emptycopy_val(TMask_field& f, KEY)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Controlla se la Partita IVA assume un valore valido
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
@ -195,6 +195,7 @@ HIDDEN bool __cf_check (const char * codcf)
|
||||
return ok;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Controlla se il Codice Fiscale assume un valore valido
|
||||
//
|
||||
@ -825,6 +826,7 @@ HIDDEN VAL_FUNC _global_val_func[MAX_FUNC] =
|
||||
|
||||
};
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Effettua i controlli sui campi di una maschera
|
||||
//
|
||||
|
@ -13,8 +13,6 @@
|
||||
|
||||
#include <bagn005.h>
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
const char* const PRINT_FONT = XVT_FFN_FIXED;
|
||||
const int PRINT_HEIGHT = 10;
|
||||
|
||||
@ -97,8 +95,14 @@ int TViswin::taby(int y) const
|
||||
return y * CHARY;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
void TViswin::check_menu_item(MENU_TAG item, bool on)
|
||||
// @mfunc Abilita/Disabilita una voce di menu'
|
||||
void TViswin::check_menu_item(
|
||||
MENU_TAG item, // @parm Voce del menu' da abilitare
|
||||
bool on) // @parm Operazione da svolgere sulla voce di menu':
|
||||
// @flag TRUE | Viene abilitata la voce
|
||||
// @flag TRUE | Viene disabilitata la voce
|
||||
{
|
||||
xvt_menu_set_item_checked(win(), item, on);
|
||||
xvt_menu_update(win());
|
||||
@ -292,6 +296,8 @@ void TViswin::display_link (long y, long x1, long x2, const char *d)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Cancella il link
|
||||
void TViswin::erase_link (
|
||||
long y, // @parm Altezza del link da disegnare
|
||||
@ -317,6 +323,7 @@ void TViswin::erase_link (
|
||||
}
|
||||
}
|
||||
}
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Disegna il link
|
||||
void TViswin::paint_link (
|
||||
@ -329,6 +336,8 @@ void TViswin::paint_link (
|
||||
(int)(x2 + (long)X_OFFSET), (int)(y + (long)Y_OFFSET+1l));
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Modifica le dimensione di un box
|
||||
//
|
||||
// @rdesc Ritorna se sono state modificate le dimensioni del box:
|
||||
@ -352,6 +361,8 @@ bool TViswin::adjust_box (
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Controlla se la posizione cursore <p where> cade su un link ipertestuale e si
|
||||
// comporta di conseguenza
|
||||
//
|
||||
@ -470,6 +481,8 @@ bool TViswin::in_text (const TPoint & p) const
|
||||
}
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Indica se occorre ridisegnare la selezione
|
||||
//
|
||||
// @rdesc Ritorna se e' necessario ridipingere la selezione
|
||||
@ -504,6 +517,8 @@ void TViswin::display_selection ()
|
||||
_sel_displayed = TRUE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Riposizona inizio e fine della selezione
|
||||
void TViswin::adjust_selection (
|
||||
TPoint & p1, // @parm Primo punto per il riposizionamento della selezione
|
||||
@ -556,6 +571,8 @@ void TViswin::shift_screen(scroll dir)
|
||||
_scrolling = FALSE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Aggiunge un bottone alla finestra
|
||||
//
|
||||
// @rdesc Ritorna l'handle del bottone aggiunto
|
||||
@ -676,7 +693,9 @@ void TViswin::paint_screen ()
|
||||
}
|
||||
|
||||
|
||||
// j = riga totale, row = riga a video
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Permette di stampare il background
|
||||
void TViswin::paint_background(
|
||||
long j, // @parm Numero della riga di cui stampare il background
|
||||
@ -931,6 +950,8 @@ void TViswin::paint_row (long j)
|
||||
autoscroll (TRUE);
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Disegna una colonna
|
||||
void TViswin::paint_column (
|
||||
long j, // @parm Colonna da disegnare
|
||||
@ -1057,6 +1078,8 @@ void TViswin::erase_point ()
|
||||
_point_displayed = FALSE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Disegna il cursore in xor nello stile del momento
|
||||
void TViswin::paint_point (
|
||||
bool erase) // @parm Indica di cancellare il cursore precedente (default FALSE):
|
||||
@ -1139,6 +1162,8 @@ void TViswin::paint_selection ()
|
||||
}
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Disegna la barra di attesa
|
||||
void TViswin::paint_waitbar (
|
||||
bool xor) // @parm Utilizzato in UNIX. (default TRUE)
|
||||
@ -2253,6 +2278,8 @@ void TViswin::goto_top()
|
||||
goto_pos(0l,0l);;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Sposta la visualizzazione di stampa alla posizione indicata
|
||||
void TViswin::goto_pos(
|
||||
long r, // @parm Riga a cui spostare la visualizzazione di stampa
|
||||
@ -2283,6 +2310,8 @@ void TViswin::refresh()
|
||||
force_update();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Funzione di ricerca non interattiva
|
||||
//
|
||||
// @rdesc Ritorna la riga in cui e' stata trovato il testo (-1 se non e' stato trovato)
|
||||
@ -2299,6 +2328,8 @@ long TViswin::search(
|
||||
return _txt.search(txt,pos,from,down, cs);
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Funzione di sostituzione di un testo all'interno di una riga non interattiva
|
||||
//
|
||||
// @rdesc Ritorna la posizione in cui e' stato sostituito il testo. Ritorna -1 se non e' stata
|
||||
@ -2378,6 +2409,8 @@ void TViswin::show_rulers (bool on)
|
||||
refresh();
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Indica se mostrare o no i bottoni della finestra di anteprima
|
||||
void TViswin::show_buttons(
|
||||
bool on) // @parm Indica l'operazione da svolgere:
|
||||
|
144
include/viswin.h
144
include/viswin.h
@ -15,7 +15,7 @@
|
||||
|
||||
class TBrowsefile_field;
|
||||
|
||||
// @doc EXTERNAL
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TViswin | Classe per la gestione della finestra video di anteprima di stampa
|
||||
//
|
||||
@ -24,158 +24,158 @@ class TViswin : public TScroll_window
|
||||
|
||||
// @author:(INTERNAL) Villa
|
||||
|
||||
// @access Private Member
|
||||
{
|
||||
// @cfriend TBrowsefile_field
|
||||
friend class TBrowsefile_field;
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @ccost MAXBUT | 4 | Numero massimo di bottoni disponibili nella pagina
|
||||
// @ccost:(INTERNAL) MAXBUT | 4 | Numero massimo di bottoni disponibili nella pagina
|
||||
enum { MAXBUT = 4,
|
||||
// @ccost MAXLEN | 256 | Lunghezza massima del modulo di stampa
|
||||
// @ccost:(INTERNAL) MAXLEN | 256 | Lunghezza massima del modulo di stampa
|
||||
MAXLEN = 256,
|
||||
// @ccost BUFFERSIZE | 256 | Dimensione del buffer di stampa
|
||||
// @ccost:(INTERNAL) BUFFERSIZE | 256 | Dimensione del buffer di stampa
|
||||
BUFFERSIZE = 256,
|
||||
// @ccost MAXPIC | 4 | Numero massimo di immagini gestibili nell'anteprima
|
||||
// @ccost:(INTERNAL) MAXPIC | 4 | Numero massimo di immagini gestibili nell'anteprima
|
||||
MAXPIC=4};
|
||||
|
||||
|
||||
enum scroll { none, up, down, left, right };
|
||||
|
||||
// @cmember Nome del file di visualizzazione
|
||||
// @cmember:(INTERNAL) Nome del file di visualizzazione
|
||||
TFilename _filename;
|
||||
// @cmember Indica la presenza del bottone Collega
|
||||
// @cmember:(INTERNAL) Indica la presenza del bottone Collega
|
||||
bool _islink;
|
||||
// @cmember Indica la presenza del bottone Edit
|
||||
// @cmember:(INTERNAL) Indica la presenza del bottone Edit
|
||||
bool _isedit;
|
||||
// @cmember Indica la presenza del bottone Stampa
|
||||
// @cmember:(INTERNAL) Indica la presenza del bottone Stampa
|
||||
bool _isprint;
|
||||
// @cmember Indica se effettuare il disegno della crossbar
|
||||
// @cmember:(INTERNAL) Indica se effettuare il disegno della crossbar
|
||||
bool _iscross;
|
||||
// @cmember Indica se e' in corso la selezione
|
||||
// @cmember:(INTERNAL) Indica se e' in corso la selezione
|
||||
bool _selecting;
|
||||
// @cmember Indica se la selezione e' attiva
|
||||
// @cmember:(INTERNAL) Indica se la selezione e' attiva
|
||||
bool _isselection;
|
||||
// @cmember Indica se disegnare la X-bar al posto del cursore a punto
|
||||
// @cmember:(INTERNAL) Indica se disegnare la X-bar al posto del cursore a punto
|
||||
bool _isbar;
|
||||
// @cmember Indica se in corso lo scrolling
|
||||
// @cmember:(INTERNAL) Indica se in corso lo scrolling
|
||||
bool _scrolling;
|
||||
// @cmember Indica se e' necessario un update completo
|
||||
// @cmember:(INTERNAL) Indica se e' necessario un update completo
|
||||
bool _need_update;
|
||||
// @cmember Indica se il timer successivo e' attivo
|
||||
// @cmember:(INTERNAL) Indica se il timer successivo e' attivo
|
||||
bool _istimer;
|
||||
// @cmember Indica se possono arrivare nuove linee
|
||||
// @cmember:(INTERNAL) Indica se possono arrivare nuove linee
|
||||
bool _isopen;
|
||||
// @cmember Indica se sono stati selezionati flag
|
||||
// @cmember:(INTERNAL) Indica se sono stati selezionati flag
|
||||
bool _selflag;
|
||||
// @cmember Indica se e' evidenziata la selezione
|
||||
// @cmember:(INTERNAL) Indica se e' evidenziata la selezione
|
||||
bool _sel_displayed;
|
||||
// @cmember Indica se e' visualizzato il link
|
||||
// @cmember:(INTERNAL) Indica se e' visualizzato il link
|
||||
bool _link_displayed;
|
||||
// @cmember Indica se' e' visualizzata l'incrocio della crossbar
|
||||
// @cmember:(INTERNAL) Indica se' e' visualizzata l'incrocio della crossbar
|
||||
bool _cross_displayed;
|
||||
// @cmember Indica se e' visualizzato il cursore a carattere
|
||||
// @cmember:(INTERNAL) Indica se e' visualizzato il cursore a carattere
|
||||
bool _point_displayed;
|
||||
// @cmember Timer per evitare autorepeat di tasti
|
||||
// @cmember:(INTERNAL) Timer per evitare autorepeat di tasti
|
||||
long _timer;
|
||||
// òcmember Timer di attesa prima della chiusura del file
|
||||
// òcmember:(INTERNAL) Timer di attesa prima della chiusura del file
|
||||
long _wtimer;
|
||||
// @cmember Indica il tipo di scroll richiesto (vedi <t scroll>)
|
||||
// @cmember:(INTERNAL) Indica il tipo di scroll richiesto (vedi <t scroll>)
|
||||
scroll _need_scroll;
|
||||
// @cmember Flag per il disegno intelligente
|
||||
// @cmember:(INTERNAL) Flag per il disegno intelligente
|
||||
bool _wasneeded;
|
||||
// @cmember Array di bottoni attivi nella finestra
|
||||
// @cmember:(INTERNAL) Array di bottoni attivi nella finestra
|
||||
WINDOW _button[MAXBUT];
|
||||
// @cmember Bottone che ha il focus
|
||||
// @cmember:(INTERNAL) Bottone che ha il focus
|
||||
int _curbut;
|
||||
// @cmember Contatore di bottoni
|
||||
// @cmember:(INTERNAL) Contatore di bottoni
|
||||
int _buttons;
|
||||
|
||||
// @cmember Bottone Collega
|
||||
// @cmember:(INTERNAL) Bottone Collega
|
||||
WINDOW _link_button;
|
||||
// @cmember Bottone Stampa
|
||||
// @cmember:(INTERNAL) Bottone Stampa
|
||||
WINDOW _print_button;
|
||||
|
||||
// @cmember Numero di righe di testo
|
||||
// @cmember:(INTERNAL) Numero di righe di testo
|
||||
long _textrows;
|
||||
// @cmember Numero di colonne di testo
|
||||
// @cmember:(INTERNAL) Numero di colonne di testo
|
||||
long _textcolumns;
|
||||
|
||||
// @cmember Testo che deve essere visualizzato
|
||||
// @cmember:(INTERNAL) Testo che deve essere visualizzato
|
||||
TTextfile _txt;
|
||||
// @cmember Prima linea di testo che deve essere visualizzata
|
||||
// @cmember:(INTERNAL) Prima linea di testo che deve essere visualizzata
|
||||
long _firstline;
|
||||
// @cmember Ultima linea di testo che deve essere visualizzata
|
||||
// @cmember:(INTERNAL) Ultima linea di testo che deve essere visualizzata
|
||||
long _lastline;
|
||||
|
||||
// @cmember Strina di testo da cercare
|
||||
// @cmember:(INTERNAL) Stringa di testo da cercare
|
||||
TString _txt_to_find;
|
||||
// @cmember Posizione dell'ultima ricerca
|
||||
// @cmember:(INTERNAL) Posizione dell'ultima ricerca
|
||||
TPoint _last_found;
|
||||
// @cmember Direzione della ricerca (TRUE verso il basso FALSE verso l'alto)
|
||||
// @cmember:(INTERNAL) Direzione della ricerca (TRUE verso il basso FALSE verso l'alto)
|
||||
bool _down_dir;
|
||||
// @cmember Indica se si deve fare una ricerca case sensitive
|
||||
// @cmember:(INTERNAL) Indica se si deve fare una ricerca case sensitive
|
||||
bool _case_sensitive;
|
||||
|
||||
// @cmember Lunghezza della pagina
|
||||
// @cmember:(INTERNAL) Lunghezza della pagina
|
||||
int _formlen;
|
||||
|
||||
// @cmember Posizione corrente del punto
|
||||
// @cmember:(INTERNAL) Posizione corrente del punto
|
||||
TPoint _point;
|
||||
// @cmember Posizione corrente dell'incrocio della crossbar
|
||||
// @cmember:(INTERNAL) Posizione corrente dell'incrocio della crossbar
|
||||
PNT _cross;
|
||||
// @cmember Inizio della selezione (colonna, line del FILE)
|
||||
// @cmember:(INTERNAL) Inizio della selezione (colonna, line del FILE)
|
||||
TPoint _sel_start;
|
||||
// @cmember Fine della selezione (colonna, line del FILE)
|
||||
// @cmember:(INTERNAL) Fine della selezione (colonna, line del FILE)
|
||||
TPoint _sel_end;
|
||||
|
||||
// @cmember Array di link ammessi
|
||||
// @cmember:(INTERNAL) Array di link ammessi
|
||||
TArray* _links;
|
||||
// @cmember Array di hotspots
|
||||
// @cmember:(INTERNAL) Array di hotspots
|
||||
TArray* _hotspots;
|
||||
// @cmember Array di segnalibri
|
||||
// @cmember:(INTERNAL) Array di segnalibri
|
||||
TArray* _bookmarks;
|
||||
|
||||
// @cmember Indica se occorre ridisegnare la selezione
|
||||
// @cmember:(INTERNAL) Indica se occorre ridisegnare la selezione
|
||||
bool need_paint_sel(bool smart = TRUE);
|
||||
|
||||
// @cmember Array di icone del modulo scorrevole durante la stampa
|
||||
// @cmember:(INTERNAL) Array di icone del modulo scorrevole durante la stampa
|
||||
TArray _modules;
|
||||
// @cmember Array di immagini propriamente ridimensionate
|
||||
// @cmember:(INTERNAL) Array di immagini propriamente ridimensionate
|
||||
TArray _images;
|
||||
|
||||
// @cmember Indica se e' attivato il link multiplo se si' vengono passati all'handler tutti i
|
||||
// @cmember:(INTERNAL) Indica se e' attivato il link multiplo se si' vengono passati all'handler tutti i
|
||||
// link presenti sulla stessa riga anziche' solo il selezionato
|
||||
bool _multiple;
|
||||
// @cmember Testo del link
|
||||
// @cmember:(INTERNAL) Testo del link
|
||||
TString80 _linktxt;
|
||||
// @cmember Identificatore del link
|
||||
// @cmember:(INTERNAL) Identificatore del link
|
||||
int _linkID;
|
||||
// @cmember Indica tutti i link della riga nel caso di link multiplo
|
||||
// @cmember:(INTERNAL) Indica tutti i link della riga nel caso di link multiplo
|
||||
TToken_string _multiple_link;
|
||||
|
||||
// @cmember Array di colori di background
|
||||
// @cmember:(INTERNAL) Array di colori di background
|
||||
TArray* _bg;
|
||||
// @cmember Indica se la stampa e' stata interrotta
|
||||
// @cmember:(INTERNAL) Indica se la stampa e' stata interrotta
|
||||
bool _frozen;
|
||||
// @cmember Finestra in primo piano (se FALSE e un campo di una maschera)
|
||||
// @cmember:(INTERNAL) Finestra in primo piano (se FALSE e un campo di una maschera)
|
||||
bool _toplevel;
|
||||
// @cmember Indica se mostrare il righello
|
||||
// @cmember:(INTERNAL) Indica se mostrare il righello
|
||||
bool _rulers;
|
||||
// @cmember Indica se visualizzare i bottoni
|
||||
// @cmember:(INTERNAL) Indica se visualizzare i bottoni
|
||||
bool _showbuts;
|
||||
// @cmember Indica se si sta attivando un link
|
||||
// @cmember:(INTERNAL) Indica se si sta attivando un link
|
||||
bool _inside_linkexec;
|
||||
// òcmember Indica se e' presente il menu' specifico della calsse
|
||||
// òcmember:(INTERNAL) Indica se e' presente il menu' specifico della calsse
|
||||
bool _menu_present;
|
||||
|
||||
// @cmember Viene istanziato soltanto se e' usata come controllo
|
||||
// @cmember:(INTERNAL) Viene istanziato soltanto se e' usata come controllo
|
||||
TBrowsefile_field* _brwfld;
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
// @cmember !!!???!!!
|
||||
// @cmember Gestisce la pressione del tasto
|
||||
virtual bool on_key (KEY);
|
||||
// @cmember !!!???!!!
|
||||
// @cmember Apre la finestra di visualizzazione???
|
||||
virtual void open();
|
||||
|
||||
// @cmember Converte i caratteri in x in pixel
|
||||
@ -257,14 +257,14 @@ protected:
|
||||
// emette un suono e non effettuata lo scroll
|
||||
void scroll_error(long x, long y);
|
||||
|
||||
// @cmember !!!???!!!
|
||||
// @cmember Aggiorna la finestra di stampa
|
||||
virtual void update();
|
||||
// @cmember !!!???!!!
|
||||
// @cmember Gestisce l'handler della finestra (vedi <mf TWindow::handler>
|
||||
virtual void handler(WINDOW win, EVENT* ep);
|
||||
|
||||
// @cmember !!!???!!!
|
||||
// @cmember Controlla se e' stato selezionato la voce <p item> (parametro <p on>???)
|
||||
void check_menu_item(MENU_TAG item, bool on = TRUE);
|
||||
// @cmember !!!???!!!
|
||||
// @cmember Abilita/Disabilita una voce di menu'
|
||||
void enable_menu_item(MENU_TAG item, bool on = TRUE);
|
||||
|
||||
// @access Public Member
|
||||
@ -331,6 +331,8 @@ public:
|
||||
|
||||
#endif
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @enum scroll | Direzioni da utilizzare nello scroll
|
||||
//
|
||||
// @emem none | Nessuno scroll
|
||||
|
@ -81,23 +81,24 @@ class TWindow_manager
|
||||
{
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @ccost MAX_WIN | 8 | Numero massimo di finestre modali
|
||||
// @ccost:(INTERNAL) MAX_WIN | 8 | Numero massimo di finestre modali
|
||||
enum { MAX_WIN = 8 };
|
||||
|
||||
// @cmember Stack contenente la finestra attiva
|
||||
// @cmember:(INTERNAL) Stack contenente la finestra attiva
|
||||
TWindow* _window[MAX_WIN];
|
||||
// @cmember Stack pointer
|
||||
// @cmember:(INTERNAL) Stack pointer
|
||||
char _current;
|
||||
// @cmember Permette di abilitare/disabilitare il menu' della task window (stesso
|
||||
// @cmember:(INTERNAL) Permette di abilitare/disabilitare il menu' della task window (stesso
|
||||
// funzionamento della <mf TMask::enable>)
|
||||
void menu_enable(bool) const;
|
||||
|
||||
// @cmember Tiene sempre disponibile un file con un numero di handle inferiore a 20
|
||||
// @cmember:(INTERNAL) Tiene sempre disponibile un file con un numero di handle inferiore a 20
|
||||
// (per sopperire ad una mancanza di XVT)
|
||||
FILE* _lowhandle;
|
||||
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
// @cmember Costruttore
|
||||
TWindow_manager();
|
||||
@ -124,7 +125,6 @@ public:
|
||||
bool can_close() const;
|
||||
} WinManager;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
|
||||
TWindow_manager::TWindow_manager() : _current(-1), _lowhandle(NULL)
|
||||
@ -258,12 +258,15 @@ void TWindow_manager::unreg(const TWindow* m)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// @func Chiude tutte le finestre aperte
|
||||
void close_all_dialogs()
|
||||
{
|
||||
WinManager.destroy();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Indica se l'applicazione puo' essere terminata
|
||||
//
|
||||
// @rdesc Ritorna il risultato della ricerca:
|
||||
@ -292,6 +295,8 @@ WINDOW cur_win()
|
||||
|
||||
|
||||
// Certified 99%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta l'immagine e le sue dimensioni
|
||||
//
|
||||
// @rdesc Ritorna l'immagine stessa
|
||||
@ -313,6 +318,8 @@ XVT_IMAGE TImage::set(
|
||||
}
|
||||
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Legge l'immagine dal file
|
||||
XVT_IMAGE TImage::load(
|
||||
const char* n) // @parm Nome del file contenente l'immagine
|
||||
@ -371,6 +378,8 @@ TImage::~TImage()
|
||||
}
|
||||
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di settare la posizione della figura
|
||||
void TImage::set_pos(
|
||||
int x, // @parm Coordinata x dell'immagine da settare
|
||||
@ -390,6 +399,8 @@ void TImage::draw(WINDOW w) const
|
||||
}
|
||||
|
||||
// Certified 100%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Permette di gestire il disegno dell'immagine sullo schermo
|
||||
void TImage::draw(
|
||||
WINDOW w, // @parm Immagine da disegnare
|
||||
@ -425,6 +436,8 @@ void TImage::draw(WINDOW w, const RCT& dst, const RCT& src) const
|
||||
}
|
||||
|
||||
// Certified 99%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Fa corrispondere la palette della finestra a quella dell'immagine
|
||||
void TImage::set_palette(
|
||||
WINDOW w) const // @parm Finestra a cui settare la palette
|
||||
@ -443,6 +456,8 @@ void TImage::set_clut(byte n, COLOR c)
|
||||
}
|
||||
|
||||
// Certified 99%
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta i colori dell'immagine in modo da renderlo trasparente
|
||||
void TImage::convert_to_default_colors()
|
||||
|
||||
@ -494,6 +509,8 @@ long XVT_CALLCONV1 TWindow::window_handler(WINDOW win, EVENT* ep)
|
||||
}
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Crea la finestra
|
||||
//
|
||||
// @rdesc Ritorna l'handle della finestra creata
|
||||
@ -587,6 +604,8 @@ bool TWindow::can_be_closed() const
|
||||
return ok;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Esegue la finestra
|
||||
//
|
||||
// @rdesc Ritorna l'ultimo tasto premuto nella finestra
|
||||
@ -610,6 +629,8 @@ KEY TWindow::run()
|
||||
return last_key();
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Gestisce l'handler della finestra
|
||||
void TWindow::handler(
|
||||
WINDOW win, // @parm Finestra da gestire
|
||||
@ -683,6 +704,8 @@ void TWindow::maximize() const
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Attiva/disattiva la finestra
|
||||
void TWindow::activate(
|
||||
bool on) // @parm Indica l'operazione da svolgere sulla finestra:
|
||||
@ -744,6 +767,7 @@ void TWindow::set_color(COLOR fore, COLOR back)
|
||||
xvt_dwin_set_back_color(win(), back);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Sceglie la penna da utilizzare nella finestra
|
||||
void TWindow::set_pen(
|
||||
@ -790,6 +814,7 @@ HIDDEN void swap(short& a, short& b)
|
||||
b = tmp;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Disegna un rettangolo con la possibilita' di settare la penna e il draw_mode
|
||||
void TWindow::frame(
|
||||
@ -852,6 +877,8 @@ void TWindow::invert_bar(short left, short top, short right, short bottom)
|
||||
frame(left, top, right, bottom, 5);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Setta opaque_text
|
||||
void TWindow::set_opaque_text(
|
||||
bool o) // @parm Indica la modalita' di scrittura dell'opaque_text
|
||||
@ -863,6 +890,7 @@ void TWindow::set_opaque_text(
|
||||
xvt_dwin_set_draw_ctools(win(), &ct);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Sceglie il font da utilizzare nella finestra
|
||||
void TWindow::set_font(
|
||||
@ -906,6 +934,8 @@ void TWindow::stringat(short x, short y, const char* str)
|
||||
xvt_dwin_draw_text(win(), pnt.h, pnt.v, (char *)str, -1);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Scrive il testo formattato nella finestra all posizione indicata
|
||||
void TWindow::printat(
|
||||
short x, // @parm Coordinata x della finestra in cui scrivere il testo
|
||||
@ -954,6 +984,8 @@ void TWindow::clear(COLOR color)
|
||||
void TWindow::set_mode(DRAW_MODE mode)
|
||||
{ xvt_dwin_set_draw_mode(win(), mode); }
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiunge voci di menu' durante l'esecuzione di una finestra
|
||||
//
|
||||
// @rdesc Ritorna se e' riuscito ad aggiungere la voce al menu':
|
||||
@ -1079,6 +1111,8 @@ void TScroll_window::set_scroll_max(long maxx, long maxy)
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Aggiorna la scrollbar
|
||||
void TScroll_window::update_thumb(
|
||||
long x, // @parm Indica la posizione in x in cui spostare la finestra (default -1)
|
||||
|
@ -11,13 +11,16 @@
|
||||
|
||||
class TString_array;
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
void close_all_dialogs();
|
||||
bool can_close();
|
||||
WINDOW cur_win();
|
||||
|
||||
//@class TPoint | Struttura per la definizione di un punto sullo schermo
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TPoint | Struttura per la definizione di un punto sullo schermo
|
||||
//
|
||||
// @author:(INTERNAL) Guido
|
||||
struct TPoint
|
||||
{
|
||||
// @cmember Coordinata x del punto
|
||||
@ -55,18 +58,22 @@ struct TPoint
|
||||
// TImage
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TImage | Classe per la gestione delle imagini a video
|
||||
//
|
||||
// @base public | TObject
|
||||
class TImage : public TObject
|
||||
|
||||
// @author:(INTERNAL) Guido
|
||||
{
|
||||
// @access Private Member
|
||||
|
||||
// @cmember Immagine de gestire
|
||||
// @cmember:(INTERNAL) Immagine de gestire
|
||||
XVT_IMAGE _image;
|
||||
// @cmember Rettangolo originale (origine 0,0 e dimensioni originali) dell'immagine
|
||||
// @cmember:(INTERNAL) Rettangolo originale (origine 0,0 e dimensioni originali) dell'immagine
|
||||
RCT _src;
|
||||
// @cmember Rettangolo di visualizzazione dell'immagine (dove mettere l'immagine)
|
||||
// @cmember:(INTERNAL) Rettangolo di visualizzazione dell'immagine (dove mettere l'immagine)
|
||||
RCT _dst;
|
||||
|
||||
// @access Public Member
|
||||
@ -123,6 +130,8 @@ public:
|
||||
virtual ~TImage();
|
||||
};
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TWindow | Classe per la definizione di una finestra generica
|
||||
class TWindow
|
||||
{
|
||||
@ -131,22 +140,22 @@ class TWindow
|
||||
// @cfriend TWindow_manager
|
||||
friend class TWindow_manager;
|
||||
|
||||
// @access PRovate Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Set di drawing tools (definito in xvttype.h)
|
||||
// @cmember:(INTERNAL) Set di drawing tools (definito in xvttype.h)
|
||||
static DRAW_CTOOLS _ct;
|
||||
// @cmember Indica se e' stato salvato il set di drawing tools
|
||||
// @cmember:(INTERNAL) Indica se e' stato salvato il set di drawing tools
|
||||
static bool _ctools_saved;
|
||||
|
||||
// @cmember Descrittore finestra
|
||||
// @cmember:(INTERNAL) Descrittore finestra
|
||||
WINDOW _win;
|
||||
// @cmember Codice del tasto di uscita
|
||||
// @cmember:(INTERNAL) Codice del tasto di uscita
|
||||
KEY _lastkey;
|
||||
|
||||
// @cmember Compila la struttura <p _ct> con i valori correnti
|
||||
// @cmember:(INTERNAL) Compila la struttura <p _ct> con i valori correnti
|
||||
// (TRUE se la compilazione ha luogo)
|
||||
bool save_ctools();
|
||||
// @cmember Ripristina i valori dalla struttura <p _ct> (TRUE se i valori
|
||||
// @cmember:(INTERNAL) Ripristina i valori dalla struttura <p _ct> (TRUE se i valori
|
||||
// vengono recuperati)
|
||||
bool restore_ctools();
|
||||
|
||||
@ -320,6 +329,8 @@ public:
|
||||
bool remove_menu(MENU_TAG id);
|
||||
};
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @class TTemp_window | Classe per la definizione di finestre temporanee
|
||||
//
|
||||
// @base public | TWindow
|
||||
@ -336,6 +347,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @class TScroll_window | Classe per la definizione di finestre con scrollbar
|
||||
//
|
||||
// @base public | TWindow
|
||||
@ -343,20 +356,20 @@ class TScroll_window : public TWindow
|
||||
{
|
||||
// @author:(INTERNAL) Guido
|
||||
|
||||
// @access Private Member
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
// @cmember Posizione attuale della scrollbar
|
||||
// @cmember:(INTERNAL) Posizione attuale della scrollbar
|
||||
TPoint _origin;
|
||||
// @cmember Massima lunghezza della scrollbar
|
||||
// @cmember:(INTERNAL) Massima lunghezza della scrollbar
|
||||
TPoint _max;
|
||||
// @cmember Utilizzato per finestre molto grosse, per poter gestire l-intera finestra
|
||||
// @cmember:(INTERNAL) Utilizzato per finestre molto grosse, per poter gestire l-intera finestra
|
||||
short _shift;
|
||||
|
||||
// @cmember Indica se sommare (TRUE) o no alle coordinate attuali le coordinate passate
|
||||
// @cmember:(INTERNAL) Indica se sommare (TRUE) o no alle coordinate attuali le coordinate passate
|
||||
bool _autoscroll : 1;
|
||||
// @cmember Indica che la finestra ha la barra di scorrimento orizzontale
|
||||
// @cmember:(INTERNAL) Indica che la finestra ha la barra di scorrimento orizzontale
|
||||
bool _has_hscroll : 1;
|
||||
// @cmember Indica che la finestra ha la barra di scorrimento verticale
|
||||
// @cmember:(INTERNAL) Indica che la finestra ha la barra di scorrimento verticale
|
||||
bool _has_vscroll : 1;
|
||||
|
||||
// @access Protected Member
|
||||
|
@ -10,8 +10,6 @@
|
||||
extern "C" { long nap(long period); }
|
||||
#endif
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// ERROR HOOK che intercetta errori XVT
|
||||
// put breakpoint here
|
||||
|
||||
@ -298,6 +296,8 @@ static void createwindow_hook(DWORD* exstyle, LPCSTR* classname, LPCSTR* windown
|
||||
|
||||
#endif
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Calcola dimensioni e posizione di un controllo contenuto nella finestra
|
||||
//
|
||||
// @rdesc Ritorna il rettangolo
|
||||
@ -414,6 +414,8 @@ RCT& resize_rect(
|
||||
return r;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Emette un suono di default
|
||||
void beep()
|
||||
{ xvt_scr_beep(); }
|
||||
@ -468,6 +470,8 @@ void TEvent_manager::pop()
|
||||
}
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Processa tutti gli eventi rimasti in coda
|
||||
void do_events()
|
||||
{
|
||||
@ -478,6 +482,8 @@ void do_events()
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Permette di convertire un evento carattere in un codice carattere premuto
|
||||
//
|
||||
// @rdesc Ritorna il codice del carattere corrispondente all'evento
|
||||
@ -498,6 +504,8 @@ KEY e_char_to_key(
|
||||
return key;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Simula la scelta di una voce di menu
|
||||
void dispatch_e_menu(
|
||||
WINDOW win, // @parm Finestra che contiene il menu
|
||||
@ -513,6 +521,8 @@ void dispatch_e_menu(
|
||||
EM.push(win, e);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Simula la scelta di una combinazione di caratteri
|
||||
void dispatch_e_char(
|
||||
WINDOW win, // @parm Finestra che contiene il menu
|
||||
@ -535,6 +545,8 @@ void dispatch_e_char(
|
||||
EM.push(win, e);
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @func Simula uno scroll all'interno di una finestra
|
||||
void dispatch_e_scroll(
|
||||
WINDOW win, // @parm Finestra nella quale operare
|
||||
@ -600,6 +612,8 @@ void dispatch_e_scroll(
|
||||
if (w != SC_NONE) xvt_win_dispatch_event(win, &e);
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di cambiare i colori attivi del programma
|
||||
void customize_colors()
|
||||
|
||||
@ -607,6 +621,7 @@ void customize_colors()
|
||||
// ne setta le variabili in modo da poter personalizzare i colori
|
||||
//
|
||||
// @xref <c TConfig>
|
||||
|
||||
{
|
||||
TConfig colors(CONFIG_USER, "Colors");
|
||||
|
||||
@ -622,6 +637,8 @@ void customize_colors()
|
||||
TOOL_BACK_COLOR = colors.get_color("ToolBack", NULL, -1, MASK_DARK_COLOR);
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Stabilisce i parametri standard dei controlli
|
||||
void customize_controls(
|
||||
bool on) // @parm Permette di inizializzare (TRUE) o scaricare (FALSE) i parametri
|
||||
@ -751,6 +768,8 @@ XVT_FNTID xvt_default_font()
|
||||
return DEF_FONT;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di settare il font attivo nella finestra
|
||||
void xvt_set_font(
|
||||
WINDOW win, // @parm Finestra nella quale settare il font
|
||||
@ -783,6 +802,8 @@ void xvt_set_font(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di creare una finestra
|
||||
//
|
||||
// @rdesc Ritorna l'identificatore della finestra creata
|
||||
@ -828,6 +849,8 @@ WINDOW xvt_create_window(
|
||||
return win;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di creare i controlli all'interno di una finestra
|
||||
//
|
||||
// @rdesc Ritorna la finestra del controllo
|
||||
@ -925,6 +948,8 @@ WINDOW xvt_create_control(
|
||||
return win;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Restituisce il titolo della finestra
|
||||
//
|
||||
// @rdesc Stringa contenente il titolo della finestra
|
||||
@ -942,6 +967,8 @@ const char* xvt_get_title(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di assegnare il titolo ad una finestra
|
||||
void xvt_set_title(
|
||||
WINDOW win, // @parm Finestra a cui assegnare il titolo
|
||||
@ -957,6 +984,8 @@ void xvt_set_title(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di abilitare il focus su un controllo
|
||||
void xvt_set_front_control(
|
||||
WINDOW win) // @parm Finestra nella quale abilitare il focus
|
||||
@ -968,6 +997,8 @@ void xvt_set_front_control(
|
||||
xvt_scr_set_focus_vobj(win);
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di togliere il focus da un controllo
|
||||
void xvt_kill_focus(
|
||||
WINDOW win) // @parm Finestra nella quale togliere il focus
|
||||
@ -978,6 +1009,8 @@ void xvt_kill_focus(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di abilitare o disabilitare un controllo
|
||||
void xvt_enable_control(
|
||||
WINDOW win, // @parm Finestra all'interno della quale abilitare il controllo
|
||||
@ -991,6 +1024,8 @@ void xvt_enable_control(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di gestire un check box all'interno di una finestra
|
||||
void xvt_check_box(
|
||||
WINDOW win, // @parm Finestra all'interno della quale abilitare il check box
|
||||
@ -1004,6 +1039,8 @@ void xvt_check_box(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di controllare se un controllo e' stato selezionato
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori:
|
||||
@ -1021,6 +1058,8 @@ bool xvt_get_checked_state(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di gestire un radio button all'interno di una finestra
|
||||
void xvt_check_radio_button(
|
||||
WINDOW win, // @parm Finestra all'interno della quale abilitare il radio button
|
||||
@ -1035,6 +1074,8 @@ void xvt_check_radio_button(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di controllare lo stato di un radiobutton
|
||||
//
|
||||
// @rdesc Ritorna il numero dell'elemento del radiobutton selezionato
|
||||
@ -1054,6 +1095,8 @@ int xvt_get_checked_radio(
|
||||
}
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di cambiare il colore di sfondo di un controllo
|
||||
void xvt_set_ctrl_back_color(
|
||||
WINDOW win, // @parm Finestra di cui si vuole cambiare lo sfondo
|
||||
@ -1073,6 +1116,8 @@ void xvt_set_ctrl_back_color(
|
||||
|
||||
HIDDEN WINDOW _statbar = NULL_WIN;
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di creare la barra di stato del programma
|
||||
//
|
||||
// @rdesc Ritorna l'identificatore della barra di stato creata
|
||||
@ -1104,6 +1149,8 @@ WINDOW xvt_create_statbar()
|
||||
return _statbar;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di settare una finestra con la barra di stato
|
||||
void xvt_statbar_set(
|
||||
const char* text, // @parm Testo da inserire nella barra di stato
|
||||
@ -1123,6 +1170,8 @@ void xvt_statbar_set(
|
||||
#endif
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di cambiare il titolo alla barra di stato presente
|
||||
void xvt_statbar_refresh()
|
||||
|
||||
@ -1152,6 +1201,8 @@ HIDDEN bool test_menu_tag(MENU_ITEM* mi, MENU_TAG tag)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Controlla se e' esiste una voce del menu'
|
||||
//
|
||||
// @rdesc Ritorna i seguenti valori
|
||||
@ -1168,6 +1219,7 @@ bool xvt_test_menu_tag(
|
||||
return ok;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di convertire in attributi grafici i codici caratteri usati
|
||||
// dalle funzioni di stampa
|
||||
@ -1209,6 +1261,8 @@ COLOR trans_color(
|
||||
return col;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di converitire lo stile del pattern in attributi grafici da
|
||||
// codici carattere.
|
||||
//
|
||||
@ -1242,6 +1296,8 @@ PAT_STYLE trans_brush(
|
||||
return PAT_NONE;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @func Permette di convertire lo stile della penna da codice carattere
|
||||
//
|
||||
// @rdesc Ritorna lo stilo convertito
|
||||
|
Loading…
x
Reference in New Issue
Block a user