OpenTTD Source: src/settings_gui.cpp File Reference

OpenTTD Source 1.11.0-RC1

Data Structures | Enumerations | Functions | Variables
settings_gui.cpp File Reference
`#include "stdafx.h"`
`#include "currency.h"`
`#include "error.h"`
`#include "settings_gui.h"`
`#include "textbuf_gui.h"`
`#include "command_func.h"`
`#include "network/network.h"`
`#include "town.h"`
`#include "settings_internal.h"`
`#include "strings_func.h"`
`#include "window_func.h"`
`#include "string_func.h"`
`#include "widgets/dropdown_type.h"`
`#include "widgets/dropdown_func.h"`
`#include "highscore.h"`
`#include "base_media_base.h"`
`#include "company_base.h"`
`#include "company_func.h"`
`#include "viewport_func.h"`
`#include "core/geometry_func.hpp"`
`#include "ai/ai.hpp"`
`#include "blitter/factory.hpp"`
`#include "language.h"`
`#include "textfile_gui.h"`
`#include "stringfilter_type.h"`
`#include "querystring_gui.h"`
`#include "fontcache.h"`
`#include "zoom_func.h"`
`#include "video/video_driver.hpp"`
`#include <vector>`
`#include <iterator>`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | BaseSetTextfileWindow< TBaseSet >
| Window for displaying the textfile of a BaseSet. More...
struct | GameOptionsWindow
struct | SettingFilter
| Filter for settings list. More...
struct | BaseSettingEntry
| Data structure describing a single setting in a tab. More...
struct | SettingEntry
| Standard setting. More...
struct | SettingsContainer
| Containers for BaseSettingEntry. More...
struct | SettingsPage
| Data structure describing one page of settings in the settings window. More...
struct | GameSettingsWindow
| Window to edit settings of the game. More...
struct | CustomCurrencyWindow

## Enumerations
enum | SettingEntryFlags { SEF_LEFT_DEPRESSED = 0x01, SEF_RIGHT_DEPRESSED = 0x02, SEF_BUTTONS_MASK = (SEF_LEFT_DEPRESSED | SEF_RIGHT_DEPRESSED), SEF_LAST_FIELD = 0x04, SEF_FILTERED = 0x08 }
| Flags for SettingEntry. More...
enum | RestrictionMode { RM_BASIC, RM_ADVANCED, RM_ALL, RM_CHANGED_AGAINST_DEFAULT, RM_CHANGED_AGAINST_NEW, RM_END }
| How the list of advanced settings is filtered. More...
enum | WarnHiddenResult { WHR_NONE, WHR_CATEGORY, WHR_TYPE, WHR_CATEGORY_TYPE }
| Warnings about hidden search results. More...

## Functions
static const void * | ResolveVariableAddress (const GameSettings *settings_ptr, const SettingDesc *sd)
static uint | GetCurrentResolutionIndex ()
| Get index of the current screen resolution. More...
static void | ShowCustCurrency ()
| Open custom currency window.
template<class T >
static DropDownList | BuildSetDropDownList (int *selected_index, bool allow_selection)
DropDownList | BuildMusicSetDropDownList (int *selected_index)
template<class TBaseSet >
void | ShowBaseSetTextfileWindow (TextfileType file_type, const TBaseSet *baseset, StringID content_type)
| Open the BaseSet version of the textfile window. More...
static void | AddCustomRefreshRates ()
| Add the refresh rate from the config and the refresh rates from all the monitors to our list of refresh rates shown in the GUI.
void | ShowGameOptions ()
| Open the game options window.
static SettingsContainer & | GetSettingsTree ()
| Construct settings tree.
void | ShowGameSettings ()
| Open advanced settings window.
void | DrawArrowButtons (int x, int y, Colours button_colour, byte state, bool clickable_left, bool clickable_right)
| Draw [<][>] boxes. More...
void | DrawDropDownButton (int x, int y, Colours button_colour, bool state, bool clickable)
| Draw a dropdown button. More...
void | DrawBoolButton (int x, int y, bool state, bool clickable)
| Draw a toggle button. More...

## Variables
static const StringID | _autosave_dropdown []
static const StringID | _gui_zoom_dropdown []
static const StringID | _font_zoom_dropdown []
static Dimension | _circle_size
| Dimension of the circle +/- icon. This is here as not all users are within the class of the settings window.
std::set< int > | _refresh_rates = { 30, 60, 75, 90, 100, 120, 144, 240 }
static const NWidgetPart | _nested_game_options_widgets []
static WindowDesc | _game_options_desc (WDP_CENTER, "settings_game", 0, 0, WC_GAME_OPTIONS, WC_NONE, 0, _nested_game_options_widgets, lengthof(_nested_game_options_widgets))
static int | SETTING_HEIGHT = 11
| Height of a single setting in the tree view in pixels.
static const int | LEVEL_WIDTH = 15
| Indenting width of a sub-page in pixels.
static const StringID | _game_settings_restrict_dropdown []
static const NWidgetPart | _nested_settings_selection_widgets []
static WindowDesc | _settings_selection_desc (WDP_CENTER, "settings", 510, 450, WC_GAME_OPTIONS, WC_NONE, 0, _nested_settings_selection_widgets, lengthof(_nested_settings_selection_widgets))
static const NWidgetPart | _nested_cust_currency_widgets []
static WindowDesc | _cust_currency_desc (WDP_CENTER, nullptr, 0, 0, WC_CUSTOM_CURRENCY, WC_NONE, 0, _nested_cust_currency_widgets, lengthof(_nested_cust_currency_widgets))

