2002-08-02 23:57:46 +04:00
|
|
|
/*
|
|
|
|
* synergy -- mouse and keyboard sharing utility
|
|
|
|
* Copyright (C) 2002 Chris Schoeneman
|
|
|
|
*
|
|
|
|
* This package is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* found in the file COPYING that should have accompanied this file.
|
|
|
|
*
|
|
|
|
* This package 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 General Public License for more details.
|
|
|
|
*/
|
|
|
|
|
2001-05-13 15:40:29 +04:00
|
|
|
#ifndef KEYTYPES_H
|
|
|
|
#define KEYTYPES_H
|
|
|
|
|
2001-10-06 18:13:28 +04:00
|
|
|
#include "BasicTypes.h"
|
|
|
|
|
2002-07-29 20:07:26 +04:00
|
|
|
//! Key ID
|
|
|
|
/*!
|
2003-04-27 21:01:14 +04:00
|
|
|
Type to hold a key symbol identifier. The encoding is UTF-32, using
|
2002-07-29 20:07:26 +04:00
|
|
|
U+E000 through U+EFFF for the various control keys (e.g. arrow
|
|
|
|
keys, function keys, modifier keys, etc).
|
|
|
|
*/
|
2001-05-13 15:40:29 +04:00
|
|
|
typedef UInt32 KeyID;
|
|
|
|
|
2003-04-27 21:01:14 +04:00
|
|
|
//! Key Code
|
|
|
|
/*!
|
|
|
|
Type to hold a physical key identifier. That is, it identifies a
|
|
|
|
physical key on the keyboard.
|
|
|
|
*/
|
|
|
|
typedef UInt16 KeyButton;
|
|
|
|
|
2003-02-22 18:03:31 +03:00
|
|
|
//! Modifier key mask
|
2002-07-29 20:07:26 +04:00
|
|
|
/*!
|
|
|
|
Type to hold a bitmask of key modifiers (e.g. shift keys).
|
|
|
|
*/
|
2001-05-15 01:14:25 +04:00
|
|
|
typedef UInt32 KeyModifierMask;
|
2001-05-13 15:40:29 +04:00
|
|
|
|
2003-02-22 18:03:31 +03:00
|
|
|
//! Modifier key ID
|
|
|
|
/*!
|
|
|
|
Type to hold the id of a key modifier (e.g. a shift key).
|
|
|
|
*/
|
|
|
|
typedef UInt32 KeyModifierID;
|
|
|
|
|
|
|
|
//! @name Modifier key masks
|
2002-07-29 20:07:26 +04:00
|
|
|
//@{
|
2001-05-15 01:14:25 +04:00
|
|
|
static const KeyModifierMask KeyModifierShift = 0x0001;
|
|
|
|
static const KeyModifierMask KeyModifierControl = 0x0002;
|
|
|
|
static const KeyModifierMask KeyModifierAlt = 0x0004;
|
|
|
|
static const KeyModifierMask KeyModifierMeta = 0x0008;
|
2002-09-14 16:07:02 +04:00
|
|
|
static const KeyModifierMask KeyModifierSuper = 0x0010;
|
|
|
|
static const KeyModifierMask KeyModifierModeSwitch = 0x0020;
|
2001-05-15 01:14:25 +04:00
|
|
|
static const KeyModifierMask KeyModifierCapsLock = 0x1000;
|
|
|
|
static const KeyModifierMask KeyModifierNumLock = 0x2000;
|
|
|
|
static const KeyModifierMask KeyModifierScrollLock = 0x4000;
|
2002-07-29 20:07:26 +04:00
|
|
|
//@}
|
2001-05-15 01:14:25 +04:00
|
|
|
|
2003-02-22 18:03:31 +03:00
|
|
|
//! @name Modifier key identifiers
|
|
|
|
//@{
|
|
|
|
static const KeyModifierID kKeyModifierIDNull = 0;
|
|
|
|
static const KeyModifierID kKeyModifierIDShift = 1;
|
|
|
|
static const KeyModifierID kKeyModifierIDControl = 2;
|
|
|
|
static const KeyModifierID kKeyModifierIDAlt = 3;
|
|
|
|
static const KeyModifierID kKeyModifierIDMeta = 4;
|
|
|
|
static const KeyModifierID kKeyModifierIDSuper = 5;
|
|
|
|
static const KeyModifierID kKeyModifierIDLast = 6;
|
|
|
|
//@}
|
|
|
|
|
2002-07-29 20:07:26 +04:00
|
|
|
//! @name Key identifiers
|
|
|
|
//@{
|
2003-05-05 01:40:42 +04:00
|
|
|
// all identifiers except kKeyNone and those in 0xE000 to 0xE0FF
|
|
|
|
// inclusive are equal to the corresponding X11 keysym - 0x1000.
|
2002-07-23 21:04:41 +04:00
|
|
|
|
|
|
|
// no key
|
|
|
|
static const KeyID kKeyNone = 0x0000;
|
|
|
|
|
|
|
|
// TTY functions
|
|
|
|
static const KeyID kKeyBackSpace = 0xEF08; /* back space, back char */
|
|
|
|
static const KeyID kKeyTab = 0xEF09;
|
|
|
|
static const KeyID kKeyLinefeed = 0xEF0A; /* Linefeed, LF */
|
|
|
|
static const KeyID kKeyClear = 0xEF0B;
|
|
|
|
static const KeyID kKeyReturn = 0xEF0D; /* Return, enter */
|
|
|
|
static const KeyID kKeyPause = 0xEF13; /* Pause, hold */
|
|
|
|
static const KeyID kKeyScrollLock = 0xEF14;
|
|
|
|
static const KeyID kKeySysReq = 0xEF15;
|
|
|
|
static const KeyID kKeyEscape = 0xEF1B;
|
|
|
|
static const KeyID kKeyDelete = 0xEFFF; /* Delete, rubout */
|
|
|
|
|
2002-07-23 22:59:15 +04:00
|
|
|
// multi-key character composition
|
|
|
|
static const KeyID kKeyMultiKey = 0xEF20; /* Multi-key character compose */
|
|
|
|
|
2002-07-23 21:04:41 +04:00
|
|
|
// cursor control
|
|
|
|
static const KeyID kKeyHome = 0xEF50;
|
|
|
|
static const KeyID kKeyLeft = 0xEF51; /* Move left, left arrow */
|
|
|
|
static const KeyID kKeyUp = 0xEF52; /* Move up, up arrow */
|
|
|
|
static const KeyID kKeyRight = 0xEF53; /* Move right, right arrow */
|
|
|
|
static const KeyID kKeyDown = 0xEF54; /* Move down, down arrow */
|
|
|
|
static const KeyID kKeyPageUp = 0xEF55;
|
|
|
|
static const KeyID kKeyPageDown = 0xEF56;
|
|
|
|
static const KeyID kKeyEnd = 0xEF57; /* EOL */
|
|
|
|
static const KeyID kKeyBegin = 0xEF58; /* BOL */
|
|
|
|
|
|
|
|
// misc functions
|
|
|
|
static const KeyID kKeySelect = 0xEF60; /* Select, mark */
|
|
|
|
static const KeyID kKeyPrint = 0xEF61;
|
|
|
|
static const KeyID kKeyExecute = 0xEF62; /* Execute, run, do */
|
|
|
|
static const KeyID kKeyInsert = 0xEF63; /* Insert, insert here */
|
|
|
|
static const KeyID kKeyUndo = 0xEF65; /* Undo, oops */
|
|
|
|
static const KeyID kKeyRedo = 0xEF66; /* redo, again */
|
|
|
|
static const KeyID kKeyMenu = 0xEF67;
|
|
|
|
static const KeyID kKeyFind = 0xEF68; /* Find, search */
|
|
|
|
static const KeyID kKeyCancel = 0xEF69; /* Cancel, stop, abort, exit */
|
|
|
|
static const KeyID kKeyHelp = 0xEF6A; /* Help */
|
|
|
|
static const KeyID kKeyBreak = 0xEF6B;
|
|
|
|
static const KeyID kKeyModeSwitch = 0xEF7E; /* Character set switch */
|
|
|
|
static const KeyID kKeyNumLock = 0xEF7F;
|
|
|
|
|
|
|
|
// keypad
|
|
|
|
static const KeyID kKeyKP_Space = 0xEF80; /* space */
|
|
|
|
static const KeyID kKeyKP_Tab = 0xEF89;
|
|
|
|
static const KeyID kKeyKP_Enter = 0xEF8D; /* enter */
|
|
|
|
static const KeyID kKeyKP_F1 = 0xEF91; /* PF1, KP_A, ... */
|
|
|
|
static const KeyID kKeyKP_F2 = 0xEF92;
|
|
|
|
static const KeyID kKeyKP_F3 = 0xEF93;
|
|
|
|
static const KeyID kKeyKP_F4 = 0xEF94;
|
|
|
|
static const KeyID kKeyKP_Home = 0xEF95;
|
|
|
|
static const KeyID kKeyKP_Left = 0xEF96;
|
|
|
|
static const KeyID kKeyKP_Up = 0xEF97;
|
|
|
|
static const KeyID kKeyKP_Right = 0xEF98;
|
|
|
|
static const KeyID kKeyKP_Down = 0xEF99;
|
|
|
|
static const KeyID kKeyKP_Prior = 0xEF9A;
|
|
|
|
static const KeyID kKeyKP_PageUp = 0xEF9A;
|
|
|
|
static const KeyID kKeyKP_Next = 0xEF9B;
|
|
|
|
static const KeyID kKeyKP_PageDown = 0xEF9B;
|
|
|
|
static const KeyID kKeyKP_End = 0xEF9C;
|
|
|
|
static const KeyID kKeyKP_Begin = 0xEF9D;
|
|
|
|
static const KeyID kKeyKP_Insert = 0xEF9E;
|
|
|
|
static const KeyID kKeyKP_Delete = 0xEF9F;
|
|
|
|
static const KeyID kKeyKP_Equal = 0xEFBD; /* equals */
|
|
|
|
static const KeyID kKeyKP_Multiply = 0xEFAA;
|
|
|
|
static const KeyID kKeyKP_Add = 0xEFAB;
|
|
|
|
static const KeyID kKeyKP_Separator= 0xEFAC; /* separator, often comma */
|
|
|
|
static const KeyID kKeyKP_Subtract = 0xEFAD;
|
|
|
|
static const KeyID kKeyKP_Decimal = 0xEFAE;
|
|
|
|
static const KeyID kKeyKP_Divide = 0xEFAF;
|
|
|
|
static const KeyID kKeyKP_0 = 0xEFB0;
|
|
|
|
static const KeyID kKeyKP_1 = 0xEFB1;
|
|
|
|
static const KeyID kKeyKP_2 = 0xEFB2;
|
|
|
|
static const KeyID kKeyKP_3 = 0xEFB3;
|
|
|
|
static const KeyID kKeyKP_4 = 0xEFB4;
|
|
|
|
static const KeyID kKeyKP_5 = 0xEFB5;
|
|
|
|
static const KeyID kKeyKP_6 = 0xEFB6;
|
|
|
|
static const KeyID kKeyKP_7 = 0xEFB7;
|
|
|
|
static const KeyID kKeyKP_8 = 0xEFB8;
|
|
|
|
static const KeyID kKeyKP_9 = 0xEFB9;
|
|
|
|
|
|
|
|
// function keys
|
|
|
|
static const KeyID kKeyF1 = 0xEFBE;
|
|
|
|
static const KeyID kKeyF2 = 0xEFBF;
|
|
|
|
static const KeyID kKeyF3 = 0xEFC0;
|
|
|
|
static const KeyID kKeyF4 = 0xEFC1;
|
|
|
|
static const KeyID kKeyF5 = 0xEFC2;
|
|
|
|
static const KeyID kKeyF6 = 0xEFC3;
|
|
|
|
static const KeyID kKeyF7 = 0xEFC4;
|
|
|
|
static const KeyID kKeyF8 = 0xEFC5;
|
|
|
|
static const KeyID kKeyF9 = 0xEFC6;
|
|
|
|
static const KeyID kKeyF10 = 0xEFC7;
|
|
|
|
static const KeyID kKeyF11 = 0xEFC8;
|
|
|
|
static const KeyID kKeyF12 = 0xEFC9;
|
|
|
|
static const KeyID kKeyF13 = 0xEFCA;
|
|
|
|
static const KeyID kKeyF14 = 0xEFCB;
|
|
|
|
static const KeyID kKeyF15 = 0xEFCC;
|
|
|
|
static const KeyID kKeyF16 = 0xEFCD;
|
|
|
|
static const KeyID kKeyF17 = 0xEFCE;
|
|
|
|
static const KeyID kKeyF18 = 0xEFCF;
|
|
|
|
static const KeyID kKeyF19 = 0xEFD0;
|
|
|
|
static const KeyID kKeyF20 = 0xEFD1;
|
|
|
|
static const KeyID kKeyF21 = 0xEFD2;
|
|
|
|
static const KeyID kKeyF22 = 0xEFD3;
|
|
|
|
static const KeyID kKeyF23 = 0xEFD4;
|
|
|
|
static const KeyID kKeyF24 = 0xEFD5;
|
|
|
|
static const KeyID kKeyF25 = 0xEFD6;
|
|
|
|
static const KeyID kKeyF26 = 0xEFD7;
|
|
|
|
static const KeyID kKeyF27 = 0xEFD8;
|
|
|
|
static const KeyID kKeyF28 = 0xEFD9;
|
|
|
|
static const KeyID kKeyF29 = 0xEFDA;
|
|
|
|
static const KeyID kKeyF30 = 0xEFDB;
|
|
|
|
static const KeyID kKeyF31 = 0xEFDC;
|
|
|
|
static const KeyID kKeyF32 = 0xEFDD;
|
|
|
|
static const KeyID kKeyF33 = 0xEFDE;
|
|
|
|
static const KeyID kKeyF34 = 0xEFDF;
|
|
|
|
static const KeyID kKeyF35 = 0xEFE0;
|
|
|
|
|
|
|
|
// modifiers
|
|
|
|
static const KeyID kKeyShift_L = 0xEFE1; /* Left shift */
|
|
|
|
static const KeyID kKeyShift_R = 0xEFE2; /* Right shift */
|
|
|
|
static const KeyID kKeyControl_L = 0xEFE3; /* Left control */
|
|
|
|
static const KeyID kKeyControl_R = 0xEFE4; /* Right control */
|
|
|
|
static const KeyID kKeyCapsLock = 0xEFE5; /* Caps lock */
|
|
|
|
static const KeyID kKeyShiftLock = 0xEFE6; /* Shift lock */
|
|
|
|
static const KeyID kKeyMeta_L = 0xEFE7; /* Left meta */
|
|
|
|
static const KeyID kKeyMeta_R = 0xEFE8; /* Right meta */
|
|
|
|
static const KeyID kKeyAlt_L = 0xEFE9; /* Left alt */
|
|
|
|
static const KeyID kKeyAlt_R = 0xEFEA; /* Right alt */
|
|
|
|
static const KeyID kKeySuper_L = 0xEFEB; /* Left super */
|
|
|
|
static const KeyID kKeySuper_R = 0xEFEC; /* Right super */
|
|
|
|
static const KeyID kKeyHyper_L = 0xEFED; /* Left hyper */
|
|
|
|
static const KeyID kKeyHyper_R = 0xEFEE; /* Right hyper */
|
|
|
|
|
|
|
|
// more function and modifier keys
|
|
|
|
static const KeyID kKeyLeftTab = 0xEE20;
|
2003-05-05 01:40:42 +04:00
|
|
|
|
|
|
|
// extended keys
|
|
|
|
static const KeyID kKeyWWWBack = 0xE0A6;
|
|
|
|
static const KeyID kKeyWWWForward = 0xE0A7;
|
|
|
|
static const KeyID kKeyWWWRefresh = 0xE0A8;
|
|
|
|
static const KeyID kKeyWWWStop = 0xE0A9;
|
|
|
|
static const KeyID kKeyWWWSearch = 0xE0AA;
|
|
|
|
static const KeyID kKeyWWWFavorites = 0xE0AB;
|
|
|
|
static const KeyID kKeyWWWHome = 0xE0AC;
|
|
|
|
static const KeyID kKeyAudioMute = 0xE0AD;
|
|
|
|
static const KeyID kKeyAudioDown = 0xE0AE;
|
|
|
|
static const KeyID kKeyAudioUp = 0xE0AF;
|
|
|
|
static const KeyID kKeyAudioNext = 0xE0B0;
|
|
|
|
static const KeyID kKeyAudioPrev = 0xE0B1;
|
|
|
|
static const KeyID kKeyAudioStop = 0xE0B2;
|
|
|
|
static const KeyID kKeyAudioPlay = 0xE0B3;
|
|
|
|
static const KeyID kKeyAppMail = 0xE0B4;
|
|
|
|
static const KeyID kKeyAppMedia = 0xE0B5;
|
|
|
|
static const KeyID kKeyAppUser1 = 0xE0B6;
|
|
|
|
static const KeyID kKeyAppUser2 = 0xE0B7;
|
|
|
|
|
2002-07-29 20:07:26 +04:00
|
|
|
//@}
|
2002-07-23 21:04:41 +04:00
|
|
|
|
2001-05-13 15:40:29 +04:00
|
|
|
#endif
|