changeset 17879:9310e39c80ce draft

(svn r22675) -Change: Add a menu entry for the sprite bounding box debuging feature in the help menu and enable bounding boxes only in conjunction with the newgrf developer tools
author planetmaker <planetmaker@openttd.org>
date Wed, 20 Jul 2011 16:19:48 +0000
parents 8e6c1879a8da
children c5182280506b
files src/lang/english.txt src/main_gui.cpp src/toolbar_gui.cpp src/toolbar_gui.h
diffstat 4 files changed, 27 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -448,6 +448,7 @@
 STR_ABOUT_MENU_GIANT_SCREENSHOT                                 :Whole map screenshot
 STR_ABOUT_MENU_ABOUT_OPENTTD                                    :About 'OpenTTD'
 STR_ABOUT_MENU_SPRITE_ALIGNER                                   :Sprite aligner
+STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES                            :Toggle bounding boxes
 ############ range ends here
 
 ############ range for days starts (also used for the place in the highscore window)
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -301,9 +301,7 @@
 				return ES_HANDLED;
 
 			case GHK_BOUNDING_BOXES:
-				extern bool _draw_bounding_boxes;
-				_draw_bounding_boxes = !_draw_bounding_boxes;
-				MarkWholeScreenDirty();
+				ToggleBoundingBoxes();
 				return ES_HANDLED;
 		}
 
--- a/src/toolbar_gui.cpp
+++ b/src/toolbar_gui.cpp
@@ -828,7 +828,7 @@
 
 static CallBackFunction ToolbarHelpClick(Window *w)
 {
-	PopupMainToolbMenu(w, TBN_HELP, STR_ABOUT_MENU_LAND_BLOCK_INFO, _settings_client.gui.newgrf_developer_tools ? 9 : 8);
+	PopupMainToolbMenu(w, TBN_HELP, STR_ABOUT_MENU_LAND_BLOCK_INFO, _settings_client.gui.newgrf_developer_tools ? 10 : 8);
 	return CBF_NONE;
 }
 
@@ -847,6 +847,28 @@
 	MakeScreenshot(SC_WORLD, NULL);
 }
 
+/**
+ * Toggle drawing of sprites' bounding boxes
+ * @note has only an effect when newgrf_developer_tools are active
+ *
+ * Function is found here and not in viewport.cpp in order to avoid
+ * importing the settings structs to there
+ */
+void ToggleBoundingBoxes()
+{
+	extern bool _draw_bounding_boxes;
+	/* Always allow to toggle them off */
+	if (_settings_client.gui.newgrf_developer_tools || _draw_bounding_boxes) {
+		_draw_bounding_boxes = !_draw_bounding_boxes;
+		MarkWholeScreenDirty();
+	}
+}
+
+/**
+ * Choose the proper callback function for the main toolbar's help menu
+ * @param index The menu index which was selected
+ * @return CBF_NONE
+ */
 static CallBackFunction MenuClickHelp(int index)
 {
 	switch (index) {
@@ -858,6 +880,7 @@
 		case 6: MenuClickWorldScreenshot();    break;
 		case 7: ShowAboutWindow();             break;
 		case 8: ShowSpriteAlignerWindow();     break;
+		case 9: ToggleBoundingBoxes();         break;
 	}
 	return CBF_NONE;
 }
--- a/src/toolbar_gui.h
+++ b/src/toolbar_gui.h
@@ -13,6 +13,7 @@
 #define TOOLBAR_GUI_H
 
 void AllocateToolbar();
+void ToggleBoundingBoxes();
 
 extern int16 *_preferred_toolbar_size;