From 77a576636706aa8fb7e5c65b11f1b97a1be8dd32 Mon Sep 17 00:00:00 2001 From: Salvador Diaz Fau Date: Thu, 28 Jan 2021 19:29:04 +0100 Subject: [PATCH] Added keyboard support to the FMXExternalPumpBrowser2 demo in Linux thanks to Christoph Schneider Moved most of the Linux constants, types and functions to new units. --- .../uFMXExternalPumpBrowser2.fmx | 1 + .../uFMXExternalPumpBrowser2.pas | 70 +- .../Lazarus_Linux/MiniBrowser/MiniBrowser.lps | 12 +- .../MiniBrowser/uMiniBrowser.pas | 2 +- .../OSRExternalPumpBrowser.lps | 113 +- .../uosrexternalpumpbrowser.pas | 3 +- .../SimpleOSRBrowser/SimpleOSRBrowser.lps | 10 +- .../SimpleOSRBrowser/usimpleosrbrowser.pas | 2 +- packages/CEF4Delphi_FMX.dpk | 5 +- packages/cef4delphi_lazarus.lpk | 14 +- packages/cef4delphi_lazarus.pas | 2 +- source/uCEFApplicationCore.pas | 2 +- source/uCEFConstants.pas | 1620 ------- source/uCEFLinuxConstants.pas | 4045 +++++++++++++++++ source/uCEFLinuxFunctions.pas | 640 +++ source/uCEFLinuxTypes.pas | 130 + source/uCEFMiscFunctions.pas | 579 +-- source/uCEFTypes.pas | 25 + update_CEF4Delphi.json | 2 +- 19 files changed, 4992 insertions(+), 2285 deletions(-) create mode 100644 source/uCEFLinuxConstants.pas create mode 100644 source/uCEFLinuxFunctions.pas create mode 100644 source/uCEFLinuxTypes.pas diff --git a/demos/Delphi_FMX/FMXExternalPumpBrowser2/uFMXExternalPumpBrowser2.fmx b/demos/Delphi_FMX/FMXExternalPumpBrowser2/uFMXExternalPumpBrowser2.fmx index 143e463f..465c3fde 100644 --- a/demos/Delphi_FMX/FMXExternalPumpBrowser2/uFMXExternalPumpBrowser2.fmx +++ b/demos/Delphi_FMX/FMXExternalPumpBrowser2/uFMXExternalPumpBrowser2.fmx @@ -125,6 +125,7 @@ object FMXExternalPumpBrowserFrm: TFMXExternalPumpBrowserFrm OnLoadError = chrmosrLoadError OnLoadingStateChange = chrmosrLoadingStateChange OnTooltip = chrmosrTooltip + OnCursorChange = chrmosrCursorChange OnBeforePopup = chrmosrBeforePopup OnAfterCreated = chrmosrAfterCreated OnBeforeClose = chrmosrBeforeClose diff --git a/demos/Delphi_FMX/FMXExternalPumpBrowser2/uFMXExternalPumpBrowser2.pas b/demos/Delphi_FMX/FMXExternalPumpBrowser2/uFMXExternalPumpBrowser2.pas index 75044bfd..c6e28d0f 100644 --- a/demos/Delphi_FMX/FMXExternalPumpBrowser2/uFMXExternalPumpBrowser2.pas +++ b/demos/Delphi_FMX/FMXExternalPumpBrowser2/uFMXExternalPumpBrowser2.pas @@ -49,16 +49,6 @@ uses uCEFInterfaces, uCEFTypes, uCEFConstants, uCEFChromiumCore; type - PRGBQuad = ^TRGBQuad; - tagRGBQUAD = record - rgbBlue: Byte; - rgbGreen: Byte; - rgbRed: Byte; - rgbReserved: Byte; - end; - TRGBQuad = tagRGBQUAD; - RGBQUAD = tagRGBQUAD; - TFMXExternalPumpBrowserFrm = class(TForm) AddressPnl: TPanel; AddressEdt: TEdit; @@ -108,12 +98,12 @@ type procedure chrmosrLoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean); procedure chrmosrLoadError(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; errorCode: Integer; const errorText, failedUrl: ustring); - procedure Timer1Timer(Sender: TObject); procedure AddressEdtEnter(Sender: TObject); procedure SnapshotBtnClick(Sender: TObject); procedure SnapshotBtnEnter(Sender: TObject); + protected FPopUpBitmap : TBitmap; FPopUpRect : TRect; @@ -137,6 +127,7 @@ type procedure NotifyMoveOrResizeStarted; procedure SendCaptureLostEvent; procedure SetBounds(ALeft: Integer; ATop: Integer; AWidth: Integer; AHeight: Integer); override; + procedure SendCEFKeyEvent(const aCefEvent : TCefKeyEvent); end; var @@ -172,8 +163,40 @@ implementation {$R *.fmx} uses - System.SysUtils, System.Math, FMX.Platform, - uCEFMiscFunctions, uCEFApplication; + System.SysUtils, System.Math, FMX.Platform, FMX.Platform.Linux, + uCEFMiscFunctions, uCEFApplication, uCEFLinuxTypes, uCEFLinuxConstants, + uCEFLinuxFunctions; + +function GTKKeyPress(Widget: PGtkWidget; Event: PGdkEventKey; Data: gPointer) : GBoolean; cdecl; +var + TempCefEvent : TCefKeyEvent; +begin + if FMXExternalPumpBrowserFrm.Panel1.IsFocused then + begin + GdkEventKeyToCEFKeyEvent(Event, TempCefEvent); + + if (Event^._type = GDK_KEY_PRESS) then + begin + TempCefEvent.kind := KEYEVENT_RAWKEYDOWN; + FMXExternalPumpBrowserFrm.SendCEFKeyEvent(TempCefEvent); + TempCefEvent.kind := KEYEVENT_CHAR; + FMXExternalPumpBrowserFrm.SendCEFKeyEvent(TempCefEvent); + end + else + begin + TempCefEvent.kind := KEYEVENT_KEYUP; + FMXExternalPumpBrowserFrm.SendCEFKeyEvent(TempCefEvent); + end; + end; + + Result := True; +end; + +procedure ConnectKeyPressReleaseEvents(const aWidget : PGtkWidget); +begin + g_signal_connect(aWidget, 'key-press-event', TGCallback(@GTKKeyPress), nil); + g_signal_connect(aWidget, 'key-release-event', TGCallback(@GTKKeyPress), nil); +end; procedure TFMXExternalPumpBrowserFrm.FormActivate(Sender: TObject); var @@ -201,13 +224,17 @@ begin end); end else - if not(chrmosr.Initialized) then - begin - // opaque white background color - chrmosr.Options.BackgroundColor := CefColorSetARGB($FF, $FF, $FF, $FF); + begin + ConnectKeyPressReleaseEvents(TLinuxWindowHandle(Handle).NativeHandle); - if not(chrmosr.CreateBrowser) then Timer1.Enabled := True; - end; + if not(chrmosr.Initialized) then + begin + // opaque white background color + chrmosr.Options.BackgroundColor := CefColorSetARGB($FF, $FF, $FF, $FF); + + if not(chrmosr.CreateBrowser) then Timer1.Enabled := True; + end; + end; end; procedure TFMXExternalPumpBrowserFrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); @@ -797,6 +824,11 @@ begin if PositionChanged then NotifyMoveOrResizeStarted; end; +procedure TFMXExternalPumpBrowserFrm.SendCEFKeyEvent(const aCefEvent : TCefKeyEvent); +begin + chrmosr.SendKeyEvent(@aCefEvent); +end; + procedure TFMXExternalPumpBrowserFrm.NotifyMoveOrResizeStarted; begin if (chrmosr <> nil) then chrmosr.NotifyMoveOrResizeStarted; diff --git a/demos/Lazarus_Linux/MiniBrowser/MiniBrowser.lps b/demos/Lazarus_Linux/MiniBrowser/MiniBrowser.lps index 0c3bc472..436b6561 100644 --- a/demos/Lazarus_Linux/MiniBrowser/MiniBrowser.lps +++ b/demos/Lazarus_Linux/MiniBrowser/MiniBrowser.lps @@ -20,9 +20,9 @@ - - - + + + @@ -119,7 +119,7 @@ - + @@ -140,6 +140,10 @@ + + + + diff --git a/demos/Lazarus_Linux/MiniBrowser/uMiniBrowser.pas b/demos/Lazarus_Linux/MiniBrowser/uMiniBrowser.pas index 9b22820e..ada0c8ed 100644 --- a/demos/Lazarus_Linux/MiniBrowser/uMiniBrowser.pas +++ b/demos/Lazarus_Linux/MiniBrowser/uMiniBrowser.pas @@ -193,7 +193,7 @@ implementation {$R *.lfm} uses - uCEFMiscFunctions, uCefClient; + uCEFMiscFunctions, uCefClient, uCEFLinuxConstants; const CEF_UPDATEADDRESS = 1; diff --git a/demos/Lazarus_Linux/OSRExternalPumpBrowser/OSRExternalPumpBrowser.lps b/demos/Lazarus_Linux/OSRExternalPumpBrowser/OSRExternalPumpBrowser.lps index 4853c92c..dfbf9bf1 100644 --- a/demos/Lazarus_Linux/OSRExternalPumpBrowser/OSRExternalPumpBrowser.lps +++ b/demos/Lazarus_Linux/OSRExternalPumpBrowser/OSRExternalPumpBrowser.lps @@ -3,11 +3,11 @@ - + - + @@ -21,15 +21,15 @@ - - + + - - - - - + + + + + @@ -94,10 +94,11 @@ - - - + + + + @@ -145,13 +146,11 @@ - - - + + + - - - + @@ -826,6 +825,14 @@ + + + + + + + + @@ -834,123 +841,123 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - + diff --git a/demos/Lazarus_Linux/OSRExternalPumpBrowser/uosrexternalpumpbrowser.pas b/demos/Lazarus_Linux/OSRExternalPumpBrowser/uosrexternalpumpbrowser.pas index ba31e732..a955b2c6 100644 --- a/demos/Lazarus_Linux/OSRExternalPumpBrowser/uosrexternalpumpbrowser.pas +++ b/demos/Lazarus_Linux/OSRExternalPumpBrowser/uosrexternalpumpbrowser.pas @@ -191,7 +191,8 @@ implementation uses Math, gtk2, glib2, gdk2, gtk2proc, gtk2int, - uCEFMiscFunctions, uCEFApplication, uCEFBitmapBitBuffer, uCEFWorkScheduler; + uCEFMiscFunctions, uCEFApplication, uCEFBitmapBitBuffer, uCEFWorkScheduler, + uCEFLinuxFunctions; procedure GlobalCEFApp_OnScheduleMessagePumpWork(const aDelayMS : int64); begin diff --git a/demos/Lazarus_Linux/SimpleOSRBrowser/SimpleOSRBrowser.lps b/demos/Lazarus_Linux/SimpleOSRBrowser/SimpleOSRBrowser.lps index 2b7ebaf1..20d24f14 100644 --- a/demos/Lazarus_Linux/SimpleOSRBrowser/SimpleOSRBrowser.lps +++ b/demos/Lazarus_Linux/SimpleOSRBrowser/SimpleOSRBrowser.lps @@ -20,8 +20,8 @@ - - + + @@ -802,7 +802,7 @@ - + @@ -883,6 +883,10 @@ + + + + diff --git a/demos/Lazarus_Linux/SimpleOSRBrowser/usimpleosrbrowser.pas b/demos/Lazarus_Linux/SimpleOSRBrowser/usimpleosrbrowser.pas index 60fd58ad..28b8a71a 100644 --- a/demos/Lazarus_Linux/SimpleOSRBrowser/usimpleosrbrowser.pas +++ b/demos/Lazarus_Linux/SimpleOSRBrowser/usimpleosrbrowser.pas @@ -226,7 +226,7 @@ implementation uses Math, gtk2, glib2, gdk2, gtk2proc, gtk2int, - uCEFMiscFunctions, uCEFApplication, uCEFBitmapBitBuffer; + uCEFMiscFunctions, uCEFApplication, uCEFBitmapBitBuffer, uCEFLinuxFunctions; const CEF_UPDATE_CURSOR = $A0D; diff --git a/packages/CEF4Delphi_FMX.dpk b/packages/CEF4Delphi_FMX.dpk index 3021b335..08528a2d 100644 --- a/packages/CEF4Delphi_FMX.dpk +++ b/packages/CEF4Delphi_FMX.dpk @@ -226,7 +226,10 @@ contains uCEFBitmapBitBuffer in '..\source\uCEFBitmapBitBuffer.pas', uCEFPrintHandler in '..\source\uCEFPrintHandler.pas', uCEFPrintDialogCallback in '..\source\uCEFPrintDialogCallback.pas', - uCEFPrintJobCallback in '..\source\uCEFPrintJobCallback.pas'; + uCEFPrintJobCallback in '..\source\uCEFPrintJobCallback.pas', + uCEFLinuxConstants in '..\source\uCEFLinuxConstants.pas', + uCEFLinuxTypes in '..\source\uCEFLinuxTypes.pas', + uCEFLinuxFunctions in '..\source\uCEFLinuxFunctions.pas'; end. diff --git a/packages/cef4delphi_lazarus.lpk b/packages/cef4delphi_lazarus.lpk index a86d809a..58e21827 100644 --- a/packages/cef4delphi_lazarus.lpk +++ b/packages/cef4delphi_lazarus.lpk @@ -22,7 +22,7 @@ - + @@ -811,6 +811,18 @@ + + + + + + + + + + + + diff --git a/packages/cef4delphi_lazarus.pas b/packages/cef4delphi_lazarus.pas index ad1542a6..db1e45aa 100644 --- a/packages/cef4delphi_lazarus.pas +++ b/packages/cef4delphi_lazarus.pas @@ -64,7 +64,7 @@ uses uCEFViewsFrameworkEvents, uCEFAudioHandler, uCEFDevToolsMessageObserver, uCEFMediaSinkDeviceInfoCallback, uCEFJson, uCEFBitmapBitBuffer, uCEFPrintDialogCallback, uCEFPrintHandler, uCEFPrintJobCallback, - LazarusPackageIntf; + uCEFLinuxFunctions, uCEFLinuxTypes, uCEFLinuxConstants, LazarusPackageIntf; implementation diff --git a/source/uCEFApplicationCore.pas b/source/uCEFApplicationCore.pas index 30850a85..cf63ad02 100644 --- a/source/uCEFApplicationCore.pas +++ b/source/uCEFApplicationCore.pas @@ -620,7 +620,7 @@ uses Math, {$IFDEF DELPHI14_UP}IOUtils,{$ENDIF} SysUtils, {$IFDEF FPC} {$IFDEF MSWINDOWS}jwatlhelp32, jwapsapi,{$ENDIF} - {$IFDEF LINUX}lcltype, Forms, InterfaceBase,{$ENDIF} + {$IFDEF LINUX}lcltype, Forms, InterfaceBase, uCEFLinuxFunctions,{$ENDIF} {$ELSE} TlHelp32, {$IFDEF MSWINDOWS}PSAPI,{$ENDIF} {$ENDIF} diff --git a/source/uCEFConstants.pas b/source/uCEFConstants.pas index 3611e1b9..6ae7be11 100644 --- a/source/uCEFConstants.pas +++ b/source/uCEFConstants.pas @@ -652,1626 +652,6 @@ const USER_DEFAULT_SCREEN_DPI = 96; {$IFEND} - {$IFDEF LINUX}{$IFDEF FPC}{$IFDEF LCLGTK2} - // These are the GDK constants included in the Lazarus gdkkeysyms.pp file - GDK_VoidSymbol = $FFFFFF; - GDK_BackSpace = $FF08; - GDK_Tab = $FF09; - GDK_Linefeed = $FF0A; - GDK_Clear_Key = $FF0B; - GDK_Return = $FF0D; - GDK_Pause = $FF13; - GDK_Scroll_Lock = $FF14; - GDK_Sys_Req = $FF15; - GDK_Escape = $FF1B; - GDK_Delete_Key = $FFFF; - GDK_Multi_key = $FF20; - GDK_SingleCandidate = $FF3C; - GDK_MultipleCandidate = $FF3D; - GDK_PreviousCandidate = $FF3E; - GDK_Kanji = $FF21; - GDK_Muhenkan = $FF22; - GDK_Henkan_Mode = $FF23; - GDK_Henkan = $FF23; - GDK_Romaji = $FF24; - GDK_Hiragana = $FF25; - GDK_Katakana = $FF26; - GDK_Hiragana_Katakana = $FF27; - GDK_Zenkaku = $FF28; - GDK_Hankaku = $FF29; - GDK_Zenkaku_Hankaku = $FF2A; - GDK_Touroku = $FF2B; - GDK_Massyo = $FF2C; - GDK_Kana_Lock = $FF2D; - GDK_Kana_Shift = $FF2E; - GDK_Eisu_Shift = $FF2F; - GDK_Eisu_toggle = $FF30; - GDK_Zen_Koho = $FF3D; - GDK_Mae_Koho = $FF3E; - GDK_Home = $FF50; - GDK_Left = $FF51; - GDK_Up = $FF52; - GDK_Right = $FF53; - GDK_Down = $FF54; - GDK_Prior = $FF55; - GDK_Page_Up = $FF55; - GDK_Next = $FF56; - GDK_Page_Down = $FF56; - GDK_End = $FF57; - GDK_Begin = $FF58; - GDK_Select = $FF60; - GDK_Print = $FF61; - GDK_Execute = $FF62; - GDK_Insert = $FF63; - GDK_Undo = $FF65; - GDK_Redo = $FF66; - GDK_Menu = $FF67; - GDK_Find = $FF68; - GDK_Cancel = $FF69; - GDK_Help = $FF6A; - GDK_Break = $FF6B; - GDK_Mode_switch = $FF7E; - GDK_script_switch = $FF7E; - GDK_Num_Lock = $FF7F; - GDK_KP_Space = $FF80; - GDK_KP_Tab = $FF89; - GDK_KP_Enter = $FF8D; - GDK_KP_F1 = $FF91; - GDK_KP_F2 = $FF92; - GDK_KP_F3 = $FF93; - GDK_KP_F4 = $FF94; - GDK_KP_Home = $FF95; - GDK_KP_Left = $FF96; - GDK_KP_Up = $FF97; - GDK_KP_Right = $FF98; - GDK_KP_Down = $FF99; - GDK_KP_Prior = $FF9A; - GDK_KP_Page_Up = $FF9A; - GDK_KP_Next = $FF9B; - GDK_KP_Page_Down = $FF9B; - GDK_KP_End = $FF9C; - GDK_KP_Begin = $FF9D; - GDK_KP_Insert = $FF9E; - GDK_KP_Delete = $FF9F; - GDK_KP_Equal = $FFBD; - GDK_KP_Multiply = $FFAA; - GDK_KP_Add = $FFAB; - GDK_KP_Separator = $FFAC; - GDK_KP_Subtract = $FFAD; - GDK_KP_Decimal = $FFAE; - GDK_KP_Divide = $FFAF; - GDK_KP_0 = $FFB0; - GDK_KP_1 = $FFB1; - GDK_KP_2 = $FFB2; - GDK_KP_3 = $FFB3; - GDK_KP_4 = $FFB4; - GDK_KP_5 = $FFB5; - GDK_KP_6 = $FFB6; - GDK_KP_7 = $FFB7; - GDK_KP_8 = $FFB8; - GDK_KP_9 = $FFB9; - GDK_F1 = $FFBE; - GDK_F2 = $FFBF; - GDK_F3 = $FFC0; - GDK_F4 = $FFC1; - GDK_F5 = $FFC2; - GDK_F6 = $FFC3; - GDK_F7 = $FFC4; - GDK_F8 = $FFC5; - GDK_F9 = $FFC6; - GDK_F10 = $FFC7; - GDK_F11 = $FFC8; - GDK_L1 = $FFC8; - GDK_F12 = $FFC9; - GDK_L2 = $FFC9; - GDK_F13 = $FFCA; - GDK_L3 = $FFCA; - GDK_F14 = $FFCB; - GDK_L4 = $FFCB; - GDK_F15 = $FFCC; - GDK_L5 = $FFCC; - GDK_F16 = $FFCD; - GDK_L6 = $FFCD; - GDK_F17 = $FFCE; - GDK_L7 = $FFCE; - GDK_F18 = $FFCF; - GDK_L8 = $FFCF; - GDK_F19 = $FFD0; - GDK_L9 = $FFD0; - GDK_F20 = $FFD1; - GDK_L10 = $FFD1; - GDK_F21 = $FFD2; - GDK_R1 = $FFD2; - GDK_F22 = $FFD3; - GDK_R2 = $FFD3; - GDK_F23 = $FFD4; - GDK_R3 = $FFD4; - GDK_F24 = $FFD5; - GDK_R4 = $FFD5; - GDK_F25 = $FFD6; - GDK_R5 = $FFD6; - GDK_F26 = $FFD7; - GDK_R6 = $FFD7; - GDK_F27 = $FFD8; - GDK_R7 = $FFD8; - GDK_F28 = $FFD9; - GDK_R8 = $FFD9; - GDK_F29 = $FFDA; - GDK_R9 = $FFDA; - GDK_F30 = $FFDB; - GDK_R10 = $FFDB; - GDK_F31 = $FFDC; - GDK_R11 = $FFDC; - GDK_F32 = $FFDD; - GDK_R12 = $FFDD; - GDK_F33 = $FFDE; - GDK_R13 = $FFDE; - GDK_F34 = $FFDF; - GDK_R14 = $FFDF; - GDK_F35 = $FFE0; - GDK_R15 = $FFE0; - GDK_Shift_L = $FFE1; - GDK_Shift_R = $FFE2; - GDK_Control_L = $FFE3; - GDK_Control_R = $FFE4; - GDK_Caps_Lock = $FFE5; - GDK_Shift_Lock = $FFE6; - GDK_Meta_L = $FFE7; - GDK_Meta_R = $FFE8; - GDK_Alt_L = $FFE9; - GDK_Alt_R = $FFEA; - GDK_Super_L = $FFEB; - GDK_Super_R = $FFEC; - GDK_Hyper_L = $FFED; - GDK_Hyper_R = $FFEE; - GDK_ISO_Lock = $FE01; - GDK_ISO_Level2_Latch = $FE02; - GDK_ISO_Level3_Shift = $FE03; - GDK_ISO_Level3_Latch = $FE04; - GDK_ISO_Level3_Lock = $FE05; - GDK_ISO_Group_Shift = $FF7E; - GDK_ISO_Group_Latch = $FE06; - GDK_ISO_Group_Lock = $FE07; - GDK_ISO_Next_Group = $FE08; - GDK_ISO_Next_Group_Lock = $FE09; - GDK_ISO_Prev_Group = $FE0A; - GDK_ISO_Prev_Group_Lock = $FE0B; - GDK_ISO_First_Group = $FE0C; - GDK_ISO_First_Group_Lock = $FE0D; - GDK_ISO_Last_Group = $FE0E; - GDK_ISO_Last_Group_Lock = $FE0F; - GDK_ISO_Left_Tab = $FE20; - GDK_ISO_Move_Line_Up = $FE21; - GDK_ISO_Move_Line_Down = $FE22; - GDK_ISO_Partial_Line_Up = $FE23; - GDK_ISO_Partial_Line_Down = $FE24; - GDK_ISO_Partial_Space_Left = $FE25; - GDK_ISO_Partial_Space_Right = $FE26; - GDK_ISO_Set_Margin_Left = $FE27; - GDK_ISO_Set_Margin_Right = $FE28; - GDK_ISO_Release_Margin_Left = $FE29; - GDK_ISO_Release_Margin_Right = $FE2A; - GDK_ISO_Release_Both_Margins = $FE2B; - GDK_ISO_Fast_Cursor_Left = $FE2C; - GDK_ISO_Fast_Cursor_Right = $FE2D; - GDK_ISO_Fast_Cursor_Up = $FE2E; - GDK_ISO_Fast_Cursor_Down = $FE2F; - GDK_ISO_Continuous_Underline = $FE30; - GDK_ISO_Discontinuous_Underline = $FE31; - GDK_ISO_Emphasize = $FE32; - GDK_ISO_Center_Object = $FE33; - GDK_ISO_Enter = $FE34; - GDK_dead_grave = $FE50; - GDK_dead_acute = $FE51; - GDK_dead_circumflex = $FE52; - GDK_dead_tilde = $FE53; - GDK_dead_macron = $FE54; - GDK_dead_breve = $FE55; - GDK_dead_abovedot = $FE56; - GDK_dead_diaeresis = $FE57; - GDK_dead_abovering = $FE58; - GDK_dead_doubleacute = $FE59; - GDK_dead_caron = $FE5A; - GDK_dead_cedilla = $FE5B; - GDK_dead_ogonek = $FE5C; - GDK_dead_iota = $FE5D; - GDK_dead_voiced_sound = $FE5E; - GDK_dead_semivoiced_sound = $FE5F; - GDK_dead_belowdot = $FE60; - GDK_First_Virtual_Screen = $FED0; - GDK_Prev_Virtual_Screen = $FED1; - GDK_Next_Virtual_Screen = $FED2; - GDK_Last_Virtual_Screen = $FED4; - GDK_Terminate_Server = $FED5; - GDK_AccessX_Enable = $FE70; - GDK_AccessX_Feedback_Enable = $FE71; - GDK_RepeatKeys_Enable = $FE72; - GDK_SlowKeys_Enable = $FE73; - GDK_BounceKeys_Enable = $FE74; - GDK_StickyKeys_Enable = $FE75; - GDK_MouseKeys_Enable = $FE76; - GDK_MouseKeys_Accel_Enable = $FE77; - GDK_Overlay1_Enable = $FE78; - GDK_Overlay2_Enable = $FE79; - GDK_AudibleBell_Enable = $FE7A; - GDK_Pointer_Left = $FEE0; - GDK_Pointer_Right = $FEE1; - GDK_Pointer_Up = $FEE2; - GDK_Pointer_Down = $FEE3; - GDK_Pointer_UpLeft = $FEE4; - GDK_Pointer_UpRight = $FEE5; - GDK_Pointer_DownLeft = $FEE6; - GDK_Pointer_DownRight = $FEE7; - GDK_Pointer_Button_Dflt = $FEE8; - GDK_Pointer_Button1 = $FEE9; - GDK_Pointer_Button2 = $FEEA; - GDK_Pointer_Button3 = $FEEB; - GDK_Pointer_Button4 = $FEEC; - GDK_Pointer_Button5 = $FEED; - GDK_Pointer_DblClick_Dflt = $FEEE; - GDK_Pointer_DblClick1 = $FEEF; - GDK_Pointer_DblClick2 = $FEF0; - GDK_Pointer_DblClick3 = $FEF1; - GDK_Pointer_DblClick4 = $FEF2; - GDK_Pointer_DblClick5 = $FEF3; - GDK_Pointer_Drag_Dflt = $FEF4; - GDK_Pointer_Drag1 = $FEF5; - GDK_Pointer_Drag2 = $FEF6; - GDK_Pointer_Drag3 = $FEF7; - GDK_Pointer_Drag4 = $FEF8; - GDK_Pointer_Drag5 = $FEFD; - GDK_Pointer_EnableKeys = $FEF9; - GDK_Pointer_Accelerate = $FEFA; - GDK_Pointer_DfltBtnNext = $FEFB; - GDK_Pointer_DfltBtnPrev = $FEFC; - GDK_3270_Duplicate = $FD01; - GDK_3270_FieldMark = $FD02; - GDK_3270_Right2 = $FD03; - GDK_3270_Left2 = $FD04; - GDK_3270_BackTab = $FD05; - GDK_3270_EraseEOF = $FD06; - GDK_3270_EraseInput = $FD07; - GDK_3270_Reset = $FD08; - GDK_3270_Quit = $FD09; - GDK_3270_PA1 = $FD0A; - GDK_3270_PA2 = $FD0B; - GDK_3270_PA3 = $FD0C; - GDK_3270_Test = $FD0D; - GDK_3270_Attn = $FD0E; - GDK_3270_CursorBlink = $FD0F; - GDK_3270_AltCursor = $FD10; - GDK_3270_KeyClick = $FD11; - GDK_3270_Jump = $FD12; - GDK_3270_Ident = $FD13; - GDK_3270_Rule = $FD14; - GDK_3270_Copy = $FD15; - GDK_3270_Play = $FD16; - GDK_3270_Setup = $FD17; - GDK_3270_Record = $FD18; - GDK_3270_ChangeScreen = $FD19; - GDK_3270_DeleteWord = $FD1A; - GDK_3270_ExSelect = $FD1B; - GDK_3270_CursorSelect = $FD1C; - GDK_3270_PrintScreen = $FD1D; - GDK_3270_Enter = $FD1E; - GDK_space = $020; - GDK_exclam = $021; - GDK_quotedbl = $022; - GDK_numbersign = $023; - GDK_dollar = $024; - GDK_percent = $025; - GDK_ampersand = $026; - GDK_apostrophe = $027; - GDK_quoteright = $027; - GDK_parenleft = $028; - GDK_parenright = $029; - GDK_asterisk = $02a; - GDK_plus_key = $02b; - GDK_comma = $02c; - GDK_minus = $02d; - GDK_period = $02e; - GDK_slash = $02f; - GDK_0 = $030; - GDK_1 = $031; - GDK_2 = $032; - GDK_3 = $033; - GDK_4 = $034; - GDK_5 = $035; - GDK_6 = $036; - GDK_7 = $037; - GDK_8 = $038; - GDK_9 = $039; - GDK_colon = $03a; - GDK_semicolon = $03b; - GDK_less = $03c; - GDK_equal = $03d; - GDK_greater = $03e; - GDK_question = $03f; - GDK_at = $040; - GDK_Capital_A = $041; - GDK_Capital_B = $042; - GDK_Capital_C = $043; - GDK_Capital_D = $044; - GDK_Capital_E = $045; - GDK_Capital_F = $046; - GDK_Capital_G = $047; - GDK_Capital_H = $048; - GDK_Capital_I = $049; - GDK_Capital_J = $04a; - GDK_Capital_K = $04b; - GDK_Capital_L = $04c; - GDK_Capital_M = $04d; - GDK_Capital_N = $04e; - GDK_Capital_O = $04f; - GDK_Capital_P = $050; - GDK_Capital_Q = $051; - GDK_Capital_R = $052; - GDK_Capital_S = $053; - GDK_Capital_T = $054; - GDK_Capital_U = $055; - GDK_Capital_V = $056; - GDK_Capital_W = $057; - GDK_Capital_X = $058; - GDK_Capital_Y = $059; - GDK_Capital_Z = $05a; - GDK_bracketleft = $05b; - GDK_backslash = $05c; - GDK_bracketright = $05d; - GDK_asciicircum = $05e; - GDK_underscore = $05f; - GDK_grave = $060; - GDK_quoteleft = $060; - GDK_a = $061; - GDK_b = $062; - GDK_c = $063; - GDK_d = $064; - GDK_e = $065; - GDK_f = $066; - GDK_g = $067; - GDK_h = $068; - GDK_i = $069; - GDK_j = $06a; - GDK_k = $06b; - GDK_l = $06c; - GDK_m = $06d; - GDK_n = $06e; - GDK_o = $06f; - GDK_p = $070; - GDK_q = $071; - GDK_r = $072; - GDK_s = $073; - GDK_t = $074; - GDK_u = $075; - GDK_v = $076; - GDK_w = $077; - GDK_x = $078; - GDK_y = $079; - GDK_z = $07a; - GDK_braceleft = $07b; - GDK_bar = $07c; - GDK_braceright = $07d; - GDK_asciitilde = $07e; - GDK_nobreakspace = $0a0; - GDK_exclamdown = $0a1; - GDK_cent = $0a2; - GDK_sterling = $0a3; - GDK_currency = $0a4; - GDK_yen = $0a5; - GDK_brokenbar = $0a6; - GDK_section = $0a7; - GDK_diaeresis = $0a8; - GDK_copyright = $0a9; - GDK_ordfeminine = $0aa; - GDK_guillemotleft = $0ab; - GDK_notsign = $0ac; - GDK_hyphen = $0ad; - GDK_registered = $0ae; - GDK_macron = $0af; - GDK_degree = $0b0; - GDK_plusminus = $0b1; - GDK_twosuperior = $0b2; - GDK_threesuperior = $0b3; - GDK_acute = $0b4; - GDK_mu = $0b5; - GDK_paragraph = $0b6; - GDK_periodcentered = $0b7; - GDK_cedilla = $0b8; - GDK_onesuperior = $0b9; - GDK_masculine = $0ba; - GDK_guillemotright = $0bb; - GDK_onequarter = $0bc; - GDK_onehalf = $0bd; - GDK_threequarters = $0be; - GDK_questiondown = $0bf; - GDK_Capital_Agrave = $0c0; - GDK_Capital_Aacute = $0c1; - GDK_Capital_Acircumflex = $0c2; - GDK_Capital_Atilde = $0c3; - GDK_Capital_Adiaeresis = $0c4; - GDK_Capital_Aring = $0c5; - GDK_Capital_AE = $0c6; - GDK_Capital_Ccedilla = $0c7; - GDK_Capital_Egrave = $0c8; - GDK_Capital_Eacute = $0c9; - GDK_Capital_Ecircumflex = $0ca; - GDK_Capital_Ediaeresis = $0cb; - GDK_Capital_Igrave = $0cc; - GDK_Capital_Iacute = $0cd; - GDK_Capital_Icircumflex = $0ce; - GDK_Capital_Idiaeresis = $0cf; - GDK_Capital_ETH = $0d0; - GDK_Capital_Ntilde = $0d1; - GDK_Capital_Ograve = $0d2; - GDK_Capital_Oacute = $0d3; - GDK_Capital_Ocircumflex = $0d4; - GDK_Capital_Otilde = $0d5; - GDK_Capital_Odiaeresis = $0d6; - GDK_Capital_multiply = $0d7; - GDK_Capital_Ooblique = $0d8; - GDK_Capital_Ugrave = $0d9; - GDK_Capital_Uacute = $0da; - GDK_Capital_Ucircumflex = $0db; - GDK_Capital_Udiaeresis = $0dc; - GDK_Capital_Yacute = $0dd; - GDK_Capital_THORN = $0de; - GDK_Thorn = $0de; - GDK_ssharp = $0df; - GDK_agrave = $0e0; - GDK_aacute = $0e1; - GDK_acircumflex = $0e2; - GDK_atilde = $0e3; - GDK_adiaeresis = $0e4; - GDK_aring = $0e5; - GDK_ae = $0e6; - GDK_ccedilla = $0e7; - GDK_egrave = $0e8; - GDK_eacute = $0e9; - GDK_ecircumflex = $0ea; - GDK_ediaeresis = $0eb; - GDK_igrave = $0ec; - GDK_iacute = $0ed; - GDK_icircumflex = $0ee; - GDK_idiaeresis = $0ef; - GDK_eth = $0f0; - GDK_ntilde = $0f1; - GDK_ograve = $0f2; - GDK_oacute = $0f3; - GDK_ocircumflex = $0f4; - GDK_otilde = $0f5; - GDK_odiaeresis = $0f6; - GDK_division = $0f7; - GDK_oslash = $0f8; - GDK_ugrave = $0f9; - GDK_uacute = $0fa; - GDK_ucircumflex = $0fb; - GDK_udiaeresis = $0fc; - GDK_yacute = $0fd; - GDK_small_thorn = $0fe; - GDK_ydiaeresis = $0ff; - GDK_Capital_Aogonek = $1a1; - GDK_Capital_breve = $1a2; - GDK_Capital_Lstroke = $1a3; - GDK_Capital_Lcaron = $1a5; - GDK_Capital_Sacute = $1a6; - GDK_Capital_Scaron = $1a9; - GDK_Capital_Scedilla = $1aa; - GDK_Capital_Tcaron = $1ab; - GDK_Capital_Zacute = $1ac; - GDK_Capital_Zcaron = $1ae; - GDK_Capital_Zabovedot = $1af; - GDK_aogonek = $1b1; - GDK_ogonek = $1b2; - GDK_lstroke = $1b3; - GDK_lcaron = $1b5; - GDK_sacute = $1b6; - GDK_caron = $1b7; - GDK_scaron = $1b9; - GDK_scedilla = $1ba; - GDK_tcaron = $1bb; - GDK_zacute = $1bc; - GDK_doubleacute = $1bd; - GDK_zcaron = $1be; - GDK_zabovedot = $1bf; - GDK_Capital_Racute = $1c0; - GDK_Capital_Abreve = $1c3; - GDK_Capital_Lacute = $1c5; - GDK_Capital_Cacute = $1c6; - GDK_Capital_Ccaron = $1c8; - GDK_Capital_Eogonek = $1ca; - GDK_Capital_Ecaron = $1cc; - GDK_Capital_Dcaron = $1cf; - GDK_Capital_Dstroke = $1d0; - GDK_Capital_Nacute = $1d1; - GDK_Capital_Ncaron = $1d2; - GDK_Capital_Odoubleacute = $1d5; - GDK_Capital_Rcaron = $1d8; - GDK_Capital_Uring = $1d9; - GDK_Capital_Udoubleacute = $1db; - GDK_Capital_Tcedilla = $1de; - GDK_racute = $1e0; - GDK_abreve = $1e3; - GDK_lacute = $1e5; - GDK_cacute = $1e6; - GDK_ccaron = $1e8; - GDK_eogonek = $1ea; - GDK_ecaron = $1ec; - GDK_dcaron = $1ef; - GDK_dstroke = $1f0; - GDK_nacute = $1f1; - GDK_ncaron = $1f2; - GDK_odoubleacute = $1f5; - GDK_udoubleacute = $1fb; - GDK_rcaron = $1f8; - GDK_uring = $1f9; - GDK_tcedilla = $1fe; - GDK_abovedot = $1ff; - GDK_Capital_Hstroke = $2a1; - GDK_Capital_Hcircumflex = $2a6; - GDK_Capital_Iabovedot = $2a9; - GDK_Capital_Gbreve = $2ab; - GDK_Capital_Jcircumflex = $2ac; - GDK_hstroke = $2b1; - GDK_hcircumflex = $2b6; - GDK_idotless = $2b9; - GDK_gbreve = $2bb; - GDK_jcircumflex = $2bc; - GDK_Capital_Cabovedot = $2c5; - GDK_Capital_Ccircumflex = $2c6; - GDK_Capital_Gabovedot = $2d5; - GDK_Capital_Gcircumflex = $2d8; - GDK_Capital_Ubreve = $2dd; - GDK_Capital_Scircumflex = $2de; - GDK_cabovedot = $2e5; - GDK_ccircumflex = $2e6; - GDK_gabovedot = $2f5; - GDK_gcircumflex = $2f8; - GDK_ubreve = $2fd; - GDK_scircumflex = $2fe; - GDK_kra = $3a2; - GDK_kappa = $3a2; - GDK_Capital_Rcedilla = $3a3; - GDK_Capital_Itilde = $3a5; - GDK_Capital_Lcedilla = $3a6; - GDK_Capital_Emacron = $3aa; - GDK_Capital_Gcedilla = $3ab; - GDK_Capital_Tslash = $3ac; - GDK_rcedilla = $3b3; - GDK_itilde = $3b5; - GDK_lcedilla = $3b6; - GDK_emacron = $3ba; - GDK_gcedilla = $3bb; - GDK_tslash = $3bc; - GDK_Capital_ENG = $3bd; - GDK_eng = $3bf; - GDK_Capital_Amacron = $3c0; - GDK_Capital_Iogonek = $3c7; - GDK_Capital_Eabovedot = $3cc; - GDK_Capital_Imacron = $3cf; - GDK_Capital_Ncedilla = $3d1; - GDK_Capital_Omacron = $3d2; - GDK_Capital_Kcedilla = $3d3; - GDK_Capital_Uogonek = $3d9; - GDK_Capital_Utilde = $3dd; - GDK_Capital_Umacron = $3de; - GDK_amacron = $3e0; - GDK_iogonek = $3e7; - GDK_eabovedot = $3ec; - GDK_imacron = $3ef; - GDK_ncedilla = $3f1; - GDK_omacron = $3f2; - GDK_kcedilla = $3f3; - GDK_uogonek = $3f9; - GDK_utilde = $3fd; - GDK_umacron = $3fe; - GDK_overline = $47e; - GDK_kana_fullstop = $4a1; - GDK_kana_openingbracket = $4a2; - GDK_kana_closingbracket = $4a3; - GDK_kana_comma = $4a4; - GDK_kana_conjunctive = $4a5; - GDK_kana_middledot = $4a5; - GDK_kana_WO = $4a6; - GDK_kana_a = $4a7; - GDK_kana_i = $4a8; - GDK_kana_u = $4a9; - GDK_kana_e = $4aa; - GDK_kana_o = $4ab; - GDK_kana_ya = $4ac; - GDK_kana_yu = $4ad; - GDK_kana_yo = $4ae; - GDK_kana_tsu = $4af; - GDK_kana_tu = $4af; - GDK_prolongedsound = $4b0; - GDK_kana_Capital__A = $4b1; - GDK_kana_Capital__I = $4b2; - GDK_kana_Capital__U = $4b3; - GDK_kana_Capital__E = $4b4; - GDK_kana_Capital__O = $4b5; - GDK_kana_Capital__KA = $4b6; - GDK_kana_Capital__KI = $4b7; - GDK_kana_Capital__KU = $4b8; - GDK_kana_Capital__KE = $4b9; - GDK_kana_Capital__KO = $4ba; - GDK_kana_Capital__SA = $4bb; - GDK_kana_Capital__SHI = $4bc; - GDK_kana_Capital__SU = $4bd; - GDK_kana_Capital__SE = $4be; - GDK_kana_Capital__SO = $4bf; - GDK_kana_Capital__TA = $4c0; - GDK_kana_Capital__CHI = $4c1; - GDK_kana_Capital__TI = $4c1; - GDK_kana_Capital__TSU = $4c2; - GDK_kana_Capital__TU = $4c2; - GDK_kana_Capital__TE = $4c3; - GDK_kana_Capital__TO = $4c4; - GDK_kana_Capital__NA = $4c5; - GDK_kana_Capital__NI = $4c6; - GDK_kana_Capital__NU = $4c7; - GDK_kana_Capital__NE = $4c8; - GDK_kana_Capital__NO = $4c9; - GDK_kana_Capital__HA = $4ca; - GDK_kana_Capital__HI = $4cb; - GDK_kana_Capital__FU = $4cc; - GDK_kana_Capital__HU = $4cc; - GDK_kana_Capital__HE = $4cd; - GDK_kana_Capital__HO = $4ce; - GDK_kana_Capital__MA = $4cf; - GDK_kana_Capital__MI = $4d0; - GDK_kana_Capital__MU = $4d1; - GDK_kana_Capital__ME = $4d2; - GDK_kana_Capital__MO = $4d3; - GDK_kana_Capital__YA = $4d4; - GDK_kana_Capital__YU = $4d5; - GDK_kana_Capital__YO = $4d6; - GDK_kana_Capital__RA = $4d7; - GDK_kana_Capital__RI = $4d8; - GDK_kana_Capital__RU = $4d9; - GDK_kana_Capital__RE = $4da; - GDK_kana_Capital__RO = $4db; - GDK_kana_Capital__WA = $4dc; - GDK_kana_Capital__N = $4dd; - GDK_voicedsound = $4de; - GDK_semivoicedsound = $4df; - GDK_kana_switch = $FF7E; - GDK_arabic_comma = $5ac; - GDK_arabic_semicolon = $5bb; - GDK_arabic_question_mark = $5bf; - GDK_arabic_hamza = $5c1; - GDK_arabic_maddaonalef = $5c2; - GDK_arabic_hamzaonalef = $5c3; - GDK_arabic_hamzaonwaw = $5c4; - GDK_arabic_hamzaunderalef = $5c5; - GDK_arabic_hamzaonyeh = $5c6; - GDK_arabic_alef = $5c7; - GDK_arabic_beh = $5c8; - GDK_arabic_tehmarbuta = $5c9; - GDK_arabic_teh = $5ca; - GDK_arabic_theh = $5cb; - GDK_arabic_jeem = $5cc; - GDK_arabic_hah = $5cd; - GDK_arabic_khah = $5ce; - GDK_arabic_dal = $5cf; - GDK_arabic_thal = $5d0; - GDK_arabic_ra = $5d1; - GDK_arabic_zain = $5d2; - GDK_arabic_seen = $5d3; - GDK_arabic_sheen = $5d4; - GDK_arabic_sad = $5d5; - GDK_arabic_dad = $5d6; - GDK_arabic_tah = $5d7; - GDK_arabic_zah = $5d8; - GDK_arabic_ain = $5d9; - GDK_arabic_ghain = $5da; - GDK_arabic_tatweel = $5e0; - GDK_arabic_feh = $5e1; - GDK_arabic_qaf = $5e2; - GDK_arabic_kaf = $5e3; - GDK_arabic_lam = $5e4; - GDK_arabic_meem = $5e5; - GDK_arabic_noon = $5e6; - GDK_arabic_ha = $5e7; - GDK_arabic_heh = $5e7; - GDK_arabic_waw = $5e8; - GDK_arabic_alefmaksura = $5e9; - GDK_arabic_yeh = $5ea; - GDK_arabic_fathatan = $5eb; - GDK_arabic_dammatan = $5ec; - GDK_arabic_kasratan = $5ed; - GDK_arabic_fatha = $5ee; - GDK_arabic_damma = $5ef; - GDK_arabic_kasra = $5f0; - GDK_arabic_shadda = $5f1; - GDK_arabic_sukun = $5f2; - GDK_arabic_switch = $FF7E; - GDK_serbian_dje = $6a1; - GDK_macedonia_gje = $6a2; - GDK_cyrillic_io = $6a3; - GDK_ukrainian_ie = $6a4; - GDK_ukrainian_je = $6a4; - GDK_macedonia_dse = $6a5; - GDK_ukrainian_i = $6a6; - GDK_ukrainian_yi = $6a7; - GDK_cyrillic_je = $6a8; - GDK_serbian_je = $6a8; - GDK_cyrillic_lje = $6a9; - GDK_serbian_lje = $6a9; - GDK_cyrillic_nje = $6aa; - GDK_serbian_nje = $6aa; - GDK_serbian_tshe = $6ab; - GDK_macedonia_kje = $6ac; - GDK_byelorussian_shortu = $6ae; - GDK_cyrillic_dzhe = $6af; - GDK_serbian_dze = $6af; - GDK_numerosign = $6b0; - GDK_serbian_Capital_DJE = $6b1; - GDK_macedonia_Capital_GJE = $6b2; - GDK_cyrillic_Capital_IO = $6b3; - GDK_ukrainian_Capital_IE = $6b4; - GDK_ukrainian_Capital_JE = $6b4; - GDK_macedonia_Capital_DSE = $6b5; - GDK_ukrainian_Capital_I = $6b6; - GDK_ukrainian_Capital_YI = $6b7; - GDK_cyrillic_Capital_JE = $6b8; - GDK_serbian_Capital_JE = $6b8; - GDK_cyrillic_Capital_LJE = $6b9; - GDK_serbian_Capital_LJE = $6b9; - GDK_cyrillic_Capital_NJE = $6ba; - GDK_serbian_Capital_NJE = $6ba; - GDK_serbian_Capital_TSHE = $6bb; - GDK_macedonia_Capital_KJE = $6bc; - GDK_byelorussian_Capital_SHORTU = $6be; - GDK_cyrillic_Capital_DZHE = $6bf; - GDK_serbian_Capital_DZE = $6bf; - GDK_cyrillic_yu = $6c0; - GDK_cyrillic_a = $6c1; - GDK_cyrillic_be = $6c2; - GDK_cyrillic_tse = $6c3; - GDK_cyrillic_de = $6c4; - GDK_cyrillic_ie = $6c5; - GDK_cyrillic_ef = $6c6; - GDK_cyrillic_ghe = $6c7; - GDK_cyrillic_ha = $6c8; - GDK_cyrillic_i = $6c9; - GDK_cyrillic_shorti = $6ca; - GDK_cyrillic_ka = $6cb; - GDK_cyrillic_el = $6cc; - GDK_cyrillic_em = $6cd; - GDK_cyrillic_en = $6ce; - GDK_cyrillic_o = $6cf; - GDK_cyrillic_pe = $6d0; - GDK_cyrillic_ya = $6d1; - GDK_cyrillic_er = $6d2; - GDK_cyrillic_es = $6d3; - GDK_cyrillic_te = $6d4; - GDK_cyrillic_u = $6d5; - GDK_cyrillic_zhe = $6d6; - GDK_cyrillic_ve = $6d7; - GDK_cyrillic_softsign = $6d8; - GDK_cyrillic_yeru = $6d9; - GDK_cyrillic_ze = $6da; - GDK_cyrillic_sha = $6db; - GDK_cyrillic_e = $6dc; - GDK_cyrillic_shcha = $6dd; - GDK_cyrillic_che = $6de; - GDK_cyrillic_hardsign = $6df; - GDK_cyrillic_Capital_YU = $6e0; - GDK_cyrillic_Capital_A = $6e1; - GDK_cyrillic_Capital_BE = $6e2; - GDK_cyrillic_Capital_TSE = $6e3; - GDK_cyrillic_Capital_DE = $6e4; - GDK_cyrillic_Capital_IE = $6e5; - GDK_cyrillic_Capital_EF = $6e6; - GDK_cyrillic_Capital_GHE = $6e7; - GDK_cyrillic_Capital_HA = $6e8; - GDK_cyrillic_Capital_I = $6e9; - GDK_cyrillic_Capital_SHORTI = $6ea; - GDK_cyrillic_Capital_KA = $6eb; - GDK_cyrillic_Capital_EL = $6ec; - GDK_cyrillic_Capital_EM = $6ed; - GDK_cyrillic_Capital_EN = $6ee; - GDK_cyrillic_Capital_O = $6ef; - GDK_cyrillic_Capital_PE = $6f0; - GDK_cyrillic_Capital_YA = $6f1; - GDK_cyrillic_Capital_ER = $6f2; - GDK_cyrillic_Capital_ES = $6f3; - GDK_cyrillic_Capital_TE = $6f4; - GDK_cyrillic_Capital_U = $6f5; - GDK_cyrillic_Capital_ZHE = $6f6; - GDK_cyrillic_Capital_VE = $6f7; - GDK_cyrillic_Capital_SOFTSIGN = $6f8; - GDK_cyrillic_Capital_YERU = $6f9; - GDK_cyrillic_Capital_ZE = $6fa; - GDK_cyrillic_Capital_SHA = $6fb; - GDK_cyrillic_Capital_E = $6fc; - GDK_cyrillic_Capital_SHCHA = $6fd; - GDK_cyrillic_Capital_CHE = $6fe; - GDK_cyrillic_Capital_HARDSIGN = $6ff; - GDK_greek_Capital_ALPHAaccent = $7a1; - GDK_greek_Capital_EPSILONaccent = $7a2; - GDK_greek_Capital_ETAaccent = $7a3; - GDK_greek_Capital_IOTAaccent = $7a4; - GDK_greek_Capital_IOTAdiaeresis = $7a5; - GDK_greek_Capital_OMICRONaccent = $7a7; - GDK_greek_Capital_UPSILONaccent = $7a8; - GDK_greek_Capital_UPSILONdieresis = $7a9; - GDK_greek_Capital_OMEGAaccent = $7ab; - GDK_greek_accentdieresis = $7ae; - GDK_greek_horizbar = $7af; - GDK_greek_alphaaccent = $7b1; - GDK_greek_epsilonaccent = $7b2; - GDK_greek_etaaccent = $7b3; - GDK_greek_iotaaccent = $7b4; - GDK_greek_iotadieresis = $7b5; - GDK_greek_iotaaccentdieresis = $7b6; - GDK_greek_omicronaccent = $7b7; - GDK_greek_upsilonaccent = $7b8; - GDK_greek_upsilondieresis = $7b9; - GDK_greek_upsilonaccentdieresis = $7ba; - GDK_greek_omegaaccent = $7bb; - GDK_greek_Capital_ALPHA = $7c1; - GDK_greek_Capital_BETA = $7c2; - GDK_greek_Capital_GAMMA = $7c3; - GDK_greek_Capital_DELTA = $7c4; - GDK_greek_Capital_EPSILON = $7c5; - GDK_greek_Capital_ZETA = $7c6; - GDK_greek_Capital_ETA = $7c7; - GDK_greek_Capital_THETA = $7c8; - GDK_greek_Capital_IOTA = $7c9; - GDK_greek_Capital_KAPPA = $7ca; - GDK_greek_Capital_LAMDA = $7cb; - GDK_greek_Capital_LAMBDA = $7cb; - GDK_greek_Capital_MU = $7cc; - GDK_greek_Capital_NU = $7cd; - GDK_greek_Capital_XI = $7ce; - GDK_greek_Capital_OMICRON = $7cf; - GDK_greek_Capital_PI = $7d0; - GDK_greek_Capital_RHO = $7d1; - GDK_greek_Capital_SIGMA = $7d2; - GDK_greek_Capital_TAU = $7d4; - GDK_greek_Capital_UPSILON = $7d5; - GDK_greek_Capital_PHI = $7d6; - GDK_greek_Capital_CHI = $7d7; - GDK_greek_Capital_PSI = $7d8; - GDK_greek_Capital_OMEGA = $7d9; - GDK_greek_alpha = $7e1; - GDK_greek_beta = $7e2; - GDK_greek_gamma = $7e3; - GDK_greek_delta = $7e4; - GDK_greek_epsilon = $7e5; - GDK_greek_zeta = $7e6; - GDK_greek_eta = $7e7; - GDK_greek_theta = $7e8; - GDK_greek_iota = $7e9; - GDK_greek_kappa = $7ea; - GDK_greek_lamda = $7eb; - GDK_greek_lambda = $7eb; - GDK_greek_mu = $7ec; - GDK_greek_nu = $7ed; - GDK_greek_xi = $7ee; - GDK_greek_omicron = $7ef; - GDK_greek_pi = $7f0; - GDK_greek_rho = $7f1; - GDK_greek_sigma = $7f2; - GDK_greek_finalsmallsigma = $7f3; - GDK_greek_tau = $7f4; - GDK_greek_upsilon = $7f5; - GDK_greek_phi = $7f6; - GDK_greek_chi = $7f7; - GDK_greek_psi = $7f8; - GDK_greek_omega = $7f9; - GDK_greek_switch = $FF7E; - GDK_leftradical = $8a1; - GDK_topleftradical = $8a2; - GDK_horizconnector = $8a3; - GDK_topintegral = $8a4; - GDK_botintegral = $8a5; - GDK_vertconnector = $8a6; - GDK_topleftsqbracket = $8a7; - GDK_botleftsqbracket = $8a8; - GDK_toprightsqbracket = $8a9; - GDK_botrightsqbracket = $8aa; - GDK_topleftparens = $8ab; - GDK_botleftparens = $8ac; - GDK_toprightparens = $8ad; - GDK_botrightparens = $8ae; - GDK_leftmiddlecurlybrace = $8af; - GDK_rightmiddlecurlybrace = $8b0; - GDK_topleftsummation = $8b1; - GDK_botleftsummation = $8b2; - GDK_topvertsummationconnector = $8b3; - GDK_botvertsummationconnector = $8b4; - GDK_toprightsummation = $8b5; - GDK_botrightsummation = $8b6; - GDK_rightmiddlesummation = $8b7; - GDK_lessthanequal = $8bc; - GDK_notequal = $8bd; - GDK_greaterthanequal = $8be; - GDK_integral = $8bf; - GDK_therefore = $8c0; - GDK_variation = $8c1; - GDK_infinity = $8c2; - GDK_nabla = $8c5; - GDK_approximate = $8c8; - GDK_similarequal = $8c9; - GDK_ifonlyif = $8cd; - GDK_implies = $8ce; - GDK_identical = $8cf; - GDK_radical = $8d6; - GDK_includedin = $8da; - GDK_includes = $8db; - GDK_intersection = $8dc; - GDK_union = $8dd; - GDK_logicaland = $8de; - GDK_logicalor = $8df; - GDK_partialderivative = $8ef; - GDK_function = $8f6; - GDK_leftarrow = $8fb; - GDK_uparrow = $8fc; - GDK_rightarrow = $8fd; - GDK_downarrow = $8fe; - GDK_blank = $9df; - GDK_soliddiamond = $9e0; - GDK_checkerboard = $9e1; - GDK_ht = $9e2; - GDK_ff = $9e3; - GDK_cr = $9e4; - GDK_lf = $9e5; - GDK_nl = $9e8; - GDK_vt = $9e9; - GDK_lowrightcorner = $9ea; - GDK_uprightcorner = $9eb; - GDK_upleftcorner = $9ec; - GDK_lowleftcorner = $9ed; - GDK_crossinglines = $9ee; - GDK_horizlinescan1 = $9ef; - GDK_horizlinescan3 = $9f0; - GDK_horizlinescan5 = $9f1; - GDK_horizlinescan7 = $9f2; - GDK_horizlinescan9 = $9f3; - GDK_leftt = $9f4; - GDK_rightt = $9f5; - GDK_bott = $9f6; - GDK_topt = $9f7; - GDK_vertbar = $9f8; - GDK_emspace = $aa1; - GDK_enspace = $aa2; - GDK_em3space = $aa3; - GDK_em4space = $aa4; - GDK_digitspace = $aa5; - GDK_punctspace = $aa6; - GDK_thinspace = $aa7; - GDK_hairspace = $aa8; - GDK_emdash = $aa9; - GDK_endash = $aaa; - GDK_signifblank = $aac; - GDK_ellipsis = $aae; - GDK_doubbaselinedot = $aaf; - GDK_onethird = $ab0; - GDK_twothirds = $ab1; - GDK_onefifth = $ab2; - GDK_twofifths = $ab3; - GDK_threefifths = $ab4; - GDK_fourfifths = $ab5; - GDK_onesixth = $ab6; - GDK_fivesixths = $ab7; - GDK_careof = $ab8; - GDK_figdash = $abb; - GDK_leftanglebracket = $abc; - GDK_decimalpoint = $abd; - GDK_rightanglebracket = $abe; - GDK_marker = $abf; - GDK_oneeighth = $ac3; - GDK_threeeighths = $ac4; - GDK_fiveeighths = $ac5; - GDK_seveneighths = $ac6; - GDK_trademark = $ac9; - GDK_signaturemark = $aca; - GDK_trademarkincircle = $acb; - GDK_leftopentriangle = $acc; - GDK_rightopentriangle = $acd; - GDK_emopencircle = $ace; - GDK_emopenrectangle = $acf; - GDK_leftsinglequotemark = $ad0; - GDK_rightsinglequotemark = $ad1; - GDK_leftdoublequotemark = $ad2; - GDK_rightdoublequotemark = $ad3; - GDK_prescription = $ad4; - GDK_minutes = $ad6; - GDK_seconds = $ad7; - GDK_latincross = $ad9; - GDK_hexagram = $ada; - GDK_filledrectbullet = $adb; - GDK_filledlefttribullet = $adc; - GDK_filledrighttribullet = $add; - GDK_emfilledcircle = $ade; - GDK_emfilledrect = $adf; - GDK_enopencircbullet = $ae0; - GDK_enopensquarebullet = $ae1; - GDK_openrectbullet = $ae2; - GDK_opentribulletup = $ae3; - GDK_opentribulletdown = $ae4; - GDK_openstar = $ae5; - GDK_enfilledcircbullet = $ae6; - GDK_enfilledsqbullet = $ae7; - GDK_filledtribulletup = $ae8; - GDK_filledtribulletdown = $ae9; - GDK_leftpointer = $aea; - GDK_rightpointer = $aeb; - GDK_club = $aec; - GDK_diamond = $aed; - GDK_heart_key = $aee; - GDK_maltesecross = $af0; - GDK_dagger = $af1; - GDK_doubledagger = $af2; - GDK_checkmark = $af3; - GDK_ballotcross = $af4; - GDK_musicalsharp = $af5; - GDK_musicalflat = $af6; - GDK_malesymbol = $af7; - GDK_femalesymbol = $af8; - GDK_telephone = $af9; - GDK_telephonerecorder = $afa; - GDK_phonographcopyright = $afb; - GDK_caret = $afc; - GDK_singlelowquotemark = $afd; - GDK_doublelowquotemark = $afe; - GDK_cursor = $aff; - GDK_leftcaret = $ba3; - GDK_rightcaret = $ba6; - GDK_downcaret = $ba8; - GDK_upcaret = $ba9; - GDK_overbar = $bc0; - GDK_downtack = $bc2; - GDK_upshoe = $bc3; - GDK_downstile = $bc4; - GDK_underbar = $bc6; - GDK_jot = $bca; - GDK_quad = $bcc; - GDK_uptack = $bce; - GDK_circle_key = $bcf; - GDK_upstile = $bd3; - GDK_downshoe = $bd6; - GDK_rightshoe = $bd8; - GDK_leftshoe = $bda; - GDK_lefttack = $bdc; - GDK_righttack = $bfc; - GDK_hebrew_doublelowline = $cdf; - GDK_hebrew_aleph = $ce0; - GDK_hebrew_bet = $ce1; - GDK_hebrew_beth = $ce1; - GDK_hebrew_gimel = $ce2; - GDK_hebrew_gimmel = $ce2; - GDK_hebrew_dalet = $ce3; - GDK_hebrew_daleth = $ce3; - GDK_hebrew_he = $ce4; - GDK_hebrew_waw = $ce5; - GDK_hebrew_zain = $ce6; - GDK_hebrew_zayin = $ce6; - GDK_hebrew_chet = $ce7; - GDK_hebrew_het = $ce7; - GDK_hebrew_tet = $ce8; - GDK_hebrew_teth = $ce8; - GDK_hebrew_yod = $ce9; - GDK_hebrew_finalkaph = $cea; - GDK_hebrew_kaph = $ceb; - GDK_hebrew_lamed = $cec; - GDK_hebrew_finalmem = $ced; - GDK_hebrew_mem = $cee; - GDK_hebrew_finalnun = $cef; - GDK_hebrew_nun = $cf0; - GDK_hebrew_samech = $cf1; - GDK_hebrew_samekh = $cf1; - GDK_hebrew_ayin = $cf2; - GDK_hebrew_finalpe = $cf3; - GDK_hebrew_pe = $cf4; - GDK_hebrew_finalzade = $cf5; - GDK_hebrew_finalzadi = $cf5; - GDK_hebrew_zade = $cf6; - GDK_hebrew_zadi = $cf6; - GDK_hebrew_qoph = $cf7; - GDK_hebrew_kuf = $cf7; - GDK_hebrew_resh = $cf8; - GDK_hebrew_shin = $cf9; - GDK_hebrew_taw = $cfa; - GDK_hebrew_taf = $cfa; - GDK_Hebrew_switch = $FF7E; - GDK_Thai_kokai = $da1; - GDK_Thai_khokhai = $da2; - GDK_Thai_khokhuat = $da3; - GDK_Thai_khokhwai = $da4; - GDK_Thai_khokhon = $da5; - GDK_Thai_khorakhang = $da6; - GDK_Thai_ngongu = $da7; - GDK_Thai_chochan = $da8; - GDK_Thai_choching = $da9; - GDK_Thai_chochang = $daa; - GDK_Thai_soso = $dab; - GDK_Thai_chochoe = $dac; - GDK_Thai_yoying = $dad; - GDK_Thai_dochada = $dae; - GDK_Thai_topatak = $daf; - GDK_Thai_thothan = $db0; - GDK_Thai_thonangmontho = $db1; - GDK_Thai_thophuthao = $db2; - GDK_Thai_nonen = $db3; - GDK_Thai_dodek = $db4; - GDK_Thai_totao = $db5; - GDK_Thai_thothung = $db6; - GDK_Thai_thothahan = $db7; - GDK_Thai_thothong = $db8; - GDK_Thai_nonu = $db9; - GDK_Thai_bobaimai = $dba; - GDK_Thai_popla = $dbb; - GDK_Thai_phophung = $dbc; - GDK_Thai_fofa = $dbd; - GDK_Thai_phophan = $dbe; - GDK_Thai_fofan = $dbf; - GDK_Thai_phosamphao = $dc0; - GDK_Thai_moma = $dc1; - GDK_Thai_yoyak = $dc2; - GDK_Thai_rorua = $dc3; - GDK_Thai_ru = $dc4; - GDK_Thai_loling = $dc5; - GDK_Thai_lu = $dc6; - GDK_Thai_wowaen = $dc7; - GDK_Thai_sosala = $dc8; - GDK_Thai_sorusi = $dc9; - GDK_Thai_sosua = $dca; - GDK_Thai_hohip = $dcb; - GDK_Thai_lochula = $dcc; - GDK_Thai_oang = $dcd; - GDK_Thai_honokhuk = $dce; - GDK_Thai_paiyannoi = $dcf; - GDK_Thai_saraa = $dd0; - GDK_Thai_maihanakat = $dd1; - GDK_Thai_saraaa = $dd2; - GDK_Thai_saraam = $dd3; - GDK_Thai_sarai = $dd4; - GDK_Thai_saraii = $dd5; - GDK_Thai_saraue = $dd6; - GDK_Thai_sarauee = $dd7; - GDK_Thai_sarau = $dd8; - GDK_Thai_sarauu = $dd9; - GDK_Thai_phinthu = $dda; - GDK_Thai_maihanakat_maitho = $dde; - GDK_Thai_baht = $ddf; - GDK_Thai_sarae = $de0; - GDK_Thai_saraae = $de1; - GDK_Thai_sarao = $de2; - GDK_Thai_saraaimaimuan = $de3; - GDK_Thai_saraaimaimalai = $de4; - GDK_Thai_lakkhangyao = $de5; - GDK_Thai_maiyamok = $de6; - GDK_Thai_maitaikhu = $de7; - GDK_Thai_maiek = $de8; - GDK_Thai_maitho = $de9; - GDK_Thai_maitri = $dea; - GDK_Thai_maichattawa = $deb; - GDK_Thai_thanthakhat = $dec; - GDK_Thai_nikhahit = $ded; - GDK_Thai_leksun = $df0; - GDK_Thai_leknung = $df1; - GDK_Thai_leksong = $df2; - GDK_Thai_leksam = $df3; - GDK_Thai_leksi = $df4; - GDK_Thai_lekha = $df5; - GDK_Thai_lekhok = $df6; - GDK_Thai_lekchet = $df7; - GDK_Thai_lekpaet = $df8; - GDK_Thai_lekkao = $df9; - GDK_Hangul = $ff31; - GDK_Hangul_Start = $ff32; - GDK_Hangul_End = $ff33; - GDK_Hangul_Hanja = $ff34; - GDK_Hangul_Jamo = $ff35; - GDK_Hangul_Romaja = $ff36; - GDK_Hangul_Codeinput = $ff37; - GDK_Hangul_Jeonja = $ff38; - GDK_Hangul_Banja = $ff39; - GDK_Hangul_PreHanja = $ff3a; - GDK_Hangul_PostHanja = $ff3b; - GDK_Hangul_SingleCandidate = $ff3c; - GDK_Hangul_MultipleCandidate = $ff3d; - GDK_Hangul_PreviousCandidate = $ff3e; - GDK_Hangul_Special = $ff3f; - GDK_Hangul_switch = $FF7E; - GDK_Hangul_Kiyeog = $ea1; - GDK_Hangul_SsangKiyeog = $ea2; - GDK_Hangul_KiyeogSios = $ea3; - GDK_Hangul_Nieun = $ea4; - GDK_Hangul_NieunJieuj = $ea5; - GDK_Hangul_NieunHieuh = $ea6; - GDK_Hangul_Dikeud = $ea7; - GDK_Hangul_SsangDikeud = $ea8; - GDK_Hangul_Rieul = $ea9; - GDK_Hangul_RieulKiyeog = $eaa; - GDK_Hangul_RieulMieum = $eab; - GDK_Hangul_RieulPieub = $eac; - GDK_Hangul_RieulSios = $ead; - GDK_Hangul_RieulTieut = $eae; - GDK_Hangul_RieulPhieuf = $eaf; - GDK_Hangul_RieulHieuh = $eb0; - GDK_Hangul_Mieum = $eb1; - GDK_Hangul_Pieub = $eb2; - GDK_Hangul_SsangPieub = $eb3; - GDK_Hangul_PieubSios = $eb4; - GDK_Hangul_Sios = $eb5; - GDK_Hangul_SsangSios = $eb6; - GDK_Hangul_Ieung = $eb7; - GDK_Hangul_Jieuj = $eb8; - GDK_Hangul_SsangJieuj = $eb9; - GDK_Hangul_Cieuc = $eba; - GDK_Hangul_Khieuq = $ebb; - GDK_Hangul_Tieut = $ebc; - GDK_Hangul_Phieuf = $ebd; - GDK_Hangul_Hieuh = $ebe; - GDK_Hangul_A = $ebf; - GDK_Hangul_AE = $ec0; - GDK_Hangul_YA = $ec1; - GDK_Hangul_YAE = $ec2; - GDK_Hangul_EO = $ec3; - GDK_Hangul_E = $ec4; - GDK_Hangul_YEO = $ec5; - GDK_Hangul_YE = $ec6; - GDK_Hangul_O = $ec7; - GDK_Hangul_WA = $ec8; - GDK_Hangul_WAE = $ec9; - GDK_Hangul_OE = $eca; - GDK_Hangul_YO = $ecb; - GDK_Hangul_U = $ecc; - GDK_Hangul_WEO = $ecd; - GDK_Hangul_WE = $ece; - GDK_Hangul_WI = $ecf; - GDK_Hangul_YU = $ed0; - GDK_Hangul_EU = $ed1; - GDK_Hangul_YI = $ed2; - GDK_Hangul_I = $ed3; - GDK_Hangul_J_Kiyeog = $ed4; - GDK_Hangul_J_SsangKiyeog = $ed5; - GDK_Hangul_J_KiyeogSios = $ed6; - GDK_Hangul_J_Nieun = $ed7; - GDK_Hangul_J_NieunJieuj = $ed8; - GDK_Hangul_J_NieunHieuh = $ed9; - GDK_Hangul_J_Dikeud = $eda; - GDK_Hangul_J_Rieul = $edb; - GDK_Hangul_J_RieulKiyeog = $edc; - GDK_Hangul_J_RieulMieum = $edd; - GDK_Hangul_J_RieulPieub = $ede; - GDK_Hangul_J_RieulSios = $edf; - GDK_Hangul_J_RieulTieut = $ee0; - GDK_Hangul_J_RieulPhieuf = $ee1; - GDK_Hangul_J_RieulHieuh = $ee2; - GDK_Hangul_J_Mieum = $ee3; - GDK_Hangul_J_Pieub = $ee4; - GDK_Hangul_J_PieubSios = $ee5; - GDK_Hangul_J_Sios = $ee6; - GDK_Hangul_J_SsangSios = $ee7; - GDK_Hangul_J_Ieung = $ee8; - GDK_Hangul_J_Jieuj = $ee9; - GDK_Hangul_J_Cieuc = $eea; - GDK_Hangul_J_Khieuq = $eeb; - GDK_Hangul_J_Tieut = $eec; - GDK_Hangul_J_Phieuf = $eed; - GDK_Hangul_J_Hieuh = $eee; - GDK_Hangul_RieulYeorinHieuh = $eef; - GDK_Hangul_SunkyeongeumMieum = $ef0; - GDK_Hangul_SunkyeongeumPieub = $ef1; - GDK_Hangul_PanSios = $ef2; - GDK_Hangul_KkogjiDalrinIeung = $ef3; - GDK_Hangul_SunkyeongeumPhieuf = $ef4; - GDK_Hangul_YeorinHieuh = $ef5; - GDK_Hangul_AraeA = $ef6; - GDK_Hangul_AraeAE = $ef7; - GDK_Hangul_J_PanSios = $ef8; - GDK_Hangul_J_KkogjiDalrinIeung = $ef9; - GDK_Hangul_J_YeorinHieuh = $efa; - GDK_Korean_Won = $eff; - - // From ui/events/keycodes/keyboard_codes_posix.h. - // KeyboardCode - VKEY_BACK = $08; - VKEY_TAB = $09; - VKEY_BACKTAB = $0A; - VKEY_CLEAR = $0C; - VKEY_RETURN = $0D; - VKEY_SHIFT = $10; - VKEY_CONTROL = $11; - VKEY_MENU = $12; - VKEY_PAUSE = $13; - VKEY_CAPITAL = $14; - VKEY_KANA = $15; - VKEY_HANGUL = $15; - VKEY_JUNJA = $17; - VKEY_FINAL = $18; - VKEY_HANJA = $19; - VKEY_KANJI = $19; - VKEY_ESCAPE = $1B; - VKEY_CONVERT = $1C; - VKEY_NONCONVERT = $1D; - VKEY_ACCEPT = $1E; - VKEY_MODECHANGE = $1F; - VKEY_SPACE = $20; - VKEY_PRIOR = $21; - VKEY_NEXT = $22; - VKEY_END = $23; - VKEY_HOME = $24; - VKEY_LEFT = $25; - VKEY_UP = $26; - VKEY_RIGHT = $27; - VKEY_DOWN = $28; - VKEY_SELECT = $29; - VKEY_PRINT = $2A; - VKEY_EXECUTE = $2B; - VKEY_SNAPSHOT = $2C; - VKEY_INSERT = $2D; - VKEY_DELETE = $2E; - VKEY_HELP = $2F; - VKEY_0 = $30; - VKEY_1 = $31; - VKEY_2 = $32; - VKEY_3 = $33; - VKEY_4 = $34; - VKEY_5 = $35; - VKEY_6 = $36; - VKEY_7 = $37; - VKEY_8 = $38; - VKEY_9 = $39; - VKEY_A = $41; - VKEY_B = $42; - VKEY_C = $43; - VKEY_D = $44; - VKEY_E = $45; - VKEY_F = $46; - VKEY_G = $47; - VKEY_H = $48; - VKEY_I = $49; - VKEY_J = $4A; - VKEY_K = $4B; - VKEY_L = $4C; - VKEY_M = $4D; - VKEY_N = $4E; - VKEY_O = $4F; - VKEY_P = $50; - VKEY_Q = $51; - VKEY_R = $52; - VKEY_S = $53; - VKEY_T = $54; - VKEY_U = $55; - VKEY_V = $56; - VKEY_W = $57; - VKEY_X = $58; - VKEY_Y = $59; - VKEY_Z = $5A; - VKEY_LWIN = $5B; - VKEY_COMMAND = VKEY_LWIN; - VKEY_RWIN = $5C; - VKEY_APPS = $5D; - VKEY_SLEEP = $5F; - VKEY_NUMPAD0 = $60; - VKEY_NUMPAD1 = $61; - VKEY_NUMPAD2 = $62; - VKEY_NUMPAD3 = $63; - VKEY_NUMPAD4 = $64; - VKEY_NUMPAD5 = $65; - VKEY_NUMPAD6 = $66; - VKEY_NUMPAD7 = $67; - VKEY_NUMPAD8 = $68; - VKEY_NUMPAD9 = $69; - VKEY_MULTIPLY = $6A; - VKEY_ADD = $6B; - VKEY_SEPARATOR = $6C; - VKEY_SUBTRACT = $6D; - VKEY_DECIMAL = $6E; - VKEY_DIVIDE = $6F; - VKEY_F1 = $70; - VKEY_F2 = $71; - VKEY_F3 = $72; - VKEY_F4 = $73; - VKEY_F5 = $74; - VKEY_F6 = $75; - VKEY_F7 = $76; - VKEY_F8 = $77; - VKEY_F9 = $78; - VKEY_F10 = $79; - VKEY_F11 = $7A; - VKEY_F12 = $7B; - VKEY_F13 = $7C; - VKEY_F14 = $7D; - VKEY_F15 = $7E; - VKEY_F16 = $7F; - VKEY_F17 = $80; - VKEY_F18 = $81; - VKEY_F19 = $82; - VKEY_F20 = $83; - VKEY_F21 = $84; - VKEY_F22 = $85; - VKEY_F23 = $86; - VKEY_F24 = $87; - VKEY_NUMLOCK = $90; - VKEY_SCROLL = $91; - VKEY_LSHIFT = $A0; - VKEY_RSHIFT = $A1; - VKEY_LCONTROL = $A2; - VKEY_RCONTROL = $A3; - VKEY_LMENU = $A4; - VKEY_RMENU = $A5; - VKEY_BROWSER_BACK = $A6; - VKEY_BROWSER_FORWARD = $A7; - VKEY_BROWSER_REFRESH = $A8; - VKEY_BROWSER_STOP = $A9; - VKEY_BROWSER_SEARCH = $AA; - VKEY_BROWSER_FAVORITES = $AB; - VKEY_BROWSER_HOME = $AC; - VKEY_VOLUME_MUTE = $AD; - VKEY_VOLUME_DOWN = $AE; - VKEY_VOLUME_UP = $AF; - VKEY_MEDIA_NEXT_TRACK = $B0; - VKEY_MEDIA_PREV_TRACK = $B1; - VKEY_MEDIA_STOP = $B2; - VKEY_MEDIA_PLAY_PAUSE = $B3; - VKEY_MEDIA_LAUNCH_MAIL = $B4; - VKEY_MEDIA_LAUNCH_MEDIA_SELECT = $B5; - VKEY_MEDIA_LAUNCH_APP1 = $B6; - VKEY_MEDIA_LAUNCH_APP2 = $B7; - VKEY_OEM_1 = $BA; - VKEY_OEM_PLUS = $BB; - VKEY_OEM_COMMA = $BC; - VKEY_OEM_MINUS = $BD; - VKEY_OEM_PERIOD = $BE; - VKEY_OEM_2 = $BF; - VKEY_OEM_3 = $C0; - VKEY_OEM_4 = $DB; - VKEY_OEM_5 = $DC; - VKEY_OEM_6 = $DD; - VKEY_OEM_7 = $DE; - VKEY_OEM_8 = $DF; - VKEY_OEM_102 = $E2; - VKEY_OEM_103 = $E3; - VKEY_OEM_104 = $E4; - VKEY_PROCESSKEY = $E5; - VKEY_PACKET = $E7; - VKEY_DBE_SBCSCHAR = $F3; - VKEY_DBE_DBCSCHAR = $F4; - VKEY_ATTN = $F6; - VKEY_CRSEL = $F7; - VKEY_EXSEL = $F8; - VKEY_EREOF = $F9; - VKEY_PLAY = $FA; - VKEY_ZOOM = $FB; - VKEY_NONAME = $FC; - VKEY_PA1 = $FD; - VKEY_OEM_CLEAR = $FE; - VKEY_UNKNOWN = 0; - VKEY_WLAN = $97; - VKEY_POWER = $98; - VKEY_BRIGHTNESS_DOWN = $D8; - VKEY_BRIGHTNESS_UP = $D9; - VKEY_KBD_BRIGHTNESS_DOWN = $DA; - VKEY_KBD_BRIGHTNESS_UP = $E8; - VKEY_ALTGR = $E1; - VKEY_COMPOSE = $E6; - - kHardwareCodeToGDKKeyval : array[0..116] of integer = ( - 0, // 0x00: - 0, // 0x01: - 0, // 0x02: - 0, // 0x03: - 0, // 0x04: - 0, // 0x05: - 0, // 0x06: - 0, // 0x07: - 0, // 0x08: - 0, // 0x09: GDK_Escape - GDK_1, // 0x0A: GDK_1 - GDK_2, // 0x0B: GDK_2 - GDK_3, // 0x0C: GDK_3 - GDK_4, // 0x0D: GDK_4 - GDK_5, // 0x0E: GDK_5 - GDK_6, // 0x0F: GDK_6 - GDK_7, // 0x10: GDK_7 - GDK_8, // 0x11: GDK_8 - GDK_9, // 0x12: GDK_9 - GDK_0, // 0x13: GDK_0 - GDK_minus, // 0x14: GDK_minus - GDK_equal, // 0x15: GDK_equal - 0, // 0x16: GDK_BackSpace - 0, // 0x17: GDK_Tab - GDK_q, // 0x18: GDK_q - GDK_w, // 0x19: GDK_w - GDK_e, // 0x1A: GDK_e - GDK_r, // 0x1B: GDK_r - GDK_t, // 0x1C: GDK_t - GDK_y, // 0x1D: GDK_y - GDK_u, // 0x1E: GDK_u - GDK_i, // 0x1F: GDK_i - GDK_o, // 0x20: GDK_o - GDK_p, // 0x21: GDK_p - GDK_bracketleft, // 0x22: GDK_bracketleft - GDK_bracketright, // 0x23: GDK_bracketright - 0, // 0x24: GDK_Return - 0, // 0x25: GDK_Control_L - GDK_a, // 0x26: GDK_a - GDK_s, // 0x27: GDK_s - GDK_d, // 0x28: GDK_d - GDK_f, // 0x29: GDK_f - GDK_g, // 0x2A: GDK_g - GDK_h, // 0x2B: GDK_h - GDK_j, // 0x2C: GDK_j - GDK_k, // 0x2D: GDK_k - GDK_l, // 0x2E: GDK_l - GDK_semicolon, // 0x2F: GDK_semicolon - GDK_apostrophe, // 0x30: GDK_apostrophe - GDK_grave, // 0x31: GDK_grave - 0, // 0x32: GDK_Shift_L - GDK_backslash, // 0x33: GDK_backslash - GDK_z, // 0x34: GDK_z - GDK_x, // 0x35: GDK_x - GDK_c, // 0x36: GDK_c - GDK_v, // 0x37: GDK_v - GDK_b, // 0x38: GDK_b - GDK_n, // 0x39: GDK_n - GDK_m, // 0x3A: GDK_m - GDK_comma, // 0x3B: GDK_comma - GDK_period, // 0x3C: GDK_period - GDK_slash, // 0x3D: GDK_slash - 0, // 0x3E: GDK_Shift_R - 0, // 0x3F: - 0, // 0x40: - 0, // 0x41: - 0, // 0x42: - 0, // 0x43: - 0, // 0x44: - 0, // 0x45: - 0, // 0x46: - 0, // 0x47: - 0, // 0x48: - 0, // 0x49: - 0, // 0x4A: - 0, // 0x4B: - 0, // 0x4C: - 0, // 0x4D: - 0, // 0x4E: - 0, // 0x4F: - 0, // 0x50: - 0, // 0x51: - 0, // 0x52: - 0, // 0x53: - 0, // 0x54: - 0, // 0x55: - 0, // 0x56: - 0, // 0x57: - 0, // 0x58: - 0, // 0x59: - 0, // 0x5A: - 0, // 0x5B: - 0, // 0x5C: - 0, // 0x5D: - 0, // 0x5E: - 0, // 0x5F: - 0, // 0x60: - 0, // 0x61: - 0, // 0x62: - 0, // 0x63: - 0, // 0x64: - 0, // 0x65: - 0, // 0x66: - 0, // 0x67: - 0, // 0x68: - 0, // 0x69: - 0, // 0x6A: - 0, // 0x6B: - 0, // 0x6C: - 0, // 0x6D: - 0, // 0x6E: - 0, // 0x6F: - 0, // 0x70: - 0, // 0x71: - 0, // 0x72: - GDK_Super_L, // 0x73: GDK_Super_L - GDK_Super_R // 0x74: GDK_Super_R - ); - {$ENDIF}{$ENDIF}{$ENDIF} - implementation end. diff --git a/source/uCEFLinuxConstants.pas b/source/uCEFLinuxConstants.pas new file mode 100644 index 00000000..d7f82256 --- /dev/null +++ b/source/uCEFLinuxConstants.pas @@ -0,0 +1,4045 @@ +// ************************************************************************ +// ***************************** CEF4Delphi ******************************* +// ************************************************************************ +// +// CEF4Delphi is based on DCEF3 which uses CEF to embed a chromium-based +// browser in Delphi applications. +// +// The original license of DCEF3 still applies to CEF4Delphi. +// +// For more information about CEF4Delphi visit : +// https://www.briskbard.com/index.php?lang=en&pageid=cef +// +// Copyright © 2021 Salvador Diaz Fau. All rights reserved. +// +// ************************************************************************ +// ************ vvvv Original license and comments below vvvv ************* +// ************************************************************************ +(* + * Delphi Chromium Embedded 3 + * + * Usage allowed under the restrictions of the Lesser GNU General Public License + * or alternatively the restrictions of the Mozilla Public License 1.1 + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for + * the specific language governing rights and limitations under the License. + * + * Unit owner : Henri Gourvest + * Web site : http://www.progdigy.com + * Repository : http://code.google.com/p/delphichromiumembedded/ + * Group : http://groups.google.com/group/delphichromiumembedded + * + * Embarcadero Technologies, Inc is not permitted to use or redistribute + * this source code without explicit permission. + * + *) + +unit uCEFLinuxConstants; + +{$IFDEF FPC} + {$MODE OBJFPC}{$H+} +{$ENDIF} + +{$IFNDEF CPUX64}{$ALIGN ON}{$ENDIF} +{$MINENUMSIZE 4} + +{$I cef.inc} + +interface + +{$IFDEF LINUX} +const + // These are the GDK constants included in the Lazarus gdkkeysyms.pp file + GDK_VoidSymbol = $FFFFFF; + GDK_BackSpace = $FF08; + GDK_Tab = $FF09; + GDK_Linefeed = $FF0A; + GDK_Clear_Key = $FF0B; + GDK_Return = $FF0D; + GDK_Pause = $FF13; + GDK_Scroll_Lock = $FF14; + GDK_Sys_Req = $FF15; + GDK_Escape = $FF1B; + GDK_Delete_Key = $FFFF; + GDK_Multi_key = $FF20; + GDK_SingleCandidate = $FF3C; + GDK_MultipleCandidate = $FF3D; + GDK_PreviousCandidate = $FF3E; + GDK_Kanji = $FF21; + GDK_Muhenkan = $FF22; + GDK_Henkan_Mode = $FF23; + GDK_Henkan = $FF23; + GDK_Romaji = $FF24; + GDK_Hiragana = $FF25; + GDK_Katakana = $FF26; + GDK_Hiragana_Katakana = $FF27; + GDK_Zenkaku = $FF28; + GDK_Hankaku = $FF29; + GDK_Zenkaku_Hankaku = $FF2A; + GDK_Touroku = $FF2B; + GDK_Massyo = $FF2C; + GDK_Kana_Lock = $FF2D; + GDK_Kana_Shift = $FF2E; + GDK_Eisu_Shift = $FF2F; + GDK_Eisu_toggle = $FF30; + GDK_Zen_Koho = $FF3D; + GDK_Mae_Koho = $FF3E; + GDK_Home = $FF50; + GDK_Left = $FF51; + GDK_Up = $FF52; + GDK_Right = $FF53; + GDK_Down = $FF54; + GDK_Prior = $FF55; + GDK_Page_Up = $FF55; + GDK_Next = $FF56; + GDK_Page_Down = $FF56; + GDK_End = $FF57; + GDK_Begin = $FF58; + GDK_Select = $FF60; + GDK_Print = $FF61; + GDK_Execute = $FF62; + GDK_Insert = $FF63; + GDK_Undo = $FF65; + GDK_Redo = $FF66; + GDK_Menu = $FF67; + GDK_Find = $FF68; + GDK_Cancel = $FF69; + GDK_Help = $FF6A; + GDK_Break = $FF6B; + GDK_Mode_switch = $FF7E; + GDK_script_switch = $FF7E; + GDK_Num_Lock = $FF7F; + GDK_KP_Space = $FF80; + GDK_KP_Tab = $FF89; + GDK_KP_Enter = $FF8D; + GDK_KP_F1 = $FF91; + GDK_KP_F2 = $FF92; + GDK_KP_F3 = $FF93; + GDK_KP_F4 = $FF94; + GDK_KP_Home = $FF95; + GDK_KP_Left = $FF96; + GDK_KP_Up = $FF97; + GDK_KP_Right = $FF98; + GDK_KP_Down = $FF99; + GDK_KP_Prior = $FF9A; + GDK_KP_Page_Up = $FF9A; + GDK_KP_Next = $FF9B; + GDK_KP_Page_Down = $FF9B; + GDK_KP_End = $FF9C; + GDK_KP_Begin = $FF9D; + GDK_KP_Insert = $FF9E; + GDK_KP_Delete = $FF9F; + GDK_KP_Equal = $FFBD; + GDK_KP_Multiply = $FFAA; + GDK_KP_Add = $FFAB; + GDK_KP_Separator = $FFAC; + GDK_KP_Subtract = $FFAD; + GDK_KP_Decimal = $FFAE; + GDK_KP_Divide = $FFAF; + GDK_KP_0 = $FFB0; + GDK_KP_1 = $FFB1; + GDK_KP_2 = $FFB2; + GDK_KP_3 = $FFB3; + GDK_KP_4 = $FFB4; + GDK_KP_5 = $FFB5; + GDK_KP_6 = $FFB6; + GDK_KP_7 = $FFB7; + GDK_KP_8 = $FFB8; + GDK_KP_9 = $FFB9; + GDK_F1 = $FFBE; + GDK_F2 = $FFBF; + GDK_F3 = $FFC0; + GDK_F4 = $FFC1; + GDK_F5 = $FFC2; + GDK_F6 = $FFC3; + GDK_F7 = $FFC4; + GDK_F8 = $FFC5; + GDK_F9 = $FFC6; + GDK_F10 = $FFC7; + GDK_F11 = $FFC8; + GDK_L1 = $FFC8; + GDK_F12 = $FFC9; + GDK_L2 = $FFC9; + GDK_F13 = $FFCA; + GDK_L3 = $FFCA; + GDK_F14 = $FFCB; + GDK_L4 = $FFCB; + GDK_F15 = $FFCC; + GDK_L5 = $FFCC; + GDK_F16 = $FFCD; + GDK_L6 = $FFCD; + GDK_F17 = $FFCE; + GDK_L7 = $FFCE; + GDK_F18 = $FFCF; + GDK_L8 = $FFCF; + GDK_F19 = $FFD0; + GDK_L9 = $FFD0; + GDK_F20 = $FFD1; + GDK_L10 = $FFD1; + GDK_F21 = $FFD2; + GDK_R1 = $FFD2; + GDK_F22 = $FFD3; + GDK_R2 = $FFD3; + GDK_F23 = $FFD4; + GDK_R3 = $FFD4; + GDK_F24 = $FFD5; + GDK_R4 = $FFD5; + GDK_F25 = $FFD6; + GDK_R5 = $FFD6; + GDK_F26 = $FFD7; + GDK_R6 = $FFD7; + GDK_F27 = $FFD8; + GDK_R7 = $FFD8; + GDK_F28 = $FFD9; + GDK_R8 = $FFD9; + GDK_F29 = $FFDA; + GDK_R9 = $FFDA; + GDK_F30 = $FFDB; + GDK_R10 = $FFDB; + GDK_F31 = $FFDC; + GDK_R11 = $FFDC; + GDK_F32 = $FFDD; + GDK_R12 = $FFDD; + GDK_F33 = $FFDE; + GDK_R13 = $FFDE; + GDK_F34 = $FFDF; + GDK_R14 = $FFDF; + GDK_F35 = $FFE0; + GDK_R15 = $FFE0; + GDK_Shift_L = $FFE1; + GDK_Shift_R = $FFE2; + GDK_Control_L = $FFE3; + GDK_Control_R = $FFE4; + GDK_Caps_Lock = $FFE5; + GDK_Shift_Lock = $FFE6; + GDK_Meta_L = $FFE7; + GDK_Meta_R = $FFE8; + GDK_Alt_L = $FFE9; + GDK_Alt_R = $FFEA; + GDK_Super_L = $FFEB; + GDK_Super_R = $FFEC; + GDK_Hyper_L = $FFED; + GDK_Hyper_R = $FFEE; + GDK_ISO_Lock = $FE01; + GDK_ISO_Level2_Latch = $FE02; + GDK_ISO_Level3_Shift = $FE03; + GDK_ISO_Level3_Latch = $FE04; + GDK_ISO_Level3_Lock = $FE05; + GDK_ISO_Group_Shift = $FF7E; + GDK_ISO_Group_Latch = $FE06; + GDK_ISO_Group_Lock = $FE07; + GDK_ISO_Next_Group = $FE08; + GDK_ISO_Next_Group_Lock = $FE09; + GDK_ISO_Prev_Group = $FE0A; + GDK_ISO_Prev_Group_Lock = $FE0B; + GDK_ISO_First_Group = $FE0C; + GDK_ISO_First_Group_Lock = $FE0D; + GDK_ISO_Last_Group = $FE0E; + GDK_ISO_Last_Group_Lock = $FE0F; + GDK_ISO_Left_Tab = $FE20; + GDK_ISO_Move_Line_Up = $FE21; + GDK_ISO_Move_Line_Down = $FE22; + GDK_ISO_Partial_Line_Up = $FE23; + GDK_ISO_Partial_Line_Down = $FE24; + GDK_ISO_Partial_Space_Left = $FE25; + GDK_ISO_Partial_Space_Right = $FE26; + GDK_ISO_Set_Margin_Left = $FE27; + GDK_ISO_Set_Margin_Right = $FE28; + GDK_ISO_Release_Margin_Left = $FE29; + GDK_ISO_Release_Margin_Right = $FE2A; + GDK_ISO_Release_Both_Margins = $FE2B; + GDK_ISO_Fast_Cursor_Left = $FE2C; + GDK_ISO_Fast_Cursor_Right = $FE2D; + GDK_ISO_Fast_Cursor_Up = $FE2E; + GDK_ISO_Fast_Cursor_Down = $FE2F; + GDK_ISO_Continuous_Underline = $FE30; + GDK_ISO_Discontinuous_Underline = $FE31; + GDK_ISO_Emphasize = $FE32; + GDK_ISO_Center_Object = $FE33; + GDK_ISO_Enter = $FE34; + GDK_dead_grave = $FE50; + GDK_dead_acute = $FE51; + GDK_dead_circumflex = $FE52; + GDK_dead_tilde = $FE53; + GDK_dead_macron = $FE54; + GDK_dead_breve = $FE55; + GDK_dead_abovedot = $FE56; + GDK_dead_diaeresis = $FE57; + GDK_dead_abovering = $FE58; + GDK_dead_doubleacute = $FE59; + GDK_dead_caron = $FE5A; + GDK_dead_cedilla = $FE5B; + GDK_dead_ogonek = $FE5C; + GDK_dead_iota = $FE5D; + GDK_dead_voiced_sound = $FE5E; + GDK_dead_semivoiced_sound = $FE5F; + GDK_dead_belowdot = $FE60; + GDK_First_Virtual_Screen = $FED0; + GDK_Prev_Virtual_Screen = $FED1; + GDK_Next_Virtual_Screen = $FED2; + GDK_Last_Virtual_Screen = $FED4; + GDK_Terminate_Server = $FED5; + GDK_AccessX_Enable = $FE70; + GDK_AccessX_Feedback_Enable = $FE71; + GDK_RepeatKeys_Enable = $FE72; + GDK_SlowKeys_Enable = $FE73; + GDK_BounceKeys_Enable = $FE74; + GDK_StickyKeys_Enable = $FE75; + GDK_MouseKeys_Enable = $FE76; + GDK_MouseKeys_Accel_Enable = $FE77; + GDK_Overlay1_Enable = $FE78; + GDK_Overlay2_Enable = $FE79; + GDK_AudibleBell_Enable = $FE7A; + GDK_Pointer_Left = $FEE0; + GDK_Pointer_Right = $FEE1; + GDK_Pointer_Up = $FEE2; + GDK_Pointer_Down = $FEE3; + GDK_Pointer_UpLeft = $FEE4; + GDK_Pointer_UpRight = $FEE5; + GDK_Pointer_DownLeft = $FEE6; + GDK_Pointer_DownRight = $FEE7; + GDK_Pointer_Button_Dflt = $FEE8; + GDK_Pointer_Button1 = $FEE9; + GDK_Pointer_Button2 = $FEEA; + GDK_Pointer_Button3 = $FEEB; + GDK_Pointer_Button4 = $FEEC; + GDK_Pointer_Button5 = $FEED; + GDK_Pointer_DblClick_Dflt = $FEEE; + GDK_Pointer_DblClick1 = $FEEF; + GDK_Pointer_DblClick2 = $FEF0; + GDK_Pointer_DblClick3 = $FEF1; + GDK_Pointer_DblClick4 = $FEF2; + GDK_Pointer_DblClick5 = $FEF3; + GDK_Pointer_Drag_Dflt = $FEF4; + GDK_Pointer_Drag1 = $FEF5; + GDK_Pointer_Drag2 = $FEF6; + GDK_Pointer_Drag3 = $FEF7; + GDK_Pointer_Drag4 = $FEF8; + GDK_Pointer_Drag5 = $FEFD; + GDK_Pointer_EnableKeys = $FEF9; + GDK_Pointer_Accelerate = $FEFA; + GDK_Pointer_DfltBtnNext = $FEFB; + GDK_Pointer_DfltBtnPrev = $FEFC; + GDK_3270_Duplicate = $FD01; + GDK_3270_FieldMark = $FD02; + GDK_3270_Right2 = $FD03; + GDK_3270_Left2 = $FD04; + GDK_3270_BackTab = $FD05; + GDK_3270_EraseEOF = $FD06; + GDK_3270_EraseInput = $FD07; + GDK_3270_Reset = $FD08; + GDK_3270_Quit = $FD09; + GDK_3270_PA1 = $FD0A; + GDK_3270_PA2 = $FD0B; + GDK_3270_PA3 = $FD0C; + GDK_3270_Test = $FD0D; + GDK_3270_Attn = $FD0E; + GDK_3270_CursorBlink = $FD0F; + GDK_3270_AltCursor = $FD10; + GDK_3270_KeyClick = $FD11; + GDK_3270_Jump = $FD12; + GDK_3270_Ident = $FD13; + GDK_3270_Rule = $FD14; + GDK_3270_Copy = $FD15; + GDK_3270_Play = $FD16; + GDK_3270_Setup = $FD17; + GDK_3270_Record = $FD18; + GDK_3270_ChangeScreen = $FD19; + GDK_3270_DeleteWord = $FD1A; + GDK_3270_ExSelect = $FD1B; + GDK_3270_CursorSelect = $FD1C; + GDK_3270_PrintScreen = $FD1D; + GDK_3270_Enter = $FD1E; + GDK_space = $020; + GDK_exclam = $021; + GDK_quotedbl = $022; + GDK_numbersign = $023; + GDK_dollar = $024; + GDK_percent = $025; + GDK_ampersand = $026; + GDK_apostrophe = $027; + GDK_quoteright = $027; + GDK_parenleft = $028; + GDK_parenright = $029; + GDK_asterisk = $02a; + GDK_plus_key = $02b; + GDK_comma = $02c; + GDK_minus = $02d; + GDK_period = $02e; + GDK_slash = $02f; + GDK_0 = $030; + GDK_1 = $031; + GDK_2 = $032; + GDK_3 = $033; + GDK_4 = $034; + GDK_5 = $035; + GDK_6 = $036; + GDK_7 = $037; + GDK_8 = $038; + GDK_9 = $039; + GDK_colon = $03a; + GDK_semicolon = $03b; + GDK_less = $03c; + GDK_equal = $03d; + GDK_greater = $03e; + GDK_question = $03f; + GDK_at = $040; + GDK_Capital_A = $041; + GDK_Capital_B = $042; + GDK_Capital_C = $043; + GDK_Capital_D = $044; + GDK_Capital_E = $045; + GDK_Capital_F = $046; + GDK_Capital_G = $047; + GDK_Capital_H = $048; + GDK_Capital_I = $049; + GDK_Capital_J = $04a; + GDK_Capital_K = $04b; + GDK_Capital_L = $04c; + GDK_Capital_M = $04d; + GDK_Capital_N = $04e; + GDK_Capital_O = $04f; + GDK_Capital_P = $050; + GDK_Capital_Q = $051; + GDK_Capital_R = $052; + GDK_Capital_S = $053; + GDK_Capital_T = $054; + GDK_Capital_U = $055; + GDK_Capital_V = $056; + GDK_Capital_W = $057; + GDK_Capital_X = $058; + GDK_Capital_Y = $059; + GDK_Capital_Z = $05a; + GDK_bracketleft = $05b; + GDK_backslash = $05c; + GDK_bracketright = $05d; + GDK_asciicircum = $05e; + GDK_underscore = $05f; + GDK_grave = $060; + GDK_quoteleft = $060; + GDK_a = $061; + GDK_b = $062; + GDK_c = $063; + GDK_d = $064; + GDK_e = $065; + GDK_f = $066; + GDK_g = $067; + GDK_h = $068; + GDK_i = $069; + GDK_j = $06a; + GDK_k = $06b; + GDK_l = $06c; + GDK_m = $06d; + GDK_n = $06e; + GDK_o = $06f; + GDK_p = $070; + GDK_q = $071; + GDK_r = $072; + GDK_s = $073; + GDK_t = $074; + GDK_u = $075; + GDK_v = $076; + GDK_w = $077; + GDK_x = $078; + GDK_y = $079; + GDK_z = $07a; + GDK_braceleft = $07b; + GDK_bar = $07c; + GDK_braceright = $07d; + GDK_asciitilde = $07e; + GDK_nobreakspace = $0a0; + GDK_exclamdown = $0a1; + GDK_cent = $0a2; + GDK_sterling = $0a3; + GDK_currency = $0a4; + GDK_yen = $0a5; + GDK_brokenbar = $0a6; + GDK_section = $0a7; + GDK_diaeresis = $0a8; + GDK_copyright = $0a9; + GDK_ordfeminine = $0aa; + GDK_guillemotleft = $0ab; + GDK_notsign = $0ac; + GDK_hyphen = $0ad; + GDK_registered = $0ae; + GDK_macron = $0af; + GDK_degree = $0b0; + GDK_plusminus = $0b1; + GDK_twosuperior = $0b2; + GDK_threesuperior = $0b3; + GDK_acute = $0b4; + GDK_mu = $0b5; + GDK_paragraph = $0b6; + GDK_periodcentered = $0b7; + GDK_cedilla = $0b8; + GDK_onesuperior = $0b9; + GDK_masculine = $0ba; + GDK_guillemotright = $0bb; + GDK_onequarter = $0bc; + GDK_onehalf = $0bd; + GDK_threequarters = $0be; + GDK_questiondown = $0bf; + GDK_Capital_Agrave = $0c0; + GDK_Capital_Aacute = $0c1; + GDK_Capital_Acircumflex = $0c2; + GDK_Capital_Atilde = $0c3; + GDK_Capital_Adiaeresis = $0c4; + GDK_Capital_Aring = $0c5; + GDK_Capital_AE = $0c6; + GDK_Capital_Ccedilla = $0c7; + GDK_Capital_Egrave = $0c8; + GDK_Capital_Eacute = $0c9; + GDK_Capital_Ecircumflex = $0ca; + GDK_Capital_Ediaeresis = $0cb; + GDK_Capital_Igrave = $0cc; + GDK_Capital_Iacute = $0cd; + GDK_Capital_Icircumflex = $0ce; + GDK_Capital_Idiaeresis = $0cf; + GDK_Capital_ETH = $0d0; + GDK_Capital_Ntilde = $0d1; + GDK_Capital_Ograve = $0d2; + GDK_Capital_Oacute = $0d3; + GDK_Capital_Ocircumflex = $0d4; + GDK_Capital_Otilde = $0d5; + GDK_Capital_Odiaeresis = $0d6; + GDK_Capital_multiply = $0d7; + GDK_Capital_Ooblique = $0d8; + GDK_Capital_Ugrave = $0d9; + GDK_Capital_Uacute = $0da; + GDK_Capital_Ucircumflex = $0db; + GDK_Capital_Udiaeresis = $0dc; + GDK_Capital_Yacute = $0dd; + GDK_Capital_THORN = $0de; + GDK_Thorn = $0de; + GDK_ssharp = $0df; + GDK_agrave = $0e0; + GDK_aacute = $0e1; + GDK_acircumflex = $0e2; + GDK_atilde = $0e3; + GDK_adiaeresis = $0e4; + GDK_aring = $0e5; + GDK_ae = $0e6; + GDK_ccedilla = $0e7; + GDK_egrave = $0e8; + GDK_eacute = $0e9; + GDK_ecircumflex = $0ea; + GDK_ediaeresis = $0eb; + GDK_igrave = $0ec; + GDK_iacute = $0ed; + GDK_icircumflex = $0ee; + GDK_idiaeresis = $0ef; + GDK_eth = $0f0; + GDK_ntilde = $0f1; + GDK_ograve = $0f2; + GDK_oacute = $0f3; + GDK_ocircumflex = $0f4; + GDK_otilde = $0f5; + GDK_odiaeresis = $0f6; + GDK_division = $0f7; + GDK_oslash = $0f8; + GDK_ugrave = $0f9; + GDK_uacute = $0fa; + GDK_ucircumflex = $0fb; + GDK_udiaeresis = $0fc; + GDK_yacute = $0fd; + GDK_small_thorn = $0fe; + GDK_ydiaeresis = $0ff; + GDK_Capital_Aogonek = $1a1; + GDK_Capital_breve = $1a2; + GDK_Capital_Lstroke = $1a3; + GDK_Capital_Lcaron = $1a5; + GDK_Capital_Sacute = $1a6; + GDK_Capital_Scaron = $1a9; + GDK_Capital_Scedilla = $1aa; + GDK_Capital_Tcaron = $1ab; + GDK_Capital_Zacute = $1ac; + GDK_Capital_Zcaron = $1ae; + GDK_Capital_Zabovedot = $1af; + GDK_aogonek = $1b1; + GDK_ogonek = $1b2; + GDK_lstroke = $1b3; + GDK_lcaron = $1b5; + GDK_sacute = $1b6; + GDK_caron = $1b7; + GDK_scaron = $1b9; + GDK_scedilla = $1ba; + GDK_tcaron = $1bb; + GDK_zacute = $1bc; + GDK_doubleacute = $1bd; + GDK_zcaron = $1be; + GDK_zabovedot = $1bf; + GDK_Capital_Racute = $1c0; + GDK_Capital_Abreve = $1c3; + GDK_Capital_Lacute = $1c5; + GDK_Capital_Cacute = $1c6; + GDK_Capital_Ccaron = $1c8; + GDK_Capital_Eogonek = $1ca; + GDK_Capital_Ecaron = $1cc; + GDK_Capital_Dcaron = $1cf; + GDK_Capital_Dstroke = $1d0; + GDK_Capital_Nacute = $1d1; + GDK_Capital_Ncaron = $1d2; + GDK_Capital_Odoubleacute = $1d5; + GDK_Capital_Rcaron = $1d8; + GDK_Capital_Uring = $1d9; + GDK_Capital_Udoubleacute = $1db; + GDK_Capital_Tcedilla = $1de; + GDK_racute = $1e0; + GDK_abreve = $1e3; + GDK_lacute = $1e5; + GDK_cacute = $1e6; + GDK_ccaron = $1e8; + GDK_eogonek = $1ea; + GDK_ecaron = $1ec; + GDK_dcaron = $1ef; + GDK_dstroke = $1f0; + GDK_nacute = $1f1; + GDK_ncaron = $1f2; + GDK_odoubleacute = $1f5; + GDK_udoubleacute = $1fb; + GDK_rcaron = $1f8; + GDK_uring = $1f9; + GDK_tcedilla = $1fe; + GDK_abovedot = $1ff; + GDK_Capital_Hstroke = $2a1; + GDK_Capital_Hcircumflex = $2a6; + GDK_Capital_Iabovedot = $2a9; + GDK_Capital_Gbreve = $2ab; + GDK_Capital_Jcircumflex = $2ac; + GDK_hstroke = $2b1; + GDK_hcircumflex = $2b6; + GDK_idotless = $2b9; + GDK_gbreve = $2bb; + GDK_jcircumflex = $2bc; + GDK_Capital_Cabovedot = $2c5; + GDK_Capital_Ccircumflex = $2c6; + GDK_Capital_Gabovedot = $2d5; + GDK_Capital_Gcircumflex = $2d8; + GDK_Capital_Ubreve = $2dd; + GDK_Capital_Scircumflex = $2de; + GDK_cabovedot = $2e5; + GDK_ccircumflex = $2e6; + GDK_gabovedot = $2f5; + GDK_gcircumflex = $2f8; + GDK_ubreve = $2fd; + GDK_scircumflex = $2fe; + GDK_kra = $3a2; + GDK_kappa = $3a2; + GDK_Capital_Rcedilla = $3a3; + GDK_Capital_Itilde = $3a5; + GDK_Capital_Lcedilla = $3a6; + GDK_Capital_Emacron = $3aa; + GDK_Capital_Gcedilla = $3ab; + GDK_Capital_Tslash = $3ac; + GDK_rcedilla = $3b3; + GDK_itilde = $3b5; + GDK_lcedilla = $3b6; + GDK_emacron = $3ba; + GDK_gcedilla = $3bb; + GDK_tslash = $3bc; + GDK_Capital_ENG = $3bd; + GDK_eng = $3bf; + GDK_Capital_Amacron = $3c0; + GDK_Capital_Iogonek = $3c7; + GDK_Capital_Eabovedot = $3cc; + GDK_Capital_Imacron = $3cf; + GDK_Capital_Ncedilla = $3d1; + GDK_Capital_Omacron = $3d2; + GDK_Capital_Kcedilla = $3d3; + GDK_Capital_Uogonek = $3d9; + GDK_Capital_Utilde = $3dd; + GDK_Capital_Umacron = $3de; + GDK_amacron = $3e0; + GDK_iogonek = $3e7; + GDK_eabovedot = $3ec; + GDK_imacron = $3ef; + GDK_ncedilla = $3f1; + GDK_omacron = $3f2; + GDK_kcedilla = $3f3; + GDK_uogonek = $3f9; + GDK_utilde = $3fd; + GDK_umacron = $3fe; + GDK_overline = $47e; + GDK_kana_fullstop = $4a1; + GDK_kana_openingbracket = $4a2; + GDK_kana_closingbracket = $4a3; + GDK_kana_comma = $4a4; + GDK_kana_conjunctive = $4a5; + GDK_kana_middledot = $4a5; + GDK_kana_WO = $4a6; + GDK_kana_a = $4a7; + GDK_kana_i = $4a8; + GDK_kana_u = $4a9; + GDK_kana_e = $4aa; + GDK_kana_o = $4ab; + GDK_kana_ya = $4ac; + GDK_kana_yu = $4ad; + GDK_kana_yo = $4ae; + GDK_kana_tsu = $4af; + GDK_kana_tu = $4af; + GDK_prolongedsound = $4b0; + GDK_kana_Capital__A = $4b1; + GDK_kana_Capital__I = $4b2; + GDK_kana_Capital__U = $4b3; + GDK_kana_Capital__E = $4b4; + GDK_kana_Capital__O = $4b5; + GDK_kana_Capital__KA = $4b6; + GDK_kana_Capital__KI = $4b7; + GDK_kana_Capital__KU = $4b8; + GDK_kana_Capital__KE = $4b9; + GDK_kana_Capital__KO = $4ba; + GDK_kana_Capital__SA = $4bb; + GDK_kana_Capital__SHI = $4bc; + GDK_kana_Capital__SU = $4bd; + GDK_kana_Capital__SE = $4be; + GDK_kana_Capital__SO = $4bf; + GDK_kana_Capital__TA = $4c0; + GDK_kana_Capital__CHI = $4c1; + GDK_kana_Capital__TI = $4c1; + GDK_kana_Capital__TSU = $4c2; + GDK_kana_Capital__TU = $4c2; + GDK_kana_Capital__TE = $4c3; + GDK_kana_Capital__TO = $4c4; + GDK_kana_Capital__NA = $4c5; + GDK_kana_Capital__NI = $4c6; + GDK_kana_Capital__NU = $4c7; + GDK_kana_Capital__NE = $4c8; + GDK_kana_Capital__NO = $4c9; + GDK_kana_Capital__HA = $4ca; + GDK_kana_Capital__HI = $4cb; + GDK_kana_Capital__FU = $4cc; + GDK_kana_Capital__HU = $4cc; + GDK_kana_Capital__HE = $4cd; + GDK_kana_Capital__HO = $4ce; + GDK_kana_Capital__MA = $4cf; + GDK_kana_Capital__MI = $4d0; + GDK_kana_Capital__MU = $4d1; + GDK_kana_Capital__ME = $4d2; + GDK_kana_Capital__MO = $4d3; + GDK_kana_Capital__YA = $4d4; + GDK_kana_Capital__YU = $4d5; + GDK_kana_Capital__YO = $4d6; + GDK_kana_Capital__RA = $4d7; + GDK_kana_Capital__RI = $4d8; + GDK_kana_Capital__RU = $4d9; + GDK_kana_Capital__RE = $4da; + GDK_kana_Capital__RO = $4db; + GDK_kana_Capital__WA = $4dc; + GDK_kana_Capital__N = $4dd; + GDK_voicedsound = $4de; + GDK_semivoicedsound = $4df; + GDK_kana_switch = $FF7E; + GDK_arabic_comma = $5ac; + GDK_arabic_semicolon = $5bb; + GDK_arabic_question_mark = $5bf; + GDK_arabic_hamza = $5c1; + GDK_arabic_maddaonalef = $5c2; + GDK_arabic_hamzaonalef = $5c3; + GDK_arabic_hamzaonwaw = $5c4; + GDK_arabic_hamzaunderalef = $5c5; + GDK_arabic_hamzaonyeh = $5c6; + GDK_arabic_alef = $5c7; + GDK_arabic_beh = $5c8; + GDK_arabic_tehmarbuta = $5c9; + GDK_arabic_teh = $5ca; + GDK_arabic_theh = $5cb; + GDK_arabic_jeem = $5cc; + GDK_arabic_hah = $5cd; + GDK_arabic_khah = $5ce; + GDK_arabic_dal = $5cf; + GDK_arabic_thal = $5d0; + GDK_arabic_ra = $5d1; + GDK_arabic_zain = $5d2; + GDK_arabic_seen = $5d3; + GDK_arabic_sheen = $5d4; + GDK_arabic_sad = $5d5; + GDK_arabic_dad = $5d6; + GDK_arabic_tah = $5d7; + GDK_arabic_zah = $5d8; + GDK_arabic_ain = $5d9; + GDK_arabic_ghain = $5da; + GDK_arabic_tatweel = $5e0; + GDK_arabic_feh = $5e1; + GDK_arabic_qaf = $5e2; + GDK_arabic_kaf = $5e3; + GDK_arabic_lam = $5e4; + GDK_arabic_meem = $5e5; + GDK_arabic_noon = $5e6; + GDK_arabic_ha = $5e7; + GDK_arabic_heh = $5e7; + GDK_arabic_waw = $5e8; + GDK_arabic_alefmaksura = $5e9; + GDK_arabic_yeh = $5ea; + GDK_arabic_fathatan = $5eb; + GDK_arabic_dammatan = $5ec; + GDK_arabic_kasratan = $5ed; + GDK_arabic_fatha = $5ee; + GDK_arabic_damma = $5ef; + GDK_arabic_kasra = $5f0; + GDK_arabic_shadda = $5f1; + GDK_arabic_sukun = $5f2; + GDK_arabic_switch = $FF7E; + GDK_serbian_dje = $6a1; + GDK_macedonia_gje = $6a2; + GDK_cyrillic_io = $6a3; + GDK_ukrainian_ie = $6a4; + GDK_ukrainian_je = $6a4; + GDK_macedonia_dse = $6a5; + GDK_ukrainian_i = $6a6; + GDK_ukrainian_yi = $6a7; + GDK_cyrillic_je = $6a8; + GDK_serbian_je = $6a8; + GDK_cyrillic_lje = $6a9; + GDK_serbian_lje = $6a9; + GDK_cyrillic_nje = $6aa; + GDK_serbian_nje = $6aa; + GDK_serbian_tshe = $6ab; + GDK_macedonia_kje = $6ac; + GDK_byelorussian_shortu = $6ae; + GDK_cyrillic_dzhe = $6af; + GDK_serbian_dze = $6af; + GDK_numerosign = $6b0; + GDK_serbian_Capital_DJE = $6b1; + GDK_macedonia_Capital_GJE = $6b2; + GDK_cyrillic_Capital_IO = $6b3; + GDK_ukrainian_Capital_IE = $6b4; + GDK_ukrainian_Capital_JE = $6b4; + GDK_macedonia_Capital_DSE = $6b5; + GDK_ukrainian_Capital_I = $6b6; + GDK_ukrainian_Capital_YI = $6b7; + GDK_cyrillic_Capital_JE = $6b8; + GDK_serbian_Capital_JE = $6b8; + GDK_cyrillic_Capital_LJE = $6b9; + GDK_serbian_Capital_LJE = $6b9; + GDK_cyrillic_Capital_NJE = $6ba; + GDK_serbian_Capital_NJE = $6ba; + GDK_serbian_Capital_TSHE = $6bb; + GDK_macedonia_Capital_KJE = $6bc; + GDK_byelorussian_Capital_SHORTU = $6be; + GDK_cyrillic_Capital_DZHE = $6bf; + GDK_serbian_Capital_DZE = $6bf; + GDK_cyrillic_yu = $6c0; + GDK_cyrillic_a = $6c1; + GDK_cyrillic_be = $6c2; + GDK_cyrillic_tse = $6c3; + GDK_cyrillic_de = $6c4; + GDK_cyrillic_ie = $6c5; + GDK_cyrillic_ef = $6c6; + GDK_cyrillic_ghe = $6c7; + GDK_cyrillic_ha = $6c8; + GDK_cyrillic_i = $6c9; + GDK_cyrillic_shorti = $6ca; + GDK_cyrillic_ka = $6cb; + GDK_cyrillic_el = $6cc; + GDK_cyrillic_em = $6cd; + GDK_cyrillic_en = $6ce; + GDK_cyrillic_o = $6cf; + GDK_cyrillic_pe = $6d0; + GDK_cyrillic_ya = $6d1; + GDK_cyrillic_er = $6d2; + GDK_cyrillic_es = $6d3; + GDK_cyrillic_te = $6d4; + GDK_cyrillic_u = $6d5; + GDK_cyrillic_zhe = $6d6; + GDK_cyrillic_ve = $6d7; + GDK_cyrillic_softsign = $6d8; + GDK_cyrillic_yeru = $6d9; + GDK_cyrillic_ze = $6da; + GDK_cyrillic_sha = $6db; + GDK_cyrillic_e = $6dc; + GDK_cyrillic_shcha = $6dd; + GDK_cyrillic_che = $6de; + GDK_cyrillic_hardsign = $6df; + GDK_cyrillic_Capital_YU = $6e0; + GDK_cyrillic_Capital_A = $6e1; + GDK_cyrillic_Capital_BE = $6e2; + GDK_cyrillic_Capital_TSE = $6e3; + GDK_cyrillic_Capital_DE = $6e4; + GDK_cyrillic_Capital_IE = $6e5; + GDK_cyrillic_Capital_EF = $6e6; + GDK_cyrillic_Capital_GHE = $6e7; + GDK_cyrillic_Capital_HA = $6e8; + GDK_cyrillic_Capital_I = $6e9; + GDK_cyrillic_Capital_SHORTI = $6ea; + GDK_cyrillic_Capital_KA = $6eb; + GDK_cyrillic_Capital_EL = $6ec; + GDK_cyrillic_Capital_EM = $6ed; + GDK_cyrillic_Capital_EN = $6ee; + GDK_cyrillic_Capital_O = $6ef; + GDK_cyrillic_Capital_PE = $6f0; + GDK_cyrillic_Capital_YA = $6f1; + GDK_cyrillic_Capital_ER = $6f2; + GDK_cyrillic_Capital_ES = $6f3; + GDK_cyrillic_Capital_TE = $6f4; + GDK_cyrillic_Capital_U = $6f5; + GDK_cyrillic_Capital_ZHE = $6f6; + GDK_cyrillic_Capital_VE = $6f7; + GDK_cyrillic_Capital_SOFTSIGN = $6f8; + GDK_cyrillic_Capital_YERU = $6f9; + GDK_cyrillic_Capital_ZE = $6fa; + GDK_cyrillic_Capital_SHA = $6fb; + GDK_cyrillic_Capital_E = $6fc; + GDK_cyrillic_Capital_SHCHA = $6fd; + GDK_cyrillic_Capital_CHE = $6fe; + GDK_cyrillic_Capital_HARDSIGN = $6ff; + GDK_greek_Capital_ALPHAaccent = $7a1; + GDK_greek_Capital_EPSILONaccent = $7a2; + GDK_greek_Capital_ETAaccent = $7a3; + GDK_greek_Capital_IOTAaccent = $7a4; + GDK_greek_Capital_IOTAdiaeresis = $7a5; + GDK_greek_Capital_OMICRONaccent = $7a7; + GDK_greek_Capital_UPSILONaccent = $7a8; + GDK_greek_Capital_UPSILONdieresis = $7a9; + GDK_greek_Capital_OMEGAaccent = $7ab; + GDK_greek_accentdieresis = $7ae; + GDK_greek_horizbar = $7af; + GDK_greek_alphaaccent = $7b1; + GDK_greek_epsilonaccent = $7b2; + GDK_greek_etaaccent = $7b3; + GDK_greek_iotaaccent = $7b4; + GDK_greek_iotadieresis = $7b5; + GDK_greek_iotaaccentdieresis = $7b6; + GDK_greek_omicronaccent = $7b7; + GDK_greek_upsilonaccent = $7b8; + GDK_greek_upsilondieresis = $7b9; + GDK_greek_upsilonaccentdieresis = $7ba; + GDK_greek_omegaaccent = $7bb; + GDK_greek_Capital_ALPHA = $7c1; + GDK_greek_Capital_BETA = $7c2; + GDK_greek_Capital_GAMMA = $7c3; + GDK_greek_Capital_DELTA = $7c4; + GDK_greek_Capital_EPSILON = $7c5; + GDK_greek_Capital_ZETA = $7c6; + GDK_greek_Capital_ETA = $7c7; + GDK_greek_Capital_THETA = $7c8; + GDK_greek_Capital_IOTA = $7c9; + GDK_greek_Capital_KAPPA = $7ca; + GDK_greek_Capital_LAMDA = $7cb; + GDK_greek_Capital_LAMBDA = $7cb; + GDK_greek_Capital_MU = $7cc; + GDK_greek_Capital_NU = $7cd; + GDK_greek_Capital_XI = $7ce; + GDK_greek_Capital_OMICRON = $7cf; + GDK_greek_Capital_PI = $7d0; + GDK_greek_Capital_RHO = $7d1; + GDK_greek_Capital_SIGMA = $7d2; + GDK_greek_Capital_TAU = $7d4; + GDK_greek_Capital_UPSILON = $7d5; + GDK_greek_Capital_PHI = $7d6; + GDK_greek_Capital_CHI = $7d7; + GDK_greek_Capital_PSI = $7d8; + GDK_greek_Capital_OMEGA = $7d9; + GDK_greek_alpha = $7e1; + GDK_greek_beta = $7e2; + GDK_greek_gamma = $7e3; + GDK_greek_delta = $7e4; + GDK_greek_epsilon = $7e5; + GDK_greek_zeta = $7e6; + GDK_greek_eta = $7e7; + GDK_greek_theta = $7e8; + GDK_greek_iota = $7e9; + GDK_greek_kappa = $7ea; + GDK_greek_lamda = $7eb; + GDK_greek_lambda = $7eb; + GDK_greek_mu = $7ec; + GDK_greek_nu = $7ed; + GDK_greek_xi = $7ee; + GDK_greek_omicron = $7ef; + GDK_greek_pi = $7f0; + GDK_greek_rho = $7f1; + GDK_greek_sigma = $7f2; + GDK_greek_finalsmallsigma = $7f3; + GDK_greek_tau = $7f4; + GDK_greek_upsilon = $7f5; + GDK_greek_phi = $7f6; + GDK_greek_chi = $7f7; + GDK_greek_psi = $7f8; + GDK_greek_omega = $7f9; + GDK_greek_switch = $FF7E; + GDK_leftradical = $8a1; + GDK_topleftradical = $8a2; + GDK_horizconnector = $8a3; + GDK_topintegral = $8a4; + GDK_botintegral = $8a5; + GDK_vertconnector = $8a6; + GDK_topleftsqbracket = $8a7; + GDK_botleftsqbracket = $8a8; + GDK_toprightsqbracket = $8a9; + GDK_botrightsqbracket = $8aa; + GDK_topleftparens = $8ab; + GDK_botleftparens = $8ac; + GDK_toprightparens = $8ad; + GDK_botrightparens = $8ae; + GDK_leftmiddlecurlybrace = $8af; + GDK_rightmiddlecurlybrace = $8b0; + GDK_topleftsummation = $8b1; + GDK_botleftsummation = $8b2; + GDK_topvertsummationconnector = $8b3; + GDK_botvertsummationconnector = $8b4; + GDK_toprightsummation = $8b5; + GDK_botrightsummation = $8b6; + GDK_rightmiddlesummation = $8b7; + GDK_lessthanequal = $8bc; + GDK_notequal = $8bd; + GDK_greaterthanequal = $8be; + GDK_integral = $8bf; + GDK_therefore = $8c0; + GDK_variation = $8c1; + GDK_infinity = $8c2; + GDK_nabla = $8c5; + GDK_approximate = $8c8; + GDK_similarequal = $8c9; + GDK_ifonlyif = $8cd; + GDK_implies = $8ce; + GDK_identical = $8cf; + GDK_radical = $8d6; + GDK_includedin = $8da; + GDK_includes = $8db; + GDK_intersection = $8dc; + GDK_union = $8dd; + GDK_logicaland = $8de; + GDK_logicalor = $8df; + GDK_partialderivative = $8ef; + GDK_function = $8f6; + GDK_leftarrow = $8fb; + GDK_uparrow = $8fc; + GDK_rightarrow = $8fd; + GDK_downarrow = $8fe; + GDK_blank = $9df; + GDK_soliddiamond = $9e0; + GDK_checkerboard = $9e1; + GDK_ht = $9e2; + GDK_ff = $9e3; + GDK_cr = $9e4; + GDK_lf = $9e5; + GDK_nl = $9e8; + GDK_vt = $9e9; + GDK_lowrightcorner = $9ea; + GDK_uprightcorner = $9eb; + GDK_upleftcorner = $9ec; + GDK_lowleftcorner = $9ed; + GDK_crossinglines = $9ee; + GDK_horizlinescan1 = $9ef; + GDK_horizlinescan3 = $9f0; + GDK_horizlinescan5 = $9f1; + GDK_horizlinescan7 = $9f2; + GDK_horizlinescan9 = $9f3; + GDK_leftt = $9f4; + GDK_rightt = $9f5; + GDK_bott = $9f6; + GDK_topt = $9f7; + GDK_vertbar = $9f8; + GDK_emspace = $aa1; + GDK_enspace = $aa2; + GDK_em3space = $aa3; + GDK_em4space = $aa4; + GDK_digitspace = $aa5; + GDK_punctspace = $aa6; + GDK_thinspace = $aa7; + GDK_hairspace = $aa8; + GDK_emdash = $aa9; + GDK_endash = $aaa; + GDK_signifblank = $aac; + GDK_ellipsis = $aae; + GDK_doubbaselinedot = $aaf; + GDK_onethird = $ab0; + GDK_twothirds = $ab1; + GDK_onefifth = $ab2; + GDK_twofifths = $ab3; + GDK_threefifths = $ab4; + GDK_fourfifths = $ab5; + GDK_onesixth = $ab6; + GDK_fivesixths = $ab7; + GDK_careof = $ab8; + GDK_figdash = $abb; + GDK_leftanglebracket = $abc; + GDK_decimalpoint = $abd; + GDK_rightanglebracket = $abe; + GDK_marker = $abf; + GDK_oneeighth = $ac3; + GDK_threeeighths = $ac4; + GDK_fiveeighths = $ac5; + GDK_seveneighths = $ac6; + GDK_trademark = $ac9; + GDK_signaturemark = $aca; + GDK_trademarkincircle = $acb; + GDK_leftopentriangle = $acc; + GDK_rightopentriangle = $acd; + GDK_emopencircle = $ace; + GDK_emopenrectangle = $acf; + GDK_leftsinglequotemark = $ad0; + GDK_rightsinglequotemark = $ad1; + GDK_leftdoublequotemark = $ad2; + GDK_rightdoublequotemark = $ad3; + GDK_prescription = $ad4; + GDK_minutes = $ad6; + GDK_seconds = $ad7; + GDK_latincross = $ad9; + GDK_hexagram = $ada; + GDK_filledrectbullet = $adb; + GDK_filledlefttribullet = $adc; + GDK_filledrighttribullet = $add; + GDK_emfilledcircle = $ade; + GDK_emfilledrect = $adf; + GDK_enopencircbullet = $ae0; + GDK_enopensquarebullet = $ae1; + GDK_openrectbullet = $ae2; + GDK_opentribulletup = $ae3; + GDK_opentribulletdown = $ae4; + GDK_openstar = $ae5; + GDK_enfilledcircbullet = $ae6; + GDK_enfilledsqbullet = $ae7; + GDK_filledtribulletup = $ae8; + GDK_filledtribulletdown = $ae9; + GDK_leftpointer = $aea; + GDK_rightpointer = $aeb; + GDK_club = $aec; + GDK_diamond = $aed; + GDK_heart_key = $aee; + GDK_maltesecross = $af0; + GDK_dagger = $af1; + GDK_doubledagger = $af2; + GDK_checkmark = $af3; + GDK_ballotcross = $af4; + GDK_musicalsharp = $af5; + GDK_musicalflat = $af6; + GDK_malesymbol = $af7; + GDK_femalesymbol = $af8; + GDK_telephone = $af9; + GDK_telephonerecorder = $afa; + GDK_phonographcopyright = $afb; + GDK_caret = $afc; + GDK_singlelowquotemark = $afd; + GDK_doublelowquotemark = $afe; + GDK_cursor = $aff; + GDK_leftcaret = $ba3; + GDK_rightcaret = $ba6; + GDK_downcaret = $ba8; + GDK_upcaret = $ba9; + GDK_overbar = $bc0; + GDK_downtack = $bc2; + GDK_upshoe = $bc3; + GDK_downstile = $bc4; + GDK_underbar = $bc6; + GDK_jot = $bca; + GDK_quad = $bcc; + GDK_uptack = $bce; + GDK_circle_key = $bcf; + GDK_upstile = $bd3; + GDK_downshoe = $bd6; + GDK_rightshoe = $bd8; + GDK_leftshoe = $bda; + GDK_lefttack = $bdc; + GDK_righttack = $bfc; + GDK_hebrew_doublelowline = $cdf; + GDK_hebrew_aleph = $ce0; + GDK_hebrew_bet = $ce1; + GDK_hebrew_beth = $ce1; + GDK_hebrew_gimel = $ce2; + GDK_hebrew_gimmel = $ce2; + GDK_hebrew_dalet = $ce3; + GDK_hebrew_daleth = $ce3; + GDK_hebrew_he = $ce4; + GDK_hebrew_waw = $ce5; + GDK_hebrew_zain = $ce6; + GDK_hebrew_zayin = $ce6; + GDK_hebrew_chet = $ce7; + GDK_hebrew_het = $ce7; + GDK_hebrew_tet = $ce8; + GDK_hebrew_teth = $ce8; + GDK_hebrew_yod = $ce9; + GDK_hebrew_finalkaph = $cea; + GDK_hebrew_kaph = $ceb; + GDK_hebrew_lamed = $cec; + GDK_hebrew_finalmem = $ced; + GDK_hebrew_mem = $cee; + GDK_hebrew_finalnun = $cef; + GDK_hebrew_nun = $cf0; + GDK_hebrew_samech = $cf1; + GDK_hebrew_samekh = $cf1; + GDK_hebrew_ayin = $cf2; + GDK_hebrew_finalpe = $cf3; + GDK_hebrew_pe = $cf4; + GDK_hebrew_finalzade = $cf5; + GDK_hebrew_finalzadi = $cf5; + GDK_hebrew_zade = $cf6; + GDK_hebrew_zadi = $cf6; + GDK_hebrew_qoph = $cf7; + GDK_hebrew_kuf = $cf7; + GDK_hebrew_resh = $cf8; + GDK_hebrew_shin = $cf9; + GDK_hebrew_taw = $cfa; + GDK_hebrew_taf = $cfa; + GDK_Hebrew_switch = $FF7E; + GDK_Thai_kokai = $da1; + GDK_Thai_khokhai = $da2; + GDK_Thai_khokhuat = $da3; + GDK_Thai_khokhwai = $da4; + GDK_Thai_khokhon = $da5; + GDK_Thai_khorakhang = $da6; + GDK_Thai_ngongu = $da7; + GDK_Thai_chochan = $da8; + GDK_Thai_choching = $da9; + GDK_Thai_chochang = $daa; + GDK_Thai_soso = $dab; + GDK_Thai_chochoe = $dac; + GDK_Thai_yoying = $dad; + GDK_Thai_dochada = $dae; + GDK_Thai_topatak = $daf; + GDK_Thai_thothan = $db0; + GDK_Thai_thonangmontho = $db1; + GDK_Thai_thophuthao = $db2; + GDK_Thai_nonen = $db3; + GDK_Thai_dodek = $db4; + GDK_Thai_totao = $db5; + GDK_Thai_thothung = $db6; + GDK_Thai_thothahan = $db7; + GDK_Thai_thothong = $db8; + GDK_Thai_nonu = $db9; + GDK_Thai_bobaimai = $dba; + GDK_Thai_popla = $dbb; + GDK_Thai_phophung = $dbc; + GDK_Thai_fofa = $dbd; + GDK_Thai_phophan = $dbe; + GDK_Thai_fofan = $dbf; + GDK_Thai_phosamphao = $dc0; + GDK_Thai_moma = $dc1; + GDK_Thai_yoyak = $dc2; + GDK_Thai_rorua = $dc3; + GDK_Thai_ru = $dc4; + GDK_Thai_loling = $dc5; + GDK_Thai_lu = $dc6; + GDK_Thai_wowaen = $dc7; + GDK_Thai_sosala = $dc8; + GDK_Thai_sorusi = $dc9; + GDK_Thai_sosua = $dca; + GDK_Thai_hohip = $dcb; + GDK_Thai_lochula = $dcc; + GDK_Thai_oang = $dcd; + GDK_Thai_honokhuk = $dce; + GDK_Thai_paiyannoi = $dcf; + GDK_Thai_saraa = $dd0; + GDK_Thai_maihanakat = $dd1; + GDK_Thai_saraaa = $dd2; + GDK_Thai_saraam = $dd3; + GDK_Thai_sarai = $dd4; + GDK_Thai_saraii = $dd5; + GDK_Thai_saraue = $dd6; + GDK_Thai_sarauee = $dd7; + GDK_Thai_sarau = $dd8; + GDK_Thai_sarauu = $dd9; + GDK_Thai_phinthu = $dda; + GDK_Thai_maihanakat_maitho = $dde; + GDK_Thai_baht = $ddf; + GDK_Thai_sarae = $de0; + GDK_Thai_saraae = $de1; + GDK_Thai_sarao = $de2; + GDK_Thai_saraaimaimuan = $de3; + GDK_Thai_saraaimaimalai = $de4; + GDK_Thai_lakkhangyao = $de5; + GDK_Thai_maiyamok = $de6; + GDK_Thai_maitaikhu = $de7; + GDK_Thai_maiek = $de8; + GDK_Thai_maitho = $de9; + GDK_Thai_maitri = $dea; + GDK_Thai_maichattawa = $deb; + GDK_Thai_thanthakhat = $dec; + GDK_Thai_nikhahit = $ded; + GDK_Thai_leksun = $df0; + GDK_Thai_leknung = $df1; + GDK_Thai_leksong = $df2; + GDK_Thai_leksam = $df3; + GDK_Thai_leksi = $df4; + GDK_Thai_lekha = $df5; + GDK_Thai_lekhok = $df6; + GDK_Thai_lekchet = $df7; + GDK_Thai_lekpaet = $df8; + GDK_Thai_lekkao = $df9; + GDK_Hangul = $ff31; + GDK_Hangul_Start = $ff32; + GDK_Hangul_End = $ff33; + GDK_Hangul_Hanja = $ff34; + GDK_Hangul_Jamo = $ff35; + GDK_Hangul_Romaja = $ff36; + GDK_Hangul_Codeinput = $ff37; + GDK_Hangul_Jeonja = $ff38; + GDK_Hangul_Banja = $ff39; + GDK_Hangul_PreHanja = $ff3a; + GDK_Hangul_PostHanja = $ff3b; + GDK_Hangul_SingleCandidate = $ff3c; + GDK_Hangul_MultipleCandidate = $ff3d; + GDK_Hangul_PreviousCandidate = $ff3e; + GDK_Hangul_Special = $ff3f; + GDK_Hangul_switch = $FF7E; + GDK_Hangul_Kiyeog = $ea1; + GDK_Hangul_SsangKiyeog = $ea2; + GDK_Hangul_KiyeogSios = $ea3; + GDK_Hangul_Nieun = $ea4; + GDK_Hangul_NieunJieuj = $ea5; + GDK_Hangul_NieunHieuh = $ea6; + GDK_Hangul_Dikeud = $ea7; + GDK_Hangul_SsangDikeud = $ea8; + GDK_Hangul_Rieul = $ea9; + GDK_Hangul_RieulKiyeog = $eaa; + GDK_Hangul_RieulMieum = $eab; + GDK_Hangul_RieulPieub = $eac; + GDK_Hangul_RieulSios = $ead; + GDK_Hangul_RieulTieut = $eae; + GDK_Hangul_RieulPhieuf = $eaf; + GDK_Hangul_RieulHieuh = $eb0; + GDK_Hangul_Mieum = $eb1; + GDK_Hangul_Pieub = $eb2; + GDK_Hangul_SsangPieub = $eb3; + GDK_Hangul_PieubSios = $eb4; + GDK_Hangul_Sios = $eb5; + GDK_Hangul_SsangSios = $eb6; + GDK_Hangul_Ieung = $eb7; + GDK_Hangul_Jieuj = $eb8; + GDK_Hangul_SsangJieuj = $eb9; + GDK_Hangul_Cieuc = $eba; + GDK_Hangul_Khieuq = $ebb; + GDK_Hangul_Tieut = $ebc; + GDK_Hangul_Phieuf = $ebd; + GDK_Hangul_Hieuh = $ebe; + GDK_Hangul_A = $ebf; + GDK_Hangul_AE = $ec0; + GDK_Hangul_YA = $ec1; + GDK_Hangul_YAE = $ec2; + GDK_Hangul_EO = $ec3; + GDK_Hangul_E = $ec4; + GDK_Hangul_YEO = $ec5; + GDK_Hangul_YE = $ec6; + GDK_Hangul_O = $ec7; + GDK_Hangul_WA = $ec8; + GDK_Hangul_WAE = $ec9; + GDK_Hangul_OE = $eca; + GDK_Hangul_YO = $ecb; + GDK_Hangul_U = $ecc; + GDK_Hangul_WEO = $ecd; + GDK_Hangul_WE = $ece; + GDK_Hangul_WI = $ecf; + GDK_Hangul_YU = $ed0; + GDK_Hangul_EU = $ed1; + GDK_Hangul_YI = $ed2; + GDK_Hangul_I = $ed3; + GDK_Hangul_J_Kiyeog = $ed4; + GDK_Hangul_J_SsangKiyeog = $ed5; + GDK_Hangul_J_KiyeogSios = $ed6; + GDK_Hangul_J_Nieun = $ed7; + GDK_Hangul_J_NieunJieuj = $ed8; + GDK_Hangul_J_NieunHieuh = $ed9; + GDK_Hangul_J_Dikeud = $eda; + GDK_Hangul_J_Rieul = $edb; + GDK_Hangul_J_RieulKiyeog = $edc; + GDK_Hangul_J_RieulMieum = $edd; + GDK_Hangul_J_RieulPieub = $ede; + GDK_Hangul_J_RieulSios = $edf; + GDK_Hangul_J_RieulTieut = $ee0; + GDK_Hangul_J_RieulPhieuf = $ee1; + GDK_Hangul_J_RieulHieuh = $ee2; + GDK_Hangul_J_Mieum = $ee3; + GDK_Hangul_J_Pieub = $ee4; + GDK_Hangul_J_PieubSios = $ee5; + GDK_Hangul_J_Sios = $ee6; + GDK_Hangul_J_SsangSios = $ee7; + GDK_Hangul_J_Ieung = $ee8; + GDK_Hangul_J_Jieuj = $ee9; + GDK_Hangul_J_Cieuc = $eea; + GDK_Hangul_J_Khieuq = $eeb; + GDK_Hangul_J_Tieut = $eec; + GDK_Hangul_J_Phieuf = $eed; + GDK_Hangul_J_Hieuh = $eee; + GDK_Hangul_RieulYeorinHieuh = $eef; + GDK_Hangul_SunkyeongeumMieum = $ef0; + GDK_Hangul_SunkyeongeumPieub = $ef1; + GDK_Hangul_PanSios = $ef2; + GDK_Hangul_KkogjiDalrinIeung = $ef3; + GDK_Hangul_SunkyeongeumPhieuf = $ef4; + GDK_Hangul_YeorinHieuh = $ef5; + GDK_Hangul_AraeA = $ef6; + GDK_Hangul_AraeAE = $ef7; + GDK_Hangul_J_PanSios = $ef8; + GDK_Hangul_J_KkogjiDalrinIeung = $ef9; + GDK_Hangul_J_YeorinHieuh = $efa; + GDK_Korean_Won = $eff; + + {$IFNDEF FPC} + // Copied from keysym.pp in Lazarus + XK_VoidSymbol = $FFFFFF; { void symbol } + + XK_BackSpace = $FF08; { back space, back char } + XK_Tab = $FF09; + XK_Linefeed = $FF0A; { Linefeed, LF } + XK_Clear = $FF0B; + XK_Return = $FF0D; { Return, enter } + XK_Pause = $FF13; { Pause, hold } + XK_Scroll_Lock = $FF14; + XK_Sys_Req = $FF15; + XK_Escape = $FF1B; + XK_Delete = $FFFF; { Delete, rubout } + + XK_Multi_key = $FF20; { Multi-key character compose } + XK_Codeinput = $FF37; + XK_SingleCandidate = $FF3C; + XK_MultipleCandidate = $FF3D; + XK_PreviousCandidate = $FF3E; + + XK_Kanji = $FF21; { Kanji, Kanji convert } + XK_Muhenkan = $FF22; { Cancel Conversion } + XK_Henkan_Mode = $FF23; { Start/Stop Conversion } + XK_Henkan = $FF23; { Alias for Henkan_Mode } + XK_Romaji = $FF24; { to Romaji } + XK_Hiragana = $FF25; { to Hiragana } + XK_Katakana = $FF26; { to Katakana } + XK_Hiragana_Katakana = $FF27; { Hiragana/Katakana toggle } + XK_Zenkaku = $FF28; { to Zenkaku } + XK_Hankaku = $FF29; { to Hankaku } + XK_Zenkaku_Hankaku = $FF2A; { Zenkaku/Hankaku toggle } + XK_Touroku = $FF2B; { Add to Dictionary } + XK_Massyo = $FF2C; { Delete from Dictionary } + XK_Kana_Lock = $FF2D; { Kana Lock } + XK_Kana_Shift = $FF2E; { Kana Shift } + XK_Eisu_Shift = $FF2F; { Alphanumeric Shift } + XK_Eisu_toggle = $FF30; { Alphanumeric toggle } + XK_Kanji_Bangou = $FF37; { Codeinput } + XK_Zen_Koho = $FF3D; { Multiple/All Candidate(s) } + XK_Mae_Koho = $FF3E; { Previous Candidate } + + XK_Home = $FF50; + XK_Left = $FF51; { Move left, left arrow } + XK_Up = $FF52; { Move up, up arrow } + XK_Right = $FF53; { Move right, right arrow } + XK_Down = $FF54; { Move down, down arrow } + XK_Prior = $FF55; { Prior, previous } + XK_Page_Up = $FF55; + XK_Next = $FF56; { Next } + XK_Page_Down = $FF56; + XK_End = $FF57; { EOL } + XK_Begin = $FF58; { BOL } + + XK_Select = $FF60; { Select, mark } + XK_Print = $FF61; + XK_Execute = $FF62; { Execute, run, do } + XK_Insert = $FF63; { Insert, insert here } + XK_Undo = $FF65; { Undo, oops } + XK_Redo = $FF66; { redo, again } + XK_Menu = $FF67; + XK_Find = $FF68; { Find, search } + XK_Cancel = $FF69; { Cancel, stop, abort, exit } + XK_Help = $FF6A; { Help } + XK_Break = $FF6B; + XK_Mode_switch = $FF7E; { Character set switch } + XK_script_switch = $FF7E; { Alias for mode_switch } + XK_Num_Lock = $FF7F; + + XK_KP_Space = $FF80; { space } + XK_KP_Tab = $FF89; + XK_KP_Enter = $FF8D; { enter } + XK_KP_F1 = $FF91; { PF1, KP_A, ... } + XK_KP_F2 = $FF92; + XK_KP_F3 = $FF93; + XK_KP_F4 = $FF94; + XK_KP_Home = $FF95; + XK_KP_Left = $FF96; + XK_KP_Up = $FF97; + XK_KP_Right = $FF98; + XK_KP_Down = $FF99; + XK_KP_Prior = $FF9A; + XK_KP_Page_Up = $FF9A; + XK_KP_Next = $FF9B; + XK_KP_Page_Down = $FF9B; + XK_KP_End = $FF9C; + XK_KP_Begin = $FF9D; + XK_KP_Insert = $FF9E; + XK_KP_Delete = $FF9F; + XK_KP_Equal = $FFBD; { equals } + XK_KP_Multiply = $FFAA; + XK_KP_Add = $FFAB; + XK_KP_Separator = $FFAC; { separator, often comma } + XK_KP_Subtract = $FFAD; + XK_KP_Decimal = $FFAE; + XK_KP_Divide = $FFAF; + + XK_KP_0 = $FFB0; + XK_KP_1 = $FFB1; + XK_KP_2 = $FFB2; + XK_KP_3 = $FFB3; + XK_KP_4 = $FFB4; + XK_KP_5 = $FFB5; + XK_KP_6 = $FFB6; + XK_KP_7 = $FFB7; + XK_KP_8 = $FFB8; + XK_KP_9 = $FFB9; + + XK_F1 = $FFBE; + XK_F2 = $FFBF; + XK_F3 = $FFC0; + XK_F4 = $FFC1; + XK_F5 = $FFC2; + XK_F6 = $FFC3; + XK_F7 = $FFC4; + XK_F8 = $FFC5; + XK_F9 = $FFC6; + XK_F10 = $FFC7; + XK_F11 = $FFC8; + XK_L1 = $FFC8; + XK_F12 = $FFC9; + XK_L2 = $FFC9; + XK_F13 = $FFCA; + XK_L3 = $FFCA; + XK_F14 = $FFCB; + XK_L4 = $FFCB; + XK_F15 = $FFCC; + XK_L5 = $FFCC; + XK_F16 = $FFCD; + XK_L6 = $FFCD; + XK_F17 = $FFCE; + XK_L7 = $FFCE; + XK_F18 = $FFCF; + XK_L8 = $FFCF; + XK_F19 = $FFD0; + XK_L9 = $FFD0; + XK_F20 = $FFD1; + XK_L10 = $FFD1; + XK_F21 = $FFD2; + XK_R1 = $FFD2; + XK_F22 = $FFD3; + XK_R2 = $FFD3; + XK_F23 = $FFD4; + XK_R3 = $FFD4; + XK_F24 = $FFD5; + XK_R4 = $FFD5; + XK_F25 = $FFD6; + XK_R5 = $FFD6; + XK_F26 = $FFD7; + XK_R6 = $FFD7; + XK_F27 = $FFD8; + XK_R7 = $FFD8; + XK_F28 = $FFD9; + XK_R8 = $FFD9; + XK_F29 = $FFDA; + XK_R9 = $FFDA; + XK_F30 = $FFDB; + XK_R10 = $FFDB; + XK_F31 = $FFDC; + XK_R11 = $FFDC; + XK_F32 = $FFDD; + XK_R12 = $FFDD; + XK_F33 = $FFDE; + XK_R13 = $FFDE; + XK_F34 = $FFDF; + XK_R14 = $FFDF; + XK_F35 = $FFE0; + XK_R15 = $FFE0; + + XK_Shift_L = $FFE1; { Left shift } + XK_Shift_R = $FFE2; { Right shift } + XK_Control_L = $FFE3; { Left control } + XK_Control_R = $FFE4; { Right control } + XK_Caps_Lock = $FFE5; { Caps lock } + XK_Shift_Lock = $FFE6; { Shift lock } + + XK_Meta_L = $FFE7; { Left meta } + XK_Meta_R = $FFE8; { Right meta } + XK_Alt_L = $FFE9; { Left alt } + XK_Alt_R = $FFEA; { Right alt } + XK_Super_L = $FFEB; { Left super } + XK_Super_R = $FFEC; { Right super } + XK_Hyper_L = $FFED; { Left hyper } + XK_Hyper_R = $FFEE; { Right hyper } + + XK_ISO_Lock = $FE01; + XK_ISO_Level2_Latch = $FE02; + XK_ISO_Level3_Shift = $FE03; + XK_ISO_Level3_Latch = $FE04; + XK_ISO_Level3_Lock = $FE05; + XK_ISO_Level5_Shift = $FE11; + XK_ISO_Level5_Latch = $FE12; + XK_ISO_Level5_Lock = $FE13; + XK_ISO_Group_Shift = $FF7E; { Alias for mode_switch } + XK_ISO_Group_Latch = $FE06; + XK_ISO_Group_Lock = $FE07; + XK_ISO_Next_Group = $FE08; + XK_ISO_Next_Group_Lock = $FE09; + XK_ISO_Prev_Group = $FE0A; + XK_ISO_Prev_Group_Lock = $FE0B; + XK_ISO_First_Group = $FE0C; + XK_ISO_First_Group_Lock = $FE0D; + XK_ISO_Last_Group = $FE0E; + XK_ISO_Last_Group_Lock = $FE0F; + + XK_ISO_Left_Tab = $FE20; + XK_ISO_Move_Line_Up = $FE21; + XK_ISO_Move_Line_Down = $FE22; + XK_ISO_Partial_Line_Up = $FE23; + XK_ISO_Partial_Line_Down = $FE24; + XK_ISO_Partial_Space_Left = $FE25; + XK_ISO_Partial_Space_Right = $FE26; + XK_ISO_Set_Margin_Left = $FE27; + XK_ISO_Set_Margin_Right = $FE28; + XK_ISO_Release_Margin_Left = $FE29; + XK_ISO_Release_Margin_Right = $FE2A; + XK_ISO_Release_Both_Margins = $FE2B; + XK_ISO_Fast_Cursor_Left = $FE2C; + XK_ISO_Fast_Cursor_Right = $FE2D; + XK_ISO_Fast_Cursor_Up = $FE2E; + XK_ISO_Fast_Cursor_Down = $FE2F; + XK_ISO_Continuous_Underline = $FE30; + XK_ISO_Discontinuous_Underline = $FE31; + XK_ISO_Emphasize = $FE32; + XK_ISO_Center_Object = $FE33; + XK_ISO_Enter = $FE34; + + XK_dead_grave = $FE50; + XK_dead_acute = $FE51; + XK_dead_circumflex = $FE52; + XK_dead_tilde = $FE53; + XK_dead_perispomeni = $FE53; { alias for dead_tilde } + XK_dead_macron = $FE54; + XK_dead_breve = $FE55; + XK_dead_abovedot = $FE56; + XK_dead_diaeresis = $FE57; + XK_dead_abovering = $FE58; + XK_dead_doubleacute = $FE59; + XK_dead_caron = $FE5A; + XK_dead_cedilla = $FE5B; + XK_dead_ogonek = $FE5C; + XK_dead_iota = $FE5D; + XK_dead_voiced_sound = $FE5E; + XK_dead_semivoiced_sound = $FE5F; + XK_dead_belowdot = $FE60; + XK_dead_hook = $FE61; + XK_dead_horn = $FE62; + XK_dead_stroke = $FE63; + XK_dead_abovecomma = $FE64; + XK_dead_psili = $FE64; { alias for dead_abovecomma } + XK_dead_abovereversedcomma = $FE65; + XK_dead_dasia = $FE65; { alias for dead_abovereversedcomma } + XK_dead_doublegrave = $FE66; + XK_dead_belowring = $FE67; + XK_dead_belowmacron = $FE68; + XK_dead_belowcircumflex = $FE69; + XK_dead_belowtilde = $FE6A; + XK_dead_belowbreve = $FE6B; + XK_dead_belowdiaeresis = $FE6C; + XK_dead_invertedbreve = $FE6D; + XK_dead_belowcomma = $FE6E; + XK_dead_currency = $FE6F; + + XK_dead_lowline = $FE90; + XK_dead_aboveverticalline = $FE91; + XK_dead_belowverticalline = $FE92; + XK_dead_longsolidusoverlay = $FE93; + + XK_dead_a = $FE80; + XKc_dead_A = $FE81; + XK_dead_e = $FE82; + XKc_dead_E = $FE83; + XK_dead_i = $FE84; + XKc_dead_I = $FE85; + XK_dead_o = $FE86; + XKc_dead_O = $FE87; + XK_dead_u = $FE88; + XKc_dead_U = $FE89; + XK_dead_small_schwa = $FE8A; + XK_dead_capital_schwa = $FE8B; + + XK_dead_greek = $FE8C; + + XK_First_Virtual_Screen = $FED0; + XK_Prev_Virtual_Screen = $FED1; + XK_Next_Virtual_Screen = $FED2; + XK_Last_Virtual_Screen = $FED4; + XK_Terminate_Server = $FED5; + + XK_AccessX_Enable = $FE70; + XK_AccessX_Feedback_Enable = $FE71; + XK_RepeatKeys_Enable = $FE72; + XK_SlowKeys_Enable = $FE73; + XK_BounceKeys_Enable = $FE74; + XK_StickyKeys_Enable = $FE75; + XK_MouseKeys_Enable = $FE76; + XK_MouseKeys_Accel_Enable = $FE77; + XK_Overlay1_Enable = $FE78; + XK_Overlay2_Enable = $FE79; + XK_AudibleBell_Enable = $FE7A; + + XK_Pointer_Left = $FEE0; + XK_Pointer_Right = $FEE1; + XK_Pointer_Up = $FEE2; + XK_Pointer_Down = $FEE3; + XK_Pointer_UpLeft = $FEE4; + XK_Pointer_UpRight = $FEE5; + XK_Pointer_DownLeft = $FEE6; + XK_Pointer_DownRight = $FEE7; + XK_Pointer_Button_Dflt = $FEE8; + XK_Pointer_Button1 = $FEE9; + XK_Pointer_Button2 = $FEEA; + XK_Pointer_Button3 = $FEEB; + XK_Pointer_Button4 = $FEEC; + XK_Pointer_Button5 = $FEED; + XK_Pointer_DblClick_Dflt = $FEEE; + XK_Pointer_DblClick1 = $FEEF; + XK_Pointer_DblClick2 = $FEF0; + XK_Pointer_DblClick3 = $FEF1; + XK_Pointer_DblClick4 = $FEF2; + XK_Pointer_DblClick5 = $FEF3; + XK_Pointer_Drag_Dflt = $FEF4; + XK_Pointer_Drag1 = $FEF5; + XK_Pointer_Drag2 = $FEF6; + XK_Pointer_Drag3 = $FEF7; + XK_Pointer_Drag4 = $FEF8; + XK_Pointer_Drag5 = $FEFD; + + XK_Pointer_EnableKeys = $FEF9; + XK_Pointer_Accelerate = $FEFA; + XK_Pointer_DfltBtnNext = $FEFB; + XK_Pointer_DfltBtnPrev = $FEFC; + + XKll_ch = $FEA0; + XKcl_Ch = $FEA1; + XKcc_CH = $FEA2; + XKll_c_h = $FEA3; + XKcl_C_h = $FEA4; + XKcc_C_H = $FEA5; + + XK_3270_Duplicate = $FD01; + XK_3270_FieldMark = $FD02; + XK_3270_Right2 = $FD03; + XK_3270_Left2 = $FD04; + XK_3270_BackTab = $FD05; + XK_3270_EraseEOF = $FD06; + XK_3270_EraseInput = $FD07; + XK_3270_Reset = $FD08; + XK_3270_Quit = $FD09; + XK_3270_PA1 = $FD0A; + XK_3270_PA2 = $FD0B; + XK_3270_PA3 = $FD0C; + XK_3270_Test = $FD0D; + XK_3270_Attn = $FD0E; + XK_3270_CursorBlink = $FD0F; + XK_3270_AltCursor = $FD10; + XK_3270_KeyClick = $FD11; + XK_3270_Jump = $FD12; + XK_3270_Ident = $FD13; + XK_3270_Rule = $FD14; + XK_3270_Copy = $FD15; + XK_3270_Play = $FD16; + XK_3270_Setup = $FD17; + XK_3270_Record = $FD18; + XK_3270_ChangeScreen = $FD19; + XK_3270_DeleteWord = $FD1A; + XK_3270_ExSelect = $FD1B; + XK_3270_CursorSelect = $FD1C; + XK_3270_PrintScreen = $FD1D; + XK_3270_Enter = $FD1E; + + XK_space = $0020; { U+0020 SPACE } + XK_exclam = $0021; { U+0021 EXCLAMATION MARK } + XK_quotedbl = $0022; { U+0022 QUOTATION MARK } + XK_numbersign = $0023; { U+0023 NUMBER SIGN } + XK_dollar = $0024; { U+0024 DOLLAR SIGN } + XK_percent = $0025; { U+0025 PERCENT SIGN } + XK_ampersand = $0026; { U+0026 AMPERSAND } + XK_apostrophe = $0027; { U+0027 APOSTROPHE } + XK_quoteright = $0027; { deprecated } + XK_parenleft = $0028; { U+0028 LEFT PARENTHESIS } + XK_parenright = $0029; { U+0029 RIGHT PARENTHESIS } + XK_asterisk = $002a; { U+002A ASTERISK } + XK_plus = $002b; { U+002B PLUS SIGN } + XK_comma = $002c; { U+002C COMMA } + XK_minus = $002d; { U+002D HYPHEN-MINUS } + XK_period = $002e; { U+002E FULL STOP } + XK_slash = $002f; { U+002F SOLIDUS } + XK_0 = $0030; { U+0030 DIGIT ZERO } + XK_1 = $0031; { U+0031 DIGIT ONE } + XK_2 = $0032; { U+0032 DIGIT TWO } + XK_3 = $0033; { U+0033 DIGIT THREE } + XK_4 = $0034; { U+0034 DIGIT FOUR } + XK_5 = $0035; { U+0035 DIGIT FIVE } + XK_6 = $0036; { U+0036 DIGIT SIX } + XK_7 = $0037; { U+0037 DIGIT SEVEN } + XK_8 = $0038; { U+0038 DIGIT EIGHT } + XK_9 = $0039; { U+0039 DIGIT NINE } + XK_colon = $003a; { U+003A COLON } + XK_semicolon = $003b; { U+003B SEMICOLON } + XK_less = $003c; { U+003C LESS-THAN SIGN } + XK_equal = $003d; { U+003D EQUALS SIGN } + XK_greater = $003e; { U+003E GREATER-THAN SIGN } + XK_question = $003f; { U+003F QUESTION MARK } + XK_at = $0040; { U+0040 COMMERCIAL AT } + XKc_A = $0041; { U+0041 LATIN CAPITAL LETTER A } + XKc_B = $0042; { U+0042 LATIN CAPITAL LETTER B } + XKc_C = $0043; { U+0043 LATIN CAPITAL LETTER C } + XKc_D = $0044; { U+0044 LATIN CAPITAL LETTER D } + XKc_E = $0045; { U+0045 LATIN CAPITAL LETTER E } + XKc_F = $0046; { U+0046 LATIN CAPITAL LETTER F } + XKc_G = $0047; { U+0047 LATIN CAPITAL LETTER G } + XKc_H = $0048; { U+0048 LATIN CAPITAL LETTER H } + XKc_I = $0049; { U+0049 LATIN CAPITAL LETTER I } + XKc_J = $004a; { U+004A LATIN CAPITAL LETTER J } + XKc_K = $004b; { U+004B LATIN CAPITAL LETTER K } + XKc_L = $004c; { U+004C LATIN CAPITAL LETTER L } + XKc_M = $004d; { U+004D LATIN CAPITAL LETTER M } + XKc_N = $004e; { U+004E LATIN CAPITAL LETTER N } + XKc_O = $004f; { U+004F LATIN CAPITAL LETTER O } + XKc_P = $0050; { U+0050 LATIN CAPITAL LETTER P } + XKc_Q = $0051; { U+0051 LATIN CAPITAL LETTER Q } + XKc_R = $0052; { U+0052 LATIN CAPITAL LETTER R } + XKc_S = $0053; { U+0053 LATIN CAPITAL LETTER S } + XKc_T = $0054; { U+0054 LATIN CAPITAL LETTER T } + XKc_U = $0055; { U+0055 LATIN CAPITAL LETTER U } + XKc_V = $0056; { U+0056 LATIN CAPITAL LETTER V } + XKc_W = $0057; { U+0057 LATIN CAPITAL LETTER W } + XKc_X = $0058; { U+0058 LATIN CAPITAL LETTER X } + XKc_Y = $0059; { U+0059 LATIN CAPITAL LETTER Y } + XKc_Z = $005a; { U+005A LATIN CAPITAL LETTER Z } + XK_bracketleft = $005b; { U+005B LEFT SQUARE BRACKET } + XK_backslash = $005c; { U+005C REVERSE SOLIDUS } + XK_bracketright = $005d; { U+005D RIGHT SQUARE BRACKET } + XK_asciicircum = $005e; { U+005E CIRCUMFLEX ACCENT } + XK_underscore = $005f; { U+005F LOW LINE } + XK_grave = $0060; { U+0060 GRAVE ACCENT } + XK_quoteleft = $0060; { deprecated } + XK_a = $0061; { U+0061 LATIN SMALL LETTER A } + XK_b = $0062; { U+0062 LATIN SMALL LETTER B } + XK_c = $0063; { U+0063 LATIN SMALL LETTER C } + XK_d = $0064; { U+0064 LATIN SMALL LETTER D } + XK_e = $0065; { U+0065 LATIN SMALL LETTER E } + XK_f = $0066; { U+0066 LATIN SMALL LETTER F } + XK_g = $0067; { U+0067 LATIN SMALL LETTER G } + XK_h = $0068; { U+0068 LATIN SMALL LETTER H } + XK_i = $0069; { U+0069 LATIN SMALL LETTER I } + XK_j = $006a; { U+006A LATIN SMALL LETTER J } + XK_k = $006b; { U+006B LATIN SMALL LETTER K } + XK_l = $006c; { U+006C LATIN SMALL LETTER L } + XK_m = $006d; { U+006D LATIN SMALL LETTER M } + XK_n = $006e; { U+006E LATIN SMALL LETTER N } + XK_o = $006f; { U+006F LATIN SMALL LETTER O } + XK_p = $0070; { U+0070 LATIN SMALL LETTER P } + XK_q = $0071; { U+0071 LATIN SMALL LETTER Q } + XK_r = $0072; { U+0072 LATIN SMALL LETTER R } + XK_s = $0073; { U+0073 LATIN SMALL LETTER S } + XK_t = $0074; { U+0074 LATIN SMALL LETTER T } + XK_u = $0075; { U+0075 LATIN SMALL LETTER U } + XK_v = $0076; { U+0076 LATIN SMALL LETTER V } + XK_w = $0077; { U+0077 LATIN SMALL LETTER W } + XK_x = $0078; { U+0078 LATIN SMALL LETTER X } + XK_y = $0079; { U+0079 LATIN SMALL LETTER Y } + XK_z = $007a; { U+007A LATIN SMALL LETTER Z } + XK_braceleft = $007b; { U+007B LEFT CURLY BRACKET } + XK_bar = $007c; { U+007C VERTICAL LINE } + XK_braceright = $007d; { U+007D RIGHT CURLY BRACKET } + XK_asciitilde = $007e; { U+007E TILDE } + + XK_nobreakspace = $00a0; { U+00A0 NO-BREAK SPACE } + XK_exclamdown = $00a1; { U+00A1 INVERTED EXCLAMATION MARK } + XK_cent = $00a2; { U+00A2 CENT SIGN } + XK_sterling = $00a3; { U+00A3 POUND SIGN } + XK_currency = $00a4; { U+00A4 CURRENCY SIGN } + XK_yen = $00a5; { U+00A5 YEN SIGN } + XK_brokenbar = $00a6; { U+00A6 BROKEN BAR } + XK_section = $00a7; { U+00A7 SECTION SIGN } + XK_diaeresis = $00a8; { U+00A8 DIAERESIS } + XK_copyright = $00a9; { U+00A9 COPYRIGHT SIGN } + XK_ordfeminine = $00aa; { U+00AA FEMININE ORDINAL INDICATOR } + XK_guillemotleft = $00ab; { U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK } + XK_notsign = $00ac; { U+00AC NOT SIGN } + XK_hyphen = $00ad; { U+00AD SOFT HYPHEN } + XK_registered = $00ae; { U+00AE REGISTERED SIGN } + XK_macron = $00af; { U+00AF MACRON } + XK_degree = $00b0; { U+00B0 DEGREE SIGN } + XK_plusminus = $00b1; { U+00B1 PLUS-MINUS SIGN } + XK_twosuperior = $00b2; { U+00B2 SUPERSCRIPT TWO } + XK_threesuperior = $00b3; { U+00B3 SUPERSCRIPT THREE } + XK_acute = $00b4; { U+00B4 ACUTE ACCENT } + XK_mu = $00b5; { U+00B5 MICRO SIGN } + XK_paragraph = $00b6; { U+00B6 PILCROW SIGN } + XK_periodcentered = $00b7; { U+00B7 MIDDLE DOT } + XK_cedilla = $00b8; { U+00B8 CEDILLA } + XK_onesuperior = $00b9; { U+00B9 SUPERSCRIPT ONE } + XK_masculine = $00ba; { U+00BA MASCULINE ORDINAL INDICATOR } + XK_guillemotright = $00bb; { U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK } + XK_onequarter = $00bc; { U+00BC VULGAR FRACTION ONE QUARTER } + XK_onehalf = $00bd; { U+00BD VULGAR FRACTION ONE HALF } + XK_threequarters = $00be; { U+00BE VULGAR FRACTION THREE QUARTERS } + XK_questiondown = $00bf; { U+00BF INVERTED QUESTION MARK } + XKc_Agrave = $00c0; { U+00C0 LATIN CAPITAL LETTER A WITH GRAVE } + XKc_Aacute = $00c1; { U+00C1 LATIN CAPITAL LETTER A WITH ACUTE } + XKc_Acircumflex = $00c2; { U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX } + XKc_Atilde = $00c3; { U+00C3 LATIN CAPITAL LETTER A WITH TILDE } + XKc_Adiaeresis = $00c4; { U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS } + XKc_Aring = $00c5; { U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE } + XKc_AE = $00c6; { U+00C6 LATIN CAPITAL LETTER AE } + XKc_Ccedilla = $00c7; { U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA } + XKc_Egrave = $00c8; { U+00C8 LATIN CAPITAL LETTER E WITH GRAVE } + XKc_Eacute = $00c9; { U+00C9 LATIN CAPITAL LETTER E WITH ACUTE } + XKc_Ecircumflex = $00ca; { U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX } + XKc_Ediaeresis = $00cb; { U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS } + XKc_Igrave = $00cc; { U+00CC LATIN CAPITAL LETTER I WITH GRAVE } + XKc_Iacute = $00cd; { U+00CD LATIN CAPITAL LETTER I WITH ACUTE } + XKc_Icircumflex = $00ce; { U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX } + XKc_Idiaeresis = $00cf; { U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS } + XKc_ETH = $00d0; { U+00D0 LATIN CAPITAL LETTER ETH } + XKc_Ntilde = $00d1; { U+00D1 LATIN CAPITAL LETTER N WITH TILDE } + XKc_Ograve = $00d2; { U+00D2 LATIN CAPITAL LETTER O WITH GRAVE } + XKc_Oacute = $00d3; { U+00D3 LATIN CAPITAL LETTER O WITH ACUTE } + XKc_Ocircumflex = $00d4; { U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX } + XKc_Otilde = $00d5; { U+00D5 LATIN CAPITAL LETTER O WITH TILDE } + XKc_Odiaeresis = $00d6; { U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS } + XK_multiply = $00d7; { U+00D7 MULTIPLICATION SIGN } + XKc_Oslash = $00d8; { U+00D8 LATIN CAPITAL LETTER O WITH STROKE } + XKc_Ooblique = $00d8; { U+00D8 LATIN CAPITAL LETTER O WITH STROKE } + XKc_Ugrave = $00d9; { U+00D9 LATIN CAPITAL LETTER U WITH GRAVE } + XKc_Uacute = $00da; { U+00DA LATIN CAPITAL LETTER U WITH ACUTE } + XKc_Ucircumflex = $00db; { U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX } + XKc_Udiaeresis = $00dc; { U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS } + XKc_Yacute = $00dd; { U+00DD LATIN CAPITAL LETTER Y WITH ACUTE } + XKc_THORN = $00de; { U+00DE LATIN CAPITAL LETTER THORN } + XK_ssharp = $00df; { U+00DF LATIN SMALL LETTER SHARP S } + XK_agrave = $00e0; { U+00E0 LATIN SMALL LETTER A WITH GRAVE } + XK_aacute = $00e1; { U+00E1 LATIN SMALL LETTER A WITH ACUTE } + XK_acircumflex = $00e2; { U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX } + XK_atilde = $00e3; { U+00E3 LATIN SMALL LETTER A WITH TILDE } + XK_adiaeresis = $00e4; { U+00E4 LATIN SMALL LETTER A WITH DIAERESIS } + XK_aring = $00e5; { U+00E5 LATIN SMALL LETTER A WITH RING ABOVE } + XK_ae = $00e6; { U+00E6 LATIN SMALL LETTER AE } + XK_ccedilla = $00e7; { U+00E7 LATIN SMALL LETTER C WITH CEDILLA } + XK_egrave = $00e8; { U+00E8 LATIN SMALL LETTER E WITH GRAVE } + XK_eacute = $00e9; { U+00E9 LATIN SMALL LETTER E WITH ACUTE } + XK_ecircumflex = $00ea; { U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX } + XK_ediaeresis = $00eb; { U+00EB LATIN SMALL LETTER E WITH DIAERESIS } + XK_igrave = $00ec; { U+00EC LATIN SMALL LETTER I WITH GRAVE } + XK_iacute = $00ed; { U+00ED LATIN SMALL LETTER I WITH ACUTE } + XK_icircumflex = $00ee; { U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX } + XK_idiaeresis = $00ef; { U+00EF LATIN SMALL LETTER I WITH DIAERESIS } + XK_eth = $00f0; { U+00F0 LATIN SMALL LETTER ETH } + XK_ntilde = $00f1; { U+00F1 LATIN SMALL LETTER N WITH TILDE } + XK_ograve = $00f2; { U+00F2 LATIN SMALL LETTER O WITH GRAVE } + XK_oacute = $00f3; { U+00F3 LATIN SMALL LETTER O WITH ACUTE } + XK_ocircumflex = $00f4; { U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX } + XK_otilde = $00f5; { U+00F5 LATIN SMALL LETTER O WITH TILDE } + XK_odiaeresis = $00f6; { U+00F6 LATIN SMALL LETTER O WITH DIAERESIS } + XK_division = $00f7; { U+00F7 DIVISION SIGN } + XK_oslash = $00f8; { U+00F8 LATIN SMALL LETTER O WITH STROKE } + XK_ooblique = $00f8; { U+00F8 LATIN SMALL LETTER O WITH STROKE } + XK_ugrave = $00f9; { U+00F9 LATIN SMALL LETTER U WITH GRAVE } + XK_uacute = $00fa; { U+00FA LATIN SMALL LETTER U WITH ACUTE } + XK_ucircumflex = $00fb; { U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX } + XK_udiaeresis = $00fc; { U+00FC LATIN SMALL LETTER U WITH DIAERESIS } + XK_yacute = $00fd; { U+00FD LATIN SMALL LETTER Y WITH ACUTE } + XK_thorn = $00fe; { U+00FE LATIN SMALL LETTER THORN } + XK_ydiaeresis = $00ff; { U+00FF LATIN SMALL LETTER Y WITH DIAERESIS } + + XKc_Aogonek = $01a1; { U+0104 LATIN CAPITAL LETTER A WITH OGONEK } + XK_breve = $01a2; { U+02D8 BREVE } + XKc_Lstroke = $01a3; { U+0141 LATIN CAPITAL LETTER L WITH STROKE } + XKc_Lcaron = $01a5; { U+013D LATIN CAPITAL LETTER L WITH CARON } + XKc_Sacute = $01a6; { U+015A LATIN CAPITAL LETTER S WITH ACUTE } + XKc_Scaron = $01a9; { U+0160 LATIN CAPITAL LETTER S WITH CARON } + XKc_Scedilla = $01aa; { U+015E LATIN CAPITAL LETTER S WITH CEDILLA } + XKc_Tcaron = $01ab; { U+0164 LATIN CAPITAL LETTER T WITH CARON } + XKc_Zacute = $01ac; { U+0179 LATIN CAPITAL LETTER Z WITH ACUTE } + XKc_Zcaron = $01ae; { U+017D LATIN CAPITAL LETTER Z WITH CARON } + XKc_Zabovedot = $01af; { U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE } + XK_aogonek = $01b1; { U+0105 LATIN SMALL LETTER A WITH OGONEK } + XK_ogonek = $01b2; { U+02DB OGONEK } + XK_lstroke = $01b3; { U+0142 LATIN SMALL LETTER L WITH STROKE } + XK_lcaron = $01b5; { U+013E LATIN SMALL LETTER L WITH CARON } + XK_sacute = $01b6; { U+015B LATIN SMALL LETTER S WITH ACUTE } + XK_caron = $01b7; { U+02C7 CARON } + XK_scaron = $01b9; { U+0161 LATIN SMALL LETTER S WITH CARON } + XK_scedilla = $01ba; { U+015F LATIN SMALL LETTER S WITH CEDILLA } + XK_tcaron = $01bb; { U+0165 LATIN SMALL LETTER T WITH CARON } + XK_zacute = $01bc; { U+017A LATIN SMALL LETTER Z WITH ACUTE } + XK_doubleacute = $01bd; { U+02DD DOUBLE ACUTE ACCENT } + XK_zcaron = $01be; { U+017E LATIN SMALL LETTER Z WITH CARON } + XK_zabovedot = $01bf; { U+017C LATIN SMALL LETTER Z WITH DOT ABOVE } + XKc_Racute = $01c0; { U+0154 LATIN CAPITAL LETTER R WITH ACUTE } + XKc_Abreve = $01c3; { U+0102 LATIN CAPITAL LETTER A WITH BREVE } + XKc_Lacute = $01c5; { U+0139 LATIN CAPITAL LETTER L WITH ACUTE } + XKc_Cacute = $01c6; { U+0106 LATIN CAPITAL LETTER C WITH ACUTE } + XKc_Ccaron = $01c8; { U+010C LATIN CAPITAL LETTER C WITH CARON } + XKc_Eogonek = $01ca; { U+0118 LATIN CAPITAL LETTER E WITH OGONEK } + XKc_Ecaron = $01cc; { U+011A LATIN CAPITAL LETTER E WITH CARON } + XKc_Dcaron = $01cf; { U+010E LATIN CAPITAL LETTER D WITH CARON } + XKc_Dstroke = $01d0; { U+0110 LATIN CAPITAL LETTER D WITH STROKE } + XKc_Nacute = $01d1; { U+0143 LATIN CAPITAL LETTER N WITH ACUTE } + XKc_Ncaron = $01d2; { U+0147 LATIN CAPITAL LETTER N WITH CARON } + XKc_Odoubleacute = $01d5; { U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE } + XKc_Rcaron = $01d8; { U+0158 LATIN CAPITAL LETTER R WITH CARON } + XKc_Uring = $01d9; { U+016E LATIN CAPITAL LETTER U WITH RING ABOVE } + XKc_Udoubleacute = $01db; { U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE } + XKc_Tcedilla = $01de; { U+0162 LATIN CAPITAL LETTER T WITH CEDILLA } + XK_racute = $01e0; { U+0155 LATIN SMALL LETTER R WITH ACUTE } + XK_abreve = $01e3; { U+0103 LATIN SMALL LETTER A WITH BREVE } + XK_lacute = $01e5; { U+013A LATIN SMALL LETTER L WITH ACUTE } + XK_cacute = $01e6; { U+0107 LATIN SMALL LETTER C WITH ACUTE } + XK_ccaron = $01e8; { U+010D LATIN SMALL LETTER C WITH CARON } + XK_eogonek = $01ea; { U+0119 LATIN SMALL LETTER E WITH OGONEK } + XK_ecaron = $01ec; { U+011B LATIN SMALL LETTER E WITH CARON } + XK_dcaron = $01ef; { U+010F LATIN SMALL LETTER D WITH CARON } + XK_dstroke = $01f0; { U+0111 LATIN SMALL LETTER D WITH STROKE } + XK_nacute = $01f1; { U+0144 LATIN SMALL LETTER N WITH ACUTE } + XK_ncaron = $01f2; { U+0148 LATIN SMALL LETTER N WITH CARON } + XK_odoubleacute = $01f5; { U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE } + XK_rcaron = $01f8; { U+0159 LATIN SMALL LETTER R WITH CARON } + XK_uring = $01f9; { U+016F LATIN SMALL LETTER U WITH RING ABOVE } + XK_udoubleacute = $01fb; { U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE } + XK_tcedilla = $01fe; { U+0163 LATIN SMALL LETTER T WITH CEDILLA } + XK_abovedot = $01ff; { U+02D9 DOT ABOVE } + + XKc_Hstroke = $02a1; { U+0126 LATIN CAPITAL LETTER H WITH STROKE } + XKc_Hcircumflex = $02a6; { U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX } + XKc_Iabovedot = $02a9; { U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE } + XKc_Gbreve = $02ab; { U+011E LATIN CAPITAL LETTER G WITH BREVE } + XKc_Jcircumflex = $02ac; { U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX } + XK_hstroke = $02b1; { U+0127 LATIN SMALL LETTER H WITH STROKE } + XK_hcircumflex = $02b6; { U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX } + XK_idotless = $02b9; { U+0131 LATIN SMALL LETTER DOTLESS I } + XK_gbreve = $02bb; { U+011F LATIN SMALL LETTER G WITH BREVE } + XK_jcircumflex = $02bc; { U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX } + XKc_Cabovedot = $02c5; { U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE } + XKc_Ccircumflex = $02c6; { U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX } + XKc_Gabovedot = $02d5; { U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE } + XKc_Gcircumflex = $02d8; { U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX } + XKc_Ubreve = $02dd; { U+016C LATIN CAPITAL LETTER U WITH BREVE } + XKc_Scircumflex = $02de; { U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX } + XK_cabovedot = $02e5; { U+010B LATIN SMALL LETTER C WITH DOT ABOVE } + XK_ccircumflex = $02e6; { U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX } + XK_gabovedot = $02f5; { U+0121 LATIN SMALL LETTER G WITH DOT ABOVE } + XK_gcircumflex = $02f8; { U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX } + XK_ubreve = $02fd; { U+016D LATIN SMALL LETTER U WITH BREVE } + XK_scircumflex = $02fe; { U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX } + + XK_kra = $03a2; { U+0138 LATIN SMALL LETTER KRA } + XK_kappa = $03a2; { deprecated } + XKc_Rcedilla = $03a3; { U+0156 LATIN CAPITAL LETTER R WITH CEDILLA } + XKc_Itilde = $03a5; { U+0128 LATIN CAPITAL LETTER I WITH TILDE } + XKc_Lcedilla = $03a6; { U+013B LATIN CAPITAL LETTER L WITH CEDILLA } + XKc_Emacron = $03aa; { U+0112 LATIN CAPITAL LETTER E WITH MACRON } + XKc_Gcedilla = $03ab; { U+0122 LATIN CAPITAL LETTER G WITH CEDILLA } + XKc_Tslash = $03ac; { U+0166 LATIN CAPITAL LETTER T WITH STROKE } + XK_rcedilla = $03b3; { U+0157 LATIN SMALL LETTER R WITH CEDILLA } + XK_itilde = $03b5; { U+0129 LATIN SMALL LETTER I WITH TILDE } + XK_lcedilla = $03b6; { U+013C LATIN SMALL LETTER L WITH CEDILLA } + XK_emacron = $03ba; { U+0113 LATIN SMALL LETTER E WITH MACRON } + XK_gcedilla = $03bb; { U+0123 LATIN SMALL LETTER G WITH CEDILLA } + XK_tslash = $03bc; { U+0167 LATIN SMALL LETTER T WITH STROKE } + XKc_ENG = $03bd; { U+014A LATIN CAPITAL LETTER ENG } + XK_eng = $03bf; { U+014B LATIN SMALL LETTER ENG } + XKc_Amacron = $03c0; { U+0100 LATIN CAPITAL LETTER A WITH MACRON } + XKc_Iogonek = $03c7; { U+012E LATIN CAPITAL LETTER I WITH OGONEK } + XKc_Eabovedot = $03cc; { U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE } + XKc_Imacron = $03cf; { U+012A LATIN CAPITAL LETTER I WITH MACRON } + XKc_Ncedilla = $03d1; { U+0145 LATIN CAPITAL LETTER N WITH CEDILLA } + XKc_Omacron = $03d2; { U+014C LATIN CAPITAL LETTER O WITH MACRON } + XKc_Kcedilla = $03d3; { U+0136 LATIN CAPITAL LETTER K WITH CEDILLA } + XKc_Uogonek = $03d9; { U+0172 LATIN CAPITAL LETTER U WITH OGONEK } + XKc_Utilde = $03dd; { U+0168 LATIN CAPITAL LETTER U WITH TILDE } + XKc_Umacron = $03de; { U+016A LATIN CAPITAL LETTER U WITH MACRON } + XK_amacron = $03e0; { U+0101 LATIN SMALL LETTER A WITH MACRON } + XK_iogonek = $03e7; { U+012F LATIN SMALL LETTER I WITH OGONEK } + XK_eabovedot = $03ec; { U+0117 LATIN SMALL LETTER E WITH DOT ABOVE } + XK_imacron = $03ef; { U+012B LATIN SMALL LETTER I WITH MACRON } + XK_ncedilla = $03f1; { U+0146 LATIN SMALL LETTER N WITH CEDILLA } + XK_omacron = $03f2; { U+014D LATIN SMALL LETTER O WITH MACRON } + XK_kcedilla = $03f3; { U+0137 LATIN SMALL LETTER K WITH CEDILLA } + XK_uogonek = $03f9; { U+0173 LATIN SMALL LETTER U WITH OGONEK } + XK_utilde = $03fd; { U+0169 LATIN SMALL LETTER U WITH TILDE } + XK_umacron = $03fe; { U+016B LATIN SMALL LETTER U WITH MACRON } + + XKc_Wcircumflex = $1000174; { U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX } + XK_wcircumflex = $1000175; { U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX } + XKc_Ycircumflex = $1000176; { U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX } + XK_ycircumflex = $1000177; { U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX } + XKc_Babovedot = $1001e02; { U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE } + XK_babovedot = $1001e03; { U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE } + XKc_Dabovedot = $1001e0a; { U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE } + XK_dabovedot = $1001e0b; { U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE } + XKc_Fabovedot = $1001e1e; { U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE } + XK_fabovedot = $1001e1f; { U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE } + XKc_Mabovedot = $1001e40; { U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE } + XK_mabovedot = $1001e41; { U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE } + XKc_Pabovedot = $1001e56; { U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE } + XK_pabovedot = $1001e57; { U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE } + XKc_Sabovedot = $1001e60; { U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE } + XK_sabovedot = $1001e61; { U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE } + XKc_Tabovedot = $1001e6a; { U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE } + XK_tabovedot = $1001e6b; { U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE } + XKc_Wgrave = $1001e80; { U+1E80 LATIN CAPITAL LETTER W WITH GRAVE } + XK_wgrave = $1001e81; { U+1E81 LATIN SMALL LETTER W WITH GRAVE } + XKc_Wacute = $1001e82; { U+1E82 LATIN CAPITAL LETTER W WITH ACUTE } + XK_wacute = $1001e83; { U+1E83 LATIN SMALL LETTER W WITH ACUTE } + XKc_Wdiaeresis = $1001e84; { U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS } + XK_wdiaeresis = $1001e85; { U+1E85 LATIN SMALL LETTER W WITH DIAERESIS } + XKc_Ygrave = $1001ef2; { U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE } + XK_ygrave = $1001ef3; { U+1EF3 LATIN SMALL LETTER Y WITH GRAVE } + + XKc_OE = $13bc; { U+0152 LATIN CAPITAL LIGATURE OE } + XK_oe = $13bd; { U+0153 LATIN SMALL LIGATURE OE } + XKc_Ydiaeresis = $13be; { U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS } + + XK_overline = $047e; { U+203E OVERLINE } + XK_kana_fullstop = $04a1; { U+3002 IDEOGRAPHIC FULL STOP } + XK_kana_openingbracket = $04a2; { U+300C LEFT CORNER BRACKET } + XK_kana_closingbracket = $04a3; { U+300D RIGHT CORNER BRACKET } + XK_kana_comma = $04a4; { U+3001 IDEOGRAPHIC COMMA } + XK_kana_conjunctive = $04a5; { U+30FB KATAKANA MIDDLE DOT } + XK_kana_middledot = $04a5; { deprecated } + XKc_kana_WO = $04a6; { U+30F2 KATAKANA LETTER WO } + XK_kana_a = $04a7; { U+30A1 KATAKANA LETTER SMALL A } + XK_kana_i = $04a8; { U+30A3 KATAKANA LETTER SMALL I } + XK_kana_u = $04a9; { U+30A5 KATAKANA LETTER SMALL U } + XK_kana_e = $04aa; { U+30A7 KATAKANA LETTER SMALL E } + XK_kana_o = $04ab; { U+30A9 KATAKANA LETTER SMALL O } + XK_kana_ya = $04ac; { U+30E3 KATAKANA LETTER SMALL YA } + XK_kana_yu = $04ad; { U+30E5 KATAKANA LETTER SMALL YU } + XK_kana_yo = $04ae; { U+30E7 KATAKANA LETTER SMALL YO } + XK_kana_tsu = $04af; { U+30C3 KATAKANA LETTER SMALL TU } + XK_kana_tu = $04af; { deprecated } + XK_prolongedsound = $04b0; { U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK } + XKc_kana_A = $04b1; { U+30A2 KATAKANA LETTER A } + XKc_kana_I = $04b2; { U+30A4 KATAKANA LETTER I } + XKc_kana_U = $04b3; { U+30A6 KATAKANA LETTER U } + XKc_kana_E = $04b4; { U+30A8 KATAKANA LETTER E } + XKc_kana_O = $04b5; { U+30AA KATAKANA LETTER O } + XKc_kana_KA = $04b6; { U+30AB KATAKANA LETTER KA } + XKc_kana_KI = $04b7; { U+30AD KATAKANA LETTER KI } + XKc_kana_KU = $04b8; { U+30AF KATAKANA LETTER KU } + XKc_kana_KE = $04b9; { U+30B1 KATAKANA LETTER KE } + XKc_kana_KO = $04ba; { U+30B3 KATAKANA LETTER KO } + XKc_kana_SA = $04bb; { U+30B5 KATAKANA LETTER SA } + XKc_kana_SHI = $04bc; { U+30B7 KATAKANA LETTER SI } + XKc_kana_SU = $04bd; { U+30B9 KATAKANA LETTER SU } + XKc_kana_SE = $04be; { U+30BB KATAKANA LETTER SE } + XKc_kana_SO = $04bf; { U+30BD KATAKANA LETTER SO } + XKc_kana_TA = $04c0; { U+30BF KATAKANA LETTER TA } + XKc_kana_CHI = $04c1; { U+30C1 KATAKANA LETTER TI } + XKc_kana_TI = $04c1; { deprecated } + XKc_kana_TSU = $04c2; { U+30C4 KATAKANA LETTER TU } + XKc_kana_TU = $04c2; { deprecated } + XKc_kana_TE = $04c3; { U+30C6 KATAKANA LETTER TE } + XKc_kana_TO = $04c4; { U+30C8 KATAKANA LETTER TO } + XKc_kana_NA = $04c5; { U+30CA KATAKANA LETTER NA } + XKc_kana_NI = $04c6; { U+30CB KATAKANA LETTER NI } + XKc_kana_NU = $04c7; { U+30CC KATAKANA LETTER NU } + XKc_kana_NE = $04c8; { U+30CD KATAKANA LETTER NE } + XKc_kana_NO = $04c9; { U+30CE KATAKANA LETTER NO } + XKc_kana_HA = $04ca; { U+30CF KATAKANA LETTER HA } + XKc_kana_HI = $04cb; { U+30D2 KATAKANA LETTER HI } + XKc_kana_FU = $04cc; { U+30D5 KATAKANA LETTER HU } + XKc_kana_HU = $04cc; { deprecated } + XKc_kana_HE = $04cd; { U+30D8 KATAKANA LETTER HE } + XKc_kana_HO = $04ce; { U+30DB KATAKANA LETTER HO } + XKc_kana_MA = $04cf; { U+30DE KATAKANA LETTER MA } + XKc_kana_MI = $04d0; { U+30DF KATAKANA LETTER MI } + XKc_kana_MU = $04d1; { U+30E0 KATAKANA LETTER MU } + XKc_kana_ME = $04d2; { U+30E1 KATAKANA LETTER ME } + XKc_kana_MO = $04d3; { U+30E2 KATAKANA LETTER MO } + XKc_kana_YA = $04d4; { U+30E4 KATAKANA LETTER YA } + XKc_kana_YU = $04d5; { U+30E6 KATAKANA LETTER YU } + XKc_kana_YO = $04d6; { U+30E8 KATAKANA LETTER YO } + XKc_kana_RA = $04d7; { U+30E9 KATAKANA LETTER RA } + XKc_kana_RI = $04d8; { U+30EA KATAKANA LETTER RI } + XKc_kana_RU = $04d9; { U+30EB KATAKANA LETTER RU } + XKc_kana_RE = $04da; { U+30EC KATAKANA LETTER RE } + XKc_kana_RO = $04db; { U+30ED KATAKANA LETTER RO } + XKc_kana_WA = $04dc; { U+30EF KATAKANA LETTER WA } + XKc_kana_N = $04dd; { U+30F3 KATAKANA LETTER N } + XK_voicedsound = $04de; { U+309B KATAKANA-HIRAGANA VOICED SOUND MARK } + XK_semivoicedsound = $04df; { U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK } + XK_kana_switch = $ff7e; { Alias for mode_switch } + + XK_Farsi_0 = $10006f0; { U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO } + XK_Farsi_1 = $10006f1; { U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE } + XK_Farsi_2 = $10006f2; { U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO } + XK_Farsi_3 = $10006f3; { U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE } + XK_Farsi_4 = $10006f4; { U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR } + XK_Farsi_5 = $10006f5; { U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE } + XK_Farsi_6 = $10006f6; { U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX } + XK_Farsi_7 = $10006f7; { U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN } + XK_Farsi_8 = $10006f8; { U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT } + XK_Farsi_9 = $10006f9; { U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE } + XK_Arabic_percent = $100066a; { U+066A ARABIC PERCENT SIGN } + XK_Arabic_superscript_alef = $1000670; { U+0670 ARABIC LETTER SUPERSCRIPT ALEF } + XK_Arabic_tteh = $1000679; { U+0679 ARABIC LETTER TTEH } + XK_Arabic_peh = $100067e; { U+067E ARABIC LETTER PEH } + XK_Arabic_tcheh = $1000686; { U+0686 ARABIC LETTER TCHEH } + XK_Arabic_ddal = $1000688; { U+0688 ARABIC LETTER DDAL } + XK_Arabic_rreh = $1000691; { U+0691 ARABIC LETTER RREH } + XK_Arabic_comma = $05ac; { U+060C ARABIC COMMA } + XK_Arabic_fullstop = $10006d4; { U+06D4 ARABIC FULL STOP } + XK_Arabic_0 = $1000660; { U+0660 ARABIC-INDIC DIGIT ZERO } + XK_Arabic_1 = $1000661; { U+0661 ARABIC-INDIC DIGIT ONE } + XK_Arabic_2 = $1000662; { U+0662 ARABIC-INDIC DIGIT TWO } + XK_Arabic_3 = $1000663; { U+0663 ARABIC-INDIC DIGIT THREE } + XK_Arabic_4 = $1000664; { U+0664 ARABIC-INDIC DIGIT FOUR } + XK_Arabic_5 = $1000665; { U+0665 ARABIC-INDIC DIGIT FIVE } + XK_Arabic_6 = $1000666; { U+0666 ARABIC-INDIC DIGIT SIX } + XK_Arabic_7 = $1000667; { U+0667 ARABIC-INDIC DIGIT SEVEN } + XK_Arabic_8 = $1000668; { U+0668 ARABIC-INDIC DIGIT EIGHT } + XK_Arabic_9 = $1000669; { U+0669 ARABIC-INDIC DIGIT NINE } + XK_Arabic_semicolon = $05bb; { U+061B ARABIC SEMICOLON } + XK_Arabic_question_mark = $05bf; { U+061F ARABIC QUESTION MARK } + XK_Arabic_hamza = $05c1; { U+0621 ARABIC LETTER HAMZA } + XK_Arabic_maddaonalef = $05c2; { U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE } + XK_Arabic_hamzaonalef = $05c3; { U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE } + XK_Arabic_hamzaonwaw = $05c4; { U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE } + XK_Arabic_hamzaunderalef = $05c5; { U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW } + XK_Arabic_hamzaonyeh = $05c6; { U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE } + XK_Arabic_alef = $05c7; { U+0627 ARABIC LETTER ALEF } + XK_Arabic_beh = $05c8; { U+0628 ARABIC LETTER BEH } + XK_Arabic_tehmarbuta = $05c9; { U+0629 ARABIC LETTER TEH MARBUTA } + XK_Arabic_teh = $05ca; { U+062A ARABIC LETTER TEH } + XK_Arabic_theh = $05cb; { U+062B ARABIC LETTER THEH } + XK_Arabic_jeem = $05cc; { U+062C ARABIC LETTER JEEM } + XK_Arabic_hah = $05cd; { U+062D ARABIC LETTER HAH } + XK_Arabic_khah = $05ce; { U+062E ARABIC LETTER KHAH } + XK_Arabic_dal = $05cf; { U+062F ARABIC LETTER DAL } + XK_Arabic_thal = $05d0; { U+0630 ARABIC LETTER THAL } + XK_Arabic_ra = $05d1; { U+0631 ARABIC LETTER REH } + XK_Arabic_zain = $05d2; { U+0632 ARABIC LETTER ZAIN } + XK_Arabic_seen = $05d3; { U+0633 ARABIC LETTER SEEN } + XK_Arabic_sheen = $05d4; { U+0634 ARABIC LETTER SHEEN } + XK_Arabic_sad = $05d5; { U+0635 ARABIC LETTER SAD } + XK_Arabic_dad = $05d6; { U+0636 ARABIC LETTER DAD } + XK_Arabic_tah = $05d7; { U+0637 ARABIC LETTER TAH } + XK_Arabic_zah = $05d8; { U+0638 ARABIC LETTER ZAH } + XK_Arabic_ain = $05d9; { U+0639 ARABIC LETTER AIN } + XK_Arabic_ghain = $05da; { U+063A ARABIC LETTER GHAIN } + XK_Arabic_tatweel = $05e0; { U+0640 ARABIC TATWEEL } + XK_Arabic_feh = $05e1; { U+0641 ARABIC LETTER FEH } + XK_Arabic_qaf = $05e2; { U+0642 ARABIC LETTER QAF } + XK_Arabic_kaf = $05e3; { U+0643 ARABIC LETTER KAF } + XK_Arabic_lam = $05e4; { U+0644 ARABIC LETTER LAM } + XK_Arabic_meem = $05e5; { U+0645 ARABIC LETTER MEEM } + XK_Arabic_noon = $05e6; { U+0646 ARABIC LETTER NOON } + XK_Arabic_ha = $05e7; { U+0647 ARABIC LETTER HEH } + XK_Arabic_heh = $05e7; { deprecated } + XK_Arabic_waw = $05e8; { U+0648 ARABIC LETTER WAW } + XK_Arabic_alefmaksura = $05e9; { U+0649 ARABIC LETTER ALEF MAKSURA } + XK_Arabic_yeh = $05ea; { U+064A ARABIC LETTER YEH } + XK_Arabic_fathatan = $05eb; { U+064B ARABIC FATHATAN } + XK_Arabic_dammatan = $05ec; { U+064C ARABIC DAMMATAN } + XK_Arabic_kasratan = $05ed; { U+064D ARABIC KASRATAN } + XK_Arabic_fatha = $05ee; { U+064E ARABIC FATHA } + XK_Arabic_damma = $05ef; { U+064F ARABIC DAMMA } + XK_Arabic_kasra = $05f0; { U+0650 ARABIC KASRA } + XK_Arabic_shadda = $05f1; { U+0651 ARABIC SHADDA } + XK_Arabic_sukun = $05f2; { U+0652 ARABIC SUKUN } + XK_Arabic_madda_above = $1000653; { U+0653 ARABIC MADDAH ABOVE } + XK_Arabic_hamza_above = $1000654; { U+0654 ARABIC HAMZA ABOVE } + XK_Arabic_hamza_below = $1000655; { U+0655 ARABIC HAMZA BELOW } + XK_Arabic_jeh = $1000698; { U+0698 ARABIC LETTER JEH } + XK_Arabic_veh = $10006a4; { U+06A4 ARABIC LETTER VEH } + XK_Arabic_keheh = $10006a9; { U+06A9 ARABIC LETTER KEHEH } + XK_Arabic_gaf = $10006af; { U+06AF ARABIC LETTER GAF } + XK_Arabic_noon_ghunna = $10006ba; { U+06BA ARABIC LETTER NOON GHUNNA } + XK_Arabic_heh_doachashmee = $10006be; { U+06BE ARABIC LETTER HEH DOACHASHMEE } + XK_Farsi_yeh = $10006cc; { U+06CC ARABIC LETTER FARSI YEH } + XK_Arabic_farsi_yeh = $10006cc; { U+06CC ARABIC LETTER FARSI YEH } + XK_Arabic_yeh_baree = $10006d2; { U+06D2 ARABIC LETTER YEH BARREE } + XK_Arabic_heh_goal = $10006c1; { U+06C1 ARABIC LETTER HEH GOAL } + XK_Arabic_switch = $ff7e; { Alias for mode_switch } + + XKc_Cyrillic_GHE_bar = $1000492; { U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE } + XK_Cyrillic_ghe_bar = $1000493; { U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE } + XKc_Cyrillic_ZHE_descender = $1000496; { U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER } + XK_Cyrillic_zhe_descender = $1000497; { U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER } + XKc_Cyrillic_KA_descender = $100049a; { U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER } + XK_Cyrillic_ka_descender = $100049b; { U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER } + XKc_Cyrillic_KA_vertstroke = $100049c; { U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE } + XK_Cyrillic_ka_vertstroke = $100049d; { U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE } + XKc_Cyrillic_EN_descender = $10004a2; { U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER } + XK_Cyrillic_en_descender = $10004a3; { U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER } + XKc_Cyrillic_U_straight = $10004ae; { U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U } + XK_Cyrillic_u_straight = $10004af; { U+04AF CYRILLIC SMALL LETTER STRAIGHT U } + XKc_Cyrillic_U_straight_bar = $10004b0; { U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE } + XK_Cyrillic_u_straight_bar = $10004b1; { U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE } + XKc_Cyrillic_HA_descender = $10004b2; { U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER } + XK_Cyrillic_ha_descender = $10004b3; { U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER } + XKc_Cyrillic_CHE_descender = $10004b6; { U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER } + XK_Cyrillic_che_descender = $10004b7; { U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER } + XKc_Cyrillic_CHE_vertstroke = $10004b8; { U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE } + XK_Cyrillic_che_vertstroke = $10004b9; { U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE } + XKc_Cyrillic_SHHA = $10004ba; { U+04BA CYRILLIC CAPITAL LETTER SHHA } + XK_Cyrillic_shha = $10004bb; { U+04BB CYRILLIC SMALL LETTER SHHA } + + XKc_Cyrillic_SCHWA = $10004d8; { U+04D8 CYRILLIC CAPITAL LETTER SCHWA } + XK_Cyrillic_schwa = $10004d9; { U+04D9 CYRILLIC SMALL LETTER SCHWA } + XKc_Cyrillic_I_macron = $10004e2; { U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON } + XK_Cyrillic_i_macron = $10004e3; { U+04E3 CYRILLIC SMALL LETTER I WITH MACRON } + XKc_Cyrillic_O_bar = $10004e8; { U+04E8 CYRILLIC CAPITAL LETTER BARRED O } + XK_Cyrillic_o_bar = $10004e9; { U+04E9 CYRILLIC SMALL LETTER BARRED O } + XKc_Cyrillic_U_macron = $10004ee; { U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON } + XK_Cyrillic_u_macron = $10004ef; { U+04EF CYRILLIC SMALL LETTER U WITH MACRON } + + XK_Serbian_dje = $06a1; { U+0452 CYRILLIC SMALL LETTER DJE } + XK_Macedonia_gje = $06a2; { U+0453 CYRILLIC SMALL LETTER GJE } + XK_Cyrillic_io = $06a3; { U+0451 CYRILLIC SMALL LETTER IO } + XK_Ukrainian_ie = $06a4; { U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE } + XK_Ukranian_je = $06a4; { deprecated } + XK_Macedonia_dse = $06a5; { U+0455 CYRILLIC SMALL LETTER DZE } + XK_Ukrainian_i = $06a6; { U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I } + XK_Ukranian_i = $06a6; { deprecated } + XK_Ukrainian_yi = $06a7; { U+0457 CYRILLIC SMALL LETTER YI } + XK_Ukranian_yi = $06a7; { deprecated } + XK_Cyrillic_je = $06a8; { U+0458 CYRILLIC SMALL LETTER JE } + XK_Serbian_je = $06a8; { deprecated } + XK_Cyrillic_lje = $06a9; { U+0459 CYRILLIC SMALL LETTER LJE } + XK_Serbian_lje = $06a9; { deprecated } + XK_Cyrillic_nje = $06aa; { U+045A CYRILLIC SMALL LETTER NJE } + XK_Serbian_nje = $06aa; { deprecated } + XK_Serbian_tshe = $06ab; { U+045B CYRILLIC SMALL LETTER TSHE } + XK_Macedonia_kje = $06ac; { U+045C CYRILLIC SMALL LETTER KJE } + XK_Ukrainian_ghe_with_upturn = $06ad; { U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN } + XK_Byelorussian_shortu = $06ae; { U+045E CYRILLIC SMALL LETTER SHORT U } + XK_Cyrillic_dzhe = $06af; { U+045F CYRILLIC SMALL LETTER DZHE } + XK_Serbian_dze = $06af; { deprecated } + XK_numerosign = $06b0; { U+2116 NUMERO SIGN } + XKc_Serbian_DJE = $06b1; { U+0402 CYRILLIC CAPITAL LETTER DJE } + XKc_Macedonia_GJE = $06b2; { U+0403 CYRILLIC CAPITAL LETTER GJE } + XKc_Cyrillic_IO = $06b3; { U+0401 CYRILLIC CAPITAL LETTER IO } + XKc_Ukrainian_IE = $06b4; { U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE } + XKc_Ukranian_JE = $06b4; { deprecated } + XKc_Macedonia_DSE = $06b5; { U+0405 CYRILLIC CAPITAL LETTER DZE } + XKc_Ukrainian_I = $06b6; { U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I } + XKc_Ukranian_I = $06b6; { deprecated } + XKc_Ukrainian_YI = $06b7; { U+0407 CYRILLIC CAPITAL LETTER YI } + XKc_Ukranian_YI = $06b7; { deprecated } + XKc_Cyrillic_JE = $06b8; { U+0408 CYRILLIC CAPITAL LETTER JE } + XKc_Serbian_JE = $06b8; { deprecated } + XKc_Cyrillic_LJE = $06b9; { U+0409 CYRILLIC CAPITAL LETTER LJE } + XKc_Serbian_LJE = $06b9; { deprecated } + XKc_Cyrillic_NJE = $06ba; { U+040A CYRILLIC CAPITAL LETTER NJE } + XKc_Serbian_NJE = $06ba; { deprecated } + XKc_Serbian_TSHE = $06bb; { U+040B CYRILLIC CAPITAL LETTER TSHE } + XKc_Macedonia_KJE = $06bc; { U+040C CYRILLIC CAPITAL LETTER KJE } + XKc_Ukrainian_GHE_WITH_UPTURN = $06bd; { U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN } + XKc_Byelorussian_SHORTU = $06be; { U+040E CYRILLIC CAPITAL LETTER SHORT U } + XKc_Cyrillic_DZHE = $06bf; { U+040F CYRILLIC CAPITAL LETTER DZHE } + XKc_Serbian_DZE = $06bf; { deprecated } + XK_Cyrillic_yu = $06c0; { U+044E CYRILLIC SMALL LETTER YU } + XK_Cyrillic_a = $06c1; { U+0430 CYRILLIC SMALL LETTER A } + XK_Cyrillic_be = $06c2; { U+0431 CYRILLIC SMALL LETTER BE } + XK_Cyrillic_tse = $06c3; { U+0446 CYRILLIC SMALL LETTER TSE } + XK_Cyrillic_de = $06c4; { U+0434 CYRILLIC SMALL LETTER DE } + XK_Cyrillic_ie = $06c5; { U+0435 CYRILLIC SMALL LETTER IE } + XK_Cyrillic_ef = $06c6; { U+0444 CYRILLIC SMALL LETTER EF } + XK_Cyrillic_ghe = $06c7; { U+0433 CYRILLIC SMALL LETTER GHE } + XK_Cyrillic_ha = $06c8; { U+0445 CYRILLIC SMALL LETTER HA } + XK_Cyrillic_i = $06c9; { U+0438 CYRILLIC SMALL LETTER I } + XK_Cyrillic_shorti = $06ca; { U+0439 CYRILLIC SMALL LETTER SHORT I } + XK_Cyrillic_ka = $06cb; { U+043A CYRILLIC SMALL LETTER KA } + XK_Cyrillic_el = $06cc; { U+043B CYRILLIC SMALL LETTER EL } + XK_Cyrillic_em = $06cd; { U+043C CYRILLIC SMALL LETTER EM } + XK_Cyrillic_en = $06ce; { U+043D CYRILLIC SMALL LETTER EN } + XK_Cyrillic_o = $06cf; { U+043E CYRILLIC SMALL LETTER O } + XK_Cyrillic_pe = $06d0; { U+043F CYRILLIC SMALL LETTER PE } + XK_Cyrillic_ya = $06d1; { U+044F CYRILLIC SMALL LETTER YA } + XK_Cyrillic_er = $06d2; { U+0440 CYRILLIC SMALL LETTER ER } + XK_Cyrillic_es = $06d3; { U+0441 CYRILLIC SMALL LETTER ES } + XK_Cyrillic_te = $06d4; { U+0442 CYRILLIC SMALL LETTER TE } + XK_Cyrillic_u = $06d5; { U+0443 CYRILLIC SMALL LETTER U } + XK_Cyrillic_zhe = $06d6; { U+0436 CYRILLIC SMALL LETTER ZHE } + XK_Cyrillic_ve = $06d7; { U+0432 CYRILLIC SMALL LETTER VE } + XK_Cyrillic_softsign = $06d8; { U+044C CYRILLIC SMALL LETTER SOFT SIGN } + XK_Cyrillic_yeru = $06d9; { U+044B CYRILLIC SMALL LETTER YERU } + XK_Cyrillic_ze = $06da; { U+0437 CYRILLIC SMALL LETTER ZE } + XK_Cyrillic_sha = $06db; { U+0448 CYRILLIC SMALL LETTER SHA } + XK_Cyrillic_e = $06dc; { U+044D CYRILLIC SMALL LETTER E } + XK_Cyrillic_shcha = $06dd; { U+0449 CYRILLIC SMALL LETTER SHCHA } + XK_Cyrillic_che = $06de; { U+0447 CYRILLIC SMALL LETTER CHE } + XK_Cyrillic_hardsign = $06df; { U+044A CYRILLIC SMALL LETTER HARD SIGN } + XKc_Cyrillic_YU = $06e0; { U+042E CYRILLIC CAPITAL LETTER YU } + XKc_Cyrillic_A = $06e1; { U+0410 CYRILLIC CAPITAL LETTER A } + XKc_Cyrillic_BE = $06e2; { U+0411 CYRILLIC CAPITAL LETTER BE } + XKc_Cyrillic_TSE = $06e3; { U+0426 CYRILLIC CAPITAL LETTER TSE } + XKc_Cyrillic_DE = $06e4; { U+0414 CYRILLIC CAPITAL LETTER DE } + XKc_Cyrillic_IE = $06e5; { U+0415 CYRILLIC CAPITAL LETTER IE } + XKc_Cyrillic_EF = $06e6; { U+0424 CYRILLIC CAPITAL LETTER EF } + XKc_Cyrillic_GHE = $06e7; { U+0413 CYRILLIC CAPITAL LETTER GHE } + XKc_Cyrillic_HA = $06e8; { U+0425 CYRILLIC CAPITAL LETTER HA } + XKc_Cyrillic_I = $06e9; { U+0418 CYRILLIC CAPITAL LETTER I } + XKc_Cyrillic_SHORTI = $06ea; { U+0419 CYRILLIC CAPITAL LETTER SHORT I } + XKc_Cyrillic_KA = $06eb; { U+041A CYRILLIC CAPITAL LETTER KA } + XKc_Cyrillic_EL = $06ec; { U+041B CYRILLIC CAPITAL LETTER EL } + XKc_Cyrillic_EM = $06ed; { U+041C CYRILLIC CAPITAL LETTER EM } + XKc_Cyrillic_EN = $06ee; { U+041D CYRILLIC CAPITAL LETTER EN } + XKc_Cyrillic_O = $06ef; { U+041E CYRILLIC CAPITAL LETTER O } + XKc_Cyrillic_PE = $06f0; { U+041F CYRILLIC CAPITAL LETTER PE } + XKc_Cyrillic_YA = $06f1; { U+042F CYRILLIC CAPITAL LETTER YA } + XKc_Cyrillic_ER = $06f2; { U+0420 CYRILLIC CAPITAL LETTER ER } + XKc_Cyrillic_ES = $06f3; { U+0421 CYRILLIC CAPITAL LETTER ES } + XKc_Cyrillic_TE = $06f4; { U+0422 CYRILLIC CAPITAL LETTER TE } + XKc_Cyrillic_U = $06f5; { U+0423 CYRILLIC CAPITAL LETTER U } + XKc_Cyrillic_ZHE = $06f6; { U+0416 CYRILLIC CAPITAL LETTER ZHE } + XKc_Cyrillic_VE = $06f7; { U+0412 CYRILLIC CAPITAL LETTER VE } + XKc_Cyrillic_SOFTSIGN = $06f8; { U+042C CYRILLIC CAPITAL LETTER SOFT SIGN } + XKc_Cyrillic_YERU = $06f9; { U+042B CYRILLIC CAPITAL LETTER YERU } + XKc_Cyrillic_ZE = $06fa; { U+0417 CYRILLIC CAPITAL LETTER ZE } + XKc_Cyrillic_SHA = $06fb; { U+0428 CYRILLIC CAPITAL LETTER SHA } + XKc_Cyrillic_E = $06fc; { U+042D CYRILLIC CAPITAL LETTER E } + XKc_Cyrillic_SHCHA = $06fd; { U+0429 CYRILLIC CAPITAL LETTER SHCHA } + XKc_Cyrillic_CHE = $06fe; { U+0427 CYRILLIC CAPITAL LETTER CHE } + XKc_Cyrillic_HARDSIGN = $06ff; { U+042A CYRILLIC CAPITAL LETTER HARD SIGN } + + XKc_Greek_ALPHAaccent = $07a1; { U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS } + XKc_Greek_EPSILONaccent = $07a2; { U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS } + XKc_Greek_ETAaccent = $07a3; { U+0389 GREEK CAPITAL LETTER ETA WITH TONOS } + XKc_Greek_IOTAaccent = $07a4; { U+038A GREEK CAPITAL LETTER IOTA WITH TONOS } + XKc_Greek_IOTAdieresis = $07a5; { U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA } + XKc_Greek_IOTAdiaeresis = $07a5; { old typo } + XKc_Greek_OMICRONaccent = $07a7; { U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS } + XKc_Greek_UPSILONaccent = $07a8; { U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS } + XKc_Greek_UPSILONdieresis = $07a9; { U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA } + XKc_Greek_OMEGAaccent = $07ab; { U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS } + XK_Greek_accentdieresis = $07ae; { U+0385 GREEK DIALYTIKA TONOS } + XK_Greek_horizbar = $07af; { U+2015 HORIZONTAL BAR } + XK_Greek_alphaaccent = $07b1; { U+03AC GREEK SMALL LETTER ALPHA WITH TONOS } + XK_Greek_epsilonaccent = $07b2; { U+03AD GREEK SMALL LETTER EPSILON WITH TONOS } + XK_Greek_etaaccent = $07b3; { U+03AE GREEK SMALL LETTER ETA WITH TONOS } + XK_Greek_iotaaccent = $07b4; { U+03AF GREEK SMALL LETTER IOTA WITH TONOS } + XK_Greek_iotadieresis = $07b5; { U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA } + XK_Greek_iotaaccentdieresis = $07b6; { U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS } + XK_Greek_omicronaccent = $07b7; { U+03CC GREEK SMALL LETTER OMICRON WITH TONOS } + XK_Greek_upsilonaccent = $07b8; { U+03CD GREEK SMALL LETTER UPSILON WITH TONOS } + XK_Greek_upsilondieresis = $07b9; { U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA } + XK_Greek_upsilonaccentdieresis = $07ba; { U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS } + XK_Greek_omegaaccent = $07bb; { U+03CE GREEK SMALL LETTER OMEGA WITH TONOS } + XKc_Greek_ALPHA = $07c1; { U+0391 GREEK CAPITAL LETTER ALPHA } + XKc_Greek_BETA = $07c2; { U+0392 GREEK CAPITAL LETTER BETA } + XKc_Greek_GAMMA = $07c3; { U+0393 GREEK CAPITAL LETTER GAMMA } + XKc_Greek_DELTA = $07c4; { U+0394 GREEK CAPITAL LETTER DELTA } + XKc_Greek_EPSILON = $07c5; { U+0395 GREEK CAPITAL LETTER EPSILON } + XKc_Greek_ZETA = $07c6; { U+0396 GREEK CAPITAL LETTER ZETA } + XKc_Greek_ETA = $07c7; { U+0397 GREEK CAPITAL LETTER ETA } + XKc_Greek_THETA = $07c8; { U+0398 GREEK CAPITAL LETTER THETA } + XKc_Greek_IOTA = $07c9; { U+0399 GREEK CAPITAL LETTER IOTA } + XKc_Greek_KAPPA = $07ca; { U+039A GREEK CAPITAL LETTER KAPPA } + XKc_Greek_LAMDA = $07cb; { U+039B GREEK CAPITAL LETTER LAMDA } + XKc_Greek_LAMBDA = $07cb; { U+039B GREEK CAPITAL LETTER LAMDA } + XKc_Greek_MU = $07cc; { U+039C GREEK CAPITAL LETTER MU } + XKc_Greek_NU = $07cd; { U+039D GREEK CAPITAL LETTER NU } + XKc_Greek_XI = $07ce; { U+039E GREEK CAPITAL LETTER XI } + XKc_Greek_OMICRON = $07cf; { U+039F GREEK CAPITAL LETTER OMICRON } + XKc_Greek_PI = $07d0; { U+03A0 GREEK CAPITAL LETTER PI } + XKc_Greek_RHO = $07d1; { U+03A1 GREEK CAPITAL LETTER RHO } + XKc_Greek_SIGMA = $07d2; { U+03A3 GREEK CAPITAL LETTER SIGMA } + XKc_Greek_TAU = $07d4; { U+03A4 GREEK CAPITAL LETTER TAU } + XKc_Greek_UPSILON = $07d5; { U+03A5 GREEK CAPITAL LETTER UPSILON } + XKc_Greek_PHI = $07d6; { U+03A6 GREEK CAPITAL LETTER PHI } + XKc_Greek_CHI = $07d7; { U+03A7 GREEK CAPITAL LETTER CHI } + XKc_Greek_PSI = $07d8; { U+03A8 GREEK CAPITAL LETTER PSI } + XKc_Greek_OMEGA = $07d9; { U+03A9 GREEK CAPITAL LETTER OMEGA } + XK_Greek_alpha = $07e1; { U+03B1 GREEK SMALL LETTER ALPHA } + XK_Greek_beta = $07e2; { U+03B2 GREEK SMALL LETTER BETA } + XK_Greek_gamma = $07e3; { U+03B3 GREEK SMALL LETTER GAMMA } + XK_Greek_delta = $07e4; { U+03B4 GREEK SMALL LETTER DELTA } + XK_Greek_epsilon = $07e5; { U+03B5 GREEK SMALL LETTER EPSILON } + XK_Greek_zeta = $07e6; { U+03B6 GREEK SMALL LETTER ZETA } + XK_Greek_eta = $07e7; { U+03B7 GREEK SMALL LETTER ETA } + XK_Greek_theta = $07e8; { U+03B8 GREEK SMALL LETTER THETA } + XK_Greek_iota = $07e9; { U+03B9 GREEK SMALL LETTER IOTA } + XK_Greek_kappa = $07ea; { U+03BA GREEK SMALL LETTER KAPPA } + XK_Greek_lamda = $07eb; { U+03BB GREEK SMALL LETTER LAMDA } + XK_Greek_lambda = $07eb; { U+03BB GREEK SMALL LETTER LAMDA } + XK_Greek_mu = $07ec; { U+03BC GREEK SMALL LETTER MU } + XK_Greek_nu = $07ed; { U+03BD GREEK SMALL LETTER NU } + XK_Greek_xi = $07ee; { U+03BE GREEK SMALL LETTER XI } + XK_Greek_omicron = $07ef; { U+03BF GREEK SMALL LETTER OMICRON } + XK_Greek_pi = $07f0; { U+03C0 GREEK SMALL LETTER PI } + XK_Greek_rho = $07f1; { U+03C1 GREEK SMALL LETTER RHO } + XK_Greek_sigma = $07f2; { U+03C3 GREEK SMALL LETTER SIGMA } + XK_Greek_finalsmallsigma = $07f3; { U+03C2 GREEK SMALL LETTER FINAL SIGMA } + XK_Greek_tau = $07f4; { U+03C4 GREEK SMALL LETTER TAU } + XK_Greek_upsilon = $07f5; { U+03C5 GREEK SMALL LETTER UPSILON } + XK_Greek_phi = $07f6; { U+03C6 GREEK SMALL LETTER PHI } + XK_Greek_chi = $07f7; { U+03C7 GREEK SMALL LETTER CHI } + XK_Greek_psi = $07f8; { U+03C8 GREEK SMALL LETTER PSI } + XK_Greek_omega = $07f9; { U+03C9 GREEK SMALL LETTER OMEGA } + XK_Greek_switch = $ff7e; { Alias for mode_switch } + + XK_leftradical = $08a1; { U+23B7 RADICAL SYMBOL BOTTOM } + XK_topleftradical = $08a2; {(U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT)} + XK_horizconnector = $08a3; {(U+2500 BOX DRAWINGS LIGHT HORIZONTAL)} + XK_topintegral = $08a4; { U+2320 TOP HALF INTEGRAL } + XK_botintegral = $08a5; { U+2321 BOTTOM HALF INTEGRAL } + XK_vertconnector = $08a6; {(U+2502 BOX DRAWINGS LIGHT VERTICAL)} + XK_topleftsqbracket = $08a7; { U+23A1 LEFT SQUARE BRACKET UPPER CORNER } + XK_botleftsqbracket = $08a8; { U+23A3 LEFT SQUARE BRACKET LOWER CORNER } + XK_toprightsqbracket = $08a9; { U+23A4 RIGHT SQUARE BRACKET UPPER CORNER } + XK_botrightsqbracket = $08aa; { U+23A6 RIGHT SQUARE BRACKET LOWER CORNER } + XK_topleftparens = $08ab; { U+239B LEFT PARENTHESIS UPPER HOOK } + XK_botleftparens = $08ac; { U+239D LEFT PARENTHESIS LOWER HOOK } + XK_toprightparens = $08ad; { U+239E RIGHT PARENTHESIS UPPER HOOK } + XK_botrightparens = $08ae; { U+23A0 RIGHT PARENTHESIS LOWER HOOK } + XK_leftmiddlecurlybrace = $08af; { U+23A8 LEFT CURLY BRACKET MIDDLE PIECE } + XK_rightmiddlecurlybrace = $08b0; { U+23AC RIGHT CURLY BRACKET MIDDLE PIECE } + XK_topleftsummation = $08b1; + XK_botleftsummation = $08b2; + XK_topvertsummationconnector = $08b3; + XK_botvertsummationconnector = $08b4; + XK_toprightsummation = $08b5; + XK_botrightsummation = $08b6; + XK_rightmiddlesummation = $08b7; + XK_lessthanequal = $08bc; { U+2264 LESS-THAN OR EQUAL TO } + XK_notequal = $08bd; { U+2260 NOT EQUAL TO } + XK_greaterthanequal = $08be; { U+2265 GREATER-THAN OR EQUAL TO } + XK_integral = $08bf; { U+222B INTEGRAL } + XK_therefore = $08c0; { U+2234 THEREFORE } + XK_variation = $08c1; { U+221D PROPORTIONAL TO } + XK_infinity = $08c2; { U+221E INFINITY } + XK_nabla = $08c5; { U+2207 NABLA } + XK_approximate = $08c8; { U+223C TILDE OPERATOR } + XK_similarequal = $08c9; { U+2243 ASYMPTOTICALLY EQUAL TO } + XK_ifonlyif = $08cd; { U+21D4 LEFT RIGHT DOUBLE ARROW } + XK_implies = $08ce; { U+21D2 RIGHTWARDS DOUBLE ARROW } + XK_identical = $08cf; { U+2261 IDENTICAL TO } + XK_radical = $08d6; { U+221A SQUARE ROOT } + XK_includedin = $08da; { U+2282 SUBSET OF } + XK_includes = $08db; { U+2283 SUPERSET OF } + XK_intersection = $08dc; { U+2229 INTERSECTION } + XK_union = $08dd; { U+222A UNION } + XK_logicaland = $08de; { U+2227 LOGICAL AND } + XK_logicalor = $08df; { U+2228 LOGICAL OR } + XK_partialderivative = $08ef; { U+2202 PARTIAL DIFFERENTIAL } + XK_function = $08f6; { U+0192 LATIN SMALL LETTER F WITH HOOK } + XK_leftarrow = $08fb; { U+2190 LEFTWARDS ARROW } + XK_uparrow = $08fc; { U+2191 UPWARDS ARROW } + XK_rightarrow = $08fd; { U+2192 RIGHTWARDS ARROW } + XK_downarrow = $08fe; { U+2193 DOWNWARDS ARROW } + + XK_blank = $09df; + XK_soliddiamond = $09e0; { U+25C6 BLACK DIAMOND } + XK_checkerboard = $09e1; { U+2592 MEDIUM SHADE } + XK_ht = $09e2; { U+2409 SYMBOL FOR HORIZONTAL TABULATION } + XK_ff = $09e3; { U+240C SYMBOL FOR FORM FEED } + XK_cr = $09e4; { U+240D SYMBOL FOR CARRIAGE RETURN } + XK_lf = $09e5; { U+240A SYMBOL FOR LINE FEED } + XK_nl = $09e8; { U+2424 SYMBOL FOR NEWLINE } + XK_vt = $09e9; { U+240B SYMBOL FOR VERTICAL TABULATION } + XK_lowrightcorner = $09ea; { U+2518 BOX DRAWINGS LIGHT UP AND LEFT } + XK_uprightcorner = $09eb; { U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT } + XK_upleftcorner = $09ec; { U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT } + XK_lowleftcorner = $09ed; { U+2514 BOX DRAWINGS LIGHT UP AND RIGHT } + XK_crossinglines = $09ee; { U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL } + XK_horizlinescan1 = $09ef; { U+23BA HORIZONTAL SCAN LINE-1 } + XK_horizlinescan3 = $09f0; { U+23BB HORIZONTAL SCAN LINE-3 } + XK_horizlinescan5 = $09f1; { U+2500 BOX DRAWINGS LIGHT HORIZONTAL } + XK_horizlinescan7 = $09f2; { U+23BC HORIZONTAL SCAN LINE-7 } + XK_horizlinescan9 = $09f3; { U+23BD HORIZONTAL SCAN LINE-9 } + XK_leftt = $09f4; { U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT } + XK_rightt = $09f5; { U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT } + XK_bott = $09f6; { U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL } + XK_topt = $09f7; { U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL } + XK_vertbar = $09f8; { U+2502 BOX DRAWINGS LIGHT VERTICAL } + + XK_emspace = $0aa1; { U+2003 EM SPACE } + XK_enspace = $0aa2; { U+2002 EN SPACE } + XK_em3space = $0aa3; { U+2004 THREE-PER-EM SPACE } + XK_em4space = $0aa4; { U+2005 FOUR-PER-EM SPACE } + XK_digitspace = $0aa5; { U+2007 FIGURE SPACE } + XK_punctspace = $0aa6; { U+2008 PUNCTUATION SPACE } + XK_thinspace = $0aa7; { U+2009 THIN SPACE } + XK_hairspace = $0aa8; { U+200A HAIR SPACE } + XK_emdash = $0aa9; { U+2014 EM DASH } + XK_endash = $0aaa; { U+2013 EN DASH } + XK_signifblank = $0aac; {(U+2423 OPEN BOX)} + XK_ellipsis = $0aae; { U+2026 HORIZONTAL ELLIPSIS } + XK_doubbaselinedot = $0aaf; { U+2025 TWO DOT LEADER } + XK_onethird = $0ab0; { U+2153 VULGAR FRACTION ONE THIRD } + XK_twothirds = $0ab1; { U+2154 VULGAR FRACTION TWO THIRDS } + XK_onefifth = $0ab2; { U+2155 VULGAR FRACTION ONE FIFTH } + XK_twofifths = $0ab3; { U+2156 VULGAR FRACTION TWO FIFTHS } + XK_threefifths = $0ab4; { U+2157 VULGAR FRACTION THREE FIFTHS } + XK_fourfifths = $0ab5; { U+2158 VULGAR FRACTION FOUR FIFTHS } + XK_onesixth = $0ab6; { U+2159 VULGAR FRACTION ONE SIXTH } + XK_fivesixths = $0ab7; { U+215A VULGAR FRACTION FIVE SIXTHS } + XK_careof = $0ab8; { U+2105 CARE OF } + XK_figdash = $0abb; { U+2012 FIGURE DASH } + XK_leftanglebracket = $0abc; {(U+27E8 MATHEMATICAL LEFT ANGLE BRACKET)} + XK_decimalpoint = $0abd; {(U+002E FULL STOP)} + XK_rightanglebracket = $0abe; {(U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET)} + XK_marker = $0abf; + XK_oneeighth = $0ac3; { U+215B VULGAR FRACTION ONE EIGHTH } + XK_threeeighths = $0ac4; { U+215C VULGAR FRACTION THREE EIGHTHS } + XK_fiveeighths = $0ac5; { U+215D VULGAR FRACTION FIVE EIGHTHS } + XK_seveneighths = $0ac6; { U+215E VULGAR FRACTION SEVEN EIGHTHS } + XK_trademark = $0ac9; { U+2122 TRADE MARK SIGN } + XK_signaturemark = $0aca; {(U+2613 SALTIRE)} + XK_trademarkincircle = $0acb; + XK_leftopentriangle = $0acc; {(U+25C1 WHITE LEFT-POINTING TRIANGLE)} + XK_rightopentriangle = $0acd; {(U+25B7 WHITE RIGHT-POINTING TRIANGLE)} + XK_emopencircle = $0ace; {(U+25CB WHITE CIRCLE)} + XK_emopenrectangle = $0acf; {(U+25AF WHITE VERTICAL RECTANGLE)} + XK_leftsinglequotemark = $0ad0; { U+2018 LEFT SINGLE QUOTATION MARK } + XK_rightsinglequotemark = $0ad1; { U+2019 RIGHT SINGLE QUOTATION MARK } + XK_leftdoublequotemark = $0ad2; { U+201C LEFT DOUBLE QUOTATION MARK } + XK_rightdoublequotemark = $0ad3; { U+201D RIGHT DOUBLE QUOTATION MARK } + XK_prescription = $0ad4; { U+211E PRESCRIPTION TAKE } + XK_permille = $0ad5; { U+2030 PER MILLE SIGN } + XK_minutes = $0ad6; { U+2032 PRIME } + XK_seconds = $0ad7; { U+2033 DOUBLE PRIME } + XK_latincross = $0ad9; { U+271D LATIN CROSS } + XK_hexagram = $0ada; + XK_filledrectbullet = $0adb; {(U+25AC BLACK RECTANGLE)} + XK_filledlefttribullet = $0adc; {(U+25C0 BLACK LEFT-POINTING TRIANGLE)} + XK_filledrighttribullet = $0add; {(U+25B6 BLACK RIGHT-POINTING TRIANGLE)} + XK_emfilledcircle = $0ade; {(U+25CF BLACK CIRCLE)} + XK_emfilledrect = $0adf; {(U+25AE BLACK VERTICAL RECTANGLE)} + XK_enopencircbullet = $0ae0; {(U+25E6 WHITE BULLET)} + XK_enopensquarebullet = $0ae1; {(U+25AB WHITE SMALL SQUARE)} + XK_openrectbullet = $0ae2; {(U+25AD WHITE RECTANGLE)} + XK_opentribulletup = $0ae3; {(U+25B3 WHITE UP-POINTING TRIANGLE)} + XK_opentribulletdown = $0ae4; {(U+25BD WHITE DOWN-POINTING TRIANGLE)} + XK_openstar = $0ae5; {(U+2606 WHITE STAR)} + XK_enfilledcircbullet = $0ae6; {(U+2022 BULLET)} + XK_enfilledsqbullet = $0ae7; {(U+25AA BLACK SMALL SQUARE)} + XK_filledtribulletup = $0ae8; {(U+25B2 BLACK UP-POINTING TRIANGLE)} + XK_filledtribulletdown = $0ae9; {(U+25BC BLACK DOWN-POINTING TRIANGLE)} + XK_leftpointer = $0aea; {(U+261C WHITE LEFT POINTING INDEX)} + XK_rightpointer = $0aeb; {(U+261E WHITE RIGHT POINTING INDEX)} + XK_club = $0aec; { U+2663 BLACK CLUB SUIT } + XK_diamond = $0aed; { U+2666 BLACK DIAMOND SUIT } + XK_heart = $0aee; { U+2665 BLACK HEART SUIT } + XK_maltesecross = $0af0; { U+2720 MALTESE CROSS } + XK_dagger = $0af1; { U+2020 DAGGER } + XK_doubledagger = $0af2; { U+2021 DOUBLE DAGGER } + XK_checkmark = $0af3; { U+2713 CHECK MARK } + XK_ballotcross = $0af4; { U+2717 BALLOT X } + XK_musicalsharp = $0af5; { U+266F MUSIC SHARP SIGN } + XK_musicalflat = $0af6; { U+266D MUSIC FLAT SIGN } + XK_malesymbol = $0af7; { U+2642 MALE SIGN } + XK_femalesymbol = $0af8; { U+2640 FEMALE SIGN } + XK_telephone = $0af9; { U+260E BLACK TELEPHONE } + XK_telephonerecorder = $0afa; { U+2315 TELEPHONE RECORDER } + XK_phonographcopyright = $0afb; { U+2117 SOUND RECORDING COPYRIGHT } + XK_caret = $0afc; { U+2038 CARET } + XK_singlelowquotemark = $0afd; { U+201A SINGLE LOW-9 QUOTATION MARK } + XK_doublelowquotemark = $0afe; { U+201E DOUBLE LOW-9 QUOTATION MARK } + XK_cursor = $0aff; + + XK_leftcaret = $0ba3; {(U+003C LESS-THAN SIGN)} + XK_rightcaret = $0ba6; {(U+003E GREATER-THAN SIGN)} + XK_downcaret = $0ba8; {(U+2228 LOGICAL OR)} + XK_upcaret = $0ba9; {(U+2227 LOGICAL AND)} + XK_overbar = $0bc0; {(U+00AF MACRON)} + XK_downtack = $0bc2; { U+22A4 DOWN TACK } + XK_upshoe = $0bc3; {(U+2229 INTERSECTION)} + XK_downstile = $0bc4; { U+230A LEFT FLOOR } + XK_underbar = $0bc6; {(U+005F LOW LINE)} + XK_jot = $0bca; { U+2218 RING OPERATOR } + XK_quad = $0bcc; { U+2395 APL FUNCTIONAL SYMBOL QUAD } + XK_uptack = $0bce; { U+22A5 UP TACK } + XK_circle = $0bcf; { U+25CB WHITE CIRCLE } + XK_upstile = $0bd3; { U+2308 LEFT CEILING } + XK_downshoe = $0bd6; {(U+222A UNION)} + XK_rightshoe = $0bd8; {(U+2283 SUPERSET OF)} + XK_leftshoe = $0bda; {(U+2282 SUBSET OF)} + XK_lefttack = $0bdc; { U+22A3 LEFT TACK } + XK_righttack = $0bfc; { U+22A2 RIGHT TACK } + + XK_hebrew_doublelowline = $0cdf; { U+2017 DOUBLE LOW LINE } + XK_hebrew_aleph = $0ce0; { U+05D0 HEBREW LETTER ALEF } + XK_hebrew_bet = $0ce1; { U+05D1 HEBREW LETTER BET } + XK_hebrew_beth = $0ce1; { deprecated } + XK_hebrew_gimel = $0ce2; { U+05D2 HEBREW LETTER GIMEL } + XK_hebrew_gimmel = $0ce2; { deprecated } + XK_hebrew_dalet = $0ce3; { U+05D3 HEBREW LETTER DALET } + XK_hebrew_daleth = $0ce3; { deprecated } + XK_hebrew_he = $0ce4; { U+05D4 HEBREW LETTER HE } + XK_hebrew_waw = $0ce5; { U+05D5 HEBREW LETTER VAV } + XK_hebrew_zain = $0ce6; { U+05D6 HEBREW LETTER ZAYIN } + XK_hebrew_zayin = $0ce6; { deprecated } + XK_hebrew_chet = $0ce7; { U+05D7 HEBREW LETTER HET } + XK_hebrew_het = $0ce7; { deprecated } + XK_hebrew_tet = $0ce8; { U+05D8 HEBREW LETTER TET } + XK_hebrew_teth = $0ce8; { deprecated } + XK_hebrew_yod = $0ce9; { U+05D9 HEBREW LETTER YOD } + XK_hebrew_finalkaph = $0cea; { U+05DA HEBREW LETTER FINAL KAF } + XK_hebrew_kaph = $0ceb; { U+05DB HEBREW LETTER KAF } + XK_hebrew_lamed = $0cec; { U+05DC HEBREW LETTER LAMED } + XK_hebrew_finalmem = $0ced; { U+05DD HEBREW LETTER FINAL MEM } + XK_hebrew_mem = $0cee; { U+05DE HEBREW LETTER MEM } + XK_hebrew_finalnun = $0cef; { U+05DF HEBREW LETTER FINAL NUN } + XK_hebrew_nun = $0cf0; { U+05E0 HEBREW LETTER NUN } + XK_hebrew_samech = $0cf1; { U+05E1 HEBREW LETTER SAMEKH } + XK_hebrew_samekh = $0cf1; { deprecated } + XK_hebrew_ayin = $0cf2; { U+05E2 HEBREW LETTER AYIN } + XK_hebrew_finalpe = $0cf3; { U+05E3 HEBREW LETTER FINAL PE } + XK_hebrew_pe = $0cf4; { U+05E4 HEBREW LETTER PE } + XK_hebrew_finalzade = $0cf5; { U+05E5 HEBREW LETTER FINAL TSADI } + XK_hebrew_finalzadi = $0cf5; { deprecated } + XK_hebrew_zade = $0cf6; { U+05E6 HEBREW LETTER TSADI } + XK_hebrew_zadi = $0cf6; { deprecated } + XK_hebrew_qoph = $0cf7; { U+05E7 HEBREW LETTER QOF } + XK_hebrew_kuf = $0cf7; { deprecated } + XK_hebrew_resh = $0cf8; { U+05E8 HEBREW LETTER RESH } + XK_hebrew_shin = $0cf9; { U+05E9 HEBREW LETTER SHIN } + XK_hebrew_taw = $0cfa; { U+05EA HEBREW LETTER TAV } + XK_hebrew_taf = $0cfa; { deprecated } + XK_Hebrew_switch = $ff7e; { Alias for mode_switch } + + XK_Thai_kokai = $0da1; { U+0E01 THAI CHARACTER KO KAI } + XK_Thai_khokhai = $0da2; { U+0E02 THAI CHARACTER KHO KHAI } + XK_Thai_khokhuat = $0da3; { U+0E03 THAI CHARACTER KHO KHUAT } + XK_Thai_khokhwai = $0da4; { U+0E04 THAI CHARACTER KHO KHWAI } + XK_Thai_khokhon = $0da5; { U+0E05 THAI CHARACTER KHO KHON } + XK_Thai_khorakhang = $0da6; { U+0E06 THAI CHARACTER KHO RAKHANG } + XK_Thai_ngongu = $0da7; { U+0E07 THAI CHARACTER NGO NGU } + XK_Thai_chochan = $0da8; { U+0E08 THAI CHARACTER CHO CHAN } + XK_Thai_choching = $0da9; { U+0E09 THAI CHARACTER CHO CHING } + XK_Thai_chochang = $0daa; { U+0E0A THAI CHARACTER CHO CHANG } + XK_Thai_soso = $0dab; { U+0E0B THAI CHARACTER SO SO } + XK_Thai_chochoe = $0dac; { U+0E0C THAI CHARACTER CHO CHOE } + XK_Thai_yoying = $0dad; { U+0E0D THAI CHARACTER YO YING } + XK_Thai_dochada = $0dae; { U+0E0E THAI CHARACTER DO CHADA } + XK_Thai_topatak = $0daf; { U+0E0F THAI CHARACTER TO PATAK } + XK_Thai_thothan = $0db0; { U+0E10 THAI CHARACTER THO THAN } + XK_Thai_thonangmontho = $0db1; { U+0E11 THAI CHARACTER THO NANGMONTHO } + XK_Thai_thophuthao = $0db2; { U+0E12 THAI CHARACTER THO PHUTHAO } + XK_Thai_nonen = $0db3; { U+0E13 THAI CHARACTER NO NEN } + XK_Thai_dodek = $0db4; { U+0E14 THAI CHARACTER DO DEK } + XK_Thai_totao = $0db5; { U+0E15 THAI CHARACTER TO TAO } + XK_Thai_thothung = $0db6; { U+0E16 THAI CHARACTER THO THUNG } + XK_Thai_thothahan = $0db7; { U+0E17 THAI CHARACTER THO THAHAN } + XK_Thai_thothong = $0db8; { U+0E18 THAI CHARACTER THO THONG } + XK_Thai_nonu = $0db9; { U+0E19 THAI CHARACTER NO NU } + XK_Thai_bobaimai = $0dba; { U+0E1A THAI CHARACTER BO BAIMAI } + XK_Thai_popla = $0dbb; { U+0E1B THAI CHARACTER PO PLA } + XK_Thai_phophung = $0dbc; { U+0E1C THAI CHARACTER PHO PHUNG } + XK_Thai_fofa = $0dbd; { U+0E1D THAI CHARACTER FO FA } + XK_Thai_phophan = $0dbe; { U+0E1E THAI CHARACTER PHO PHAN } + XK_Thai_fofan = $0dbf; { U+0E1F THAI CHARACTER FO FAN } + XK_Thai_phosamphao = $0dc0; { U+0E20 THAI CHARACTER PHO SAMPHAO } + XK_Thai_moma = $0dc1; { U+0E21 THAI CHARACTER MO MA } + XK_Thai_yoyak = $0dc2; { U+0E22 THAI CHARACTER YO YAK } + XK_Thai_rorua = $0dc3; { U+0E23 THAI CHARACTER RO RUA } + XK_Thai_ru = $0dc4; { U+0E24 THAI CHARACTER RU } + XK_Thai_loling = $0dc5; { U+0E25 THAI CHARACTER LO LING } + XK_Thai_lu = $0dc6; { U+0E26 THAI CHARACTER LU } + XK_Thai_wowaen = $0dc7; { U+0E27 THAI CHARACTER WO WAEN } + XK_Thai_sosala = $0dc8; { U+0E28 THAI CHARACTER SO SALA } + XK_Thai_sorusi = $0dc9; { U+0E29 THAI CHARACTER SO RUSI } + XK_Thai_sosua = $0dca; { U+0E2A THAI CHARACTER SO SUA } + XK_Thai_hohip = $0dcb; { U+0E2B THAI CHARACTER HO HIP } + XK_Thai_lochula = $0dcc; { U+0E2C THAI CHARACTER LO CHULA } + XK_Thai_oang = $0dcd; { U+0E2D THAI CHARACTER O ANG } + XK_Thai_honokhuk = $0dce; { U+0E2E THAI CHARACTER HO NOKHUK } + XK_Thai_paiyannoi = $0dcf; { U+0E2F THAI CHARACTER PAIYANNOI } + XK_Thai_saraa = $0dd0; { U+0E30 THAI CHARACTER SARA A } + XK_Thai_maihanakat = $0dd1; { U+0E31 THAI CHARACTER MAI HAN-AKAT } + XK_Thai_saraaa = $0dd2; { U+0E32 THAI CHARACTER SARA AA } + XK_Thai_saraam = $0dd3; { U+0E33 THAI CHARACTER SARA AM } + XK_Thai_sarai = $0dd4; { U+0E34 THAI CHARACTER SARA I } + XK_Thai_saraii = $0dd5; { U+0E35 THAI CHARACTER SARA II } + XK_Thai_saraue = $0dd6; { U+0E36 THAI CHARACTER SARA UE } + XK_Thai_sarauee = $0dd7; { U+0E37 THAI CHARACTER SARA UEE } + XK_Thai_sarau = $0dd8; { U+0E38 THAI CHARACTER SARA U } + XK_Thai_sarauu = $0dd9; { U+0E39 THAI CHARACTER SARA UU } + XK_Thai_phinthu = $0dda; { U+0E3A THAI CHARACTER PHINTHU } + XK_Thai_maihanakat_maitho = $0dde; + XK_Thai_baht = $0ddf; { U+0E3F THAI CURRENCY SYMBOL BAHT } + XK_Thai_sarae = $0de0; { U+0E40 THAI CHARACTER SARA E } + XK_Thai_saraae = $0de1; { U+0E41 THAI CHARACTER SARA AE } + XK_Thai_sarao = $0de2; { U+0E42 THAI CHARACTER SARA O } + XK_Thai_saraaimaimuan = $0de3; { U+0E43 THAI CHARACTER SARA AI MAIMUAN } + XK_Thai_saraaimaimalai = $0de4; { U+0E44 THAI CHARACTER SARA AI MAIMALAI } + XK_Thai_lakkhangyao = $0de5; { U+0E45 THAI CHARACTER LAKKHANGYAO } + XK_Thai_maiyamok = $0de6; { U+0E46 THAI CHARACTER MAIYAMOK } + XK_Thai_maitaikhu = $0de7; { U+0E47 THAI CHARACTER MAITAIKHU } + XK_Thai_maiek = $0de8; { U+0E48 THAI CHARACTER MAI EK } + XK_Thai_maitho = $0de9; { U+0E49 THAI CHARACTER MAI THO } + XK_Thai_maitri = $0dea; { U+0E4A THAI CHARACTER MAI TRI } + XK_Thai_maichattawa = $0deb; { U+0E4B THAI CHARACTER MAI CHATTAWA } + XK_Thai_thanthakhat = $0dec; { U+0E4C THAI CHARACTER THANTHAKHAT } + XK_Thai_nikhahit = $0ded; { U+0E4D THAI CHARACTER NIKHAHIT } + XK_Thai_leksun = $0df0; { U+0E50 THAI DIGIT ZERO } + XK_Thai_leknung = $0df1; { U+0E51 THAI DIGIT ONE } + XK_Thai_leksong = $0df2; { U+0E52 THAI DIGIT TWO } + XK_Thai_leksam = $0df3; { U+0E53 THAI DIGIT THREE } + XK_Thai_leksi = $0df4; { U+0E54 THAI DIGIT FOUR } + XK_Thai_lekha = $0df5; { U+0E55 THAI DIGIT FIVE } + XK_Thai_lekhok = $0df6; { U+0E56 THAI DIGIT SIX } + XK_Thai_lekchet = $0df7; { U+0E57 THAI DIGIT SEVEN } + XK_Thai_lekpaet = $0df8; { U+0E58 THAI DIGIT EIGHT } + XK_Thai_lekkao = $0df9; { U+0E59 THAI DIGIT NINE } + + XK_Hangul = $ff31; { Hangul start/stop(toggle) } + XK_Hangul_Start = $ff32; { Hangul start } + XK_Hangul_End = $ff33; { Hangul end, English start } + XK_Hangul_Hanja = $ff34; { Start Hangul->Hanja Conversion } + XK_Hangul_Jamo = $ff35; { Hangul Jamo mode } + XK_Hangul_Romaja = $ff36; { Hangul Romaja mode } + XK_Hangul_Codeinput = $ff37; { Hangul code input mode } + XK_Hangul_Jeonja = $ff38; { Jeonja mode } + XK_Hangul_Banja = $ff39; { Banja mode } + XK_Hangul_PreHanja = $ff3a; { Pre Hanja conversion } + XK_Hangul_PostHanja = $ff3b; { Post Hanja conversion } + XK_Hangul_SingleCandidate = $ff3c; { Single candidate } + XK_Hangul_MultipleCandidate = $ff3d; { Multiple candidate } + XK_Hangul_PreviousCandidate = $ff3e; { Previous candidate } + XK_Hangul_Special = $ff3f; { Special symbols } + XK_Hangul_switch = $ff7e; { Alias for mode_switch } + + XK_Hangul_Kiyeog = $0ea1; + XK_Hangul_SsangKiyeog = $0ea2; + XK_Hangul_KiyeogSios = $0ea3; + XK_Hangul_Nieun = $0ea4; + XK_Hangul_NieunJieuj = $0ea5; + XK_Hangul_NieunHieuh = $0ea6; + XK_Hangul_Dikeud = $0ea7; + XK_Hangul_SsangDikeud = $0ea8; + XK_Hangul_Rieul = $0ea9; + XK_Hangul_RieulKiyeog = $0eaa; + XK_Hangul_RieulMieum = $0eab; + XK_Hangul_RieulPieub = $0eac; + XK_Hangul_RieulSios = $0ead; + XK_Hangul_RieulTieut = $0eae; + XK_Hangul_RieulPhieuf = $0eaf; + XK_Hangul_RieulHieuh = $0eb0; + XK_Hangul_Mieum = $0eb1; + XK_Hangul_Pieub = $0eb2; + XK_Hangul_SsangPieub = $0eb3; + XK_Hangul_PieubSios = $0eb4; + XK_Hangul_Sios = $0eb5; + XK_Hangul_SsangSios = $0eb6; + XK_Hangul_Ieung = $0eb7; + XK_Hangul_Jieuj = $0eb8; + XK_Hangul_SsangJieuj = $0eb9; + XK_Hangul_Cieuc = $0eba; + XK_Hangul_Khieuq = $0ebb; + XK_Hangul_Tieut = $0ebc; + XK_Hangul_Phieuf = $0ebd; + XK_Hangul_Hieuh = $0ebe; + + XK_Hangul_A = $0ebf; + XK_Hangul_AE = $0ec0; + XK_Hangul_YA = $0ec1; + XK_Hangul_YAE = $0ec2; + XK_Hangul_EO = $0ec3; + XK_Hangul_E = $0ec4; + XK_Hangul_YEO = $0ec5; + XK_Hangul_YE = $0ec6; + XK_Hangul_O = $0ec7; + XK_Hangul_WA = $0ec8; + XK_Hangul_WAE = $0ec9; + XK_Hangul_OE = $0eca; + XK_Hangul_YO = $0ecb; + XK_Hangul_U = $0ecc; + XK_Hangul_WEO = $0ecd; + XK_Hangul_WE = $0ece; + XK_Hangul_WI = $0ecf; + XK_Hangul_YU = $0ed0; + XK_Hangul_EU = $0ed1; + XK_Hangul_YI = $0ed2; + XK_Hangul_I = $0ed3; + + XK_Hangul_J_Kiyeog = $0ed4; + XK_Hangul_J_SsangKiyeog = $0ed5; + XK_Hangul_J_KiyeogSios = $0ed6; + XK_Hangul_J_Nieun = $0ed7; + XK_Hangul_J_NieunJieuj = $0ed8; + XK_Hangul_J_NieunHieuh = $0ed9; + XK_Hangul_J_Dikeud = $0eda; + XK_Hangul_J_Rieul = $0edb; + XK_Hangul_J_RieulKiyeog = $0edc; + XK_Hangul_J_RieulMieum = $0edd; + XK_Hangul_J_RieulPieub = $0ede; + XK_Hangul_J_RieulSios = $0edf; + XK_Hangul_J_RieulTieut = $0ee0; + XK_Hangul_J_RieulPhieuf = $0ee1; + XK_Hangul_J_RieulHieuh = $0ee2; + XK_Hangul_J_Mieum = $0ee3; + XK_Hangul_J_Pieub = $0ee4; + XK_Hangul_J_PieubSios = $0ee5; + XK_Hangul_J_Sios = $0ee6; + XK_Hangul_J_SsangSios = $0ee7; + XK_Hangul_J_Ieung = $0ee8; + XK_Hangul_J_Jieuj = $0ee9; + XK_Hangul_J_Cieuc = $0eea; + XK_Hangul_J_Khieuq = $0eeb; + XK_Hangul_J_Tieut = $0eec; + XK_Hangul_J_Phieuf = $0eed; + XK_Hangul_J_Hieuh = $0eee; + + XK_Hangul_RieulYeorinHieuh = $0eef; + XK_Hangul_SunkyeongeumMieum = $0ef0; + XK_Hangul_SunkyeongeumPieub = $0ef1; + XK_Hangul_PanSios = $0ef2; + XK_Hangul_KkogjiDalrinIeung = $0ef3; + XK_Hangul_SunkyeongeumPhieuf = $0ef4; + XK_Hangul_YeorinHieuh = $0ef5; + + XK_Hangul_AraeA = $0ef6; + XK_Hangul_AraeAE = $0ef7; + + XK_Hangul_J_PanSios = $0ef8; + XK_Hangul_J_KkogjiDalrinIeung = $0ef9; + XK_Hangul_J_YeorinHieuh = $0efa; + + XK_Korean_Won = $0eff; {(U+20A9 WON SIGN)} + + XK_Armenian_ligature_ew = $1000587; { U+0587 ARMENIAN SMALL LIGATURE ECH YIWN } + XK_Armenian_full_stop = $1000589; { U+0589 ARMENIAN FULL STOP } + XK_Armenian_verjaket = $1000589; { U+0589 ARMENIAN FULL STOP } + XK_Armenian_separation_mark = $100055d; { U+055D ARMENIAN COMMA } + XK_Armenian_but = $100055d; { U+055D ARMENIAN COMMA } + XK_Armenian_hyphen = $100058a; { U+058A ARMENIAN HYPHEN } + XK_Armenian_yentamna = $100058a; { U+058A ARMENIAN HYPHEN } + XK_Armenian_exclam = $100055c; { U+055C ARMENIAN EXCLAMATION MARK } + XK_Armenian_amanak = $100055c; { U+055C ARMENIAN EXCLAMATION MARK } + XK_Armenian_accent = $100055b; { U+055B ARMENIAN EMPHASIS MARK } + XK_Armenian_shesht = $100055b; { U+055B ARMENIAN EMPHASIS MARK } + XK_Armenian_question = $100055e; { U+055E ARMENIAN QUESTION MARK } + XK_Armenian_paruyk = $100055e; { U+055E ARMENIAN QUESTION MARK } + XKc_Armenian_AYB = $1000531; { U+0531 ARMENIAN CAPITAL LETTER AYB } + XK_Armenian_ayb = $1000561; { U+0561 ARMENIAN SMALL LETTER AYB } + XKc_Armenian_BEN = $1000532; { U+0532 ARMENIAN CAPITAL LETTER BEN } + XK_Armenian_ben = $1000562; { U+0562 ARMENIAN SMALL LETTER BEN } + XKc_Armenian_GIM = $1000533; { U+0533 ARMENIAN CAPITAL LETTER GIM } + XK_Armenian_gim = $1000563; { U+0563 ARMENIAN SMALL LETTER GIM } + XKc_Armenian_DA = $1000534; { U+0534 ARMENIAN CAPITAL LETTER DA } + XK_Armenian_da = $1000564; { U+0564 ARMENIAN SMALL LETTER DA } + XKc_Armenian_YECH = $1000535; { U+0535 ARMENIAN CAPITAL LETTER ECH } + XK_Armenian_yech = $1000565; { U+0565 ARMENIAN SMALL LETTER ECH } + XKc_Armenian_ZA = $1000536; { U+0536 ARMENIAN CAPITAL LETTER ZA } + XK_Armenian_za = $1000566; { U+0566 ARMENIAN SMALL LETTER ZA } + XKc_Armenian_E = $1000537; { U+0537 ARMENIAN CAPITAL LETTER EH } + XK_Armenian_e = $1000567; { U+0567 ARMENIAN SMALL LETTER EH } + XKc_Armenian_AT = $1000538; { U+0538 ARMENIAN CAPITAL LETTER ET } + XK_Armenian_at = $1000568; { U+0568 ARMENIAN SMALL LETTER ET } + XKc_Armenian_TO = $1000539; { U+0539 ARMENIAN CAPITAL LETTER TO } + XK_Armenian_to = $1000569; { U+0569 ARMENIAN SMALL LETTER TO } + XKc_Armenian_ZHE = $100053a; { U+053A ARMENIAN CAPITAL LETTER ZHE } + XK_Armenian_zhe = $100056a; { U+056A ARMENIAN SMALL LETTER ZHE } + XKc_Armenian_INI = $100053b; { U+053B ARMENIAN CAPITAL LETTER INI } + XK_Armenian_ini = $100056b; { U+056B ARMENIAN SMALL LETTER INI } + XKc_Armenian_LYUN = $100053c; { U+053C ARMENIAN CAPITAL LETTER LIWN } + XK_Armenian_lyun = $100056c; { U+056C ARMENIAN SMALL LETTER LIWN } + XKc_Armenian_KHE = $100053d; { U+053D ARMENIAN CAPITAL LETTER XEH } + XK_Armenian_khe = $100056d; { U+056D ARMENIAN SMALL LETTER XEH } + XKc_Armenian_TSA = $100053e; { U+053E ARMENIAN CAPITAL LETTER CA } + XK_Armenian_tsa = $100056e; { U+056E ARMENIAN SMALL LETTER CA } + XKc_Armenian_KEN = $100053f; { U+053F ARMENIAN CAPITAL LETTER KEN } + XK_Armenian_ken = $100056f; { U+056F ARMENIAN SMALL LETTER KEN } + XKc_Armenian_HO = $1000540; { U+0540 ARMENIAN CAPITAL LETTER HO } + XK_Armenian_ho = $1000570; { U+0570 ARMENIAN SMALL LETTER HO } + XKc_Armenian_DZA = $1000541; { U+0541 ARMENIAN CAPITAL LETTER JA } + XK_Armenian_dza = $1000571; { U+0571 ARMENIAN SMALL LETTER JA } + XKc_Armenian_GHAT = $1000542; { U+0542 ARMENIAN CAPITAL LETTER GHAD } + XK_Armenian_ghat = $1000572; { U+0572 ARMENIAN SMALL LETTER GHAD } + XKc_Armenian_TCHE = $1000543; { U+0543 ARMENIAN CAPITAL LETTER CHEH } + XK_Armenian_tche = $1000573; { U+0573 ARMENIAN SMALL LETTER CHEH } + XKc_Armenian_MEN = $1000544; { U+0544 ARMENIAN CAPITAL LETTER MEN } + XK_Armenian_men = $1000574; { U+0574 ARMENIAN SMALL LETTER MEN } + XKc_Armenian_HI = $1000545; { U+0545 ARMENIAN CAPITAL LETTER YI } + XK_Armenian_hi = $1000575; { U+0575 ARMENIAN SMALL LETTER YI } + XKc_Armenian_NU = $1000546; { U+0546 ARMENIAN CAPITAL LETTER NOW } + XK_Armenian_nu = $1000576; { U+0576 ARMENIAN SMALL LETTER NOW } + XKc_Armenian_SHA = $1000547; { U+0547 ARMENIAN CAPITAL LETTER SHA } + XK_Armenian_sha = $1000577; { U+0577 ARMENIAN SMALL LETTER SHA } + XKc_Armenian_VO = $1000548; { U+0548 ARMENIAN CAPITAL LETTER VO } + XK_Armenian_vo = $1000578; { U+0578 ARMENIAN SMALL LETTER VO } + XKc_Armenian_CHA = $1000549; { U+0549 ARMENIAN CAPITAL LETTER CHA } + XK_Armenian_cha = $1000579; { U+0579 ARMENIAN SMALL LETTER CHA } + XKc_Armenian_PE = $100054a; { U+054A ARMENIAN CAPITAL LETTER PEH } + XK_Armenian_pe = $100057a; { U+057A ARMENIAN SMALL LETTER PEH } + XKc_Armenian_JE = $100054b; { U+054B ARMENIAN CAPITAL LETTER JHEH } + XK_Armenian_je = $100057b; { U+057B ARMENIAN SMALL LETTER JHEH } + XKc_Armenian_RA = $100054c; { U+054C ARMENIAN CAPITAL LETTER RA } + XK_Armenian_ra = $100057c; { U+057C ARMENIAN SMALL LETTER RA } + XKc_Armenian_SE = $100054d; { U+054D ARMENIAN CAPITAL LETTER SEH } + XK_Armenian_se = $100057d; { U+057D ARMENIAN SMALL LETTER SEH } + XKc_Armenian_VEV = $100054e; { U+054E ARMENIAN CAPITAL LETTER VEW } + XK_Armenian_vev = $100057e; { U+057E ARMENIAN SMALL LETTER VEW } + XKc_Armenian_TYUN = $100054f; { U+054F ARMENIAN CAPITAL LETTER TIWN } + XK_Armenian_tyun = $100057f; { U+057F ARMENIAN SMALL LETTER TIWN } + XKc_Armenian_RE = $1000550; { U+0550 ARMENIAN CAPITAL LETTER REH } + XK_Armenian_re = $1000580; { U+0580 ARMENIAN SMALL LETTER REH } + XKc_Armenian_TSO = $1000551; { U+0551 ARMENIAN CAPITAL LETTER CO } + XK_Armenian_tso = $1000581; { U+0581 ARMENIAN SMALL LETTER CO } + XKc_Armenian_VYUN = $1000552; { U+0552 ARMENIAN CAPITAL LETTER YIWN } + XK_Armenian_vyun = $1000582; { U+0582 ARMENIAN SMALL LETTER YIWN } + XKc_Armenian_PYUR = $1000553; { U+0553 ARMENIAN CAPITAL LETTER PIWR } + XK_Armenian_pyur = $1000583; { U+0583 ARMENIAN SMALL LETTER PIWR } + XKc_Armenian_KE = $1000554; { U+0554 ARMENIAN CAPITAL LETTER KEH } + XK_Armenian_ke = $1000584; { U+0584 ARMENIAN SMALL LETTER KEH } + XKc_Armenian_O = $1000555; { U+0555 ARMENIAN CAPITAL LETTER OH } + XK_Armenian_o = $1000585; { U+0585 ARMENIAN SMALL LETTER OH } + XKc_Armenian_FE = $1000556; { U+0556 ARMENIAN CAPITAL LETTER FEH } + XK_Armenian_fe = $1000586; { U+0586 ARMENIAN SMALL LETTER FEH } + XK_Armenian_apostrophe = $100055a; { U+055A ARMENIAN APOSTROPHE } + + XK_Georgian_an = $10010d0; { U+10D0 GEORGIAN LETTER AN } + XK_Georgian_ban = $10010d1; { U+10D1 GEORGIAN LETTER BAN } + XK_Georgian_gan = $10010d2; { U+10D2 GEORGIAN LETTER GAN } + XK_Georgian_don = $10010d3; { U+10D3 GEORGIAN LETTER DON } + XK_Georgian_en = $10010d4; { U+10D4 GEORGIAN LETTER EN } + XK_Georgian_vin = $10010d5; { U+10D5 GEORGIAN LETTER VIN } + XK_Georgian_zen = $10010d6; { U+10D6 GEORGIAN LETTER ZEN } + XK_Georgian_tan = $10010d7; { U+10D7 GEORGIAN LETTER TAN } + XK_Georgian_in = $10010d8; { U+10D8 GEORGIAN LETTER IN } + XK_Georgian_kan = $10010d9; { U+10D9 GEORGIAN LETTER KAN } + XK_Georgian_las = $10010da; { U+10DA GEORGIAN LETTER LAS } + XK_Georgian_man = $10010db; { U+10DB GEORGIAN LETTER MAN } + XK_Georgian_nar = $10010dc; { U+10DC GEORGIAN LETTER NAR } + XK_Georgian_on = $10010dd; { U+10DD GEORGIAN LETTER ON } + XK_Georgian_par = $10010de; { U+10DE GEORGIAN LETTER PAR } + XK_Georgian_zhar = $10010df; { U+10DF GEORGIAN LETTER ZHAR } + XK_Georgian_rae = $10010e0; { U+10E0 GEORGIAN LETTER RAE } + XK_Georgian_san = $10010e1; { U+10E1 GEORGIAN LETTER SAN } + XK_Georgian_tar = $10010e2; { U+10E2 GEORGIAN LETTER TAR } + XK_Georgian_un = $10010e3; { U+10E3 GEORGIAN LETTER UN } + XK_Georgian_phar = $10010e4; { U+10E4 GEORGIAN LETTER PHAR } + XK_Georgian_khar = $10010e5; { U+10E5 GEORGIAN LETTER KHAR } + XK_Georgian_ghan = $10010e6; { U+10E6 GEORGIAN LETTER GHAN } + XK_Georgian_qar = $10010e7; { U+10E7 GEORGIAN LETTER QAR } + XK_Georgian_shin = $10010e8; { U+10E8 GEORGIAN LETTER SHIN } + XK_Georgian_chin = $10010e9; { U+10E9 GEORGIAN LETTER CHIN } + XK_Georgian_can = $10010ea; { U+10EA GEORGIAN LETTER CAN } + XK_Georgian_jil = $10010eb; { U+10EB GEORGIAN LETTER JIL } + XK_Georgian_cil = $10010ec; { U+10EC GEORGIAN LETTER CIL } + XK_Georgian_char = $10010ed; { U+10ED GEORGIAN LETTER CHAR } + XK_Georgian_xan = $10010ee; { U+10EE GEORGIAN LETTER XAN } + XK_Georgian_jhan = $10010ef; { U+10EF GEORGIAN LETTER JHAN } + XK_Georgian_hae = $10010f0; { U+10F0 GEORGIAN LETTER HAE } + XK_Georgian_he = $10010f1; { U+10F1 GEORGIAN LETTER HE } + XK_Georgian_hie = $10010f2; { U+10F2 GEORGIAN LETTER HIE } + XK_Georgian_we = $10010f3; { U+10F3 GEORGIAN LETTER WE } + XK_Georgian_har = $10010f4; { U+10F4 GEORGIAN LETTER HAR } + XK_Georgian_hoe = $10010f5; { U+10F5 GEORGIAN LETTER HOE } + XK_Georgian_fi = $10010f6; { U+10F6 GEORGIAN LETTER FI } + + XKc_Xabovedot = $1001e8a; { U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE } + XKc_Ibreve = $100012c; { U+012C LATIN CAPITAL LETTER I WITH BREVE } + XKc_Zstroke = $10001b5; { U+01B5 LATIN CAPITAL LETTER Z WITH STROKE } + XKc_Gcaron = $10001e6; { U+01E6 LATIN CAPITAL LETTER G WITH CARON } + XKc_Ocaron = $10001d1; { U+01D2 LATIN CAPITAL LETTER O WITH CARON } + XKc_Obarred = $100019f; { U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE } + XK_xabovedot = $1001e8b; { U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE } + XK_ibreve = $100012d; { U+012D LATIN SMALL LETTER I WITH BREVE } + XK_zstroke = $10001b6; { U+01B6 LATIN SMALL LETTER Z WITH STROKE } + XK_gcaron = $10001e7; { U+01E7 LATIN SMALL LETTER G WITH CARON } + XK_ocaron = $10001d2; { U+01D2 LATIN SMALL LETTER O WITH CARON } + XK_obarred = $1000275; { U+0275 LATIN SMALL LETTER BARRED O } + XKc_SCHWA = $100018f; { U+018F LATIN CAPITAL LETTER SCHWA } + XK_schwa = $1000259; { U+0259 LATIN SMALL LETTER SCHWA } + XKc_EZH = $10001b7; { U+01B7 LATIN CAPITAL LETTER EZH } + XK_ezh = $1000292; { U+0292 LATIN SMALL LETTER EZH } + + XKc_Lbelowdot = $1001e36; { U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW } + XK_lbelowdot = $1001e37; { U+1E37 LATIN SMALL LETTER L WITH DOT BELOW } + + XKc_Abelowdot = $1001ea0; { U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW } + XK_abelowdot = $1001ea1; { U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW } + XKc_Ahook = $1001ea2; { U+1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE } + XK_ahook = $1001ea3; { U+1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE } + XKc_Acircumflexacute = $1001ea4; { U+1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE } + XK_acircumflexacute = $1001ea5; { U+1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE } + XKc_Acircumflexgrave = $1001ea6; { U+1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE } + XK_acircumflexgrave = $1001ea7; { U+1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE } + XKc_Acircumflexhook = $1001ea8; { U+1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE } + XK_acircumflexhook = $1001ea9; { U+1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE } + XKc_Acircumflextilde = $1001eaa; { U+1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE } + XK_acircumflextilde = $1001eab; { U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE } + XKc_Acircumflexbelowdot = $1001eac; { U+1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW } + XK_acircumflexbelowdot = $1001ead; { U+1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW } + XKc_Abreveacute = $1001eae; { U+1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE } + XK_abreveacute = $1001eaf; { U+1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE } + XKc_Abrevegrave = $1001eb0; { U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE } + XK_abrevegrave = $1001eb1; { U+1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE } + XKc_Abrevehook = $1001eb2; { U+1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE } + XK_abrevehook = $1001eb3; { U+1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE } + XKc_Abrevetilde = $1001eb4; { U+1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE } + XK_abrevetilde = $1001eb5; { U+1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE } + XKc_Abrevebelowdot = $1001eb6; { U+1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW } + XK_abrevebelowdot = $1001eb7; { U+1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW } + XKc_Ebelowdot = $1001eb8; { U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW } + XK_ebelowdot = $1001eb9; { U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW } + XKc_Ehook = $1001eba; { U+1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE } + XK_ehook = $1001ebb; { U+1EBB LATIN SMALL LETTER E WITH HOOK ABOVE } + XKc_Etilde = $1001ebc; { U+1EBC LATIN CAPITAL LETTER E WITH TILDE } + XK_etilde = $1001ebd; { U+1EBD LATIN SMALL LETTER E WITH TILDE } + XKc_Ecircumflexacute = $1001ebe; { U+1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE } + XK_ecircumflexacute = $1001ebf; { U+1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE } + XKc_Ecircumflexgrave = $1001ec0; { U+1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE } + XK_ecircumflexgrave = $1001ec1; { U+1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE } + XKc_Ecircumflexhook = $1001ec2; { U+1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE } + XK_ecircumflexhook = $1001ec3; { U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE } + XKc_Ecircumflextilde = $1001ec4; { U+1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE } + XK_ecircumflextilde = $1001ec5; { U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE } + XKc_Ecircumflexbelowdot = $1001ec6; { U+1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW } + XK_ecircumflexbelowdot = $1001ec7; { U+1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW } + XKc_Ihook = $1001ec8; { U+1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE } + XK_ihook = $1001ec9; { U+1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE } + XKc_Ibelowdot = $1001eca; { U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW } + XK_ibelowdot = $1001ecb; { U+1ECB LATIN SMALL LETTER I WITH DOT BELOW } + XKc_Obelowdot = $1001ecc; { U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW } + XK_obelowdot = $1001ecd; { U+1ECD LATIN SMALL LETTER O WITH DOT BELOW } + XKc_Ohook = $1001ece; { U+1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE } + XK_ohook = $1001ecf; { U+1ECF LATIN SMALL LETTER O WITH HOOK ABOVE } + XKc_Ocircumflexacute = $1001ed0; { U+1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE } + XK_ocircumflexacute = $1001ed1; { U+1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE } + XKc_Ocircumflexgrave = $1001ed2; { U+1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE } + XK_ocircumflexgrave = $1001ed3; { U+1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE } + XKc_Ocircumflexhook = $1001ed4; { U+1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE } + XK_ocircumflexhook = $1001ed5; { U+1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE } + XKc_Ocircumflextilde = $1001ed6; { U+1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE } + XK_ocircumflextilde = $1001ed7; { U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE } + XKc_Ocircumflexbelowdot = $1001ed8; { U+1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW } + XK_ocircumflexbelowdot = $1001ed9; { U+1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW } + XKc_Ohornacute = $1001eda; { U+1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE } + XK_ohornacute = $1001edb; { U+1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE } + XKc_Ohorngrave = $1001edc; { U+1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE } + XK_ohorngrave = $1001edd; { U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE } + XKc_Ohornhook = $1001ede; { U+1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE } + XK_ohornhook = $1001edf; { U+1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE } + XKc_Ohorntilde = $1001ee0; { U+1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE } + XK_ohorntilde = $1001ee1; { U+1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE } + XKc_Ohornbelowdot = $1001ee2; { U+1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW } + XK_ohornbelowdot = $1001ee3; { U+1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW } + XKc_Ubelowdot = $1001ee4; { U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW } + XK_ubelowdot = $1001ee5; { U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW } + XKc_Uhook = $1001ee6; { U+1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE } + XK_uhook = $1001ee7; { U+1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE } + XKc_Uhornacute = $1001ee8; { U+1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE } + XK_uhornacute = $1001ee9; { U+1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE } + XKc_Uhorngrave = $1001eea; { U+1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE } + XK_uhorngrave = $1001eeb; { U+1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE } + XKc_Uhornhook = $1001eec; { U+1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE } + XK_uhornhook = $1001eed; { U+1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE } + XKc_Uhorntilde = $1001eee; { U+1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE } + XK_uhorntilde = $1001eef; { U+1EEF LATIN SMALL LETTER U WITH HORN AND TILDE } + XKc_Uhornbelowdot = $1001ef0; { U+1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW } + XK_uhornbelowdot = $1001ef1; { U+1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW } + XKc_Ybelowdot = $1001ef4; { U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW } + XK_ybelowdot = $1001ef5; { U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW } + XKc_Yhook = $1001ef6; { U+1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE } + XK_yhook = $1001ef7; { U+1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE } + XKc_Ytilde = $1001ef8; { U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE } + XK_ytilde = $1001ef9; { U+1EF9 LATIN SMALL LETTER Y WITH TILDE } + XKc_Ohorn = $10001a0; { U+01A0 LATIN CAPITAL LETTER O WITH HORN } + XK_ohorn = $10001a1; { U+01A1 LATIN SMALL LETTER O WITH HORN } + XKc_Uhorn = $10001af; { U+01AF LATIN CAPITAL LETTER U WITH HORN } + XK_uhorn = $10001b0; { U+01B0 LATIN SMALL LETTER U WITH HORN } + + XK_EcuSign = $10020a0; { U+20A0 EURO-CURRENCY SIGN } + XK_ColonSign = $10020a1; { U+20A1 COLON SIGN } + XK_CruzeiroSign = $10020a2; { U+20A2 CRUZEIRO SIGN } + XK_FFrancSign = $10020a3; { U+20A3 FRENCH FRANC SIGN } + XK_LiraSign = $10020a4; { U+20A4 LIRA SIGN } + XK_MillSign = $10020a5; { U+20A5 MILL SIGN } + XK_NairaSign = $10020a6; { U+20A6 NAIRA SIGN } + XK_PesetaSign = $10020a7; { U+20A7 PESETA SIGN } + XK_RupeeSign = $10020a8; { U+20A8 RUPEE SIGN } + XK_WonSign = $10020a9; { U+20A9 WON SIGN } + XK_NewSheqelSign = $10020aa; { U+20AA NEW SHEQEL SIGN } + XK_DongSign = $10020ab; { U+20AB DONG SIGN } + XK_EuroSign = $20ac; { U+20AC EURO SIGN } + + XK_zerosuperior = $1002070; { U+2070 SUPERSCRIPT ZERO } + XK_foursuperior = $1002074; { U+2074 SUPERSCRIPT FOUR } + XK_fivesuperior = $1002075; { U+2075 SUPERSCRIPT FIVE } + XK_sixsuperior = $1002076; { U+2076 SUPERSCRIPT SIX } + XK_sevensuperior = $1002077; { U+2077 SUPERSCRIPT SEVEN } + XK_eightsuperior = $1002078; { U+2078 SUPERSCRIPT EIGHT } + XK_ninesuperior = $1002079; { U+2079 SUPERSCRIPT NINE } + XK_zerosubscript = $1002080; { U+2080 SUBSCRIPT ZERO } + XK_onesubscript = $1002081; { U+2081 SUBSCRIPT ONE } + XK_twosubscript = $1002082; { U+2082 SUBSCRIPT TWO } + XK_threesubscript = $1002083; { U+2083 SUBSCRIPT THREE } + XK_foursubscript = $1002084; { U+2084 SUBSCRIPT FOUR } + XK_fivesubscript = $1002085; { U+2085 SUBSCRIPT FIVE } + XK_sixsubscript = $1002086; { U+2086 SUBSCRIPT SIX } + XK_sevensubscript = $1002087; { U+2087 SUBSCRIPT SEVEN } + XK_eightsubscript = $1002088; { U+2088 SUBSCRIPT EIGHT } + XK_ninesubscript = $1002089; { U+2089 SUBSCRIPT NINE } + XK_partdifferential = $1002202; { U+2202 PARTIAL DIFFERENTIAL } + XK_emptyset = $1002205; { U+2205 NULL SET } + XK_elementof = $1002208; { U+2208 ELEMENT OF } + XK_notelementof = $1002209; { U+2209 NOT AN ELEMENT OF } + XK_containsas = $100220B; { U+220B CONTAINS AS MEMBER } + XK_squareroot = $100221A; { U+221A SQUARE ROOT } + XK_cuberoot = $100221B; { U+221B CUBE ROOT } + XK_fourthroot = $100221C; { U+221C FOURTH ROOT } + XK_dintegral = $100222C; { U+222C DOUBLE INTEGRAL } + XK_tintegral = $100222D; { U+222D TRIPLE INTEGRAL } + XK_because = $1002235; { U+2235 BECAUSE } + XK_approxeq = $1002248; { U+2245 ALMOST EQUAL TO } + XK_notapproxeq = $1002247; { U+2247 NOT ALMOST EQUAL TO } + XK_notidentical = $1002262; { U+2262 NOT IDENTICAL TO } + XK_stricteq = $1002263; { U+2263 STRICTLY EQUIVALENT TO } + + XK_braille_dot_1 = $fff1; + XK_braille_dot_2 = $fff2; + XK_braille_dot_3 = $fff3; + XK_braille_dot_4 = $fff4; + XK_braille_dot_5 = $fff5; + XK_braille_dot_6 = $fff6; + XK_braille_dot_7 = $fff7; + XK_braille_dot_8 = $fff8; + XK_braille_dot_9 = $fff9; + XK_braille_dot_10 = $fffa; + XK_braille_blank = $1002800; { U+2800 BRAILLE PATTERN BLANK } + XK_braille_dots_1 = $1002801; { U+2801 BRAILLE PATTERN DOTS-1 } + XK_braille_dots_2 = $1002802; { U+2802 BRAILLE PATTERN DOTS-2 } + XK_braille_dots_12 = $1002803; { U+2803 BRAILLE PATTERN DOTS-12 } + XK_braille_dots_3 = $1002804; { U+2804 BRAILLE PATTERN DOTS-3 } + XK_braille_dots_13 = $1002805; { U+2805 BRAILLE PATTERN DOTS-13 } + XK_braille_dots_23 = $1002806; { U+2806 BRAILLE PATTERN DOTS-23 } + XK_braille_dots_123 = $1002807; { U+2807 BRAILLE PATTERN DOTS-123 } + XK_braille_dots_4 = $1002808; { U+2808 BRAILLE PATTERN DOTS-4 } + XK_braille_dots_14 = $1002809; { U+2809 BRAILLE PATTERN DOTS-14 } + XK_braille_dots_24 = $100280a; { U+280a BRAILLE PATTERN DOTS-24 } + XK_braille_dots_124 = $100280b; { U+280b BRAILLE PATTERN DOTS-124 } + XK_braille_dots_34 = $100280c; { U+280c BRAILLE PATTERN DOTS-34 } + XK_braille_dots_134 = $100280d; { U+280d BRAILLE PATTERN DOTS-134 } + XK_braille_dots_234 = $100280e; { U+280e BRAILLE PATTERN DOTS-234 } + XK_braille_dots_1234 = $100280f; { U+280f BRAILLE PATTERN DOTS-1234 } + XK_braille_dots_5 = $1002810; { U+2810 BRAILLE PATTERN DOTS-5 } + XK_braille_dots_15 = $1002811; { U+2811 BRAILLE PATTERN DOTS-15 } + XK_braille_dots_25 = $1002812; { U+2812 BRAILLE PATTERN DOTS-25 } + XK_braille_dots_125 = $1002813; { U+2813 BRAILLE PATTERN DOTS-125 } + XK_braille_dots_35 = $1002814; { U+2814 BRAILLE PATTERN DOTS-35 } + XK_braille_dots_135 = $1002815; { U+2815 BRAILLE PATTERN DOTS-135 } + XK_braille_dots_235 = $1002816; { U+2816 BRAILLE PATTERN DOTS-235 } + XK_braille_dots_1235 = $1002817; { U+2817 BRAILLE PATTERN DOTS-1235 } + XK_braille_dots_45 = $1002818; { U+2818 BRAILLE PATTERN DOTS-45 } + XK_braille_dots_145 = $1002819; { U+2819 BRAILLE PATTERN DOTS-145 } + XK_braille_dots_245 = $100281a; { U+281a BRAILLE PATTERN DOTS-245 } + XK_braille_dots_1245 = $100281b; { U+281b BRAILLE PATTERN DOTS-1245 } + XK_braille_dots_345 = $100281c; { U+281c BRAILLE PATTERN DOTS-345 } + XK_braille_dots_1345 = $100281d; { U+281d BRAILLE PATTERN DOTS-1345 } + XK_braille_dots_2345 = $100281e; { U+281e BRAILLE PATTERN DOTS-2345 } + XK_braille_dots_12345 = $100281f; { U+281f BRAILLE PATTERN DOTS-12345 } + XK_braille_dots_6 = $1002820; { U+2820 BRAILLE PATTERN DOTS-6 } + XK_braille_dots_16 = $1002821; { U+2821 BRAILLE PATTERN DOTS-16 } + XK_braille_dots_26 = $1002822; { U+2822 BRAILLE PATTERN DOTS-26 } + XK_braille_dots_126 = $1002823; { U+2823 BRAILLE PATTERN DOTS-126 } + XK_braille_dots_36 = $1002824; { U+2824 BRAILLE PATTERN DOTS-36 } + XK_braille_dots_136 = $1002825; { U+2825 BRAILLE PATTERN DOTS-136 } + XK_braille_dots_236 = $1002826; { U+2826 BRAILLE PATTERN DOTS-236 } + XK_braille_dots_1236 = $1002827; { U+2827 BRAILLE PATTERN DOTS-1236 } + XK_braille_dots_46 = $1002828; { U+2828 BRAILLE PATTERN DOTS-46 } + XK_braille_dots_146 = $1002829; { U+2829 BRAILLE PATTERN DOTS-146 } + XK_braille_dots_246 = $100282a; { U+282a BRAILLE PATTERN DOTS-246 } + XK_braille_dots_1246 = $100282b; { U+282b BRAILLE PATTERN DOTS-1246 } + XK_braille_dots_346 = $100282c; { U+282c BRAILLE PATTERN DOTS-346 } + XK_braille_dots_1346 = $100282d; { U+282d BRAILLE PATTERN DOTS-1346 } + XK_braille_dots_2346 = $100282e; { U+282e BRAILLE PATTERN DOTS-2346 } + XK_braille_dots_12346 = $100282f; { U+282f BRAILLE PATTERN DOTS-12346 } + XK_braille_dots_56 = $1002830; { U+2830 BRAILLE PATTERN DOTS-56 } + XK_braille_dots_156 = $1002831; { U+2831 BRAILLE PATTERN DOTS-156 } + XK_braille_dots_256 = $1002832; { U+2832 BRAILLE PATTERN DOTS-256 } + XK_braille_dots_1256 = $1002833; { U+2833 BRAILLE PATTERN DOTS-1256 } + XK_braille_dots_356 = $1002834; { U+2834 BRAILLE PATTERN DOTS-356 } + XK_braille_dots_1356 = $1002835; { U+2835 BRAILLE PATTERN DOTS-1356 } + XK_braille_dots_2356 = $1002836; { U+2836 BRAILLE PATTERN DOTS-2356 } + XK_braille_dots_12356 = $1002837; { U+2837 BRAILLE PATTERN DOTS-12356 } + XK_braille_dots_456 = $1002838; { U+2838 BRAILLE PATTERN DOTS-456 } + XK_braille_dots_1456 = $1002839; { U+2839 BRAILLE PATTERN DOTS-1456 } + XK_braille_dots_2456 = $100283a; { U+283a BRAILLE PATTERN DOTS-2456 } + XK_braille_dots_12456 = $100283b; { U+283b BRAILLE PATTERN DOTS-12456 } + XK_braille_dots_3456 = $100283c; { U+283c BRAILLE PATTERN DOTS-3456 } + XK_braille_dots_13456 = $100283d; { U+283d BRAILLE PATTERN DOTS-13456 } + XK_braille_dots_23456 = $100283e; { U+283e BRAILLE PATTERN DOTS-23456 } + XK_braille_dots_123456 = $100283f; { U+283f BRAILLE PATTERN DOTS-123456 } + XK_braille_dots_7 = $1002840; { U+2840 BRAILLE PATTERN DOTS-7 } + XK_braille_dots_17 = $1002841; { U+2841 BRAILLE PATTERN DOTS-17 } + XK_braille_dots_27 = $1002842; { U+2842 BRAILLE PATTERN DOTS-27 } + XK_braille_dots_127 = $1002843; { U+2843 BRAILLE PATTERN DOTS-127 } + XK_braille_dots_37 = $1002844; { U+2844 BRAILLE PATTERN DOTS-37 } + XK_braille_dots_137 = $1002845; { U+2845 BRAILLE PATTERN DOTS-137 } + XK_braille_dots_237 = $1002846; { U+2846 BRAILLE PATTERN DOTS-237 } + XK_braille_dots_1237 = $1002847; { U+2847 BRAILLE PATTERN DOTS-1237 } + XK_braille_dots_47 = $1002848; { U+2848 BRAILLE PATTERN DOTS-47 } + XK_braille_dots_147 = $1002849; { U+2849 BRAILLE PATTERN DOTS-147 } + XK_braille_dots_247 = $100284a; { U+284a BRAILLE PATTERN DOTS-247 } + XK_braille_dots_1247 = $100284b; { U+284b BRAILLE PATTERN DOTS-1247 } + XK_braille_dots_347 = $100284c; { U+284c BRAILLE PATTERN DOTS-347 } + XK_braille_dots_1347 = $100284d; { U+284d BRAILLE PATTERN DOTS-1347 } + XK_braille_dots_2347 = $100284e; { U+284e BRAILLE PATTERN DOTS-2347 } + XK_braille_dots_12347 = $100284f; { U+284f BRAILLE PATTERN DOTS-12347 } + XK_braille_dots_57 = $1002850; { U+2850 BRAILLE PATTERN DOTS-57 } + XK_braille_dots_157 = $1002851; { U+2851 BRAILLE PATTERN DOTS-157 } + XK_braille_dots_257 = $1002852; { U+2852 BRAILLE PATTERN DOTS-257 } + XK_braille_dots_1257 = $1002853; { U+2853 BRAILLE PATTERN DOTS-1257 } + XK_braille_dots_357 = $1002854; { U+2854 BRAILLE PATTERN DOTS-357 } + XK_braille_dots_1357 = $1002855; { U+2855 BRAILLE PATTERN DOTS-1357 } + XK_braille_dots_2357 = $1002856; { U+2856 BRAILLE PATTERN DOTS-2357 } + XK_braille_dots_12357 = $1002857; { U+2857 BRAILLE PATTERN DOTS-12357 } + XK_braille_dots_457 = $1002858; { U+2858 BRAILLE PATTERN DOTS-457 } + XK_braille_dots_1457 = $1002859; { U+2859 BRAILLE PATTERN DOTS-1457 } + XK_braille_dots_2457 = $100285a; { U+285a BRAILLE PATTERN DOTS-2457 } + XK_braille_dots_12457 = $100285b; { U+285b BRAILLE PATTERN DOTS-12457 } + XK_braille_dots_3457 = $100285c; { U+285c BRAILLE PATTERN DOTS-3457 } + XK_braille_dots_13457 = $100285d; { U+285d BRAILLE PATTERN DOTS-13457 } + XK_braille_dots_23457 = $100285e; { U+285e BRAILLE PATTERN DOTS-23457 } + XK_braille_dots_123457 = $100285f; { U+285f BRAILLE PATTERN DOTS-123457 } + XK_braille_dots_67 = $1002860; { U+2860 BRAILLE PATTERN DOTS-67 } + XK_braille_dots_167 = $1002861; { U+2861 BRAILLE PATTERN DOTS-167 } + XK_braille_dots_267 = $1002862; { U+2862 BRAILLE PATTERN DOTS-267 } + XK_braille_dots_1267 = $1002863; { U+2863 BRAILLE PATTERN DOTS-1267 } + XK_braille_dots_367 = $1002864; { U+2864 BRAILLE PATTERN DOTS-367 } + XK_braille_dots_1367 = $1002865; { U+2865 BRAILLE PATTERN DOTS-1367 } + XK_braille_dots_2367 = $1002866; { U+2866 BRAILLE PATTERN DOTS-2367 } + XK_braille_dots_12367 = $1002867; { U+2867 BRAILLE PATTERN DOTS-12367 } + XK_braille_dots_467 = $1002868; { U+2868 BRAILLE PATTERN DOTS-467 } + XK_braille_dots_1467 = $1002869; { U+2869 BRAILLE PATTERN DOTS-1467 } + XK_braille_dots_2467 = $100286a; { U+286a BRAILLE PATTERN DOTS-2467 } + XK_braille_dots_12467 = $100286b; { U+286b BRAILLE PATTERN DOTS-12467 } + XK_braille_dots_3467 = $100286c; { U+286c BRAILLE PATTERN DOTS-3467 } + XK_braille_dots_13467 = $100286d; { U+286d BRAILLE PATTERN DOTS-13467 } + XK_braille_dots_23467 = $100286e; { U+286e BRAILLE PATTERN DOTS-23467 } + XK_braille_dots_123467 = $100286f; { U+286f BRAILLE PATTERN DOTS-123467 } + XK_braille_dots_567 = $1002870; { U+2870 BRAILLE PATTERN DOTS-567 } + XK_braille_dots_1567 = $1002871; { U+2871 BRAILLE PATTERN DOTS-1567 } + XK_braille_dots_2567 = $1002872; { U+2872 BRAILLE PATTERN DOTS-2567 } + XK_braille_dots_12567 = $1002873; { U+2873 BRAILLE PATTERN DOTS-12567 } + XK_braille_dots_3567 = $1002874; { U+2874 BRAILLE PATTERN DOTS-3567 } + XK_braille_dots_13567 = $1002875; { U+2875 BRAILLE PATTERN DOTS-13567 } + XK_braille_dots_23567 = $1002876; { U+2876 BRAILLE PATTERN DOTS-23567 } + XK_braille_dots_123567 = $1002877; { U+2877 BRAILLE PATTERN DOTS-123567 } + XK_braille_dots_4567 = $1002878; { U+2878 BRAILLE PATTERN DOTS-4567 } + XK_braille_dots_14567 = $1002879; { U+2879 BRAILLE PATTERN DOTS-14567 } + XK_braille_dots_24567 = $100287a; { U+287a BRAILLE PATTERN DOTS-24567 } + XK_braille_dots_124567 = $100287b; { U+287b BRAILLE PATTERN DOTS-124567 } + XK_braille_dots_34567 = $100287c; { U+287c BRAILLE PATTERN DOTS-34567 } + XK_braille_dots_134567 = $100287d; { U+287d BRAILLE PATTERN DOTS-134567 } + XK_braille_dots_234567 = $100287e; { U+287e BRAILLE PATTERN DOTS-234567 } + XK_braille_dots_1234567 = $100287f; { U+287f BRAILLE PATTERN DOTS-1234567 } + XK_braille_dots_8 = $1002880; { U+2880 BRAILLE PATTERN DOTS-8 } + XK_braille_dots_18 = $1002881; { U+2881 BRAILLE PATTERN DOTS-18 } + XK_braille_dots_28 = $1002882; { U+2882 BRAILLE PATTERN DOTS-28 } + XK_braille_dots_128 = $1002883; { U+2883 BRAILLE PATTERN DOTS-128 } + XK_braille_dots_38 = $1002884; { U+2884 BRAILLE PATTERN DOTS-38 } + XK_braille_dots_138 = $1002885; { U+2885 BRAILLE PATTERN DOTS-138 } + XK_braille_dots_238 = $1002886; { U+2886 BRAILLE PATTERN DOTS-238 } + XK_braille_dots_1238 = $1002887; { U+2887 BRAILLE PATTERN DOTS-1238 } + XK_braille_dots_48 = $1002888; { U+2888 BRAILLE PATTERN DOTS-48 } + XK_braille_dots_148 = $1002889; { U+2889 BRAILLE PATTERN DOTS-148 } + XK_braille_dots_248 = $100288a; { U+288a BRAILLE PATTERN DOTS-248 } + XK_braille_dots_1248 = $100288b; { U+288b BRAILLE PATTERN DOTS-1248 } + XK_braille_dots_348 = $100288c; { U+288c BRAILLE PATTERN DOTS-348 } + XK_braille_dots_1348 = $100288d; { U+288d BRAILLE PATTERN DOTS-1348 } + XK_braille_dots_2348 = $100288e; { U+288e BRAILLE PATTERN DOTS-2348 } + XK_braille_dots_12348 = $100288f; { U+288f BRAILLE PATTERN DOTS-12348 } + XK_braille_dots_58 = $1002890; { U+2890 BRAILLE PATTERN DOTS-58 } + XK_braille_dots_158 = $1002891; { U+2891 BRAILLE PATTERN DOTS-158 } + XK_braille_dots_258 = $1002892; { U+2892 BRAILLE PATTERN DOTS-258 } + XK_braille_dots_1258 = $1002893; { U+2893 BRAILLE PATTERN DOTS-1258 } + XK_braille_dots_358 = $1002894; { U+2894 BRAILLE PATTERN DOTS-358 } + XK_braille_dots_1358 = $1002895; { U+2895 BRAILLE PATTERN DOTS-1358 } + XK_braille_dots_2358 = $1002896; { U+2896 BRAILLE PATTERN DOTS-2358 } + XK_braille_dots_12358 = $1002897; { U+2897 BRAILLE PATTERN DOTS-12358 } + XK_braille_dots_458 = $1002898; { U+2898 BRAILLE PATTERN DOTS-458 } + XK_braille_dots_1458 = $1002899; { U+2899 BRAILLE PATTERN DOTS-1458 } + XK_braille_dots_2458 = $100289a; { U+289a BRAILLE PATTERN DOTS-2458 } + XK_braille_dots_12458 = $100289b; { U+289b BRAILLE PATTERN DOTS-12458 } + XK_braille_dots_3458 = $100289c; { U+289c BRAILLE PATTERN DOTS-3458 } + XK_braille_dots_13458 = $100289d; { U+289d BRAILLE PATTERN DOTS-13458 } + XK_braille_dots_23458 = $100289e; { U+289e BRAILLE PATTERN DOTS-23458 } + XK_braille_dots_123458 = $100289f; { U+289f BRAILLE PATTERN DOTS-123458 } + XK_braille_dots_68 = $10028a0; { U+28a0 BRAILLE PATTERN DOTS-68 } + XK_braille_dots_168 = $10028a1; { U+28a1 BRAILLE PATTERN DOTS-168 } + XK_braille_dots_268 = $10028a2; { U+28a2 BRAILLE PATTERN DOTS-268 } + XK_braille_dots_1268 = $10028a3; { U+28a3 BRAILLE PATTERN DOTS-1268 } + XK_braille_dots_368 = $10028a4; { U+28a4 BRAILLE PATTERN DOTS-368 } + XK_braille_dots_1368 = $10028a5; { U+28a5 BRAILLE PATTERN DOTS-1368 } + XK_braille_dots_2368 = $10028a6; { U+28a6 BRAILLE PATTERN DOTS-2368 } + XK_braille_dots_12368 = $10028a7; { U+28a7 BRAILLE PATTERN DOTS-12368 } + XK_braille_dots_468 = $10028a8; { U+28a8 BRAILLE PATTERN DOTS-468 } + XK_braille_dots_1468 = $10028a9; { U+28a9 BRAILLE PATTERN DOTS-1468 } + XK_braille_dots_2468 = $10028aa; { U+28aa BRAILLE PATTERN DOTS-2468 } + XK_braille_dots_12468 = $10028ab; { U+28ab BRAILLE PATTERN DOTS-12468 } + XK_braille_dots_3468 = $10028ac; { U+28ac BRAILLE PATTERN DOTS-3468 } + XK_braille_dots_13468 = $10028ad; { U+28ad BRAILLE PATTERN DOTS-13468 } + XK_braille_dots_23468 = $10028ae; { U+28ae BRAILLE PATTERN DOTS-23468 } + XK_braille_dots_123468 = $10028af; { U+28af BRAILLE PATTERN DOTS-123468 } + XK_braille_dots_568 = $10028b0; { U+28b0 BRAILLE PATTERN DOTS-568 } + XK_braille_dots_1568 = $10028b1; { U+28b1 BRAILLE PATTERN DOTS-1568 } + XK_braille_dots_2568 = $10028b2; { U+28b2 BRAILLE PATTERN DOTS-2568 } + XK_braille_dots_12568 = $10028b3; { U+28b3 BRAILLE PATTERN DOTS-12568 } + XK_braille_dots_3568 = $10028b4; { U+28b4 BRAILLE PATTERN DOTS-3568 } + XK_braille_dots_13568 = $10028b5; { U+28b5 BRAILLE PATTERN DOTS-13568 } + XK_braille_dots_23568 = $10028b6; { U+28b6 BRAILLE PATTERN DOTS-23568 } + XK_braille_dots_123568 = $10028b7; { U+28b7 BRAILLE PATTERN DOTS-123568 } + XK_braille_dots_4568 = $10028b8; { U+28b8 BRAILLE PATTERN DOTS-4568 } + XK_braille_dots_14568 = $10028b9; { U+28b9 BRAILLE PATTERN DOTS-14568 } + XK_braille_dots_24568 = $10028ba; { U+28ba BRAILLE PATTERN DOTS-24568 } + XK_braille_dots_124568 = $10028bb; { U+28bb BRAILLE PATTERN DOTS-124568 } + XK_braille_dots_34568 = $10028bc; { U+28bc BRAILLE PATTERN DOTS-34568 } + XK_braille_dots_134568 = $10028bd; { U+28bd BRAILLE PATTERN DOTS-134568 } + XK_braille_dots_234568 = $10028be; { U+28be BRAILLE PATTERN DOTS-234568 } + XK_braille_dots_1234568 = $10028bf; { U+28bf BRAILLE PATTERN DOTS-1234568 } + XK_braille_dots_78 = $10028c0; { U+28c0 BRAILLE PATTERN DOTS-78 } + XK_braille_dots_178 = $10028c1; { U+28c1 BRAILLE PATTERN DOTS-178 } + XK_braille_dots_278 = $10028c2; { U+28c2 BRAILLE PATTERN DOTS-278 } + XK_braille_dots_1278 = $10028c3; { U+28c3 BRAILLE PATTERN DOTS-1278 } + XK_braille_dots_378 = $10028c4; { U+28c4 BRAILLE PATTERN DOTS-378 } + XK_braille_dots_1378 = $10028c5; { U+28c5 BRAILLE PATTERN DOTS-1378 } + XK_braille_dots_2378 = $10028c6; { U+28c6 BRAILLE PATTERN DOTS-2378 } + XK_braille_dots_12378 = $10028c7; { U+28c7 BRAILLE PATTERN DOTS-12378 } + XK_braille_dots_478 = $10028c8; { U+28c8 BRAILLE PATTERN DOTS-478 } + XK_braille_dots_1478 = $10028c9; { U+28c9 BRAILLE PATTERN DOTS-1478 } + XK_braille_dots_2478 = $10028ca; { U+28ca BRAILLE PATTERN DOTS-2478 } + XK_braille_dots_12478 = $10028cb; { U+28cb BRAILLE PATTERN DOTS-12478 } + XK_braille_dots_3478 = $10028cc; { U+28cc BRAILLE PATTERN DOTS-3478 } + XK_braille_dots_13478 = $10028cd; { U+28cd BRAILLE PATTERN DOTS-13478 } + XK_braille_dots_23478 = $10028ce; { U+28ce BRAILLE PATTERN DOTS-23478 } + XK_braille_dots_123478 = $10028cf; { U+28cf BRAILLE PATTERN DOTS-123478 } + XK_braille_dots_578 = $10028d0; { U+28d0 BRAILLE PATTERN DOTS-578 } + XK_braille_dots_1578 = $10028d1; { U+28d1 BRAILLE PATTERN DOTS-1578 } + XK_braille_dots_2578 = $10028d2; { U+28d2 BRAILLE PATTERN DOTS-2578 } + XK_braille_dots_12578 = $10028d3; { U+28d3 BRAILLE PATTERN DOTS-12578 } + XK_braille_dots_3578 = $10028d4; { U+28d4 BRAILLE PATTERN DOTS-3578 } + XK_braille_dots_13578 = $10028d5; { U+28d5 BRAILLE PATTERN DOTS-13578 } + XK_braille_dots_23578 = $10028d6; { U+28d6 BRAILLE PATTERN DOTS-23578 } + XK_braille_dots_123578 = $10028d7; { U+28d7 BRAILLE PATTERN DOTS-123578 } + XK_braille_dots_4578 = $10028d8; { U+28d8 BRAILLE PATTERN DOTS-4578 } + XK_braille_dots_14578 = $10028d9; { U+28d9 BRAILLE PATTERN DOTS-14578 } + XK_braille_dots_24578 = $10028da; { U+28da BRAILLE PATTERN DOTS-24578 } + XK_braille_dots_124578 = $10028db; { U+28db BRAILLE PATTERN DOTS-124578 } + XK_braille_dots_34578 = $10028dc; { U+28dc BRAILLE PATTERN DOTS-34578 } + XK_braille_dots_134578 = $10028dd; { U+28dd BRAILLE PATTERN DOTS-134578 } + XK_braille_dots_234578 = $10028de; { U+28de BRAILLE PATTERN DOTS-234578 } + XK_braille_dots_1234578 = $10028df; { U+28df BRAILLE PATTERN DOTS-1234578 } + XK_braille_dots_678 = $10028e0; { U+28e0 BRAILLE PATTERN DOTS-678 } + XK_braille_dots_1678 = $10028e1; { U+28e1 BRAILLE PATTERN DOTS-1678 } + XK_braille_dots_2678 = $10028e2; { U+28e2 BRAILLE PATTERN DOTS-2678 } + XK_braille_dots_12678 = $10028e3; { U+28e3 BRAILLE PATTERN DOTS-12678 } + XK_braille_dots_3678 = $10028e4; { U+28e4 BRAILLE PATTERN DOTS-3678 } + XK_braille_dots_13678 = $10028e5; { U+28e5 BRAILLE PATTERN DOTS-13678 } + XK_braille_dots_23678 = $10028e6; { U+28e6 BRAILLE PATTERN DOTS-23678 } + XK_braille_dots_123678 = $10028e7; { U+28e7 BRAILLE PATTERN DOTS-123678 } + XK_braille_dots_4678 = $10028e8; { U+28e8 BRAILLE PATTERN DOTS-4678 } + XK_braille_dots_14678 = $10028e9; { U+28e9 BRAILLE PATTERN DOTS-14678 } + XK_braille_dots_24678 = $10028ea; { U+28ea BRAILLE PATTERN DOTS-24678 } + XK_braille_dots_124678 = $10028eb; { U+28eb BRAILLE PATTERN DOTS-124678 } + XK_braille_dots_34678 = $10028ec; { U+28ec BRAILLE PATTERN DOTS-34678 } + XK_braille_dots_134678 = $10028ed; { U+28ed BRAILLE PATTERN DOTS-134678 } + XK_braille_dots_234678 = $10028ee; { U+28ee BRAILLE PATTERN DOTS-234678 } + XK_braille_dots_1234678 = $10028ef; { U+28ef BRAILLE PATTERN DOTS-1234678 } + XK_braille_dots_5678 = $10028f0; { U+28f0 BRAILLE PATTERN DOTS-5678 } + XK_braille_dots_15678 = $10028f1; { U+28f1 BRAILLE PATTERN DOTS-15678 } + XK_braille_dots_25678 = $10028f2; { U+28f2 BRAILLE PATTERN DOTS-25678 } + XK_braille_dots_125678 = $10028f3; { U+28f3 BRAILLE PATTERN DOTS-125678 } + XK_braille_dots_35678 = $10028f4; { U+28f4 BRAILLE PATTERN DOTS-35678 } + XK_braille_dots_135678 = $10028f5; { U+28f5 BRAILLE PATTERN DOTS-135678 } + XK_braille_dots_235678 = $10028f6; { U+28f6 BRAILLE PATTERN DOTS-235678 } + XK_braille_dots_1235678 = $10028f7; { U+28f7 BRAILLE PATTERN DOTS-1235678 } + XK_braille_dots_45678 = $10028f8; { U+28f8 BRAILLE PATTERN DOTS-45678 } + XK_braille_dots_145678 = $10028f9; { U+28f9 BRAILLE PATTERN DOTS-145678 } + XK_braille_dots_245678 = $10028fa; { U+28fa BRAILLE PATTERN DOTS-245678 } + XK_braille_dots_1245678 = $10028fb; { U+28fb BRAILLE PATTERN DOTS-1245678 } + XK_braille_dots_345678 = $10028fc; { U+28fc BRAILLE PATTERN DOTS-345678 } + XK_braille_dots_1345678 = $10028fd; { U+28fd BRAILLE PATTERN DOTS-1345678 } + XK_braille_dots_2345678 = $10028fe; { U+28fe BRAILLE PATTERN DOTS-2345678 } + XK_braille_dots_12345678 = $10028ff; { U+28ff BRAILLE PATTERN DOTS-12345678 } + + XK_Sinh_ng = $1000d82; { U+0D82 SINHALA ANUSVARAYA } + XK_Sinh_h2 = $1000d83; { U+0D83 SINHALA VISARGAYA } + XK_Sinh_a = $1000d85; { U+0D85 SINHALA AYANNA } + XK_Sinh_aa = $1000d86; { U+0D86 SINHALA AAYANNA } + XK_Sinh_ae = $1000d87; { U+0D87 SINHALA AEYANNA } + XK_Sinh_aee = $1000d88; { U+0D88 SINHALA AEEYANNA } + XK_Sinh_i = $1000d89; { U+0D89 SINHALA IYANNA } + XK_Sinh_ii = $1000d8a; { U+0D8A SINHALA IIYANNA } + XK_Sinh_u = $1000d8b; { U+0D8B SINHALA UYANNA } + XK_Sinh_uu = $1000d8c; { U+0D8C SINHALA UUYANNA } + XK_Sinh_ri = $1000d8d; { U+0D8D SINHALA IRUYANNA } + XK_Sinh_rii = $1000d8e; { U+0D8E SINHALA IRUUYANNA } + XK_Sinh_lu = $1000d8f; { U+0D8F SINHALA ILUYANNA } + XK_Sinh_luu = $1000d90; { U+0D90 SINHALA ILUUYANNA } + XK_Sinh_e = $1000d91; { U+0D91 SINHALA EYANNA } + XK_Sinh_ee = $1000d92; { U+0D92 SINHALA EEYANNA } + XK_Sinh_ai = $1000d93; { U+0D93 SINHALA AIYANNA } + XK_Sinh_o = $1000d94; { U+0D94 SINHALA OYANNA } + XK_Sinh_oo = $1000d95; { U+0D95 SINHALA OOYANNA } + XK_Sinh_au = $1000d96; { U+0D96 SINHALA AUYANNA } + XK_Sinh_ka = $1000d9a; { U+0D9A SINHALA KAYANNA } + XK_Sinh_kha = $1000d9b; { U+0D9B SINHALA MAHA. KAYANNA } + XK_Sinh_ga = $1000d9c; { U+0D9C SINHALA GAYANNA } + XK_Sinh_gha = $1000d9d; { U+0D9D SINHALA MAHA. GAYANNA } + XK_Sinh_ng2 = $1000d9e; { U+0D9E SINHALA KANTAJA NAASIKYAYA } + XK_Sinh_nga = $1000d9f; { U+0D9F SINHALA SANYAKA GAYANNA } + XK_Sinh_ca = $1000da0; { U+0DA0 SINHALA CAYANNA } + XK_Sinh_cha = $1000da1; { U+0DA1 SINHALA MAHA. CAYANNA } + XK_Sinh_ja = $1000da2; { U+0DA2 SINHALA JAYANNA } + XK_Sinh_jha = $1000da3; { U+0DA3 SINHALA MAHA. JAYANNA } + XK_Sinh_nya = $1000da4; { U+0DA4 SINHALA TAALUJA NAASIKYAYA } + XK_Sinh_jnya = $1000da5; { U+0DA5 SINHALA TAALUJA SANYOOGA NAASIKYAYA } + XK_Sinh_nja = $1000da6; { U+0DA6 SINHALA SANYAKA JAYANNA } + XK_Sinh_tta = $1000da7; { U+0DA7 SINHALA TTAYANNA } + XK_Sinh_ttha = $1000da8; { U+0DA8 SINHALA MAHA. TTAYANNA } + XK_Sinh_dda = $1000da9; { U+0DA9 SINHALA DDAYANNA } + XK_Sinh_ddha = $1000daa; { U+0DAA SINHALA MAHA. DDAYANNA } + XK_Sinh_nna = $1000dab; { U+0DAB SINHALA MUURDHAJA NAYANNA } + XK_Sinh_ndda = $1000dac; { U+0DAC SINHALA SANYAKA DDAYANNA } + XK_Sinh_tha = $1000dad; { U+0DAD SINHALA TAYANNA } + XK_Sinh_thha = $1000dae; { U+0DAE SINHALA MAHA. TAYANNA } + XK_Sinh_dha = $1000daf; { U+0DAF SINHALA DAYANNA } + XK_Sinh_dhha = $1000db0; { U+0DB0 SINHALA MAHA. DAYANNA } + XK_Sinh_na = $1000db1; { U+0DB1 SINHALA DANTAJA NAYANNA } + XK_Sinh_ndha = $1000db3; { U+0DB3 SINHALA SANYAKA DAYANNA } + XK_Sinh_pa = $1000db4; { U+0DB4 SINHALA PAYANNA } + XK_Sinh_pha = $1000db5; { U+0DB5 SINHALA MAHA. PAYANNA } + XK_Sinh_ba = $1000db6; { U+0DB6 SINHALA BAYANNA } + XK_Sinh_bha = $1000db7; { U+0DB7 SINHALA MAHA. BAYANNA } + XK_Sinh_ma = $1000db8; { U+0DB8 SINHALA MAYANNA } + XK_Sinh_mba = $1000db9; { U+0DB9 SINHALA AMBA BAYANNA } + XK_Sinh_ya = $1000dba; { U+0DBA SINHALA YAYANNA } + XK_Sinh_ra = $1000dbb; { U+0DBB SINHALA RAYANNA } + XK_Sinh_la = $1000dbd; { U+0DBD SINHALA DANTAJA LAYANNA } + XK_Sinh_va = $1000dc0; { U+0DC0 SINHALA VAYANNA } + XK_Sinh_sha = $1000dc1; { U+0DC1 SINHALA TAALUJA SAYANNA } + XK_Sinh_ssha = $1000dc2; { U+0DC2 SINHALA MUURDHAJA SAYANNA } + XK_Sinh_sa = $1000dc3; { U+0DC3 SINHALA DANTAJA SAYANNA } + XK_Sinh_ha = $1000dc4; { U+0DC4 SINHALA HAYANNA } + XK_Sinh_lla = $1000dc5; { U+0DC5 SINHALA MUURDHAJA LAYANNA } + XK_Sinh_fa = $1000dc6; { U+0DC6 SINHALA FAYANNA } + XK_Sinh_al = $1000dca; { U+0DCA SINHALA AL-LAKUNA } + XK_Sinh_aa2 = $1000dcf; { U+0DCF SINHALA AELA-PILLA } + XK_Sinh_ae2 = $1000dd0; { U+0DD0 SINHALA AEDA-PILLA } + XK_Sinh_aee2 = $1000dd1; { U+0DD1 SINHALA DIGA AEDA-PILLA } + XK_Sinh_i2 = $1000dd2; { U+0DD2 SINHALA IS-PILLA } + XK_Sinh_ii2 = $1000dd3; { U+0DD3 SINHALA DIGA IS-PILLA } + XK_Sinh_u2 = $1000dd4; { U+0DD4 SINHALA PAA-PILLA } + XK_Sinh_uu2 = $1000dd6; { U+0DD6 SINHALA DIGA PAA-PILLA } + XK_Sinh_ru2 = $1000dd8; { U+0DD8 SINHALA GAETTA-PILLA } + XK_Sinh_e2 = $1000dd9; { U+0DD9 SINHALA KOMBUVA } + XK_Sinh_ee2 = $1000dda; { U+0DDA SINHALA DIGA KOMBUVA } + XK_Sinh_ai2 = $1000ddb; { U+0DDB SINHALA KOMBU DEKA } + XK_Sinh_o2 = $1000ddc; { U+0DDC SINHALA KOMBUVA HAA AELA-PILLA} + XK_Sinh_oo2 = $1000ddd; { U+0DDD SINHALA KOMBUVA HAA DIGA AELA-PILLA} + XK_Sinh_au2 = $1000dde; { U+0DDE SINHALA KOMBUVA HAA GAYANUKITTA } + XK_Sinh_lu2 = $1000ddf; { U+0DDF SINHALA GAYANUKITTA } + XK_Sinh_ruu2 = $1000df2; { U+0DF2 SINHALA DIGA GAETTA-PILLA } + XK_Sinh_luu2 = $1000df3; { U+0DF3 SINHALA DIGA GAYANUKITTA } + XK_Sinh_kunddaliya = $1000df4; { U+0DF4 SINHALA KUNDDALIYA } + + // Copied from xf86keysym.pp in Lazarus + XF86XK_ModeLock = $1008FF01; { Mode Switch Lock } + + XF86XK_MonBrightnessUp = $1008FF02; { Monitor/panel brightness } + XF86XK_MonBrightnessDown = $1008FF03; { Monitor/panel brightness } + XF86XK_KbdLightOnOff = $1008FF04; { Keyboards may be lit } + XF86XK_KbdBrightnessUp = $1008FF05; { Keyboards may be lit } + XF86XK_KbdBrightnessDown = $1008FF06; { Keyboards may be lit } + + XF86XK_Standby = $1008FF10; { System into standby mode } + XF86XK_AudioLowerVolume = $1008FF11; { Volume control down } + XF86XK_AudioMute = $1008FF12; { Mute sound from the system } + XF86XK_AudioRaiseVolume = $1008FF13; { Volume control up } + XF86XK_AudioPlay = $1008FF14; { Start playing of audio > } + XF86XK_AudioStop = $1008FF15; { Stop playing audio } + XF86XK_AudioPrev = $1008FF16; { Previous track } + XF86XK_AudioNext = $1008FF17; { Next track } + XF86XK_HomePage = $1008FF18; { Display user's home page } + XF86XK_Mail = $1008FF19; { Invoke user's mail program } + XF86XK_Start = $1008FF1A; { Start application } + XF86XK_Search = $1008FF1B; { Search } + XF86XK_AudioRecord = $1008FF1C; { Record audio application } + + XF86XK_Calculator = $1008FF1D; { Invoke calculator program } + XF86XK_Memo = $1008FF1E; { Invoke Memo taking program } + XF86XK_ToDoList = $1008FF1F; { Invoke To Do List program } + XF86XK_Calendar = $1008FF20; { Invoke Calendar program } + XF86XK_PowerDown = $1008FF21; { Deep sleep the system } + XF86XK_ContrastAdjust = $1008FF22; { Adjust screen contrast } + XF86XK_RockerUp = $1008FF23; { Rocker switches exist up } + XF86XK_RockerDown = $1008FF24; { and down } + XF86XK_RockerEnter = $1008FF25; { and let you press them } + + XF86XK_Back = $1008FF26; { Like back on a browser } + XF86XK_Forward = $1008FF27; { Like forward on a browser } + XF86XK_Stop = $1008FF28; { Stop current operation } + XF86XK_Refresh = $1008FF29; { Refresh the page } + XF86XK_PowerOff = $1008FF2A; { Power off system entirely } + XF86XK_WakeUp = $1008FF2B; { Wake up system from sleep } + XF86XK_Eject = $1008FF2C; { Eject device (e.g. DVD) } + XF86XK_ScreenSaver = $1008FF2D; { Invoke screensaver } + XF86XK_WWW = $1008FF2E; { Invoke web browser } + XF86XK_Sleep = $1008FF2F; { Put system to sleep } + XF86XK_Favorites = $1008FF30; { Show favorite locations } + XF86XK_AudioPause = $1008FF31; { Pause audio playing } + XF86XK_AudioMedia = $1008FF32; { Launch media collection app } + XF86XK_MyComputer = $1008FF33; { Display "My Computer" window } + XF86XK_VendorHome = $1008FF34; { Display vendor home web site } + XF86XK_LightBulb = $1008FF35; { Light bulb keys exist } + XF86XK_Shop = $1008FF36; { Display shopping web site } + XF86XK_History = $1008FF37; { Show history of web surfing } + XF86XK_OpenURL = $1008FF38; { Open selected URL } + XF86XK_AddFavorite = $1008FF39; { Add URL to favorites list } + XF86XK_HotLinks = $1008FF3A; { Show "hot" links } + XF86XK_BrightnessAdjust = $1008FF3B; { Invoke brightness adj. UI } + XF86XK_Finance = $1008FF3C; { Display financial site } + XF86XK_Community = $1008FF3D; { Display user's community } + XF86XK_AudioRewind = $1008FF3E; { "rewind" audio track } + XF86XK_BackForward = $1008FF3F; { ??? } + XF86XK_Launch0 = $1008FF40; { Launch Application } + XF86XK_Launch1 = $1008FF41; { Launch Application } + XF86XK_Launch2 = $1008FF42; { Launch Application } + XF86XK_Launch3 = $1008FF43; { Launch Application } + XF86XK_Launch4 = $1008FF44; { Launch Application } + XF86XK_Launch5 = $1008FF45; { Launch Application } + XF86XK_Launch6 = $1008FF46; { Launch Application } + XF86XK_Launch7 = $1008FF47; { Launch Application } + XF86XK_Launch8 = $1008FF48; { Launch Application } + XF86XK_Launch9 = $1008FF49; { Launch Application } + XF86XK_LaunchA = $1008FF4A; { Launch Application } + XF86XK_LaunchB = $1008FF4B; { Launch Application } + XF86XK_LaunchC = $1008FF4C; { Launch Application } + XF86XK_LaunchD = $1008FF4D; { Launch Application } + XF86XK_LaunchE = $1008FF4E; { Launch Application } + XF86XK_LaunchF = $1008FF4F; { Launch Application } + + XF86XK_ApplicationLeft = $1008FF50; { switch to application, left } + XF86XK_ApplicationRight = $1008FF51; { switch to application, right} + XF86XK_Book = $1008FF52; { Launch bookreader } + XF86XK_CD = $1008FF53; { Launch CD/DVD player } + XF86XK_Calculater = $1008FF54; { Launch Calculater } + XF86XK_Clear = $1008FF55; { Clear window, screen } + XF86XK_Close = $1008FF56; { Close window } + XF86XK_Copy = $1008FF57; { Copy selection } + XF86XK_Cut = $1008FF58; { Cut selection } + XF86XK_Display = $1008FF59; { Output switch key } + XF86XK_DOS = $1008FF5A; { Launch DOS (emulation) } + XF86XK_Documents = $1008FF5B; { Open documents window } + XF86XK_Excel = $1008FF5C; { Launch spread sheet } + XF86XK_Explorer = $1008FF5D; { Launch file explorer } + XF86XK_Game = $1008FF5E; { Launch game } + XF86XK_Go = $1008FF5F; { Go to URL } + XF86XK_iTouch = $1008FF60; { Logitch iTouch- don't use } + XF86XK_LogOff = $1008FF61; { Log off system } + XF86XK_Market = $1008FF62; { ?? } + XF86XK_Meeting = $1008FF63; { enter meeting in calendar } + XF86XK_MenuKB = $1008FF65; { distingush keyboard from PB } + XF86XK_MenuPB = $1008FF66; { distinuish PB from keyboard } + XF86XK_MySites = $1008FF67; { Favourites } + XF86XK_New = $1008FF68; { New (folder, document... } + XF86XK_News = $1008FF69; { News } + XF86XK_OfficeHome = $1008FF6A; { Office home (old Staroffice)} + XF86XK_Open = $1008FF6B; { Open } + XF86XK_Option = $1008FF6C; { ?? } + XF86XK_Paste = $1008FF6D; { Paste } + XF86XK_Phone = $1008FF6E; { Launch phone; dial number } + XF86XK_Q = $1008FF70; { Compaq's Q - don't use } + XF86XK_Reply = $1008FF72; { Reply e.g., mail } + XF86XK_Reload = $1008FF73; { Reload web page, file, etc. } + XF86XK_RotateWindows = $1008FF74; { Rotate windows e.g. xrandr } + XF86XK_RotationPB = $1008FF75; { don't use } + XF86XK_RotationKB = $1008FF76; { don't use } + XF86XK_Save = $1008FF77; { Save (file, document, state } + XF86XK_ScrollUp = $1008FF78; { Scroll window/contents up } + XF86XK_ScrollDown = $1008FF79; { Scrool window/contentd down } + XF86XK_ScrollClick = $1008FF7A; { Use XKB mousekeys instead } + XF86XK_Send = $1008FF7B; { Send mail, file, object } + XF86XK_Spell = $1008FF7C; { Spell checker } + XF86XK_SplitScreen = $1008FF7D; { Split window or screen } + XF86XK_Support = $1008FF7E; { Get support (??) } + XF86XK_TaskPane = $1008FF7F; { Show tasks } + XF86XK_Terminal = $1008FF80; { Launch terminal emulator } + XF86XK_Tools = $1008FF81; { toolbox of desktop/app. } + XF86XK_Travel = $1008FF82; { ?? } + XF86XK_UserPB = $1008FF84; { ?? } + XF86XK_User1KB = $1008FF85; { ?? } + XF86XK_User2KB = $1008FF86; { ?? } + XF86XK_Video = $1008FF87; { Launch video player } + XF86XK_WheelButton = $1008FF88; { button from a mouse wheel } + XF86XK_Word = $1008FF89; { Launch word processor } + XF86XK_Xfer = $1008FF8A; + XF86XK_ZoomIn = $1008FF8B; { zoom in view, map, etc. } + XF86XK_ZoomOut = $1008FF8C; { zoom out view, map, etc. } + + XF86XK_Away = $1008FF8D; { mark yourself as away } + XF86XK_Messenger = $1008FF8E; { as in instant messaging } + XF86XK_WebCam = $1008FF8F; { Launch web camera app. } + XF86XK_MailForward = $1008FF90; { Forward in mail } + XF86XK_Pictures = $1008FF91; { Show pictures } + XF86XK_Music = $1008FF92; { Launch music application } + + XF86XK_Battery = $1008FF93; { Display battery information } + XF86XK_Bluetooth = $1008FF94; { Enable/disable Bluetooth } + XF86XK_WLAN = $1008FF95; { Enable/disable WLAN } + XF86XK_UWB = $1008FF96; { Enable/disable UWB } + + XF86XK_AudioForward = $1008FF97; { fast-forward audio track } + XF86XK_AudioRepeat = $1008FF98; { toggle repeat mode } + XF86XK_AudioRandomPlay = $1008FF99; { toggle shuffle mode } + XF86XK_Subtitle = $1008FF9A; { cycle through subtitle } + XF86XK_AudioCycleTrack = $1008FF9B; { cycle through audio tracks } + XF86XK_CycleAngle = $1008FF9C; { cycle through angles } + XF86XK_FrameBack = $1008FF9D; { video: go one frame back } + XF86XK_FrameForward = $1008FF9E; { video: go one frame forward } + XF86XK_Time = $1008FF9F; { display, or shows an entry for time seeking } + XF86XK_Select = $1008FFA0; { Select button on joypads and remotes } + XF86XK_View = $1008FFA1; { Show a view options/properties } + XF86XK_TopMenu = $1008FFA2; { Go to a top-level menu in a video } + + XF86XK_Red = $1008FFA3; { Red button } + XF86XK_Green = $1008FFA4; { Green button } + XF86XK_Yellow = $1008FFA5; { Yellow button } + XF86XK_Blue = $1008FFA6; { Blue button } + + XF86XK_Suspend = $1008FFA7; { Sleep to RAM } + XF86XK_Hibernate = $1008FFA8; { Sleep to disk } + XF86XK_TouchpadToggle = $1008FFA9; { Toggle between touchpad/trackstick } + XF86XK_TouchpadOn = $1008FFB0; { The touchpad got switched on } + XF86XK_TouchpadOff = $1008FFB1; { The touchpad got switched off } + + XF86XK_AudioMicMute = $1008FFB2; { Mute the Mic from the system } + + XF86XK_Switch_VT_1 = $1008FE01; + XF86XK_Switch_VT_2 = $1008FE02; + XF86XK_Switch_VT_3 = $1008FE03; + XF86XK_Switch_VT_4 = $1008FE04; + XF86XK_Switch_VT_5 = $1008FE05; + XF86XK_Switch_VT_6 = $1008FE06; + XF86XK_Switch_VT_7 = $1008FE07; + XF86XK_Switch_VT_8 = $1008FE08; + XF86XK_Switch_VT_9 = $1008FE09; + XF86XK_Switch_VT_10 = $1008FE0A; + XF86XK_Switch_VT_11 = $1008FE0B; + XF86XK_Switch_VT_12 = $1008FE0C; + + XF86XK_Ungrab = $1008FE20; { force ungrab } + XF86XK_ClearGrab = $1008FE21; { kill application with grab } + XF86XK_Next_VMode = $1008FE22; { next video mode available } + XF86XK_Prev_VMode = $1008FE23; { prev. video mode available } + XF86XK_LogWindowTree = $1008FE24; { print window tree to log } + XF86XK_LogGrabInfo = $1008FE25; { print all active grabs to log } + + // Copied from gdktypes.inc in Lazarus + GDK_SHIFT_MASK = 1 shl 0; + GDK_LOCK_MASK = 1 shl 1; + GDK_CONTROL_MASK = 1 shl 2; + GDK_MOD1_MASK = 1 shl 3; + GDK_MOD2_MASK = 1 shl 4; + GDK_MOD3_MASK = 1 shl 5; + GDK_MOD4_MASK = 1 shl 6; + GDK_MOD5_MASK = 1 shl 7; + GDK_BUTTON1_MASK = 1 shl 8; + GDK_BUTTON2_MASK = 1 shl 9; + GDK_BUTTON3_MASK = 1 shl 10; + GDK_BUTTON4_MASK = 1 shl 11; + GDK_BUTTON5_MASK = 1 shl 12; + + // Copied from gdkevents.inc in Lazarus + GDK_KEY_PRESS = 8; + {$ENDIF} + + // Keyboard codes copied from this Chromium source unit : + // ui/events/keycodes/keyboard_codes_posix.h. + VKEY_BACK = $08; + VKEY_TAB = $09; + VKEY_BACKTAB = $0A; + VKEY_CLEAR = $0C; + VKEY_RETURN = $0D; + VKEY_SHIFT = $10; + VKEY_CONTROL = $11; + VKEY_MENU = $12; + VKEY_PAUSE = $13; + VKEY_CAPITAL = $14; + VKEY_KANA = $15; + VKEY_HANGUL = $15; + VKEY_JUNJA = $17; + VKEY_FINAL = $18; + VKEY_HANJA = $19; + VKEY_KANJI = $19; + VKEY_ESCAPE = $1B; + VKEY_CONVERT = $1C; + VKEY_NONCONVERT = $1D; + VKEY_ACCEPT = $1E; + VKEY_MODECHANGE = $1F; + VKEY_SPACE = $20; + VKEY_PRIOR = $21; + VKEY_NEXT = $22; + VKEY_END = $23; + VKEY_HOME = $24; + VKEY_LEFT = $25; + VKEY_UP = $26; + VKEY_RIGHT = $27; + VKEY_DOWN = $28; + VKEY_SELECT = $29; + VKEY_PRINT = $2A; + VKEY_EXECUTE = $2B; + VKEY_SNAPSHOT = $2C; + VKEY_INSERT = $2D; + VKEY_DELETE = $2E; + VKEY_HELP = $2F; + VKEY_0 = $30; + VKEY_1 = $31; + VKEY_2 = $32; + VKEY_3 = $33; + VKEY_4 = $34; + VKEY_5 = $35; + VKEY_6 = $36; + VKEY_7 = $37; + VKEY_8 = $38; + VKEY_9 = $39; + VKEY_A = $41; + VKEY_B = $42; + VKEY_C = $43; + VKEY_D = $44; + VKEY_E = $45; + VKEY_F = $46; + VKEY_G = $47; + VKEY_H = $48; + VKEY_I = $49; + VKEY_J = $4A; + VKEY_K = $4B; + VKEY_L = $4C; + VKEY_M = $4D; + VKEY_N = $4E; + VKEY_O = $4F; + VKEY_P = $50; + VKEY_Q = $51; + VKEY_R = $52; + VKEY_S = $53; + VKEY_T = $54; + VKEY_U = $55; + VKEY_V = $56; + VKEY_W = $57; + VKEY_X = $58; + VKEY_Y = $59; + VKEY_Z = $5A; + VKEY_LWIN = $5B; + VKEY_COMMAND = VKEY_LWIN; + VKEY_RWIN = $5C; + VKEY_APPS = $5D; + VKEY_SLEEP = $5F; + VKEY_NUMPAD0 = $60; + VKEY_NUMPAD1 = $61; + VKEY_NUMPAD2 = $62; + VKEY_NUMPAD3 = $63; + VKEY_NUMPAD4 = $64; + VKEY_NUMPAD5 = $65; + VKEY_NUMPAD6 = $66; + VKEY_NUMPAD7 = $67; + VKEY_NUMPAD8 = $68; + VKEY_NUMPAD9 = $69; + VKEY_MULTIPLY = $6A; + VKEY_ADD = $6B; + VKEY_SEPARATOR = $6C; + VKEY_SUBTRACT = $6D; + VKEY_DECIMAL = $6E; + VKEY_DIVIDE = $6F; + VKEY_F1 = $70; + VKEY_F2 = $71; + VKEY_F3 = $72; + VKEY_F4 = $73; + VKEY_F5 = $74; + VKEY_F6 = $75; + VKEY_F7 = $76; + VKEY_F8 = $77; + VKEY_F9 = $78; + VKEY_F10 = $79; + VKEY_F11 = $7A; + VKEY_F12 = $7B; + VKEY_F13 = $7C; + VKEY_F14 = $7D; + VKEY_F15 = $7E; + VKEY_F16 = $7F; + VKEY_F17 = $80; + VKEY_F18 = $81; + VKEY_F19 = $82; + VKEY_F20 = $83; + VKEY_F21 = $84; + VKEY_F22 = $85; + VKEY_F23 = $86; + VKEY_F24 = $87; + VKEY_NUMLOCK = $90; + VKEY_SCROLL = $91; + VKEY_LSHIFT = $A0; + VKEY_RSHIFT = $A1; + VKEY_LCONTROL = $A2; + VKEY_RCONTROL = $A3; + VKEY_LMENU = $A4; + VKEY_RMENU = $A5; + VKEY_BROWSER_BACK = $A6; + VKEY_BROWSER_FORWARD = $A7; + VKEY_BROWSER_REFRESH = $A8; + VKEY_BROWSER_STOP = $A9; + VKEY_BROWSER_SEARCH = $AA; + VKEY_BROWSER_FAVORITES = $AB; + VKEY_BROWSER_HOME = $AC; + VKEY_VOLUME_MUTE = $AD; + VKEY_VOLUME_DOWN = $AE; + VKEY_VOLUME_UP = $AF; + VKEY_MEDIA_NEXT_TRACK = $B0; + VKEY_MEDIA_PREV_TRACK = $B1; + VKEY_MEDIA_STOP = $B2; + VKEY_MEDIA_PLAY_PAUSE = $B3; + VKEY_MEDIA_LAUNCH_MAIL = $B4; + VKEY_MEDIA_LAUNCH_MEDIA_SELECT = $B5; + VKEY_MEDIA_LAUNCH_APP1 = $B6; + VKEY_MEDIA_LAUNCH_APP2 = $B7; + VKEY_OEM_1 = $BA; + VKEY_OEM_PLUS = $BB; + VKEY_OEM_COMMA = $BC; + VKEY_OEM_MINUS = $BD; + VKEY_OEM_PERIOD = $BE; + VKEY_OEM_2 = $BF; + VKEY_OEM_3 = $C0; + VKEY_OEM_4 = $DB; + VKEY_OEM_5 = $DC; + VKEY_OEM_6 = $DD; + VKEY_OEM_7 = $DE; + VKEY_OEM_8 = $DF; + VKEY_OEM_102 = $E2; + VKEY_OEM_103 = $E3; + VKEY_OEM_104 = $E4; + VKEY_PROCESSKEY = $E5; + VKEY_PACKET = $E7; + VKEY_DBE_SBCSCHAR = $F3; + VKEY_DBE_DBCSCHAR = $F4; + VKEY_ATTN = $F6; + VKEY_CRSEL = $F7; + VKEY_EXSEL = $F8; + VKEY_EREOF = $F9; + VKEY_PLAY = $FA; + VKEY_ZOOM = $FB; + VKEY_NONAME = $FC; + VKEY_PA1 = $FD; + VKEY_OEM_CLEAR = $FE; + VKEY_UNKNOWN = 0; + VKEY_WLAN = $97; + VKEY_POWER = $98; + VKEY_BRIGHTNESS_DOWN = $D8; + VKEY_BRIGHTNESS_UP = $D9; + VKEY_KBD_BRIGHTNESS_DOWN = $DA; + VKEY_KBD_BRIGHTNESS_UP = $E8; + VKEY_ALTGR = $E1; + VKEY_COMPOSE = $E6; + + // kHardwareCodeToGDKKeyval is defined in this CEF source unit : + // tests/cefclient/browser/browser_window_osr_gtk.cc + kHardwareCodeToGDKKeyval : array[0..116] of integer = ( + 0, // 0x00: + 0, // 0x01: + 0, // 0x02: + 0, // 0x03: + 0, // 0x04: + 0, // 0x05: + 0, // 0x06: + 0, // 0x07: + 0, // 0x08: + 0, // 0x09: GDK_Escape + GDK_1, // 0x0A: GDK_1 + GDK_2, // 0x0B: GDK_2 + GDK_3, // 0x0C: GDK_3 + GDK_4, // 0x0D: GDK_4 + GDK_5, // 0x0E: GDK_5 + GDK_6, // 0x0F: GDK_6 + GDK_7, // 0x10: GDK_7 + GDK_8, // 0x11: GDK_8 + GDK_9, // 0x12: GDK_9 + GDK_0, // 0x13: GDK_0 + GDK_minus, // 0x14: GDK_minus + GDK_equal, // 0x15: GDK_equal + 0, // 0x16: GDK_BackSpace + 0, // 0x17: GDK_Tab + GDK_q, // 0x18: GDK_q + GDK_w, // 0x19: GDK_w + GDK_e, // 0x1A: GDK_e + GDK_r, // 0x1B: GDK_r + GDK_t, // 0x1C: GDK_t + GDK_y, // 0x1D: GDK_y + GDK_u, // 0x1E: GDK_u + GDK_i, // 0x1F: GDK_i + GDK_o, // 0x20: GDK_o + GDK_p, // 0x21: GDK_p + GDK_bracketleft, // 0x22: GDK_bracketleft + GDK_bracketright, // 0x23: GDK_bracketright + 0, // 0x24: GDK_Return + 0, // 0x25: GDK_Control_L + GDK_a, // 0x26: GDK_a + GDK_s, // 0x27: GDK_s + GDK_d, // 0x28: GDK_d + GDK_f, // 0x29: GDK_f + GDK_g, // 0x2A: GDK_g + GDK_h, // 0x2B: GDK_h + GDK_j, // 0x2C: GDK_j + GDK_k, // 0x2D: GDK_k + GDK_l, // 0x2E: GDK_l + GDK_semicolon, // 0x2F: GDK_semicolon + GDK_apostrophe, // 0x30: GDK_apostrophe + GDK_grave, // 0x31: GDK_grave + 0, // 0x32: GDK_Shift_L + GDK_backslash, // 0x33: GDK_backslash + GDK_z, // 0x34: GDK_z + GDK_x, // 0x35: GDK_x + GDK_c, // 0x36: GDK_c + GDK_v, // 0x37: GDK_v + GDK_b, // 0x38: GDK_b + GDK_n, // 0x39: GDK_n + GDK_m, // 0x3A: GDK_m + GDK_comma, // 0x3B: GDK_comma + GDK_period, // 0x3C: GDK_period + GDK_slash, // 0x3D: GDK_slash + 0, // 0x3E: GDK_Shift_R + 0, // 0x3F: + 0, // 0x40: + 0, // 0x41: + 0, // 0x42: + 0, // 0x43: + 0, // 0x44: + 0, // 0x45: + 0, // 0x46: + 0, // 0x47: + 0, // 0x48: + 0, // 0x49: + 0, // 0x4A: + 0, // 0x4B: + 0, // 0x4C: + 0, // 0x4D: + 0, // 0x4E: + 0, // 0x4F: + 0, // 0x50: + 0, // 0x51: + 0, // 0x52: + 0, // 0x53: + 0, // 0x54: + 0, // 0x55: + 0, // 0x56: + 0, // 0x57: + 0, // 0x58: + 0, // 0x59: + 0, // 0x5A: + 0, // 0x5B: + 0, // 0x5C: + 0, // 0x5D: + 0, // 0x5E: + 0, // 0x5F: + 0, // 0x60: + 0, // 0x61: + 0, // 0x62: + 0, // 0x63: + 0, // 0x64: + 0, // 0x65: + 0, // 0x66: + 0, // 0x67: + 0, // 0x68: + 0, // 0x69: + 0, // 0x6A: + 0, // 0x6B: + 0, // 0x6C: + 0, // 0x6D: + 0, // 0x6E: + 0, // 0x6F: + 0, // 0x70: + 0, // 0x71: + 0, // 0x72: + GDK_Super_L, // 0x73: GDK_Super_L + GDK_Super_R // 0x74: GDK_Super_R + ); +{$ENDIF} + +implementation + +end. diff --git a/source/uCEFLinuxFunctions.pas b/source/uCEFLinuxFunctions.pas new file mode 100644 index 00000000..3a863c2f --- /dev/null +++ b/source/uCEFLinuxFunctions.pas @@ -0,0 +1,640 @@ +// ************************************************************************ +// ***************************** CEF4Delphi ******************************* +// ************************************************************************ +// +// CEF4Delphi is based on DCEF3 which uses CEF to embed a chromium-based +// browser in Delphi applications. +// +// The original license of DCEF3 still applies to CEF4Delphi. +// +// For more information about CEF4Delphi visit : +// https://www.briskbard.com/index.php?lang=en&pageid=cef +// +// Copyright © 2021 Salvador Diaz Fau. All rights reserved. +// +// ************************************************************************ +// ************ vvvv Original license and comments below vvvv ************* +// ************************************************************************ +(* + * Delphi Chromium Embedded 3 + * + * Usage allowed under the restrictions of the Lesser GNU General Public License + * or alternatively the restrictions of the Mozilla Public License 1.1 + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for + * the specific language governing rights and limitations under the License. + * + * Unit owner : Henri Gourvest + * Web site : http://www.progdigy.com + * Repository : http://code.google.com/p/delphichromiumembedded/ + * Group : http://groups.google.com/group/delphichromiumembedded + * + * Embarcadero Technologies, Inc is not permitted to use or redistribute + * this source code without explicit permission. + * + *) + +unit uCEFLinuxFunctions; + +{$IFDEF FPC} + {$MODE OBJFPC}{$H+} +{$ENDIF} + +{$IFNDEF CPUX64}{$ALIGN ON}{$ENDIF} +{$MINENUMSIZE 4} + +{$I cef.inc} + +interface + +uses + {$IFDEF LINUX} + {$IFDEF FPC} + ctypes, keysym, xf86keysym, x, xlib, + {$IFDEF LCLGTK2}gtk2, glib2, gdk2, gtk2proc, gtk2int, Gtk2Def, gdk2x, Gtk2Extra,{$ENDIF} + {$ENDIF} + {$ENDIF} + uCEFLinuxTypes, uCEFTypes; + +{$IFDEF LINUX} +procedure GdkEventKeyToCEFKeyEvent(GdkEvent: PGdkEventKey; var aCEFKeyEvent : TCEFKeyEvent); +function KeyboardCodeFromXKeysym(keysym : uint32) : integer; +function GetCefStateModifiers(state : uint32) : integer; +function GdkEventToWindowsKeyCode(Event: PGdkEventKey) : integer; +function GetWindowsKeyCodeWithoutLocation(key_code : integer) : integer; +function GetControlCharacter(windows_key_code : integer; shift : boolean) : integer; +{$IFDEF FMX} +function gdk_keyval_to_unicode(keyval: guint): guint32; cdecl; external 'libgdk-3.so'; +function g_signal_connect_data(instance: gpointer; detailed_signal: Pgchar; c_handler: TGCallback; data: gpointer; destroy_data: TGClosureNotify; connect_flags: TGConnectFlags): gulong; cdecl; external 'libgobject-2.0.so'; +function g_signal_connect(instance: gpointer; detailed_signal: Pgchar; c_handler: TGCallback; data: gpointer): gulong; overload; +function g_signal_connect(instance: gpointer; const detailed_signal: AnsiString; c_handler: TGCallback; data: gpointer): gulong; overload; +{$ENDIF} +{$IFDEF FPC} +procedure ShowX11Message(const aMessage : string); +{$ENDIF}{$ENDIF} + +implementation + +uses + {$IFDEF DELPHI16_UP} + System.SysUtils, + {$ELSE} + SysUtils, + {$ENDIF} + uCEFLinuxConstants, uCEFConstants; + +{$IFDEF LINUX} +function KeyboardCodeFromXKeysym(keysym : uint32) : integer; +begin + case keysym of + XK_BackSpace: + Result := VKEY_BACK; + XK_Delete, + XK_KP_Delete: + Result := VKEY_DELETE; + XK_Tab, + XK_KP_Tab, + XK_ISO_Left_Tab, + XK_3270_BackTab: + Result := VKEY_TAB; + XK_Linefeed, + XK_Return, + XK_KP_Enter, + XK_ISO_Enter: + Result := VKEY_Return; + XK_Clear, + XK_KP_Begin: + Result := VKEY_CLEAR; + XK_KP_Space, + XK_space: + Result := VKEY_SPACE; + XK_Home, + XK_KP_Home: + Result := VKEY_HOME; + XK_End, + XK_KP_End: + Result := VKEY_END; + XK_Page_Up, + XK_KP_Page_Up: + Result := VKEY_PRIOR; + XK_Page_Down, + XK_KP_Page_Down: + Result := VKEY_NEXT; + XK_Left, + XK_KP_Left: + Result := VKEY_LEFT; + XK_Right, + XK_KP_Right: + Result := VKEY_RIGHT; + XK_Down, + XK_KP_Down: + Result := VKEY_DOWN; + XK_Up, + XK_KP_Up: + Result := VKEY_UP; + XK_Escape: + Result := VKEY_ESCAPE; + XK_Kana_Lock, + XK_Kana_Shift: + Result := VKEY_KANA; + XK_Hangul: + Result := VKEY_HANGUL; + XK_Hangul_Hanja: + Result := VKEY_HANJA; + XK_Kanji: + Result := VKEY_KANJI; + XK_Henkan: + Result := VKEY_CONVERT; + XK_Muhenkan: + Result := VKEY_NONCONVERT; + XK_Zenkaku_Hankaku: + Result := VKEY_DBE_DBCSCHAR; + XKc_A, + XK_a: + Result := VKEY_A; + XKc_B, + XK_b: + Result := VKEY_B; + XKc_C, + XK_c: + Result := VKEY_C; + XKc_D, + XK_d: + Result := VKEY_D; + XKc_E, + XK_e: + Result := VKEY_E; + XKc_F, + XK_f: + Result := VKEY_F; + XKc_G, + XK_g: + Result := VKEY_G; + XKc_H, + XK_h: + Result := VKEY_H; + XKc_I, + XK_i: + Result := VKEY_I; + XKc_J, + XK_j: + Result := VKEY_J; + XKc_K, + XK_k: + Result := VKEY_K; + XKc_L, + XK_l: + Result := VKEY_L; + XKc_M, + XK_m: + Result := VKEY_M; + XKc_N, + XK_n: + Result := VKEY_N; + XKc_O, + XK_o: + Result := VKEY_O; + XKc_P, + XK_p: + Result := VKEY_P; + XKc_Q, + XK_q: + Result := VKEY_Q; + XKc_R, + XK_r: + Result := VKEY_R; + XKc_S, + XK_s: + Result := VKEY_S; + XKc_T, + XK_t: + Result := VKEY_T; + XKc_U, + XK_u: + Result := VKEY_U; + XKc_V, + XK_v: + Result := VKEY_V; + XKc_W, + XK_w: + Result := VKEY_W; + XKc_X, + XK_x: + Result := VKEY_X; + XKc_Y, + XK_y: + Result := VKEY_Y; + XKc_Z, + XK_z: + Result := VKEY_Z; + XK_0, + XK_1, + XK_2, + XK_3, + XK_4, + XK_5, + XK_6, + XK_7, + XK_8, + XK_9: + Result := VKEY_0 + (keysym - XK_0); + XK_parenright: + Result := VKEY_0; + XK_exclam: + Result := VKEY_1; + XK_at: + Result := VKEY_2; + XK_numbersign: + Result := VKEY_3; + XK_dollar: + Result := VKEY_4; + XK_percent: + Result := VKEY_5; + XK_asciicircum: + Result := VKEY_6; + XK_ampersand: + Result := VKEY_7; + XK_asterisk: + Result := VKEY_8; + XK_parenleft: + Result := VKEY_9; + XK_KP_0, + XK_KP_1, + XK_KP_2, + XK_KP_3, + XK_KP_4, + XK_KP_5, + XK_KP_6, + XK_KP_7, + XK_KP_8, + XK_KP_9: + Result := VKEY_NUMPAD0 + (keysym - XK_KP_0); + XK_multiply, + XK_KP_Multiply: + Result := VKEY_MULTIPLY; + XK_KP_Add: + Result := VKEY_ADD; + XK_KP_Separator: + Result := VKEY_SEPARATOR; + XK_KP_Subtract: + Result := VKEY_SUBTRACT; + XK_KP_Decimal: + Result := VKEY_DECIMAL; + XK_KP_Divide: + Result := VKEY_DIVIDE; + XK_KP_Equal, + XK_equal, + XK_plus: + Result := VKEY_OEM_PLUS; + XK_comma, + XK_less: + Result := VKEY_OEM_COMMA; + XK_minus, + XK_underscore: + Result := VKEY_OEM_MINUS; + XK_greater, + XK_period: + Result := VKEY_OEM_PERIOD; + XK_colon, + XK_semicolon: + Result := VKEY_OEM_1; + XK_question, + XK_slash: + Result := VKEY_OEM_2; + XK_asciitilde, + XK_quoteleft: + Result := VKEY_OEM_3; + XK_bracketleft, + XK_braceleft: + Result := VKEY_OEM_4; + XK_backslash, + XK_bar: + Result := VKEY_OEM_5; + XK_bracketright, + XK_braceright: + Result := VKEY_OEM_6; + XK_quoteright, + XK_quotedbl: + Result := VKEY_OEM_7; + XK_ISO_Level5_Shift: + Result := VKEY_OEM_8; + XK_Shift_L, + XK_Shift_R: + Result := VKEY_SHIFT; + XK_Control_L, + XK_Control_R: + Result := VKEY_CONTROL; + XK_Meta_L, + XK_Meta_R, + XK_Alt_L, + XK_Alt_R: + Result := VKEY_MENU; + XK_ISO_Level3_Shift: + Result := VKEY_ALTGR; + XK_Multi_key: + Result := VKEY_COMPOSE; + XK_Pause: + Result := VKEY_PAUSE; + XK_Caps_Lock: + Result := VKEY_CAPITAL; + XK_Num_Lock: + Result := VKEY_NUMLOCK; + XK_Scroll_Lock: + Result := VKEY_SCROLL; + XK_Select: + Result := VKEY_SELECT; + XK_Print: + Result := VKEY_PRINT; + XK_Execute: + Result := VKEY_EXECUTE; + XK_Insert, + XK_KP_Insert: + Result := VKEY_INSERT; + XK_Help: + Result := VKEY_HELP; + XK_Super_L: + Result := VKEY_LWIN; + XK_Super_R: + Result := VKEY_RWIN; + XK_Menu: + Result := VKEY_APPS; + XK_F1, + XK_F2, + XK_F3, + XK_F4, + XK_F5, + XK_F6, + XK_F7, + XK_F8, + XK_F9, + XK_F10, + XK_F11, + XK_F12, + XK_F13, + XK_F14, + XK_F15, + XK_F16, + XK_F17, + XK_F18, + XK_F19, + XK_F20, + XK_F21, + XK_F22, + XK_F23, + XK_F24: + Result := VKEY_F1 + (keysym - XK_F1); + XK_KP_F1, + XK_KP_F2, + XK_KP_F3, + XK_KP_F4: + Result := VKEY_F1 + (keysym - XK_KP_F1); + XK_guillemotleft, + XK_guillemotright, + XK_degree, + XK_ugrave, + XKc_Ugrave, + XK_brokenbar: + Result := VKEY_OEM_102; + XF86XK_Tools: + Result := VKEY_F13; + XF86XK_Launch5: + Result := VKEY_F14; + XF86XK_Launch6: + Result := VKEY_F15; + XF86XK_Launch7: + Result := VKEY_F16; + XF86XK_Launch8: + Result := VKEY_F17; + XF86XK_Launch9: + Result := VKEY_F18; + XF86XK_Refresh, + XF86XK_History, + XF86XK_OpenURL, + XF86XK_AddFavorite, + XF86XK_Go, + XF86XK_ZoomIn, + XF86XK_ZoomOut: + Result := VKEY_UNKNOWN; + XF86XK_Back: + Result := VKEY_BROWSER_BACK; + XF86XK_Forward: + Result := VKEY_BROWSER_FORWARD; + XF86XK_Reload: + Result := VKEY_BROWSER_REFRESH; + XF86XK_Stop: + Result := VKEY_BROWSER_STOP; + XF86XK_Search: + Result := VKEY_BROWSER_SEARCH; + XF86XK_Favorites: + Result := VKEY_BROWSER_FAVORITES; + XF86XK_HomePage: + Result := VKEY_BROWSER_HOME; + XF86XK_AudioMute: + Result := VKEY_VOLUME_MUTE; + XF86XK_AudioLowerVolume: + Result := VKEY_VOLUME_DOWN; + XF86XK_AudioRaiseVolume: + Result := VKEY_VOLUME_UP; + XF86XK_AudioNext: + Result := VKEY_MEDIA_NEXT_TRACK; + XF86XK_AudioPrev: + Result := VKEY_MEDIA_PREV_TRACK; + XF86XK_AudioStop: + Result := VKEY_MEDIA_STOP; + XF86XK_AudioPlay: + Result := VKEY_MEDIA_PLAY_PAUSE; + XF86XK_Mail: + Result := VKEY_MEDIA_LAUNCH_MAIL; + XF86XK_LaunchA: + Result := VKEY_MEDIA_LAUNCH_APP1; + XF86XK_LaunchB, + XF86XK_Calculator: + Result := VKEY_MEDIA_LAUNCH_APP2; + XF86XK_WLAN: + Result := VKEY_WLAN; + XF86XK_PowerOff: + Result := VKEY_POWER; + XF86XK_MonBrightnessDown: + Result := VKEY_BRIGHTNESS_DOWN; + XF86XK_MonBrightnessUp: + Result := VKEY_BRIGHTNESS_UP; + XF86XK_KbdBrightnessDown: + Result := VKEY_KBD_BRIGHTNESS_DOWN; + XF86XK_KbdBrightnessUp: + Result := VKEY_KBD_BRIGHTNESS_UP; + else Result := VKEY_UNKNOWN; + end; +end; + +function GetCefStateModifiers(state : uint32) : integer; +begin + Result := EVENTFLAG_NONE; + + if ((state and GDK_SHIFT_MASK) <> 0) then + Result := Result or EVENTFLAG_SHIFT_DOWN; + + if ((state and GDK_LOCK_MASK) <> 0) then + Result := Result or EVENTFLAG_CAPS_LOCK_ON; + + if ((state and GDK_CONTROL_MASK) <> 0) then + Result := Result or EVENTFLAG_CONTROL_DOWN; + + if ((state and GDK_MOD1_MASK) <> 0) then + Result := Result or EVENTFLAG_ALT_DOWN; + + if ((state and GDK_BUTTON1_MASK) <> 0) then + Result := Result or EVENTFLAG_LEFT_MOUSE_BUTTON; + + if ((state and GDK_BUTTON2_MASK) <> 0) then + Result := Result or EVENTFLAG_MIDDLE_MOUSE_BUTTON; + + if ((state and GDK_BUTTON3_MASK) <> 0) then + Result := Result or EVENTFLAG_RIGHT_MOUSE_BUTTON; +end; + +function GdkEventToWindowsKeyCode(event: PGdkEventKey) : integer; +var + windows_key_code, keyval : integer; +begin + windows_key_code := KeyboardCodeFromXKeysym(event^.keyval); + if (windows_key_code <> 0) then + begin + Result := windows_key_code; + exit; + end; + + if (event^.hardware_keycode < length(kHardwareCodeToGDKKeyval)) then + begin + keyval := kHardwareCodeToGDKKeyval[event^.hardware_keycode]; + if (keyval <> 0) then + begin + Result := KeyboardCodeFromXKeysym(keyval); + exit; + end; + end; + + Result := KeyboardCodeFromXKeysym(event^.keyval); +end; + +function GetWindowsKeyCodeWithoutLocation(key_code : integer) : integer; +begin + case key_code of + VKEY_LCONTROL, VKEY_RCONTROL : Result := VKEY_CONTROL; + VKEY_LSHIFT, VKEY_RSHIFT : Result := VKEY_SHIFT; + VKEY_LMENU, VKEY_RMENU : Result := VKEY_MENU; + else Result := key_code; + end; +end; + +function GetControlCharacter(windows_key_code : integer; shift : boolean) : integer; +begin + if (windows_key_code >= VKEY_A) and (windows_key_code <= VKEY_Z) then + Result := windows_key_code - VKEY_A + 1 + else + if shift then + case windows_key_code of + VKEY_2 : Result := 0; + VKEY_6 : Result := $1E; + VKEY_OEM_MINUS : Result := $1F; + else Result := 0; + end + else + case windows_key_code of + VKEY_OEM_4 : Result := $1B; + VKEY_OEM_5 : Result := $1C; + VKEY_OEM_6 : Result := $1D; + VKEY_RETURN : Result := $0A; + else Result := 0; + end; +end; + +procedure GdkEventKeyToCEFKeyEvent(GdkEvent: PGdkEventKey; var aCEFKeyEvent : TCEFKeyEvent); +var + windows_key_code : integer; +begin + windows_key_code := GdkEventToWindowsKeyCode(GdkEvent); + aCEFKeyEvent.windows_key_code := GetWindowsKeyCodeWithoutLocation(windows_key_code); + aCEFKeyEvent.native_key_code := GdkEvent^.hardware_keycode; + aCEFKeyEvent.modifiers := GetCefStateModifiers(GdkEvent^.state); + aCEFKeyEvent.focus_on_editable_field := 0; + + if (GdkEvent^.keyval >= GDK_KP_Space) and (GdkEvent^.keyval <= GDK_KP_9) then + aCEFKeyEvent.modifiers := aCEFKeyEvent.modifiers or EVENTFLAG_IS_KEY_PAD; + + aCEFKeyEvent.is_system_key := ord((aCEFKeyEvent.modifiers and EVENTFLAG_ALT_DOWN) <> 0); + + if (windows_key_code = VKEY_RETURN) then + aCEFKeyEvent.unmodified_character := #13 + else + aCEFKeyEvent.unmodified_character := WideChar(gdk_keyval_to_unicode(GdkEvent^.keyval)); + + if ((aCEFKeyEvent.modifiers and EVENTFLAG_CONTROL_DOWN) <> 0) then + aCEFKeyEvent.character := WideChar(GetControlCharacter(windows_key_code, ((aCEFKeyEvent.modifiers and EVENTFLAG_SHIFT_DOWN) <> 0))) + else + aCEFKeyEvent.character := aCEFKeyEvent.unmodified_character; +end; + +{$IFDEF FMX} +function g_signal_connect(instance: gpointer; detailed_signal: Pgchar; c_handler: TGCallback; data: gpointer): gulong; +begin + Result := g_signal_connect_data(instance, detailed_signal, c_handler, data, nil, TGConnectFlags(0)); +end; + +function g_signal_connect(instance: gpointer; const detailed_signal: AnsiString; c_handler: TGCallback; data: gpointer): gulong; +begin + Result := g_signal_connect(instance, @detailed_signal[1], c_handler, data); +end; +{$ENDIF} + +{$IFDEF FPC} +// This function is almost an identical copy of "ModalShowX11Window" available +// at https://wiki.lazarus.freepascal.org/X11 +procedure ShowX11Message(const aMessage : string); +var + TempDisplay : PDisplay; + TempWindow : TWindow; + TempEvent : TXEvent; + TempMessage : PChar; + TempScreen : cint; +begin + TempMessage := PChar(trim(copy(aMessage, 1, pred(pos(#13, aMessage))))); + TempDisplay := XOpenDisplay(nil); + + if (TempDisplay = nil) then + begin + WriteLn(aMessage); + exit; + end; + + TempScreen := DefaultScreen(TempDisplay); + TempWindow := XCreateSimpleWindow(TempDisplay, + RootWindow(TempDisplay, TempScreen), + 10, 10, 200, 100, 1, + BlackPixel(TempDisplay, TempScreen), + WhitePixel(TempDisplay, TempScreen)); + + XSelectInput(TempDisplay, TempWindow, ExposureMask or KeyPressMask); + + XMapWindow(TempDisplay, TempWindow); + + while (True) do + begin + XNextEvent(TempDisplay, @TempEvent); + + if (TempEvent._type = Expose) then + XDrawString(TempDisplay, + TempWindow, + DefaultGC(TempDisplay, TempScreen), + 40, 50, + TempMessage, + strlen(TempMessage)); + + if (TempEvent._type = KeyPress) then Break; + end; + + XCloseDisplay(TempDisplay); +end; +{$ENDIF}{$ENDIF} + +end. diff --git a/source/uCEFLinuxTypes.pas b/source/uCEFLinuxTypes.pas new file mode 100644 index 00000000..1e06422b --- /dev/null +++ b/source/uCEFLinuxTypes.pas @@ -0,0 +1,130 @@ +// ************************************************************************ +// ***************************** CEF4Delphi ******************************* +// ************************************************************************ +// +// CEF4Delphi is based on DCEF3 which uses CEF to embed a chromium-based +// browser in Delphi applications. +// +// The original license of DCEF3 still applies to CEF4Delphi. +// +// For more information about CEF4Delphi visit : +// https://www.briskbard.com/index.php?lang=en&pageid=cef +// +// Copyright © 2021 Salvador Diaz Fau. All rights reserved. +// +// ************************************************************************ +// ************ vvvv Original license and comments below vvvv ************* +// ************************************************************************ +(* + * Delphi Chromium Embedded 3 + * + * Usage allowed under the restrictions of the Lesser GNU General Public License + * or alternatively the restrictions of the Mozilla Public License 1.1 + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for + * the specific language governing rights and limitations under the License. + * + * Unit owner : Henri Gourvest + * Web site : http://www.progdigy.com + * Repository : http://code.google.com/p/delphichromiumembedded/ + * Group : http://groups.google.com/group/delphichromiumembedded + * + * Embarcadero Technologies, Inc is not permitted to use or redistribute + * this source code without explicit permission. + * + *) + +unit uCEFLinuxTypes; + +interface + +{$IFDEF LINUX} +{$IFDEF FMX} +type + // https://developer.gnome.org/glib/stable/glib-Basic-Types.htm + gboolean = longbool; + gpointer = pointer; + gconstpointer = pointer; + gchar = ansichar; + guchar = byte; + gint = integer; + guint = cardinal; + gshort = smallint; + gushort = word; + gulong = uint64; + glong = int64; + gint8 = shortint; + guint8 = byte; + gint16 = int16; + guint16 = uint16; + gint32 = int32; + guint32 = uint32; + gint64 = int64; + guint64 = uint64; + gfloat = single; + gdouble = double; + gsize = NativeUInt; + gssize = NativeInt; + goffset = gint64; + gintptr = NativeInt; + guintptr = NativeUInt; + Pgchar = ^gchar; + PGData = pointer; + PGClosure = pointer; + TGConnectFlags = integer; + GType = gulong; + PGtkWidget = pointer; + TGdkEventType = int32; + PGdkEventKey = ^TGdkEventKey; + + PGTypeClass = ^TGTypeClass; + TGTypeClass = record + g_type : GType; + end; + + TGTypeInstance = record + g_class : PGTypeClass; + end; + + TGObject = record + g_type_instance : TGTypeInstance; + ref_count : guint; + qdata : PGData; + end; + + TGdkDrawable = record + parent_instance : TGObject; + end; + + PGdkWindow = ^TGdkWindow; + TGdkWindow = TGdkDrawable; + TGdkEventKey = record + _type : TGdkEventType; + window : PGdkWindow; + send_event : gint8; + time : guint32; + state : guint; + keyval : guint; + length : gint; + _string : Pgchar; + hardware_keycode : guint16; + group : guint8; + end; + + TGCallBackProcedure = procedure; + TGCallback = procedure (para1: TGCallBackProcedure); cdecl; + TGClosureNotify = procedure(data: gpointer; closure: PGClosure); cdecl; + + TRGBQuad = record + rgbBlue : Byte; + rgbGreen : Byte; + rgbRed : Byte; + rgbReserved : Byte; + end; +{$ENDIF} +{$ENDIF} + +implementation + +end. diff --git a/source/uCEFMiscFunctions.pas b/source/uCEFMiscFunctions.pas index f43dccce..18b5f2ed 100644 --- a/source/uCEFMiscFunctions.pas +++ b/source/uCEFMiscFunctions.pas @@ -79,31 +79,6 @@ const NTDLL = 'ntdll.dll'; User32DLL = 'User32.dll'; -type - TOSVersionInfoEx = record - dwOSVersionInfoSize: DWORD; - dwMajorVersion: DWORD; - dwMinorVersion: DWORD; - dwBuildNumber: DWORD; - dwPlatformId: DWORD; - szCSDVersion: array[0..127] of WideChar; - wServicePackMajor: WORD; - wServicePackMinor: WORD; - wSuiteMask: WORD; - wProductType: BYTE; - wReserved:BYTE; - end; - {$IFDEF DELPHI14_UP} - TDigitizerStatus = record - IntegratedTouch : boolean; - ExternalTouch : boolean; - IntegratedPen : boolean; - ExternalPen : boolean; - MultiInput : boolean; - Ready : boolean; - end; - {$ENDIF} - function CefColorGetA(color: TCefColor): Byte; function CefColorGetR(color: TCefColor): byte; function CefColorGetG(color: TCefColor): Byte; @@ -189,7 +164,7 @@ function PathIsURLUnicode(pszPath: LPCWSTR): BOOL; stdcall; external SHLWAPIDLL {$IFNDEF DELPHI12_UP} const - GWLP_WNDPROC = GWL_WNDPROC; + GWLP_WNDPROC = GWL_WNDPROC; GWLP_HWNDPARENT = GWL_HWNDPARENT; {$IFDEF WIN64} function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: int64): int64; stdcall; external user32 name 'SetWindowLongPtrW'; @@ -312,17 +287,6 @@ function CefGetDataURI(aData : pointer; aSize : integer; const aMimeType : ustri function ValidCefWindowHandle(aHandle : TCefWindowHandle) : boolean; procedure InitializeWindowHandle(var aHandle : TCefWindowHandle); -{$IFDEF LINUX}{$IFDEF FPC}{$IFDEF LCLGTK2} -procedure GdkEventKeyToCEFKeyEvent(GdkEvent: PGdkEventKey; var aCEFKeyEvent : TCEFKeyEvent); -function KeyboardCodeFromXKeysym(keysym : cuint) : integer; -function GetCefStateModifiers(state : cuint) : integer; -function GdkEventToWindowsKeyCode(Event: PGdkEventKey) : integer; -function GetWindowsKeyCodeWithoutLocation(key_code : integer) : integer; -function GetControlCharacter(windows_key_code : integer; shift : boolean) : integer; -{$ENDIF} -procedure ShowX11Message(const aMessage : string); -{$ENDIF}{$ENDIF} - implementation uses @@ -2358,545 +2322,4 @@ begin {$ENDIF} end; -{$IFDEF LINUX}{$IFDEF FPC}{$IFDEF LCLGTK2} -function KeyboardCodeFromXKeysym(keysym : cuint) : integer; -begin - case keysym of - XK_BackSpace: - Result := VKEY_BACK; - XK_Delete, - XK_KP_Delete: - Result := VKEY_DELETE; - XK_Tab, - XK_KP_Tab, - XK_ISO_Left_Tab, - XK_3270_BackTab: - Result := VKEY_TAB; - XK_Linefeed, - XK_Return, - XK_KP_Enter, - XK_ISO_Enter: - Result := VKEY_Return; - XK_Clear, - XK_KP_Begin: - Result := VKEY_CLEAR; - XK_KP_Space, - XK_space: - Result := VKEY_SPACE; - XK_Home, - XK_KP_Home: - Result := VKEY_HOME; - XK_End, - XK_KP_End: - Result := VKEY_END; - XK_Page_Up, - XK_KP_Page_Up: - Result := VKEY_PRIOR; - XK_Page_Down, - XK_KP_Page_Down: - Result := VKEY_NEXT; - XK_Left, - XK_KP_Left: - Result := VKEY_LEFT; - XK_Right, - XK_KP_Right: - Result := VKEY_RIGHT; - XK_Down, - XK_KP_Down: - Result := VKEY_DOWN; - XK_Up, - XK_KP_Up: - Result := VKEY_UP; - XK_Escape: - Result := VKEY_ESCAPE; - XK_Kana_Lock, - XK_Kana_Shift: - Result := VKEY_KANA; - XK_Hangul: - Result := VKEY_HANGUL; - XK_Hangul_Hanja: - Result := VKEY_HANJA; - XK_Kanji: - Result := VKEY_KANJI; - XK_Henkan: - Result := VKEY_CONVERT; - XK_Muhenkan: - Result := VKEY_NONCONVERT; - XK_Zenkaku_Hankaku: - Result := VKEY_DBE_DBCSCHAR; - XKc_A, - XK_a: - Result := VKEY_A; - XKc_B, - XK_b: - Result := VKEY_B; - XKc_C, - XK_c: - Result := VKEY_C; - XKc_D, - XK_d: - Result := VKEY_D; - XKc_E, - XK_e: - Result := VKEY_E; - XKc_F, - XK_f: - Result := VKEY_F; - XKc_G, - XK_g: - Result := VKEY_G; - XKc_H, - XK_h: - Result := VKEY_H; - XKc_I, - XK_i: - Result := VKEY_I; - XKc_J, - XK_j: - Result := VKEY_J; - XKc_K, - XK_k: - Result := VKEY_K; - XKc_L, - XK_l: - Result := VKEY_L; - XKc_M, - XK_m: - Result := VKEY_M; - XKc_N, - XK_n: - Result := VKEY_N; - XKc_O, - XK_o: - Result := VKEY_O; - XKc_P, - XK_p: - Result := VKEY_P; - XKc_Q, - XK_q: - Result := VKEY_Q; - XKc_R, - XK_r: - Result := VKEY_R; - XKc_S, - XK_s: - Result := VKEY_S; - XKc_T, - XK_t: - Result := VKEY_T; - XKc_U, - XK_u: - Result := VKEY_U; - XKc_V, - XK_v: - Result := VKEY_V; - XKc_W, - XK_w: - Result := VKEY_W; - XKc_X, - XK_x: - Result := VKEY_X; - XKc_Y, - XK_y: - Result := VKEY_Y; - XKc_Z, - XK_z: - Result := VKEY_Z; - XK_0, - XK_1, - XK_2, - XK_3, - XK_4, - XK_5, - XK_6, - XK_7, - XK_8, - XK_9: - Result := VKEY_0 + (keysym - XK_0); - XK_parenright: - Result := VKEY_0; - XK_exclam: - Result := VKEY_1; - XK_at: - Result := VKEY_2; - XK_numbersign: - Result := VKEY_3; - XK_dollar: - Result := VKEY_4; - XK_percent: - Result := VKEY_5; - XK_asciicircum: - Result := VKEY_6; - XK_ampersand: - Result := VKEY_7; - XK_asterisk: - Result := VKEY_8; - XK_parenleft: - Result := VKEY_9; - XK_KP_0, - XK_KP_1, - XK_KP_2, - XK_KP_3, - XK_KP_4, - XK_KP_5, - XK_KP_6, - XK_KP_7, - XK_KP_8, - XK_KP_9: - Result := VKEY_NUMPAD0 + (keysym - XK_KP_0); - XK_multiply, - XK_KP_Multiply: - Result := VKEY_MULTIPLY; - XK_KP_Add: - Result := VKEY_ADD; - XK_KP_Separator: - Result := VKEY_SEPARATOR; - XK_KP_Subtract: - Result := VKEY_SUBTRACT; - XK_KP_Decimal: - Result := VKEY_DECIMAL; - XK_KP_Divide: - Result := VKEY_DIVIDE; - XK_KP_Equal, - XK_equal, - XK_plus: - Result := VKEY_OEM_PLUS; - XK_comma, - XK_less: - Result := VKEY_OEM_COMMA; - XK_minus, - XK_underscore: - Result := VKEY_OEM_MINUS; - XK_greater, - XK_period: - Result := VKEY_OEM_PERIOD; - XK_colon, - XK_semicolon: - Result := VKEY_OEM_1; - XK_question, - XK_slash: - Result := VKEY_OEM_2; - XK_asciitilde, - XK_quoteleft: - Result := VKEY_OEM_3; - XK_bracketleft, - XK_braceleft: - Result := VKEY_OEM_4; - XK_backslash, - XK_bar: - Result := VKEY_OEM_5; - XK_bracketright, - XK_braceright: - Result := VKEY_OEM_6; - XK_quoteright, - XK_quotedbl: - Result := VKEY_OEM_7; - XK_ISO_Level5_Shift: - Result := VKEY_OEM_8; - XK_Shift_L, - XK_Shift_R: - Result := VKEY_SHIFT; - XK_Control_L, - XK_Control_R: - Result := VKEY_CONTROL; - XK_Meta_L, - XK_Meta_R, - XK_Alt_L, - XK_Alt_R: - Result := VKEY_MENU; - XK_ISO_Level3_Shift: - Result := VKEY_ALTGR; - XK_Multi_key: - Result := VKEY_COMPOSE; - XK_Pause: - Result := VKEY_PAUSE; - XK_Caps_Lock: - Result := VKEY_CAPITAL; - XK_Num_Lock: - Result := VKEY_NUMLOCK; - XK_Scroll_Lock: - Result := VKEY_SCROLL; - XK_Select: - Result := VKEY_SELECT; - XK_Print: - Result := VKEY_PRINT; - XK_Execute: - Result := VKEY_EXECUTE; - XK_Insert, - XK_KP_Insert: - Result := VKEY_INSERT; - XK_Help: - Result := VKEY_HELP; - XK_Super_L: - Result := VKEY_LWIN; - XK_Super_R: - Result := VKEY_RWIN; - XK_Menu: - Result := VKEY_APPS; - XK_F1, - XK_F2, - XK_F3, - XK_F4, - XK_F5, - XK_F6, - XK_F7, - XK_F8, - XK_F9, - XK_F10, - XK_F11, - XK_F12, - XK_F13, - XK_F14, - XK_F15, - XK_F16, - XK_F17, - XK_F18, - XK_F19, - XK_F20, - XK_F21, - XK_F22, - XK_F23, - XK_F24: - Result := VKEY_F1 + (keysym - XK_F1); - XK_KP_F1, - XK_KP_F2, - XK_KP_F3, - XK_KP_F4: - Result := VKEY_F1 + (keysym - XK_KP_F1); - XK_guillemotleft, - XK_guillemotright, - XK_degree, - XK_ugrave, - XKc_Ugrave, - XK_brokenbar: - Result := VKEY_OEM_102; - XF86XK_Tools: - Result := VKEY_F13; - XF86XK_Launch5: - Result := VKEY_F14; - XF86XK_Launch6: - Result := VKEY_F15; - XF86XK_Launch7: - Result := VKEY_F16; - XF86XK_Launch8: - Result := VKEY_F17; - XF86XK_Launch9: - Result := VKEY_F18; - XF86XK_Refresh, - XF86XK_History, - XF86XK_OpenURL, - XF86XK_AddFavorite, - XF86XK_Go, - XF86XK_ZoomIn, - XF86XK_ZoomOut: - Result := VKEY_UNKNOWN; - XF86XK_Back: - Result := VKEY_BROWSER_BACK; - XF86XK_Forward: - Result := VKEY_BROWSER_FORWARD; - XF86XK_Reload: - Result := VKEY_BROWSER_REFRESH; - XF86XK_Stop: - Result := VKEY_BROWSER_STOP; - XF86XK_Search: - Result := VKEY_BROWSER_SEARCH; - XF86XK_Favorites: - Result := VKEY_BROWSER_FAVORITES; - XF86XK_HomePage: - Result := VKEY_BROWSER_HOME; - XF86XK_AudioMute: - Result := VKEY_VOLUME_MUTE; - XF86XK_AudioLowerVolume: - Result := VKEY_VOLUME_DOWN; - XF86XK_AudioRaiseVolume: - Result := VKEY_VOLUME_UP; - XF86XK_AudioNext: - Result := VKEY_MEDIA_NEXT_TRACK; - XF86XK_AudioPrev: - Result := VKEY_MEDIA_PREV_TRACK; - XF86XK_AudioStop: - Result := VKEY_MEDIA_STOP; - XF86XK_AudioPlay: - Result := VKEY_MEDIA_PLAY_PAUSE; - XF86XK_Mail: - Result := VKEY_MEDIA_LAUNCH_MAIL; - XF86XK_LaunchA: - Result := VKEY_MEDIA_LAUNCH_APP1; - XF86XK_LaunchB, - XF86XK_Calculator: - Result := VKEY_MEDIA_LAUNCH_APP2; - XF86XK_WLAN: - Result := VKEY_WLAN; - XF86XK_PowerOff: - Result := VKEY_POWER; - XF86XK_MonBrightnessDown: - Result := VKEY_BRIGHTNESS_DOWN; - XF86XK_MonBrightnessUp: - Result := VKEY_BRIGHTNESS_UP; - XF86XK_KbdBrightnessDown: - Result := VKEY_KBD_BRIGHTNESS_DOWN; - XF86XK_KbdBrightnessUp: - Result := VKEY_KBD_BRIGHTNESS_UP; - else Result := VKEY_UNKNOWN; - end; -end; - -function GetCefStateModifiers(state : cuint) : integer; -begin - Result := EVENTFLAG_NONE; - - if ((state and GDK_SHIFT_MASK) <> 0) then - Result := Result or EVENTFLAG_SHIFT_DOWN; - - if ((state and GDK_LOCK_MASK) <> 0) then - Result := Result or EVENTFLAG_CAPS_LOCK_ON; - - if ((state and GDK_CONTROL_MASK) <> 0) then - Result := Result or EVENTFLAG_CONTROL_DOWN; - - if ((state and GDK_MOD1_MASK) <> 0) then - Result := Result or EVENTFLAG_ALT_DOWN; - - if ((state and GDK_BUTTON1_MASK) <> 0) then - Result := Result or EVENTFLAG_LEFT_MOUSE_BUTTON; - - if ((state and GDK_BUTTON2_MASK) <> 0) then - Result := Result or EVENTFLAG_MIDDLE_MOUSE_BUTTON; - - if ((state and GDK_BUTTON3_MASK) <> 0) then - Result := Result or EVENTFLAG_RIGHT_MOUSE_BUTTON; -end; - -function GdkEventToWindowsKeyCode(event: PGdkEventKey) : integer; -var - windows_key_code, keyval : integer; -begin - windows_key_code := KeyboardCodeFromXKeysym(event^.keyval); - if (windows_key_code <> 0) then - begin - Result := windows_key_code; - exit; - end; - - if (event^.hardware_keycode < length(kHardwareCodeToGDKKeyval)) then - begin - keyval := kHardwareCodeToGDKKeyval[event^.hardware_keycode]; - if (keyval <> 0) then - begin - Result := KeyboardCodeFromXKeysym(keyval); - exit; - end; - end; - - Result := KeyboardCodeFromXKeysym(event^.keyval); -end; - -function GetWindowsKeyCodeWithoutLocation(key_code : integer) : integer; -begin - case key_code of - VKEY_LCONTROL, VKEY_RCONTROL : Result := VKEY_CONTROL; - VKEY_LSHIFT, VKEY_RSHIFT : Result := VKEY_SHIFT; - VKEY_LMENU, VKEY_RMENU : Result := VKEY_MENU; - else Result := key_code; - end; -end; - -function GetControlCharacter(windows_key_code : integer; shift : boolean) : integer; -begin - if (windows_key_code >= VKEY_A) and (windows_key_code <= VKEY_Z) then - Result := windows_key_code - VKEY_A + 1 - else - if shift then - case windows_key_code of - VKEY_2 : Result := 0; - VKEY_6 : Result := $1E; - VKEY_OEM_MINUS : Result := $1F; - else Result := 0; - end - else - case windows_key_code of - VKEY_OEM_4 : Result := $1B; - VKEY_OEM_5 : Result := $1C; - VKEY_OEM_6 : Result := $1D; - VKEY_RETURN : Result := $0A; - else Result := 0; - end; -end; - -procedure GdkEventKeyToCEFKeyEvent(GdkEvent: PGdkEventKey; var aCEFKeyEvent : TCEFKeyEvent); -var - windows_key_code : integer; -begin - windows_key_code := GdkEventToWindowsKeyCode(GdkEvent); - aCEFKeyEvent.windows_key_code := GetWindowsKeyCodeWithoutLocation(windows_key_code); - aCEFKeyEvent.native_key_code := GdkEvent^.hardware_keycode; - aCEFKeyEvent.modifiers := GetCefStateModifiers(GdkEvent^.state); - aCEFKeyEvent.focus_on_editable_field := 0; - - if (GdkEvent^.keyval >= GDK_KP_Space) and (GdkEvent^.keyval <= GDK_KP_9) then - aCEFKeyEvent.modifiers := aCEFKeyEvent.modifiers or EVENTFLAG_IS_KEY_PAD; - - aCEFKeyEvent.is_system_key := ord((aCEFKeyEvent.modifiers and EVENTFLAG_ALT_DOWN) <> 0); - - if (windows_key_code = VKEY_RETURN) then - aCEFKeyEvent.unmodified_character := #13 - else - aCEFKeyEvent.unmodified_character := WideChar(gdk_keyval_to_unicode(GdkEvent^.keyval)); - - if ((aCEFKeyEvent.modifiers and EVENTFLAG_CONTROL_DOWN) <> 0) then - aCEFKeyEvent.character := WideChar(GetControlCharacter(windows_key_code, ((aCEFKeyEvent.modifiers and EVENTFLAG_SHIFT_DOWN) <> 0))) - else - aCEFKeyEvent.character := aCEFKeyEvent.unmodified_character; -end; - -// This function is almost an identical copy of "ModalShowX11Window" available -// at https://wiki.lazarus.freepascal.org/X11 -procedure ShowX11Message(const aMessage : string); -var - TempDisplay : PDisplay; - TempWindow : TWindow; - TempEvent : TXEvent; - TempMessage : PChar; - TempScreen : cint; -begin - TempMessage := PChar(trim(copy(aMessage, 1, pred(pos(#13, aMessage))))); - TempDisplay := XOpenDisplay(nil); - - if (TempDisplay = nil) then - begin - WriteLn(aMessage); - exit; - end; - - TempScreen := DefaultScreen(TempDisplay); - TempWindow := XCreateSimpleWindow(TempDisplay, - RootWindow(TempDisplay, TempScreen), - 10, 10, 200, 100, 1, - BlackPixel(TempDisplay, TempScreen), - WhitePixel(TempDisplay, TempScreen)); - - XSelectInput(TempDisplay, TempWindow, ExposureMask or KeyPressMask); - - XMapWindow(TempDisplay, TempWindow); - - while (True) do - begin - XNextEvent(TempDisplay, @TempEvent); - - if (TempEvent._type = Expose) then - XDrawString(TempDisplay, - TempWindow, - DefaultGC(TempDisplay, TempScreen), - 40, 50, - TempMessage, - strlen(TempMessage)); - - if (TempEvent._type = KeyPress) then Break; - end; - - XCloseDisplay(TempDisplay); -end; - -{$ENDIF}{$ENDIF}{$ENDIF} - end. diff --git a/source/uCEFTypes.pas b/source/uCEFTypes.pas index 2d2c88d5..7afe4119 100644 --- a/source/uCEFTypes.pas +++ b/source/uCEFTypes.pas @@ -366,6 +366,31 @@ type ullAvailVirtual : uint64; ullAvailExtendedVirtual : uint64; end; + + TOSVersionInfoEx = record + dwOSVersionInfoSize: DWORD; + dwMajorVersion: DWORD; + dwMinorVersion: DWORD; + dwBuildNumber: DWORD; + dwPlatformId: DWORD; + szCSDVersion: array[0..127] of WideChar; + wServicePackMajor: WORD; + wServicePackMinor: WORD; + wSuiteMask: WORD; + wProductType: BYTE; + wReserved:BYTE; + end; + + {$IFDEF DELPHI14_UP} + TDigitizerStatus = record + IntegratedTouch : boolean; + ExternalTouch : boolean; + IntegratedPen : boolean; + ExternalPen : boolean; + MultiInput : boolean; + Ready : boolean; + end; + {$ENDIF} {$ENDIF} PPSingle = ^PSingle; diff --git a/update_CEF4Delphi.json b/update_CEF4Delphi.json index eb694a7b..633708b7 100644 --- a/update_CEF4Delphi.json +++ b/update_CEF4Delphi.json @@ -2,7 +2,7 @@ "UpdateLazPackages" : [ { "ForceNotify" : true, - "InternalVersion" : 242, + "InternalVersion" : 243, "Name" : "cef4delphi_lazarus.lpk", "Version" : "88.1.6.0" }