Modificato il meccanismo di autopremimento e correta la gestione del flags 'B'
git-svn-id: svn://10.65.10.50/trunk@2809 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
39e455265a
commit
0d934d6685
@ -102,7 +102,7 @@ char TMask_field::TField_Flags::update(const char* f)
|
|||||||
case 'Z':
|
case 'Z':
|
||||||
zerofilled = TRUE; break;
|
zerofilled = TRUE; break;
|
||||||
default :
|
default :
|
||||||
CHECKS(0, "FLAG sconosciuto in ", f);
|
CHECKS(*s == 'B', "FLAG sconosciuto in ", f);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return *s;
|
return *s;
|
||||||
@ -848,7 +848,7 @@ bool TOperable_field::do_message(int num)
|
|||||||
case 0:
|
case 0:
|
||||||
modify_list(TRUE, mask().field(fld), msg); continue;
|
modify_list(TRUE, mask().field(fld), msg); continue;
|
||||||
case 1:
|
case 1:
|
||||||
mask().disable(fld);
|
mask().disable(fld);
|
||||||
mask().reset(fld);
|
mask().reset(fld);
|
||||||
continue;
|
continue;
|
||||||
case 2:
|
case 2:
|
||||||
@ -1214,14 +1214,32 @@ word TEditable_field::last_key() const
|
|||||||
return (word)u;
|
return (word)u;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Certified 90%
|
// Certified 70%
|
||||||
word TEditable_field::first_key() const
|
word TEditable_field::first_key() const
|
||||||
{
|
{
|
||||||
long u = _keys ? _keys->first_one() : 0;
|
if (_keys == NULL)
|
||||||
if (u < 0) u = 0;
|
return 0;
|
||||||
return (word)u;
|
const int last = last_key();
|
||||||
|
for (long i = 1; i <= last; i++)
|
||||||
|
if ((*_keys)[i] == TRUE)
|
||||||
|
break;
|
||||||
|
return (word)i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Certified 70%
|
||||||
|
bool TEditable_field::has_a_common_key(const TEditable_field & e) const
|
||||||
|
|
||||||
|
{
|
||||||
|
if (_keys != NULL && e._keys != NULL)
|
||||||
|
{
|
||||||
|
const int last = last_key();
|
||||||
|
for (long i = 1; i <= last; i++)
|
||||||
|
if ((*_keys)[i] == TRUE && (*e._keys)[i] == TRUE)
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
bool TEditable_field::test_key_complete(bool normal) const
|
bool TEditable_field::test_key_complete(bool normal) const
|
||||||
{
|
{
|
||||||
TMask& m = mask();
|
TMask& m = mask();
|
||||||
@ -1357,6 +1375,8 @@ void TEditable_field::set(const char* data)
|
|||||||
_str = reformat(data);
|
_str = reformat(data);
|
||||||
const TString& val = raw2win(_str);
|
const TString& val = raw2win(_str);
|
||||||
set_window_data(val);
|
set_window_data(val);
|
||||||
|
if (mask().is_running())
|
||||||
|
set_dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Certified 100%
|
// Certified 100%
|
||||||
@ -3567,10 +3587,18 @@ int TList_field::str2curr(const char* data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TList_field::reset()
|
||||||
|
{
|
||||||
|
if (!_flags.persistent)
|
||||||
|
current(0);
|
||||||
|
}
|
||||||
|
|
||||||
void TList_field::set(const char* data)
|
void TList_field::set(const char* data)
|
||||||
{
|
{
|
||||||
const int i = str2curr(data);
|
const int i = str2curr(data);
|
||||||
current(i);
|
current(i);
|
||||||
|
if (mask().is_running())
|
||||||
|
set_dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TList_field::set_window_data(const char* data)
|
void TList_field::set_window_data(const char* data)
|
||||||
@ -3653,7 +3681,6 @@ word TRadio_field::class_id() const
|
|||||||
return CLASS_RADIO_FIELD;
|
return CLASS_RADIO_FIELD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TRadio_field::create(WINDOW parent)
|
void TRadio_field::create(WINDOW parent)
|
||||||
{
|
{
|
||||||
const int items = _codes.items();
|
const int items = _codes.items();
|
||||||
@ -3667,7 +3694,7 @@ void TRadio_field::create(WINDOW parent)
|
|||||||
_ctl_data._x + 1, _ctl_data._y + 1,
|
_ctl_data._x + 1, _ctl_data._y + 1,
|
||||||
_ctl_data._width - 2, _flags.zerofilled ? 1 : items,
|
_ctl_data._width - 2, _flags.zerofilled ? 1 : items,
|
||||||
_ctl_data._flags, _values);
|
_ctl_data._flags, _values);
|
||||||
reset();
|
current(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -3681,6 +3708,7 @@ int TRadio_field::current() const
|
|||||||
void TRadio_field::current(int n)
|
void TRadio_field::current(int n)
|
||||||
{
|
{
|
||||||
((TRadiobutton_control*)_ctl)->check_button(n);
|
((TRadiobutton_control*)_ctl)->check_button(n);
|
||||||
|
_str = _codes.get(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -569,7 +569,9 @@ public:
|
|||||||
word last_key() const;
|
word last_key() const;
|
||||||
// @cmember Ritorna l'ultima chiave di appartenenza del campo
|
// @cmember Ritorna l'ultima chiave di appartenenza del campo
|
||||||
word first_key() const;
|
word first_key() const;
|
||||||
|
// @cmember Verifica che il campo abbia almeno una chiave in con il campo <p e>
|
||||||
|
bool has_a_common_key(const TEditable_field & e) const;
|
||||||
|
|
||||||
// @cmember Ritorna il nome del campo corrsipondente sul file
|
// @cmember Ritorna il nome del campo corrsipondente sul file
|
||||||
virtual const TFieldref* field() const
|
virtual const TFieldref* field() const
|
||||||
{ return _field; }
|
{ return _field; }
|
||||||
@ -1196,6 +1198,9 @@ public:
|
|||||||
|
|
||||||
// @cmember Seleziona il precedente se possibile (no wrap)
|
// @cmember Seleziona il precedente se possibile (no wrap)
|
||||||
void select_prev() { select_by_ofs(-1); }
|
void select_prev() { select_by_ofs(-1); }
|
||||||
|
|
||||||
|
// @cmember Azzera il contenuto del campo
|
||||||
|
virtual void reset();
|
||||||
|
|
||||||
// @cmember Costruttore
|
// @cmember Costruttore
|
||||||
TList_field(TMask* mask);
|
TList_field(TMask* mask);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user