OpenTTD Source: src/picker_gui.cpp File Reference

OpenTTD Source 15.0-beta1

Functions | Variables
picker_gui.cpp File Reference

File for dealing with picker windows More...

`#include "stdafx.h"`
`#include "core/backup_type.hpp"`
`#include "gui.h"`
`#include "hotkeys.h"`
`#include "ini_type.h"`
`#include "picker_gui.h"`
`#include "querystring_gui.h"`
`#include "settings_type.h"`
`#include "sortlist_type.h"`
`#include "sound_func.h"`
`#include "sound_type.h"`
`#include "string_func.h"`
`#include "stringfilter_type.h"`
`#include "strings_func.h"`
`#include "widget_type.h"`
`#include "window_func.h"`
`#include "window_gui.h"`
`#include "window_type.h"`
`#include "zoom_func.h"`
`#include "widgets/picker_widget.h"`
`#include "table/sprites.h"`
`#include <charconv>`
`#include "safeguards.h"`

Go to the source code of this file.

## Functions
static std::vector< PickerCallbacks * > & | GetPickerCallbacks ()
static void | PickerLoadConfig (const IniFile &ini, PickerCallbacks &callbacks)
| Load favourites of a picker from config.
static void | PickerSaveConfig (IniFile &ini, const PickerCallbacks &callbacks)
| Save favourites of a picker to config.
void | PickerLoadConfig (const IniFile &ini)
| Load favourites of all registered Pickers from config.
void | PickerSaveConfig (IniFile &ini)
| Save favourites of all registered Pickers to config.
static bool | ClassIDSorter (int const &a, int const &b)
| Sort classes by id.
static bool | ClassTagNameFilter (int const *item, PickerFilterData &filter)
| Filter classes by class name.
static bool | TypeIDSorter (PickerItem const &a, PickerItem const &b)
| Sort types by id.
static bool | TypeTagNameFilter (PickerItem const *item, PickerFilterData &filter)
| Filter types by class name.
std::unique_ptr< NWidgetBase > | MakePickerClassWidgets ()
| Create nested widgets for the class picker widgets.
std::unique_ptr< NWidgetBase > | MakePickerTypeWidgets ()
| Create nested widgets for the type picker widgets.

## Variables
static const std::initializer_list< PickerClassList::SortFunction *const > | _class_sorter_funcs = { &ClassIDSorter }
| Sort functions of the PickerClassList.
static const std::initializer_list< PickerClassList::FilterFunction *const > | _class_filter_funcs = { &ClassTagNameFilter }
| Filter functions of the PickerClassList.
static const std::initializer_list< PickerTypeList::SortFunction *const > | _type_sorter_funcs = { TypeIDSorter }
| Sort functions of the PickerTypeList.
static const std::initializer_list< PickerTypeList::FilterFunction *const > | _type_filter_funcs = { TypeTagNameFilter }
| Filter functions of the PickerTypeList.

## Detailed Description

File for dealing with picker windows

Definition in file picker_gui.cpp.

## Function Documentation

## ◆ ClassIDSorter()

static bool ClassIDSorter | ( | int const & | a,
|  | int const & | b
| ) |  |
| static

Sort classes by id.

Definition at line 124 of file picker_gui.cpp.

## ◆ ClassTagNameFilter()

static bool ClassTagNameFilter | ( | int const * | item,
|  | PickerFilterData & | filter
| ) |  |
| static

Filter classes by class name.

Definition at line 130 of file picker_gui.cpp.

References StringFilter::AddLine(), PickerFilterData::callbacks, PickerCallbacks::GetClassName(), StringFilter::GetState(), GetString(), and StringFilter::ResetState().

## ◆ GetPickerCallbacks()

static std::vector< PickerCallbacks * > & GetPickerCallbacks | ( |  | ) |
| static

Definition at line 38 of file picker_gui.cpp.

## ◆ MakePickerClassWidgets()

std::unique_ptr< NWidgetBase > MakePickerClassWidgets | ( |  | ) |

Create nested widgets for the class picker widgets.

Definition at line 623 of file picker_gui.cpp.

References EndContainer(), MakeNWidgets(), NWID_HORIZONTAL, NWID_SELECTION, NWID_VERTICAL, NWID_VSCROLLBAR, NWidget(), SetDataTip(), SetFill(), SetMatrixDataTip(), SetMinimalSize(), SetPadding(), SetResize(), SetScrollbar(), WidgetDimensions::unscaled, WID_PW_CLASS_FILTER, WID_PW_CLASS_LIST, WID_PW_CLASS_SCROLL, WID_PW_CLASS_SEL, WWT_EDITBOX, WWT_MATRIX, and WWT_PANEL.

