changeset 17826:03d75c842b87 draft

(svn r22617) -Codechange: Add GameOptionsInvalidationData enum for data values for Window::OnInvalidateData() of windows with class WC_GAME_OPTIONS.
author frosch <frosch@openttd.org>
date Sat, 02 Jul 2011 12:49:44 +0000
parents aab80a8cc8f2
children 808fd7d57d64
files src/console_cmds.cpp src/network/network_content_gui.cpp src/newgrf_gui.cpp src/settings_gui.cpp src/window_type.h
diffstat 5 files changed, 26 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/src/console_cmds.cpp
+++ b/src/console_cmds.cpp
@@ -1269,7 +1269,7 @@
 
 	TarScanner::DoScan();
 	ScanNewGRFFiles();
-	InvalidateWindowData(WC_GAME_OPTIONS, 0, 1);
+	InvalidateWindowData(WC_GAME_OPTIONS, 0, GOID_NEWGRF_RESCANNED);
 
 	return true;
 }
--- a/src/network/network_content_gui.cpp
+++ b/src/network/network_content_gui.cpp
@@ -117,7 +117,7 @@
 					ScanNewGRFFiles();
 					/* Yes... these are the NewGRF windows */
 					InvalidateWindowClassesData(WC_SAVELOAD);
-					InvalidateWindowData(WC_GAME_OPTIONS, 0, 1);
+					InvalidateWindowData(WC_GAME_OPTIONS, 0, GOID_NEWGRF_RESCANNED);
 					break;
 
 				case CONTENT_TYPE_SCENARIO:
--- a/src/newgrf_gui.cpp
+++ b/src/newgrf_gui.cpp
@@ -569,7 +569,7 @@
 		this->avails.SetFilterFuncs(this->filter_funcs);
 		this->avails.ForceRebuild();
 
-		this->OnInvalidateData(2);
+		this->OnInvalidateData(GOID_NEWGRF_LIST_EDITED);
 	}
 
 	~NewGRFWindow()
@@ -881,7 +881,7 @@
 				this->avail_pos = -1;
 				this->avail_sel = NULL;
 				this->avails.ForceRebuild();
-				this->InvalidateData(2);
+				this->InvalidateData(GOID_NEWGRF_LIST_EDITED);
 				break;
 			}
 
@@ -921,7 +921,7 @@
 				if (new_pos >= 0) this->avail_sel = this->avails[new_pos];
 
 				this->avails.ForceRebuild();
-				this->InvalidateData(2);
+				this->InvalidateData(GOID_NEWGRF_LIST_EDITED);
 				break;
 			}
 
@@ -989,7 +989,7 @@
 				this->avail_sel = NULL;
 				this->avail_pos = -1;
 				this->avails.ForceRebuild();
-				this->InvalidateData(1);
+				this->InvalidateData(GOID_NEWGRF_RESCANNED);
 				this->DeleteChildWindows(WC_QUERY_STRING); // Remove the parameter query window
 				InvalidateWindowClassesData(WC_SAVELOAD);
 				break;
@@ -1010,7 +1010,7 @@
 
 		DeleteWindowByClass(WC_GRF_PARAMETERS);
 		this->active_sel = NULL;
-		this->InvalidateData(3);
+		this->InvalidateData(GOID_NEWGRF_PRESET_LOADED);
 	}
 
 	virtual void OnQueryTextFinished(char *str)
@@ -1033,24 +1033,18 @@
 
 	/**
 	 * Some data on this window has become invalid.
-	 * @param data Information about the changed data.
-	 *  - 0: (optionally) build availables, update button status.
-	 *  - 1: build availables, Add newly found grfs, update button status.
-	 *  - 2: (optionally) build availables, Reset preset, + 3
-	 *  - 3: (optionally) build availables, Update active scrollbar, update button status.
-	 *  - 4: Force a rebuild of the availables, + 2
+	 * @param data Information about the changed data. @see GameOptionsInvalidationData
 	 * @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
 	 */
 	virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
 	{
 		if (!gui_scope) return;
 		switch (data) {
-			default: NOT_REACHED();
-			case 0:
+			default:
 				/* Nothing important to do */
 				break;
 
-			case 1:
+			case GOID_NEWGRF_RESCANNED:
 				/* Search the list for items that are now found and mark them as such. */
 				for (GRFConfig **l = &this->actives; *l != NULL; l = &(*l)->next) {
 					GRFConfig *c = *l;
@@ -1067,14 +1061,14 @@
 
 					delete c;
 				}
-				/* FALL THROUGH */
-			case 4:
+
 				this->avails.ForceRebuild();
 				/* FALL THROUGH */
-			case 2:
+			case GOID_NEWGRF_LIST_EDITED:
 				this->preset = -1;
 				/* FALL THROUGH */
-			case 3: {
+			case GOID_NEWGRF_PRESET_LOADED: {
+				/* Update scrollbars */
 				int i = 0;
 				for (const GRFConfig *c = this->actives; c != NULL; c = c->next, i++) {}
 
--- a/src/settings_gui.cpp
+++ b/src/settings_gui.cpp
@@ -527,7 +527,7 @@
 
 	/**
 	 * Some data on this window has become invalid.
-	 * @param data Information about the changed data.
+	 * @param data Information about the changed data. @see GameOptionsInvalidationData
 	 * @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
 	 */
 	virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
@@ -797,7 +797,7 @@
 
 	/**
 	 * Some data on this window has become invalid.
-	 * @param data Information about the changed data.
+	 * @param data Information about the changed data. @see GameOptionsInvalidationData
 	 * @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
 	 */
 	virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
--- a/src/window_type.h
+++ b/src/window_type.h
@@ -115,6 +115,16 @@
 	WC_INVALID = 0xFFFF
 };
 
+/**
+ * Data value for #Window::OnInvalidateData() of windows with class #WC_GAME_OPTIONS.
+ */
+enum GameOptionsInvalidationData {
+	GOID_DEFAULT = 0,
+	GOID_NEWGRF_RESCANNED,     ///< NewGRFs were just rescanned.
+	GOID_NEWGRF_LIST_EDITED,   ///< List of active NewGRFs is being edited.
+	GOID_NEWGRF_PRESET_LOADED, ///< A NewGRF preset was picked.
+};
+
 struct Window;
 
 /** Number to differentiate different windows of the same class */