changeset 11479:ca01beb7e155 draft

(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
author rubidium <rubidium@openttd.org>
date Wed, 25 Mar 2009 00:08:47 +0000
parents f3a6e2a15612
children 88683778e6e5
files src/settings_gui.cpp
diffstat 1 files changed, 77 insertions(+), 63 deletions(-) [+]
line wrap: on
line diff
--- a/src/settings_gui.cpp
+++ b/src/settings_gui.cpp
@@ -95,17 +95,31 @@
 	return i;
 }
 
+/** Widgets of the game options menu */
 enum GameOptionsWidgets {
-	GAMEOPT_CURRENCY_BTN    =  4,
-	GAMEOPT_DISTANCE_BTN    =  6,
-	GAMEOPT_ROADSIDE_BTN    =  8,
-	GAMEOPT_TOWNNAME_BTN    = 10,
-	GAMEOPT_AUTOSAVE_BTN    = 12,
-	GAMEOPT_LANG_BTN        = 14,
-	GAMEOPT_RESOLUTION_BTN  = 16,
-	GAMEOPT_FULLSCREEN,
-	GAMEOPT_SCREENSHOT_BTN  = 19,
-	GAMEOPT_BASE_GRF_BTN    = 21,
+	GOW_CLOSEBOX = 0,        ///< Close the window
+	GOW_CAPTION,             ///< Caption of the window
+	GOW_BACKGROUND,          ///< Background of the window
+	GOW_CURRENCY_FRAME,      ///< Frame of the currency dropdown
+	GOW_CURRENCY_DROPDOWN,   ///< Currency dropdown
+	GOW_DISTANCE_FRAME,      ///< Measuring unit frame
+	GOW_DISTANCE_DROPDOWN,   ///< Measuring unit dropdown
+	GOW_ROADSIDE_FRAME,      ///< Road side frame
+	GOW_ROADSIDE_DROPDOWN,   ///< Dropdown to select the road side (to set the right side ;))
+	GOW_TOWNNAME_FRAME,      ///< Frame for the town name dropdown
+	GOW_TOWNNAME_DROPDOWN,   ///< Town name dropdown
+	GOW_AUTOSAVE_FRAME,      ///< Frame for autosave
+	GOW_AUTOSAVE_DROPDOWN,   ///< Dropdown to say how often to autosave
+	GOW_LANG_FRAME,          ///< Language dropdown frame
+	GOW_LANG_DROPDOWN,       ///< Language dropdown
+	GOW_RESOLUTION_FRAME,    ///< Frame for the dropdown for the resolution
+	GOW_RESOLUTION_DROPDOWN, ///< Dropdown for the resolution
+	GOW_FULLSCREEN_LABEL,    ///< Text (right) to the fullscreen button
+	GOW_FULLSCREEN_BUTTON,   ///< Toggle fullscreen
+	GOW_SCREENSHOT_FRAME,    ///< Frame for the screenshot type
+	GOW_SCREENSHOT_DROPDOWN, ///< Select the screenshot type... please use PNG!
+	GOW_BASE_GRF_FRAME,      ///< Base GRF selection frame
+	GOW_BASE_GRF_DROPDOWN,   ///< Use to select a base GRF
 };
 
 /**
@@ -129,7 +143,7 @@
 		list->push_back(new DropDownListStringItem((*it).first, (*it).second, !(_game_mode == GM_MENU || GetNumTowns() == 0 || (*it).second == sel)));
 	}
 
-	ShowDropDownList(w, list, sel, GAMEOPT_TOWNNAME_BTN);
+	ShowDropDownList(w, list, sel, GOW_TOWNNAME_DROPDOWN);
 }
 
 static void ShowCustCurrency();
@@ -144,7 +158,7 @@
 		list->push_back(new DropDownListCharStringItem(GetGraphicsSetName(i), i, (_game_mode == GM_MENU) ? false : (current != i)));
 	}
 
-	ShowDropDownList(w, list, current, GAMEOPT_BASE_GRF_BTN);
+	ShowDropDownList(w, list, current, GOW_BASE_GRF_DROPDOWN);
 }
 
 struct GameOptionsWindow : Window {
@@ -175,25 +189,24 @@
 		int i = GetCurRes();
 		SetDParam(7, i == _num_resolutions ? STR_RES_OTHER : SPECSTR_RESOLUTION_START + i);
 		SetDParam(8, SPECSTR_SCREENSHOT_START + _cur_screenshot_format);
-		this->SetWidgetLoweredState(GAMEOPT_FULLSCREEN, _fullscreen);
+		this->SetWidgetLoweredState(GOW_FULLSCREEN_BUTTON, _fullscreen);
 		SetDParamStr(9, GetGraphicsSetName(GetIndexOfCurrentGraphicsSet()));
 
 		this->DrawWidgets();
-		DrawString(20, this->width / 2, 175, STR_OPTIONS_FULLSCREEN, TC_FROMSTRING); // fullscreen
 	}
 
 	virtual void OnClick(Point pt, int widget)
 	{
 		switch (widget) {
-			case GAMEOPT_CURRENCY_BTN: // Setup currencies dropdown
-				ShowDropDownMenu(this, BuildCurrencyDropdown(), this->opt->locale.currency, GAMEOPT_CURRENCY_BTN, _game_mode == GM_MENU ? 0 : ~GetMaskOfAllowedCurrencies(), 0);
+			case GOW_CURRENCY_DROPDOWN: // Setup currencies dropdown
+				ShowDropDownMenu(this, BuildCurrencyDropdown(), this->opt->locale.currency, GOW_CURRENCY_DROPDOWN, _game_mode == GM_MENU ? 0 : ~GetMaskOfAllowedCurrencies(), 0);
 				break;
 
-			case GAMEOPT_DISTANCE_BTN: // Setup distance unit dropdown
-				ShowDropDownMenu(this, _units_dropdown, this->opt->locale.units, GAMEOPT_DISTANCE_BTN, 0, 0);
+			case GOW_DISTANCE_DROPDOWN: // Setup distance unit dropdown
+				ShowDropDownMenu(this, _units_dropdown, this->opt->locale.units, GOW_DISTANCE_DROPDOWN, 0, 0);
 				break;
 
-			case GAMEOPT_ROADSIDE_BTN: { // Setup road-side dropdown
+			case GOW_ROADSIDE_DROPDOWN: { // Setup road-side dropdown
 				int i = 0;
 				extern bool RoadVehiclesAreBuilt();
 
@@ -203,18 +216,18 @@
 					i = (-1) ^ (1 << this->opt->vehicle.road_side); // disable the other value
 				}
 
-				ShowDropDownMenu(this, _driveside_dropdown, this->opt->vehicle.road_side, GAMEOPT_ROADSIDE_BTN, i, 0);
+				ShowDropDownMenu(this, _driveside_dropdown, this->opt->vehicle.road_side, GOW_ROADSIDE_DROPDOWN, i, 0);
 			} break;
 
-			case GAMEOPT_TOWNNAME_BTN: // Setup townname dropdown
+			case GOW_TOWNNAME_DROPDOWN: // Setup townname dropdown
 				ShowTownnameDropdown(this, this->opt->game_creation.town_name);
 				break;
 
-			case GAMEOPT_AUTOSAVE_BTN: // Setup autosave dropdown
-				ShowDropDownMenu(this, _autosave_dropdown, _settings_client.gui.autosave, GAMEOPT_AUTOSAVE_BTN, 0, 0);
+			case GOW_AUTOSAVE_DROPDOWN: // Setup autosave dropdown
+				ShowDropDownMenu(this, _autosave_dropdown, _settings_client.gui.autosave, GOW_AUTOSAVE_DROPDOWN, 0, 0);
 				break;
 
-			case GAMEOPT_LANG_BTN: { // Setup interface language dropdown
+			case GOW_LANG_DROPDOWN: { // Setup interface language dropdown
 				typedef std::map<StringID, int, StringIDCompare> LangList;
 
 				/* Sort language names */
