1 // Copyright (c) 2016-2019 OPEN CASCADE SAS
3 // This file is part of Open CASCADE Technology software library.
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
14 #ifndef _Aspect_VKey_HeaderFile
15 #define _Aspect_VKey_HeaderFile
17 #include <Aspect_VKeyFlags.hxx>
19 //! Define virtual key as integer number to allow extensions.
20 typedef unsigned int Aspect_VKey;
22 //! Enumeration defining virtual keys irrelevant to current keyboard layout for simplified hot-keys management logic.
25 Aspect_VKey_UNKNOWN = 0,
27 // main latin alphabet keys
84 Aspect_VKey_Plus, //!< '+'
85 Aspect_VKey_Minus, //!< '-'
86 Aspect_VKey_Equal, //!< '=+'
94 Aspect_VKey_Backspace,
99 Aspect_VKey_Comma, //!< ','
100 Aspect_VKey_Period, //!< '.'
101 Aspect_VKey_Semicolon, //!< ';:'
102 Aspect_VKey_Slash, //!< '/?'
103 Aspect_VKey_BracketLeft, //!< '[{'
104 Aspect_VKey_Backslash, //!< '\|'
105 Aspect_VKey_BracketRight, //!< ']}'
106 Aspect_VKey_Apostrophe, //!< ''"'
107 Aspect_VKey_Numlock, //!< Num Lock key
108 Aspect_VKey_Scroll, //!< Scroll Lock key
121 Aspect_VKey_NumpadMultiply, //!< numpad '*'
122 Aspect_VKey_NumpadAdd, //!< numpad '+'
123 Aspect_VKey_NumpadSubtract, //!< numpad '-'
124 Aspect_VKey_NumpadDivide, //!< numpad '/'
127 Aspect_VKey_MediaNextTrack,
128 Aspect_VKey_MediaPreviousTrack,
129 Aspect_VKey_MediaStop,
130 Aspect_VKey_MediaPlayPause,
131 Aspect_VKey_VolumeMute,
132 Aspect_VKey_VolumeDown,
133 Aspect_VKey_VolumeUp,
134 Aspect_VKey_BrowserBack,
135 Aspect_VKey_BrowserForward,
136 Aspect_VKey_BrowserRefresh,
137 Aspect_VKey_BrowserStop,
138 Aspect_VKey_BrowserSearch,
139 Aspect_VKey_BrowserFavorites,
140 Aspect_VKey_BrowserHome,
144 Aspect_VKey_ViewBottom,
145 Aspect_VKey_ViewLeft,
146 Aspect_VKey_ViewRight,
147 Aspect_VKey_ViewFront,
148 Aspect_VKey_ViewBack,
149 Aspect_VKey_ViewAxoLeftProj,
150 Aspect_VKey_ViewAxoRightProj,
151 Aspect_VKey_ViewFitAll,
152 Aspect_VKey_ViewRoll90CW,
153 Aspect_VKey_ViewRoll90CCW,
154 Aspect_VKey_ViewSwitchRotate,
156 // modifier keys, @sa Aspect_VKey_ModifiersLower and Aspect_VKey_ModifiersUpper below
163 // virtual navigation keys, @sa Aspect_VKey_NavigationKeysLower and Aspect_VKey_NavigationKeysUpper below
164 Aspect_VKey_NavInteract, //!< interact
165 Aspect_VKey_NavForward, //!< go forward
166 Aspect_VKey_NavBackward, //!< go backward
167 Aspect_VKey_NavSlideLeft, //!< sidewalk, left
168 Aspect_VKey_NavSlideRight, //!< sidewalk, right
169 Aspect_VKey_NavSlideUp, //!< lift up
170 Aspect_VKey_NavSlideDown, //!< fall down
171 Aspect_VKey_NavRollCCW, //!< bank left (roll counter-clockwise)
172 Aspect_VKey_NavRollCW, //!< bank right (roll clockwise)
173 Aspect_VKey_NavLookLeft, //!< look left (yaw counter-clockwise)
174 Aspect_VKey_NavLookRight, //!< look right (yaw clockwise)
175 Aspect_VKey_NavLookUp, //!< look up (pitch clockwise)
176 Aspect_VKey_NavLookDown, //!< look down (pitch counter-clockwise)
177 Aspect_VKey_NavCrouch, //!< crouch walking
178 Aspect_VKey_NavJump, //!< jump
179 Aspect_VKey_NavThrustForward, //!< increase continuous velocity in forward direction
180 Aspect_VKey_NavThrustBackward, //!< increase continuous velocity in reversed direction
181 Aspect_VKey_NavThrustStop, //!< reset continuous velocity
182 Aspect_VKey_NavSpeedIncrease, //!< increase navigation speed
183 Aspect_VKey_NavSpeedDecrease, //!< decrease navigation speed
186 //! Auxiliary ranges.
189 Aspect_VKey_Lower = 0,
190 Aspect_VKey_ModifiersLower = Aspect_VKey_Shift,
191 Aspect_VKey_ModifiersUpper = Aspect_VKey_Meta,
192 Aspect_VKey_NavigationKeysLower = Aspect_VKey_NavInteract,
193 Aspect_VKey_NavigationKeysUpper = Aspect_VKey_NavSpeedDecrease,
194 Aspect_VKey_Upper = Aspect_VKey_NavSpeedDecrease,
195 Aspect_VKey_NB = Aspect_VKey_Upper - Aspect_VKey_Lower + 1,
196 Aspect_VKey_MAX = 255
199 //! Return modifier flags for specified modifier key.
200 inline Aspect_VKeyFlags Aspect_VKey2Modifier (Aspect_VKey theKey)
204 case Aspect_VKey_Shift: return Aspect_VKeyFlags_SHIFT;
205 case Aspect_VKey_Control: return Aspect_VKeyFlags_CTRL;
206 case Aspect_VKey_Alt: return Aspect_VKeyFlags_ALT;
207 case Aspect_VKey_Menu: return Aspect_VKeyFlags_MENU;
208 case Aspect_VKey_Meta: return Aspect_VKeyFlags_META;
213 #endif // _Aspect_VKey_HeaderFile