campo-sirio/cg/cg1300.cpp
guy 1654274d5b Non lo so
git-svn-id: svn://10.65.10.50/trunk@782 c028cbd2-c16b-5b4b-a496-9718f37d4682
1994-12-20 15:10:03 +00:00

103 lines
1.7 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;
TForm* _form;
protected:
virtual bool create();
virtual bool destroy();
virtual bool menu(MENU_TAG);
public:
TEdit_form(const char* name);
const char* name() const { return _name; }
};
TEdit_form::TEdit_form(const char* name)
: _name(name), _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)
{
char sec = 'B';
switch(tag)
{
case MENU_ITEM(1):
sec = 'H'; break;
case MENU_ITEM(3):
sec = 'F'; break;
default:
break;
}
_form->edit(sec, odd_page);
return TRUE;
}
int cg1300(int argc, char* argv[])
{
TApplication::check_parameters(argc, 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]) : 'M';
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);
TString80 title;
title << (crea ? "Creazione" : "Modifica") << ": " << a.name();
a.run(argc, argv, title);
return 0;
}