@@ -226,27 +239,27 @@
 					list->push_back(new DropDownListStringItem((*it).first, (*it).second, false));
 				}
 
-				ShowDropDownList(this, list, _dynlang.curr, GAMEOPT_LANG_BTN);
+				ShowDropDownList(this, list, _dynlang.curr, GOW_LANG_DROPDOWN);
 			} break;
 
-			case GAMEOPT_RESOLUTION_BTN: // Setup resolution dropdown
-				ShowDropDownMenu(this, BuildDynamicDropdown(SPECSTR_RESOLUTION_START, _num_resolutions), GetCurRes(), GAMEOPT_RESOLUTION_BTN, 0, 0);
+			case GOW_RESOLUTION_DROPDOWN: // Setup resolution dropdown
+				ShowDropDownMenu(this, BuildDynamicDropdown(SPECSTR_RESOLUTION_START, _num_resolutions), GetCurRes(), GOW_RESOLUTION_DROPDOWN, 0, 0);
 				break;
 
-			case GAMEOPT_FULLSCREEN: // Click fullscreen on/off
+			case GOW_FULLSCREEN_BUTTON: // Click fullscreen on/off
 				/* try to toggle full-screen on/off */
 				if (!ToggleFullScreen(!_fullscreen)) {
 					ShowErrorMessage(INVALID_STRING_ID, STR_FULLSCREEN_FAILED, 0, 0);
 				}
