82 lines
2.4 KiB
C++
Executable File
82 lines
2.4 KiB
C++
Executable File
#ifndef __CONFAPP_H
|
|
#define __CONFAPP_H
|
|
|
|
#ifndef __APPLICAT_H
|
|
#include <applicat.h>
|
|
#endif
|
|
|
|
#ifndef __CONFIG_H
|
|
#include <config.h>
|
|
#endif
|
|
|
|
#ifndef __MASK_H
|
|
#include <mask.h>
|
|
#endif
|
|
|
|
// le applicazioni di questo tipo servono a leggere - scrivere - modificare
|
|
// files di configurazione. La linea di comando e'
|
|
//
|
|
// <app> [-f <filename>] [-d] [<paragraph>, ...]
|
|
//
|
|
// 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
|
|
|
|
|
|
|
|
|
|
|