(svn r25414) -Codechange: Move handling of global hotkeys to HotkeyList.

This commit is contained in:
frosch
2013-06-15 15:31:22 +00:00
parent ee4e68bd5e
commit fef30983e6
11 changed files with 145 additions and 142 deletions

View File

@@ -269,6 +269,19 @@ struct BuildDocksToolbarWindow : Window {
static HotkeyList hotkeys;
};
/**
* Handler for global hotkeys of the BuildDocksToolbarWindow.
* @param hotkey Hotkey
* @return ES_HANDLED if hotkey was accepted.
*/
static EventState DockToolbarGlobalHotkeys(int hotkey)
{
if (_game_mode != GM_NORMAL) return ES_NOT_HANDLED;
Window *w = ShowBuildDocksToolbar();
if (w == NULL) return ES_NOT_HANDLED;
return w->OnHotkey(hotkey);
}
const uint16 _dockstoolbar_aqueduct_keys[] = {'B', '8', 0};
static Hotkey dockstoolbar_hotkeys[] = {
@@ -282,7 +295,7 @@ static Hotkey dockstoolbar_hotkeys[] = {
Hotkey(_dockstoolbar_aqueduct_keys, "aqueduct", WID_DT_BUILD_AQUEDUCT),
HOTKEY_LIST_END
};
HotkeyList BuildDocksToolbarWindow::hotkeys("dockstoolbar", dockstoolbar_hotkeys);
HotkeyList BuildDocksToolbarWindow::hotkeys("dockstoolbar", dockstoolbar_hotkeys, DockToolbarGlobalHotkeys);
/**
* Nested widget parts of docks toolbar, game version.
@@ -329,15 +342,6 @@ Window *ShowBuildDocksToolbar()
return AllocateWindowDescFront<BuildDocksToolbarWindow>(&_build_docks_toolbar_desc, TRANSPORT_WATER);
}
EventState DockToolbarGlobalHotkeys(uint16 key, uint16 keycode)
{
int num = BuildDocksToolbarWindow::hotkeys.CheckMatch(keycode, true);
if (num == -1) return ES_NOT_HANDLED;
Window *w = ShowBuildDocksToolbar();
if (w == NULL) return ES_NOT_HANDLED;
return w->OnHotkey(num);
}
/**
* Nested widget parts of docks toolbar, scenario editor version.
* Positions of #WID_DT_DEPOT, #WID_DT_STATION, and #WID_DT_BUOY widgets have changed.