-				this->SetWidgetLoweredState(GAMEOPT_FULLSCREEN, _fullscreen);
+				this->SetWidgetLoweredState(GOW_FULLSCREEN_BUTTON, _fullscreen);
 				this->SetDirty();
 				break;
 
-			case GAMEOPT_SCREENSHOT_BTN: // Setup screenshot format dropdown
-				ShowDropDownMenu(this, BuildDynamicDropdown(SPECSTR_SCREENSHOT_START, _num_screenshot_formats), _cur_screenshot_format, GAMEOPT_SCREENSHOT_BTN, 0, 0);
+			case GOW_SCREENSHOT_DROPDOWN: // Setup screenshot format dropdown
+				ShowDropDownMenu(this, BuildDynamicDropdown(SPECSTR_SCREENSHOT_START, _num_screenshot_formats), _cur_screenshot_format, GOW_SCREENSHOT_DROPDOWN, 0, 0);
 				break;
 
-			case GAMEOPT_BASE_GRF_BTN:
+			case GOW_BASE_GRF_DROPDOWN:
 				ShowGraphicsSetMenu(this);
 				break;
 		}
@@ -255,18 +268,18 @@
 	virtual void OnDropdownSelect(int widget, int index)
 	{
 		switch (widget) {
-			case GAMEOPT_CURRENCY_BTN: // Currency
+			case GOW_CURRENCY_DROPDOWN: // Currency
 				if (index == CUSTOM_CURRENCY_ID) ShowCustCurrency();
 				this->opt->locale.currency = index;
 				MarkWholeScreenDirty();
 				break;
 
-			case GAMEOPT_DISTANCE_BTN: // Measuring units
+			case GOW_DISTANCE_DROPDOWN: // Measuring units
 				this->opt->locale.units = index;
 				MarkWholeScreenDirty();
 				break;
 
-			case GAMEOPT_ROADSIDE_BTN: // Road side
+			case GOW_ROADSIDE_DROPDOWN: // Road side
 				if (this->opt->vehicle.road_side != index) { // only change if setting changed
 					uint i;
 					if (GetSettingFromName("vehicle.road_side", &i) == NULL) NOT_REACHED();
@@ -275,19 +288,19 @@
 				}
 				break;
 
-			case GAMEOPT_TOWNNAME_BTN: // Town names
+			case GOW_TOWNNAME_DROPDOWN: // Town names
 				if (_game_mode == GM_MENU || GetNumTowns() == 0) {
 					this->opt->game_creation.town_name = index;
 					InvalidateWindow(WC_GAME_OPTIONS, 0);
 				}
 				break;
 
-			case GAMEOPT_AUTOSAVE_BTN: // Autosave options
+			case GOW_AUTOSAVE_DROPDOWN: // Autosave options
 				_settings_client.gui.autosave = index;
 				this->SetDirty();
 				break;
 
-			case GAMEOPT_LANG_BTN: // Change interface language
+			case GOW_LANG_DROPDOWN: // Change interface language
 				ReadLanguagePack(index);
 				CheckForMissingGlyphsInLoadedLanguagePack();
 				UpdateAllStationVirtCoord();
@@ -295,18 +308,18 @@
 				MarkWholeScreenDirty();
 				break;
 
-			case GAMEOPT_RESOLUTION_BTN: // Change resolution
+			case GOW_RESOLUTION_DROPDOWN: // Change resolution
 				if (index < _num_resolutions && ChangeResInGame(_resolutions[index].width, _resolutions[index].height)) {
 					this->SetDirty();
 				}
 				break;
 
-			case GAMEOPT_SCREENSHOT_BTN: // Change screenshot format
+			case GOW_SCREENSHOT_DROPDOWN: // Change screenshot format
 				SetScreenshotFormat(index);
 				this->SetDirty();
 				break;
 
-			case GAMEOPT_BASE_GRF_BTN:
+			case GOW_BASE_GRF_DROPDOWN:
 				if (_game_mode == GM_MENU) {
 					const char *name = GetGraphicsSetName(index);
 
@@ -322,32 +335,33 @@
 };
 
 static const Widget _game_options_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,  COLOUR_GREY,     0,    10,     0,    13, STR_00C5,                          STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,  COLOUR_GREY,    11,   369,     0,    13, STR_00B1_GAME_OPTIONS,             STR_018C_WINDOW_TITLE_DRAG_THIS},
-{      WWT_PANEL,   RESIZE_NONE,  COLOUR_GREY,     0,   369,    14,   242, 0x0,                               STR_NULL},
-{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,    20,    55, STR_02E0_CURRENCY_UNITS,           STR_NULL},
-{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,    34,    45, STR_02E1,                          STR_02E2_CURRENCY_UNITS_SELECTION},
-{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,    20,    55, STR_MEASURING_UNITS,               STR_NULL},
-{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,    34,    45, STR_02E4,                          STR_MEASURING_UNITS_SELECTION},
-{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,    62,    97, STR_02E6_ROAD_VEHICLES,            STR_NULL},
-{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,    76,    87, STR_02E7,                          STR_02E8_SELECT_SIDE_OF_ROAD_FOR},
-{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,    62,    97, STR_02EB_TOWN_NAMES,               STR_NULL},
-{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,    76,    87, STR_02EC,                          STR_02ED_SELECT_STYLE_OF_TOWN_NAMES},
-{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,   104,   139, STR_02F4_AUTOSAVE,                 STR_NULL},
-{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,   118,   129, STR_02F5,                          STR_02F6_SELECT_INTERVAL_BETWEEN},
+{   WWT_CLOSEBOX,   RESIZE_NONE,  COLOUR_GREY,     0,    10,     0,    13, STR_00C5,                          STR_018B_CLOSE_WINDOW},               // GOW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,  COLOUR_GREY,    11,   369,     0,    13, STR_00B1_GAME_OPTIONS,             STR_018C_WINDOW_TITLE_DRAG_THIS},     // GOW_CAPTION
+{      WWT_PANEL,   RESIZE_NONE,  COLOUR_GREY,     0,   369,    14,   242, 0x0,                               STR_NULL},                            // GOW_BACKGROUND
+{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,    20,    55, STR_02E0_CURRENCY_UNITS,           STR_NULL},                            // GOW_CURRENCY_FRAME
+{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,    34,    45, STR_02E1,                          STR_02E2_CURRENCY_UNITS_SELECTION},   // GOW_CURRENCY_DROPDOWN
+{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,    20,    55, STR_MEASURING_UNITS,               STR_NULL},                            // GOW_DISTANCE_FRAME
+{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,    34,    45, STR_02E4,                          STR_MEASURING_UNITS_SELECTION},       // GOW_DISTANCE_DROPDOWN
+{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,    62,    97, STR_02E6_ROAD_VEHICLES,            STR_NULL},                            // GOW_ROADSIDE_FRAME
+{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,    76,    87, STR_02E7,                          STR_02E8_SELECT_SIDE_OF_ROAD_FOR},    // GOW_ROADSIDE_DROPDOWN
+{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,    62,    97, STR_02EB_TOWN_NAMES,               STR_NULL},                            // GOW_TOWNNAME_FRAME
+{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,    76,    87, STR_02EC,                          STR_02ED_SELECT_STYLE_OF_TOWN_NAMES}, // GOW_TOWNNAME_DROPDOWN
+{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,   104,   139, STR_02F4_AUTOSAVE,                 STR_NULL},                            // GOW_AUTOSAVE_FRAME
+{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,   118,   129, STR_02F5,                          STR_02F6_SELECT_INTERVAL_BETWEEN},    // GOW_AUTOSAVE_DROPDOWN
 
-{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,   104,   139, STR_OPTIONS_LANG,                  STR_NULL},
-{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,   118,   129, STR_OPTIONS_LANG_CBO,              STR_OPTIONS_LANG_TIP},
+{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,   104,   139, STR_OPTIONS_LANG,                  STR_NULL},                            // GOW_LANG_FRAME
+{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,   118,   129, STR_OPTIONS_LANG_CBO,              STR_OPTIONS_LANG_TIP},                // GOW_LANG_DROPDOWN
 
-{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,   146,   190, STR_OPTIONS_RES,                   STR_NULL},
-{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,   160,   171, STR_OPTIONS_RES_CBO,               STR_OPTIONS_RES_TIP},
-{    WWT_TEXTBTN,   RESIZE_NONE,  COLOUR_GREY,   149,   169,   176,   184, STR_EMPTY,                         STR_OPTIONS_FULLSCREEN_TIP},
+{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,   146,   190, STR_OPTIONS_RES,                   STR_NULL},                            // GOW_RESOLUTION_FRAME
+{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,   160,   171, STR_OPTIONS_RES_CBO,               STR_OPTIONS_RES_TIP},                 // GOW_RESOLUTION_DROPDOWN
+{       WWT_TEXT,   RESIZE_NONE,  COLOUR_GREY,    20,   146,   175,   186, STR_OPTIONS_FULLSCREEN,            STR_NULL},                            // GOW_FULLSCREEN_LABEL
+{    WWT_TEXTBTN,   RESIZE_NONE,  COLOUR_GREY,   149,   169,   176,   184, STR_EMPTY,                         STR_OPTIONS_FULLSCREEN_TIP},          // GOW_FULLSCREEN_BUTTON
 
-{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,   146,   190, STR_OPTIONS_SCREENSHOT_FORMAT,     STR_NULL},
-{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,   160,   171, STR_OPTIONS_SCREENSHOT_FORMAT_CBO, STR_OPTIONS_SCREENSHOT_FORMAT_TIP},
+{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,   146,   190, STR_OPTIONS_SCREENSHOT_FORMAT,     STR_NULL},                            // GOW_SCREENSHOT_FRAME
+{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,   160,   171, STR_OPTIONS_SCREENSHOT_FORMAT_CBO, STR_OPTIONS_SCREENSHOT_FORMAT_TIP},   // GOW_SCREENSHOT_DROPDOWN
 
-{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,   197,   232, STR_OPTIONS_BASE_GRF,              STR_NULL},
-{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,   211,   222, STR_OPTIONS_BASE_GRF_CBO,          STR_OPTIONS_BASE_GRF_TIP},
+{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,   197,   232, STR_OPTIONS_BASE_GRF,              STR_NULL},                            // GOW_BASE_GRF_FRAME
+{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,   211,   222, STR_OPTIONS_BASE_GRF_CBO,          STR_OPTIONS_BASE_GRF_TIP},            // GOW_BASE_GRF_DROPDOWN
 
 {   WIDGETS_END},
 };