diff options
author | Konstantin Đorđević <vomindoraan@gmail.com> | 2019-05-03 18:33:00 +0200 |
---|---|---|
committer | Drashna Jaelre <drashna@live.com> | 2019-05-03 09:33:00 -0700 |
commit | bdc8d89e6b8f49528b716d9bd3343a4f9e9327bd (patch) | |
tree | 72673090e6ebc1669df953b83213231d7ffb8375 /quantum/process_keycode/process_unicode_common.h | |
parent | 41beecfc1847bd0039c508753a212fa18f207e3f (diff) | |
download | qmk_firmware-bdc8d89e6b8f49528b716d9bd3343a4f9e9327bd.tar.gz qmk_firmware-bdc8d89e6b8f49528b716d9bd3343a4f9e9327bd.zip |
New keycode macro (XP) for shifted character pairs using UNICODEMAP + bug fixes and improvements (#4803)
* Expose unicode_saved_mods
* Add UNICODEMAP shift pair functionality and XS keycode
* Add XS to keycode reference documentation
* Pick pair index based on both Shift and Caps Lock state
* Add XS to Unicode feature docs
* Clean up process_unicode* headers
* Extract unicode_map index calculation into function
* Pick pair index as XOR rather than OR of Shift and Caps states
* unicode_input_start() has to be called before the unicode_map index is calculated
* Replace unicodemap_input_error() with more generic unicode_input_cancel()
* Replace register+tap+unregister with tap_code16(LCTL(LSFT(KC_U)))
* UNICODE_OSX_KEY → UNICODE_KEY_OSX, UNICODE_WINC_KEY → UNICODE_KEY_WINC
* Make keycode range checks more robust
* Fix keycode range checks for different input modes
* Add UNICODE_KEY_LNX, update docs
* QK_UNICODEMAP_SHIFT → QK_UNICODEMAP_PAIR
* XS → XP, update docs
* Tweak Unicode docs
* Use recently added MOD_MASK_SHIFT and IS_HOST_LED_ON helpers
* Update Unicode table in docs/keycodes.md
* Update Unicode docs per review comments
* Replace references to Mac OS X with macOS in Unicode docs
* As of v0.9.0, WinCompose supports all possible code points
* Expand descriptions in XP docs
* Update keycode table and cycling docs
* Further expand cycling docs
Diffstat (limited to 'quantum/process_keycode/process_unicode_common.h')
-rw-r--r-- | quantum/process_keycode/process_unicode_common.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/quantum/process_keycode/process_unicode_common.h b/quantum/process_keycode/process_unicode_common.h index e608ab76b..7340800e5 100644 --- a/quantum/process_keycode/process_unicode_common.h +++ b/quantum/process_keycode/process_unicode_common.h | |||
@@ -23,11 +23,14 @@ | |||
23 | #endif | 23 | #endif |
24 | 24 | ||
25 | // Keycodes used for starting Unicode input on different platforms | 25 | // Keycodes used for starting Unicode input on different platforms |
26 | #ifndef UNICODE_OSX_KEY | 26 | #ifndef UNICODE_KEY_OSX |
27 | #define UNICODE_OSX_KEY KC_LALT | 27 | #define UNICODE_KEY_OSX KC_LALT |
28 | #endif | 28 | #endif |
29 | #ifndef UNICODE_WINC_KEY | 29 | #ifndef UNICODE_KEY_LNX |
30 | #define UNICODE_WINC_KEY KC_RALT | 30 | #define UNICODE_KEY_LNX LCTL(LSFT(KC_U)) |
31 | #endif | ||
32 | #ifndef UNICODE_KEY_WINC | ||
33 | #define UNICODE_KEY_WINC KC_RALT | ||
31 | #endif | 34 | #endif |
32 | 35 | ||
33 | // Comma-delimited, ordered list of input modes selected for use (e.g. in cycle) | 36 | // Comma-delimited, ordered list of input modes selected for use (e.g. in cycle) |
@@ -63,6 +66,7 @@ typedef union { | |||
63 | } unicode_config_t; | 66 | } unicode_config_t; |
64 | 67 | ||
65 | extern unicode_config_t unicode_config; | 68 | extern unicode_config_t unicode_config; |
69 | extern uint8_t unicode_saved_mods; | ||
66 | 70 | ||
67 | void unicode_input_mode_init(void); | 71 | void unicode_input_mode_init(void); |
68 | uint8_t get_unicode_input_mode(void); | 72 | uint8_t get_unicode_input_mode(void); |
@@ -72,6 +76,7 @@ void persist_unicode_input_mode(void); | |||
72 | 76 | ||
73 | void unicode_input_start(void); | 77 | void unicode_input_start(void); |
74 | void unicode_input_finish(void); | 78 | void unicode_input_finish(void); |
79 | void unicode_input_cancel(void); | ||
75 | 80 | ||
76 | void register_hex(uint16_t hex); | 81 | void register_hex(uint16_t hex); |
77 | void send_unicode_hex_string(const char *str); | 82 | void send_unicode_hex_string(const char *str); |