openMSX
input
KeyboardSettings.hh
Go to the documentation of this file.
1
#ifndef KEYBOARDSETTINGS_HH
2
#define KEYBOARDSETTINGS_HH
3
4
#include "
SDLKey.hh
"
5
#include "
EnumSetting.hh
"
6
#include "
BooleanSetting.hh
"
7
#include <array>
8
#include <cassert>
9
10
namespace
openmsx
{
11
12
class
CommandController;
13
14
class
KeyboardSettings
15
{
16
public
:
17
enum
KpEnterMode
{
MSX_KP_COMMA
,
MSX_ENTER
};
18
enum
MappingMode
{
KEY_MAPPING
,
CHARACTER_MAPPING
,
POSITIONAL_MAPPING
};
19
20
explicit
KeyboardSettings
(
CommandController
& commandController);
21
22
[[nodiscard]] SDL_Keycode
getDeadKeyHostKey
(
unsigned
n)
const
{
23
assert(n < 3);
24
return
deadKeyHostKey[n].getEnum();
25
}
26
[[nodiscard]] SDL_Keycode
getCodeKanaHostKey
()
const
{
27
return
codeKanaHostKey.
getEnum
();
28
}
29
[[nodiscard]]
KpEnterMode
getKpEnterMode
()
const
{
30
return
kpEnterMode.
getEnum
();
31
}
32
[[nodiscard]]
MappingMode
getMappingMode
()
const
{
33
return
mappingMode.
getEnum
();
34
}
35
[[nodiscard]]
bool
getAlwaysEnableKeypad
()
const
{
36
return
alwaysEnableKeypad.
getBoolean
();
37
}
38
[[nodiscard]]
bool
getTraceKeyPresses
()
const
{
39
return
traceKeyPresses.
getBoolean
();
40
}
41
[[nodiscard]]
bool
getAutoToggleCodeKanaLock
()
const
{
42
return
autoToggleCodeKanaLock.
getBoolean
();
43
}
44
45
private
:
46
std::array<EnumSetting<SDL_Keycode>, 3> deadKeyHostKey;
47
EnumSetting<SDL_Keycode>
codeKanaHostKey;
48
EnumSetting<KpEnterMode>
kpEnterMode;
49
EnumSetting<MappingMode>
mappingMode;
50
BooleanSetting
alwaysEnableKeypad;
51
BooleanSetting
traceKeyPresses;
52
BooleanSetting
autoToggleCodeKanaLock;
53
};
54
55
}
// namespace openmsx
56
57
#endif
BooleanSetting.hh
EnumSetting.hh
SDLKey.hh
openmsx::BooleanSetting
Definition
BooleanSetting.hh:9
openmsx::BooleanSetting::getBoolean
bool getBoolean() const noexcept
Definition
BooleanSetting.hh:17
openmsx::CommandController
Definition
CommandController.hh:19
openmsx::EnumSetting
Definition
EnumSetting.hh:56
openmsx::EnumSetting::getEnum
T getEnum() const noexcept
Definition
EnumSetting.hh:114
openmsx::KeyboardSettings
Definition
KeyboardSettings.hh:15
openmsx::KeyboardSettings::getAlwaysEnableKeypad
bool getAlwaysEnableKeypad() const
Definition
KeyboardSettings.hh:35
openmsx::KeyboardSettings::MappingMode
MappingMode
Definition
KeyboardSettings.hh:18
openmsx::KeyboardSettings::POSITIONAL_MAPPING
@ POSITIONAL_MAPPING
Definition
KeyboardSettings.hh:18
openmsx::KeyboardSettings::KEY_MAPPING
@ KEY_MAPPING
Definition
KeyboardSettings.hh:18
openmsx::KeyboardSettings::CHARACTER_MAPPING
@ CHARACTER_MAPPING
Definition
KeyboardSettings.hh:18
openmsx::KeyboardSettings::getTraceKeyPresses
bool getTraceKeyPresses() const
Definition
KeyboardSettings.hh:38
openmsx::KeyboardSettings::getMappingMode
MappingMode getMappingMode() const
Definition
KeyboardSettings.hh:32
openmsx::KeyboardSettings::getKpEnterMode
KpEnterMode getKpEnterMode() const
Definition
KeyboardSettings.hh:29
openmsx::KeyboardSettings::getAutoToggleCodeKanaLock
bool getAutoToggleCodeKanaLock() const
Definition
KeyboardSettings.hh:41
openmsx::KeyboardSettings::KpEnterMode
KpEnterMode
Definition
KeyboardSettings.hh:17
openmsx::KeyboardSettings::MSX_ENTER
@ MSX_ENTER
Definition
KeyboardSettings.hh:17
openmsx::KeyboardSettings::MSX_KP_COMMA
@ MSX_KP_COMMA
Definition
KeyboardSettings.hh:17
openmsx::KeyboardSettings::getDeadKeyHostKey
SDL_Keycode getDeadKeyHostKey(unsigned n) const
Definition
KeyboardSettings.hh:22
openmsx::KeyboardSettings::getCodeKanaHostKey
SDL_Keycode getCodeKanaHostKey() const
Definition
KeyboardSettings.hh:26
openmsx
This file implemented 3 utility functions:
Definition
Autofire.cc:11
Generated on Sat Apr 20 2024 12:13:46 for openMSX by
1.9.8