99 lines
1.8 KiB
C++
Executable File
99 lines
1.8 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <mask.h>
|
|
#include <form.h>
|
|
#include <utility.h>
|
|
#include <urldefid.h>
|
|
|
|
class TEdit_form : public TApplication
|
|
{
|
|
const char* _name;
|
|
TMaskmode _mode;
|
|
TForm* _form;
|
|
|
|
protected:
|
|
virtual bool create();
|
|
virtual bool destroy();
|
|
virtual bool menu(MENU_TAG);
|
|
|
|
public:
|
|
TEdit_form(const char* name, TMaskmode mode);
|
|
const char* name() const { return _name; }
|
|
};
|
|
|
|
|
|
TEdit_form::TEdit_form(const char* name, TMaskmode mode)
|
|
: _name(name), _mode(mode), _form(NULL)
|
|
{}
|
|
|
|
|
|
bool TEdit_form::create()
|
|
{
|
|
_form = new TForm(name());
|
|
dispatch_e_menu(MENU_ITEM(2));
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
bool TEdit_form::destroy()
|
|
{
|
|
delete _form;
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
bool TEdit_form::menu(MENU_TAG tag)
|
|
{
|
|
int sec = 1;
|
|
switch(tag)
|
|
{
|
|
case MENU_ITEM(1): sec = 0; break;
|
|
case MENU_ITEM(3): sec = 2; break;
|
|
default : sec = 1; break;
|
|
}
|
|
_form->edit(_mode, sec);
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
int cg1300(int argc, char* argv[])
|
|
{
|
|
if (argc < 3)
|
|
{
|
|
error_box("Specificare il nome del profilo di stampa");
|
|
return 1;
|
|
}
|
|
|
|
TFilename form(argv[2]); form.ext("frm");
|
|
|
|
const char mode = argc > 3 ? toupper(argv[3][1]) : ' ';
|
|
|
|
const bool crea = (mode == 'C') || !fexist(form);
|
|
if (crea)
|
|
{
|
|
TFilename base(form.left(3)); base.ext("frm");
|
|
if (!fexist(base))
|
|
{
|
|
error_box("Non esiste il file %s", (const char*)base);
|
|
return 1;
|
|
}
|
|
if (!fcopy(base, form))
|
|
{
|
|
error_box("Impossibile copiare %s in %s", (const char*)base, (const char*)form);
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if (!fexist(form))
|
|
{
|
|
error_box("Non esiste il file %s", (const char*)form);
|
|
return 1;
|
|
}
|
|
|
|
TEdit_form a(form, (mode == 'I') ? MODE_INS : MODE_MOD);
|
|
TString title(40);
|
|
title << "Modifica modello: " << a.name();
|
|
a.run(argc, argv, title);
|
|
|
|
return 0;
|
|
}
|