applicat.cpp Aggiornata alla 4.5 la gestione dei 3d controls, corretto routing di certi E_COMMAND corretta gestione title di XVT_CONFIG controls.cpp Intercettati eventi XIE_COLMOVE e XIE_COLSIZE intrappolato bottone sinistro del mouse e ignorati gli altri config.cpp Migliorata gestione paragrafi con righe vuote probabile ottimizzazione del reperimento delle variabili config.h Tolto un CAZZ di Ferdinando colors.cpp Creato per gestire scelta colori colors.h Aggiunta funzione di conversione colori mask.cpp Gestione popup menu sheet.cpp Salvataggio colonne msksheet.cpp Salvataggio colonne e colorazione righe printer.cpp Migliorato riconoscimento fax e calcolo dimensioni foglio tabapp.cpp Ora prima creo la relazione e poi la maschera principale xvtility.cpp Aggiornata la gestione dei controlli 3D di Windows mask.h Aggiunto metodo per avere il numero della sottomaschera git-svn-id: svn://10.65.10.50/trunk@3890 c028cbd2-c16b-5b4b-a496-9718f37d4682
156 lines
6.0 KiB
C++
Executable File
156 lines
6.0 KiB
C++
Executable File
#ifndef __CONFIG_H
|
|
#define __CONFIG_H
|
|
|
|
#ifndef INCL_XVTH
|
|
#include <xvt.h>
|
|
#endif
|
|
|
|
#ifndef __ASSOC_H
|
|
#include <assoc.h>
|
|
#endif
|
|
|
|
class ofstream;
|
|
|
|
// questo sara' il principale, per ora non c'e'
|
|
#define CONFIG_GENERAL 0
|
|
// file parametri studio (uno per studio, per ora e' il principale)
|
|
#define CONFIG_STUDIO 1
|
|
// file parametri ditta (uno per ditta)
|
|
#define CONFIG_DITTA 2
|
|
// file conversioni archivi
|
|
#define CONFIG_FCONV 3
|
|
// file parametri utente
|
|
#define CONFIG_USER 4
|
|
// file parametri stampe
|
|
#define CONFIG_STAMPE 5
|
|
// 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:
|
|
//
|
|
// @flag CONFIG_GENERAL | Questo sara' il principale, per ora non c'e'
|
|
// @flag CONFIG_STUDIO | File parametri studio (uno per studio, per ora e'
|
|
// il principale)
|
|
// @flag CONFIG_DITTA | File parametri ditta (uno per ditta)
|
|
// @flag CONFIG_FCONV | File conversioni archivi
|
|
// @flag CONFIG_USER | File parametri utente
|
|
// @flag CONFIG_STAMPE | File parametri stampe
|
|
// @flag CONFIG_GOLEM | File parametri golem
|
|
|
|
// @access:(INTERNAL) Private Member
|
|
{
|
|
|
|
// @cmember:(INTERNAL) Contenuto del paragrafo
|
|
TAssoc_array _data;
|
|
// @cmember:(INTERNAL) Nome del file di configurazione
|
|
TFilename _file;
|
|
// @cmember:(INTERNAL) Indica se il paragrafo e' stato modificato (TRUE se esiste)
|
|
bool _dirty;
|
|
// @cmember:(INTERNAL) Indica se il paragrafo e' presente (TRUE se esiste)
|
|
bool _ispresent;
|
|
// @cmember:(INTERNAL) Nome del paragrafo attivo
|
|
TString _paragraph;
|
|
|
|
// @access Protected Member
|
|
protected:
|
|
// @cmember Legge i dati del paragrafo
|
|
bool _read_paragraph();
|
|
// @cmember Scrive i dati del paragrafo
|
|
void _write_paragraph(ofstream&);
|
|
// @cmember Scrive il file di configurazione
|
|
void _write_file();
|
|
// @cmember Inizializza il paragrafo leggendo dal file di nome <p fn > i dati
|
|
void init(const char *fn, const char* pa);
|
|
|
|
// @access Public Memeber
|
|
public:
|
|
|
|
// @cmember Ritorna il valore della variabile nella sezione corrente o in
|
|
// quella specificata
|
|
TString& get(const char* var, const char* section = NULL, int index = -1, const char* def = "");
|
|
|
|
// @cmember Ritorna il valore della variabile nella sezione corrente o in
|
|
// quella specificata (se la variabile contiene un long)
|
|
long get_long(const char* var, const char* section = NULL, int index = -1, long def = 0L);
|
|
|
|
// @cmember Ritorna il valore della variabile nella sezione corrente o in
|
|
// quella specificata (se la variabile contiene un long)
|
|
char get_char(const char* var, const char* section = NULL, int index = -1, char def = ' ' );
|
|
|
|
// @cmember Ritorna il valore della variabile nella sezione corrente o in
|
|
// quella specificata (se la variabile contiene un int)
|
|
int get_int(const char* var, const char* section = NULL, int index = -1, int def = 0);
|
|
|
|
// @cmember Ritorna il valore della variabile nella sezione corrente o in
|
|
// quella specificata (se la variabile contiene un bool)
|
|
bool get_bool(const char* var, const char* section = NULL, int index = -1, bool def = FALSE);
|
|
|
|
// @cmember Ritorna il valore del colore settato nella variabile nella
|
|
// sezione corrente o in quella specificata
|
|
COLOR get_color(const char* var, const char* section = NULL, int index = -1, COLOR def = 0);
|
|
|
|
// @cmember Setta il colore nella sezione corrente o specificata
|
|
bool set_color(const char* var, COLOR col, const char* section = NULL, bool force = TRUE, int index = -1);
|
|
|
|
// @cmember Setta la variabile nella sezione corrente o specificata
|
|
bool set(const char* var, const char* value, const char* section = NULL, bool force = TRUE, int index = -1);
|
|
// @cmember Setta la variabile nella sezione corrente o specificata
|
|
bool set(const char* var, long value, const char* section = NULL, bool force = TRUE, int index = -1);
|
|
|
|
// @cmember Controlla se esite una variabile nel paragrafo attivo
|
|
bool exist(const char* var, int index = -1);
|
|
|
|
// @cmember Elimina una variabile nel paragrafo attivo
|
|
bool remove(const char* var, int index = -1);
|
|
|
|
// @cmember Controlla se il paragrafo corrente e' nuovo (TRUE se nuovo)
|
|
bool new_paragraph()
|
|
{ return !_ispresent; }
|
|
|
|
// @cmember Ritorna quanti elementi dell'array nominato sono presenti nella
|
|
// sezione indicata.
|
|
word items(const char* var, const char* section);
|
|
|
|
// @cmember Setta il paragrafo passato come quello attivo
|
|
void set_paragraph(const char* par);
|
|
|
|
// @cmember Riempie pl con la lista dei paragrafi
|
|
int list_paragraphs(TString_array& pl);
|
|
|
|
// @cmember Riempie <p vl> con la lista dei nomi delle variabili
|
|
// nella sezione corrente o in quella indicata; se
|
|
// add_value e' TRUE ci mette "variabile<pipe>valore"
|
|
// ACHTUNG: l'array e' in ordine HASH
|
|
int list_variables(TString_array& vl, bool add_value = FALSE, const char* section = NULL);
|
|
|
|
// @cmember Ritorna l'intero array delle variabili della sezione
|
|
// eventualmente specificata da <p section>
|
|
const TAssoc_array& list_variables(const char* section = NULL);
|
|
|
|
// @cmember Ritorna il nome del file di configurazione
|
|
const TFilename& name() const { return _file; }
|
|
|
|
// @cmember Costruttore (il paragrafo iniziale e' il modulo corrente
|
|
// salvo diversa indicazione)
|
|
TConfig(int which_config = CONFIG_GENERAL, const char* paragraph = NULL);
|
|
// @cmember Costruttore (il paragrafo iniziale e' il modulo corrente
|
|
// salvo diversa indicazione)
|
|
TConfig(const char* file, const char* paragraph = NULL);
|
|
|
|
// @ cmember Distruttore. Riscrive il file con le modifiche se necessrio,
|
|
virtual ~TConfig();
|
|
};
|
|
|
|
#endif
|