Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
OSXUchrKeyResource.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2016 Symless Ltd.
4 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
5 */
6
7#pragma once
8
9#include "deskflow/KeyState.h"
11
12#include <Carbon/Carbon.h>
13
14using KeyLayout = TISInputSourceRef;
15
17{
18public:
19 OSXUchrKeyResource(const void *, uint32_t keyboardType);
20
21 // KeyResource overrides
22 bool isValid() const override;
23 uint32_t getNumModifierCombinations() const override;
24 uint32_t getNumTables() const override;
25 uint32_t getNumButtons() const override;
26 uint32_t getTableForModifier(uint32_t mask) const override;
27 KeyID getKey(uint32_t table, uint32_t button) const override;
28
29private:
30 using KeySequence = std::vector<KeyID>;
31
32 bool getDeadKey(KeySequence &keys, uint16_t index) const;
33 bool getKeyRecord(KeySequence &keys, uint16_t index, uint16_t &state) const;
34 bool addSequence(KeySequence &keys, UCKeyCharSeq c) const;
35
36private:
37 const UCKeyboardLayout *m_resource;
38 const UCKeyModifiersToTableNum *m_m;
39 const UCKeyToCharTableIndex *m_cti;
40 const UCKeySequenceDataIndex *m_sdi;
41 const UCKeyStateRecordsIndex *m_sri;
42 const UCKeyStateTerminators *m_st;
43 uint16_t m_spaceOutput;
44};
uint32_t KeyID
Key ID.
Definition KeyTypes.h:22
TISInputSourceRef KeyLayout
Definition OSXUchrKeyResource.h:14
Definition IOSXKeyResource.h:12
OSXUchrKeyResource(const void *, uint32_t keyboardType)
Definition OSXUchrKeyResource.cpp:15
uint32_t getNumButtons() const override
Definition OSXUchrKeyResource.cpp:91
uint32_t getNumModifierCombinations() const override
Definition OSXUchrKeyResource.cpp:80
KeyID getKey(uint32_t table, uint32_t button) const override
Definition OSXUchrKeyResource.cpp:105
bool isValid() const override
Definition OSXUchrKeyResource.cpp:75
uint32_t getNumTables() const override
Definition OSXUchrKeyResource.cpp:86
uint32_t getTableForModifier(uint32_t mask) const override
Definition OSXUchrKeyResource.cpp:96