Patch level : 2.2

Files correlati     : Alberi esetsi analmente
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@12552 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2004-12-15 14:02:47 +00:00
parent 94ca75f6e7
commit 10b647d216
5 changed files with 31 additions and 11 deletions

View File

@ -68,6 +68,14 @@ TField_event TAutomask::key2event(TMask_field& f, KEY key) const
fe = f.focusdirty() ? fe_modify : fe_init; fe = f.focusdirty() ? fe_modify : fe_init;
} }
break; break;
case K_SHIFT+K_SPACE:
if (f.is_kind_of(CLASS_TREE_FIELD))
fe = fe_button;
break;
case K_CTRL+K_SPACE:
if (f.is_kind_of(CLASS_TREE_FIELD))
fe = fe_select;
break;
case K_ENTER: case K_ENTER:
fe = fe_close; fe = fe_close;
break; break;

View File

@ -5,7 +5,7 @@
#include <msksheet.h> #include <msksheet.h>
#endif #endif
enum TField_event { fe_null, fe_init, fe_modify, fe_button, fe_close, enum TField_event { fe_null, fe_init, fe_modify, fe_button, fe_close, fe_select,
se_enter, se_leave, se_enter, se_leave,
se_query_modify, se_notify_modify, se_query_modify, se_notify_modify,
se_query_add, se_notify_add, se_query_add, se_notify_add,

View File

@ -1544,7 +1544,7 @@ void TMask::on_idle()
{ {
const TOperable_field & f = focus_field(); const TOperable_field & f = focus_field();
if (_last_test != f.dlg()) if (_last_test != f.dlg())
{ {
TEditable_field & e = (TEditable_field &) field(_test_fld); TEditable_field & e = (TEditable_field &) field(_test_fld);
if (!f.in_key(0) || !e.has_a_common_key(f)) if (!f.in_key(0) || !e.has_a_common_key(f))

View File

@ -1409,7 +1409,7 @@ bool TEditable_field::test_key_complete(bool normal) const
{ {
if (in_key(k) && m.key_valid(k)) if (in_key(k) && m.key_valid(k))
{ {
bool complete = TRUE; bool complete = true;
for (TEditable_field* e = m.get_key_field(k, TRUE); e; e = m.get_key_field(k, FALSE)) for (TEditable_field* e = m.get_key_field(k, TRUE); e; e = m.get_key_field(k, FALSE))
{ {
e->set_focusdirty(FALSE); e->set_focusdirty(FALSE);
@ -1420,10 +1420,10 @@ bool TEditable_field::test_key_complete(bool normal) const
m.set_test_field(dlg()); m.set_test_field(dlg());
else else
m.stop_run(K_AUTO_ENTER); m.stop_run(K_AUTO_ENTER);
return TRUE; return true;
} }
} }
return FALSE; return false;
} }
// Certified 90% // Certified 90%
@ -1513,7 +1513,7 @@ void TEditable_field::set_field(const TString& fr)
{ {
if (_field != NULL) if (_field != NULL)
{ {
if (fr.empty()) if (fr.blank())
{ {
delete _field; delete _field;
_field = NULL; _field = NULL;
@ -1522,7 +1522,10 @@ void TEditable_field::set_field(const TString& fr)
*_field = fr; *_field = fr;
} }
else else
_field = new TFieldref(fr, 0); {
if (!fr.blank())
_field = new TFieldref(fr, 0);
}
} }
@ -3403,7 +3406,13 @@ bool TEdit_field::on_key(KEY key)
return ok; return ok;
} }
else else
return handler(K_TAB); {
TMask& m = mask();
bool ok = handler(K_TAB);
if (ok && m.query_mode() && m.is_running() && in_key(0))
test_key_complete();
return ok;
}
break; break;
case K_ENTER: case K_ENTER:
// if (field() != NULL || mask().mode() == NO_MODE) // if (field() != NULL || mask().mode() == NO_MODE)

View File

@ -1368,20 +1368,23 @@ void TTree_window::handler(WINDOW win, EVENT* ep)
if (ok && (c == ni._plusx || (c >= ni._startx && c < ni._endx)) && if (ok && (c == ni._plusx || (c >= ni._startx && c < ni._endx)) &&
_tree->goto_node(ni._id)) _tree->goto_node(ni._id))
{ {
if (c == ni._plusx || (ni._expandable && ep->type == E_MOUSE_DBL)) if (c == ni._plusx || (ni._expandable && ep->type == E_MOUSE_DBL && c <= ni._plusx+3))
{ {
if (_tree->expanded()) if (_tree->expanded())
ok = _tree->shrink(); ok = _tree->shrink();
else else
ok = _tree->expand(); ok = _tree->expand();
if (ok) if (ok)
owner().on_key(K_CTRL + K_SPACE); {
owner().on_key(K_SHIFT + K_SPACE); // Expansion
owner().on_key(K_SPACE); // Selection
}
} }
else else
{ {
KEY key = K_SPACE; KEY key = K_SPACE;
if (ep->type == E_MOUSE_DBL) if (ep->type == E_MOUSE_DBL)
key += K_CTRL; key += K_CTRL; // Double click selection
owner().on_key(key); owner().on_key(key);
} }
if (ok) if (ok)