Crazy Eddie's GUI System 0.8.7
Loading...
Searching...
No Matches
SystemKeys.h
1/***********************************************************************
2 created: Fri Feb 17 2012
3 author: Paul D Turner <paul@cegui.org.uk>
4*************************************************************************/
5/***************************************************************************
6 * Copyright (C) 2004 - 2012 Paul D Turner & The CEGUI Development Team
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining
9 * a copy of this software and associated documentation files (the
10 * "Software"), to deal in the Software without restriction, including
11 * without limitation the rights to use, copy, modify, merge, publish,
12 * distribute, sublicense, and/or sell copies of the Software, and to
13 * permit persons to whom the Software is furnished to do so, subject to
14 * the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be
17 * included in all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 ***************************************************************************/
27#ifndef _CEGUISystemKeys_h_
28#define _CEGUISystemKeys_h_
29
30#include "CEGUI/InputEvent.h"
31
32namespace CEGUI
33{
34class CEGUIEXPORT SystemKeys
35{
36public:
37 enum SystemKey
38 {
39 None = 0x0000,
40 LeftMouse = 0x0001,
41 RightMouse = 0x0002,
42 Shift = 0x0004,
43 Control = 0x0008,
44 MiddleMouse = 0x0010,
45 X1Mouse = 0x0020,
46 X2Mouse = 0x0040,
47 Alt = 0x0080
48 };
49
50 SystemKeys();
51
52 void reset();
53
54 uint get() const;
55 bool isPressed(SystemKey key) const;
56
58 void keyPressed(Key::Scan key);
60 void keyReleased(Key::Scan key);
65
66 static SystemKey mouseButtonToSystemKey(MouseButton button);
67 static SystemKey keyCodeToSystemKey(Key::Scan key);
68
69private:
70 void updatePressedStateForKey(Key::Scan key, bool state);
71 void updateSystemKeyState(SystemKey syskey);
72
73 uint d_current;
74
75 bool d_leftShift;
76 bool d_rightShift;
77 bool d_leftCtrl;
78 bool d_rightCtrl;
79 bool d_leftAlt;
80 bool d_rightAlt;
81};
82
83}
84
85#endif
86
Definition SystemKeys.h:35
void mouseButtonPressed(MouseButton button)
notify that the given mouse button was pressed.
void keyPressed(Key::Scan key)
notify that the given key was presed
void keyReleased(Key::Scan key)
notify that the given key was released.
void mouseButtonReleased(MouseButton button)
notify that the given mouse button was released.
Main namespace for Crazy Eddie's GUI Library.
Definition arch_overview.dox:1
@ Shift
Either shift key.
Definition InputEvent.h:236
@ RightMouse
The right mouse button.
Definition InputEvent.h:235
@ X1Mouse
The first 'extra' mouse button.
Definition InputEvent.h:239
@ X2Mouse
The second 'extra' mouse button.
Definition InputEvent.h:240
@ LeftMouse
The left mouse button.
Definition InputEvent.h:234
@ MiddleMouse
The middle mouse button.
Definition InputEvent.h:238
@ Alt
Either alt key.
Definition InputEvent.h:241
@ Control
Either control key.
Definition InputEvent.h:237
MouseButton
Enumeration of mouse buttons.
Definition InputEvent.h:210