OpenTTD Source: SettingsContainer Struct Reference

OpenTTD Source 15.0-RC2

Public Types | Public Member Functions | Data Fields
SettingsContainer Struct Reference

Containers for BaseSettingEntry. More...

`#include <settingentry_gui.h>`

Inheritance diagram for SettingsContainer:

## 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.

## Detailed Description

Containers for BaseSettingEntry.

Definition at line 116 of file settingentry_gui.h.

## Member Typedef Documentation

## ◆ EntryVector

typedef std::vector<BaseSettingEntry*> SettingsContainer::EntryVector

Definition at line 117 of file settingentry_gui.h.

## Member Function Documentation

## ◆ Add()

template<typename T >

T * SettingsContainer::Add | ( | T * | item | ) |
| inline

Definition at line 121 of file settingentry_gui.h.

## ◆ Draw()

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.

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

Definition at line 438 of file settingentry_gui.cpp.

References entries.

Referenced by SettingsPage::Draw(), and GameOptionsWindow::DrawWidget().

## ◆ FindEntry()

BaseSettingEntry * SettingsContainer::FindEntry | ( | uint | row_num,
|  | uint * | cur_row
| ) |  |

Find the setting entry at row number row_num.

Parameters

  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.

Returns
  The requested setting entry or `nullptr` if it does not exist

Definition at line 397 of file settingentry_gui.cpp.

References entries, and BaseSettingEntry::FindEntry().

Referenced by SettingsPage::FindEntry().

## ◆ FoldAll()

void SettingsContainer::FoldAll | ( |  | ) |

Recursively close all folds of sub-pages.

Definition at line 321 of file settingentry_gui.cpp.

References entries.

Referenced by SettingsPage::FoldAll(), GameOptionsWindow::OnClick(), and ResetAllSettingsConfirmationCallback().

## ◆ GetFoldingState()

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

Recursively accumulate the folding state of the 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 341 of file settingentry_gui.cpp.

References entries.

Referenced by SettingsPage::GetFoldingState(), and GameOptionsWindow::OnInvalidateData().

## ◆ GetMaxHelpHeight()

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.

Parameters

  maxw | Maximal width of a line help text.

Returns
  Biggest height needed to display any help text of this (sub-)tree.

Definition at line 414 of file settingentry_gui.cpp.

References entries.

## ◆ Init()

void SettingsContainer::Init | ( | uint8_t | level = `0` | ) |

Initialization of an entire setting page.

Parameters

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

Definition at line 305 of file settingentry_gui.cpp.

References entries.

Referenced by SettingsPage::Init().

## ◆ IsVisible()

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.

Parameters

  item | Entry to search for.

Returns
  true if entry is visible.

Definition at line 373 of file settingentry_gui.cpp.

References entries.

Referenced by SettingsPage::IsVisible().

## ◆ Length()

uint SettingsContainer::Length | ( |  | ) | const

Return number of rows needed to display the whole page.

Definition at line 382 of file settingentry_gui.cpp.

References entries.

Referenced by SettingsPage::Length().

## ◆ ResetAll()

void SettingsContainer::ResetAll | ( |  | ) |

Resets all settings to their default values.

Definition at line 313 of file settingentry_gui.cpp.

References entries.

Referenced by ResetAllSettingsConfirmationCallback().

## ◆ UnFoldAll()

void SettingsContainer::UnFoldAll | ( |  | ) |

Recursively open all folds of sub-pages.

Definition at line 329 of file settingentry_gui.cpp.

References entries.

Referenced by GameOptionsWindow::OnClick(), GameOptionsWindow::OnDropdownSelect(), GameOptionsWindow::OnEditboxChanged(), and SettingsPage::UnFoldAll().

## ◆ UpdateFilterState()

bool SettingsContainer::UpdateFilterState | ( | SettingFilter & | filter,
|  | bool | force_visible
| ) |  |

Update the filter state.

Parameters

  filter | Filter
  force_visible | Whether to force all items visible, no matter what

Returns
  true if item remains visible

Definition at line 354 of file settingentry_gui.cpp.

References entries.

Referenced by GameOptionsWindow::OnDropdownSelect(), GameOptionsWindow::OnInvalidateData(), and SettingsPage::UpdateFilterState().

## Field Documentation

## ◆ entries

EntryVector SettingsContainer::entries

Settings on this page.

Definition at line 118 of file settingentry_gui.h.

Referenced by Draw(), FindEntry(), FoldAll(), GetFoldingState(), GetMaxHelpHeight(), Init(), IsVisible(), Length(), ResetAll(), SettingsPage::ResetAll(), UnFoldAll(), and UpdateFilterState().

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

- src/settingentry_gui.h
- src/settingentry_gui.cpp