openMSX
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
10namespace openmsx {
11
12class CommandController;
13
15{
16public:
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
45private:
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
bool getBoolean() const noexcept
T getEnum() const noexcept
MappingMode getMappingMode() const
KpEnterMode getKpEnterMode() const
SDL_Keycode getDeadKeyHostKey(unsigned n) const
SDL_Keycode getCodeKanaHostKey() const
This file implemented 3 utility functions:
Definition Autofire.cc:11