## Detailed Description

GUI for settings.

Definition in file settings_gui.cpp.

## Enumeration Type Documentation

## ◆ RestrictionMode

enum RestrictionMode

How the list of advanced settings is filtered.

Enumerator
RM_BASIC | Display settings associated to the "basic" list.
RM_ADVANCED | Display settings associated to the "advanced" list.
RM_ALL | List all settings regardless of the default/newgame/... values.
RM_CHANGED_AGAINST_DEFAULT | Show only settings which are different compared to default values.
RM_CHANGED_AGAINST_NEW | Show only settings which are different compared to the user's new game setting values.
RM_END | End for iteration.

Definition at line 706 of file settings_gui.cpp.

## ◆ SettingEntryFlags

enum SettingEntryFlags

Flags for SettingEntry.

Note
  The SEF_BUTTONS_MASK matches expectations of the formal parameter 'state' of DrawArrowButtons

Enumerator
SEF_LEFT_DEPRESSED | Of a numeric setting entry, the left button is depressed.
SEF_RIGHT_DEPRESSED | Of a numeric setting entry, the right button is depressed.
SEF_BUTTONS_MASK | Bit-mask for button flags.
SEF_LAST_FIELD | This entry is the last one in a (sub-)page.
SEF_FILTERED | Entry is hidden by the string filter.

Definition at line 696 of file settings_gui.cpp.

## ◆ WarnHiddenResult

enum WarnHiddenResult

Warnings about hidden search results.

Enumerator
WHR_NONE | Nothing was filtering matches away.
WHR_CATEGORY | Category setting filtered matches away.
WHR_TYPE | Type setting filtered matches away.
WHR_CATEGORY_TYPE | Both category and type settings filtered matches away.

Definition at line 1788 of file settings_gui.cpp.

## Function Documentation

## ◆ DrawArrowButtons()

void DrawArrowButtons | ( | int | x,
|  | int | y,
|  | Colours | button_colour,
|  | byte | state,
|  | bool | clickable_left,
|  | bool | clickable_right
| ) |  |

Draw [<][>] boxes.

Parameters

  x | the x position to draw
  y | the y position to draw
  button_colour | the colour of the button
  state | 0 = none clicked, 1 = first clicked, 2 = second clicked
  clickable_left | is the left button clickable?
  clickable_right | is the right button clickable?

Definition at line 2418 of file settings_gui.cpp.

## ◆ DrawBoolButton()

void DrawBoolButton | ( | int | x,
|  | int | y,
|  | bool | state,
|  | bool | clickable
| ) |  |

Draw a toggle button.

Parameters

  x | the x position to draw
  y | the y position to draw
  state | true = lowered
  clickable | is the button clickable?

Definition at line 2465 of file settings_gui.cpp.

## ◆ DrawDropDownButton()

void DrawDropDownButton | ( | int | x,
|  | int | y,
|  | Colours | button_colour,
|  | bool | state,
|  | bool | clickable
| ) |  |

Draw a dropdown button.

Parameters

  x | the x position to draw
  y | the y position to draw
  button_colour | the colour of the button
  state | true = lowered
  clickable | is the button clickable?

Definition at line 2446 of file settings_gui.cpp.

## ◆ GetCurrentResolutionIndex()

static uint GetCurrentResolutionIndex | ( |  | ) |
| static

Get index of the current screen resolution.

Returns
  Index of the current screen resolution if it is a known resolution, _resolutions.size() otherwise.

Definition at line 80 of file settings_gui.cpp.

References _resolutions.

## ◆ ShowBaseSetTextfileWindow()

template<class TBaseSet >

void ShowBaseSetTextfileWindow | ( | TextfileType | file_type,
|  | const TBaseSet * | baseset,
|  | StringID | content_type
| ) |  |

Open the BaseSet version of the textfile window.

Parameters

  file_type | The type of textfile to display.
  baseset | The BaseSet to use.
  content_type | STR_CONTENT_TYPE_xxx for title.

Definition at line 135 of file settings_gui.cpp.

References DeleteWindowById(), and WC_TEXTFILE.

## Variable Documentation

## ◆ _autosave_dropdown

const StringID _autosave_dropdown[]
| static

Initial value:
= {
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF,
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH,
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS,
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS,
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS,
INVALID_STRING_ID,
}

Definition at line 47 of file settings_gui.cpp.

## ◆ _font_zoom_dropdown

const StringID _font_zoom_dropdown[]
| static

Initial value:
= {
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_AUTO,
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL,
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM,
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM,
INVALID_STRING_ID,
}

Definition at line 64 of file settings_gui.cpp.

## ◆ _game_settings_restrict_dropdown

const StringID _game_settings_restrict_dropdown[]
| static

Initial value:
= {
STR_CONFIG_SETTING_RESTRICT_BASIC,
STR_CONFIG_SETTING_RESTRICT_ADVANCED,
STR_CONFIG_SETTING_RESTRICT_ALL,
STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT,
STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW,
}

Definition at line 1778 of file settings_gui.cpp.

## ◆ _gui_zoom_dropdown

const StringID _gui_zoom_dropdown[]
| static

Initial value:
= {
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_AUTO,
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL,
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM,
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM,
INVALID_STRING_ID,
}

Definition at line 56 of file settings_gui.cpp.

INVALID_STRING_ID
static const StringID INVALID_STRING_ID
Constant representing an invalid string (16bit in case it is used in savegames)
Definition: strings_type.h:17