OpenTTD Source 20241224-master-gf74b0cf984
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< NWidgetBaseMakePickerClassWidgets ()
 Create nested widgets for the class picker widgets.
 
std::unique_ptr< NWidgetBaseMakePickerTypeWidgets ()
 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

◆ GetPickerCallbacks()

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

Definition at line 38 of file picker_gui.cpp.

◆ MakePickerClassWidgets()

◆ MakePickerTypeWidgets()

◆ PickerLoadConfig() [1/2]

void PickerLoadConfig ( const IniFile ini)

Load favourites of all registered Pickers from config.

Parameters
iniIniFile 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
iniIniFile to load to.
callbacksPicker 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
iniIniFile 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
iniIniFile to save to.
callbacksPicker 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

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.