changeset 8593:90ffef351faa draft

(svn r12174) -Codechange: Make the patches window dynamically resize to the largest patch tab, so adding patch options is simply a case of adding to the lists.
author peter1138 <peter1138@openttd.org>
date Mon, 18 Feb 2008 12:36:10 +0000
parents 8d18ff60b07a
children 2ed0f71a87ff
files src/settings_gui.cpp
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/settings_gui.cpp
+++ b/src/settings_gui.cpp
@@ -860,6 +860,7 @@
 static void PatchesSelectionWndProc(Window *w, WindowEvent *e)
 {
 	static Patches *patches_ptr;
+	static int patches_max = 0;
 
 	switch (e->event) {
 		case WE_CREATE: {
@@ -873,6 +874,8 @@
 				for (page = &_patches_page[0]; page != endof(_patches_page); page++) {
 					uint i;
 
+					if (patches_max < page->num) patches_max = page->num;
+
 					page->entries = MallocT<PatchEntry>(page->num);
 					for (i = 0; i != page->num; i++) {
 						uint index;
@@ -885,6 +888,10 @@
 				}
 				first_time = false;
 			}
+
+			/* Resize the window to fit the largest patch tab */
+			ResizeWindowForWidget(w, PATCHSEL_OPTIONSPANEL, 0, patches_max * 11);
+
 			w->LowerWidget(4);
 		} break;
 
@@ -1071,7 +1078,7 @@
 {   WWT_CLOSEBOX,   RESIZE_NONE,    10,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},
 {    WWT_CAPTION,   RESIZE_NONE,    10,    11,   369,     0,    13, STR_CONFIG_PATCHES_CAPTION,      STR_018C_WINDOW_TITLE_DRAG_THIS},
 {      WWT_PANEL,   RESIZE_NONE,    10,     0,   369,    14,    41, 0x0,                             STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    10,     0,   369,    42,   380, 0x0,                             STR_NULL},
+{      WWT_PANEL,   RESIZE_NONE,    10,     0,   369,    42,    50, 0x0,                             STR_NULL},
 
 {    WWT_TEXTBTN,   RESIZE_NONE,     3,    10,    96,    16,    27, STR_CONFIG_PATCHES_GUI,          STR_NULL},
 {    WWT_TEXTBTN,   RESIZE_NONE,     3,    97,   183,    16,    27, STR_CONFIG_PATCHES_CONSTRUCTION, STR_NULL},
@@ -1083,7 +1090,7 @@
 };
 
 static const WindowDesc _patches_selection_desc = {
-	WDP_CENTER, WDP_CENTER, 370, 381, 370, 381,
+	WDP_CENTER, WDP_CENTER, 370, 51, 370, 51,
 	WC_GAME_OPTIONS, WC_NONE,
 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
 	_patches_selection_widgets,