#ifndef __CONFAPP_H #define __CONFAPP_H #ifndef __APPLICAT_H #include #endif #ifndef __CONFIG_H #include #endif #ifndef __MASK_H #include #endif // le applicazioni di questo tipo servono a leggere - scrivere - modificare // files di configurazione. La linea di comando e' // // [-f ] [-d] [, ...] // // dopo -f si dara' il nome file che si vuole editare, default e' CONFIG_FILE // definito in config.h. Se si da' -d viene considerato quello relativo alla // ditta corrente, che viene creato copiando il principale se non c'e'. // Quindi si da' la lista dei paragrafi che si vuole editare; se non ne vengono // dati sara' il modulo corrente preso dal nome dell'applicazione. Se si // indicano piu' paragrafi questi vengono assegnati nell'ordine alle voci // di menu (da mettere nell'URL) da 1 in poi. La maschera usata e' la // EditMask specificata nel paragrafo; se non c'e', nothing happens // Ogni modifica puo' essere controllata e porcessata con la postprocess_ // config (vedi sotto) che agisce come la change_config di application. // La voce Scelta parametri di Application rimane come prima. class TConfig_application : public TApplication { TArray _paragraphs; int _which_config; MENU_TAG _last_choice; virtual bool create(); virtual bool destroy(); virtual bool menu(MENU_TAG); void do_config(int m); protected: virtual bool user_create() { return TRUE; } virtual bool user_destroy() { return TRUE; } // questa viene chiamata prima della run() e ferma tutto se ritorna // FALSE virtual bool preprocess_config (TMask& mask, TConfig& config); // questa viene chiamata dopo e blocca tutto se FALSE virtual bool postprocess_config (TMask& mask, TConfig& config); // questa e' come la change_config di application ma viene usata // dalla maschera principale; le viene passato in piu' il paragrafo // in corso di editing. E' chiamata per ogni parametro modificato // Se ritorna FALSE la modifica non viene accettata; default ritorna // TRUE e non rompe i bal virtual bool postprocess_config_changed (const char* par, const char* var, const char* oldv, const char* newv); public: TConfig_application(int which_config = CONFIG_GENERAL) : _which_config(which_config) {} virtual ~TConfig_application() {} }; #endif