isam.h Aggiunta macro megaf..a FOR_EACH_FILE_RECORD
Tolta classe fantasma TTransaction mask.cpp Aggiunto riconoscimento ufficiale dei TTree_field maskfld.cpp Implementazione dei nuovi, nonche' ovviamente fichissimi TWindowed_field maskfld.h Aggiunti i TWindowed_field e i TTree_field da essi derivati git-svn-id: svn://10.65.10.50/trunk@6145 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
cf5fee43d1
commit
2848710c89
@ -839,18 +839,11 @@ public:
|
|||||||
TRecfield(TRectype& rec, const char* name, int from = 0, int to = -1);
|
TRecfield(TRectype& rec, const char* name, int from = 0, int to = -1);
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
#define FOR_EACH_FILE_RECORD(isamfile) \
|
||||||
|
for (int _e##isamfile = isamfile.first(); \
|
||||||
|
_e##isamfile == NOERR; \
|
||||||
|
_e##isamfile = isamfile.next())
|
||||||
|
|
||||||
class TTransaction
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// @FPUB
|
|
||||||
void begin();
|
|
||||||
void end(bool success = TRUE);
|
|
||||||
void abort() { end(FALSE);}
|
|
||||||
};
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __ISAM_CPP
|
#ifdef __ISAM_CPP
|
||||||
#define extern
|
#define extern
|
||||||
|
@ -469,7 +469,7 @@ bool TMask::check_fields()
|
|||||||
for (int i = 0; i < max; i++)
|
for (int i = 0; i < max; i++)
|
||||||
{
|
{
|
||||||
TMask_field& f = fld(i);
|
TMask_field& f = fld(i);
|
||||||
const bool on = f.active() || (f.shown() && f.is_kind_of(CLASS_SHEET_FIELD));
|
const bool on = f.active() || (f.shown() && f.is_sheet());
|
||||||
if (on) // Don't test inactive fields
|
if (on) // Don't test inactive fields
|
||||||
{
|
{
|
||||||
if (f.parent() != curpage)
|
if (f.parent() != curpage)
|
||||||
@ -847,6 +847,7 @@ TMask_field* TMask::parse_field(TScanner& scanner)
|
|||||||
if (k == "GO") return new TGolem_field(this);
|
if (k == "GO") return new TGolem_field(this);
|
||||||
if (k == "BR") return new TBrowsefile_field(this);
|
if (k == "BR") return new TBrowsefile_field(this);
|
||||||
if (k == "SP") return new TSheet_field(this);
|
if (k == "SP") return new TSheet_field(this);
|
||||||
|
if (k == "TR") return new TTree_field(this);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -926,28 +927,26 @@ WINDOW TMask::read_page(
|
|||||||
while (scanner.popkey() != "EN")
|
while (scanner.popkey() != "EN")
|
||||||
{
|
{
|
||||||
TMask_field* f = parse_field(scanner);
|
TMask_field* f = parse_field(scanner);
|
||||||
#ifdef DBG
|
|
||||||
if (f == NULL)
|
if (f == NULL)
|
||||||
{
|
{
|
||||||
|
#ifdef DBG
|
||||||
const int f = fields();
|
const int f = fields();
|
||||||
TString e("Unknown control at position "); e << f;
|
TString e;
|
||||||
if (f > 0) e << ".\nLast good one was " << fld(f-1).dlg() << ": " << fld(f-1).prompt();
|
e << "Campo non riconosciuto alla posizione " << f;
|
||||||
yesnofatal_box(e);
|
if (f > 0)
|
||||||
|
e << ".\nL'ultimo riconosciuto e' " << fld(f-1).dlg() << ": " << fld(f-1).prompt();
|
||||||
|
error_box(e);
|
||||||
|
#endif
|
||||||
while (scanner.popkey() != "EN");
|
while (scanner.popkey() != "EN");
|
||||||
}
|
}
|
||||||
#endif
|
else
|
||||||
|
|
||||||
if (f != NULL)
|
|
||||||
{
|
{
|
||||||
const long start = clock();
|
const long start = clock();
|
||||||
|
|
||||||
f->construct(scanner, w);
|
f->construct(scanner, w);
|
||||||
add_field(f);
|
add_field(f);
|
||||||
|
|
||||||
_build_time += clock()-start;
|
_build_time += clock()-start;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4216,5 +4216,54 @@ const char* TZoom_field::win2raw(const char* data) const
|
|||||||
const char* TZoom_field::get_first_line() const
|
const char* TZoom_field::get_first_line() const
|
||||||
{ return raw2win(_str); }
|
{ return raw2win(_str); }
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TWindowed field
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void TWindowed_field::enable(bool on)
|
||||||
|
{
|
||||||
|
TOperable_field::enable(on);
|
||||||
|
if (_win)
|
||||||
|
_win->activate(on);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TWindowed_field::show(bool on)
|
||||||
|
{
|
||||||
|
TOperable_field::show(on);
|
||||||
|
if (_win && _win->is_open() != on)
|
||||||
|
{
|
||||||
|
if (on)
|
||||||
|
_win->open();
|
||||||
|
else
|
||||||
|
_win->close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TWindowed_field::parse_head(TScanner& scanner)
|
||||||
|
{
|
||||||
|
_ctl_data._width = scanner.integer();
|
||||||
|
_ctl_data._size = scanner.integer();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TWindowed_field::set_win(TWindow* w)
|
||||||
|
{
|
||||||
|
if (_win)
|
||||||
|
delete _win;
|
||||||
|
_win = w;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TWindowed_field::create(WINDOW parent)
|
||||||
|
{
|
||||||
|
_dlg = _ctl_data._dlg;
|
||||||
|
_parent = parent;
|
||||||
|
// Example of what should be done in derived classes
|
||||||
|
// set_win(new TSpecial_window(_ctl_data._x, _ctl_data._y,
|
||||||
|
// _ctl_data._width, _ctl_data._size,
|
||||||
|
// parent, this));
|
||||||
|
}
|
||||||
|
|
||||||
|
TWindowed_field::~TWindowed_field()
|
||||||
|
{
|
||||||
|
if (_win)
|
||||||
|
delete _win;
|
||||||
|
}
|
||||||
|
@ -1412,6 +1412,49 @@ public:
|
|||||||
virtual ~TGolem_field();
|
virtual ~TGolem_field();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TWindowed_field : public TOperable_field
|
||||||
|
{
|
||||||
|
WINDOW _parent;
|
||||||
|
short _dlg;
|
||||||
|
TWindow* _win;
|
||||||
|
|
||||||
|
protected: // TMask_field
|
||||||
|
virtual void parse_head(TScanner& scanner);
|
||||||
|
virtual void create(WINDOW parent);
|
||||||
|
virtual void enable(bool on = TRUE);
|
||||||
|
virtual void show(bool on = TRUE);
|
||||||
|
|
||||||
|
public: // TMask_field
|
||||||
|
virtual short dlg() const { return _dlg; }
|
||||||
|
virtual WINDOW parent() const { return _parent; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
TWindow& win() const { CHECK(_win, "NULL Window in field"); return *_win; }
|
||||||
|
void set_win(TWindow* w);
|
||||||
|
|
||||||
|
TWindowed_field(TMask* m) : TOperable_field(m), _win(NULL) { }
|
||||||
|
virtual ~TWindowed_field();
|
||||||
|
};
|
||||||
|
|
||||||
|
// Implemented in tree.cpp
|
||||||
|
class TTree;
|
||||||
|
class TTree_field : public TWindowed_field
|
||||||
|
{
|
||||||
|
protected: // TObject
|
||||||
|
word class_id() const;
|
||||||
|
bool is_kind_of(word cid) const;
|
||||||
|
|
||||||
|
protected: // TMask_field
|
||||||
|
virtual void create(WINDOW parent);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TTree* tree() const;
|
||||||
|
void set_tree(TTree* t);
|
||||||
|
|
||||||
|
TTree_field(TMask* m) : TWindowed_field(m) { }
|
||||||
|
virtual ~TTree_field() { }
|
||||||
|
};
|
||||||
|
|
||||||
#endif // __MASKFLD_H
|
#endif // __MASKFLD_H
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user