Changeset - r17816:ea46d9d50889
[Not reviewed]
master
0 5 0
frosch - 13 years ago 2011-07-02 12:49:44
frosch@openttd.org
(svn r22617) -Codechange: Add GameOptionsInvalidationData enum for data values for Window::OnInvalidateData() of windows with class WC_GAME_OPTIONS.
5 files changed with 26 insertions and 22 deletions:
0 comments (0 inline, 0 general)
src/console_cmds.cpp
Show inline comments
 
@@ -1269,7 +1269,7 @@ DEF_CONSOLE_CMD(ConRescanNewGRF)
 

	
 
	TarScanner::DoScan();
 
	ScanNewGRFFiles();
 
	InvalidateWindowData(WC_GAME_OPTIONS, 0, 1);
 
	InvalidateWindowData(WC_GAME_OPTIONS, 0, GOID_NEWGRF_RESCANNED);
 

	
 
	return true;
 
}
src/network/network_content_gui.cpp
Show inline comments
 
@@ -117,7 +117,7 @@ public:
 
					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:
src/newgrf_gui.cpp
Show inline comments
 
@@ -569,7 +569,7 @@ struct NewGRFWindow : public QueryString
 
		this->avails.SetFilterFuncs(this->filter_funcs);
 
		this->avails.ForceRebuild();
 

	
 
		this->OnInvalidateData(2);
 
		this->OnInvalidateData(GOID_NEWGRF_LIST_EDITED);
 
	}
 

	
 
	~NewGRFWindow()
 
@@ -881,7 +881,7 @@ struct NewGRFWindow : public QueryString
 
				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 @@ struct NewGRFWindow : public QueryString
 
				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 @@ struct NewGRFWindow : public QueryString
 
				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 @@ struct NewGRFWindow : public QueryString
 

	
 
		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 @@ struct NewGRFWindow : public QueryString
 

	
 
	/**
 
	 * 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 @@ struct NewGRFWindow : public QueryString
 

	
 
					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++) {}
 

	
src/settings_gui.cpp
Show inline comments
 
@@ -527,7 +527,7 @@ struct GameOptionsWindow : Window {
 

	
 
	/**
 
	 * 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 @@ public:
 

	
 
	/**
 
	 * 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)
src/window_type.h
Show inline comments
 
@@ -115,6 +115,16 @@ enum WindowClass {
 
	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 */
0 comments (0 inline, 0 general)