Shorten ui_dialog_do_gadgets

This commit is contained in:
Kp 2017-03-10 01:22:24 +00:00
parent 0dc59ab3f2
commit 9d4e1e307c

View file

@ -232,33 +232,34 @@ window_event_result ui_dialog_do_gadgets(UI_DIALOG * dlg,const d_event &event)
if (dlg->keyboard_focus_gadget != NULL)
{
[=]{
UI_GADGET *UI_GADGET::*when;
switch (keypress )
{
case (KEY_TAB):
if ( dlg->keyboard_focus_gadget->when_tab != NULL )
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_tab;
when = &UI_GADGET::when_tab;
break;
case (KEY_TAB+KEY_SHIFTED):
if ( dlg->keyboard_focus_gadget->when_btab != NULL )
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_btab;
when = &UI_GADGET::when_btab;
break;
case (KEY_UP):
if ( dlg->keyboard_focus_gadget->when_up != NULL )
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_up;
when = &UI_GADGET::when_up;
break;
case (KEY_DOWN):
if ( dlg->keyboard_focus_gadget->when_down != NULL )
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_down;
when = &UI_GADGET::when_down;
break;
case (KEY_LEFT):
if ( dlg->keyboard_focus_gadget->when_left != NULL )
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_left;
when = &UI_GADGET::when_left;
break;
case (KEY_RIGHT):
if ( dlg->keyboard_focus_gadget->when_right != NULL )
dlg->keyboard_focus_gadget = dlg->keyboard_focus_gadget->when_right;
when = &UI_GADGET::when_right;
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;