OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

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

Data structure describing a single setting in a tab. More...

Inheritance diagram for BaseSettingEntry:

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

## Detailed Description

Data structure describing a single setting in a tab.

Definition at line 707 of file settings_gui.cpp.

## Member Function Documentation

uint BaseSettingEntry::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
| 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.

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

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

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 `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().

void BaseSettingEntry::Init | ( | byte | level = `0` | ) |
| virtual

Initialization of a setting entry.

Parameters

  level | Page nesting level of this entry

Reimplemented in SettingsPage, and SettingEntry.

Definition at line 835 of file settings_gui.cpp.

References level.

bool BaseSettingEntry::IsFiltered | ( |  | ) | const
| inline

Check whether an entry is hidden due to filters.

Returns
  true if hidden.

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().

bool BaseSettingEntry::IsVisible | ( | const BaseSettingEntry * | item | ) | const
| 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.

Parameters

  item | Entry to search for.

Returns
  true if entry is visible.

Reimplemented in SettingsPage.

Definition at line 846 of file settings_gui.cpp.

References IsFiltered().

void BaseSettingEntry::SetLastField | ( | bool | last_field | ) |
| inline

Set whether this is the last visible entry of the parent node.

Parameters

  last_field | Value to set

Definition at line 722 of file settings_gui.cpp.

References CLRBITS, flags, SEF_LAST_FIELD, and SETBITS.

## Field Documentation

byte BaseSettingEntry::flags

Flags of the setting entry.

See Also
  SettingEntryFlags

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().

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

- src/settings_gui.cpp