1994-12-28 11:01:33 +00:00
|
|
|
#ifndef __APPLICATION_H
|
|
|
|
#define __APPLICATION_H
|
|
|
|
|
|
|
|
#ifndef INCL_XVTH
|
|
|
|
#include <xvt.h>
|
|
|
|
#endif
|
|
|
|
|
2002-09-13 14:56:23 +00:00
|
|
|
#ifndef __DICTION_H
|
|
|
|
#include <diction.h>
|
|
|
|
#endif
|
|
|
|
|
1995-12-29 12:09:48 +00:00
|
|
|
#define MSG_AI "AI" // message auto_insert (relapp)
|
1994-12-28 11:01:33 +00:00
|
|
|
#define MSG_FS "FS" // message filtered start (relapp)
|
1996-07-24 08:14:11 +00:00
|
|
|
#define MSG_LN "LN" // message link (printapp -> relapp)
|
|
|
|
#define MSG_ED "ED" // message edit (maskfld -> relapp)
|
1994-12-28 11:01:33 +00:00
|
|
|
#define CHK_ALL -1 // all authorization checks
|
|
|
|
#define CHK_DONGLE 0 // dongle authorization checks
|
2007-06-01 09:44:03 +00:00
|
|
|
//#define CHK_USER 1 // user authorization checks
|
1994-12-28 11:01:33 +00:00
|
|
|
|
1999-10-22 10:00:18 +00:00
|
|
|
#ifndef __ASSOC_H
|
|
|
|
class TAssoc_array;
|
|
|
|
#endif
|
1996-02-05 19:00:53 +00:00
|
|
|
// @doc EXTERNAL
|
1996-01-31 17:19:02 +00:00
|
|
|
|
|
|
|
// @class TApplication | Classe per la gestione di tutte le applicazioni PRASSI
|
1994-12-28 11:01:33 +00:00
|
|
|
class TApplication
|
1996-01-31 17:19:02 +00:00
|
|
|
|
|
|
|
// @author:(INTERNAL) Guido
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @access:(INTERNAL) Private Member
|
1994-12-28 11:01:33 +00:00
|
|
|
{
|
1997-12-24 14:26:25 +00:00
|
|
|
// // @cmember:(INTERNAL) Identificatore del menu' legato all'applicazione
|
|
|
|
// int _bar;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Numero di argomenti passati all'applicazione
|
1998-03-13 10:18:29 +00:00
|
|
|
int _argc_;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Array di argomenti passati all'applicazione
|
1998-03-13 10:18:29 +00:00
|
|
|
const char** _argv_;
|
1997-12-04 10:26:39 +00:00
|
|
|
// @cmember:(INTERNAL) Ora di inizio utilizzo del programma (per versioni DEMO)
|
1997-12-02 11:57:26 +00:00
|
|
|
time_t _start_time;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Array di autorizzazione concessa all'utente
|
1994-12-28 11:01:33 +00:00
|
|
|
TBit_array _user_aut;
|
1999-10-22 10:00:18 +00:00
|
|
|
// @cmember:(INTERNAL) Array di valori dei modi speciali
|
|
|
|
TAssoc_array * _god_vars;
|
1996-01-31 17:19:02 +00:00
|
|
|
|
1997-01-09 16:33:39 +00:00
|
|
|
// @cmember:(INTERNAL) Codice dell'applicazione
|
|
|
|
TString _name;
|
|
|
|
// @cmember:(INTERNAL) Nome della applicazione
|
|
|
|
TString _title;
|
1998-02-06 16:03:18 +00:00
|
|
|
// @cmember:(INTERNAL) Nome del modulo principale applicazione
|
|
|
|
TString _module_name;
|
1998-10-01 13:48:06 +00:00
|
|
|
// @cmember:(INTERNAL) Elenco dei files
|
|
|
|
TArray _used_files;
|
2003-05-16 13:13:39 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Codice della ditta
|
1994-12-28 11:01:33 +00:00
|
|
|
long _savefirm;
|
2003-05-16 13:13:39 +00:00
|
|
|
|
|
|
|
// @cmember:(INTERNAL) Indica se l'applicazione e' partita
|
|
|
|
bool _running;
|
1996-09-10 10:43:17 +00:00
|
|
|
// @cmember:(INTERNAL) Indica se l'applicazione e' stata creata con successo
|
1996-01-31 17:19:02 +00:00
|
|
|
bool _create_ok;
|
1995-01-03 14:19:41 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Termine dell'applicazione
|
1996-01-31 17:19:02 +00:00
|
|
|
void terminate();
|
|
|
|
|
|
|
|
// @access Protected Member
|
1994-12-28 11:01:33 +00:00
|
|
|
protected:
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Ritorna il nome del modulo dell'applicazione
|
1994-12-28 11:01:33 +00:00
|
|
|
const char* get_module_name() const;
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Event handler della finestra principale del programma
|
2002-02-28 11:35:23 +00:00
|
|
|
static long task_eh(WINDOW win, EVENT* ep);
|
1994-12-28 11:01:33 +00:00
|
|
|
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Handler degli eventi della finestra principale, chiamato da <mf TApplication::task_eh>
|
1994-12-28 11:01:33 +00:00
|
|
|
virtual long handler(WINDOW win, EVENT* ep);
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Estende il dialog box della set_firm
|
|
|
|
virtual bool extended_firm() const
|
2006-12-13 16:22:33 +00:00
|
|
|
{ return false; }
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Indica se si intendono usare i files DBF
|
|
|
|
virtual bool use_files() const
|
2006-12-13 16:22:33 +00:00
|
|
|
{ return true; }
|
1995-07-19 09:57:25 +00:00
|
|
|
|
1996-08-05 09:43:06 +00:00
|
|
|
// @cmember Inizilizzazzioni di bassissimo livello
|
1996-09-09 10:53:42 +00:00
|
|
|
virtual bool pre_create()
|
2006-12-13 16:22:33 +00:00
|
|
|
{ return true; }
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Crea la finestra principale
|
|
|
|
virtual bool create();
|
1996-09-10 10:43:17 +00:00
|
|
|
// @cmember Controlla il menu'
|
1996-01-31 17:19:02 +00:00
|
|
|
virtual bool menu(MENU_TAG)
|
2006-12-13 16:22:33 +00:00
|
|
|
{ return true; }
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Rimuove l'applicazione
|
|
|
|
virtual bool destroy();
|
|
|
|
|
|
|
|
// @cmember Chiamata ogni volta che l'utente usa il menu Cambia Parametri
|
1994-12-28 11:01:33 +00:00
|
|
|
virtual void on_config_change();
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Chiamata ogni volta che l'utente cambia ditta
|
1994-12-28 11:01:33 +00:00
|
|
|
virtual void on_firm_change();
|
2001-06-25 10:41:20 +00:00
|
|
|
|
|
|
|
virtual bool test_assistance_year() const;
|
1994-12-28 11:01:33 +00:00
|
|
|
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Setta i permessi di utilizzo dei moduli
|
1994-12-28 11:01:33 +00:00
|
|
|
void set_perms();
|
1996-02-05 19:00:53 +00:00
|
|
|
|
1998-11-04 18:04:26 +00:00
|
|
|
// @cmember apre i files necessari
|
|
|
|
void open_files(int logicnum, ...);
|
1998-11-10 10:07:12 +00:00
|
|
|
|
2007-09-17 15:33:04 +00:00
|
|
|
// @cmember Percorso documenti archiviati
|
|
|
|
bool get_spotlite_path(TFilename& path) const;
|
|
|
|
|
1998-11-10 10:07:12 +00:00
|
|
|
// @access Public Member
|
1994-12-28 11:01:33 +00:00
|
|
|
public:
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Fa partire l'applicazione
|
1994-12-28 11:01:33 +00:00
|
|
|
void run(int argc, char* argv[], const char* name);
|
|
|
|
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Ritorna l'identificatore della classe
|
|
|
|
virtual word class_id() const
|
|
|
|
{ return CLASS_APPLICATION; }
|
2003-05-16 13:13:39 +00:00
|
|
|
|
|
|
|
// @cmember Controlla se il programa e' partito
|
|
|
|
bool is_running() const { return _running; }
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Controlla se si tratta di una applicazione valida
|
|
|
|
virtual bool ok() const
|
|
|
|
{ return _create_ok; }
|
|
|
|
// @cmember Risposta alla selezione Stampa del menu File
|
1995-03-22 09:07:04 +00:00
|
|
|
virtual void print();
|
2009-03-23 15:16:49 +00:00
|
|
|
virtual void preview();
|
2007-09-17 15:33:04 +00:00
|
|
|
|
2007-03-16 13:33:09 +00:00
|
|
|
virtual bool get_next_pdf(int anno, long ditta, const char* codnum, long numdoc, long codcf, TFilename& pdf) const;
|
2006-12-13 16:22:33 +00:00
|
|
|
virtual bool get_next_mail(TToken_string& to, TToken_string& cc, TToken_string& ccn,
|
2010-05-03 10:22:47 +00:00
|
|
|
TString& subj, TString& text, TToken_string& attach, short& flags) const;
|
2006-12-13 16:22:33 +00:00
|
|
|
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Controlla se al programma corrente e' concesso cambiare ditta da menu.
|
1995-07-19 09:57:25 +00:00
|
|
|
virtual bool firm_change_enabled() const;
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Ritorna la <c TToken_string> con la lista dei moduli cui appartiene il programma
|
2005-12-29 12:46:33 +00:00
|
|
|
virtual const char * extra_modules() const { return ""; }
|
1997-12-04 17:29:21 +00:00
|
|
|
// @cmember Abilita la verifica del modulo cui appartiene il programma
|
2009-06-16 14:36:09 +00:00
|
|
|
virtual bool check_autorization() const { return true; }
|
1999-10-22 10:00:18 +00:00
|
|
|
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Forza la chiusura dell'applicazione
|
|
|
|
void stop_run();
|
|
|
|
|
|
|
|
// @cmember Mette il segno Check a fianco di una voce di menu
|
2008-01-31 14:02:52 +00:00
|
|
|
void check_menu_item(MENU_TAG item, bool on = true);
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Toglie il segno Check a fianco di una voce di menu
|
|
|
|
void uncheck_menu_item(MENU_TAG item);
|
|
|
|
// @cmember Permette di abilitare/disabilitare una voce di menu'
|
2006-12-13 16:22:33 +00:00
|
|
|
void enable_menu_item(MENU_TAG item, bool on = true);
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Permette di disabilitare una voce di menu' (chiama <mf TApplication::enable_menu_item>)
|
|
|
|
void disable_menu_item(MENU_TAG item)
|
2006-12-13 16:22:33 +00:00
|
|
|
{ enable_menu_item(item, false); }
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Simula la selezione di una voce di menu
|
1994-12-28 11:01:33 +00:00
|
|
|
void dispatch_e_menu(MENU_TAG item);
|
|
|
|
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Ritorna il nome dell'applicazione
|
|
|
|
const TString& name() const
|
|
|
|
{ return _name; }
|
1996-09-10 10:43:17 +00:00
|
|
|
// @cmember Ritorna l'array di parametri da passare all'applicazione
|
1996-01-31 17:19:02 +00:00
|
|
|
const char** argv() const
|
1998-03-13 10:18:29 +00:00
|
|
|
{ return _argv_; }
|
1996-09-10 10:43:17 +00:00
|
|
|
// @cmember Ritroan il parametro <p i>-esimo da passare all'applicazione
|
1998-03-13 10:18:29 +00:00
|
|
|
const char* argv(int i) const { return _argv_[i]; }
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Ritorna il numero di paramentri da passare all'applicazione
|
|
|
|
int argc() const
|
1998-03-13 10:18:29 +00:00
|
|
|
{ return _argc_; }
|
1996-01-31 17:19:02 +00:00
|
|
|
|
|
|
|
// @cmember Setta il titolo da assegnare all'applicazione
|
|
|
|
void set_title(const char* t)
|
|
|
|
{ _title = t; }
|
|
|
|
// @cmember Ritorna il titolo da assegnare all'applicazione
|
|
|
|
const TString& title() const
|
|
|
|
{ return _title; }
|
|
|
|
|
|
|
|
// @cmember static void | check_parameters | int & argc, char *argv[] |
|
|
|
|
// Legge il parametro /uUTENTE e lo toglie dalla lista
|
|
|
|
static void check_parameters(int& argc, char *argv[]);
|
|
|
|
|
1998-01-27 10:27:24 +00:00
|
|
|
// @cmember Ritorna i numeri della versione del programma
|
|
|
|
static bool get_version_info(int& year, int& release, int& tag, int& patch);
|
|
|
|
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Controlla se il modulo <p module> ha l'autorizzazione all'esecuzione
|
1994-12-28 11:01:33 +00:00
|
|
|
bool has_module(int module, int checktype = CHK_ALL) const;
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Setta la ditta corrente (Ritorna se ce l'ha fatta)
|
1994-12-28 11:01:33 +00:00
|
|
|
bool set_firm(long cod = -1);
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Ritorna la ditta corrente
|
1994-12-28 11:01:33 +00:00
|
|
|
long get_firm() const;
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Ritorna la directory in cui si trovano i dati della ditta corrente
|
1994-12-28 11:01:33 +00:00
|
|
|
const char* get_firm_dir() const;
|
|
|
|
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Interfaccia runtime del menu' della finestra principale???
|
1995-04-10 16:31:00 +00:00
|
|
|
bool add_menu(TString_array& menu, MENU_TAG id = 0);
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Elimina il menu' <p id> (Ritorna se ce l'ha fatta???)
|
1995-04-10 16:31:00 +00:00
|
|
|
bool remove_menu(MENU_TAG id);
|
|
|
|
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Costruttore
|
1994-12-28 11:01:33 +00:00
|
|
|
TApplication();
|
1996-01-31 17:19:02 +00:00
|
|
|
// @cmember Distruttore
|
1994-12-28 11:01:33 +00:00
|
|
|
virtual ~TApplication();
|
|
|
|
};
|
|
|
|
|
1997-10-13 14:04:22 +00:00
|
|
|
class TSkeleton_application : public TApplication
|
|
|
|
{
|
|
|
|
protected:
|
|
|
|
virtual bool create();
|
|
|
|
virtual bool menu(MENU_TAG);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual void main_loop() pure;
|
|
|
|
|
|
|
|
public:
|
|
|
|
TSkeleton_application() { }
|
|
|
|
virtual ~TSkeleton_application() { }
|
|
|
|
};
|
|
|
|
|
1994-12-28 11:01:33 +00:00
|
|
|
TApplication& main_app();
|
|
|
|
|
2006-12-13 16:22:33 +00:00
|
|
|
#endif /* __APPLICATION_H */
|