-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathsteno_key_code_emitter_context.h
52 lines (39 loc) · 1.6 KB
/
steno_key_code_emitter_context.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//---------------------------------------------------------------------------
#pragma once
#include "key.h"
#include "steno_key_code.h"
#include "steno_key_code_emitter.h"
//---------------------------------------------------------------------------
struct HostLayoutEntry;
struct HostLayout;
//---------------------------------------------------------------------------
struct StenoKeyCodeEmitter::EmitterContext {
EmitterContext();
uint32_t modifiers = 0;
bool shouldCombineUndo = true;
bool hasDeterminedNumLockState = false;
bool isNumLockOn;
const HostLayout &hostLayout;
static const KeyCode::Value MASK_KEY_CODES[];
static const KeyCode::Value HEX_KEY_CODES[];
static const uint16_t ALT_HEX_KEY_CODES[];
static const uint16_t KP_ALT_HEX_KEY_CODES[];
bool GetIsNumLockOn();
void ProcessStenoKeyCode(StenoKeyCode stenoKeyCode);
static void PressKey(KeyCode keyCode) { Key::Press(keyCode); }
static void ReleaseKey(KeyCode keyCode) { Key::Release(keyCode); };
static void TapKey(KeyCode keyCode) { Key::Tap(keyCode); }
void EmitKeyCode(uint32_t keyCode);
void PressModifiers(uint32_t modifiers);
void ReleaseModifiers(uint32_t modifiers);
void EmitAscii(uint32_t unicode);
void EmitNonAscii(uint32_t unicode);
void EmitSequence(const HostLayoutEntry &sequence);
void EmitMacOsUnicodeHex(uint32_t unicode);
void EmitIBus(uint32_t unicode);
void RecurseEmitIBus(uint32_t unicode);
static void EmitIBusDelay();
void EmitWindowsHex(uint32_t unicode);
void EmitUCS2AltHex(uint32_t unicode);
};
//---------------------------------------------------------------------------