From 2e0acdbb075b953acca4c067c0119de969a0d5fe Mon Sep 17 00:00:00 2001 From: yexo Date: Sat, 3 Jul 2010 18:10:18 +0000 Subject: [PATCH] (svn r20062) -Feature: customizable hotkeys for the airport toolbar --- src/airport_gui.cpp | 18 +++++++++++++----- src/hotkeys.cpp | 2 ++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp index 336c3ea6f3..942f501802 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,8 +137,17 @@ struct BuildAirToolbarWindow : Window { DeleteWindowById(WC_BUILD_STATION, TRANSPORT_AIR); DeleteWindowById(WC_SELECT_STATION, 0); } + + static Hotkey airtoolbar_hotkeys[]; }; +Hotkey BuildAirToolbarWindow::airtoolbar_hotkeys[] = { + Hotkey('1', "airport", ATW_AIRPORT), + Hotkey('2', "demolish", ATW_DEMOLISH), + HOTKEY_LIST_END(BuildAirToolbarWindow) +}; +Hotkey *_airtoolbar_hotkeys = BuildAirToolbarWindow::airtoolbar_hotkeys; + static const NWidgetPart _nested_air_toolbar_widgets[] = { NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN), diff --git a/src/hotkeys.cpp b/src/hotkeys.cpp index 6856fc10e8..6b0e1a9938 100644 --- a/src/hotkeys.cpp +++ b/src/hotkeys.cpp @@ -231,6 +231,7 @@ struct MainWindow; struct TerraformToolbarWindow; struct ScenarioEditorLandscapeGenerationWindow; struct OrdersWindow; +struct BuildAirToolbarWindow; static void SaveLoadHotkeys(bool save) { @@ -248,6 +249,7 @@ static void SaveLoadHotkeys(bool save) SL_HOTKEYS(terraform, TerraformToolbarWindow); SL_HOTKEYS(terraform_editor, ScenarioEditorLandscapeGenerationWindow); SL_HOTKEYS(order, OrdersWindow); + SL_HOTKEYS(airtoolbar, BuildAirToolbarWindow); #undef SL_HOTKEYS