## ◆ MakePickerTypeWidgets()

std::unique_ptr< NWidgetBase > MakePickerTypeWidgets | ( |  | ) |

Create nested widgets for the type picker widgets.

Definition at line 646 of file picker_gui.cpp.

References EndContainer(), MakeNWidgets(), NC_EQUALSIZE, NWID_HORIZONTAL, NWID_MATRIX, NWID_SELECTION, NWID_VERTICAL, NWID_VSCROLLBAR, NWidget(), SetDataTip(), SetFill(), SetMinimalTextLines(), SetPadding(), SetPIP(), SetResize(), SetScrollbar(), WidgetDimensions::unscaled, WID_PW_MODE_ALL, WID_PW_MODE_SAVED, WID_PW_MODE_USED, WID_PW_TYPE_FILTER, WID_PW_TYPE_ITEM, WID_PW_TYPE_MATRIX, WID_PW_TYPE_NAME, WID_PW_TYPE_RESIZE, WID_PW_TYPE_SCROLL, WID_PW_TYPE_SEL, WWT_EDITBOX, WWT_EMPTY, WWT_PANEL, WWT_RESIZEBOX, and WWT_TEXTBTN.

## ◆ PickerLoadConfig() [1/2]

void PickerLoadConfig | ( | const IniFile & | ini | ) |

Load favourites of all registered Pickers from config.

Parameters

  ini | IniFile to load to.

Definition at line 109 of file picker_gui.cpp.

References PickerLoadConfig().

Referenced by LoadFromConfig().

## ◆ PickerLoadConfig() [2/2]

static void PickerLoadConfig | ( | const IniFile & | ini,
|  | PickerCallbacks & | callbacks
| ) |  |
| static

Load favourites of a picker from config.

Parameters

  ini | IniFile to load to.
  callbacks | Picker to load.

Definition at line 60 of file picker_gui.cpp.

References ConvertHexToBytes(), IniLoadFile::GetGroup(), PickerCallbacks::ini_group, IniGroup::items, and PickerCallbacks::saved.

Referenced by PickerLoadConfig().

## ◆ PickerSaveConfig() [1/2]

void PickerSaveConfig | ( | IniFile & | ini | ) |

Save favourites of all registered Pickers to config.

Parameters

  ini | IniFile to save to.

Definition at line 118 of file picker_gui.cpp.

References PickerSaveConfig().

Referenced by SaveToConfig().

## ◆ PickerSaveConfig() [2/2]

static void PickerSaveConfig | ( | IniFile & | ini,
|  | const PickerCallbacks & | callbacks
| ) |  |
| static

Save favourites of a picker to config.

Parameters

  ini | IniFile to save to.
  callbacks | Picker to save.

Definition at line 94 of file picker_gui.cpp.

References BSWAP32(), IniGroup::Clear(), IniGroup::CreateItem(), IniLoadFile::GetOrCreateGroup(), PickerCallbacks::ini_group, and PickerCallbacks::saved.

Referenced by PickerSaveConfig().

## ◆ TypeIDSorter()

static bool TypeIDSorter | ( | PickerItem const & | a,
|  | PickerItem const & | b
| ) |  |
| static

Sort types by id.

Definition at line 138 of file picker_gui.cpp.

## ◆ TypeTagNameFilter()

static bool TypeTagNameFilter | ( | PickerItem const * | item,
|  | PickerFilterData & | filter
| ) |  |
| static

Filter types by class name.

Definition at line 146 of file picker_gui.cpp.

References StringFilter::AddLine(), PickerFilterData::callbacks, StringFilter::GetState(), GetString(), PickerCallbacks::GetTypeName(), and StringFilter::ResetState().

## Variable Documentation

## ◆ _class_filter_funcs

const std::initializer_list<PickerClassList::FilterFunction * const> _class_filter_funcs = { &ClassTagNameFilter }
| static

Filter functions of the PickerClassList.

Definition at line 154 of file picker_gui.cpp.

## ◆ _class_sorter_funcs

const std::initializer_list<PickerClassList::SortFunction * const> _class_sorter_funcs = { &ClassIDSorter }
| static

Sort functions of the PickerClassList.

Definition at line 153 of file picker_gui.cpp.

## ◆ _type_filter_funcs

const std::initializer_list<PickerTypeList::FilterFunction * const> _type_filter_funcs = { TypeTagNameFilter }
| static

Filter functions of the PickerTypeList.

Definition at line 156 of file picker_gui.cpp.

## ◆ _type_sorter_funcs

const std::initializer_list<PickerTypeList::SortFunction * const> _type_sorter_funcs = { TypeIDSorter }
| static

Sort functions of the PickerTypeList.

Definition at line 155 of file picker_gui.cpp.