changeset 8343:8ee8a732be4e draft

(svn r11909) -Codechange: use dropdown widget for player livery, network lobby/setup and news settings windows
author peter1138 <peter1138@openttd.org>
date Thu, 17 Jan 2008 20:00:13 +0000
parents 441cda3cfbdb
children 6312fafcfe47
files src/network/network_gui.cpp src/news_gui.cpp src/player_gui.cpp
diffstat 3 files changed, 41 insertions(+), 65 deletions(-) [+]
line wrap: on
line diff
--- a/src/network/network_gui.cpp
+++ b/src/network/network_gui.cpp
@@ -218,22 +218,21 @@
 /** Enum for NetworkGameWindow, referring to _network_game_window_widgets */
 enum NetworkGameWindowWidgets {
 	NGWW_CLOSE    = 0,  ///< Close 'X' button
-	NGWW_CONN_TXT = 4,  ///< 'Connection' droplist
-	NGWW_CONN_BTN = 5,  ///< 'Connection' droplist button
-	NGWW_PLAYER   = 6,  ///< Panel with editbox to set player name
+	NGWW_CONN_BTN = 4,  ///< 'Connection' droplist button
+	NGWW_PLAYER   = 5,  ///< Panel with editbox to set player name
 
-	NGWW_NAME     = 7,  ///< 'Name' button
+	NGWW_NAME     = 6,  ///< 'Name' button
 	NGWW_CLIENTS,       ///< 'Clients' button
 	NGWW_INFO,          ///< Third button in the game list panel
 
-	NGWW_MATRIX   = 10, ///< Panel with list of games
+	NGWW_MATRIX   = 9,  ///< Panel with list of games
 
-	NGWW_DETAILS  = 12, ///< Panel with game details
-	NGWW_JOIN     = 13, ///< 'Join game' button
-	NGWW_REFRESH  = 14, ///< 'Refresh server' button
-	NGWW_NEWGRF   = 15, ///< 'NewGRF Settings' button
+	NGWW_DETAILS  = 11, ///< Panel with game details
+	NGWW_JOIN     = 12, ///< 'Join game' button
+	NGWW_REFRESH  = 13, ///< 'Refresh server' button
+	NGWW_NEWGRF   = 14, ///< 'NewGRF Settings' button
 
-	NGWW_FIND     = 16, ///< 'Find server' button
+	NGWW_FIND     = 15, ///< 'Find server' button
 	NGWW_ADD,           ///< 'Add server' button
 	NGWW_START,         ///< 'Start server' button
 	NGWW_CANCEL,        ///< 'Cancel' button
@@ -429,7 +428,7 @@
 		case NGWW_CANCEL: // Cancel button
 			DeleteWindowById(WC_NETWORK_WINDOW, 0);
 			break;
-		case NGWW_CONN_TXT: case NGWW_CONN_BTN: // 'Connection' droplist
+		case NGWW_CONN_BTN: // 'Connection' droplist
 			ShowDropDownMenu(w, _lan_internet_types_dropdown, _network_lan_internet, NGWW_CONN_BTN, 0, 0); // do it for widget NSSW_CONN_BTN
 			break;
 		case NGWW_NAME: // Sort by name
@@ -572,8 +571,7 @@
 {      WWT_PANEL,   RESIZE_RB,     BGC,     0,   449,    14,   263, 0x0,                            STR_NULL},
 
 {       WWT_TEXT,   RESIZE_NONE,   BGC,     9,    85,    23,    35, STR_NETWORK_CONNECTION,         STR_NULL},
-{      WWT_INSET,   RESIZE_NONE,   BGC,    90,   181,    22,    33, STR_NETWORK_LAN_INTERNET_COMBO, STR_NETWORK_CONNECTION_TIP},       // NGWW_CONN_TXT
-{    WWT_TEXTBTN,   RESIZE_NONE,   BGC,   170,   180,    23,    32, STR_0225,                       STR_NETWORK_CONNECTION_TIP},       // NGWW_CONN_BTN
+{ WWT_DROPDOWNIN,   RESIZE_NONE,   BGC,    90,   181,    22,    33, STR_NETWORK_LAN_INTERNET_COMBO, STR_NETWORK_CONNECTION_TIP},       // NGWW_CONN_BTN
 
 {      WWT_PANEL,   RESIZE_LR,     BGC,   290,   440,    22,    33, 0x0,                            STR_NETWORK_ENTER_NAME_TIP},       // NGWW_PLAYER
 
@@ -655,22 +653,20 @@
 	NSSW_GAMENAME        =  4,   ///< Background for editbox to set game name
 	NSSW_SETPWD          =  5,   ///< 'Set password' button
 	NSSW_SELMAP          =  7,   ///< 'Select map' list
-	NSSW_CONNTYPE_TXT    = 10,   ///< 'Connection type' droplist
-	NSSW_CONNTYPE_BTN    = 11,   ///< 'Connection type' droplist button
-	NSSW_CLIENTS_BTND    = 13,   ///< 'Max clients' downarrow
-	NSSW_CLIENTS_TXT     = 14,   ///< 'Max clients' text
-	NSSW_CLIENTS_BTNU    = 15,   ///< 'Max clients' uparrow
-	NSSW_COMPANIES_BTND  = 17,   ///< 'Max companies' downarrow
-	NSSW_COMPANIES_TXT   = 18,   ///< 'Max companies' text
-	NSSW_COMPANIES_BTNU  = 19,   ///< 'Max companies' uparrow
-	NSSW_SPECTATORS_BTND = 21,   ///< 'Max spectators' downarrow
-	NSSW_SPECTATORS_TXT  = 22,   ///< 'Max spectators' text
-	NSSW_SPECTATORS_BTNU = 23,   ///< 'Max spectators' uparrow
-	NSSW_LANGUAGE_TXT    = 25,   ///< 'Language spoken' droplist
-	NSSW_LANGUAGE_BTN    = 26,   ///< 'Language spoken' droplist button
-	NSSW_START           = 27,   ///< 'Start' button
-	NSSW_LOAD            = 28,   ///< 'Load' button
-	NSSW_CANCEL          = 29,   ///< 'Cancel' button
+	NSSW_CONNTYPE_BTN    = 10,   ///< 'Connection type' droplist button
+	NSSW_CLIENTS_BTND    = 12,   ///< 'Max clients' downarrow
+	NSSW_CLIENTS_TXT     = 13,   ///< 'Max clients' text
+	NSSW_CLIENTS_BTNU    = 14,   ///< 'Max clients' uparrow
+	NSSW_COMPANIES_BTND  = 16,   ///< 'Max companies' downarrow
+	NSSW_COMPANIES_TXT   = 17,   ///< 'Max companies' text
+	NSSW_COMPANIES_BTNU  = 18,   ///< 'Max companies' uparrow
+	NSSW_SPECTATORS_BTND = 20,   ///< 'Max spectators' downarrow
+	NSSW_SPECTATORS_TXT  = 21,   ///< 'Max spectators' text
+	NSSW_SPECTATORS_BTNU = 22,   ///< 'Max spectators' uparrow
+	NSSW_LANGUAGE_BTN    = 24,   ///< 'Language spoken' droplist button
+	NSSW_START           = 25,   ///< 'Start' button
+	NSSW_LOAD            = 26,   ///< 'Load' button
+	NSSW_CANCEL          = 27,   ///< 'Cancel' button
 };
 
 /**
@@ -753,7 +749,7 @@
 			nd->map = (y == 0) ? NULL : _fios_list + y - 1;
 			SetWindowDirty(w);
 			} break;
-		case NSSW_CONNTYPE_TXT: case NSSW_CONNTYPE_BTN: // Connection type
+		case NSSW_CONNTYPE_BTN: // Connection type
 			ShowDropDownMenu(w, _connection_types_dropdown, _network_advertise, NSSW_CONNTYPE_BTN, 0, 0); // do it for widget NSSW_CONNTYPE_BTN
 			break;
 		case NSSW_CLIENTS_BTND:    case NSSW_CLIENTS_BTNU:    // Click on up/down button for number of clients
@@ -793,7 +789,7 @@
 			SetDParam(0, _network_game_info.spectators_max);
 			ShowQueryString(STR_CONFIG_PATCHES_INT32, STR_NETWORK_NUMBER_OF_SPECTATORS, 3, 50, w, CS_NUMERAL);
 			break;
-		case NSSW_LANGUAGE_TXT: case NSSW_LANGUAGE_BTN: { // Language
+		case NSSW_LANGUAGE_BTN: { // Language
 			uint sel = 0;
 			for (uint i = 0; i < lengthof(_language_dropdown) - 1; i++) {
 				if (_language_dropdown[i] == STR_NETWORK_LANG_ANY + _network_game_info.server_lang) {
@@ -899,8 +895,7 @@
 
 /* Combo/selection boxes to control Connection Type / Max Clients / Max Companies / Max Observers / Language */
 {       WWT_TEXT,   RESIZE_NONE,   BGC,   280,   419,    63,    75, STR_NETWORK_CONNECTION,           STR_NULL},
