OpenTTD Source 20241224-master-gee860a5c8e
|
Containers for BaseSettingEntry. More...
Public Types | |
typedef std::vector< BaseSettingEntry * > | EntryVector |
Public Member Functions | |
template<typename T > | |
T * | Add (T *item) |
void | Init (uint8_t level=0) |
Initialization of an entire setting page. | |
void | ResetAll () |
Resets all settings to their default values. | |
void | FoldAll () |
Recursively close all folds of sub-pages. | |
void | UnFoldAll () |
Recursively open all folds of sub-pages. | |
uint | Length () const |
Return number of rows needed to display the whole page. | |
void | GetFoldingState (bool &all_folded, bool &all_unfolded) const |
Recursively accumulate the folding state of the tree. | |
bool | IsVisible (const BaseSettingEntry *item) const |
Check whether an entry is visible and not folded or filtered away. | |
BaseSettingEntry * | FindEntry (uint row, uint *cur_row) |
Find the setting entry at row number row_num. | |
uint | GetMaxHelpHeight (int maxw) |
Get the biggest height of the help texts, if the width is at least maxw. | |
bool | UpdateFilterState (SettingFilter &filter, bool force_visible) |
Update the filter state. | |
uint | Draw (GameSettings *settings_ptr, int left, int right, int y, uint first_row, uint max_row, BaseSettingEntry *selected, uint cur_row=0, uint parent_last=0) const |
Draw a row in the settings panel. | |
Data Fields | |
EntryVector | entries |
Settings on this page. | |
Containers for BaseSettingEntry.
Definition at line 1303 of file settings_gui.cpp.
typedef std::vector<BaseSettingEntry*> SettingsContainer::EntryVector |
Definition at line 1304 of file settings_gui.cpp.
|
inline |
Definition at line 1308 of file settings_gui.cpp.
uint SettingsContainer::Draw | ( | GameSettings * | settings_ptr, |
int | left, | ||
int | right, | ||
int | y, | ||
uint | first_row, | ||
uint | max_row, | ||
BaseSettingEntry * | selected, | ||
uint | cur_row = 0 , |
||
uint | parent_last = 0 |
||
) | const |
Draw a row in the settings panel.
settings_ptr | Pointer to current values of all settings |
left | Left-most position in window/panel to start drawing first_row |
right | Right-most x position to draw strings at. |
y | Upper-most position in window/panel to start drawing first_row |
first_row | First row number to draw |
max_row | Row-number to stop drawing (the row-number of the row below the last row to draw) |
selected | Selected entry by the user. |
cur_row | Current row number (internal variable) |
parent_last | Last-field booleans of parent page level (page level i sets bit i to 1 if it is its last field) |
Definition at line 1779 of file settings_gui.cpp.
References entries.
Referenced by SettingsPage::Draw(), and GameSettingsWindow::DrawWidget().
BaseSettingEntry * SettingsContainer::FindEntry | ( | uint | row_num, |
uint * | cur_row | ||
) |
Find the setting entry at row number row_num.
row_num | Index of entry to return |
cur_row | Variable used for keeping track of the current row number. Should point to memory initialized to 0 when first called. |
nullptr
if it does not exist Definition at line 1738 of file settings_gui.cpp.
References entries, and BaseSettingEntry::FindEntry().
Referenced by SettingsPage::FindEntry(), and GameSettingsWindow::OnClick().
void SettingsContainer::FoldAll | ( | ) |
Recursively close all folds of sub-pages.
Definition at line 1662 of file settings_gui.cpp.
References entries.
Referenced by SettingsPage::FoldAll(), GameSettingsWindow::OnClick(), and ResetAllSettingsConfirmationCallback().
void SettingsContainer::GetFoldingState | ( | bool & | all_folded, |
bool & | all_unfolded | ||
) | const |
Recursively accumulate the folding state of the tree.
[in,out] | all_folded | Set to false, if one entry is not folded. |
[in,out] | all_unfolded | Set to false, if one entry is folded. |
Definition at line 1682 of file settings_gui.cpp.
References entries.
Referenced by SettingsPage::GetFoldingState(), and GameSettingsWindow::OnInvalidateData().
uint SettingsContainer::GetMaxHelpHeight | ( | int | maxw | ) |
Get the biggest height of the help texts, if the width is at least maxw.
Help text gets wrapped if needed.
maxw | Maximal width of a line help text. |
Definition at line 1755 of file settings_gui.cpp.
References entries.
void SettingsContainer::Init | ( | uint8_t | level = 0 | ) |
Initialization of an entire setting page.
level | Nesting level of this page (internal variable, do not provide a value for it when calling) |
Definition at line 1646 of file settings_gui.cpp.
References entries.
Referenced by SettingsPage::Init().
bool SettingsContainer::IsVisible | ( | const BaseSettingEntry * | item | ) | const |
Check whether an entry is visible and not folded or filtered away.
Note: This does not consider the scrolling range; it might still require scrolling to make the setting really visible.
item | Entry to search for. |
Definition at line 1714 of file settings_gui.cpp.
References entries.
Referenced by SettingsPage::IsVisible().
uint SettingsContainer::Length | ( | ) | const |
Return number of rows needed to display the whole page.
Definition at line 1723 of file settings_gui.cpp.
References entries.
Referenced by SettingsPage::Length().
void SettingsContainer::ResetAll | ( | ) |
Resets all settings to their default values.
Definition at line 1654 of file settings_gui.cpp.
References entries.
Referenced by ResetAllSettingsConfirmationCallback().
void SettingsContainer::UnFoldAll | ( | ) |
Recursively open all folds of sub-pages.
Definition at line 1670 of file settings_gui.cpp.
References entries.
Referenced by GameSettingsWindow::OnClick(), GameSettingsWindow::OnDropdownSelect(), GameSettingsWindow::OnEditboxChanged(), and SettingsPage::UnFoldAll().
bool SettingsContainer::UpdateFilterState | ( | SettingFilter & | filter, |
bool | force_visible | ||
) |
Update the filter state.
filter | Filter |
force_visible | Whether to force all items visible, no matter what |
Definition at line 1695 of file settings_gui.cpp.
References entries.
Referenced by GameSettingsWindow::OnDropdownSelect(), GameSettingsWindow::OnInvalidateData(), and SettingsPage::UpdateFilterState().
EntryVector SettingsContainer::entries |
Settings on this page.
Definition at line 1305 of file settings_gui.cpp.
Referenced by Draw(), FindEntry(), FoldAll(), GetFoldingState(), GetMaxHelpHeight(), Init(), IsVisible(), Length(), ResetAll(), SettingsPage::ResetAll(), UnFoldAll(), and UpdateFilterState().