11 #include "input/keyboard/XBMC_keysym.h" 17 #include <xkbcommon/xkbcommon-compose.h> 18 #include <xkbcommon/xkbcommon.h> 20 #include <xkbcommon/xkbcommon-webos-keysyms.h> 49 enum class KeyComposerState
67 KeyComposerState state{KeyComposerState::IDLE};
69 std::uint32_t keysym{0};
77 void operator()(xkb_keymap* keymap)
const;
81 void operator()(xkb_compose_table* composeTable)
const;
88 std::unique_ptr<xkb_keymap, XkbKeymapDeleter> keymap,
89 std::unique_ptr<xkb_compose_table, XkbComposeTableDeleter> composeTable);
94 xkb_keysym_t KeysymForKeycode(xkb_keycode_t
code)
const;
102 void UpdateMask(xkb_mod_mask_t depressed,
103 xkb_mod_mask_t latched,
104 xkb_mod_mask_t locked,
105 xkb_mod_mask_t
group);
110 xkb_mod_mask_t CurrentModifiers()
const;
114 XBMCKey XBMCKeyForKeycode(xkb_keycode_t code)
const;
118 XBMCMod ActiveXBMCModifiers()
const;
122 std::uint32_t UnicodeCodepointForKeycode(xkb_keycode_t code)
const;
126 bool ShouldKeycodeRepeat(xkb_keycode_t code)
const;
131 bool SupportsKeyComposition()
const;
141 void KeyComposerFlush();
143 static XBMCKey XBMCKeyForKeysym(xkb_keysym_t sym);
146 struct XkbStateDeleter
148 void operator()(xkb_state* state)
const;
150 struct XkbComposeStateDeleter
152 void operator()(xkb_compose_state* state)
const;
154 static std::unique_ptr<xkb_state, XkbStateDeleter> CreateXkbStateFromKeymap(xkb_keymap* keymap);
155 static std::unique_ptr<xkb_compose_state, XkbComposeStateDeleter>
156 CreateXkbComposedStateStateFromTable(xkb_compose_table* composeTable);
158 std::unique_ptr<xkb_keymap, XkbKeymapDeleter> m_keymap;
159 std::unique_ptr<xkb_state, XkbStateDeleter> m_state;
160 std::unique_ptr<xkb_compose_state, XkbComposeStateDeleter> m_composeState;
162 struct ModifierMapping
166 ModifierMapping(xkb_mod_index_t xkb, XBMCMod xbmc)
167 : xkb{xkb}, xbmc{xbmc}
170 std::vector<ModifierMapping> m_modifierMappings;
185 std::unique_ptr<CXkbcommonKeymap> LocalizedKeymapFromString(
const std::string& keymap,
186 const std::string& locale);
189 struct XkbContextDeleter
191 void operator()(xkb_context* ctx)
const;
193 std::unique_ptr<xkb_context, XkbContextDeleter> m_context;
Definition: XkbcommonKeymap.h:72
Definition: XkbcommonKeymap.h:173
Container for the key composer status.
Definition: XkbcommonKeymap.h:64
Definition: AudioDecoder.h:18
Definition: inftrees.h:24
Definition: SmartPlayList.cpp:137
Definition: XkbcommonKeymap.h:75
Definition: XkbcommonKeymap.h:79