-{      WWT_INSET,   RESIZE_NONE,   BGC,   280,   410,    77,    88, STR_NETWORK_LAN_INTERNET_COMBO,   STR_NETWORK_CONNECTION_TIP},           // NSSW_CONNTYPE_TXT
-{    WWT_TEXTBTN,   RESIZE_NONE,   BGC,   399,   409,    78,    87, STR_0225,                         STR_NETWORK_CONNECTION_TIP},           // NSSW_CONNTYPE_BTN
+{ WWT_DROPDOWNIN,   RESIZE_NONE,   BGC,   280,   410,    77,    88, STR_NETWORK_LAN_INTERNET_COMBO,   STR_NETWORK_CONNECTION_TIP},           // NSSW_CONNTYPE_BTN
 
 {       WWT_TEXT,   RESIZE_NONE,   BGC,   280,   419,    95,   107, STR_NETWORK_NUMBER_OF_CLIENTS,    STR_NULL},
 {     WWT_IMGBTN,   RESIZE_NONE,   BGC,   280,   291,   109,   120, SPR_ARROW_DOWN,                   STR_NETWORK_NUMBER_OF_CLIENTS_TIP},    // NSSW_CLIENTS_BTND
@@ -918,8 +913,7 @@
 {     WWT_IMGBTN,   RESIZE_NONE,   BGC,   398,   410,   173,   184, SPR_ARROW_UP,                     STR_NETWORK_NUMBER_OF_SPECTATORS_TIP}, // NSSW_SPECTATORS_BTNU
 
 {       WWT_TEXT,   RESIZE_NONE,   BGC,   280,   419,   191,   203, STR_NETWORK_LANGUAGE_SPOKEN,      STR_NULL},
