SettingEntry Struct Reference

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

Public Member Functions

 SettingEntry (const char *nm)
 Constructor for a single setting in the 'advanced settings' window.
 SettingEntry (SettingsPage *sub, StringID title)
 Constructor for a sub-page in the 'advanced settings' window.
void Init (byte level, bool last_field)
 Initialization of a setting entry.
void FoldAll ()
 Recursively close all folds of sub-pages.
void SetButtons (byte new_val)
 Set the button-depressed flags (SEF_LEFT_DEPRESSED and SEF_RIGHT_DEPRESSED) to a specified value.
uint Length () const
 Return numbers of rows needed to display the entry.
SettingEntryFindEntry (uint row, uint *cur_row)
 Find setting entry at row row_num.
uint Draw (GameSettings *settings_ptr, int base_x, int base_y, int max_x, uint first_row, uint max_row, uint cur_row, uint parent_last)
 Draw a row in the settings panel.

Data Fields

byte flags
 Flags of the setting entry.
byte level
 Nesting level of this setting entry.
union {
   SettingEntrySetting   entry
 Data fields if entry is a setting.
   SettingEntrySubtree   sub
 Data fields if entry is a sub-page.
d
 Data fields for each kind.

Private Member Functions

void DrawSetting (GameSettings *settings_ptr, const SettingDesc *sd, int x, int y, int max_x, int state)
 Private function to draw setting value (button + text + current value).

Detailed Description

Data structure describing a single setting in a tab.

Definition at line 949 of file settings_gui.cpp.


Constructor & Destructor Documentation

SettingEntry::SettingEntry ( const char *  nm  ) 

Constructor for a single setting in the 'advanced settings' window.

Parameters:
nm Name of the setting in the setting table

Definition at line 994 of file settings_gui.cpp.

References d, flags, level, and SEF_SETTING_KIND.

SettingEntry::SettingEntry ( SettingsPage sub,
StringID  title 
)

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

Parameters:
sub Sub-page
title Title of the sub-page

Definition at line 1008 of file settings_gui.cpp.

References d, flags, level, and SEF_SUBTREE_KIND.


Member Function Documentation

uint SettingEntry::Draw ( GameSettings settings_ptr,
int  left,
int  right,
int  base_y,
uint  first_row,
uint  max_row,
uint  cur_row,
uint  parent_last 
)

Draw a row in the settings panel.

See SettingsPage::Draw() for an explanation about how drawing is performed.

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 appropiate 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.
base_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)
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 1134 of file settings_gui.cpp.

References _colour_gradient, _current_text_dir, d, DrawSetting(), DrawSprite(), DrawString(), flags, HasBit(), level, SEF_BUTTONS_MASK, SEF_KIND_MASK, SEF_LAST_FIELD, SEF_SETTING_KIND, SEF_SUBTREE_KIND, SetBit(), and TD_RTL.

Referenced by SettingsPage::Draw().

void SettingEntry::DrawSetting ( GameSettings settings_ptr,
const SettingDesc sd,
int  left,
int  right,
int  y,
int  state 
) [private]

Private function to draw setting value (button + text + current value).

Parameters:
settings_ptr Pointer to current values of all settings
sd Pointer to value description of setting to draw
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
state State of the left + right arrow buttons to draw for the setting

Definition at line 1211 of file settings_gui.cpp.

References _current_text_dir, _network_server, _networking, SettingDescBase::cmd, SaveLoad::conv, SettingDesc::desc, DrawArrowButtons(), DrawFrameRect(), DrawString(), SettingDescBase::flags, FR_LOWERED, SettingDescBase::max, SettingDescBase::min, ReadValue(), SettingDesc::save, SDT_BOOLX, SetDParam(), SGF_0ISDISABLED, SGF_CURRENCY, SGF_MULTISTRING, SGF_NETWORK_ONLY, SGF_NO_NETWORK, SGF_NOCOMMA, SGF_PER_COMPANY, SLF_NO_NETWORK_SYNC, SettingDescBase::str, TD_RTL, and SettingDescBase::val_str.

Referenced by Draw().

SettingEntry * SettingEntry::FindEntry ( uint  row_num,
uint *  cur_row 
)

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

Definition at line 1087 of file settings_gui.cpp.

References d, flags, SEF_KIND_MASK, SEF_SETTING_KIND, and SEF_SUBTREE_KIND.

Referenced by SettingsPage::FindEntry().

void SettingEntry::Init ( byte  level,
bool  last_field 
)

Initialization of a setting entry.

Parameters:
level Page nesting level of this entry
last_field Boolean indicating this entry is the last at the (sub-)page

Definition at line 1022 of file settings_gui.cpp.

References d, flags, GetSettingFromName(), SEF_KIND_MASK, SEF_LAST_FIELD, SEF_SETTING_KIND, and SEF_SUBTREE_KIND.

Referenced by SettingsPage::Init().

void SettingEntry::SetButtons ( byte  new_val  ) 

Set the button-depressed flags (SEF_LEFT_DEPRESSED and SEF_RIGHT_DEPRESSED) to a specified value.

Parameters:
new_val New value for the button flags
See also:
SettingEntryFlags

Definition at line 1061 of file settings_gui.cpp.

References flags, and SEF_BUTTONS_MASK.

Referenced by GameSettingsWindow::OnClick(), and GameSettingsWindow::OnTimeout().


Field Documentation


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

Generated on Fri May 27 04:21:14 2011 for OpenTTD by  doxygen 1.6.1