Public Member Functions | Data Fields | Private Member Functions

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 GetMaxHelpHeight (int maxw)
 Get the biggest height of the help text(s), if the width is at least maxw.
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, SettingEntry *selected)
 Draw a row in the settings panel.
StringID GetHelpText ()
 Get the help text of a single setting.
void SetValueDParams (uint first_param, int32 value)
 Set the DParams for drawing the value of a setting.

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, int x, int y, int max_x, int state, bool highlight)
 Private function to draw setting value (button + text + current value).

Detailed Description

Data structure describing a single setting in a tab.

Definition at line 995 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 1054 of file settings_gui.cpp.

References d, flags, and level.

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

References d, flags, and level.


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,
SettingEntry selected 
)

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)
selected Selected entry by the user.
Returns:
Row number of the next row to draw

Definition at line 1209 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, and SetBit().

Referenced by SettingsPage::Draw().

void SettingEntry::DrawSetting ( GameSettings settings_ptr,
int  left,
int  right,
int  y,
int  state,
bool  highlight 
) [private]

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

Parameters:
settings_ptr Pointer to current values of all settings
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
highlight Highlight entry.

Definition at line 1311 of file settings_gui.cpp.

References _current_text_dir, _network_server, _networking, SettingDescBase::cmd, SaveLoad::conv, d, SettingDesc::desc, DrawArrowButtons(), DrawBoolButton(), DrawDropDownButton(), DrawString(), SettingDescBase::flags, SettingDescBase::max, SettingDescBase::min, ReadValue(), SettingDesc::save, SDT_BOOLX, SetDParam(), SETTING_BUTTON_HEIGHT, SETTING_BUTTON_WIDTH, SetValueDParams(), SGF_0ISDISABLED, SGF_MULTISTRING, SGF_NETWORK_ONLY, SGF_NO_NETWORK, SLF_NO_NETWORK_SYNC, and SettingDescBase::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 1147 of file settings_gui.cpp.

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

Referenced by SettingsPage::FindEntry().

StringID SettingEntry::GetHelpText (  )  [inline]

Get the help text of a single setting.

Returns:
The requested help text.

Definition at line 1020 of file settings_gui.cpp.

References d, flags, SEF_KIND_MASK, and SEF_SETTING_KIND.

Referenced by GetMaxHelpHeight().

uint SettingEntry::GetMaxHelpHeight ( int  maxw  ) 

Get the biggest height of the help text(s), 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 node (and its descendants).

Definition at line 1173 of file settings_gui.cpp.

References d, flags, GetHelpText(), GetStringHeight(), SEF_KIND_MASK, SEF_SETTING_KIND, and SEF_SUBTREE_KIND.

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

References d, flags, GetSettingFromName(), SEF_KIND_MASK, 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 1121 of file settings_gui.cpp.

References flags, and SEF_BUTTONS_MASK.

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

void SettingEntry::SetValueDParams ( uint  first_param,
int32  value 
)

Set the DParams for drawing the value of a setting.

Parameters:
first_param First DParam to use
value Setting value to set params for.

Definition at line 1283 of file settings_gui.cpp.

References abs(), SettingDescBase::cmd, d, SettingDescBase::flags, flags, SettingDescBase::min, SDT_BOOLX, SEF_KIND_MASK, SEF_SETTING_KIND, SetDParam(), SGF_0ISDISABLED, SGF_DISPLAY_ABS, SGF_MULTISTRING, and SettingDescBase::str_val.

Referenced by DrawSetting(), and GameSettingsWindow::DrawWidget().


Field Documentation


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