-{      WWT_INSET,   RESIZE_NONE,   BGC,   280,   410,   205,   216, STR_NETWORK_LANGUAGE_COMBO,       STR_NETWORK_LANGUAGE_TIP},             // NSSW_LANGUAGE_TXT
-{    WWT_TEXTBTN,   RESIZE_NONE,   BGC,   399,   409,   206,   215, STR_0225,                         STR_NETWORK_LANGUAGE_TIP},             // NSSW_LANGUAGE_BTN
+{ WWT_DROPDOWNIN,   RESIZE_NONE,   BGC,   280,   410,   205,   216, STR_NETWORK_LANGUAGE_COMBO,       STR_NETWORK_LANGUAGE_TIP},             // NSSW_LANGUAGE_BTN
 
 /* Buttons Start / Load / Cancel */
 { WWT_PUSHTXTBTN,   RESIZE_NONE,   BTC,    40,   140,   224,   235, STR_NETWORK_START_GAME,           STR_NETWORK_START_GAME_TIP},           // NSSW_START
--- a/src/news_gui.cpp
+++ b/src/news_gui.cpp
@@ -786,10 +786,9 @@
 
 /** News settings window widget offset constants */
 enum {
-	WIDGET_NEWSOPT_BTN_SUMMARY  = 4,  ///< Button that adjusts at once the level for all settings
-	WIDGET_NEWSOPT_DROP_SUMMARY,      ///< Drop down button for same upper button
-	WIDGET_NEWSOPT_SOUNDTICKER  = 7,  ///< Button activating sound on events
-	WIDGET_NEWSOPT_START_OPTION = 9,  ///< First widget that is part of a group [<] .. [.]
+	WIDGET_NEWSOPT_DROP_SUMMARY = 4,  ///< Dropdown that adjusts at once the level for all settings
+	WIDGET_NEWSOPT_SOUNDTICKER  = 6,  ///< Button activating sound on events
+	WIDGET_NEWSOPT_START_OPTION = 8,  ///< First widget that is part of a group [<] .. [.]
 };
 
 /**
@@ -841,6 +840,8 @@
 			int i, y;
 
 			if (_news_ticker_sound) w->LowerWidget(WIDGET_NEWSOPT_SOUNDTICKER);
+
+			w->widget[WIDGET_NEWSOPT_DROP_SUMMARY].data = message_opt[WP(w, def_d).data_1];
 			DrawWindowWidgets(w);
 
 			/* Draw the string of each setting on each button. */
