diff options
author | yexo <yexo@openttd.org> | 2010-07-03 18:10:18 +0000 |
---|---|---|
committer | yexo <yexo@openttd.org> | 2010-07-03 18:10:18 +0000 |
commit | 2e0acdbb075b953acca4c067c0119de969a0d5fe (patch) | |
tree | 5bc6d770ebc60e202dc41b1c396854a071c61078 /src/airport_gui.cpp | |
parent | cf3fb937ab4e6f75b63fc02008f9f5fb0745e5e9 (diff) | |
download | openttd-2e0acdbb075b953acca4c067c0119de969a0d5fe.tar.xz |
(svn r20062) -Feature: customizable hotkeys for the airport toolbar
Diffstat (limited to 'src/airport_gui.cpp')
-rw-r--r-- | src/airport_gui.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp index 336c3ea6f..942f50180 100644 --- a/src/airport_gui.cpp +++ b/src/airport_gui.cpp @@ -26,6 +26,7 @@ #include "newgrf_airport.h" #include "widgets/dropdown_type.h" #include "core/geometry_func.hpp" +#include "hotkeys.h" #include "table/sprites.h" #include "table/strings.h" @@ -106,11 +107,9 @@ struct BuildAirToolbarWindow : Window { virtual EventState OnKeyPress(uint16 key, uint16 keycode) { - switch (keycode) { - case '1': BuildAirClick_Airport(this); break; - case '2': BuildAirClick_Demolish(this); break; - default: return ES_NOT_HANDLED; - } + int num = CheckHotkeyMatch(airtoolbar_hotkeys, keycode, this); + if (num == -1) return ES_NOT_HANDLED; + this->OnClick(Point(), num, 1); return ES_HANDLED; } @@ -138,7 +137,16 @@ struct BuildAirToolbarWindow : Window { DeleteWindowById(WC_BUILD_STATION, TRANSPORT_AIR); DeleteWindowById(WC_SELECT_STATION, 0); } + + static Hotkey<BuildAirToolbarWindow> airtoolbar_hotkeys[]; +}; + +Hotkey<BuildAirToolbarWindow> BuildAirToolbarWindow::airtoolbar_hotkeys[] = { + Hotkey<BuildAirToolbarWindow>('1', "airport", ATW_AIRPORT), + Hotkey<BuildAirToolbarWindow>('2', "demolish", ATW_DEMOLISH), + HOTKEY_LIST_END(BuildAirToolbarWindow) }; +Hotkey<BuildAirToolbarWindow> *_airtoolbar_hotkeys = BuildAirToolbarWindow::airtoolbar_hotkeys; static const NWidgetPart _nested_air_toolbar_widgets[] = { NWidget(NWID_HORIZONTAL), |