campo-sirio/ba/ba3400.cpp

102 lines
2.0 KiB
C++
Raw Normal View History

#include <relapp.h>
///////////////////////////////////////////////////////////
// Test Relapp
///////////////////////////////////////////////////////////
class TTestrel_application : public TRelation_application
{
const char* _maskname;
const char* _num;
TRelation* _rel;
TMask* _msk;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE;}
virtual TRelation* get_relation() const { return _rel; }
virtual int read(TMask& m) { m.autoload(); return NOERR; }
public:
TTestrel_application(const char* name, const char* num);
};
TTestrel_application::TTestrel_application(const char* name, const char* num)
: _maskname(name), _num(num),
_msk(NULL), _rel(NULL)
{}
bool TTestrel_application::user_create()
{
_msk = new TMask(_maskname);
int id = atoi(_num);
if (id > 0) _rel = new TRelation(id);
else _rel = new TRelation(_num);
return TRUE;
}
bool TTestrel_application::user_destroy()
{
delete _msk;
delete _rel;
return TRUE;
}
///////////////////////////////////////////////////////////
// Testmask
///////////////////////////////////////////////////////////
class TTest_application : public TApplication
{
const char* _maskname;
protected:
bool create() { return menu(0); }
bool destroy() { return TRUE; }
bool menu(MENU_TAG);
public:
TTest_application(const char* name) : _maskname(name) {}
};
bool TTest_application::menu(MENU_TAG)
{
TMask m(_maskname);
KEY k = m.run();
if (k == K_QUIT) stop_run();
return k != K_QUIT;
}
///////////////////////////////////////////////////////////
int ba3400(int argc, char* argv[])
{
TApplication::check_parameters(argc, argv);
if (argc < 3)
{
error_box("You should specify a mask");
return 1;
}
if (argc == 3)
{
TTest_application a(argv[2]);
a.run(argc, argv, "Testmask");
}
else
{
TTestrel_application a(argv[2], argv[3]);
a.run(argc, argv, "Gestione archivi");
}
return 0;
}