@@ -849,14 +850,10 @@
 				 * which will give centered position */
 				DrawStringCentered(51, y + 1, message_opt[val & 0x3], TC_BLACK);
 			}
-
-			/* Draw the general bottom button string as well */
-			DrawStringCentered(51, y + 10, message_opt[WP(w, def_d).data_1], TC_BLACK);
 		} break;
 
 		case WE_CLICK:
 			switch (e->we.click.widget) {
-				case WIDGET_NEWSOPT_BTN_SUMMARY:
 				case WIDGET_NEWSOPT_DROP_SUMMARY: // Dropdown menu for all settings
 					ShowDropDownMenu(w, message_opt, WP(w, def_d).data_1, WIDGET_NEWSOPT_DROP_SUMMARY, 0, 0);
 					break;
@@ -949,14 +946,10 @@
 	STR_0205_MESSAGE_TYPES,   STR_NULL},
 
 /* General drop down and sound button, widgets WIDGET_NEWSOPT_BTN_SUMMARY and WIDGET_NEWSOPT_DROP_SUMMARY */
-{     WWT_PANEL, RESIZE_NONE, COLOUR_YELLOW,
-	  4,  86,  34 + NT_END * NEWS_SETTING_BASELINE_SKIP,  45 + NT_END * NEWS_SETTING_BASELINE_SKIP,
+{  WWT_DROPDOWN, RESIZE_NONE, COLOUR_YELLOW,
+	  4,  98,  34 + NT_END * NEWS_SETTING_BASELINE_SKIP,  45 + NT_END * NEWS_SETTING_BASELINE_SKIP,
 	0x0, STR_NULL},
 
-{   WWT_TEXTBTN, RESIZE_NONE, COLOUR_YELLOW,
-	 87,  98,  34 + NT_END * NEWS_SETTING_BASELINE_SKIP,  45 + NT_END * NEWS_SETTING_BASELINE_SKIP,
-	STR_0225, STR_NULL},
-
 {      WWT_TEXT, RESIZE_NONE, COLOUR_YELLOW,
 	103, 409,  35 + NT_END * NEWS_SETTING_BASELINE_SKIP,  47 + NT_END * NEWS_SETTING_BASELINE_SKIP,
 	STR_MESSAGES_ALL, STR_NULL},
--- a/src/player_gui.cpp
+++ b/src/player_gui.cpp
@@ -292,9 +292,7 @@
 	PLW_WIDGET_CLASS_SHIP,
 	PLW_WIDGET_CLASS_AIRCRAFT,
 
-	PLW_WIDGET_PRI_COL_TEXT = 9,
-	PLW_WIDGET_PRI_COL_DROPDOWN,
-	PLW_WIDGET_SEC_COL_TEXT,
+	PLW_WIDGET_PRI_COL_DROPDOWN = 9,
 	PLW_WIDGET_SEC_COL_DROPDOWN,
 	PLW_WIDGET_MATRIX,
 };
@@ -329,7 +327,6 @@
 		case WE_CREATE:
 			w->LowerWidget(WP(w, livery_d).livery_class + PLW_WIDGET_CLASS_GENERAL);
 			if (!_loaded_newgrf_features.has_2CC) {
-				w->HideWidget(PLW_WIDGET_SEC_COL_TEXT);
 				w->HideWidget(PLW_WIDGET_SEC_COL_DROPDOWN);
 			}
 			break;
@@ -340,9 +337,7 @@
 			int y = 51;
 
 			/* Disable dropdown controls if no scheme is selected */
-			w->SetWidgetDisabledState(PLW_WIDGET_PRI_COL_TEXT,     (WP(w, livery_d).sel == 0));
 			w->SetWidgetDisabledState(PLW_WIDGET_PRI_COL_DROPDOWN, (WP(w, livery_d).sel == 0));
-			w->SetWidgetDisabledState(PLW_WIDGET_SEC_COL_TEXT,     (WP(w, livery_d).sel == 0));
 			w->SetWidgetDisabledState(PLW_WIDGET_SEC_COL_DROPDOWN, (WP(w, livery_d).sel == 0));
 
 			if (!(WP(w, livery_d).sel == 0)) {
@@ -410,12 +405,10 @@
 					break;
 				}
 
