summaryrefslogtreecommitdiff
path: root/src/terraform_gui.cpp
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2013-06-15 15:31:22 +0000
committerfrosch <frosch@openttd.org>2013-06-15 15:31:22 +0000
commitfef30983e643943df24a7090a7175cfa66f3ba15 (patch)
tree5129b4c530168788d3a4ebec180d3c910c37b942 /src/terraform_gui.cpp
parentee4e68bd5e4882397bc023040a2977047d22ccb7 (diff)
downloadopenttd-fef30983e643943df24a7090a7175cfa66f3ba15.tar.xz
(svn r25414) -Codechange: Move handling of global hotkeys to HotkeyList.
Diffstat (limited to 'src/terraform_gui.cpp')
-rw-r--r--src/terraform_gui.cpp48
1 files changed, 28 insertions, 20 deletions
diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp
index 7240391e0..d1815ca9b 100644
--- a/src/terraform_gui.cpp
+++ b/src/terraform_gui.cpp
@@ -290,6 +290,19 @@ struct TerraformToolbarWindow : Window {
static HotkeyList hotkeys;
};
+/**
+ * Handler for global hotkeys of the TerraformToolbarWindow.
+ * @param hotkey Hotkey
+ * @return ES_HANDLED if hotkey was accepted.
+ */
+static EventState TerraformToolbarGlobalHotkeys(int hotkey)
+{
+ if (_game_mode != GM_NORMAL) return ES_NOT_HANDLED;
+ Window *w = ShowTerraformToolbar(NULL);
+ if (w == NULL) return ES_NOT_HANDLED;
+ return w->OnHotkey(hotkey);
+}
+
static Hotkey terraform_hotkeys[] = {
Hotkey('Q' | WKC_GLOBAL_HOTKEY, "lower", WID_TT_LOWER_LAND),
Hotkey('W' | WKC_GLOBAL_HOTKEY, "raise", WID_TT_RAISE_LAND),
@@ -301,7 +314,7 @@ static Hotkey terraform_hotkeys[] = {
Hotkey('P', "placeobject", WID_TT_PLACE_OBJECT),
HOTKEY_LIST_END
};
-HotkeyList TerraformToolbarWindow::hotkeys("terraform", terraform_hotkeys);
+HotkeyList TerraformToolbarWindow::hotkeys("terraform", terraform_hotkeys, TerraformToolbarGlobalHotkeys);
static const NWidgetPart _nested_terraform_widgets[] = {
NWidget(NWID_HORIZONTAL),
@@ -371,15 +384,6 @@ Window *ShowTerraformToolbar(Window *link)
return w;
}
-EventState TerraformToolbarGlobalHotkeys(uint16 key, uint16 keycode)
-{
- int num = TerraformToolbarWindow::hotkeys.CheckMatch(keycode, true);
- if (num == -1) return ES_NOT_HANDLED;
- Window *w = ShowTerraformToolbar(NULL);
- if (w == NULL) return ES_NOT_HANDLED;
- return w->OnHotkey(num);
-}
-
static byte _terraform_size = 1;
/**
@@ -712,6 +716,19 @@ struct ScenarioEditorLandscapeGenerationWindow : Window {
static HotkeyList hotkeys;
};
+/**
+ * Handler for global hotkeys of the ScenarioEditorLandscapeGenerationWindow.
+ * @param hotkey Hotkey
+ * @return ES_HANDLED if hotkey was accepted.
+ */
+static EventState TerraformToolbarEditorGlobalHotkeys(int hotkey)
+{
+ if (_game_mode != GM_EDITOR) return ES_NOT_HANDLED;
+ Window *w = ShowEditorTerraformToolbar();
+ if (w == NULL) return ES_NOT_HANDLED;
+ return w->OnHotkey(hotkey);
+}
+
static Hotkey terraform_editor_hotkeys[] = {
Hotkey('D' | WKC_GLOBAL_HOTKEY, "dynamite", WID_ETT_DEMOLISH),
Hotkey('Q' | WKC_GLOBAL_HOTKEY, "lower", WID_ETT_LOWER_LAND),
@@ -723,7 +740,7 @@ static Hotkey terraform_editor_hotkeys[] = {
HOTKEY_LIST_END
};
-HotkeyList ScenarioEditorLandscapeGenerationWindow::hotkeys("terraform_editor", terraform_editor_hotkeys);
+HotkeyList ScenarioEditorLandscapeGenerationWindow::hotkeys("terraform_editor", terraform_editor_hotkeys, TerraformToolbarEditorGlobalHotkeys);
static WindowDesc _scen_edit_land_gen_desc(
WDP_AUTO, "toolbar_landscape_scen", 0, 0,
@@ -741,12 +758,3 @@ Window *ShowEditorTerraformToolbar()
{
return AllocateWindowDescFront<ScenarioEditorLandscapeGenerationWindow>(&_scen_edit_land_gen_desc, 0);
}
-
-EventState TerraformToolbarEditorGlobalHotkeys(uint16 key, uint16 keycode)
-{
- int num = ScenarioEditorLandscapeGenerationWindow::hotkeys.CheckMatch(keycode, true);
- if (num == -1) return ES_NOT_HANDLED;
- Window *w = ShowEditorTerraformToolbar();
- if (w == NULL) return ES_NOT_HANDLED;
- return w->OnHotkey(num);
-}