| OpenTTD
    | 
Data structure describing a single setting in a tab. More...
 
  
 | Public Member Functions | |
| virtual void | Init (byte level=0) | 
| Initialization of a setting entry. | |
| virtual void | FoldAll () | 
| virtual void | UnFoldAll () | 
| void | SetLastField (bool last_field) | 
| Set whether this is the last visible entry of the parent node. | |
| virtual uint | Length () const =0 | 
| virtual void | GetFoldingState (bool &all_folded, bool &all_unfolded) const | 
| virtual bool | IsVisible (const BaseSettingEntry *item) const | 
| Check whether an entry is visible and not folded or filtered away. | |
| virtual BaseSettingEntry * | FindEntry (uint row, uint *cur_row) | 
| Find setting entry at row row_num. | |
| virtual uint | GetMaxHelpHeight (int maxw) | 
| bool | IsFiltered () const | 
| Check whether an entry is hidden due to filters. | |
| virtual bool | UpdateFilterState (SettingFilter &filter, bool force_visible)=0 | 
| virtual 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 | |
| byte | flags | 
| Flags of the setting entry. | |
| byte | level | 
| Nesting level of this setting entry. | |
| Protected Member Functions | |
| virtual void | DrawSetting (GameSettings *settings_ptr, int left, int right, int y, bool highlight) const =0 | 
Data structure describing a single setting in a tab.
Definition at line 707 of file settings_gui.cpp.
| 
 | virtual | 
Draw a row in the settings panel.
The scrollbar uses rows of the page, while the page data structure is a tree of SettingsPage and SettingEntry objects. As a result, the drawing routing traverses the tree from top to bottom, counting rows in cur_row until it reaches first_row. Then it enables drawing rows while traversing until max_row is reached, at which point drawing is terminated.
The parent_last parameter ensures that the vertical lines at the left are only drawn when another entry follows, that it prevents output like
* |-- setting * |-- (-) - Title * | |-- setting * | |-- setting *
The left-most vertical line is not wanted. It is prevented by setting the appropriate bit in the parent_last parameter.
| 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) | 
Reimplemented in SettingsPage.
Definition at line 896 of file settings_gui.cpp.
References _colour_gradient, _current_text_dir, flags, HasBit(), IsFiltered(), level, LEVEL_WIDTH, SEF_LAST_FIELD, and TD_RTL.
| 
 | virtual | 
Find setting entry at row row_num.
| row_num | Index of entry to return | 
| cur_row | Current row number | 
NULL if it not found (folded or filtered) Reimplemented in SettingsPage.
Definition at line 859 of file settings_gui.cpp.
References IsFiltered().
Referenced by SettingsContainer::FindEntry().
| 
 | virtual | 
Initialization of a setting entry.
| level | Page nesting level of this entry | 
Reimplemented in SettingsPage, and SettingEntry.
Definition at line 835 of file settings_gui.cpp.
References level.
| 
 | inline | 
Check whether an entry is hidden due to filters.
Definition at line 734 of file settings_gui.cpp.
References flags, and SEF_FILTERED.
Referenced by Draw(), SettingsPage::Draw(), FindEntry(), SettingsPage::FindEntry(), SettingsPage::FoldAll(), SettingsPage::GetFoldingState(), IsVisible(), SettingsPage::IsVisible(), SettingEntry::Length(), SettingsPage::Length(), and SettingsPage::UnFoldAll().
| 
 | virtual | 
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. | 
Reimplemented in SettingsPage.
Definition at line 846 of file settings_gui.cpp.
References IsFiltered().
| 
 | inline | 
Set whether this is the last visible entry of the parent node.
| last_field | Value to set | 
Definition at line 722 of file settings_gui.cpp.
References CLRBITS, flags, SEF_LAST_FIELD, and SETBITS.
| byte BaseSettingEntry::flags | 
Flags of the setting entry.
Definition at line 708 of file settings_gui.cpp.
Referenced by Draw(), SettingsPage::Draw(), SettingEntry::DrawSetting(), IsFiltered(), SettingEntry::SetButtons(), SetLastField(), SettingEntry::UpdateFilterState(), and SettingsPage::UpdateFilterState().
 1.8.1.2
 1.8.1.2