-				case PLW_WIDGET_PRI_COL_TEXT:
 				case PLW_WIDGET_PRI_COL_DROPDOWN: /* First colour dropdown */
 					ShowColourDropDownMenu(w, PLW_WIDGET_PRI_COL_DROPDOWN);
 					break;
 
-				case PLW_WIDGET_SEC_COL_TEXT:
 				case PLW_WIDGET_SEC_COL_DROPDOWN: /* Second colour dropdown */
 					ShowColourDropDownMenu(w, PLW_WIDGET_SEC_COL_DROPDOWN);
 					break;
@@ -470,10 +463,8 @@
 {   WWT_IMGBTN, RESIZE_NONE, 14,  88, 109,  14,  35, SPR_IMG_AIRPLANESLIST,     STR_LIVERY_AIRCRAFT_TIP },
 {    WWT_PANEL, RESIZE_NONE, 14, 110, 399,  14,  35, 0x0,                       STR_NULL },
 {    WWT_PANEL, RESIZE_NONE, 14,   0, 149,  36,  47, 0x0,                       STR_NULL },
-{  WWT_TEXTBTN, RESIZE_NONE, 14, 150, 262,  36,  47, STR_02BD,                  STR_LIVERY_PRIMARY_TIP },
-{  WWT_TEXTBTN, RESIZE_NONE, 14, 263, 274,  36,  47, STR_0225,                  STR_LIVERY_PRIMARY_TIP },
-{  WWT_TEXTBTN, RESIZE_NONE, 14, 275, 387,  36,  47, STR_02E1,                  STR_LIVERY_SECONDARY_TIP },
-{  WWT_TEXTBTN, RESIZE_NONE, 14, 388, 399,  36,  47, STR_0225,                  STR_LIVERY_SECONDARY_TIP },
+{ WWT_DROPDOWN, RESIZE_NONE, 14, 150, 274,  36,  47, STR_02BD,                  STR_LIVERY_PRIMARY_TIP },
+{ WWT_DROPDOWN, RESIZE_NONE, 14, 275, 399,  36,  47, STR_02E1,                  STR_LIVERY_SECONDARY_TIP },
 {   WWT_MATRIX, RESIZE_NONE, 14,   0, 399,  48,  48 + 1 * 14, (1 << 8) | 1,     STR_LIVERY_PANEL_TIP },
 { WIDGETS_END },
 };
@@ -497,10 +488,8 @@
 {   WWT_IMGBTN, RESIZE_NONE, 14,  88, 109,  14,  35, SPR_IMG_AIRPLANESLIST,     STR_LIVERY_AIRCRAFT_TIP },
 {    WWT_PANEL, RESIZE_NONE, 14, 110, 274,  14,  35, 0x0,                       STR_NULL },
 {    WWT_PANEL, RESIZE_NONE, 14,   0, 149,  36,  47, 0x0,                       STR_NULL },
-{  WWT_TEXTBTN, RESIZE_NONE, 14, 150, 262,  36,  47, STR_02BD,                  STR_LIVERY_PRIMARY_TIP },
-{  WWT_TEXTBTN, RESIZE_NONE, 14, 263, 274,  36,  47, STR_0225,                  STR_LIVERY_PRIMARY_TIP },
-{  WWT_TEXTBTN, RESIZE_NONE, 14, 275, 275,  36,  47, STR_02E1,                  STR_LIVERY_SECONDARY_TIP },
-{  WWT_TEXTBTN, RESIZE_NONE, 14, 275, 275,  36,  47, STR_0225,                  STR_LIVERY_SECONDARY_TIP },
+{ WWT_DROPDOWN, RESIZE_NONE, 14, 150, 274,  36,  47, STR_02BD,                  STR_LIVERY_PRIMARY_TIP },
+{ WWT_DROPDOWN, RESIZE_NONE, 14, 275, 275,  36,  47, STR_02E1,                  STR_LIVERY_SECONDARY_TIP },
 {   WWT_MATRIX, RESIZE_NONE, 14,   0, 274,  48,  48 + 1 * 14, (1 << 8) | 1,     STR_LIVERY_PANEL_TIP },
 { WIDGETS_END },
 };