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
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |