Deskflow 1.24.0.365
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
10
11#include <Carbon/Carbon.h>
12
13using KeyLayout = TISInputSourceRef;
14
16{
17public:
18 OSXUchrKeyResource(const void *, uint32_t keyboardType);
19
20 // KeyResource overrides
21 bool isValid() const override;
22 uint32_t getNumModifierCombinations() const override;
23 uint32_t getNumTables() const override;
24 uint32_t getNumButtons() const override;
25 uint32_t getTableForModifier(uint32_t mask) const override;
26 KeyID getKey(uint32_t table, uint32_t button) const override;
27
28private:
29 using KeySequence = std::vector<KeyID>;
30
31 bool getDeadKey(KeySequence &keys, uint16_t index) const;
32 bool getKeyRecord(KeySequence &keys, uint16_t index, uint16_t &state) const;
33 bool addSequence(KeySequence &keys, UCKeyCharSeq c) const;
34
35private:
36 const UCKeyboardLayout *m_resource;
37 const UCKeyModifiersToTableNum *m_m;
38 const UCKeyToCharTableIndex *m_cti;
39 const UCKeySequenceDataIndex *m_sdi;
40 const UCKeyStateRecordsIndex *m_sri;
41 const UCKeyStateTerminators *m_st;
42 uint16_t m_spaceOutput;
43};
uint32_t KeyID
Key ID.
Definition KeyTypes.h:21
TISInputSourceRef KeyLayout
Definition OSXUchrKeyResource.h:13
Definition IOSXKeyResource.h:15
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