Aggiunto flag button
Aggiunto check per campi required Corretta has_a_common_key git-svn-id: svn://10.65.10.50/trunk@2928 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b873becb66
commit
4ccc769e12
@ -55,7 +55,7 @@ TMask_field::TField_Flags::TField_Flags()
|
|||||||
enabled = enable_default = TRUE;
|
enabled = enable_default = TRUE;
|
||||||
shown = show_default = TRUE;
|
shown = show_default = TRUE;
|
||||||
uppercase = rightjust = FALSE;
|
uppercase = rightjust = FALSE;
|
||||||
zerofilled = FALSE;
|
zerofilled = button = FALSE;
|
||||||
dirty = focusdirty = FALSE;
|
dirty = focusdirty = FALSE;
|
||||||
roman = exchange = FALSE;
|
roman = exchange = FALSE;
|
||||||
firm = ghost = FALSE;
|
firm = ghost = FALSE;
|
||||||
@ -81,6 +81,8 @@ char TMask_field::TField_Flags::update(const char* f)
|
|||||||
password = TRUE; break;
|
password = TRUE; break;
|
||||||
case 'A':
|
case 'A':
|
||||||
automagic = persistent = TRUE; break;
|
automagic = persistent = TRUE; break;
|
||||||
|
case 'B':
|
||||||
|
button = TRUE; break;
|
||||||
case 'D':
|
case 'D':
|
||||||
enable_default = enabled = FALSE; break;
|
enable_default = enabled = FALSE; break;
|
||||||
case 'F':
|
case 'F':
|
||||||
@ -101,8 +103,8 @@ char TMask_field::TField_Flags::update(const char* f)
|
|||||||
exchange = TRUE; break;
|
exchange = TRUE; break;
|
||||||
case 'Z':
|
case 'Z':
|
||||||
zerofilled = TRUE; break;
|
zerofilled = TRUE; break;
|
||||||
default :
|
default :
|
||||||
CHECKS(*s == 'B', "FLAG sconosciuto in ", f);
|
CHECKS(FALSE, "FLAG sconosciuto in ", f);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return *s;
|
return *s;
|
||||||
@ -686,6 +688,10 @@ void TOperable_field::set_focus() const
|
|||||||
mask().set_focus_field(dlg());
|
mask().set_focus_field(dlg());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Certified 100%
|
||||||
|
bool TOperable_field::is_kind_of(word cid) const
|
||||||
|
{ return cid == CLASS_OPERABLE_FIELD || TMask_field::is_kind_of(cid); }
|
||||||
|
|
||||||
void TOperable_field::enable(bool on)
|
void TOperable_field::enable(bool on)
|
||||||
{
|
{
|
||||||
TMask_field::enable(on);
|
TMask_field::enable(on);
|
||||||
@ -1220,23 +1226,20 @@ word TEditable_field::first_key() const
|
|||||||
if (_keys == NULL)
|
if (_keys == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
const int last = last_key();
|
const int last = last_key();
|
||||||
for (long i = 1; i <= last; i++)
|
for (int i = 1; i <= last; i++)
|
||||||
if ((*_keys)[i] == TRUE)
|
if (in_key(i) == TRUE)
|
||||||
break;
|
break;
|
||||||
return (word)i;
|
return (word)i;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Certified 70%
|
// Certified 70%
|
||||||
bool TEditable_field::has_a_common_key(const TEditable_field & e) const
|
bool TEditable_field::has_a_common_key(const TMask_field & f) const
|
||||||
|
|
||||||
{
|
{
|
||||||
if (_keys != NULL && e._keys != NULL)
|
const int last = last_key();
|
||||||
{
|
for (int i = 1; i <= last; i++)
|
||||||
const int last = last_key();
|
if (in_key(i) && f.in_key(i))
|
||||||
for (long i = 1; i <= last; i++)
|
return TRUE;
|
||||||
if ((*_keys)[i] == TRUE && (*e._keys)[i] == TRUE)
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2184,14 +2187,9 @@ KEY TBrowse::run()
|
|||||||
byte buttons = 0;
|
byte buttons = 0;
|
||||||
if (_insert.not_empty())
|
if (_insert.not_empty())
|
||||||
{
|
{
|
||||||
buttons = 3; // Mette il bottone di gestione, a meno che ...
|
// Mette il bottone di gestione, a meno che ...
|
||||||
/*
|
if (_cursor->items() == 0) buttons = 2; // Non mette il bottone collega se non ci sono elementi
|
||||||
if (_insert[0] == 'G') // Gestione Golem
|
else buttons = 3;
|
||||||
{
|
|
||||||
buttons |= 2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
*/
|
|
||||||
if (_insert[0] != 'G')
|
if (_insert[0] != 'G')
|
||||||
{
|
{
|
||||||
const TString& maskname = field().mask().source_file();
|
const TString& maskname = field().mask().source_file();
|
||||||
@ -2733,6 +2731,7 @@ bool TEdit_field::default_error_box() const
|
|||||||
bool TEdit_field::on_key(KEY key)
|
bool TEdit_field::on_key(KEY key)
|
||||||
{
|
{
|
||||||
const int vf = validate_func();
|
const int vf = validate_func();
|
||||||
|
static bool search_in_progress = FALSE;
|
||||||
|
|
||||||
switch(key)
|
switch(key)
|
||||||
{
|
{
|
||||||
@ -2769,8 +2768,14 @@ bool TEdit_field::on_key(KEY key)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (check_enabled() && (!query || forced()) && vf != 21)
|
// if (check_enabled() && (!query || forced()) && vf != 21)
|
||||||
ok = browse()->check();
|
if (check_enabled() && vf != 21)
|
||||||
|
{
|
||||||
|
if (!query || forced())
|
||||||
|
ok = browse()->check();
|
||||||
|
else
|
||||||
|
browse()->check();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ok)
|
if (ok)
|
||||||
@ -2820,14 +2825,16 @@ bool TEdit_field::on_key(KEY key)
|
|||||||
else ok = browse()->empty_check();
|
else ok = browse()->empty_check();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!ok) return default_error_box();
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
ok = !required() || get().not_empty();
|
||||||
|
if (!ok) return default_error_box();
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case K_F9:
|
case K_F9:
|
||||||
if (check_enabled())
|
if (check_enabled())
|
||||||
{
|
{
|
||||||
enable_check(FALSE);
|
|
||||||
if (focusdirty())
|
if (focusdirty())
|
||||||
get_window_data();
|
get_window_data();
|
||||||
|
|
||||||
@ -2836,7 +2843,6 @@ bool TEdit_field::on_key(KEY key)
|
|||||||
else beep();
|
else beep();
|
||||||
|
|
||||||
if (k != K_F9) set_focus();
|
if (k != K_F9) set_focus();
|
||||||
enable_check(TRUE);
|
|
||||||
|
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
@ -2851,16 +2857,19 @@ bool TEdit_field::on_key(KEY key)
|
|||||||
{
|
{
|
||||||
test_key_complete();
|
test_key_complete();
|
||||||
}
|
}
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
send_key(K_TAB, 0); // Passa al campo successivo
|
send_key(K_TAB, 0); // Passa al campo successivo
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
if (_browse == NULL && has_button())
|
||||||
|
handler(K_F9);
|
||||||
break;
|
break;
|
||||||
case K_CTRL+K_SPACE:
|
case K_CTRL+K_SPACE:
|
||||||
set_dirty(TRUE);
|
set_dirty(TRUE);
|
||||||
|
@ -94,7 +94,8 @@ protected:
|
|||||||
// @cmember <t TField_Flags> | _flags | | Flag indicante lo stato del campo
|
// @cmember <t TField_Flags> | _flags | | Flag indicante lo stato del campo
|
||||||
struct TField_Flags
|
struct TField_Flags
|
||||||
{
|
{
|
||||||
bool automagic : 1;
|
bool automagic : 1;
|
||||||
|
bool button : 1;
|
||||||
bool dirty : 2; // Modified during run ?
|
bool dirty : 2; // Modified during run ?
|
||||||
bool enabled : 1; // Is editable
|
bool enabled : 1; // Is editable
|
||||||
bool enable_default : 1;
|
bool enable_default : 1;
|
||||||
@ -203,6 +204,9 @@ public:
|
|||||||
// @cmember Ritorna TRUE se il campo e' automagic
|
// @cmember Ritorna TRUE se il campo e' automagic
|
||||||
bool automagic() const
|
bool automagic() const
|
||||||
{ return _flags.automagic; }
|
{ return _flags.automagic; }
|
||||||
|
// @cmember Ritorna TRUE se ha un bottone di campo
|
||||||
|
bool has_button() const
|
||||||
|
{ return _flags.button; }
|
||||||
// @cmember Ritorna TRUE se si tratta di campo fantasma
|
// @cmember Ritorna TRUE se si tratta di campo fantasma
|
||||||
bool ghost() const
|
bool ghost() const
|
||||||
{ return _flags.ghost; }
|
{ return _flags.ghost; }
|
||||||
@ -429,6 +433,7 @@ protected: // TMask_field
|
|||||||
virtual void highlight() const;
|
virtual void highlight() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
virtual bool is_kind_of(word cid) const;
|
||||||
|
|
||||||
// @cmember Esegue processo in background
|
// @cmember Esegue processo in background
|
||||||
virtual void on_idle() {}
|
virtual void on_idle() {}
|
||||||
@ -569,8 +574,8 @@ 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>
|
// @cmember Verifica che il campo abbia almeno una chiave in con il campo <p f>
|
||||||
bool has_a_common_key(const TEditable_field & e) const;
|
bool has_a_common_key(const TMask_field & f) 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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user