changeset 9547:3510b3758252 draft

(svn r13562) -Codechange: Yet another enumification, which required a bit of explanation/documentation of a trickery some would call a hack
author belugas <belugas@openttd.org>
date Wed, 18 Jun 2008 03:19:31 +0000
parents c1c73fc1a29d
children 13d2b29b23ed
files src/toolbar_gui.cpp
diffstat 1 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/toolbar_gui.cpp
+++ b/src/toolbar_gui.cpp
@@ -98,7 +98,8 @@
 	TBSE_SEPARATOR,
 	TBSE_DATEBACKWARD,
 	TBSE_DATEFORWARD,
-	TBSE_ZOOMIN       = 9,
+	TBSE_SMALLMAP,
+	TBSE_ZOOMIN,
 	TBSE_ZOOMOUT,
 	TBSE_LANDGENERATE,
 	TBSE_TOWNGENERATE,
@@ -108,6 +109,14 @@
 	TBSE_PLACESIGNS,
 };
 
+/** The idea of this enum is to allow a separation between widget position
+ * and _menu_clicked_procs's entry.  By shifting, the "action" id is extracted and
+ * kept safe for usage when reuired.
+ * @see ToolbarMenuWindow::OnMouseLoop */
+enum ScenarioEditorMenuActions {
+	SEMA_MAP_CLICK = 17 << 8,
+};
+
 static ToolbarMode _toolbar_mode;
 
 static void SelectSignTool()
@@ -658,8 +667,12 @@
 
 static void ToolbarScenMapTownDir(Window *w)
 {
-	/* Scenario editor button, *hack*hack* use different button to activate */
-	PopupMainToolbMenu(w, 8 | (17 << 8), STR_02DE_MAP_OF_WORLD, 4);
+	/* Scenario editor button, Use different button to activate.
+	 * This scheme will allow to have an action (SEMA_MAP_CLICK, which is in fact
+	 * an entry in _menu_clicked_procs) while at the same time having a start button
+	 * who is not at the same index as its action
+	 * @see ToolbarMenuWindow::OnMouseLoop */
+	PopupMainToolbMenu(w, TBSE_SMALLMAP | SEMA_MAP_CLICK, STR_02DE_MAP_OF_WORLD, 4);
 }
 
 static void ToolbarScenZoomIn(Window *w)