633 lines
16 KiB
C
633 lines
16 KiB
C
/////////////////////////////////////////////////////////////////////////
|
|
// $Id$
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (C) 2009 The Bochs Project
|
|
//
|
|
// This library is free software; you can redistribute it and/or
|
|
// modify it under the terms of the GNU Lesser General Public
|
|
// License as published by the Free Software Foundation; either
|
|
// version 2 of the License, or (at your option) any later version.
|
|
//
|
|
// This library is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
// Lesser General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Lesser General Public
|
|
// License along with this library; if not, write to the Free Software
|
|
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
// This file includes the rfb key definitions and keyboard mapping stuff
|
|
|
|
enum {
|
|
XK_space = 0x020,
|
|
XK_exclam,
|
|
XK_quotedbl,
|
|
XK_numbersign,
|
|
XK_dollar,
|
|
XK_percent,
|
|
XK_ampersand,
|
|
XK_apostrophe,
|
|
XK_parenleft,
|
|
XK_parenright,
|
|
XK_asterisk,
|
|
XK_plus,
|
|
XK_comma,
|
|
XK_minus,
|
|
XK_period,
|
|
XK_slash,
|
|
XK_0,
|
|
XK_1,
|
|
XK_2,
|
|
XK_3,
|
|
XK_4,
|
|
XK_5,
|
|
XK_6,
|
|
XK_7,
|
|
XK_8,
|
|
XK_9,
|
|
XK_colon,
|
|
XK_semicolon,
|
|
XK_less,
|
|
XK_equal,
|
|
XK_greater,
|
|
XK_question,
|
|
XK_at,
|
|
XK_A,
|
|
XK_B,
|
|
XK_C,
|
|
XK_D,
|
|
XK_E,
|
|
XK_F,
|
|
XK_G,
|
|
XK_H,
|
|
XK_I,
|
|
XK_J,
|
|
XK_K,
|
|
XK_L,
|
|
XK_M,
|
|
XK_N,
|
|
XK_O,
|
|
XK_P,
|
|
XK_Q,
|
|
XK_R,
|
|
XK_S,
|
|
XK_T,
|
|
XK_U,
|
|
XK_V,
|
|
XK_W,
|
|
XK_X,
|
|
XK_Y,
|
|
XK_Z,
|
|
XK_bracketleft,
|
|
XK_backslash,
|
|
XK_bracketright,
|
|
XK_asciicircum,
|
|
XK_underscore,
|
|
XK_grave,
|
|
XK_a,
|
|
XK_b,
|
|
XK_c,
|
|
XK_d,
|
|
XK_e,
|
|
XK_f,
|
|
XK_g,
|
|
XK_h,
|
|
XK_i,
|
|
XK_j,
|
|
XK_k,
|
|
XK_l,
|
|
XK_m,
|
|
XK_n,
|
|
XK_o,
|
|
XK_p,
|
|
XK_q,
|
|
XK_r,
|
|
XK_s,
|
|
XK_t,
|
|
XK_u,
|
|
XK_v,
|
|
XK_w,
|
|
XK_x,
|
|
XK_y,
|
|
XK_z,
|
|
XK_braceleft,
|
|
XK_bar,
|
|
XK_braceright,
|
|
XK_asciitilde
|
|
};
|
|
|
|
#define XK_nobreakspace 0x00a0
|
|
#define XK_exclamdown 0x00a1
|
|
#define XK_cent 0x00a2
|
|
#define XK_sterling 0x00a3
|
|
#define XK_currency 0x00a4
|
|
#define XK_yen 0x00a5
|
|
#define XK_brokenbar 0x00a6
|
|
#define XK_section 0x00a7
|
|
#define XK_diaeresis 0x00a8
|
|
#define XK_copyright 0x00a9
|
|
#define XK_ordfeminine 0x00aa
|
|
#define XK_guillemotleft 0x00ab
|
|
#define XK_notsign 0x00ac
|
|
#define XK_hyphen 0x00ad
|
|
#define XK_registered 0x00ae
|
|
#define XK_macron 0x00af
|
|
#define XK_degree 0x00b0
|
|
#define XK_plusminus 0x00b1
|
|
#define XK_twosuperior 0x00b2
|
|
#define XK_threesuperior 0x00b3
|
|
#define XK_acute 0x00b4
|
|
#define XK_mu 0x00b5
|
|
#define XK_paragraph 0x00b6
|
|
#define XK_periodcentered 0x00b7
|
|
#define XK_cedilla 0x00b8
|
|
#define XK_onesuperior 0x00b9
|
|
#define XK_masculine 0x00ba
|
|
#define XK_guillemotright 0x00bb
|
|
#define XK_onequarter 0x00bc
|
|
#define XK_onehalf 0x00bd
|
|
#define XK_threequarters 0x00be
|
|
#define XK_questiondown 0x00bf
|
|
#define XK_Agrave 0x00c0
|
|
#define XK_Aacute 0x00c1
|
|
#define XK_Acircumflex 0x00c2
|
|
#define XK_Atilde 0x00c3
|
|
#define XK_Adiaeresis 0x00c4
|
|
#define XK_Aring 0x00c5
|
|
#define XK_AE 0x00c6
|
|
#define XK_Ccedilla 0x00c7
|
|
#define XK_Egrave 0x00c8
|
|
#define XK_Eacute 0x00c9
|
|
#define XK_Ecircumflex 0x00ca
|
|
#define XK_Ediaeresis 0x00cb
|
|
#define XK_Igrave 0x00cc
|
|
#define XK_Iacute 0x00cd
|
|
#define XK_Icircumflex 0x00ce
|
|
#define XK_Idiaeresis 0x00cf
|
|
#define XK_ETH 0x00d0
|
|
#define XK_Ntilde 0x00d1
|
|
#define XK_Ograve 0x00d2
|
|
#define XK_Oacute 0x00d3
|
|
#define XK_Ocircumflex 0x00d4
|
|
#define XK_Otilde 0x00d5
|
|
#define XK_Odiaeresis 0x00d6
|
|
#define XK_multiply 0x00d7
|
|
#define XK_Oslash 0x00d8
|
|
#define XK_Ooblique 0x00d8
|
|
#define XK_Ugrave 0x00d9
|
|
#define XK_Uacute 0x00da
|
|
#define XK_Ucircumflex 0x00db
|
|
#define XK_Udiaeresis 0x00dc
|
|
#define XK_Yacute 0x00dd
|
|
#define XK_THORN 0x00de
|
|
#define XK_ssharp 0x00df
|
|
#define XK_agrave 0x00e0
|
|
#define XK_aacute 0x00e1
|
|
#define XK_acircumflex 0x00e2
|
|
#define XK_atilde 0x00e3
|
|
#define XK_adiaeresis 0x00e4
|
|
#define XK_aring 0x00e5
|
|
#define XK_ae 0x00e6
|
|
#define XK_ccedilla 0x00e7
|
|
#define XK_egrave 0x00e8
|
|
#define XK_eacute 0x00e9
|
|
#define XK_ecircumflex 0x00ea
|
|
#define XK_ediaeresis 0x00eb
|
|
#define XK_igrave 0x00ec
|
|
#define XK_iacute 0x00ed
|
|
#define XK_icircumflex 0x00ee
|
|
#define XK_idiaeresis 0x00ef
|
|
#define XK_eth 0x00f0
|
|
#define XK_ntilde 0x00f1
|
|
#define XK_ograve 0x00f2
|
|
#define XK_oacute 0x00f3
|
|
#define XK_ocircumflex 0x00f4
|
|
#define XK_otilde 0x00f5
|
|
#define XK_odiaeresis 0x00f6
|
|
#define XK_division 0x00f7
|
|
#define XK_oslash 0x00f8
|
|
#define XK_ooblique 0x00f8
|
|
#define XK_ugrave 0x00f9
|
|
#define XK_uacute 0x00fa
|
|
#define XK_ucircumflex 0x00fb
|
|
#define XK_udiaeresis 0x00fc
|
|
#define XK_yacute 0x00fd
|
|
#define XK_thorn 0x00fe
|
|
#define XK_ydiaeresis 0x00ff
|
|
|
|
#define XK_EuroSign 0x20ac
|
|
|
|
#define XK_ISO_Level3_Shift 0xFE03
|
|
#define XK_ISO_Left_Tab 0xFE20
|
|
|
|
#define XK_dead_grave 0xFE50
|
|
#define XK_dead_acute 0xFE51
|
|
#define XK_dead_circumflex 0xFE52
|
|
#define XK_dead_tilde 0xFE53
|
|
|
|
#define XK_BackSpace 0xFF08
|
|
#define XK_Tab 0xFF09
|
|
#define XK_Linefeed 0xFF0A
|
|
#define XK_Clear 0xFF0B
|
|
#define XK_Return 0xFF0D
|
|
#define XK_Pause 0xFF13
|
|
#define XK_Scroll_Lock 0xFF14
|
|
#define XK_Sys_Req 0xFF15
|
|
#define XK_Escape 0xFF1B
|
|
|
|
#define XK_Delete 0xFFFF
|
|
|
|
#define XK_Home 0xFF50
|
|
#define XK_Left 0xFF51
|
|
#define XK_Up 0xFF52
|
|
#define XK_Right 0xFF53
|
|
#define XK_Down 0xFF54
|
|
#define XK_Page_Up 0xFF55
|
|
#define XK_Page_Down 0xFF56
|
|
#define XK_End 0xFF57
|
|
#define XK_Begin 0xFF58
|
|
|
|
#define XK_Select 0xFF60
|
|
#define XK_Print 0xFF61
|
|
#define XK_Execute 0xFF62
|
|
#define XK_Insert 0xFF63
|
|
#define XK_Menu 0xff67
|
|
#define XK_Cancel 0xFF69
|
|
#define XK_Help 0xFF6A
|
|
#define XK_Break 0xFF6B
|
|
#define XK_Num_Lock 0xFF7F
|
|
|
|
#define XK_KP_Space 0xFF80
|
|
#define XK_KP_Tab 0xFF89
|
|
#define XK_KP_Enter 0xFF8D
|
|
|
|
#define XK_KP_Home 0xFF95
|
|
#define XK_KP_Left 0xFF96
|
|
#define XK_KP_Up 0xFF97
|
|
#define XK_KP_Right 0xFF98
|
|
#define XK_KP_Down 0xFF99
|
|
#define XK_KP_Prior 0xFF9A
|
|
#define XK_KP_Page_Up 0xFF9A
|
|
#define XK_KP_Next 0xFF9B
|
|
#define XK_KP_Page_Down 0xFF9B
|
|
#define XK_KP_End 0xFF9C
|
|
#define XK_KP_Begin 0xFF9D
|
|
#define XK_KP_Insert 0xFF9E
|
|
#define XK_KP_Delete 0xFF9F
|
|
#define XK_KP_Equal 0xFFBD
|
|
#define XK_KP_Multiply 0xFFAA
|
|
#define XK_KP_Add 0xFFAB
|
|
#define XK_KP_Separator 0xFFAC
|
|
#define XK_KP_Subtract 0xFFAD
|
|
#define XK_KP_Decimal 0xFFAE
|
|
#define XK_KP_Divide 0xFFAF
|
|
|
|
#define XK_KP_F1 0xFF91
|
|
#define XK_KP_F2 0xFF92
|
|
#define XK_KP_F3 0xFF93
|
|
#define XK_KP_F4 0xFF94
|
|
|
|
#define XK_KP_0 0xFFB0
|
|
#define XK_KP_1 0xFFB1
|
|
#define XK_KP_2 0xFFB2
|
|
#define XK_KP_3 0xFFB3
|
|
#define XK_KP_4 0xFFB4
|
|
#define XK_KP_5 0xFFB5
|
|
#define XK_KP_6 0xFFB6
|
|
#define XK_KP_7 0xFFB7
|
|
#define XK_KP_8 0xFFB8
|
|
#define XK_KP_9 0xFFB9
|
|
|
|
#define XK_F1 0xFFBE
|
|
#define XK_F2 0xFFBF
|
|
#define XK_F3 0xFFC0
|
|
#define XK_F4 0xFFC1
|
|
#define XK_F5 0xFFC2
|
|
#define XK_F6 0xFFC3
|
|
#define XK_F7 0xFFC4
|
|
#define XK_F8 0xFFC5
|
|
#define XK_F9 0xFFC6
|
|
#define XK_F10 0xFFC7
|
|
#define XK_F11 0xFFC8
|
|
#define XK_F12 0xFFC9
|
|
|
|
#define XK_Shift_L 0xFFE1
|
|
#define XK_Shift_R 0xFFE2
|
|
#define XK_Control_L 0xFFE3
|
|
#define XK_Control_R 0xFFE4
|
|
#define XK_Caps_Lock 0xFFE5
|
|
#define XK_Shift_Lock 0xFFE6
|
|
#define XK_Meta_L 0xFFE7
|
|
#define XK_Meta_R 0xFFE8
|
|
#define XK_Alt_L 0xFFE9
|
|
#define XK_Alt_R 0xFFEA
|
|
#define XK_Super_L 0xFFEB
|
|
#define XK_Super_R 0xFFEC
|
|
|
|
/// key mapping for rfb
|
|
typedef struct {
|
|
const char *name;
|
|
Bit32u value;
|
|
} rfbKeyTabEntry;
|
|
|
|
#define DEF_RFB_KEY(key) \
|
|
{ #key, key },
|
|
|
|
rfbKeyTabEntry rfb_keytable[] = {
|
|
// this include provides all the entries.
|
|
DEF_RFB_KEY(XK_space)
|
|
DEF_RFB_KEY(XK_exclam)
|
|
DEF_RFB_KEY(XK_quotedbl)
|
|
DEF_RFB_KEY(XK_numbersign)
|
|
DEF_RFB_KEY(XK_dollar)
|
|
DEF_RFB_KEY(XK_percent)
|
|
DEF_RFB_KEY(XK_ampersand)
|
|
DEF_RFB_KEY(XK_apostrophe)
|
|
DEF_RFB_KEY(XK_parenleft)
|
|
DEF_RFB_KEY(XK_parenright)
|
|
DEF_RFB_KEY(XK_asterisk)
|
|
DEF_RFB_KEY(XK_plus)
|
|
DEF_RFB_KEY(XK_comma)
|
|
DEF_RFB_KEY(XK_minus)
|
|
DEF_RFB_KEY(XK_period)
|
|
DEF_RFB_KEY(XK_slash)
|
|
DEF_RFB_KEY(XK_0)
|
|
DEF_RFB_KEY(XK_1)
|
|
DEF_RFB_KEY(XK_2)
|
|
DEF_RFB_KEY(XK_3)
|
|
DEF_RFB_KEY(XK_4)
|
|
DEF_RFB_KEY(XK_5)
|
|
DEF_RFB_KEY(XK_6)
|
|
DEF_RFB_KEY(XK_7)
|
|
DEF_RFB_KEY(XK_8)
|
|
DEF_RFB_KEY(XK_9)
|
|
DEF_RFB_KEY(XK_colon)
|
|
DEF_RFB_KEY(XK_semicolon)
|
|
DEF_RFB_KEY(XK_less)
|
|
DEF_RFB_KEY(XK_equal)
|
|
DEF_RFB_KEY(XK_greater)
|
|
DEF_RFB_KEY(XK_question)
|
|
DEF_RFB_KEY(XK_at)
|
|
DEF_RFB_KEY(XK_A)
|
|
DEF_RFB_KEY(XK_B)
|
|
DEF_RFB_KEY(XK_C)
|
|
DEF_RFB_KEY(XK_D)
|
|
DEF_RFB_KEY(XK_E)
|
|
DEF_RFB_KEY(XK_F)
|
|
DEF_RFB_KEY(XK_G)
|
|
DEF_RFB_KEY(XK_H)
|
|
DEF_RFB_KEY(XK_I)
|
|
DEF_RFB_KEY(XK_J)
|
|
DEF_RFB_KEY(XK_K)
|
|
DEF_RFB_KEY(XK_L)
|
|
DEF_RFB_KEY(XK_M)
|
|
DEF_RFB_KEY(XK_N)
|
|
DEF_RFB_KEY(XK_O)
|
|
DEF_RFB_KEY(XK_P)
|
|
DEF_RFB_KEY(XK_Q)
|
|
DEF_RFB_KEY(XK_R)
|
|
DEF_RFB_KEY(XK_S)
|
|
DEF_RFB_KEY(XK_T)
|
|
DEF_RFB_KEY(XK_U)
|
|
DEF_RFB_KEY(XK_V)
|
|
DEF_RFB_KEY(XK_W)
|
|
DEF_RFB_KEY(XK_X)
|
|
DEF_RFB_KEY(XK_Y)
|
|
DEF_RFB_KEY(XK_Z)
|
|
DEF_RFB_KEY(XK_bracketleft)
|
|
DEF_RFB_KEY(XK_backslash)
|
|
DEF_RFB_KEY(XK_bracketright)
|
|
DEF_RFB_KEY(XK_asciicircum)
|
|
DEF_RFB_KEY(XK_underscore)
|
|
DEF_RFB_KEY(XK_grave)
|
|
DEF_RFB_KEY(XK_a)
|
|
DEF_RFB_KEY(XK_b)
|
|
DEF_RFB_KEY(XK_c)
|
|
DEF_RFB_KEY(XK_d)
|
|
DEF_RFB_KEY(XK_e)
|
|
DEF_RFB_KEY(XK_f)
|
|
DEF_RFB_KEY(XK_g)
|
|
DEF_RFB_KEY(XK_h)
|
|
DEF_RFB_KEY(XK_i)
|
|
DEF_RFB_KEY(XK_j)
|
|
DEF_RFB_KEY(XK_k)
|
|
DEF_RFB_KEY(XK_l)
|
|
DEF_RFB_KEY(XK_m)
|
|
DEF_RFB_KEY(XK_n)
|
|
DEF_RFB_KEY(XK_o)
|
|
DEF_RFB_KEY(XK_p)
|
|
DEF_RFB_KEY(XK_q)
|
|
DEF_RFB_KEY(XK_r)
|
|
DEF_RFB_KEY(XK_s)
|
|
DEF_RFB_KEY(XK_t)
|
|
DEF_RFB_KEY(XK_u)
|
|
DEF_RFB_KEY(XK_v)
|
|
DEF_RFB_KEY(XK_w)
|
|
DEF_RFB_KEY(XK_x)
|
|
DEF_RFB_KEY(XK_y)
|
|
DEF_RFB_KEY(XK_z)
|
|
DEF_RFB_KEY(XK_braceleft)
|
|
DEF_RFB_KEY(XK_bar)
|
|
DEF_RFB_KEY(XK_braceright)
|
|
DEF_RFB_KEY(XK_asciitilde)
|
|
DEF_RFB_KEY(XK_nobreakspace)
|
|
DEF_RFB_KEY(XK_exclamdown)
|
|
DEF_RFB_KEY(XK_cent)
|
|
DEF_RFB_KEY(XK_sterling)
|
|
DEF_RFB_KEY(XK_currency)
|
|
DEF_RFB_KEY(XK_yen)
|
|
DEF_RFB_KEY(XK_brokenbar)
|
|
DEF_RFB_KEY(XK_section)
|
|
DEF_RFB_KEY(XK_diaeresis)
|
|
DEF_RFB_KEY(XK_copyright)
|
|
DEF_RFB_KEY(XK_ordfeminine)
|
|
DEF_RFB_KEY(XK_guillemotleft)
|
|
DEF_RFB_KEY(XK_notsign)
|
|
DEF_RFB_KEY(XK_hyphen)
|
|
DEF_RFB_KEY(XK_registered)
|
|
DEF_RFB_KEY(XK_macron)
|
|
DEF_RFB_KEY(XK_degree)
|
|
DEF_RFB_KEY(XK_plusminus)
|
|
DEF_RFB_KEY(XK_twosuperior)
|
|
DEF_RFB_KEY(XK_threesuperior)
|
|
DEF_RFB_KEY(XK_acute)
|
|
DEF_RFB_KEY(XK_mu)
|
|
DEF_RFB_KEY(XK_paragraph)
|
|
DEF_RFB_KEY(XK_periodcentered)
|
|
DEF_RFB_KEY(XK_cedilla)
|
|
DEF_RFB_KEY(XK_onesuperior)
|
|
DEF_RFB_KEY(XK_masculine)
|
|
DEF_RFB_KEY(XK_guillemotright)
|
|
DEF_RFB_KEY(XK_onequarter)
|
|
DEF_RFB_KEY(XK_onehalf)
|
|
DEF_RFB_KEY(XK_threequarters)
|
|
DEF_RFB_KEY(XK_questiondown)
|
|
DEF_RFB_KEY(XK_Agrave)
|
|
DEF_RFB_KEY(XK_Aacute)
|
|
DEF_RFB_KEY(XK_Acircumflex)
|
|
DEF_RFB_KEY(XK_Atilde)
|
|
DEF_RFB_KEY(XK_Adiaeresis)
|
|
DEF_RFB_KEY(XK_Aring)
|
|
DEF_RFB_KEY(XK_AE)
|
|
DEF_RFB_KEY(XK_Ccedilla)
|
|
DEF_RFB_KEY(XK_Egrave)
|
|
DEF_RFB_KEY(XK_Eacute)
|
|
DEF_RFB_KEY(XK_Ecircumflex)
|
|
DEF_RFB_KEY(XK_Ediaeresis)
|
|
DEF_RFB_KEY(XK_Igrave)
|
|
DEF_RFB_KEY(XK_Iacute)
|
|
DEF_RFB_KEY(XK_Icircumflex)
|
|
DEF_RFB_KEY(XK_Idiaeresis)
|
|
DEF_RFB_KEY(XK_ETH)
|
|
DEF_RFB_KEY(XK_Ntilde)
|
|
DEF_RFB_KEY(XK_Ograve)
|
|
DEF_RFB_KEY(XK_Oacute)
|
|
DEF_RFB_KEY(XK_Ocircumflex)
|
|
DEF_RFB_KEY(XK_Otilde)
|
|
DEF_RFB_KEY(XK_Odiaeresis)
|
|
DEF_RFB_KEY(XK_multiply)
|
|
DEF_RFB_KEY(XK_Oslash)
|
|
DEF_RFB_KEY(XK_Ooblique)
|
|
DEF_RFB_KEY(XK_Ugrave)
|
|
DEF_RFB_KEY(XK_Uacute)
|
|
DEF_RFB_KEY(XK_Ucircumflex)
|
|
DEF_RFB_KEY(XK_Udiaeresis)
|
|
DEF_RFB_KEY(XK_Yacute)
|
|
DEF_RFB_KEY(XK_THORN)
|
|
DEF_RFB_KEY(XK_ssharp)
|
|
DEF_RFB_KEY(XK_agrave)
|
|
DEF_RFB_KEY(XK_aacute)
|
|
DEF_RFB_KEY(XK_acircumflex)
|
|
DEF_RFB_KEY(XK_atilde)
|
|
DEF_RFB_KEY(XK_adiaeresis)
|
|
DEF_RFB_KEY(XK_aring)
|
|
DEF_RFB_KEY(XK_ae)
|
|
DEF_RFB_KEY(XK_ccedilla)
|
|
DEF_RFB_KEY(XK_egrave)
|
|
DEF_RFB_KEY(XK_eacute)
|
|
DEF_RFB_KEY(XK_ecircumflex)
|
|
DEF_RFB_KEY(XK_ediaeresis)
|
|
DEF_RFB_KEY(XK_igrave)
|
|
DEF_RFB_KEY(XK_iacute)
|
|
DEF_RFB_KEY(XK_icircumflex)
|
|
DEF_RFB_KEY(XK_idiaeresis)
|
|
DEF_RFB_KEY(XK_eth)
|
|
DEF_RFB_KEY(XK_ntilde)
|
|
DEF_RFB_KEY(XK_ograve)
|
|
DEF_RFB_KEY(XK_oacute)
|
|
DEF_RFB_KEY(XK_ocircumflex)
|
|
DEF_RFB_KEY(XK_otilde)
|
|
DEF_RFB_KEY(XK_odiaeresis)
|
|
DEF_RFB_KEY(XK_division)
|
|
DEF_RFB_KEY(XK_oslash)
|
|
DEF_RFB_KEY(XK_ooblique)
|
|
DEF_RFB_KEY(XK_ugrave)
|
|
DEF_RFB_KEY(XK_uacute)
|
|
DEF_RFB_KEY(XK_ucircumflex)
|
|
DEF_RFB_KEY(XK_udiaeresis)
|
|
DEF_RFB_KEY(XK_yacute)
|
|
DEF_RFB_KEY(XK_thorn)
|
|
DEF_RFB_KEY(XK_ydiaeresis)
|
|
DEF_RFB_KEY(XK_EuroSign)
|
|
DEF_RFB_KEY(XK_ISO_Level3_Shift)
|
|
DEF_RFB_KEY(XK_ISO_Left_Tab)
|
|
DEF_RFB_KEY(XK_dead_grave)
|
|
DEF_RFB_KEY(XK_dead_acute)
|
|
DEF_RFB_KEY(XK_dead_circumflex)
|
|
DEF_RFB_KEY(XK_dead_tilde)
|
|
DEF_RFB_KEY(XK_BackSpace)
|
|
DEF_RFB_KEY(XK_Tab)
|
|
DEF_RFB_KEY(XK_Linefeed)
|
|
DEF_RFB_KEY(XK_Clear)
|
|
DEF_RFB_KEY(XK_Return)
|
|
DEF_RFB_KEY(XK_Pause)
|
|
DEF_RFB_KEY(XK_Scroll_Lock)
|
|
DEF_RFB_KEY(XK_Sys_Req)
|
|
DEF_RFB_KEY(XK_Escape)
|
|
DEF_RFB_KEY(XK_Delete)
|
|
DEF_RFB_KEY(XK_Home)
|
|
DEF_RFB_KEY(XK_Left)
|
|
DEF_RFB_KEY(XK_Up)
|
|
DEF_RFB_KEY(XK_Right)
|
|
DEF_RFB_KEY(XK_Down)
|
|
DEF_RFB_KEY(XK_Page_Up)
|
|
DEF_RFB_KEY(XK_Page_Down)
|
|
DEF_RFB_KEY(XK_End)
|
|
DEF_RFB_KEY(XK_Begin)
|
|
DEF_RFB_KEY(XK_Select)
|
|
DEF_RFB_KEY(XK_Print)
|
|
DEF_RFB_KEY(XK_Execute)
|
|
DEF_RFB_KEY(XK_Insert)
|
|
DEF_RFB_KEY(XK_Menu)
|
|
DEF_RFB_KEY(XK_Cancel)
|
|
DEF_RFB_KEY(XK_Help)
|
|
DEF_RFB_KEY(XK_Break)
|
|
DEF_RFB_KEY(XK_Num_Lock)
|
|
DEF_RFB_KEY(XK_KP_Space)
|
|
DEF_RFB_KEY(XK_KP_Tab)
|
|
DEF_RFB_KEY(XK_KP_Enter)
|
|
DEF_RFB_KEY(XK_KP_Home)
|
|
DEF_RFB_KEY(XK_KP_Left)
|
|
DEF_RFB_KEY(XK_KP_Up)
|
|
DEF_RFB_KEY(XK_KP_Right)
|
|
DEF_RFB_KEY(XK_KP_Down)
|
|
DEF_RFB_KEY(XK_KP_Prior)
|
|
DEF_RFB_KEY(XK_KP_Page_Up)
|
|
DEF_RFB_KEY(XK_KP_Next)
|
|
DEF_RFB_KEY(XK_KP_Page_Down)
|
|
DEF_RFB_KEY(XK_KP_End)
|
|
DEF_RFB_KEY(XK_KP_Begin)
|
|
DEF_RFB_KEY(XK_KP_Insert)
|
|
DEF_RFB_KEY(XK_KP_Delete)
|
|
DEF_RFB_KEY(XK_KP_Equal)
|
|
DEF_RFB_KEY(XK_KP_Multiply)
|
|
DEF_RFB_KEY(XK_KP_Add)
|
|
DEF_RFB_KEY(XK_KP_Separator)
|
|
DEF_RFB_KEY(XK_KP_Subtract)
|
|
DEF_RFB_KEY(XK_KP_Decimal)
|
|
DEF_RFB_KEY(XK_KP_Divide)
|
|
DEF_RFB_KEY(XK_KP_F1)
|
|
DEF_RFB_KEY(XK_KP_F2)
|
|
DEF_RFB_KEY(XK_KP_F3)
|
|
DEF_RFB_KEY(XK_KP_F4)
|
|
DEF_RFB_KEY(XK_KP_0)
|
|
DEF_RFB_KEY(XK_KP_1)
|
|
DEF_RFB_KEY(XK_KP_2)
|
|
DEF_RFB_KEY(XK_KP_3)
|
|
DEF_RFB_KEY(XK_KP_4)
|
|
DEF_RFB_KEY(XK_KP_5)
|
|
DEF_RFB_KEY(XK_KP_6)
|
|
DEF_RFB_KEY(XK_KP_7)
|
|
DEF_RFB_KEY(XK_KP_8)
|
|
DEF_RFB_KEY(XK_KP_9)
|
|
DEF_RFB_KEY(XK_F1)
|
|
DEF_RFB_KEY(XK_F2)
|
|
DEF_RFB_KEY(XK_F3)
|
|
DEF_RFB_KEY(XK_F4)
|
|
DEF_RFB_KEY(XK_F5)
|
|
DEF_RFB_KEY(XK_F6)
|
|
DEF_RFB_KEY(XK_F7)
|
|
DEF_RFB_KEY(XK_F8)
|
|
DEF_RFB_KEY(XK_F9)
|
|
DEF_RFB_KEY(XK_F10)
|
|
DEF_RFB_KEY(XK_F11)
|
|
DEF_RFB_KEY(XK_F12)
|
|
DEF_RFB_KEY(XK_Shift_L)
|
|
DEF_RFB_KEY(XK_Shift_R)
|
|
DEF_RFB_KEY(XK_Control_L)
|
|
DEF_RFB_KEY(XK_Control_R)
|
|
DEF_RFB_KEY(XK_Caps_Lock)
|
|
DEF_RFB_KEY(XK_Shift_Lock)
|
|
DEF_RFB_KEY(XK_Meta_L)
|
|
DEF_RFB_KEY(XK_Meta_R)
|
|
DEF_RFB_KEY(XK_Alt_L)
|
|
DEF_RFB_KEY(XK_Alt_R)
|
|
DEF_RFB_KEY(XK_Super_L)
|
|
DEF_RFB_KEY(XK_Super_R)
|
|
// one final entry to mark the end
|
|
{ NULL, 0 }
|
|
};
|