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':
|
||||
zerofilled = TRUE; break;
|
||||
default :
|
||||
CHECKS(0, "FLAG sconosciuto in ", f);
|
||||
CHECKS(*s == 'B', "FLAG sconosciuto in ", f);
|
||||
break;
|
||||
}
|
||||
return *s;
|
||||
@ -1214,12 +1214,30 @@ word TEditable_field::last_key() const
|
||||
return (word)u;
|
||||
}
|
||||
|
||||
// Certified 90%
|
||||
// Certified 70%
|
||||
word TEditable_field::first_key() const
|
||||
{
|
||||
long u = _keys ? _keys->first_one() : 0;
|
||||
if (u < 0) u = 0;
|
||||
return (word)u;
|
||||
if (_keys == NULL)
|
||||
return 0;
|
||||
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
|
||||
@ -1357,6 +1375,8 @@ void TEditable_field::set(const char* data)
|
||||
_str = reformat(data);
|
||||
const TString& val = raw2win(_str);
|
||||
set_window_data(val);
|
||||
if (mask().is_running())
|
||||
set_dirty();
|
||||
}
|
||||
|
||||
// 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)
|
||||
{
|
||||
const int i = str2curr(data);
|
||||
current(i);
|
||||
if (mask().is_running())
|
||||
set_dirty();
|
||||
}
|
||||
|
||||
void TList_field::set_window_data(const char* data)
|
||||
@ -3653,7 +3681,6 @@ word TRadio_field::class_id() const
|
||||
return CLASS_RADIO_FIELD;
|
||||
}
|
||||
|
||||
|
||||
void TRadio_field::create(WINDOW parent)
|
||||
{
|
||||
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._width - 2, _flags.zerofilled ? 1 : items,
|
||||
_ctl_data._flags, _values);
|
||||
reset();
|
||||
current(0);
|
||||
}
|
||||
|
||||
|
||||
@ -3681,6 +3708,7 @@ int TRadio_field::current() const
|
||||
void TRadio_field::current(int n)
|
||||
{
|
||||
((TRadiobutton_control*)_ctl)->check_button(n);
|
||||
_str = _codes.get(n);
|
||||
}
|
||||
|
||||
|
||||
|
@ -569,6 +569,8 @@ public:
|
||||
word last_key() const;
|
||||
// @cmember Ritorna l'ultima chiave di appartenenza del campo
|
||||
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
|
||||
virtual const TFieldref* field() const
|
||||
@ -1197,6 +1199,9 @@ public:
|
||||
// @cmember Seleziona il precedente se possibile (no wrap)
|
||||
void select_prev() { select_by_ofs(-1); }
|
||||
|
||||
// @cmember Azzera il contenuto del campo
|
||||
virtual void reset();
|
||||
|
||||
// @cmember Costruttore
|
||||
TList_field(TMask* mask);
|
||||
virtual ~TList_field() {}
|
||||
|
Loading…
x
Reference in New Issue
Block a user