campo-sirio/ba/ba883.cpp

101 lines
2.2 KiB
C++
Executable File

#include <msksheet.h>
#include <relapp.h>
#include <urldefid.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) { return _msk; }
virtual bool changing_mask(int) { return FALSE;}
virtual TRelation* get_relation() const { return _rel; }
virtual int read(TMask& m) { m.autoload(); return NOERR; }
virtual int write(const TMask&) { return NOERR; }
virtual int rewrite(const TMask&) { 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() { dispatch_e_menu(BAR_ITEM(1)); return TRUE; }
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 main(int argc, char** argv)
{
if (argc < 2) fatal_box("You should specify a mask");
if (argc == 2)
{
TTest_application a(argv[1]);
a.run(argc, argv, "Test Mask");
}
else
{
TTestrel_application a(argv[1], argv[2]);
a.run(argc, argv, "Test Relation Application");
}
return 0;
}