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

Containers for BaseSettingEntry. More...

Inheritance diagram for SettingsContainer:
SettingsPage

Public Types

typedef std::vector< BaseSettingEntry * > EntryVector
 

Public Member Functions

template<typename T >
T * Add (T *item)
 
void Init (byte level=0)
 Initialization of an entire setting page. More...
 
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...
 
BaseSettingEntryFindEntry (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

EntryVector entries
 Settings on this page.
 

Detailed Description

Containers for BaseSettingEntry.

Definition at line 779 of file settings_gui.cpp.

Member Function Documentation

◆ 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_ptrPointer to current values of all settings
leftLeft-most position in window/panel to start drawing first_row
rightRight-most x position to draw strings at.
yUpper-most position in window/panel to start drawing first_row
first_rowFirst row number to draw
max_rowRow-number to stop drawing (the row-number of the row below the last row to draw)
selectedSelected entry by the user.
cur_rowCurrent row number (internal variable)
parent_lastLast-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 1275 of file settings_gui.cpp.

Referenced by GameSettingsWindow::DrawWidget().

◆ FindEntry()

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

Find the setting entry at row number row_num.

Parameters
row_numIndex of entry to return
cur_rowVariable 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 NULL if it does not exist

Definition at line 1234 of file settings_gui.cpp.

References BaseSettingEntry::FindEntry().

Referenced by SettingsPage::FindEntry(), and GameSettingsWindow::OnClick().

◆ GetFoldingState()

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

Recursively accumulate the folding state of the tree.

Parameters
[in,out]all_foldedSet to false, if one entry is not folded.
[in,out]all_unfoldedSet to false, if one entry is folded.

Definition at line 1178 of file settings_gui.cpp.

Referenced by SettingsPage::GetFoldingState(), and GameSettingsWindow::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
maxwMaximal width of a line help text.
Returns
Biggest height needed to display any help text of this (sub-)tree.

Definition at line 1251 of file settings_gui.cpp.

References max().

◆ Init()

void SettingsContainer::Init ( byte  level = 0)

Initialization of an entire setting page.

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

Definition at line 1150 of file settings_gui.cpp.

Referenced by GetSettingsTree(), and 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
itemEntry to search for.
Returns
true if entry is visible.

Definition at line 1210 of file settings_gui.cpp.

Referenced by SettingsPage::IsVisible().

◆ UpdateFilterState()

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

Update the filter state.

Parameters
filterFilter
force_visibleWhether to force all items visible, no matter what
Returns
true if item remains visible

Definition at line 1191 of file settings_gui.cpp.

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


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