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;
}
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:
fe = fe_close;
break;

View File

@ -5,7 +5,7 @@
#include <msksheet.h>
#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_query_modify, se_notify_modify,
se_query_add, se_notify_add,

View File

@ -1544,7 +1544,7 @@ void TMask::on_idle()
{
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))

View File

@ -1409,7 +1409,7 @@ bool TEditable_field::test_key_complete(bool normal) const
{
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))
{
e->set_focusdirty(FALSE);
@ -1420,10 +1420,10 @@ bool TEditable_field::test_key_complete(bool normal) const
m.set_test_field(dlg());
else
m.stop_run(K_AUTO_ENTER);
return TRUE;
return true;
}
}
return FALSE;
return false;
}
// Certified 90%
@ -1513,7 +1513,7 @@ void TEditable_field::set_field(const TString& fr)
{
if (_field != NULL)
{
if (fr.empty())
if (fr.blank())
{
delete _field;
_field = NULL;
@ -1522,7 +1522,10 @@ void TEditable_field::set_field(const TString& fr)
*_field = fr;
}
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;
}
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;
case K_ENTER:
// 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)) &&
_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())
ok = _tree->shrink();
else
ok = _tree->expand();
if (ok)
owner().on_key(K_CTRL + K_SPACE);
{
owner().on_key(K_SHIFT + K_SPACE); // Expansion
owner().on_key(K_SPACE); // Selection
}
}
else
{
KEY key = K_SPACE;
if (ep->type == E_MOUSE_DBL)
key += K_CTRL;
key += K_CTRL; // Double click selection
owner().on_key(key);
}
if (ok)