(svn r15369) -Codechange: generalise the GUIList a bit so peter can write filters for cargo type, speed and mass ;)
This commit is contained in:
		@@ -32,11 +32,11 @@ struct Filtering {
 | 
				
			|||||||
	byte criteria; ///< Filtering criteria
 | 
						byte criteria; ///< Filtering criteria
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
template <typename T, typename F = char>
 | 
					template <typename T, typename F = const char*>
 | 
				
			||||||
class GUIList : public SmallVector<T, 32> {
 | 
					class GUIList : public SmallVector<T, 32> {
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
	typedef int CDECL SortFunction(const T*, const T*);
 | 
						typedef int CDECL SortFunction(const T*, const T*);
 | 
				
			||||||
	typedef bool CDECL FilterFunction(const T*, const F*);
 | 
						typedef bool CDECL FilterFunction(const T*, F);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
	SortFunction * const *sort_func_list;     ///< the sort criteria functions
 | 
						SortFunction * const *sort_func_list;     ///< the sort criteria functions
 | 
				
			||||||
@@ -316,7 +316,7 @@ public:
 | 
				
			|||||||
	 * @param filter_data Additional data passed to the filter function
 | 
						 * @param filter_data Additional data passed to the filter function
 | 
				
			||||||
	 * @return true if the list has been altered by filtering
 | 
						 * @return true if the list has been altered by filtering
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	bool Filter(FilterFunction *decide, const F *filter_data)
 | 
						bool Filter(FilterFunction *decide, F filter_data)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		/* Do not filter if the filter bit is not set */
 | 
							/* Do not filter if the filter bit is not set */
 | 
				
			||||||
		if (!HASBITS(this->flags, VL_FILTER)) return false;
 | 
							if (!HASBITS(this->flags, VL_FILTER)) return false;
 | 
				
			||||||
@@ -349,7 +349,7 @@ public:
 | 
				
			|||||||
	 * @param filter_data Additional data passed to the filter function.
 | 
						 * @param filter_data Additional data passed to the filter function.
 | 
				
			||||||
	 * @return true if the list has been altered by filtering
 | 
						 * @return true if the list has been altered by filtering
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	bool Filter(const F *filter_data)
 | 
						bool Filter(F filter_data)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (this->filter_func_list == NULL) return false;
 | 
							if (this->filter_func_list == NULL) return false;
 | 
				
			||||||
		return this->Filter(this->filter_func_list[this->filter_type], filter_data);
 | 
							return this->Filter(this->filter_func_list[this->filter_type], filter_data);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user