|
OpenTTD Source
14.0-beta1
|
List template of 'things' T to sort in a GUI.
More...
#include <sortlist_type.h>
Public Types | |
| using | SortFunction = std::conditional_t< std::is_same_v< P, std::nullptr_t >, bool(const T &, const T &), bool(const T &, const T &, const P)> |
| Signature of sort function. | |
| typedef bool CDECL | FilterFunction(const T *, F) |
| Signature of filter function. | |
Public Member Functions | |
| template<typename T_ = T, typename P_ = P, typename _F = F, std::enable_if_t<!std::is_same_v< P_, std::nullptr_t >> * = nullptr> | |
| GUIList (const P ¶ms) | |
| uint8_t | SortType () const |
| Get the sorttype of the list. More... | |
| void | SetSortType (uint8_t n_type) |
| Set the sorttype of the list. More... | |
| Listing | GetListing () const |
| Export current sort conditions. More... | |
| void | SetListing (Listing l) |
| Import sort conditions. More... | |
| uint8_t | FilterType () const |
| Get the filtertype of the list. More... | |
| void | SetFilterType (uint8_t n_type) |
| Set the filtertype of the list. More... | |
| Filtering | GetFiltering () const |
| Export current filter conditions. More... | |
| void | SetFiltering (Filtering f) |
| Import filter conditions. More... | |
| bool | NeedResort () |
| Check if a resort is needed next loop If used the resort timer will decrease every call till 0. More... | |
| void | ForceResort () |
| Force a resort next Sort call Reset the resort timer if used too. | |
| bool | IsDescSortOrder () const |
| Check if the sort order is descending. More... | |
| void | ToggleSortOrder () |
| Toggle the sort order Since that is the worst condition for the sort function reverse the list here. | |
| template<typename Comp > | |
| bool | Sort (Comp compare) |
| Sort the list. More... | |
| void | SetSortFuncs (SortFunction *const *n_funcs) |
| Hand the array of sort function pointers to the sort list. More... | |
| bool | Sort () |
| Overload of #Sort(SortFunction *compare) Overloaded to reduce external code. More... | |
| bool | IsFilterEnabled () const |
| Check if the filter is enabled. More... | |
| void | SetFilterState (bool state) |
| Enable or disable the filter. More... | |
| bool | Filter (FilterFunction *decide, F filter_data) |
| Filter the list. More... | |
| void | SetFilterFuncs (FilterFunction *const *n_funcs) |
| Hand the array of filter function pointers to the sort list. More... | |
| bool | Filter (F filter_data) |
| Filter the data with the currently selected filter. More... | |
| bool | NeedRebuild () const |
| Check if a rebuild is needed. More... | |
| void | ForceRebuild () |
| Force that a rebuild is needed. | |
| void | RebuildDone () |
| Notify the sortlist that the rebuild is done. More... | |
Protected Types | |
| using | SortParameterReference = std::conditional_t< std::is_same_v< P, std::nullptr_t >, P, P & > |
Protected Member Functions | |
| bool | IsSortable () const |
| Check if the list is sortable. More... | |
| void | ResetResortTimer () |
| Reset the resort timer. | |
Protected Attributes | |
| SortFunction *const * | sort_func_list |
| the sort criteria functions | |
| FilterFunction *const * | filter_func_list |
| the filter criteria functions | |
| SortListFlags | flags |
| used to control sorting/resorting/etc. | |
| uint8_t | sort_type |
| what criteria to sort on | |
| uint8_t | filter_type |
| what criteria to filter on | |
| uint16_t | resort_timer |
| resort list after a given amount of ticks if set | |
| const SortParameterReference | params |
List template of 'things' T to sort in a GUI.
| T | Type of data stored in the list to represent each item. |
| P | Tyoe of data passed as additional parameter to the sort function. |
| F | Type of data fed as additional value to the filter function. |
Definition at line 47 of file sortlist_type.h.
|
inline |
Filter the data with the currently selected filter.
| filter_data | Additional data passed to the filter function. |
Definition at line 377 of file sortlist_type.h.
|
inline |
Filter the list.
| decide | The function to decide about an item |
| filter_data | Additional data passed to the filter function |
Definition at line 343 of file sortlist_type.h.
Referenced by BuildObjectWindow::BuildObjectClassesAvailable(), IndustryDirectoryWindow::BuildSortIndustriesList(), BuildRailStationWindow::BuildStationClassesAvailable(), NetworkContentListWindow::FilterContentList(), BuildVehicleWindow::FilterEngineList(), SignList::FilterSignList(), and BaseVehicleListWindow::FilterVehicleList().
|
inline |
Get the filtertype of the list.
Definition at line 166 of file sortlist_type.h.
|
inline |
Export current filter conditions.
Definition at line 188 of file sortlist_type.h.
Referenced by NetworkContentListWindow::UpdateFilterState().
|
inline |
Export current sort conditions.
Definition at line 137 of file sortlist_type.h.
|
inline |
Check if the sort order is descending.
Definition at line 244 of file sortlist_type.h.
Referenced by NetworkContentListWindow::OnPaint().
|
inline |
Check if the filter is enabled.
Definition at line 317 of file sortlist_type.h.
|
inlineprotected |
Check if the list is sortable.
Definition at line 70 of file sortlist_type.h.
Referenced by GUIList< BuildBridgeData >::Sort(), and GUIList< BuildBridgeData >::ToggleSortOrder().
|
inline |
Check if a rebuild is needed.
Definition at line 387 of file sortlist_type.h.
Referenced by PerformanceLeagueWindow::BuildCompanyList(), NetworkContentListWindow::BuildContentList(), VehicleGroupWindow::BuildGroupList(), NetworkGameWindow::BuildGUINetworkGameList(), BuildObjectWindow::BuildObjectClassesAvailable(), IndustryDirectoryWindow::BuildSortIndustriesList(), BuildRailStationWindow::BuildStationClassesAvailable(), CompanyStationsWindow::BuildStationsList(), StoryBookWindow::BuildStoryPageElementList(), StoryBookWindow::BuildStoryPageList(), NetworkContentListWindow::OnInvalidateData(), SignListWindow::OnPaint(), NetworkGameWindow::OnPaint(), NetworkContentListWindow::OnPaint(), TownDirectoryWindow::OnPaint(), and IndustryDirectoryWindow::OnPaint().
|
inline |
Check if a resort is needed next loop If used the resort timer will decrease every call till 0.
If 0 reached the resort bit will be set and the timer will be reset.
Definition at line 220 of file sortlist_type.h.
Referenced by PerformanceLeagueWindow::OnGameTick(), CompanyStationsWindow::OnGameTick(), VehicleGroupWindow::OnGameTick(), VehicleListWindow::OnGameTick(), NetworkGameWindow::OnPaint(), and SignWindow::PrevNextSign().
|
inline |
Notify the sortlist that the rebuild is done.
Definition at line 405 of file sortlist_type.h.
Referenced by PerformanceLeagueWindow::BuildCompanyList(), NetworkContentListWindow::BuildContentList(), VehicleGroupWindow::BuildGroupList(), BuildObjectWindow::BuildObjectClassesAvailable(), IndustryDirectoryWindow::BuildSortIndustriesList(), BuildRailStationWindow::BuildStationClassesAvailable(), CompanyStationsWindow::BuildStationsList(), StoryBookWindow::BuildStoryPageElementList(), StoryBookWindow::BuildStoryPageList(), and ReplaceVehicleWindow::GenerateLists().
|
inline |
Hand the array of filter function pointers to the sort list.
| n_funcs | The pointer to the first filter func |
Definition at line 366 of file sortlist_type.h.
Referenced by NetworkContentListWindow::NetworkContentListWindow(), BaseVehicleListWindow::SetCargoFilterArray(), BuildVehicleWindow::SetCargoFilterArray(), and IndustryDirectoryWindow::SetCargoFilterArray().
|
inline |
Import filter conditions.
| f | The filter conditions we want to use |
Definition at line 202 of file sortlist_type.h.
Referenced by NetworkContentListWindow::NetworkContentListWindow().
|
inline |
Enable or disable the filter.
| state | If filtering should be enabled or disabled |
Definition at line 327 of file sortlist_type.h.
Referenced by IndustryDirectoryWindow::SetAcceptedCargoFilter(), BaseVehicleListWindow::SetCargoFilter(), BaseVehicleListWindow::SetCargoFilterArray(), IndustryDirectoryWindow::SetProducedCargoFilter(), and NetworkContentListWindow::UpdateFilterState().
|
inline |
Set the filtertype of the list.
| n_type | the new filter type |
Definition at line 176 of file sortlist_type.h.
Referenced by NetworkContentListWindow::FilterContentList(), IndustryDirectoryWindow::SetAcceptedCargoFilter(), BaseVehicleListWindow::SetCargoFilter(), and IndustryDirectoryWindow::SetProducedCargoFilter().
|
inline |
Import sort conditions.
| l | The sort conditions we want to use |
Definition at line 151 of file sortlist_type.h.
Referenced by NetworkContentListWindow::NetworkContentListWindow().
|
inline |
Hand the array of sort function pointers to the sort list.
| n_funcs | The pointer to the first sort func |
Definition at line 295 of file sortlist_type.h.
Referenced by NetworkContentListWindow::NetworkContentListWindow().
|
inline |
Set the sorttype of the list.
| n_type | the new sort type |
Definition at line 124 of file sortlist_type.h.
|
inline |
Overload of #Sort(SortFunction *compare) Overloaded to reduce external code.
Definition at line 306 of file sortlist_type.h.
Referenced by GUIList< BuildBridgeData >::Sort().
|
inline |
Sort the list.
| compare | The function to compare two list items |
Definition at line 268 of file sortlist_type.h.
Referenced by VehicleGroupWindow::BuildGroupList(), BuildObjectWindow::BuildObjectClassesAvailable(), IndustryDirectoryWindow::BuildSortIndustriesList(), BuildRailStationWindow::BuildStationClassesAvailable(), StoryBookWindow::BuildStoryPageElementList(), StoryBookWindow::BuildStoryPageList(), PerformanceLeagueWindow::OnPaint(), BuildBridgeWindow::SortBridgeList(), NetworkContentListWindow::SortContentList(), NetworkGameWindow::SortNetworkGameList(), and CompanyStationsWindow::SortStationsList().
|
inline |
Get the sorttype of the list.
Definition at line 114 of file sortlist_type.h.
Referenced by NetworkContentListWindow::OnPaint(), and BuildBridgeWindow::SortBridgeList().