Shorten ui_dialog_do_gadgets
This commit is contained in:
parent
0dc59ab3f2
commit
9d4e1e307c
|
@ -232,33 +232,34 @@ window_event_result ui_dialog_do_gadgets(UI_DIALOG * dlg,const d_event &event)
|
||||||
|
|
||||||
if (dlg->keyboard_focus_gadget != NULL)
|
if (dlg->keyboard_focus_gadget != NULL)
|
||||||
{
|
{
|
||||||
|
[=]{
|
||||||
|
UI_GADGET *UI_GADGET::*when;
|
||||||
switch (keypress )
|
switch (keypress )
|
||||||
{
|
{
|
||||||
case (KEY_TAB):
|
case (KEY_TAB):
|
||||||
if ( dlg->keyboard_focus_gadget->when_tab != NULL )
|
when = &UI_GADGET::when_tab;
|
||||||
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_tab;
|
|
||||||
break;
|
break;
|
||||||
case (KEY_TAB+KEY_SHIFTED):
|
case (KEY_TAB+KEY_SHIFTED):
|
||||||
if ( dlg->keyboard_focus_gadget->when_btab != NULL )
|
when = &UI_GADGET::when_btab;
|
||||||
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_btab;
|
|
||||||
break;
|
break;
|
||||||
case (KEY_UP):
|
case (KEY_UP):
|
||||||
if ( dlg->keyboard_focus_gadget->when_up != NULL )
|
when = &UI_GADGET::when_up;
|
||||||
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_up;
|
|
||||||
break;
|
break;
|
||||||
case (KEY_DOWN):
|
case (KEY_DOWN):
|
||||||
if ( dlg->keyboard_focus_gadget->when_down != NULL )
|
when = &UI_GADGET::when_down;
|
||||||
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_down;
|
|
||||||
break;
|
break;
|
||||||
case (KEY_LEFT):
|
case (KEY_LEFT):
|
||||||
if ( dlg->keyboard_focus_gadget->when_left != NULL )
|
when = &UI_GADGET::when_left;
|
||||||
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_left;
|
|
||||||
break;
|
break;
|
||||||
case (KEY_RIGHT):
|
case (KEY_RIGHT):
|
||||||
if ( dlg->keyboard_focus_gadget->when_right != NULL )
|
when = &UI_GADGET::when_right;
|
||||||
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_right;
|
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
if (const auto p = dlg->keyboard_focus_gadget->*when)
|
||||||
|
dlg->keyboard_focus_gadget = p;
|
||||||
|
}();
|
||||||
}
|
}
|
||||||
|
|
||||||
window_event_result rval = window_event_result::ignored;
|
window_event_result rval = window_event_result::ignored;
|
||||||
|
|
Loading…
Reference in a new issue