applicat.cpp Corretta define per windows

controls.cpp    Corretta gestione palette dei colori
execp.cpp       Tentativo inutile di migliorare focus dopo lancio applicazioni
mask.cpp        Corretto metodo focus_field per maschere chiuse
msksheet.cpp    Migliorata getione ricerche dentro agli sheet


git-svn-id: svn://10.65.10.50/trunk@3304 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-07-31 15:14:06 +00:00
parent 330159d24a
commit 621bf39f3d
5 changed files with 52 additions and 19 deletions

View File

@ -319,7 +319,7 @@ void TApplication::terminate()
if (_create_ok)
{
destroy(); // Distruzione files e maschere
#if XVT_OS == XVT_OS_WIN
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT
const word WM_WAKEUP = RegisterWindowMessage("WAKEUP");
const HTASK ht = GetCurrentTask();
SendMessage(HWND_BROADCAST, WM_WAKEUP, (unsigned int)ht, 0L);

View File

@ -187,6 +187,38 @@ XVT_FNTID xvt_load_default_font()
static byte event_map[XIE_POST_NAVIGATION+1];
enum event_action { a_ignore, a_xvt, a_xvt_post, a_obj, a_child, a_update, a_select, a_post, a_debug };
HIDDEN void set_default_palette(WINDOW win)
{
COLOR colori[12] = { MASK_BACK_COLOR, MASK_LIGHT_COLOR, MASK_DARK_COLOR,
NORMAL_COLOR, NORMAL_BACK_COLOR,
FOCUS_COLOR, FOCUS_BACK_COLOR,
DISABLED_COLOR, DISABLED_BACK_COLOR,
BTN_BACK_COLOR, BTN_LIGHT_COLOR, BTN_DARK_COLOR };
XVT_PALETTE wp = xvt_vobj_get_palet(win);
if (wp != NULL)
{
XVT_PALETTE up = xvt_palet_create(XVT_PALETTE_USER, NULL);
if (up != NULL)
{
xvt_palet_set_tolerance(up, xvt_palet_get_tolerance(wp));
const int MAXCOL = 256;
COLOR colors[MAXCOL];
const int num = xvt_palet_get_colors(wp, colors, MAXCOL);
xvt_palet_add_colors(up, colors, num);
const int add = xvt_palet_add_colors(up, colori, 12);
if (add > 0)
{
xvt_vobj_set_palet(win, up);
xvt_palet_destroy(wp);
}
else
xvt_palet_destroy(up);
}
}
}
// @func Permette di cambiare i colori attivi del programma
void customize_colors()
@ -229,6 +261,8 @@ void customize_colors()
BTN_DARK_COLOR = colors.get_color("ButtonDark", NULL, -1, BTN_DARK_COLOR);
aga_set_pref(AGA_PREF_BTN_COLOR_DARK, BTN_DARK_COLOR);
set_default_palette(TASK_WIN);
if (_picture)
_picture->reload();
}
@ -354,6 +388,7 @@ WINDOW create_interface(WINDOW parent, short x, short y, short dx, short dy,
WINDOW win = xvt_win_create(wt, &r, (char*)caption, NULL, parent, wsf,
EM_ALL, (EVENT_HANDLER)xi_event, (long)msk);
CHECK(win, "Can't create an XVT window for an interface");
set_default_palette(win);
XI_OBJ_DEF* def = xi_create_itf_def(ITF_CID, xi_event_handler, &r, (char*)caption, (long)msk);
CHECK(def, "Can't define an interface");
@ -369,16 +404,6 @@ WINDOW create_interface(WINDOW parent, short x, short y, short dx, short dy,
xi_dequeue();
xi_tree_free(def);
COLOR colori[12] = { MASK_BACK_COLOR, MASK_LIGHT_COLOR, MASK_DARK_COLOR,
NORMAL_COLOR, NORMAL_BACK_COLOR,
FOCUS_COLOR, FOCUS_BACK_COLOR,
DISABLED_COLOR, DISABLED_BACK_COLOR,
BTN_BACK_COLOR, BTN_LIGHT_COLOR, BTN_DARK_COLOR };
XVT_PALETTE pu = xvt_palet_create(XVT_PALETTE_USER, NULL);
xvt_palet_add_colors(pu, colori, 12);
xvt_vobj_set_palet(win, pu);
xvt_palet_destroy(pu);
if (Y_FU_MULTIPLE == 0)
{

View File

@ -124,6 +124,7 @@ word TExternal_app::run(
{
tw.maximize();
tw.activate();
xvt_app_process_pending_events();
}
}
xvt_statbar_refresh();

View File

@ -284,13 +284,15 @@ int TMask::first_focus(short id)
}
TOperable_field& TMask::focus_field() const
{
const short focus = get_focus_id(win());
if (focus > 0 )
((TMask *)this)->_focus = id2pos(focus);
{
if (is_open())
{
const short focus = get_focus_id(win());
if (focus > 0 )
((TMask *)this)->_focus = id2pos(focus);
}
TMask_field & f = fld(_focus);
CHECK(f.is_kind_of(CLASS_OPERABLE_FIELD), "A non operable_field has the focus");
return (TOperable_field&)f;
}

View File

@ -1072,7 +1072,10 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
copy_cell2field();
}
else // edit_field
{
{
// Notifica il corretto campo col focus sulla maschera
sheet_mask().notify_focus_field(_edit_field->dlg());
ok = _edit_field->on_key(k);
if (!ok && k == K_F9) // Ricerca non completata?
@ -1091,7 +1094,9 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
{
mask2str(_cur_rec);
on_idle(); // Update immediately!
}
}
set_focus_cell(_cur_row, _cur_col);
_check_enabled = TRUE; // Re-enable checks
}
break;