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.
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.
BaseSettingEntryFindEntry (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 778 of file settings_gui.cpp.

Member Function Documentation

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

Reimplemented in SettingsPage.

Definition at line 1274 of file settings_gui.cpp.

References entries.

Referenced by GameSettingsWindow::DrawWidget().

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

Reimplemented in SettingsPage.

Definition at line 1233 of file settings_gui.cpp.

References entries, and BaseSettingEntry::FindEntry().

Referenced by GameSettingsWindow::OnClick().

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.

Reimplemented in SettingsPage.

Definition at line 1177 of file settings_gui.cpp.

References entries.

Referenced by GameSettingsWindow::OnInvalidateData().

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

References entries, and max().

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)

Reimplemented in SettingsPage.

Definition at line 1149 of file settings_gui.cpp.

References entries.

Referenced by GetSettingsTree().

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.

Reimplemented in SettingsPage.

Definition at line 1209 of file settings_gui.cpp.

References entries.

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

Reimplemented in SettingsPage.

Definition at line 1190 of file settings_gui.cpp.

References entries.

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


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