Modificat focus_field e test di autopremimento

git-svn-id: svn://10.65.10.50/trunk@2927 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1996-05-29 08:24:23 +00:00
parent fd1e643907
commit b873becb66
2 changed files with 28 additions and 13 deletions

View File

@ -240,6 +240,18 @@ int TMask::first_focus(short id)
return f;
}
TOperable_field& TMask::focus_field() const
{
const short focus = get_focus_id(win());
if (focus > 0 )
((TMask *)this)->_focus = id2pos(focus);
TMask_field & f = fld(_focus);
CHECK(f.is_kind_of(CLASS_OPERABLE_FIELD), "Can't set focus to non operable_field");
return (TOperable_field&)f;
}
void TMask::set_focus_field(short id)
{
const int pos = id2pos(id);
@ -1141,7 +1153,7 @@ void TMask::autosave(TRelation& r) const
if (!save)
{
e.autoload(r);
save = f.empty();
save = f.empty();
}
if (save)
e.autosave(r);
@ -1197,16 +1209,20 @@ void TMask::on_idle()
_error_severity = 0;
set_focus();
}
if (_test_fld >= 0 && _last_test != _focus)
{
TEditable_field & e = (TEditable_field &) field(_test_fld);
const TEditable_field & c = (TEditable_field &) fld(_focus);
if (!c.has_a_common_key(e))
{
e.test_key_complete(FALSE);
_test_fld = -1;
}
_last_test = _focus;
if (_test_fld >= 0)
{
const TOperable_field & f = focus_field();
if (_last_test != f.dlg())
{
TEditable_field & e = (TEditable_field &) field(_test_fld);
if (!f.in_key(0) || !e.has_a_common_key(f))
{
e.test_key_complete(FALSE);
_test_fld = -1;
}
_last_test = f.dlg();
}
}
}
}

View File

@ -271,8 +271,7 @@ public:
int first_focus(short id);
// @cmember Ritorna il numero del controllo che possiede il focus
TOperable_field& focus_field() const
{ return (TOperable_field&)fld(_focus); }
TOperable_field& focus_field() const;
// @cmember Disabilita la lettura dei check della maschera
void disable_starting_check()