1 /** 2 * @file scim_event.h 3 * @brief Defines the scim::KeyEvent class and related enums, functions. 4 */ 5 6 /* 7 * Smart Common Input Method 8 * 9 * Copyright (c) 2002-2005 James Su <suzhe@tsinghua.org.cn> 10 * 11 * 12 * This library is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU Lesser General Public 14 * License as published by the Free Software Foundation; either 15 * version 2 of the License, or (at your option) any later version. 16 * 17 * This library is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * GNU Lesser General Public License for more details. 21 * 22 * You should have received a copy of the GNU Lesser General Public 23 * License along with this program; if not, write to the 24 * Free Software Foundation, Inc., 59 Temple Place, Suite 330, 25 * Boston, MA 02111-1307 USA 26 * 27 * $Id: scim_event.h,v 1.26.2.1 2007/04/11 15:24:10 suzhe Exp $ 28 */ 29 30 #ifndef __SCIM_EVENT_H 31 #define __SCIM_EVENT_H 32 33 namespace scim { 34 35 /** 36 * @addtogroup Accessories 37 * @{ 38 */ 39 40 /** 41 * @brief Enum values of all valid key masks. 42 * 43 * The key masks indicate which modifier keys 44 * is pressed down during the keyboard hit. 45 * 46 * The special SCIM_KEY_ReleaseMask indicates 47 * the key release event. 48 * 49 */ 50 enum KeyMask 51 { 52 SCIM_KEY_NullMask = 0, /**< Key press event without modifier key. */ 53 SCIM_KEY_ShiftMask = (1<<0), /**< The Shift key is pressed down */ 54 SCIM_KEY_CapsLockMask = (1<<1), /**< The CapsLock key is pressed down */ 55 SCIM_KEY_ControlMask = (1<<2), /**< The Control key is pressed down */ 56 SCIM_KEY_AltMask = (1<<3), /**< The Alt key is pressed down */ 57 SCIM_KEY_MetaMask = (1<<4), /**< The Meta key is pressed down */ 58 SCIM_KEY_SuperMask = (1<<5), /**< The Super key is pressed down */ 59 SCIM_KEY_HyperMask = (1<<6), /**< The Hyper key is pressed down */ 60 SCIM_KEY_NumLockMask = (1<<7), /**< The NumLock key is pressed down */ 61 62 SCIM_KEY_LockMask = SCIM_KEY_CapsLockMask, /**< For backward API compatibility, do not use it in new code */ 63 SCIM_KEY_Mod1Mask = SCIM_KEY_AltMask, /**< For backward API compatibility, do not use it in new code */ 64 SCIM_KEY_Mod2Mask = SCIM_KEY_MetaMask, /**< For backward API compatibility, do not use it in new code */ 65 SCIM_KEY_Mod3Mask = SCIM_KEY_SuperMask, /**< For backward API compatibility, do not use it in new code */ 66 SCIM_KEY_Mod4Mask = SCIM_KEY_HyperMask, /**< For backward API compatibility, do not use it in new code */ 67 SCIM_KEY_Mod5Mask = SCIM_KEY_NumLockMask, /**< For backward API compatibility, do not use it in new code */ 68 SCIM_KEY_ScrollLockMask = 0, /**< For backward API compatibility, do not use it in new code */ 69 70 SCIM_KEY_QuirkKanaRoMask= (1<<14), /**< Special mask to distinguish two backslash keys on jp106 keyboard */ 71 72 SCIM_KEY_ReleaseMask = (1<<15), /**< It's a key release event */ 73 SCIM_KEY_AllMasks = 0xC0FF /**< All valid Masks */ 74 }; 75 76 /** 77 * @brief Enum values of all valid key codes. 78 * 79 * If keycode & 0xff000000 == 0x01000000 then this key code is directly encoded 24-bit UCS character. 80 * The UCS value is keycode & 0x00ffffff. 81 */ 82 enum KeyCode 83 { 84 SCIM_KEY_NullKey = 0, 85 SCIM_KEY_VoidSymbol = 0xFFFFFF, 86 87 /* function keys */ 88 SCIM_KEY_BackSpace = 0xFF08, /* back space, back char */ 89 SCIM_KEY_Tab = 0xFF09, 90 SCIM_KEY_Linefeed = 0xFF0A, /* Linefeed, LF */ 91 SCIM_KEY_Clear = 0xFF0B, 92 SCIM_KEY_Return = 0xFF0D, /* Return, enter */ 93 SCIM_KEY_Pause = 0xFF13, /* Pause, hold */ 94 SCIM_KEY_Scroll_Lock = 0xFF14, 95 SCIM_KEY_Sys_Req = 0xFF15, 96 SCIM_KEY_Escape = 0xFF1B, 97 SCIM_KEY_Delete = 0xFFFF, /* Delete, rubout */ 98 99 /* International & multi-key character composition */ 100 SCIM_KEY_Multi_key = 0xFF20, /* Multi-key character compose */ 101 SCIM_KEY_Codeinput = 0xFF37, 102 SCIM_KEY_SingleCandidate = 0xFF3C, 103 SCIM_KEY_MultipleCandidate = 0xFF3D, 104 SCIM_KEY_PreviousCandidate = 0xFF3E, 105 106 /* Japanese keyboard support */ 107 SCIM_KEY_Kanji = 0xFF21, /* Kanji, Kanji convert */ 108 SCIM_KEY_Muhenkan = 0xFF22, /* Cancel Conversion */ 109 SCIM_KEY_Henkan_Mode = 0xFF23, /* Start/Stop Conversion */ 110 SCIM_KEY_Henkan = 0xFF23, /* Alias for Henkan_Mode */ 111 SCIM_KEY_Romaji = 0xFF24, /* to Romaji */ 112 SCIM_KEY_Hiragana = 0xFF25, /* to Hiragana */ 113 SCIM_KEY_Katakana = 0xFF26, /* to Katakana */ 114 SCIM_KEY_Hiragana_Katakana = 0xFF27, /* Hiragana/Katakana toggle */ 115 SCIM_KEY_Zenkaku = 0xFF28, /* to Zenkaku */ 116 SCIM_KEY_Hankaku = 0xFF29, /* to Hankaku */ 117 SCIM_KEY_Zenkaku_Hankaku = 0xFF2A, /* Zenkaku/Hankaku toggle */ 118 SCIM_KEY_Touroku = 0xFF2B, /* Add to Dictionary */ 119 SCIM_KEY_Massyo = 0xFF2C, /* Delete from Dictionary */ 120 SCIM_KEY_Kana_Lock = 0xFF2D, /* Kana Lock */ 121 SCIM_KEY_Kana_Shift = 0xFF2E, /* Kana Shift */ 122 SCIM_KEY_Eisu_Shift = 0xFF2F, /* Alphanumeric Shift */ 123 SCIM_KEY_Eisu_toggle = 0xFF30, /* Alphanumeric toggle */ 124 SCIM_KEY_Kanji_Bangou = 0xFF37, /* Codeinput */ 125 SCIM_KEY_Zen_Koho = 0xFF3D, /* Multiple/All Candidate(s) */ 126 SCIM_KEY_Mae_Koho = 0xFF3E, /* Previous Candidate */ 127 128 /* Cursor control & motion */ 129 SCIM_KEY_Home = 0xFF50, 130 SCIM_KEY_Left = 0xFF51, /* Move left, left arrow */ 131 SCIM_KEY_Up = 0xFF52, /* Move up, up arrow */ 132 SCIM_KEY_Right = 0xFF53, /* Move right, right arrow */ 133 SCIM_KEY_Down = 0xFF54, /* Move down, down arrow */ 134 SCIM_KEY_Prior = 0xFF55, /* Prior, previous */ 135 SCIM_KEY_Page_Up = 0xFF55, 136 SCIM_KEY_Next = 0xFF56, /* Next */ 137 SCIM_KEY_Page_Down = 0xFF56, 138 SCIM_KEY_End = 0xFF57, /* EOL */ 139 SCIM_KEY_Begin = 0xFF58, /* BOL */ 140 141 /* Misc Functions */ 142 SCIM_KEY_Select = 0xFF60, /* Select, mark */ 143 SCIM_KEY_Print = 0xFF61, 144 SCIM_KEY_Execute = 0xFF62, /* Execute, run, do */ 145 SCIM_KEY_Insert = 0xFF63, /* Insert, insert here */ 146 SCIM_KEY_Undo = 0xFF65, /* Undo, oops */ 147 SCIM_KEY_Redo = 0xFF66, /* redo, again */ 148 SCIM_KEY_Menu = 0xFF67, 149 SCIM_KEY_Find = 0xFF68, /* Find, search */ 150 SCIM_KEY_Cancel = 0xFF69, /* Cancel, stop, abort, exit */ 151 SCIM_KEY_Help = 0xFF6A, /* Help */ 152 SCIM_KEY_Break = 0xFF6B, 153 SCIM_KEY_Mode_switch = 0xFF7E, /* Character set switch */ 154 SCIM_KEY_Num_Lock = 0xFF7F, 155 156 /* keypad */ 157 SCIM_KEY_KP_Space = 0xFF80, /* space */ 158 SCIM_KEY_KP_Tab = 0xFF89, 159 SCIM_KEY_KP_Enter = 0xFF8D, /* enter */ 160 SCIM_KEY_KP_F1 = 0xFF91, /* PF1, KP_A, ... */ 161 SCIM_KEY_KP_F2 = 0xFF92, 162 SCIM_KEY_KP_F3 = 0xFF93, 163 SCIM_KEY_KP_F4 = 0xFF94, 164 SCIM_KEY_KP_Home = 0xFF95, 165 SCIM_KEY_KP_Left = 0xFF96, 166 SCIM_KEY_KP_Up = 0xFF97, 167 SCIM_KEY_KP_Right = 0xFF98, 168 SCIM_KEY_KP_Down = 0xFF99, 169 SCIM_KEY_KP_Prior = 0xFF9A, 170 SCIM_KEY_KP_Page_Up = 0xFF9A, 171 SCIM_KEY_KP_Next = 0xFF9B, 172 SCIM_KEY_KP_Page_Down = 0xFF9B, 173 SCIM_KEY_KP_End = 0xFF9C, 174 SCIM_KEY_KP_Begin = 0xFF9D, 175 SCIM_KEY_KP_Insert = 0xFF9E, 176 SCIM_KEY_KP_Delete = 0xFF9F, 177 SCIM_KEY_KP_Equal = 0xFFBD, /* equals */ 178 SCIM_KEY_KP_Multiply = 0xFFAA, 179 SCIM_KEY_KP_Add = 0xFFAB, 180 SCIM_KEY_KP_Separator = 0xFFAC, /* separator, often comma */ 181 SCIM_KEY_KP_Subtract = 0xFFAD, 182 SCIM_KEY_KP_Decimal = 0xFFAE, 183 SCIM_KEY_KP_Divide = 0xFFAF, 184 185 SCIM_KEY_KP_0 = 0xFFB0, 186 SCIM_KEY_KP_1 = 0xFFB1, 187 SCIM_KEY_KP_2 = 0xFFB2, 188 SCIM_KEY_KP_3 = 0xFFB3, 189 SCIM_KEY_KP_4 = 0xFFB4, 190 SCIM_KEY_KP_5 = 0xFFB5, 191 SCIM_KEY_KP_6 = 0xFFB6, 192 SCIM_KEY_KP_7 = 0xFFB7, 193 SCIM_KEY_KP_8 = 0xFFB8, 194 SCIM_KEY_KP_9 = 0xFFB9, 195 196 /* Auxilliary Functions */ 197 SCIM_KEY_F1 = 0xFFBE, 198 SCIM_KEY_F2 = 0xFFBF, 199 SCIM_KEY_F3 = 0xFFC0, 200 SCIM_KEY_F4 = 0xFFC1, 201 SCIM_KEY_F5 = 0xFFC2, 202 SCIM_KEY_F6 = 0xFFC3, 203 SCIM_KEY_F7 = 0xFFC4, 204 SCIM_KEY_F8 = 0xFFC5, 205 SCIM_KEY_F9 = 0xFFC6, 206 SCIM_KEY_F10 = 0xFFC7, 207 SCIM_KEY_F11 = 0xFFC8, 208 SCIM_KEY_F12 = 0xFFC9, 209 SCIM_KEY_F13 = 0xFFCA, 210 SCIM_KEY_F14 = 0xFFCB, 211 SCIM_KEY_F15 = 0xFFCC, 212 SCIM_KEY_F16 = 0xFFCD, 213 SCIM_KEY_F17 = 0xFFCE, 214 SCIM_KEY_F18 = 0xFFCF, 215 SCIM_KEY_F19 = 0xFFD0, 216 SCIM_KEY_F20 = 0xFFD1, 217 SCIM_KEY_F21 = 0xFFD2, 218 SCIM_KEY_F22 = 0xFFD3, 219 SCIM_KEY_F23 = 0xFFD4, 220 SCIM_KEY_F24 = 0xFFD5, 221 SCIM_KEY_F25 = 0xFFD6, 222 SCIM_KEY_F26 = 0xFFD7, 223 SCIM_KEY_F27 = 0xFFD8, 224 SCIM_KEY_F28 = 0xFFD9, 225 SCIM_KEY_F29 = 0xFFDA, 226 SCIM_KEY_F30 = 0xFFDB, 227 SCIM_KEY_F31 = 0xFFDC, 228 SCIM_KEY_F32 = 0xFFDD, 229 SCIM_KEY_F33 = 0xFFDE, 230 SCIM_KEY_F34 = 0xFFDF, 231 SCIM_KEY_F35 = 0xFFE0, 232 233 /* modifier keys */ 234 SCIM_KEY_Shift_L = 0xFFE1, /* Left shift */ 235 SCIM_KEY_Shift_R = 0xFFE2, /* Right shift */ 236 SCIM_KEY_Control_L = 0xFFE3, /* Left control */ 237 SCIM_KEY_Control_R = 0xFFE4, /* Right control */ 238 SCIM_KEY_Caps_Lock = 0xFFE5, /* Caps lock */ 239 SCIM_KEY_Shift_Lock = 0xFFE6, /* Shift lock */ 240 241 SCIM_KEY_Meta_L = 0xFFE7, /* Left meta */ 242 SCIM_KEY_Meta_R = 0xFFE8, /* Right meta */ 243 SCIM_KEY_Alt_L = 0xFFE9, /* Left alt */ 244 SCIM_KEY_Alt_R = 0xFFEA, /* Right alt */ 245 SCIM_KEY_Super_L = 0xFFEB, /* Left super */ 246 SCIM_KEY_Super_R = 0xFFEC, /* Right super */ 247 SCIM_KEY_Hyper_L = 0xFFED, /* Left hyper */ 248 SCIM_KEY_Hyper_R = 0xFFEE, /* Right hyper */ 249 250 /* 251 * ISO 9995 Function and Modifier Keys 252 * Byte 3 = 0xFE 253 */ 254 255 SCIM_KEY_ISO_Lock = 0xFE01, 256 SCIM_KEY_ISO_Level2_Latch = 0xFE02, 257 SCIM_KEY_ISO_Level3_Shift = 0xFE03, 258 SCIM_KEY_ISO_Level3_Latch = 0xFE04, 259 SCIM_KEY_ISO_Level3_Lock = 0xFE05, 260 SCIM_KEY_ISO_Group_Shift = 0xFF7E, /* Alias for mode_switch */ 261 SCIM_KEY_ISO_Group_Latch = 0xFE06, 262 SCIM_KEY_ISO_Group_Lock = 0xFE07, 263 SCIM_KEY_ISO_Next_Group = 0xFE08, 264 SCIM_KEY_ISO_Next_Group_Lock = 0xFE09, 265 SCIM_KEY_ISO_Prev_Group = 0xFE0A, 266 SCIM_KEY_ISO_Prev_Group_Lock = 0xFE0B, 267 SCIM_KEY_ISO_First_Group = 0xFE0C, 268 SCIM_KEY_ISO_First_Group_Lock = 0xFE0D, 269 SCIM_KEY_ISO_Last_Group = 0xFE0E, 270 SCIM_KEY_ISO_Last_Group_Lock = 0xFE0F, 271 272 SCIM_KEY_ISO_Left_Tab = 0xFE20, 273 SCIM_KEY_ISO_Move_Line_Up = 0xFE21, 274 SCIM_KEY_ISO_Move_Line_Down = 0xFE22, 275 SCIM_KEY_ISO_Partial_Line_Up = 0xFE23, 276 SCIM_KEY_ISO_Partial_Line_Down = 0xFE24, 277 SCIM_KEY_ISO_Partial_Space_Left = 0xFE25, 278 SCIM_KEY_ISO_Partial_Space_Right = 0xFE26, 279 SCIM_KEY_ISO_Set_Margin_Left = 0xFE27, 280 SCIM_KEY_ISO_Set_Margin_Right = 0xFE28, 281 SCIM_KEY_ISO_Release_Margin_Left = 0xFE29, 282 SCIM_KEY_ISO_Release_Margin_Right = 0xFE2A, 283 SCIM_KEY_ISO_Release_Both_Margins = 0xFE2B, 284 SCIM_KEY_ISO_Fast_Cursor_Left = 0xFE2C, 285 SCIM_KEY_ISO_Fast_Cursor_Right = 0xFE2D, 286 SCIM_KEY_ISO_Fast_Cursor_Up = 0xFE2E, 287 SCIM_KEY_ISO_Fast_Cursor_Down = 0xFE2F, 288 SCIM_KEY_ISO_Continuous_Underline = 0xFE30, 289 SCIM_KEY_ISO_Discontinuous_Underline = 0xFE31, 290 SCIM_KEY_ISO_Emphasize = 0xFE32, 291 SCIM_KEY_ISO_Center_Object = 0xFE33, 292 SCIM_KEY_ISO_Enter = 0xFE34, 293 294 SCIM_KEY_dead_grave = 0xFE50, 295 SCIM_KEY_dead_acute = 0xFE51, 296 SCIM_KEY_dead_circumflex = 0xFE52, 297 SCIM_KEY_dead_tilde = 0xFE53, 298 SCIM_KEY_dead_macron = 0xFE54, 299 SCIM_KEY_dead_breve = 0xFE55, 300 SCIM_KEY_dead_abovedot = 0xFE56, 301 SCIM_KEY_dead_diaeresis = 0xFE57, 302 SCIM_KEY_dead_abovering = 0xFE58, 303 SCIM_KEY_dead_doubleacute = 0xFE59, 304 SCIM_KEY_dead_caron = 0xFE5A, 305 SCIM_KEY_dead_cedilla = 0xFE5B, 306 SCIM_KEY_dead_ogonek = 0xFE5C, 307 SCIM_KEY_dead_iota = 0xFE5D, 308 SCIM_KEY_dead_voiced_sound = 0xFE5E, 309 SCIM_KEY_dead_semivoiced_sound = 0xFE5F, 310 SCIM_KEY_dead_belowdot = 0xFE60, 311 SCIM_KEY_dead_hook = 0xFE61, 312 SCIM_KEY_dead_horn = 0xFE62, 313 314 SCIM_KEY_First_Virtual_Screen = 0xFED0, 315 SCIM_KEY_Prev_Virtual_Screen = 0xFED1, 316 SCIM_KEY_Next_Virtual_Screen = 0xFED2, 317 SCIM_KEY_Last_Virtual_Screen = 0xFED4, 318 SCIM_KEY_Terminate_Server = 0xFED5, 319 320 SCIM_KEY_AccessX_Enable = 0xFE70, 321 SCIM_KEY_AccessX_Feedback_Enable = 0xFE71, 322 SCIM_KEY_RepeatKeys_Enable = 0xFE72, 323 SCIM_KEY_SlowKeys_Enable = 0xFE73, 324 SCIM_KEY_BounceKeys_Enable = 0xFE74, 325 SCIM_KEY_StickyKeys_Enable = 0xFE75, 326 SCIM_KEY_MouseKeys_Enable = 0xFE76, 327 SCIM_KEY_MouseKeys_Accel_Enable = 0xFE77, 328 SCIM_KEY_Overlay1_Enable = 0xFE78, 329 SCIM_KEY_Overlay2_Enable = 0xFE79, 330 SCIM_KEY_AudibleBell_Enable = 0xFE7A, 331 332 SCIM_KEY_Pointer_Left = 0xFEE0, 333 SCIM_KEY_Pointer_Right = 0xFEE1, 334 SCIM_KEY_Pointer_Up = 0xFEE2, 335 SCIM_KEY_Pointer_Down = 0xFEE3, 336 SCIM_KEY_Pointer_UpLeft = 0xFEE4, 337 SCIM_KEY_Pointer_UpRight = 0xFEE5, 338 SCIM_KEY_Pointer_DownLeft = 0xFEE6, 339 SCIM_KEY_Pointer_DownRight = 0xFEE7, 340 SCIM_KEY_Pointer_Button_Dflt = 0xFEE8, 341 SCIM_KEY_Pointer_Button1 = 0xFEE9, 342 SCIM_KEY_Pointer_Button2 = 0xFEEA, 343 SCIM_KEY_Pointer_Button3 = 0xFEEB, 344 SCIM_KEY_Pointer_Button4 = 0xFEEC, 345 SCIM_KEY_Pointer_Button5 = 0xFEED, 346 SCIM_KEY_Pointer_DblClick_Dflt = 0xFEEE, 347 SCIM_KEY_Pointer_DblClick1 = 0xFEEF, 348 SCIM_KEY_Pointer_DblClick2 = 0xFEF0, 349 SCIM_KEY_Pointer_DblClick3 = 0xFEF1, 350 SCIM_KEY_Pointer_DblClick4 = 0xFEF2, 351 SCIM_KEY_Pointer_DblClick5 = 0xFEF3, 352 SCIM_KEY_Pointer_Drag_Dflt = 0xFEF4, 353 SCIM_KEY_Pointer_Drag1 = 0xFEF5, 354 SCIM_KEY_Pointer_Drag2 = 0xFEF6, 355 SCIM_KEY_Pointer_Drag3 = 0xFEF7, 356 SCIM_KEY_Pointer_Drag4 = 0xFEF8, 357 SCIM_KEY_Pointer_Drag5 = 0xFEFD, 358 359 SCIM_KEY_Pointer_EnableKeys = 0xFEF9, 360 SCIM_KEY_Pointer_Accelerate = 0xFEFA, 361 SCIM_KEY_Pointer_DfltBtnNext = 0xFEFB, 362 SCIM_KEY_Pointer_DfltBtnPrev = 0xFEFC, 363 364 /* 365 * 3270 Terminal Keys 366 * Byte 3 = 0xFD 367 */ 368 SCIM_KEY_3270_Duplicate = 0xFD01, 369 SCIM_KEY_3270_FieldMark = 0xFD02, 370 SCIM_KEY_3270_Right2 = 0xFD03, 371 SCIM_KEY_3270_Left2 = 0xFD04, 372 SCIM_KEY_3270_BackTab = 0xFD05, 373 SCIM_KEY_3270_EraseEOF = 0xFD06, 374 SCIM_KEY_3270_EraseInput = 0xFD07, 375 SCIM_KEY_3270_Reset = 0xFD08, 376 SCIM_KEY_3270_Quit = 0xFD09, 377 SCIM_KEY_3270_PA1 = 0xFD0A, 378 SCIM_KEY_3270_PA2 = 0xFD0B, 379 SCIM_KEY_3270_PA3 = 0xFD0C, 380 SCIM_KEY_3270_Test = 0xFD0D, 381 SCIM_KEY_3270_Attn = 0xFD0E, 382 SCIM_KEY_3270_CursorBlink = 0xFD0F, 383 SCIM_KEY_3270_AltCursor = 0xFD10, 384 SCIM_KEY_3270_KeyClick = 0xFD11, 385 SCIM_KEY_3270_Jump = 0xFD12, 386 SCIM_KEY_3270_Ident = 0xFD13, 387 SCIM_KEY_3270_Rule = 0xFD14, 388 SCIM_KEY_3270_Copy = 0xFD15, 389 SCIM_KEY_3270_Play = 0xFD16, 390 SCIM_KEY_3270_Setup = 0xFD17, 391 SCIM_KEY_3270_Record = 0xFD18, 392 SCIM_KEY_3270_ChangeScreen = 0xFD19, 393 SCIM_KEY_3270_DeleteWord = 0xFD1A, 394 SCIM_KEY_3270_ExSelect = 0xFD1B, 395 SCIM_KEY_3270_CursorSelect = 0xFD1C, 396 SCIM_KEY_3270_PrintScreen = 0xFD1D, 397 SCIM_KEY_3270_Enter = 0xFD1E, 398 399 /* Latin 1 */ 400 SCIM_KEY_space = 0x020, 401 SCIM_KEY_exclam = 0x021, 402 SCIM_KEY_quotedbl = 0x022, 403 SCIM_KEY_numbersign = 0x023, 404 SCIM_KEY_dollar = 0x024, 405 SCIM_KEY_percent = 0x025, 406 SCIM_KEY_ampersand = 0x026, 407 SCIM_KEY_apostrophe = 0x027, 408 SCIM_KEY_quoteright = 0x027, /* deprecated */ 409 SCIM_KEY_parenleft = 0x028, 410 SCIM_KEY_parenright = 0x029, 411 SCIM_KEY_asterisk = 0x02a, 412 SCIM_KEY_plus = 0x02b, 413 SCIM_KEY_comma = 0x02c, 414 SCIM_KEY_minus = 0x02d, 415 SCIM_KEY_period = 0x02e, 416 SCIM_KEY_slash = 0x02f, 417 SCIM_KEY_0 = 0x030, 418 SCIM_KEY_1 = 0x031, 419 SCIM_KEY_2 = 0x032, 420 SCIM_KEY_3 = 0x033, 421 SCIM_KEY_4 = 0x034, 422 SCIM_KEY_5 = 0x035, 423 SCIM_KEY_6 = 0x036, 424 SCIM_KEY_7 = 0x037, 425 SCIM_KEY_8 = 0x038, 426 SCIM_KEY_9 = 0x039, 427 SCIM_KEY_colon = 0x03a, 428 SCIM_KEY_semicolon = 0x03b, 429 SCIM_KEY_less = 0x03c, 430 SCIM_KEY_equal = 0x03d, 431 SCIM_KEY_greater = 0x03e, 432 SCIM_KEY_question = 0x03f, 433 SCIM_KEY_at = 0x040, 434 SCIM_KEY_A = 0x041, 435 SCIM_KEY_B = 0x042, 436 SCIM_KEY_C = 0x043, 437 SCIM_KEY_D = 0x044, 438 SCIM_KEY_E = 0x045, 439 SCIM_KEY_F = 0x046, 440 SCIM_KEY_G = 0x047, 441 SCIM_KEY_H = 0x048, 442 SCIM_KEY_I = 0x049, 443 SCIM_KEY_J = 0x04a, 444 SCIM_KEY_K = 0x04b, 445 SCIM_KEY_L = 0x04c, 446 SCIM_KEY_M = 0x04d, 447 SCIM_KEY_N = 0x04e, 448 SCIM_KEY_O = 0x04f, 449 SCIM_KEY_P = 0x050, 450 SCIM_KEY_Q = 0x051, 451 SCIM_KEY_R = 0x052, 452 SCIM_KEY_S = 0x053, 453 SCIM_KEY_T = 0x054, 454 SCIM_KEY_U = 0x055, 455 SCIM_KEY_V = 0x056, 456 SCIM_KEY_W = 0x057, 457 SCIM_KEY_X = 0x058, 458 SCIM_KEY_Y = 0x059, 459 SCIM_KEY_Z = 0x05a, 460 SCIM_KEY_bracketleft = 0x05b, 461 SCIM_KEY_backslash = 0x05c, 462 SCIM_KEY_bracketright = 0x05d, 463 SCIM_KEY_asciicircum = 0x05e, 464 SCIM_KEY_underscore = 0x05f, 465 SCIM_KEY_grave = 0x060, 466 SCIM_KEY_a = 0x061, 467 SCIM_KEY_b = 0x062, 468 SCIM_KEY_c = 0x063, 469 SCIM_KEY_d = 0x064, 470 SCIM_KEY_e = 0x065, 471 SCIM_KEY_f = 0x066, 472 SCIM_KEY_g = 0x067, 473 SCIM_KEY_h = 0x068, 474 SCIM_KEY_i = 0x069, 475 SCIM_KEY_j = 0x06a, 476 SCIM_KEY_k = 0x06b, 477 SCIM_KEY_l = 0x06c, 478 SCIM_KEY_m = 0x06d, 479 SCIM_KEY_n = 0x06e, 480 SCIM_KEY_o = 0x06f, 481 SCIM_KEY_p = 0x070, 482 SCIM_KEY_q = 0x071, 483 SCIM_KEY_r = 0x072, 484 SCIM_KEY_s = 0x073, 485 SCIM_KEY_t = 0x074, 486 SCIM_KEY_u = 0x075, 487 SCIM_KEY_v = 0x076, 488 SCIM_KEY_w = 0x077, 489 SCIM_KEY_x = 0x078, 490 SCIM_KEY_y = 0x079, 491 SCIM_KEY_z = 0x07a, 492 SCIM_KEY_braceleft = 0x07b, 493 SCIM_KEY_bar = 0x07c, 494 SCIM_KEY_braceright = 0x07d, 495 SCIM_KEY_asciitilde = 0x07e, 496 497 SCIM_KEY_nobreakspace = 0x0a0, 498 SCIM_KEY_exclamdown = 0x0a1, 499 SCIM_KEY_cent = 0x0a2, 500 SCIM_KEY_sterling = 0x0a3, 501 SCIM_KEY_currency = 0x0a4, 502 SCIM_KEY_yen = 0x0a5, 503 SCIM_KEY_brokenbar = 0x0a6, 504 SCIM_KEY_section = 0x0a7, 505 SCIM_KEY_diaeresis = 0x0a8, 506 SCIM_KEY_copyright = 0x0a9, 507 SCIM_KEY_ordfeminine = 0x0aa, 508 SCIM_KEY_guillemotleft = 0x0ab, /* left angle quotation mark */ 509 SCIM_KEY_notsign = 0x0ac, 510 SCIM_KEY_hyphen = 0x0ad, 511 SCIM_KEY_registered = 0x0ae, 512 SCIM_KEY_macron = 0x0af, 513 SCIM_KEY_degree = 0x0b0, 514 SCIM_KEY_plusminus = 0x0b1, 515 SCIM_KEY_twosuperior = 0x0b2, 516 SCIM_KEY_threesuperior = 0x0b3, 517 SCIM_KEY_acute = 0x0b4, 518 SCIM_KEY_mu = 0x0b5, 519 SCIM_KEY_paragraph = 0x0b6, 520 SCIM_KEY_periodcentered = 0x0b7, 521 SCIM_KEY_cedilla = 0x0b8, 522 SCIM_KEY_onesuperior = 0x0b9, 523 SCIM_KEY_masculine = 0x0ba, 524 SCIM_KEY_guillemotright = 0x0bb, /* right angle quotation mark */ 525 SCIM_KEY_onequarter = 0x0bc, 526 SCIM_KEY_onehalf = 0x0bd, 527 SCIM_KEY_threequarters = 0x0be, 528 SCIM_KEY_questiondown = 0x0bf, 529 SCIM_KEY_Agrave = 0x0c0, 530 SCIM_KEY_Aacute = 0x0c1, 531 SCIM_KEY_Acircumflex = 0x0c2, 532 SCIM_KEY_Atilde = 0x0c3, 533 SCIM_KEY_Adiaeresis = 0x0c4, 534 SCIM_KEY_Aring = 0x0c5, 535 SCIM_KEY_AE = 0x0c6, 536 SCIM_KEY_Ccedilla = 0x0c7, 537 SCIM_KEY_Egrave = 0x0c8, 538 SCIM_KEY_Eacute = 0x0c9, 539 SCIM_KEY_Ecircumflex = 0x0ca, 540 SCIM_KEY_Ediaeresis = 0x0cb, 541 SCIM_KEY_Igrave = 0x0cc, 542 SCIM_KEY_Iacute = 0x0cd, 543 SCIM_KEY_Icircumflex = 0x0ce, 544 SCIM_KEY_Idiaeresis = 0x0cf, 545 SCIM_KEY_ETH = 0x0d0, 546 SCIM_KEY_Eth = 0x0d0, /* deprecated */ 547 SCIM_KEY_Ntilde = 0x0d1, 548 SCIM_KEY_Ograve = 0x0d2, 549 SCIM_KEY_Oacute = 0x0d3, 550 SCIM_KEY_Ocircumflex = 0x0d4, 551 SCIM_KEY_Otilde = 0x0d5, 552 SCIM_KEY_Odiaeresis = 0x0d6, 553 SCIM_KEY_multiply = 0x0d7, 554 SCIM_KEY_Ooblique = 0x0d8, 555 SCIM_KEY_Oslash = SCIM_KEY_Ooblique, 556 SCIM_KEY_Ugrave = 0x0d9, 557 SCIM_KEY_Uacute = 0x0da, 558 SCIM_KEY_Ucircumflex = 0x0db, 559 SCIM_KEY_Udiaeresis = 0x0dc, 560 SCIM_KEY_Yacute = 0x0dd, 561 SCIM_KEY_THORN = 0x0de, 562 SCIM_KEY_Thorn = 0x0de, /* deprecated */ 563 SCIM_KEY_ssharp = 0x0df, 564 SCIM_KEY_agrave = 0x0e0, 565 SCIM_KEY_aacute = 0x0e1, 566 SCIM_KEY_acircumflex = 0x0e2, 567 SCIM_KEY_atilde = 0x0e3, 568 SCIM_KEY_adiaeresis = 0x0e4, 569 SCIM_KEY_aring = 0x0e5, 570 SCIM_KEY_ae = 0x0e6, 571 SCIM_KEY_ccedilla = 0x0e7, 572 SCIM_KEY_egrave = 0x0e8, 573 SCIM_KEY_eacute = 0x0e9, 574 SCIM_KEY_ecircumflex = 0x0ea, 575 SCIM_KEY_ediaeresis = 0x0eb, 576 SCIM_KEY_igrave = 0x0ec, 577 SCIM_KEY_iacute = 0x0ed, 578 SCIM_KEY_icircumflex = 0x0ee, 579 SCIM_KEY_idiaeresis = 0x0ef, 580 SCIM_KEY_eth = 0x0f0, 581 SCIM_KEY_ntilde = 0x0f1, 582 SCIM_KEY_ograve = 0x0f2, 583 SCIM_KEY_oacute = 0x0f3, 584 SCIM_KEY_ocircumflex = 0x0f4, 585 SCIM_KEY_otilde = 0x0f5, 586 SCIM_KEY_odiaeresis = 0x0f6, 587 SCIM_KEY_division = 0x0f7, 588 SCIM_KEY_oslash = 0x0f8, 589 SCIM_KEY_ooblique = SCIM_KEY_oslash, 590 SCIM_KEY_ugrave = 0x0f9, 591 SCIM_KEY_uacute = 0x0fa, 592 SCIM_KEY_ucircumflex = 0x0fb, 593 SCIM_KEY_udiaeresis = 0x0fc, 594 SCIM_KEY_yacute = 0x0fd, 595 SCIM_KEY_thorn = 0x0fe, 596 SCIM_KEY_ydiaeresis = 0x0ff, 597 598 /* 599 * Latin 2 600 * Byte 3 = 1 601 */ 602 SCIM_KEY_Aogonek = 0x1a1, 603 SCIM_KEY_breve = 0x1a2, 604 SCIM_KEY_Lstroke = 0x1a3, 605 SCIM_KEY_Lcaron = 0x1a5, 606 SCIM_KEY_Sacute = 0x1a6, 607 SCIM_KEY_Scaron = 0x1a9, 608 SCIM_KEY_Scedilla = 0x1aa, 609 SCIM_KEY_Tcaron = 0x1ab, 610 SCIM_KEY_Zacute = 0x1ac, 611 SCIM_KEY_Zcaron = 0x1ae, 612 SCIM_KEY_Zabovedot = 0x1af, 613 SCIM_KEY_aogonek = 0x1b1, 614 SCIM_KEY_ogonek = 0x1b2, 615 SCIM_KEY_lstroke = 0x1b3, 616 SCIM_KEY_lcaron = 0x1b5, 617 SCIM_KEY_sacute = 0x1b6, 618 SCIM_KEY_caron = 0x1b7, 619 SCIM_KEY_scaron = 0x1b9, 620 SCIM_KEY_scedilla = 0x1ba, 621 SCIM_KEY_tcaron = 0x1bb, 622 SCIM_KEY_zacute = 0x1bc, 623 SCIM_KEY_doubleacute = 0x1bd, 624 SCIM_KEY_zcaron = 0x1be, 625 SCIM_KEY_zabovedot = 0x1bf, 626 SCIM_KEY_Racute = 0x1c0, 627 SCIM_KEY_Abreve = 0x1c3, 628 SCIM_KEY_Lacute = 0x1c5, 629 SCIM_KEY_Cacute = 0x1c6, 630 SCIM_KEY_Ccaron = 0x1c8, 631 SCIM_KEY_Eogonek = 0x1ca, 632 SCIM_KEY_Ecaron = 0x1cc, 633 SCIM_KEY_Dcaron = 0x1cf, 634 SCIM_KEY_Dstroke = 0x1d0, 635 SCIM_KEY_Nacute = 0x1d1, 636 SCIM_KEY_Ncaron = 0x1d2, 637 SCIM_KEY_Odoubleacute = 0x1d5, 638 SCIM_KEY_Rcaron = 0x1d8, 639 SCIM_KEY_Uring = 0x1d9, 640 SCIM_KEY_Udoubleacute = 0x1db, 641 SCIM_KEY_Tcedilla = 0x1de, 642 SCIM_KEY_racute = 0x1e0, 643 SCIM_KEY_abreve = 0x1e3, 644 SCIM_KEY_lacute = 0x1e5, 645 SCIM_KEY_cacute = 0x1e6, 646 SCIM_KEY_ccaron = 0x1e8, 647 SCIM_KEY_eogonek = 0x1ea, 648 SCIM_KEY_ecaron = 0x1ec, 649 SCIM_KEY_dcaron = 0x1ef, 650 SCIM_KEY_dstroke = 0x1f0, 651 SCIM_KEY_nacute = 0x1f1, 652 SCIM_KEY_ncaron = 0x1f2, 653 SCIM_KEY_odoubleacute = 0x1f5, 654 SCIM_KEY_udoubleacute = 0x1fb, 655 SCIM_KEY_rcaron = 0x1f8, 656 SCIM_KEY_uring = 0x1f9, 657 SCIM_KEY_tcedilla = 0x1fe, 658 SCIM_KEY_abovedot = 0x1ff, 659 660 /* 661 * Latin 3 662 * Byte 3 = 2 663 */ 664 SCIM_KEY_Hstroke = 0x2a1, 665 SCIM_KEY_Hcircumflex = 0x2a6, 666 SCIM_KEY_Iabovedot = 0x2a9, 667 SCIM_KEY_Gbreve = 0x2ab, 668 SCIM_KEY_Jcircumflex = 0x2ac, 669 SCIM_KEY_hstroke = 0x2b1, 670 SCIM_KEY_hcircumflex = 0x2b6, 671 SCIM_KEY_idotless = 0x2b9, 672 SCIM_KEY_gbreve = 0x2bb, 673 SCIM_KEY_jcircumflex = 0x2bc, 674 SCIM_KEY_Cabovedot = 0x2c5, 675 SCIM_KEY_Ccircumflex = 0x2c6, 676 SCIM_KEY_Gabovedot = 0x2d5, 677 SCIM_KEY_Gcircumflex = 0x2d8, 678 SCIM_KEY_Ubreve = 0x2dd, 679 SCIM_KEY_Scircumflex = 0x2de, 680 SCIM_KEY_cabovedot = 0x2e5, 681 SCIM_KEY_ccircumflex = 0x2e6, 682 SCIM_KEY_gabovedot = 0x2f5, 683 SCIM_KEY_gcircumflex = 0x2f8, 684 SCIM_KEY_ubreve = 0x2fd, 685 SCIM_KEY_scircumflex = 0x2fe, 686 687 688 /* 689 * Latin 4 690 * Byte 3 = 3 691 */ 692 SCIM_KEY_kra = 0x3a2, 693 SCIM_KEY_kappa = 0x3a2, /* deprecated */ 694 SCIM_KEY_Rcedilla = 0x3a3, 695 SCIM_KEY_Itilde = 0x3a5, 696 SCIM_KEY_Lcedilla = 0x3a6, 697 SCIM_KEY_Emacron = 0x3aa, 698 SCIM_KEY_Gcedilla = 0x3ab, 699 SCIM_KEY_Tslash = 0x3ac, 700 SCIM_KEY_rcedilla = 0x3b3, 701 SCIM_KEY_itilde = 0x3b5, 702 SCIM_KEY_lcedilla = 0x3b6, 703 SCIM_KEY_emacron = 0x3ba, 704 SCIM_KEY_gcedilla = 0x3bb, 705 SCIM_KEY_tslash = 0x3bc, 706 SCIM_KEY_ENG = 0x3bd, 707 SCIM_KEY_eng = 0x3bf, 708 SCIM_KEY_Amacron = 0x3c0, 709 SCIM_KEY_Iogonek = 0x3c7, 710 SCIM_KEY_Eabovedot = 0x3cc, 711 SCIM_KEY_Imacron = 0x3cf, 712 SCIM_KEY_Ncedilla = 0x3d1, 713 SCIM_KEY_Omacron = 0x3d2, 714 SCIM_KEY_Kcedilla = 0x3d3, 715 SCIM_KEY_Uogonek = 0x3d9, 716 SCIM_KEY_Utilde = 0x3dd, 717 SCIM_KEY_Umacron = 0x3de, 718 SCIM_KEY_amacron = 0x3e0, 719 SCIM_KEY_iogonek = 0x3e7, 720 SCIM_KEY_eabovedot = 0x3ec, 721 SCIM_KEY_imacron = 0x3ef, 722 SCIM_KEY_ncedilla = 0x3f1, 723 SCIM_KEY_omacron = 0x3f2, 724 SCIM_KEY_kcedilla = 0x3f3, 725 SCIM_KEY_uogonek = 0x3f9, 726 SCIM_KEY_utilde = 0x3fd, 727 SCIM_KEY_umacron = 0x3fe, 728 729 /* 730 * Latin-8 731 * Byte 3 = 18 732 */ 733 SCIM_KEY_Babovedot = 0x12a1, 734 SCIM_KEY_babovedot = 0x12a2, 735 SCIM_KEY_Dabovedot = 0x12a6, 736 SCIM_KEY_Wgrave = 0x12a8, 737 SCIM_KEY_Wacute = 0x12aa, 738 SCIM_KEY_dabovedot = 0x12ab, 739 SCIM_KEY_Ygrave = 0x12ac, 740 SCIM_KEY_Fabovedot = 0x12b0, 741 SCIM_KEY_fabovedot = 0x12b1, 742 SCIM_KEY_Mabovedot = 0x12b4, 743 SCIM_KEY_mabovedot = 0x12b5, 744 SCIM_KEY_Pabovedot = 0x12b7, 745 SCIM_KEY_wgrave = 0x12b8, 746 SCIM_KEY_pabovedot = 0x12b9, 747 SCIM_KEY_wacute = 0x12ba, 748 SCIM_KEY_Sabovedot = 0x12bb, 749 SCIM_KEY_ygrave = 0x12bc, 750 SCIM_KEY_Wdiaeresis = 0x12bd, 751 SCIM_KEY_wdiaeresis = 0x12be, 752 SCIM_KEY_sabovedot = 0x12bf, 753 SCIM_KEY_Wcircumflex = 0x12d0, 754 SCIM_KEY_Tabovedot = 0x12d7, 755 SCIM_KEY_Ycircumflex = 0x12de, 756 SCIM_KEY_wcircumflex = 0x12f0, 757 SCIM_KEY_tabovedot = 0x12f7, 758 SCIM_KEY_ycircumflex = 0x12fe, 759 760 /* 761 * Latin-9 (a.k.a. Latin-0) 762 * Byte 3 = 19 763 */ 764 765 SCIM_KEY_OE = 0x13bc, 766 SCIM_KEY_oe = 0x13bd, 767 SCIM_KEY_Ydiaeresis = 0x13be, 768 769 /* 770 * Katakana 771 * Byte 3 = 4 772 */ 773 774 SCIM_KEY_overline = 0x47e, 775 SCIM_KEY_kana_fullstop = 0x4a1, 776 SCIM_KEY_kana_openingbracket = 0x4a2, 777 SCIM_KEY_kana_closingbracket = 0x4a3, 778 SCIM_KEY_kana_comma = 0x4a4, 779 SCIM_KEY_kana_conjunctive = 0x4a5, 780 SCIM_KEY_kana_middledot = 0x4a5, /* deprecated */ 781 SCIM_KEY_kana_WO = 0x4a6, 782 SCIM_KEY_kana_a = 0x4a7, 783 SCIM_KEY_kana_i = 0x4a8, 784 SCIM_KEY_kana_u = 0x4a9, 785 SCIM_KEY_kana_e = 0x4aa, 786 SCIM_KEY_kana_o = 0x4ab, 787 SCIM_KEY_kana_ya = 0x4ac, 788 SCIM_KEY_kana_yu = 0x4ad, 789 SCIM_KEY_kana_yo = 0x4ae, 790 SCIM_KEY_kana_tsu = 0x4af, 791 SCIM_KEY_kana_tu = 0x4af, /* deprecated */ 792 SCIM_KEY_prolongedsound = 0x4b0, 793 SCIM_KEY_kana_A = 0x4b1, 794 SCIM_KEY_kana_I = 0x4b2, 795 SCIM_KEY_kana_U = 0x4b3, 796 SCIM_KEY_kana_E = 0x4b4, 797 SCIM_KEY_kana_O = 0x4b5, 798 SCIM_KEY_kana_KA = 0x4b6, 799 SCIM_KEY_kana_KI = 0x4b7, 800 SCIM_KEY_kana_KU = 0x4b8, 801 SCIM_KEY_kana_KE = 0x4b9, 802 SCIM_KEY_kana_KO = 0x4ba, 803 SCIM_KEY_kana_SA = 0x4bb, 804 SCIM_KEY_kana_SHI = 0x4bc, 805 SCIM_KEY_kana_SU = 0x4bd, 806 SCIM_KEY_kana_SE = 0x4be, 807 SCIM_KEY_kana_SO = 0x4bf, 808 SCIM_KEY_kana_TA = 0x4c0, 809 SCIM_KEY_kana_CHI = 0x4c1, 810 SCIM_KEY_kana_TI = 0x4c1, /* deprecated */ 811 SCIM_KEY_kana_TSU = 0x4c2, 812 SCIM_KEY_kana_TU = 0x4c2, /* deprecated */ 813 SCIM_KEY_kana_TE = 0x4c3, 814 SCIM_KEY_kana_TO = 0x4c4, 815 SCIM_KEY_kana_NA = 0x4c5, 816 SCIM_KEY_kana_NI = 0x4c6, 817 SCIM_KEY_kana_NU = 0x4c7, 818 SCIM_KEY_kana_NE = 0x4c8, 819 SCIM_KEY_kana_NO = 0x4c9, 820 SCIM_KEY_kana_HA = 0x4ca, 821 SCIM_KEY_kana_HI = 0x4cb, 822 SCIM_KEY_kana_FU = 0x4cc, 823 SCIM_KEY_kana_HU = 0x4cc, /* deprecated */ 824 SCIM_KEY_kana_HE = 0x4cd, 825 SCIM_KEY_kana_HO = 0x4ce, 826 SCIM_KEY_kana_MA = 0x4cf, 827 SCIM_KEY_kana_MI = 0x4d0, 828 SCIM_KEY_kana_MU = 0x4d1, 829 SCIM_KEY_kana_ME = 0x4d2, 830 SCIM_KEY_kana_MO = 0x4d3, 831 SCIM_KEY_kana_YA = 0x4d4, 832 SCIM_KEY_kana_YU = 0x4d5, 833 SCIM_KEY_kana_YO = 0x4d6, 834 SCIM_KEY_kana_RA = 0x4d7, 835 SCIM_KEY_kana_RI = 0x4d8, 836 SCIM_KEY_kana_RU = 0x4d9, 837 SCIM_KEY_kana_RE = 0x4da, 838 SCIM_KEY_kana_RO = 0x4db, 839 SCIM_KEY_kana_WA = 0x4dc, 840 SCIM_KEY_kana_N = 0x4dd, 841 SCIM_KEY_voicedsound = 0x4de, 842 SCIM_KEY_semivoicedsound = 0x4df, 843 SCIM_KEY_kana_switch = 0xFF7E, /* Alias for mode_switch */ 844 845 /* 846 * Arabic 847 * Byte 3 = 5 848 */ 849 SCIM_KEY_Farsi_0 = 0x590, 850 SCIM_KEY_Farsi_1 = 0x591, 851 SCIM_KEY_Farsi_2 = 0x592, 852 SCIM_KEY_Farsi_3 = 0x593, 853 SCIM_KEY_Farsi_4 = 0x594, 854 SCIM_KEY_Farsi_5 = 0x595, 855 SCIM_KEY_Farsi_6 = 0x596, 856 SCIM_KEY_Farsi_7 = 0x597, 857 SCIM_KEY_Farsi_8 = 0x598, 858 SCIM_KEY_Farsi_9 = 0x599, 859 SCIM_KEY_Arabic_percent = 0x5a5, 860 SCIM_KEY_Arabic_superscript_alef = 0x5a6, 861 SCIM_KEY_Arabic_tteh = 0x5a7, 862 SCIM_KEY_Arabic_peh = 0x5a8, 863 SCIM_KEY_Arabic_tcheh = 0x5a9, 864 SCIM_KEY_Arabic_ddal = 0x5aa, 865 SCIM_KEY_Arabic_rreh = 0x5ab, 866 SCIM_KEY_Arabic_comma = 0x5ac, 867 SCIM_KEY_Arabic_fullstop = 0x5ae, 868 SCIM_KEY_Arabic_0 = 0x5b0, 869 SCIM_KEY_Arabic_1 = 0x5b1, 870 SCIM_KEY_Arabic_2 = 0x5b2, 871 SCIM_KEY_Arabic_3 = 0x5b3, 872 SCIM_KEY_Arabic_4 = 0x5b4, 873 SCIM_KEY_Arabic_5 = 0x5b5, 874 SCIM_KEY_Arabic_6 = 0x5b6, 875 SCIM_KEY_Arabic_7 = 0x5b7, 876 SCIM_KEY_Arabic_8 = 0x5b8, 877 SCIM_KEY_Arabic_9 = 0x5b9, 878 SCIM_KEY_Arabic_semicolon = 0x5bb, 879 SCIM_KEY_Arabic_question_mark = 0x5bf, 880 SCIM_KEY_Arabic_hamza = 0x5c1, 881 SCIM_KEY_Arabic_maddaonalef = 0x5c2, 882 SCIM_KEY_Arabic_hamzaonalef = 0x5c3, 883 SCIM_KEY_Arabic_hamzaonwaw = 0x5c4, 884 SCIM_KEY_Arabic_hamzaunderalef = 0x5c5, 885 SCIM_KEY_Arabic_hamzaonyeh = 0x5c6, 886 SCIM_KEY_Arabic_alef = 0x5c7, 887 SCIM_KEY_Arabic_beh = 0x5c8, 888 SCIM_KEY_Arabic_tehmarbuta = 0x5c9, 889 SCIM_KEY_Arabic_teh = 0x5ca, 890 SCIM_KEY_Arabic_theh = 0x5cb, 891 SCIM_KEY_Arabic_jeem = 0x5cc, 892 SCIM_KEY_Arabic_hah = 0x5cd, 893 SCIM_KEY_Arabic_khah = 0x5ce, 894 SCIM_KEY_Arabic_dal = 0x5cf, 895 SCIM_KEY_Arabic_thal = 0x5d0, 896 SCIM_KEY_Arabic_ra = 0x5d1, 897 SCIM_KEY_Arabic_zain = 0x5d2, 898 SCIM_KEY_Arabic_seen = 0x5d3, 899 SCIM_KEY_Arabic_sheen = 0x5d4, 900 SCIM_KEY_Arabic_sad = 0x5d5, 901 SCIM_KEY_Arabic_dad = 0x5d6, 902 SCIM_KEY_Arabic_tah = 0x5d7, 903 SCIM_KEY_Arabic_zah = 0x5d8, 904 SCIM_KEY_Arabic_ain = 0x5d9, 905 SCIM_KEY_Arabic_ghain = 0x5da, 906 SCIM_KEY_Arabic_tatweel = 0x5e0, 907 SCIM_KEY_Arabic_feh = 0x5e1, 908 SCIM_KEY_Arabic_qaf = 0x5e2, 909 SCIM_KEY_Arabic_kaf = 0x5e3, 910 SCIM_KEY_Arabic_lam = 0x5e4, 911 SCIM_KEY_Arabic_meem = 0x5e5, 912 SCIM_KEY_Arabic_noon = 0x5e6, 913 SCIM_KEY_Arabic_ha = 0x5e7, 914 SCIM_KEY_Arabic_heh = 0x5e7, /* deprecated */ 915 SCIM_KEY_Arabic_waw = 0x5e8, 916 SCIM_KEY_Arabic_alefmaksura = 0x5e9, 917 SCIM_KEY_Arabic_yeh = 0x5ea, 918 SCIM_KEY_Arabic_fathatan = 0x5eb, 919 SCIM_KEY_Arabic_dammatan = 0x5ec, 920 SCIM_KEY_Arabic_kasratan = 0x5ed, 921 SCIM_KEY_Arabic_fatha = 0x5ee, 922 SCIM_KEY_Arabic_damma = 0x5ef, 923 SCIM_KEY_Arabic_kasra = 0x5f0, 924 SCIM_KEY_Arabic_shadda = 0x5f1, 925 SCIM_KEY_Arabic_sukun = 0x5f2, 926 SCIM_KEY_Arabic_madda_above = 0x5f3, 927 SCIM_KEY_Arabic_hamza_above = 0x5f4, 928 SCIM_KEY_Arabic_hamza_below = 0x5f5, 929 SCIM_KEY_Arabic_jeh = 0x5f6, 930 SCIM_KEY_Arabic_veh = 0x5f7, 931 SCIM_KEY_Arabic_keheh = 0x5f8, 932 SCIM_KEY_Arabic_gaf = 0x5f9, 933 SCIM_KEY_Arabic_noon_ghunna = 0x5fa, 934 SCIM_KEY_Arabic_heh_doachashmee = 0x5fb, 935 SCIM_KEY_Farsi_yeh = 0x5fc, 936 SCIM_KEY_Arabic_farsi_yeh = SCIM_KEY_Farsi_yeh, 937 SCIM_KEY_Arabic_yeh_baree = 0x5fd, 938 SCIM_KEY_Arabic_heh_goal = 0x5fe, 939 SCIM_KEY_Arabic_switch = 0xFF7E, /* Alias for mode_switch */ 940 941 /* 942 * Cyrillic 943 * Byte 3 = 6 944 */ 945 SCIM_KEY_Cyrillic_GHE_bar = 0x680, 946 SCIM_KEY_Cyrillic_ghe_bar = 0x690, 947 SCIM_KEY_Cyrillic_ZHE_descender = 0x681, 948 SCIM_KEY_Cyrillic_zhe_descender = 0x691, 949 SCIM_KEY_Cyrillic_KA_descender = 0x682, 950 SCIM_KEY_Cyrillic_ka_descender = 0x692, 951 SCIM_KEY_Cyrillic_KA_vertstroke = 0x683, 952 SCIM_KEY_Cyrillic_ka_vertstroke = 0x693, 953 SCIM_KEY_Cyrillic_EN_descender = 0x684, 954 SCIM_KEY_Cyrillic_en_descender = 0x694, 955 SCIM_KEY_Cyrillic_U_straight = 0x685, 956 SCIM_KEY_Cyrillic_u_straight = 0x695, 957 SCIM_KEY_Cyrillic_U_straight_bar = 0x686, 958 SCIM_KEY_Cyrillic_u_straight_bar = 0x696, 959 SCIM_KEY_Cyrillic_HA_descender = 0x687, 960 SCIM_KEY_Cyrillic_ha_descender = 0x697, 961 SCIM_KEY_Cyrillic_CHE_descender = 0x688, 962 SCIM_KEY_Cyrillic_che_descender = 0x698, 963 SCIM_KEY_Cyrillic_CHE_vertstroke = 0x689, 964 SCIM_KEY_Cyrillic_che_vertstroke = 0x699, 965 SCIM_KEY_Cyrillic_SHHA = 0x68a, 966 SCIM_KEY_Cyrillic_shha = 0x69a, 967 968 SCIM_KEY_Cyrillic_SCHWA = 0x68c, 969 SCIM_KEY_Cyrillic_schwa = 0x69c, 970 SCIM_KEY_Cyrillic_I_macron = 0x68d, 971 SCIM_KEY_Cyrillic_i_macron = 0x69d, 972 SCIM_KEY_Cyrillic_O_bar = 0x68e, 973 SCIM_KEY_Cyrillic_o_bar = 0x69e, 974 SCIM_KEY_Cyrillic_U_macron = 0x68f, 975 SCIM_KEY_Cyrillic_u_macron = 0x69f, 976 977 SCIM_KEY_Serbian_dje = 0x6a1, 978 SCIM_KEY_Macedonia_gje = 0x6a2, 979 SCIM_KEY_Cyrillic_io = 0x6a3, 980 SCIM_KEY_Ukrainian_ie = 0x6a4, 981 SCIM_KEY_Ukranian_je = 0x6a4, /* deprecated */ 982 SCIM_KEY_Macedonia_dse = 0x6a5, 983 SCIM_KEY_Ukrainian_i = 0x6a6, 984 SCIM_KEY_Ukranian_i = 0x6a6, /* deprecated */ 985 SCIM_KEY_Ukrainian_yi = 0x6a7, 986 SCIM_KEY_Ukranian_yi = 0x6a7, /* deprecated */ 987 SCIM_KEY_Cyrillic_je = 0x6a8, 988 SCIM_KEY_Serbian_je = 0x6a8, /* deprecated */ 989 SCIM_KEY_Cyrillic_lje = 0x6a9, 990 SCIM_KEY_Serbian_lje = 0x6a9, /* deprecated */ 991 SCIM_KEY_Cyrillic_nje = 0x6aa, 992 SCIM_KEY_Serbian_nje = 0x6aa, /* deprecated */ 993 SCIM_KEY_Serbian_tshe = 0x6ab, 994 SCIM_KEY_Macedonia_kje = 0x6ac, 995 SCIM_KEY_Ukrainian_ghe_with_upturn = 0x6ad, 996 SCIM_KEY_Byelorussian_shortu = 0x6ae, 997 SCIM_KEY_Cyrillic_dzhe = 0x6af, 998 SCIM_KEY_Serbian_dze = 0x6af, /* deprecated */ 999 SCIM_KEY_numerosign = 0x6b0, 1000 SCIM_KEY_Serbian_DJE = 0x6b1, 1001 SCIM_KEY_Macedonia_GJE = 0x6b2, 1002 SCIM_KEY_Cyrillic_IO = 0x6b3, 1003 SCIM_KEY_Ukrainian_IE = 0x6b4, 1004 SCIM_KEY_Ukranian_JE = 0x6b4, /* deprecated */ 1005 SCIM_KEY_Macedonia_DSE = 0x6b5, 1006 SCIM_KEY_Ukrainian_I = 0x6b6, 1007 SCIM_KEY_Ukranian_I = 0x6b6, /* deprecated */ 1008 SCIM_KEY_Ukrainian_YI = 0x6b7, 1009 SCIM_KEY_Ukranian_YI = 0x6b7, /* deprecated */ 1010 SCIM_KEY_Cyrillic_JE = 0x6b8, 1011 SCIM_KEY_Serbian_JE = 0x6b8, /* deprecated */ 1012 SCIM_KEY_Cyrillic_LJE = 0x6b9, 1013 SCIM_KEY_Serbian_LJE = 0x6b9, /* deprecated */ 1014 SCIM_KEY_Cyrillic_NJE = 0x6ba, 1015 SCIM_KEY_Serbian_NJE = 0x6ba, /* deprecated */ 1016 SCIM_KEY_Serbian_TSHE = 0x6bb, 1017 SCIM_KEY_Macedonia_KJE = 0x6bc, 1018 SCIM_KEY_Ukrainian_GHE_WITH_UPTURN = 0x6bd, 1019 SCIM_KEY_Byelorussian_SHORTU = 0x6be, 1020 SCIM_KEY_Cyrillic_DZHE = 0x6bf, 1021 SCIM_KEY_Serbian_DZE = 0x6bf, /* deprecated */ 1022 SCIM_KEY_Cyrillic_yu = 0x6c0, 1023 SCIM_KEY_Cyrillic_a = 0x6c1, 1024 SCIM_KEY_Cyrillic_be = 0x6c2, 1025 SCIM_KEY_Cyrillic_tse = 0x6c3, 1026 SCIM_KEY_Cyrillic_de = 0x6c4, 1027 SCIM_KEY_Cyrillic_ie = 0x6c5, 1028 SCIM_KEY_Cyrillic_ef = 0x6c6, 1029 SCIM_KEY_Cyrillic_ghe = 0x6c7, 1030 SCIM_KEY_Cyrillic_ha = 0x6c8, 1031 SCIM_KEY_Cyrillic_i = 0x6c9, 1032 SCIM_KEY_Cyrillic_shorti = 0x6ca, 1033 SCIM_KEY_Cyrillic_ka = 0x6cb, 1034 SCIM_KEY_Cyrillic_el = 0x6cc, 1035 SCIM_KEY_Cyrillic_em = 0x6cd, 1036 SCIM_KEY_Cyrillic_en = 0x6ce, 1037 SCIM_KEY_Cyrillic_o = 0x6cf, 1038 SCIM_KEY_Cyrillic_pe = 0x6d0, 1039 SCIM_KEY_Cyrillic_ya = 0x6d1, 1040 SCIM_KEY_Cyrillic_er = 0x6d2, 1041 SCIM_KEY_Cyrillic_es = 0x6d3, 1042 SCIM_KEY_Cyrillic_te = 0x6d4, 1043 SCIM_KEY_Cyrillic_u = 0x6d5, 1044 SCIM_KEY_Cyrillic_zhe = 0x6d6, 1045 SCIM_KEY_Cyrillic_ve = 0x6d7, 1046 SCIM_KEY_Cyrillic_softsign = 0x6d8, 1047 SCIM_KEY_Cyrillic_yeru = 0x6d9, 1048 SCIM_KEY_Cyrillic_ze = 0x6da, 1049 SCIM_KEY_Cyrillic_sha = 0x6db, 1050 SCIM_KEY_Cyrillic_e = 0x6dc, 1051 SCIM_KEY_Cyrillic_shcha = 0x6dd, 1052 SCIM_KEY_Cyrillic_che = 0x6de, 1053 SCIM_KEY_Cyrillic_hardsign = 0x6df, 1054 SCIM_KEY_Cyrillic_YU = 0x6e0, 1055 SCIM_KEY_Cyrillic_A = 0x6e1, 1056 SCIM_KEY_Cyrillic_BE = 0x6e2, 1057 SCIM_KEY_Cyrillic_TSE = 0x6e3, 1058 SCIM_KEY_Cyrillic_DE = 0x6e4, 1059 SCIM_KEY_Cyrillic_IE = 0x6e5, 1060 SCIM_KEY_Cyrillic_EF = 0x6e6, 1061 SCIM_KEY_Cyrillic_GHE = 0x6e7, 1062 SCIM_KEY_Cyrillic_HA = 0x6e8, 1063 SCIM_KEY_Cyrillic_I = 0x6e9, 1064 SCIM_KEY_Cyrillic_SHORTI = 0x6ea, 1065 SCIM_KEY_Cyrillic_KA = 0x6eb, 1066 SCIM_KEY_Cyrillic_EL = 0x6ec, 1067 SCIM_KEY_Cyrillic_EM = 0x6ed, 1068 SCIM_KEY_Cyrillic_EN = 0x6ee, 1069 SCIM_KEY_Cyrillic_O = 0x6ef, 1070 SCIM_KEY_Cyrillic_PE = 0x6f0, 1071 SCIM_KEY_Cyrillic_YA = 0x6f1, 1072 SCIM_KEY_Cyrillic_ER = 0x6f2, 1073 SCIM_KEY_Cyrillic_ES = 0x6f3, 1074 SCIM_KEY_Cyrillic_TE = 0x6f4, 1075 SCIM_KEY_Cyrillic_U = 0x6f5, 1076 SCIM_KEY_Cyrillic_ZHE = 0x6f6, 1077 SCIM_KEY_Cyrillic_VE = 0x6f7, 1078 SCIM_KEY_Cyrillic_SOFTSIGN = 0x6f8, 1079 SCIM_KEY_Cyrillic_YERU = 0x6f9, 1080 SCIM_KEY_Cyrillic_ZE = 0x6fa, 1081 SCIM_KEY_Cyrillic_SHA = 0x6fb, 1082 SCIM_KEY_Cyrillic_E = 0x6fc, 1083 SCIM_KEY_Cyrillic_SHCHA = 0x6fd, 1084 SCIM_KEY_Cyrillic_CHE = 0x6fe, 1085 SCIM_KEY_Cyrillic_HARDSIGN = 0x6ff, 1086 1087 /* 1088 * Greek 1089 * Byte 3 = 7 1090 */ 1091 SCIM_KEY_Greek_ALPHAaccent = 0x7a1, 1092 SCIM_KEY_Greek_EPSILONaccent = 0x7a2, 1093 SCIM_KEY_Greek_ETAaccent = 0x7a3, 1094 SCIM_KEY_Greek_IOTAaccent = 0x7a4, 1095 SCIM_KEY_Greek_IOTAdieresis = 0x7a5, 1096 SCIM_KEY_Greek_IOTAdiaeresis = SCIM_KEY_Greek_IOTAdieresis, /* old typo */ 1097 SCIM_KEY_Greek_OMICRONaccent = 0x7a7, 1098 SCIM_KEY_Greek_UPSILONaccent = 0x7a8, 1099 SCIM_KEY_Greek_UPSILONdieresis = 0x7a9, 1100 SCIM_KEY_Greek_OMEGAaccent = 0x7ab, 1101 SCIM_KEY_Greek_accentdieresis = 0x7ae, 1102 SCIM_KEY_Greek_horizbar = 0x7af, 1103 SCIM_KEY_Greek_alphaaccent = 0x7b1, 1104 SCIM_KEY_Greek_epsilonaccent = 0x7b2, 1105 SCIM_KEY_Greek_etaaccent = 0x7b3, 1106 SCIM_KEY_Greek_iotaaccent = 0x7b4, 1107 SCIM_KEY_Greek_iotadieresis = 0x7b5, 1108 SCIM_KEY_Greek_iotaaccentdieresis = 0x7b6, 1109 SCIM_KEY_Greek_omicronaccent = 0x7b7, 1110 SCIM_KEY_Greek_upsilonaccent = 0x7b8, 1111 SCIM_KEY_Greek_upsilondieresis = 0x7b9, 1112 SCIM_KEY_Greek_upsilonaccentdieresis = 0x7ba, 1113 SCIM_KEY_Greek_omegaaccent = 0x7bb, 1114 SCIM_KEY_Greek_ALPHA = 0x7c1, 1115 SCIM_KEY_Greek_BETA = 0x7c2, 1116 SCIM_KEY_Greek_GAMMA = 0x7c3, 1117 SCIM_KEY_Greek_DELTA = 0x7c4, 1118 SCIM_KEY_Greek_EPSILON = 0x7c5, 1119 SCIM_KEY_Greek_ZETA = 0x7c6, 1120 SCIM_KEY_Greek_ETA = 0x7c7, 1121 SCIM_KEY_Greek_THETA = 0x7c8, 1122 SCIM_KEY_Greek_IOTA = 0x7c9, 1123 SCIM_KEY_Greek_KAPPA = 0x7ca, 1124 SCIM_KEY_Greek_LAMDA = 0x7cb, 1125 SCIM_KEY_Greek_LAMBDA = 0x7cb, 1126 SCIM_KEY_Greek_MU = 0x7cc, 1127 SCIM_KEY_Greek_NU = 0x7cd, 1128 SCIM_KEY_Greek_XI = 0x7ce, 1129 SCIM_KEY_Greek_OMICRON = 0x7cf, 1130 SCIM_KEY_Greek_PI = 0x7d0, 1131 SCIM_KEY_Greek_RHO = 0x7d1, 1132 SCIM_KEY_Greek_SIGMA = 0x7d2, 1133 SCIM_KEY_Greek_TAU = 0x7d4, 1134 SCIM_KEY_Greek_UPSILON = 0x7d5, 1135 SCIM_KEY_Greek_PHI = 0x7d6, 1136 SCIM_KEY_Greek_CHI = 0x7d7, 1137 SCIM_KEY_Greek_PSI = 0x7d8, 1138 SCIM_KEY_Greek_OMEGA = 0x7d9, 1139 SCIM_KEY_Greek_alpha = 0x7e1, 1140 SCIM_KEY_Greek_beta = 0x7e2, 1141 SCIM_KEY_Greek_gamma = 0x7e3, 1142 SCIM_KEY_Greek_delta = 0x7e4, 1143 SCIM_KEY_Greek_epsilon = 0x7e5, 1144 SCIM_KEY_Greek_zeta = 0x7e6, 1145 SCIM_KEY_Greek_eta = 0x7e7, 1146 SCIM_KEY_Greek_theta = 0x7e8, 1147 SCIM_KEY_Greek_iota = 0x7e9, 1148 SCIM_KEY_Greek_kappa = 0x7ea, 1149 SCIM_KEY_Greek_lamda = 0x7eb, 1150 SCIM_KEY_Greek_lambda = 0x7eb, 1151 SCIM_KEY_Greek_mu = 0x7ec, 1152 SCIM_KEY_Greek_nu = 0x7ed, 1153 SCIM_KEY_Greek_xi = 0x7ee, 1154 SCIM_KEY_Greek_omicron = 0x7ef, 1155 SCIM_KEY_Greek_pi = 0x7f0, 1156 SCIM_KEY_Greek_rho = 0x7f1, 1157 SCIM_KEY_Greek_sigma = 0x7f2, 1158 SCIM_KEY_Greek_finalsmallsigma = 0x7f3, 1159 SCIM_KEY_Greek_tau = 0x7f4, 1160 SCIM_KEY_Greek_upsilon = 0x7f5, 1161 SCIM_KEY_Greek_phi = 0x7f6, 1162 SCIM_KEY_Greek_chi = 0x7f7, 1163 SCIM_KEY_Greek_psi = 0x7f8, 1164 SCIM_KEY_Greek_omega = 0x7f9, 1165 SCIM_KEY_Greek_switch = 0xFF7E, /* Alias for mode_switch */ 1166 1167 /* 1168 * Technical 1169 * Byte 3 = 8 1170 */ 1171 SCIM_KEY_leftradical = 0x8a1, 1172 SCIM_KEY_topleftradical = 0x8a2, 1173 SCIM_KEY_horizconnector = 0x8a3, 1174 SCIM_KEY_topintegral = 0x8a4, 1175 SCIM_KEY_botintegral = 0x8a5, 1176 SCIM_KEY_vertconnector = 0x8a6, 1177 SCIM_KEY_topleftsqbracket = 0x8a7, 1178 SCIM_KEY_botleftsqbracket = 0x8a8, 1179 SCIM_KEY_toprightsqbracket = 0x8a9, 1180 SCIM_KEY_botrightsqbracket = 0x8aa, 1181 SCIM_KEY_topleftparens = 0x8ab, 1182 SCIM_KEY_botleftparens = 0x8ac, 1183 SCIM_KEY_toprightparens = 0x8ad, 1184 SCIM_KEY_botrightparens = 0x8ae, 1185 SCIM_KEY_leftmiddlecurlybrace = 0x8af, 1186 SCIM_KEY_rightmiddlecurlybrace = 0x8b0, 1187 SCIM_KEY_topleftsummation = 0x8b1, 1188 SCIM_KEY_botleftsummation = 0x8b2, 1189 SCIM_KEY_topvertsummationconnector = 0x8b3, 1190 SCIM_KEY_botvertsummationconnector = 0x8b4, 1191 SCIM_KEY_toprightsummation = 0x8b5, 1192 SCIM_KEY_botrightsummation = 0x8b6, 1193 SCIM_KEY_rightmiddlesummation = 0x8b7, 1194 SCIM_KEY_lessthanequal = 0x8bc, 1195 SCIM_KEY_notequal = 0x8bd, 1196 SCIM_KEY_greaterthanequal = 0x8be, 1197 SCIM_KEY_integral = 0x8bf, 1198 SCIM_KEY_therefore = 0x8c0, 1199 SCIM_KEY_variation = 0x8c1, 1200 SCIM_KEY_infinity = 0x8c2, 1201 SCIM_KEY_nabla = 0x8c5, 1202 SCIM_KEY_approximate = 0x8c8, 1203 SCIM_KEY_similarequal = 0x8c9, 1204 SCIM_KEY_ifonlyif = 0x8cd, 1205 SCIM_KEY_implies = 0x8ce, 1206 SCIM_KEY_identical = 0x8cf, 1207 SCIM_KEY_radical = 0x8d6, 1208 SCIM_KEY_includedin = 0x8da, 1209 SCIM_KEY_includes = 0x8db, 1210 SCIM_KEY_intersection = 0x8dc, 1211 SCIM_KEY_union = 0x8dd, 1212 SCIM_KEY_logicaland = 0x8de, 1213 SCIM_KEY_logicalor = 0x8df, 1214 SCIM_KEY_partialderivative = 0x8ef, 1215 SCIM_KEY_function = 0x8f6, 1216 SCIM_KEY_leftarrow = 0x8fb, 1217 SCIM_KEY_uparrow = 0x8fc, 1218 SCIM_KEY_rightarrow = 0x8fd, 1219 SCIM_KEY_downarrow = 0x8fe, 1220 1221 /* 1222 * Special 1223 * Byte 3 = 9 1224 */ 1225 SCIM_KEY_blank = 0x9df, 1226 SCIM_KEY_soliddiamond = 0x9e0, 1227 SCIM_KEY_checkerboard = 0x9e1, 1228 SCIM_KEY_ht = 0x9e2, 1229 SCIM_KEY_ff = 0x9e3, 1230 SCIM_KEY_cr = 0x9e4, 1231 SCIM_KEY_lf = 0x9e5, 1232 SCIM_KEY_nl = 0x9e8, 1233 SCIM_KEY_vt = 0x9e9, 1234 SCIM_KEY_lowrightcorner = 0x9ea, 1235 SCIM_KEY_uprightcorner = 0x9eb, 1236 SCIM_KEY_upleftcorner = 0x9ec, 1237 SCIM_KEY_lowleftcorner = 0x9ed, 1238 SCIM_KEY_crossinglines = 0x9ee, 1239 SCIM_KEY_horizlinescan1 = 0x9ef, 1240 SCIM_KEY_horizlinescan3 = 0x9f0, 1241 SCIM_KEY_horizlinescan5 = 0x9f1, 1242 SCIM_KEY_horizlinescan7 = 0x9f2, 1243 SCIM_KEY_horizlinescan9 = 0x9f3, 1244 SCIM_KEY_leftt = 0x9f4, 1245 SCIM_KEY_rightt = 0x9f5, 1246 SCIM_KEY_bott = 0x9f6, 1247 SCIM_KEY_topt = 0x9f7, 1248 SCIM_KEY_vertbar = 0x9f8, 1249 1250 /* 1251 * Publishing 1252 * Byte 3 = a 1253 */ 1254 SCIM_KEY_emspace = 0xaa1, 1255 SCIM_KEY_enspace = 0xaa2, 1256 SCIM_KEY_em3space = 0xaa3, 1257 SCIM_KEY_em4space = 0xaa4, 1258 SCIM_KEY_digitspace = 0xaa5, 1259 SCIM_KEY_punctspace = 0xaa6, 1260 SCIM_KEY_thinspace = 0xaa7, 1261 SCIM_KEY_hairspace = 0xaa8, 1262 SCIM_KEY_emdash = 0xaa9, 1263 SCIM_KEY_endash = 0xaaa, 1264 SCIM_KEY_signifblank = 0xaac, 1265 SCIM_KEY_ellipsis = 0xaae, 1266 SCIM_KEY_doubbaselinedot = 0xaaf, 1267 SCIM_KEY_onethird = 0xab0, 1268 SCIM_KEY_twothirds = 0xab1, 1269 SCIM_KEY_onefifth = 0xab2, 1270 SCIM_KEY_twofifths = 0xab3, 1271 SCIM_KEY_threefifths = 0xab4, 1272 SCIM_KEY_fourfifths = 0xab5, 1273 SCIM_KEY_onesixth = 0xab6, 1274 SCIM_KEY_fivesixths = 0xab7, 1275 SCIM_KEY_careof = 0xab8, 1276 SCIM_KEY_figdash = 0xabb, 1277 SCIM_KEY_leftanglebracket = 0xabc, 1278 SCIM_KEY_decimalpoint = 0xabd, 1279 SCIM_KEY_rightanglebracket = 0xabe, 1280 SCIM_KEY_marker = 0xabf, 1281 SCIM_KEY_oneeighth = 0xac3, 1282 SCIM_KEY_threeeighths = 0xac4, 1283 SCIM_KEY_fiveeighths = 0xac5, 1284 SCIM_KEY_seveneighths = 0xac6, 1285 SCIM_KEY_trademark = 0xac9, 1286 SCIM_KEY_signaturemark = 0xaca, 1287 SCIM_KEY_trademarkincircle = 0xacb, 1288 SCIM_KEY_leftopentriangle = 0xacc, 1289 SCIM_KEY_rightopentriangle = 0xacd, 1290 SCIM_KEY_emopencircle = 0xace, 1291 SCIM_KEY_emopenrectangle = 0xacf, 1292 SCIM_KEY_leftsinglequotemark = 0xad0, 1293 SCIM_KEY_rightsinglequotemark = 0xad1, 1294 SCIM_KEY_leftdoublequotemark = 0xad2, 1295 SCIM_KEY_rightdoublequotemark = 0xad3, 1296 SCIM_KEY_prescription = 0xad4, 1297 SCIM_KEY_minutes = 0xad6, 1298 SCIM_KEY_seconds = 0xad7, 1299 SCIM_KEY_latincross = 0xad9, 1300 SCIM_KEY_hexagram = 0xada, 1301 SCIM_KEY_filledrectbullet = 0xadb, 1302 SCIM_KEY_filledlefttribullet = 0xadc, 1303 SCIM_KEY_filledrighttribullet = 0xadd, 1304 SCIM_KEY_emfilledcircle = 0xade, 1305 SCIM_KEY_emfilledrect = 0xadf, 1306 SCIM_KEY_enopencircbullet = 0xae0, 1307 SCIM_KEY_enopensquarebullet = 0xae1, 1308 SCIM_KEY_openrectbullet = 0xae2, 1309 SCIM_KEY_opentribulletup = 0xae3, 1310 SCIM_KEY_opentribulletdown = 0xae4, 1311 SCIM_KEY_openstar = 0xae5, 1312 SCIM_KEY_enfilledcircbullet = 0xae6, 1313 SCIM_KEY_enfilledsqbullet = 0xae7, 1314 SCIM_KEY_filledtribulletup = 0xae8, 1315 SCIM_KEY_filledtribulletdown = 0xae9, 1316 SCIM_KEY_leftpointer = 0xaea, 1317 SCIM_KEY_rightpointer = 0xaeb, 1318 SCIM_KEY_club = 0xaec, 1319 SCIM_KEY_diamond = 0xaed, 1320 SCIM_KEY_heart = 0xaee, 1321 SCIM_KEY_maltesecross = 0xaf0, 1322 SCIM_KEY_dagger = 0xaf1, 1323 SCIM_KEY_doubledagger = 0xaf2, 1324 SCIM_KEY_checkmark = 0xaf3, 1325 SCIM_KEY_ballotcross = 0xaf4, 1326 SCIM_KEY_musicalsharp = 0xaf5, 1327 SCIM_KEY_musicalflat = 0xaf6, 1328 SCIM_KEY_malesymbol = 0xaf7, 1329 SCIM_KEY_femalesymbol = 0xaf8, 1330 SCIM_KEY_telephone = 0xaf9, 1331 SCIM_KEY_telephonerecorder = 0xafa, 1332 SCIM_KEY_phonographcopyright = 0xafb, 1333 SCIM_KEY_caret = 0xafc, 1334 SCIM_KEY_singlelowquotemark = 0xafd, 1335 SCIM_KEY_doublelowquotemark = 0xafe, 1336 SCIM_KEY_cursor = 0xaff, 1337 1338 /* 1339 * APL 1340 * Byte 3 = b 1341 */ 1342 SCIM_KEY_leftcaret = 0xba3, 1343 SCIM_KEY_rightcaret = 0xba6, 1344 SCIM_KEY_downcaret = 0xba8, 1345 SCIM_KEY_upcaret = 0xba9, 1346 SCIM_KEY_overbar = 0xbc0, 1347 SCIM_KEY_downtack = 0xbc2, 1348 SCIM_KEY_upshoe = 0xbc3, 1349 SCIM_KEY_downstile = 0xbc4, 1350 SCIM_KEY_underbar = 0xbc6, 1351 SCIM_KEY_jot = 0xbca, 1352 SCIM_KEY_quad = 0xbcc, 1353 SCIM_KEY_uptack = 0xbce, 1354 SCIM_KEY_circle = 0xbcf, 1355 SCIM_KEY_upstile = 0xbd3, 1356 SCIM_KEY_downshoe = 0xbd6, 1357 SCIM_KEY_rightshoe = 0xbd8, 1358 SCIM_KEY_leftshoe = 0xbda, 1359 SCIM_KEY_lefttack = 0xbdc, 1360 SCIM_KEY_righttack = 0xbfc, 1361 1362 /* 1363 * Hebrew 1364 * Byte 3 = c 1365 */ 1366 SCIM_KEY_hebrew_doublelowline = 0xcdf, 1367 SCIM_KEY_hebrew_aleph = 0xce0, 1368 SCIM_KEY_hebrew_bet = 0xce1, 1369 SCIM_KEY_hebrew_beth = 0xce1, /* deprecated */ 1370 SCIM_KEY_hebrew_gimel = 0xce2, 1371 SCIM_KEY_hebrew_gimmel = 0xce2, /* deprecated */ 1372 SCIM_KEY_hebrew_dalet = 0xce3, 1373 SCIM_KEY_hebrew_daleth = 0xce3, /* deprecated */ 1374 SCIM_KEY_hebrew_he = 0xce4, 1375 SCIM_KEY_hebrew_waw = 0xce5, 1376 SCIM_KEY_hebrew_zain = 0xce6, 1377 SCIM_KEY_hebrew_zayin = 0xce6, /* deprecated */ 1378 SCIM_KEY_hebrew_chet = 0xce7, 1379 SCIM_KEY_hebrew_het = 0xce7, /* deprecated */ 1380 SCIM_KEY_hebrew_tet = 0xce8, 1381 SCIM_KEY_hebrew_teth = 0xce8, /* deprecated */ 1382 SCIM_KEY_hebrew_yod = 0xce9, 1383 SCIM_KEY_hebrew_finalkaph = 0xcea, 1384 SCIM_KEY_hebrew_kaph = 0xceb, 1385 SCIM_KEY_hebrew_lamed = 0xcec, 1386 SCIM_KEY_hebrew_finalmem = 0xced, 1387 SCIM_KEY_hebrew_mem = 0xcee, 1388 SCIM_KEY_hebrew_finalnun = 0xcef, 1389 SCIM_KEY_hebrew_nun = 0xcf0, 1390 SCIM_KEY_hebrew_samech = 0xcf1, 1391 SCIM_KEY_hebrew_samekh = 0xcf1, /* deprecated */ 1392 SCIM_KEY_hebrew_ayin = 0xcf2, 1393 SCIM_KEY_hebrew_finalpe = 0xcf3, 1394 SCIM_KEY_hebrew_pe = 0xcf4, 1395 SCIM_KEY_hebrew_finalzade = 0xcf5, 1396 SCIM_KEY_hebrew_finalzadi = 0xcf5, /* deprecated */ 1397 SCIM_KEY_hebrew_zade = 0xcf6, 1398 SCIM_KEY_hebrew_zadi = 0xcf6, /* deprecated */ 1399 SCIM_KEY_hebrew_qoph = 0xcf7, 1400 SCIM_KEY_hebrew_kuf = 0xcf7, /* deprecated */ 1401 SCIM_KEY_hebrew_resh = 0xcf8, 1402 SCIM_KEY_hebrew_shin = 0xcf9, 1403 SCIM_KEY_hebrew_taw = 0xcfa, 1404 SCIM_KEY_hebrew_taf = 0xcfa, /* deprecated */ 1405 SCIM_KEY_Hebrew_switch = 0xFF7E, /* Alias for mode_switch */ 1406 1407 /* 1408 * Thai 1409 * Byte 3 = d 1410 */ 1411 SCIM_KEY_Thai_kokai = 0xda1, 1412 SCIM_KEY_Thai_khokhai = 0xda2, 1413 SCIM_KEY_Thai_khokhuat = 0xda3, 1414 SCIM_KEY_Thai_khokhwai = 0xda4, 1415 SCIM_KEY_Thai_khokhon = 0xda5, 1416 SCIM_KEY_Thai_khorakhang = 0xda6, 1417 SCIM_KEY_Thai_ngongu = 0xda7, 1418 SCIM_KEY_Thai_chochan = 0xda8, 1419 SCIM_KEY_Thai_choching = 0xda9, 1420 SCIM_KEY_Thai_chochang = 0xdaa, 1421 SCIM_KEY_Thai_soso = 0xdab, 1422 SCIM_KEY_Thai_chochoe = 0xdac, 1423 SCIM_KEY_Thai_yoying = 0xdad, 1424 SCIM_KEY_Thai_dochada = 0xdae, 1425 SCIM_KEY_Thai_topatak = 0xdaf, 1426 SCIM_KEY_Thai_thothan = 0xdb0, 1427 SCIM_KEY_Thai_thonangmontho = 0xdb1, 1428 SCIM_KEY_Thai_thophuthao = 0xdb2, 1429 SCIM_KEY_Thai_nonen = 0xdb3, 1430 SCIM_KEY_Thai_dodek = 0xdb4, 1431 SCIM_KEY_Thai_totao = 0xdb5, 1432 SCIM_KEY_Thai_thothung = 0xdb6, 1433 SCIM_KEY_Thai_thothahan = 0xdb7, 1434 SCIM_KEY_Thai_thothong = 0xdb8, 1435 SCIM_KEY_Thai_nonu = 0xdb9, 1436 SCIM_KEY_Thai_bobaimai = 0xdba, 1437 SCIM_KEY_Thai_popla = 0xdbb, 1438 SCIM_KEY_Thai_phophung = 0xdbc, 1439 SCIM_KEY_Thai_fofa = 0xdbd, 1440 SCIM_KEY_Thai_phophan = 0xdbe, 1441 SCIM_KEY_Thai_fofan = 0xdbf, 1442 SCIM_KEY_Thai_phosamphao = 0xdc0, 1443 SCIM_KEY_Thai_moma = 0xdc1, 1444 SCIM_KEY_Thai_yoyak = 0xdc2, 1445 SCIM_KEY_Thai_rorua = 0xdc3, 1446 SCIM_KEY_Thai_ru = 0xdc4, 1447 SCIM_KEY_Thai_loling = 0xdc5, 1448 SCIM_KEY_Thai_lu = 0xdc6, 1449 SCIM_KEY_Thai_wowaen = 0xdc7, 1450 SCIM_KEY_Thai_sosala = 0xdc8, 1451 SCIM_KEY_Thai_sorusi = 0xdc9, 1452 SCIM_KEY_Thai_sosua = 0xdca, 1453 SCIM_KEY_Thai_hohip = 0xdcb, 1454 SCIM_KEY_Thai_lochula = 0xdcc, 1455 SCIM_KEY_Thai_oang = 0xdcd, 1456 SCIM_KEY_Thai_honokhuk = 0xdce, 1457 SCIM_KEY_Thai_paiyannoi = 0xdcf, 1458 SCIM_KEY_Thai_saraa = 0xdd0, 1459 SCIM_KEY_Thai_maihanakat = 0xdd1, 1460 SCIM_KEY_Thai_saraaa = 0xdd2, 1461 SCIM_KEY_Thai_saraam = 0xdd3, 1462 SCIM_KEY_Thai_sarai = 0xdd4, 1463 SCIM_KEY_Thai_saraii = 0xdd5, 1464 SCIM_KEY_Thai_saraue = 0xdd6, 1465 SCIM_KEY_Thai_sarauee = 0xdd7, 1466 SCIM_KEY_Thai_sarau = 0xdd8, 1467 SCIM_KEY_Thai_sarauu = 0xdd9, 1468 SCIM_KEY_Thai_phinthu = 0xdda, 1469 SCIM_KEY_Thai_maihanakat_maitho = 0xdde, 1470 SCIM_KEY_Thai_baht = 0xddf, 1471 SCIM_KEY_Thai_sarae = 0xde0, 1472 SCIM_KEY_Thai_saraae = 0xde1, 1473 SCIM_KEY_Thai_sarao = 0xde2, 1474 SCIM_KEY_Thai_saraaimaimuan = 0xde3, 1475 SCIM_KEY_Thai_saraaimaimalai = 0xde4, 1476 SCIM_KEY_Thai_lakkhangyao = 0xde5, 1477 SCIM_KEY_Thai_maiyamok = 0xde6, 1478 SCIM_KEY_Thai_maitaikhu = 0xde7, 1479 SCIM_KEY_Thai_maiek = 0xde8, 1480 SCIM_KEY_Thai_maitho = 0xde9, 1481 SCIM_KEY_Thai_maitri = 0xdea, 1482 SCIM_KEY_Thai_maichattawa = 0xdeb, 1483 SCIM_KEY_Thai_thanthakhat = 0xdec, 1484 SCIM_KEY_Thai_nikhahit = 0xded, 1485 SCIM_KEY_Thai_leksun = 0xdf0, 1486 SCIM_KEY_Thai_leknung = 0xdf1, 1487 SCIM_KEY_Thai_leksong = 0xdf2, 1488 SCIM_KEY_Thai_leksam = 0xdf3, 1489 SCIM_KEY_Thai_leksi = 0xdf4, 1490 SCIM_KEY_Thai_lekha = 0xdf5, 1491 SCIM_KEY_Thai_lekhok = 0xdf6, 1492 SCIM_KEY_Thai_lekchet = 0xdf7, 1493 SCIM_KEY_Thai_lekpaet = 0xdf8, 1494 SCIM_KEY_Thai_lekkao = 0xdf9, 1495 1496 /* 1497 * Korean 1498 * Byte 3 = e 1499 */ 1500 SCIM_KEY_Hangul = 0xff31, /* Hangul start/stop(toggle) */ 1501 SCIM_KEY_Hangul_Start = 0xff32, /* Hangul start */ 1502 SCIM_KEY_Hangul_End = 0xff33, /* Hangul end, English start */ 1503 SCIM_KEY_Hangul_Hanja = 0xff34, /* Start Hangul->Hanja Conversion */ 1504 SCIM_KEY_Hangul_Jamo = 0xff35, /* Hangul Jamo mode */ 1505 SCIM_KEY_Hangul_Romaja = 0xff36, /* Hangul Romaja mode */ 1506 SCIM_KEY_Hangul_Codeinput = 0xff37, /* Hangul code input mode */ 1507 SCIM_KEY_Hangul_Jeonja = 0xff38, /* Jeonja mode */ 1508 SCIM_KEY_Hangul_Banja = 0xff39, /* Banja mode */ 1509 SCIM_KEY_Hangul_PreHanja = 0xff3a, /* Pre Hanja conversion */ 1510 SCIM_KEY_Hangul_PostHanja = 0xff3b, /* Post Hanja conversion */ 1511 SCIM_KEY_Hangul_SingleCandidate = 0xff3c, /* Single candidate */ 1512 SCIM_KEY_Hangul_MultipleCandidate = 0xff3d, /* Multiple candidate */ 1513 SCIM_KEY_Hangul_PreviousCandidate = 0xff3e, /* Previous candidate */ 1514 SCIM_KEY_Hangul_Special = 0xff3f, /* Special symbols */ 1515 SCIM_KEY_Hangul_switch = 0xFF7E, /* Alias for mode_switch */ 1516 1517 /* Hangul Consonant Characters */ 1518 SCIM_KEY_Hangul_Kiyeog = 0xea1, 1519 SCIM_KEY_Hangul_SsangKiyeog = 0xea2, 1520 SCIM_KEY_Hangul_KiyeogSios = 0xea3, 1521 SCIM_KEY_Hangul_Nieun = 0xea4, 1522 SCIM_KEY_Hangul_NieunJieuj = 0xea5, 1523 SCIM_KEY_Hangul_NieunHieuh = 0xea6, 1524 SCIM_KEY_Hangul_Dikeud = 0xea7, 1525 SCIM_KEY_Hangul_SsangDikeud = 0xea8, 1526 SCIM_KEY_Hangul_Rieul = 0xea9, 1527 SCIM_KEY_Hangul_RieulKiyeog = 0xeaa, 1528 SCIM_KEY_Hangul_RieulMieum = 0xeab, 1529 SCIM_KEY_Hangul_RieulPieub = 0xeac, 1530 SCIM_KEY_Hangul_RieulSios = 0xead, 1531 SCIM_KEY_Hangul_RieulTieut = 0xeae, 1532 SCIM_KEY_Hangul_RieulPhieuf = 0xeaf, 1533 SCIM_KEY_Hangul_RieulHieuh = 0xeb0, 1534 SCIM_KEY_Hangul_Mieum = 0xeb1, 1535 SCIM_KEY_Hangul_Pieub = 0xeb2, 1536 SCIM_KEY_Hangul_SsangPieub = 0xeb3, 1537 SCIM_KEY_Hangul_PieubSios = 0xeb4, 1538 SCIM_KEY_Hangul_Sios = 0xeb5, 1539 SCIM_KEY_Hangul_SsangSios = 0xeb6, 1540 SCIM_KEY_Hangul_Ieung = 0xeb7, 1541 SCIM_KEY_Hangul_Jieuj = 0xeb8, 1542 SCIM_KEY_Hangul_SsangJieuj = 0xeb9, 1543 SCIM_KEY_Hangul_Cieuc = 0xeba, 1544 SCIM_KEY_Hangul_Khieuq = 0xebb, 1545 SCIM_KEY_Hangul_Tieut = 0xebc, 1546 SCIM_KEY_Hangul_Phieuf = 0xebd, 1547 SCIM_KEY_Hangul_Hieuh = 0xebe, 1548 1549 /* Hangul Vowel Characters */ 1550 SCIM_KEY_Hangul_A = 0xebf, 1551 SCIM_KEY_Hangul_AE = 0xec0, 1552 SCIM_KEY_Hangul_YA = 0xec1, 1553 SCIM_KEY_Hangul_YAE = 0xec2, 1554 SCIM_KEY_Hangul_EO = 0xec3, 1555 SCIM_KEY_Hangul_E = 0xec4, 1556 SCIM_KEY_Hangul_YEO = 0xec5, 1557 SCIM_KEY_Hangul_YE = 0xec6, 1558 SCIM_KEY_Hangul_O = 0xec7, 1559 SCIM_KEY_Hangul_WA = 0xec8, 1560 SCIM_KEY_Hangul_WAE = 0xec9, 1561 SCIM_KEY_Hangul_OE = 0xeca, 1562 SCIM_KEY_Hangul_YO = 0xecb, 1563 SCIM_KEY_Hangul_U = 0xecc, 1564 SCIM_KEY_Hangul_WEO = 0xecd, 1565 SCIM_KEY_Hangul_WE = 0xece, 1566 SCIM_KEY_Hangul_WI = 0xecf, 1567 SCIM_KEY_Hangul_YU = 0xed0, 1568 SCIM_KEY_Hangul_EU = 0xed1, 1569 SCIM_KEY_Hangul_YI = 0xed2, 1570 SCIM_KEY_Hangul_I = 0xed3, 1571 1572 /* Hangul syllable-final (JongSeong) Characters */ 1573 SCIM_KEY_Hangul_J_Kiyeog = 0xed4, 1574 SCIM_KEY_Hangul_J_SsangKiyeog = 0xed5, 1575 SCIM_KEY_Hangul_J_KiyeogSios = 0xed6, 1576 SCIM_KEY_Hangul_J_Nieun = 0xed7, 1577 SCIM_KEY_Hangul_J_NieunJieuj = 0xed8, 1578 SCIM_KEY_Hangul_J_NieunHieuh = 0xed9, 1579 SCIM_KEY_Hangul_J_Dikeud = 0xeda, 1580 SCIM_KEY_Hangul_J_Rieul = 0xedb, 1581 SCIM_KEY_Hangul_J_RieulKiyeog = 0xedc, 1582 SCIM_KEY_Hangul_J_RieulMieum = 0xedd, 1583 SCIM_KEY_Hangul_J_RieulPieub = 0xede, 1584 SCIM_KEY_Hangul_J_RieulSios = 0xedf, 1585 SCIM_KEY_Hangul_J_RieulTieut = 0xee0, 1586 SCIM_KEY_Hangul_J_RieulPhieuf = 0xee1, 1587 SCIM_KEY_Hangul_J_RieulHieuh = 0xee2, 1588 SCIM_KEY_Hangul_J_Mieum = 0xee3, 1589 SCIM_KEY_Hangul_J_Pieub = 0xee4, 1590 SCIM_KEY_Hangul_J_PieubSios = 0xee5, 1591 SCIM_KEY_Hangul_J_Sios = 0xee6, 1592 SCIM_KEY_Hangul_J_SsangSios = 0xee7, 1593 SCIM_KEY_Hangul_J_Ieung = 0xee8, 1594 SCIM_KEY_Hangul_J_Jieuj = 0xee9, 1595 SCIM_KEY_Hangul_J_Cieuc = 0xeea, 1596 SCIM_KEY_Hangul_J_Khieuq = 0xeeb, 1597 SCIM_KEY_Hangul_J_Tieut = 0xeec, 1598 SCIM_KEY_Hangul_J_Phieuf = 0xeed, 1599 SCIM_KEY_Hangul_J_Hieuh = 0xeee, 1600 1601 /* Ancient Hangul Consonant Characters */ 1602 SCIM_KEY_Hangul_RieulYeorinHieuh = 0xeef, 1603 SCIM_KEY_Hangul_SunkyeongeumMieum = 0xef0, 1604 SCIM_KEY_Hangul_SunkyeongeumPieub = 0xef1, 1605 SCIM_KEY_Hangul_PanSios = 0xef2, 1606 SCIM_KEY_Hangul_KkogjiDalrinIeung = 0xef3, 1607 SCIM_KEY_Hangul_SunkyeongeumPhieuf = 0xef4, 1608 SCIM_KEY_Hangul_YeorinHieuh = 0xef5, 1609 1610 /* Ancient Hangul Vowel Characters */ 1611 SCIM_KEY_Hangul_AraeA = 0xef6, 1612 SCIM_KEY_Hangul_AraeAE = 0xef7, 1613 1614 /* Ancient Hangul syllable-final (JongSeong) Characters */ 1615 SCIM_KEY_Hangul_J_PanSios = 0xef8, 1616 SCIM_KEY_Hangul_J_KkogjiDalrinIeung = 0xef9, 1617 SCIM_KEY_Hangul_J_YeorinHieuh = 0xefa, 1618 1619 /* Korean currency symbol */ 1620 SCIM_KEY_Korean_Won = 0xeff, 1621 1622 1623 /* 1624 * Armenian 1625 * Byte 3 = 0x14 1626 */ 1627 SCIM_KEY_Armenian_eternity = 0x14a1, 1628 SCIM_KEY_Armenian_ligature_ew = 0x14a2, 1629 SCIM_KEY_Armenian_full_stop = 0x14a3, 1630 SCIM_KEY_Armenian_verjaket = 0x14a3, 1631 SCIM_KEY_Armenian_parenright = 0x14a4, 1632 SCIM_KEY_Armenian_parenleft = 0x14a5, 1633 SCIM_KEY_Armenian_guillemotright = 0x14a6, 1634 SCIM_KEY_Armenian_guillemotleft = 0x14a7, 1635 SCIM_KEY_Armenian_em_dash = 0x14a8, 1636 SCIM_KEY_Armenian_dot = 0x14a9, 1637 SCIM_KEY_Armenian_mijaket = 0x14a9, 1638 SCIM_KEY_Armenian_separation_mark = 0x14aa, 1639 SCIM_KEY_Armenian_but = 0x14aa, 1640 SCIM_KEY_Armenian_comma = 0x14ab, 1641 SCIM_KEY_Armenian_en_dash = 0x14ac, 1642 SCIM_KEY_Armenian_hyphen = 0x14ad, 1643 SCIM_KEY_Armenian_yentamna = 0x14ad, 1644 SCIM_KEY_Armenian_ellipsis = 0x14ae, 1645 SCIM_KEY_Armenian_exclam = 0x14af, 1646 SCIM_KEY_Armenian_amanak = 0x14af, 1647 SCIM_KEY_Armenian_accent = 0x14b0, 1648 SCIM_KEY_Armenian_shesht = 0x14b0, 1649 SCIM_KEY_Armenian_question = 0x14b1, 1650 SCIM_KEY_Armenian_paruyk = 0x14b1, 1651 SCIM_KEY_Armenian_AYB = 0x14b2, 1652 SCIM_KEY_Armenian_ayb = 0x14b3, 1653 SCIM_KEY_Armenian_BEN = 0x14b4, 1654 SCIM_KEY_Armenian_ben = 0x14b5, 1655 SCIM_KEY_Armenian_GIM = 0x14b6, 1656 SCIM_KEY_Armenian_gim = 0x14b7, 1657 SCIM_KEY_Armenian_DA = 0x14b8, 1658 SCIM_KEY_Armenian_da = 0x14b9, 1659 SCIM_KEY_Armenian_YECH = 0x14ba, 1660 SCIM_KEY_Armenian_yech = 0x14bb, 1661 SCIM_KEY_Armenian_ZA = 0x14bc, 1662 SCIM_KEY_Armenian_za = 0x14bd, 1663 SCIM_KEY_Armenian_E = 0x14be, 1664 SCIM_KEY_Armenian_e = 0x14bf, 1665 SCIM_KEY_Armenian_AT = 0x14c0, 1666 SCIM_KEY_Armenian_at = 0x14c1, 1667 SCIM_KEY_Armenian_TO = 0x14c2, 1668 SCIM_KEY_Armenian_to = 0x14c3, 1669 SCIM_KEY_Armenian_ZHE = 0x14c4, 1670 SCIM_KEY_Armenian_zhe = 0x14c5, 1671 SCIM_KEY_Armenian_INI = 0x14c6, 1672 SCIM_KEY_Armenian_ini = 0x14c7, 1673 SCIM_KEY_Armenian_LYUN = 0x14c8, 1674 SCIM_KEY_Armenian_lyun = 0x14c9, 1675 SCIM_KEY_Armenian_KHE = 0x14ca, 1676 SCIM_KEY_Armenian_khe = 0x14cb, 1677 SCIM_KEY_Armenian_TSA = 0x14cc, 1678 SCIM_KEY_Armenian_tsa = 0x14cd, 1679 SCIM_KEY_Armenian_KEN = 0x14ce, 1680 SCIM_KEY_Armenian_ken = 0x14cf, 1681 SCIM_KEY_Armenian_HO = 0x14d0, 1682 SCIM_KEY_Armenian_ho = 0x14d1, 1683 SCIM_KEY_Armenian_DZA = 0x14d2, 1684 SCIM_KEY_Armenian_dza = 0x14d3, 1685 SCIM_KEY_Armenian_GHAT = 0x14d4, 1686 SCIM_KEY_Armenian_ghat = 0x14d5, 1687 SCIM_KEY_Armenian_TCHE = 0x14d6, 1688 SCIM_KEY_Armenian_tche = 0x14d7, 1689 SCIM_KEY_Armenian_MEN = 0x14d8, 1690 SCIM_KEY_Armenian_men = 0x14d9, 1691 SCIM_KEY_Armenian_HI = 0x14da, 1692 SCIM_KEY_Armenian_hi = 0x14db, 1693 SCIM_KEY_Armenian_NU = 0x14dc, 1694 SCIM_KEY_Armenian_nu = 0x14dd, 1695 SCIM_KEY_Armenian_SHA = 0x14de, 1696 SCIM_KEY_Armenian_sha = 0x14df, 1697 SCIM_KEY_Armenian_VO = 0x14e0, 1698 SCIM_KEY_Armenian_vo = 0x14e1, 1699 SCIM_KEY_Armenian_CHA = 0x14e2, 1700 SCIM_KEY_Armenian_cha = 0x14e3, 1701 SCIM_KEY_Armenian_PE = 0x14e4, 1702 SCIM_KEY_Armenian_pe = 0x14e5, 1703 SCIM_KEY_Armenian_JE = 0x14e6, 1704 SCIM_KEY_Armenian_je = 0x14e7, 1705 SCIM_KEY_Armenian_RA = 0x14e8, 1706 SCIM_KEY_Armenian_ra = 0x14e9, 1707 SCIM_KEY_Armenian_SE = 0x14ea, 1708 SCIM_KEY_Armenian_se = 0x14eb, 1709 SCIM_KEY_Armenian_VEV = 0x14ec, 1710 SCIM_KEY_Armenian_vev = 0x14ed, 1711 SCIM_KEY_Armenian_TYUN = 0x14ee, 1712 SCIM_KEY_Armenian_tyun = 0x14ef, 1713 SCIM_KEY_Armenian_RE = 0x14f0, 1714 SCIM_KEY_Armenian_re = 0x14f1, 1715 SCIM_KEY_Armenian_TSO = 0x14f2, 1716 SCIM_KEY_Armenian_tso = 0x14f3, 1717 SCIM_KEY_Armenian_VYUN = 0x14f4, 1718 SCIM_KEY_Armenian_vyun = 0x14f5, 1719 SCIM_KEY_Armenian_PYUR = 0x14f6, 1720 SCIM_KEY_Armenian_pyur = 0x14f7, 1721 SCIM_KEY_Armenian_KE = 0x14f8, 1722 SCIM_KEY_Armenian_ke = 0x14f9, 1723 SCIM_KEY_Armenian_O = 0x14fa, 1724 SCIM_KEY_Armenian_o = 0x14fb, 1725 SCIM_KEY_Armenian_FE = 0x14fc, 1726 SCIM_KEY_Armenian_fe = 0x14fd, 1727 SCIM_KEY_Armenian_apostrophe = 0x14fe, 1728 SCIM_KEY_Armenian_section_sign = 0x14ff, 1729 1730 /* 1731 * Georgian 1732 * Byte 3 = 0x15 1733 */ 1734 1735 SCIM_KEY_Georgian_an = 0x15d0, 1736 SCIM_KEY_Georgian_ban = 0x15d1, 1737 SCIM_KEY_Georgian_gan = 0x15d2, 1738 SCIM_KEY_Georgian_don = 0x15d3, 1739 SCIM_KEY_Georgian_en = 0x15d4, 1740 SCIM_KEY_Georgian_vin = 0x15d5, 1741 SCIM_KEY_Georgian_zen = 0x15d6, 1742 SCIM_KEY_Georgian_tan = 0x15d7, 1743 SCIM_KEY_Georgian_in = 0x15d8, 1744 SCIM_KEY_Georgian_kan = 0x15d9, 1745 SCIM_KEY_Georgian_las = 0x15da, 1746 SCIM_KEY_Georgian_man = 0x15db, 1747 SCIM_KEY_Georgian_nar = 0x15dc, 1748 SCIM_KEY_Georgian_on = 0x15dd, 1749 SCIM_KEY_Georgian_par = 0x15de, 1750 SCIM_KEY_Georgian_zhar = 0x15df, 1751 SCIM_KEY_Georgian_rae = 0x15e0, 1752 SCIM_KEY_Georgian_san = 0x15e1, 1753 SCIM_KEY_Georgian_tar = 0x15e2, 1754 SCIM_KEY_Georgian_un = 0x15e3, 1755 SCIM_KEY_Georgian_phar = 0x15e4, 1756 SCIM_KEY_Georgian_khar = 0x15e5, 1757 SCIM_KEY_Georgian_ghan = 0x15e6, 1758 SCIM_KEY_Georgian_qar = 0x15e7, 1759 SCIM_KEY_Georgian_shin = 0x15e8, 1760 SCIM_KEY_Georgian_chin = 0x15e9, 1761 SCIM_KEY_Georgian_can = 0x15ea, 1762 SCIM_KEY_Georgian_jil = 0x15eb, 1763 SCIM_KEY_Georgian_cil = 0x15ec, 1764 SCIM_KEY_Georgian_char = 0x15ed, 1765 SCIM_KEY_Georgian_xan = 0x15ee, 1766 SCIM_KEY_Georgian_jhan = 0x15ef, 1767 SCIM_KEY_Georgian_hae = 0x15f0, 1768 SCIM_KEY_Georgian_he = 0x15f1, 1769 SCIM_KEY_Georgian_hie = 0x15f2, 1770 SCIM_KEY_Georgian_we = 0x15f3, 1771 SCIM_KEY_Georgian_har = 0x15f4, 1772 SCIM_KEY_Georgian_hoe = 0x15f5, 1773 SCIM_KEY_Georgian_fi = 0x15f6, 1774 1775 /* 1776 * Azeri (and other Turkic or Caucasian languages of ex-USSR) 1777 * Byte 3 = 0x16 1778 */ 1779 1780 /* latin */ 1781 SCIM_KEY_Ccedillaabovedot = 0x16a2, 1782 SCIM_KEY_Xabovedot = 0x16a3, 1783 SCIM_KEY_Qabovedot = 0x16a5, 1784 SCIM_KEY_Ibreve = 0x16a6, 1785 SCIM_KEY_IE = 0x16a7, 1786 SCIM_KEY_UO = 0x16a8, 1787 SCIM_KEY_Zstroke = 0x16a9, 1788 SCIM_KEY_Gcaron = 0x16aa, 1789 SCIM_KEY_Obarred = 0x16af, 1790 SCIM_KEY_ccedillaabovedot = 0x16b2, 1791 SCIM_KEY_xabovedot = 0x16b3, 1792 SCIM_KEY_Ocaron = 0x16b4, 1793 SCIM_KEY_qabovedot = 0x16b5, 1794 SCIM_KEY_ibreve = 0x16b6, 1795 SCIM_KEY_ie = 0x16b7, 1796 SCIM_KEY_uo = 0x16b8, 1797 SCIM_KEY_zstroke = 0x16b9, 1798 SCIM_KEY_gcaron = 0x16ba, 1799 SCIM_KEY_ocaron = 0x16bd, 1800 SCIM_KEY_obarred = 0x16bf, 1801 SCIM_KEY_SCHWA = 0x16c6, 1802 SCIM_KEY_schwa = 0x16f6, 1803 /* those are not really Caucasus, but I put them here for now */ 1804 /* For Inupiak */ 1805 SCIM_KEY_Lbelowdot = 0x16d1, 1806 SCIM_KEY_Lstrokebelowdot = 0x16d2, 1807 SCIM_KEY_lbelowdot = 0x16e1, 1808 SCIM_KEY_lstrokebelowdot = 0x16e2, 1809 /* For Guarani */ 1810 SCIM_KEY_Gtilde = 0x16d3, 1811 SCIM_KEY_gtilde = 0x16e3, 1812 1813 /* 1814 * Vietnamese 1815 * Byte 3 = 0x1e 1816 */ 1817 1818 SCIM_KEY_Abelowdot = 0x1ea0, 1819 SCIM_KEY_abelowdot = 0x1ea1, 1820 SCIM_KEY_Ahook = 0x1ea2, 1821 SCIM_KEY_ahook = 0x1ea3, 1822 SCIM_KEY_Acircumflexacute = 0x1ea4, 1823 SCIM_KEY_acircumflexacute = 0x1ea5, 1824 SCIM_KEY_Acircumflexgrave = 0x1ea6, 1825 SCIM_KEY_acircumflexgrave = 0x1ea7, 1826 SCIM_KEY_Acircumflexhook = 0x1ea8, 1827 SCIM_KEY_acircumflexhook = 0x1ea9, 1828 SCIM_KEY_Acircumflextilde = 0x1eaa, 1829 SCIM_KEY_acircumflextilde = 0x1eab, 1830 SCIM_KEY_Acircumflexbelowdot = 0x1eac, 1831 SCIM_KEY_acircumflexbelowdot = 0x1ead, 1832 SCIM_KEY_Abreveacute = 0x1eae, 1833 SCIM_KEY_abreveacute = 0x1eaf, 1834 SCIM_KEY_Abrevegrave = 0x1eb0, 1835 SCIM_KEY_abrevegrave = 0x1eb1, 1836 SCIM_KEY_Abrevehook = 0x1eb2, 1837 SCIM_KEY_abrevehook = 0x1eb3, 1838 SCIM_KEY_Abrevetilde = 0x1eb4, 1839 SCIM_KEY_abrevetilde = 0x1eb5, 1840 SCIM_KEY_Abrevebelowdot = 0x1eb6, 1841 SCIM_KEY_abrevebelowdot = 0x1eb7, 1842 SCIM_KEY_Ebelowdot = 0x1eb8, 1843 SCIM_KEY_ebelowdot = 0x1eb9, 1844 SCIM_KEY_Ehook = 0x1eba, 1845 SCIM_KEY_ehook = 0x1ebb, 1846 SCIM_KEY_Etilde = 0x1ebc, 1847 SCIM_KEY_etilde = 0x1ebd, 1848 SCIM_KEY_Ecircumflexacute = 0x1ebe, 1849 SCIM_KEY_ecircumflexacute = 0x1ebf, 1850 SCIM_KEY_Ecircumflexgrave = 0x1ec0, 1851 SCIM_KEY_ecircumflexgrave = 0x1ec1, 1852 SCIM_KEY_Ecircumflexhook = 0x1ec2, 1853 SCIM_KEY_ecircumflexhook = 0x1ec3, 1854 SCIM_KEY_Ecircumflextilde = 0x1ec4, 1855 SCIM_KEY_ecircumflextilde = 0x1ec5, 1856 SCIM_KEY_Ecircumflexbelowdot = 0x1ec6, 1857 SCIM_KEY_ecircumflexbelowdot = 0x1ec7, 1858 SCIM_KEY_Ihook = 0x1ec8, 1859 SCIM_KEY_ihook = 0x1ec9, 1860 SCIM_KEY_Ibelowdot = 0x1eca, 1861 SCIM_KEY_ibelowdot = 0x1ecb, 1862 SCIM_KEY_Obelowdot = 0x1ecc, 1863 SCIM_KEY_obelowdot = 0x1ecd, 1864 SCIM_KEY_Ohook = 0x1ece, 1865 SCIM_KEY_ohook = 0x1ecf, 1866 SCIM_KEY_Ocircumflexacute = 0x1ed0, 1867 SCIM_KEY_ocircumflexacute = 0x1ed1, 1868 SCIM_KEY_Ocircumflexgrave = 0x1ed2, 1869 SCIM_KEY_ocircumflexgrave = 0x1ed3, 1870 SCIM_KEY_Ocircumflexhook = 0x1ed4, 1871 SCIM_KEY_ocircumflexhook = 0x1ed5, 1872 SCIM_KEY_Ocircumflextilde = 0x1ed6, 1873 SCIM_KEY_ocircumflextilde = 0x1ed7, 1874 SCIM_KEY_Ocircumflexbelowdot = 0x1ed8, 1875 SCIM_KEY_ocircumflexbelowdot = 0x1ed9, 1876 SCIM_KEY_Ohornacute = 0x1eda, 1877 SCIM_KEY_ohornacute = 0x1edb, 1878 SCIM_KEY_Ohorngrave = 0x1edc, 1879 SCIM_KEY_ohorngrave = 0x1edd, 1880 SCIM_KEY_Ohornhook = 0x1ede, 1881 SCIM_KEY_ohornhook = 0x1edf, 1882 SCIM_KEY_Ohorntilde = 0x1ee0, 1883 SCIM_KEY_ohorntilde = 0x1ee1, 1884 SCIM_KEY_Ohornbelowdot = 0x1ee2, 1885 SCIM_KEY_ohornbelowdot = 0x1ee3, 1886 SCIM_KEY_Ubelowdot = 0x1ee4, 1887 SCIM_KEY_ubelowdot = 0x1ee5, 1888 SCIM_KEY_Uhook = 0x1ee6, 1889 SCIM_KEY_uhook = 0x1ee7, 1890 SCIM_KEY_Uhornacute = 0x1ee8, 1891 SCIM_KEY_uhornacute = 0x1ee9, 1892 SCIM_KEY_Uhorngrave = 0x1eea, 1893 SCIM_KEY_uhorngrave = 0x1eeb, 1894 SCIM_KEY_Uhornhook = 0x1eec, 1895 SCIM_KEY_uhornhook = 0x1eed, 1896 SCIM_KEY_Uhorntilde = 0x1eee, 1897 SCIM_KEY_uhorntilde = 0x1eef, 1898 SCIM_KEY_Uhornbelowdot = 0x1ef0, 1899 SCIM_KEY_uhornbelowdot = 0x1ef1, 1900 SCIM_KEY_Ybelowdot = 0x1ef4, 1901 SCIM_KEY_ybelowdot = 0x1ef5, 1902 SCIM_KEY_Yhook = 0x1ef6, 1903 SCIM_KEY_yhook = 0x1ef7, 1904 SCIM_KEY_Ytilde = 0x1ef8, 1905 SCIM_KEY_ytilde = 0x1ef9, 1906 SCIM_KEY_Ohorn = 0x1efa, /* U+01a0 */ 1907 SCIM_KEY_ohorn = 0x1efb, /* U+01a1 */ 1908 SCIM_KEY_Uhorn = 0x1efc, /* U+01af */ 1909 SCIM_KEY_uhorn = 0x1efd, /* U+01b0 */ 1910 1911 SCIM_KEY_combining_tilde = 0x1e9f, /* U+0303 */ 1912 SCIM_KEY_combining_grave = 0x1ef2, /* U+0300 */ 1913 SCIM_KEY_combining_acute = 0x1ef3, /* U+0301 */ 1914 SCIM_KEY_combining_hook = 0x1efe, /* U+0309 */ 1915 SCIM_KEY_combining_belowdot = 0x1eff, /* U+0323 */ 1916 1917 SCIM_KEY_EcuSign = 0x20a0, 1918 SCIM_KEY_ColonSign = 0x20a1, 1919 SCIM_KEY_CruzeiroSign = 0x20a2, 1920 SCIM_KEY_FFrancSign = 0x20a3, 1921 SCIM_KEY_LiraSign = 0x20a4, 1922 SCIM_KEY_MillSign = 0x20a5, 1923 SCIM_KEY_NairaSign = 0x20a6, 1924 SCIM_KEY_PesetaSign = 0x20a7, 1925 SCIM_KEY_RupeeSign = 0x20a8, 1926 SCIM_KEY_WonSign = 0x20a9, 1927 SCIM_KEY_NewSheqelSign = 0x20aa, 1928 SCIM_KEY_DongSign = 0x20ab, 1929 SCIM_KEY_EuroSign = 0x20ac 1930 }; 1931 1932 /** 1933 * @brief Enum values of all valid Keyboard Layout type. 1934 * 1935 * This types are used by the Keyboard Layout mapping 1936 * function of KeyEvent class to map a KeyEvent of a 1937 * certain Keyboard Layout to another. 1938 * 1939 * But this function only covers the key range of 1940 * default US PC keyboard. All additional keys 1941 * in other layouts will never be mapped. 1942 * 1943 * The default layout is standard US PC keyboard. 1944 * 1945 * If the layout of a KeyEvent is Unknown, then it'll never 1946 * be mapped. 1947 */ 1948 enum KeyboardLayout 1949 { 1950 SCIM_KEYBOARD_Unknown = 0, 1951 SCIM_KEYBOARD_Default = 1, 1952 SCIM_KEYBOARD_US = 1, 1953 SCIM_KEYBOARD_Belgian = 2, 1954 SCIM_KEYBOARD_Croatian = 3, 1955 SCIM_KEYBOARD_Czech = 4, 1956 SCIM_KEYBOARD_Czech_Qwerty = 5, 1957 SCIM_KEYBOARD_Danish = 6, 1958 SCIM_KEYBOARD_Dutch = 7, 1959 SCIM_KEYBOARD_Dvorak = 8, 1960 SCIM_KEYBOARD_Estonian = 9, 1961 SCIM_KEYBOARD_Finnish = 10, 1962 SCIM_KEYBOARD_French = 11, 1963 SCIM_KEYBOARD_French_Canadian = 12, 1964 SCIM_KEYBOARD_French_Switzerland = 13, 1965 SCIM_KEYBOARD_German = 14, 1966 SCIM_KEYBOARD_German_Deadkeys = 15, 1967 SCIM_KEYBOARD_German_Swiss = 16, 1968 SCIM_KEYBOARD_Greek = 17, 1969 SCIM_KEYBOARD_Hungarian = 18, 1970 SCIM_KEYBOARD_Italian = 19, 1971 SCIM_KEYBOARD_Japanese = 20, 1972 SCIM_KEYBOARD_Norwegian = 21, 1973 SCIM_KEYBOARD_Polish = 22, 1974 SCIM_KEYBOARD_Portuguese = 23, 1975 SCIM_KEYBOARD_Portuguese_Brazil = 24, 1976 SCIM_KEYBOARD_Portuguese_Brazil_US_Accents = 25, 1977 SCIM_KEYBOARD_Russian = 26, 1978 SCIM_KEYBOARD_Slovak = 27, 1979 SCIM_KEYBOARD_Slovak_Qwerty = 28, 1980 SCIM_KEYBOARD_Slovene = 29, 1981 SCIM_KEYBOARD_Spanish = 30, 1982 SCIM_KEYBOARD_Spanish_CP850 = 31, 1983 SCIM_KEYBOARD_Spanish_Latin_America = 32, 1984 SCIM_KEYBOARD_Swedish = 33, 1985 SCIM_KEYBOARD_Turkish = 34, 1986 SCIM_KEYBOARD_UK = 35, 1987 SCIM_KEYBOARD_Icelandic = 36, 1988 SCIM_KEYBOARD_Lithuanian = 37, 1989 SCIM_KEYBOARD_Ukrainian = 38, 1990 SCIM_KEYBOARD_NUM_LAYOUTS = 39 1991 }; 1992 1993 struct KeyEvent; 1994 1995 /** 1996 * @typedef typedef std::vector<KeyEvent> KeyEventList 1997 * @brief The container to store a set of KeyEvent objects. 1998 * 1999 * You should use the STL container methods to manipulate its objects. 2000 */ 2001 typedef std::vector<KeyEvent> KeyEventList; 2002 2003 /** 2004 * @brief Convert a key event to a string. 2005 * @param str - the result string will be stored here. 2006 * @param key - the KeyEvent to be converted. 2007 * @return true if success. 2008 */ 2009 bool scim_key_to_string (String &str, const KeyEvent & key); 2010 2011 /** 2012 * @brief Convert a string to a KeyEvent. 2013 * @param key - the result KeyEvent will be stored here. 2014 * @param str - the string to be converted. 2015 * @return true if success. 2016 */ 2017 bool scim_string_to_key (KeyEvent &key, const String & str); 2018 2019 /** 2020 * @brief Convert a set of KeyEvents to a string. 2021 * @param str - the result string will be stored here. 2022 * @param keylist - the keys to be converted. 2023 * @return true if success. 2024 */ 2025 bool scim_key_list_to_string (String &str, const KeyEventList & keylist); 2026 2027 /** 2028 * @brief Covnert a string to a set of KeyEvents. 2029 * @param keylist - the result KeyEvents will be stored here. 2030 * @param str - the string to be converted. 2031 * @return true if success. 2032 */ 2033 bool scim_string_to_key_list (KeyEventList &keylist, const String &str); 2034 2035 /** 2036 * @brief Convert a Keyboard Layout enum value to its String name. 2037 * @param layout The Keyboard Layout type. 2038 * @return The name of this layout. 2039 */ 2040 String scim_keyboard_layout_to_string (KeyboardLayout layout); 2041 2042 /** 2043 * @brief Convert a String name to the corresponding Keyboard Layout value. 2044 * @param str The Keyboard Layout name. 2045 * @return The Keyboard Layout type corresponding to this name, or SCIM_KEYBOARD_Unknown. 2046 */ 2047 KeyboardLayout scim_string_to_keyboard_layout (const String &str); 2048 2049 /** 2050 * @brief Get the display name of a Keyboard Layout enum value. 2051 * @param layout The Keyboard Layout type. 2052 * @return The localized display name of this layout. 2053 */ 2054 String scim_keyboard_layout_get_display_name (KeyboardLayout layout); 2055 2056 /** 2057 * @brief Get default Keyboard Layout setting. 2058 * 2059 * This function return the Keyboard Layout setting stored 2060 * in global config repository as /DefaultKeyboardLayout key. 2061 * 2062 * This function is mainly used by FrontEnds and Setup tools. 2063 * IMEngines should not use it. 2064 */ 2065 KeyboardLayout scim_get_default_keyboard_layout (); 2066 2067 /** 2068 * @brief Change the default Keyboard Layout setting. 2069 * 2070 * The default layout setting will be stored in global config 2071 * repository as /DefaultKeyboardLayout key. 2072 * 2073 * This function is mainly used by FrontEnds and Setup tools. 2074 * IMEngines should not use it. 2075 */ 2076 void scim_set_default_keyboard_layout (KeyboardLayout layout); 2077 2078 /** 2079 * @brief The class to store a keyboard event. 2080 * 2081 * A keyboard event contains a key code and a set of key masks. 2082 * The key masks indicate which modifier keys are pressed down and 2083 * if it's a key release event. 2084 * 2085 * It also contains the Keyboard Layout information. IMEngines can 2086 * map a KeyEvent to another layout by calling method #map_to_layout(). 2087 */ 2088 struct KeyEvent 2089 { 2090 uint32 code; /**< key code */ 2091 uint16 mask; /**< modifier keys' mask */ 2092 uint16 layout; /**< keyboard layout identifier */ 2093 2094 /** 2095 * @brief Default constructor. 2096 * @param c - the key code. 2097 * @param m - the key masks. 2098 * @param l - the keyboard layout 2099 */ 2100 KeyEvent (uint32 c = 0, uint16 m = 0, uint16 l = 0) codeKeyEvent2101 : code (c), mask (m), layout (l) { } 2102 2103 /** 2104 * @brief Constructor, construct a key event from a string. 2105 * 2106 * @param str the key string, eg. "Control+space" 2107 */ KeyEventKeyEvent2108 KeyEvent (const String &str) 2109 : code (0), mask (0), layout (0) { scim_string_to_key (*this, str); } 2110 2111 /** 2112 * @brief Check if this KeyEvent is empty. 2113 * @return true if this is a empty event. 2114 */ emptyKeyEvent2115 bool empty () const { return mask == 0 && code == 0; } 2116 2117 /** 2118 * @brief Get the ascii code of this key event. 2119 * 2120 * Not all key events have ascii codes. 2121 * 2122 * @return the ascii code of this key event. 2123 * Zero means no ascii code. 2124 */ 2125 char get_ascii_code () const; 2126 2127 /** 2128 * @brief Get the Unicode code of this key event. 2129 * 2130 * Not all key events have unicode codes. 2131 * 2132 * @return The Unicode code of this key event. 2133 * Zero means no unicode code. 2134 */ 2135 ucs4_t get_unicode_code () const; 2136 2137 /** 2138 * @brief Get the string of this key event. 2139 * 2140 * Not all key events can be converted to string. 2141 * 2142 * @return The string of this key event. 2143 */ 2144 String get_key_string () const; 2145 2146 /** 2147 * @brief Map this KeyEvent to another Keyboard Layout. 2148 * 2149 * This function only covers the key range of 2150 * default US PC keyboard. All additional keys 2151 * in other layouts will never be mapped. 2152 * 2153 * If the current layout is Unknown or the new_layout is 2154 * invalid or it's an Unicode embedded KeyEvent, 2155 * then it'll not be mapped and the identical KeyEvent 2156 * will be returned. 2157 * 2158 * If you want to check if the mapping is successful, 2159 * just compare the layout of returned KeyEvent and new_layout 2160 * to see if they are equal. 2161 * 2162 * @param new_layout The Keyboard Layout to be mapped to. 2163 * 2164 * @return The new KeyEvent according to the given layout. 2165 */ 2166 KeyEvent map_to_layout (KeyboardLayout new_layout) const; 2167 2168 /** 2169 * @brief Check if the Shift key is pressed down. 2170 */ is_shift_downKeyEvent2171 bool is_shift_down () const { return (mask & SCIM_KEY_ShiftMask) != 0; } 2172 2173 /** 2174 * @brief Check if the CapsLock key is pressed down. 2175 */ is_caps_lock_downKeyEvent2176 bool is_caps_lock_down () const { return (mask & SCIM_KEY_CapsLockMask) != 0; } 2177 2178 /** 2179 * @brief Check if the Ctrl key is pressed down. 2180 */ is_control_downKeyEvent2181 bool is_control_down () const { return (mask & SCIM_KEY_ControlMask) != 0; } 2182 2183 /** 2184 * @brief Check if the Alt key is pressed down. 2185 */ is_alt_downKeyEvent2186 bool is_alt_down () const { return (mask & SCIM_KEY_AltMask) != 0; } 2187 2188 /** 2189 * @brief Check if the Meta key is pressed down. 2190 */ is_meta_downKeyEvent2191 bool is_meta_down () const { return (mask & SCIM_KEY_MetaMask) != 0; } 2192 2193 /** 2194 * @brief Check if the Super key is pressed down. 2195 */ is_super_downKeyEvent2196 bool is_super_down () const { return (mask & SCIM_KEY_SuperMask) != 0; } 2197 2198 /** 2199 * @brief Check if the Hyper key is pressed down. 2200 */ is_hyper_downKeyEvent2201 bool is_hyper_down () const { return (mask & SCIM_KEY_HyperMask) != 0; } 2202 2203 /** 2204 * @brief Check if the num lock key is pressed down. 2205 */ is_num_lock_downKeyEvent2206 bool is_num_lock_down () const { return (mask & SCIM_KEY_NumLockMask) != 0; } 2207 2208 /** 2209 * @brief Check if it's a key press event. 2210 */ is_key_pressKeyEvent2211 bool is_key_press () const { return (mask & SCIM_KEY_ReleaseMask) == 0; } 2212 2213 /** 2214 * @brief Check if it's a key release event. 2215 */ is_key_releaseKeyEvent2216 bool is_key_release () const { return (mask & SCIM_KEY_ReleaseMask) != 0; } 2217 2218 /** 2219 * @brief Compare two key events. 2220 * @return true if they are equal. 2221 */ 2222 bool operator == (const KeyEvent & key) const { 2223 return code == key.code && mask == key.mask; 2224 } 2225 2226 /** 2227 * @brief Compare two key events. 2228 * @return true if they are not equal. 2229 */ 2230 bool operator != (const KeyEvent & key) const { 2231 return code != key.code || mask != key.mask; 2232 } 2233 2234 /** 2235 * @brief Compare two key events. 2236 * 2237 * This operator is mainly for sorting. 2238 * 2239 * @return true if the first is smaller. 2240 */ 2241 bool operator < (const KeyEvent & key) const { 2242 return code < key.code || (code == key.code && mask < key.mask); 2243 } 2244 2245 2246 /** 2247 * @brief Check if the lock key is pressed down. 2248 * 2249 * For backward API compatibility, do not use it in new code. 2250 */ is_lock_downKeyEvent2251 bool is_lock_down () const { return (mask & SCIM_KEY_LockMask) != 0; } 2252 2253 /** 2254 * @brief Check if the mod1 key is pressed down. 2255 * 2256 * For backward API compatibility, do not use it in new code. 2257 */ is_mod1_downKeyEvent2258 bool is_mod1_down () const { return (mask & SCIM_KEY_Mod1Mask) != 0; } 2259 2260 /** 2261 * @brief Check if the mod2 key is pressed down. 2262 * 2263 * For backward API compatibility, do not use it in new code. 2264 */ is_mod2_downKeyEvent2265 bool is_mod2_down () const { return (mask & SCIM_KEY_Mod2Mask) != 0; } 2266 2267 /** 2268 * @brief Check if the mod3 key is pressed down. 2269 * 2270 * For backward API compatibility, do not use it in new code. 2271 */ is_mod3_downKeyEvent2272 bool is_mod3_down () const { return (mask & SCIM_KEY_Mod3Mask) != 0; } 2273 2274 /** 2275 * @brief Check if the mod4 key is pressed down. 2276 * 2277 * For backward API compatibility, do not use it in new code. 2278 */ is_mod4_downKeyEvent2279 bool is_mod4_down () const { return (mask & SCIM_KEY_Mod4Mask) != 0; } 2280 2281 /** 2282 * @brief Check if the mod5 key is pressed down. 2283 * 2284 * For backward API compatibility, do not use it in new code. 2285 */ is_mod5_downKeyEvent2286 bool is_mod5_down () const { return (mask & SCIM_KEY_Mod5Mask) != 0; } 2287 2288 /** 2289 * @brief Check if the scroll lock key is pressed down. 2290 * 2291 * For backward API compatibility, do not use it in new code. 2292 */ is_scroll_lock_downKeyEvent2293 bool is_scroll_lock_down () const { return (mask & SCIM_KEY_ScrollLockMask) != 0; } 2294 2295 }; 2296 2297 /** @} */ 2298 2299 } // namespace scim 2300 2301 #endif //__SCIM_EVENT_H 2302 2303 /* 2304 vi:ts=4:nowrap:ai:expandtab 2305 */ 2306 2307