OpenTTD Source: src/hotkeys.cpp File Reference

OpenTTD Source 13.1

Data Structures | Functions | Variables
hotkeys.cpp File Reference
`#include "stdafx.h"`
`#include "openttd.h"`
`#include "hotkeys.h"`
`#include "ini_type.h"`
`#include "string_func.h"`
`#include "window_gui.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | KeycodeNames
| String representation of a keycode. More...

## Functions
static uint16 | ParseCode (const char *start, const char *end)
| Try to parse a single part of a keycode. More...
static uint16 | ParseKeycode (const char *start, const char *end)
| Parse a string representation of a keycode. More...
static void | ParseHotkeys (Hotkey *hotkey, const char *value)
| Parse a string to the keycodes it represents. More...
static const char * | KeycodeToString (uint16 keycode)
| Convert a hotkey to it's string representation so it can be written to the config file. More...
const char * | SaveKeycodes (const Hotkey *hotkey)
| Convert all keycodes attached to a hotkey to a single string. More...
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 (WChar key, uint16 keycode)

## Variables
std::string | _hotkeys_file
static std::vector< HotkeyList * > * | _hotkey_lists = nullptr
| List of all HotkeyLists. More...
static const KeycodeNames | _keycode_to_name []
| Array of non-standard keycodes that can be used in the hotkeys config file.

## Detailed Description

Implementation of hotkey related functions

Definition in file hotkeys.cpp.

## Function Documentation

## ◆ KeycodeToString()

static const char* KeycodeToString | ( | uint16 | keycode | ) |
| 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 '+'.

Parameters

  keycode | The keycode to convert to a string.

Returns
  A string representation of this keycode.

Note
  The return value is a static buffer, stredup the result before calling this function again.

Definition at line 172 of file hotkeys.cpp.

References lastof, strecat(), and WKC_GLOBAL_HOTKEY.

Referenced by SaveKeycodes().

## ◆ ParseCode()

static uint16 ParseCode | ( | const char * | start,
|  | const char * | end
| ) |  |
| static

Try to parse a single part of a keycode.

Parameters

  start | Start of the string to parse.
  end | End of the string to parse.

Returns
  A keycode if a match is found or 0.

Definition at line 97 of file hotkeys.cpp.

References _keycode_to_name, KeycodeNames::keycode, and lengthof.

Referenced by ParseKeycode().

## ◆ ParseHotkeys()

static void ParseHotkeys | ( | Hotkey * | hotkey,
|  | const char * | value
| ) |  |
| static

Parse a string to the keycodes it represents.

Parameters

  hotkey | The hotkey object to add the keycodes to
  value | The string to parse

Definition at line 151 of file hotkeys.cpp.

References Hotkey::AddKeycode(), and ParseKeycode().

Referenced by HotkeyList::Load().

## ◆ ParseKeycode()

static uint16 ParseKeycode | ( | const char * | start,
|  | const char * | end
| ) |  |
| static

Parse a string representation of a keycode.

Parameters

  start | Start of the input.
  end | End of the input.

Returns
  A valid keycode or 0.

Definition at line 121 of file hotkeys.cpp.

References ParseCode().

Referenced by ParseHotkeys().

## ◆ SaveKeycodes()

const char* 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.

Parameters

  hotkey | The keycodes of this hotkey need to be converted to a string.

Returns
  A string representation of all keycodes.

Note
  The return value is a static buffer, stredup the result before calling this function again.

Definition at line 226 of file hotkeys.cpp.

References KeycodeToString(), lastof, and strecat().

Referenced by HotkeyList::Save().

## Variable Documentation

## ◆ _hotkey_lists

std::vector<HotkeyList*>* _hotkey_lists = nullptr
| static

List of all HotkeyLists.

This is a pointer to ensure initialisation order with the various static HotkeyList instances.

Definition at line 25 of file hotkeys.cpp.