campo-sirio/ps/ps0430200.cpp
guy ab083a1e95 Personalizzazioni per Cigno
git-svn-id: svn://10.65.10.50/branches/R_10_00@22727 c028cbd2-c16b-5b4b-a496-9718f37d4682
2012-09-18 10:35:36 +00:00

96 lines
2.0 KiB
C++
Executable File

#include <automask.h>
#include <defmask.h>
#include <msksheet.h>
#include <mask.h>
#include <recarray.h>
#include <recset.h>
#include <tabapp.h>
#include <multirel.h>
#include "../mg/anamag.h"
#include "ps0430200a.h"
///////////////////////////////////////////////////////////
// TUser_mask maschera
///////////////////////////////////////////////////////////
class TUser_mask : public TAutomask
{
public:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
TUser_mask() : TAutomask("ps0430200a") {}
~TUser_mask() {}
};
bool TUser_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_USER:
if (e == fe_modify)
{
const TString& new_user = o.get();
const TString16 old_user = user();
user() = new_user;
const char* defpar = "or";
TConfig userconf(CONFIG_USER, defpar);
for (int i = o.mask().fields()-1; i >= 0; i--)
{
TMask_field& f = o.mask().fld(i);
const TFieldref* fr = f.field();
if (fr != NULL)
f.set(fr->read(userconf, defpar));
}
user() = old_user;
}
break;
default:
break;
}
return true;
}
class TUser_set_app : public TSkeleton_application
{
public:
virtual const char * extra_modules() const {return "ba";}
virtual void main_loop();
TUser_set_app() {}
virtual ~TUser_set_app() {}
};
void TUser_set_app::main_loop()
{
TUser_mask mask;
while (mask.run() == K_ENTER)
{
const TString& new_user = mask.get(F_USER);
const TString16 old_user = user();
user() = new_user;
const char* defpar = "or";
TConfig userconf(CONFIG_USER, defpar);
for (int i = mask.fields()-1; i >= 0; i--)
{
TMask_field& f = mask.fld(i);
const TFieldref* fr = f.field();
if (fr != NULL)
fr->write(userconf, defpar, f.get());
}
user() = old_user;
mask.reset();
}
}
int ps0430200(int argc, char* argv[])
{
TUser_set_app a;
a.run(argc, argv, TR("Configurazione campi per utente"));
return 0;
}