diff options
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keystroke.h')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Keystroke.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h new file mode 100644 index 000000000..13a83d0fe --- /dev/null +++ b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h @@ -0,0 +1,90 @@ +/**************************************************************************/ +/* */ +/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */ +/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */ +/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/ +/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */ +/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */ +/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */ +/* */ +/* NXAGENT, NX protocol compression and NX extensions to this software */ +/* are copyright of the aforementioned persons and companies. */ +/* */ +/* Redistribution and use of the present software is allowed according */ +/* to terms specified in the file LICENSE which comes in the source */ +/* distribution. */ +/* */ +/* All rights reserved. */ +/* */ +/* NOTE: This software has received contributions from various other */ +/* contributors, only the core maintainers and supporters are listed as */ +/* copyright holders. Please contact us, if you feel you should be listed */ +/* as copyright holder, as well. */ +/* */ +/**************************************************************************/ + +#ifndef __Keystroke_H__ +#define __Keystroke_H__ + +#include "Events.h" + +extern Bool nxagentCheckSpecialKeystroke(XKeyEvent*, enum HandleEventResult*); +extern void nxagentDumpKeystrokes(void); +extern void nxagentInitKeystrokes(Bool force); + +/* keep this sorted, do not rely on any numerical value in this enum, and be aware + * that KEYSTROKE_MAX may be used in a malloc */ + +/* also be aware that if changing any numerical values, you also need to change values + * Keystroke.c nxagentSpecialKeystrokeNames */ +enum nxagentSpecialKeystroke { + /* 0 is used as end marker */ + KEYSTROKE_END_MARKER, + KEYSTROKE_CLOSE_SESSION, + KEYSTROKE_SWITCH_ALL_SCREENS, + KEYSTROKE_FULLSCREEN, + KEYSTROKE_MINIMIZE, + KEYSTROKE_DEFER, + KEYSTROKE_IGNORE, + KEYSTROKE_FORCE_SYNCHRONIZATION, + + /* stuff used for debugging, probably not useful for most people */ +#ifdef DEBUG_TREE + KEYSTROKE_DEBUG_TREE, +#endif +#ifdef DUMP + KEYSTROKE_REGIONS_ON_SCREEN, +#endif +#ifdef NX_DEBUG_INPUT + KEYSTROKE_TEST_INPUT, + KEYSTROKE_DEACTIVATE_INPUT_DEVICES_GRAB, +#endif + + /* all the viewport stuff */ + KEYSTROKE_RESIZE, + KEYSTROKE_VIEWPORT_MOVE_LEFT, + KEYSTROKE_VIEWPORT_MOVE_UP, + KEYSTROKE_VIEWPORT_MOVE_RIGHT, + KEYSTROKE_VIEWPORT_MOVE_DOWN, + KEYSTROKE_VIEWPORT_SCROLL_LEFT, + KEYSTROKE_VIEWPORT_SCROLL_UP, + KEYSTROKE_VIEWPORT_SCROLL_RIGHT, + KEYSTROKE_VIEWPORT_SCROLL_DOWN, + + KEYSTROKE_REREAD_KEYSTROKES, + + KEYSTROKE_NOTHING, + + /* insert more here and in the string translation */ + + KEYSTROKE_MAX, +}; + +struct nxagentSpecialKeystrokeMap { + enum nxagentSpecialKeystroke stroke; + unsigned int modifierMask; /* everything except alt/meta */ + Bool modifierAltMeta; /* modifier combination should include alt/meta */ + KeySym keysym; +}; + +#endif /* __Keystroke_H__ */ |