OpenTTD Source 20250520-master-gecadf1b322
|
Implementation of hotkey related functions. More...
#include "stdafx.h"
#include "openttd.h"
#include "hotkeys.h"
#include "ini_type.h"
#include "string_func.h"
#include "window_gui.h"
#include "core/string_consumer.hpp"
#include "safeguards.h"
Go to the source code of this file.
Data Structures | |
struct | KeycodeNames |
String representation of a keycode. More... | |
Functions | |
static std::optional< uint16_t > | ParseCode (std::string_view keystr) |
Try to parse a single part of a keycode. | |
static std::optional< uint16_t > | ParseKeycode (std::string_view keystr) |
Parse a string representation of a keycode. | |
static void | ParseHotkeys (Hotkey &hotkey, std::string_view value) |
Parse a string to the keycodes it represents. | |
static std::string | KeycodeToString (uint16_t keycode) |
Convert a hotkey to it's string representation so it can be written to the config file. | |
std::string | SaveKeycodes (const Hotkey &hotkey) |
Convert all keycodes attached to a hotkey to a single string. | |
static void | SaveLoadHotkeys (bool save) |
void | LoadHotkeysFromConfig () |
Load the hotkeys from the config file. | |
void | SaveHotkeysToConfig () |
Save the hotkeys to the config file. | |
void | HandleGlobalHotkeys (char32_t key, uint16_t keycode) |
Variables | |
std::string | _hotkeys_file |
static std::vector< HotkeyList * > * | _hotkey_lists = nullptr |
List of all HotkeyLists. | |
static const std::initializer_list< KeycodeNames > | _keycode_to_name |
Array of non-standard keycodes that can be used in the hotkeys config file. | |
Implementation of hotkey related functions.
Definition in file hotkeys.cpp.
void HandleGlobalHotkeys | ( | char32_t | key, |
uint16_t | keycode | ||
) |
Definition at line 343 of file hotkeys.cpp.
|
static |
Convert a hotkey to it's string representation so it can be written to the config file.
Separate parts of the keycode (like "CTRL" and "F1" are split by a '+'.
keycode | The keycode to convert to a string. |
Definition at line 163 of file hotkeys.cpp.
References _keycode_to_name, and WKC_GLOBAL_HOTKEY.
Referenced by SaveKeycodes().
void LoadHotkeysFromConfig | ( | ) |
Load the hotkeys from the config file.
Definition at line 332 of file hotkeys.cpp.
Referenced by AfterNewGRFScan::OnNewGRFsScanned().
|
static |
Try to parse a single part of a keycode.
keystr | Input. |
Definition at line 97 of file hotkeys.cpp.
References _keycode_to_name, StrEqualsIgnoreCase(), and StringConsumer::WHITESPACE_NO_NEWLINE.
Referenced by ParseKeycode().
|
static |
Parse a string to the keycodes it represents.
hotkey | The hotkey object to add the keycodes to |
value | The string to parse |
Definition at line 146 of file hotkeys.cpp.
References Hotkey::AddKeycode(), ParseKeycode(), StringConsumer::ReadUntilChar(), and StringConsumer::SKIP_ONE_SEPARATOR.
Referenced by HotkeyList::Load().
|
static |
Parse a string representation of a keycode.
keystr | Input. |
Definition at line 119 of file hotkeys.cpp.
References ParseCode(), StringConsumer::ReadUntilChar(), and StringConsumer::SKIP_ONE_SEPARATOR.
Referenced by ParseHotkeys().
void SaveHotkeysToConfig | ( | ) |
Save the hotkeys to the config file.
Definition at line 338 of file hotkeys.cpp.
std::string SaveKeycodes | ( | const Hotkey & | hotkey | ) |
Convert all keycodes attached to a hotkey to a single string.
If multiple keycodes are attached to the hotkey they are split by a comma.
hotkey | The keycodes of this hotkey need to be converted to a string. |
Definition at line 205 of file hotkeys.cpp.
References KeycodeToString().
Referenced by HotkeyList::Save().
|
static |
Definition at line 314 of file hotkeys.cpp.
|
static |
List of all HotkeyLists.
This is a pointer to ensure initialisation order with the various static HotkeyList instances.
Definition at line 26 of file hotkeys.cpp.
std::string _hotkeys_file |
Definition at line 20 of file hotkeys.cpp.
|
static |
Array of non-standard keycodes that can be used in the hotkeys config file.
Definition at line 35 of file hotkeys.cpp.
Referenced by KeycodeToString(), and ParseCode().