OpenTTD Source: SettingsPage Struct Reference

OpenTTD Source 14.1

Public Member Functions | Data Fields | Protected Member Functions
SettingsPage Struct Reference

Data structure describing one page of settings in the settings window. More...

Inheritance diagram for SettingsPage:

## Public Member Functions
| SettingsPage (StringID title)
| Constructor for a sub-page in the 'advanced settings' window. More...
void | Init (byte level=0) override
| Initialization of an entire setting page. More...
void | ResetAll () override
| Resets all settings to their default values.
void | FoldAll () override
| Recursively close all (filtered) folds of sub-pages.
void | UnFoldAll () override
| Recursively open all (filtered) folds of sub-pages.
uint | Length () const override
| Return number of rows needed to display the (filtered) entry.
void | GetFoldingState (bool &all_folded, bool &all_unfolded) const override
| Recursively accumulate the folding state of the (filtered) tree. More...
bool | IsVisible (const BaseSettingEntry *item) const override
| Check whether an entry is visible and not folded or filtered away. More...
BaseSettingEntry * | FindEntry (uint row, uint *cur_row) override
| Find setting entry at row row_num. More...
uint | GetMaxHelpHeight (int maxw) override
bool | UpdateFilterState (SettingFilter &filter, bool force_visible) override
| Update the filter state. More...
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 override
| Draw a row in the settings panel. More...
Public Member Functions inherited from BaseSettingEntry
void | SetLastField (bool last_field)
| Set whether this is the last visible entry of the parent node. More...
virtual void | GetFoldingState ([[maybe_unused]] bool &all_folded, [[maybe_unused]] bool &all_unfolded) const
virtual uint | GetMaxHelpHeight ([[maybe_unused]] int maxw)
bool | IsFiltered () const
| Check whether an entry is hidden due to filters. More...
Public Member Functions inherited from SettingsContainer
template<typename T >
T * | Add (T *item)
void | Init (byte level=0)
| Initialization of an entire setting page. More...
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. More...
bool | IsVisible (const BaseSettingEntry *item) const
| Check whether an entry is visible and not folded or filtered away. More...
BaseSettingEntry * | FindEntry (uint row, uint *cur_row)
| Find the setting entry at row number row_num. More...
uint | GetMaxHelpHeight (int maxw)
| Get the biggest height of the help texts, if the width is at least maxw. More...
bool | UpdateFilterState (SettingFilter &filter, bool force_visible)
| Update the filter state. More...
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. More...

## Data Fields
StringID | title
| Title of the sub-page.
bool | folded
| Sub-page is folded (not visible except for its title)
Data Fields inherited from BaseSettingEntry
byte | flags
| Flags of the setting entry. More...
byte | level
| Nesting level of this setting entry.
Data Fields inherited from SettingsContainer
EntryVector | entries
| Settings on this page.

## Protected Member Functions
void | DrawSetting (GameSettings *settings_ptr, int left, int right, int y, bool highlight) const override
| Function to draw setting value (button + text + current value) More...

## Additional Inherited Members
Public Types inherited from SettingsContainer
typedef std::vector< BaseSettingEntry * > | EntryVector

## Detailed Description

Data structure describing one page of settings in the settings window.

Definition at line 1315 of file settings_gui.cpp.

## Constructor & Destructor Documentation

## ◆ SettingsPage()

SettingsPage::SettingsPage | ( | StringID | title | ) |

Constructor for a sub-page in the 'advanced settings' window.

Parameters

  title | Title of the sub-page

Definition at line 1778 of file settings_gui.cpp.

References folded, and title.

## Member Function Documentation

## ◆ Draw()

uint SettingsPage::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
| overridevirtual

Draw a row in the settings panel.

Parameters

  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)

Returns
  Row number of the next row to draw

Reimplemented from BaseSettingEntry.

Definition at line 1915 of file settings_gui.cpp.

## ◆ DrawSetting()

void SettingsPage::DrawSetting | ( | GameSettings * | settings_ptr,
|  | int | left,
|  | int | right,
|  | int | y,
|  | bool | highlight
| ) |  | const
| overrideprotectedvirtual

Function to draw setting value (button + text + current value)

Parameters

  left | Left-most position in window/panel to start drawing
  right | Right-most position in window/panel to draw
  y | Upper-most position in window/panel to start drawing

Implements BaseSettingEntry.

Definition at line 1940 of file settings_gui.cpp.

## ◆ FindEntry()

BaseSettingEntry * SettingsPage::FindEntry | ( | uint | row_num,
|  | uint * | cur_row
| ) |  |
| overridevirtual

Find setting entry at row row_num.

Parameters

  row_num | Index of entry to return
  cur_row | Current row number

Returns
  The requested setting entry or `nullptr` if it not found (folded or filtered)

Reimplemented from BaseSettingEntry.

Definition at line 1891 of file settings_gui.cpp.

References SettingsContainer::FindEntry(), folded, and BaseSettingEntry::IsFiltered().

## ◆ GetFoldingState()

void SettingsPage::GetFoldingState | ( | bool & | all_folded,
|  | bool & | all_unfolded
| ) |  | const
| override

Recursively accumulate the folding state of the (filtered) tree.

Parameters

  [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 1825 of file settings_gui.cpp.

References folded, SettingsContainer::GetFoldingState(), and BaseSettingEntry::IsFiltered().

## ◆ Init()

void SettingsPage::Init | ( | byte | level = `0` | ) |
| overridevirtual

Initialization of an entire setting page.

Parameters

  level | Nesting level of this page (internal variable, do not provide a value for it when calling)

Reimplemented from BaseSettingEntry.

Definition at line 1788 of file settings_gui.cpp.

References BaseSettingEntry::Init(), SettingsContainer::Init(), and BaseSettingEntry::level.

## ◆ IsVisible()

bool SettingsPage::IsVisible | ( | const BaseSettingEntry * | item | ) | const
| overridevirtual

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.

Parameters

  item | Entry to search for.

Returns
  true if entry is visible.

Reimplemented from BaseSettingEntry.

Definition at line 1867 of file settings_gui.cpp.

References folded, BaseSettingEntry::IsFiltered(), and SettingsContainer::IsVisible().

## ◆ UpdateFilterState()

bool SettingsPage::UpdateFilterState | ( | SettingFilter & | filter,
|  | bool | force_visible
| ) |  |
| overridevirtual

Update the filter state.

Parameters

  filter | Filter
  force_visible | Whether to force all items visible, no matter what (due to filter text; not affected by restriction drop down box).

Returns
  true if item remains visible

Implements BaseSettingEntry.

Definition at line 1844 of file settings_gui.cpp.

References StringFilter::AddLine(), CLRBITS, BaseSettingEntry::flags, StringFilter::GetState(), StringFilter::IsEmpty(), StringFilter::ResetState(), SEF_FILTERED, SETBITS, SettingFilter::string, title, and SettingsContainer::UpdateFilterState().

The documentation for this struct was generated from the following file:

- src/settings_gui.cpp