opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
liboscar
platform
physical_key_modifier.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <
liboscar/platform/key_modifier.h
>
4
#include <
liboscar/utilities/conversion.h
>
5
#include <
liboscar/utilities/flags.h
>
6
7
#include <cstdint>
8
9
namespace
osc
10
{
11
// Represents a single keyboard key modifier, as physically represented
12
// on the keyboard.
13
//
14
// This can be useful to know when (e.g.) showing a user shortcuts or
15
// keybinds, but beware that `PhysicalKeyModifier`s have OS-dependent
16
// intent (e.g. `Ctrl+Z` on Windows/Linux, but `Command+Z` on MacOS),
17
// which is why `KeyModifier` is virtualized in the first place.
18
enum class
PhysicalKeyModifier
:
uint16_t
{
19
// No modifier key is pressed.
20
None
= 0,
21
22
// A shift key on the keyboard is pressed.
23
Shift
= 1<<0,
24
25
// A ctrl key on the keyboard is pressed.
26
Ctrl
= 1<<1,
27
28
// A meta (Windows/Command) key on the keyboard is pressed.
29
Meta
= 1<<2,
30
31
// An alt key on the keyboard is pressed.
32
Alt
= 1<<3,
33
34
NUM_FLAGS
= 4,
35
};
36
using
PhysicalKeyModifiers
=
Flags<PhysicalKeyModifier>
;
37
38
// Converts `KeyModifiers` into `PhysicalKeyModifiers`.
39
template
<>
40
struct
Converter
<
KeyModifiers
,
PhysicalKeyModifiers
>
final
{
41
PhysicalKeyModifiers
operator()
(
KeyModifiers
)
const
;
42
};
43
44
// Converts `PhysicalKeyModifiers` into `KeyModifiers`.
45
template
<>
46
struct
Converter
<
PhysicalKeyModifiers
,
KeyModifiers
>
final
{
47
KeyModifiers
operator()
(
PhysicalKeyModifiers
)
const
;
48
};
49
}
osc::Flags
Definition
flags.h:20
conversion.h
flags.h
key_modifier.h
osc
Definition
custom_decoration_generator.h:5
osc::PhysicalKeyModifier
PhysicalKeyModifier
Definition
physical_key_modifier.h:18
osc::to
constexpr U to(T &&value)
Definition
conversion.h:56
osc::KeyModifier::Ctrl
@ Ctrl
osc::KeyModifier::NUM_FLAGS
@ NUM_FLAGS
osc::KeyModifier::Shift
@ Shift
osc::KeyModifier::Alt
@ Alt
osc::KeyModifier::Meta
@ Meta
osc::ImageLoadingFlag::None
@ None
osc::Converter< KeyModifiers, PhysicalKeyModifiers >::operator()
PhysicalKeyModifiers operator()(KeyModifiers) const
osc::Converter< PhysicalKeyModifiers, KeyModifiers >::operator()
KeyModifiers operator()(PhysicalKeyModifiers) const
osc::Converter
Definition
conversion.h:30
Generated by
1.9.8