0031682: Visualization - Prs3d_ShadingAspect::SetTransparency() has no effect with...
[occt.git] / src / Aspect / Aspect_VKey.hxx
CommitLineData
49582f9d 1// Copyright (c) 2016-2019 OPEN CASCADE SAS
2//
3// This file is part of Open CASCADE Technology software library.
4//
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.
10//
11// Alternatively, this file may be used under the terms of Open CASCADE
12// commercial license or contractual agreement.
13
14#ifndef _Aspect_VKey_HeaderFile
15#define _Aspect_VKey_HeaderFile
16
17#include <Aspect_VKeyFlags.hxx>
18
19//! Define virtual key as integer number to allow extensions.
20typedef unsigned int Aspect_VKey;
21
22//! Enumeration defining virtual keys irrelevant to current keyboard layout for simplified hot-keys management logic.
23enum Aspect_VKeyBasic
24{
25 Aspect_VKey_UNKNOWN = 0,
26
27 // main latin alphabet keys
28 Aspect_VKey_A = 1,
29 Aspect_VKey_B,
30 Aspect_VKey_C,
31 Aspect_VKey_D,
32 Aspect_VKey_E,
33 Aspect_VKey_F,
34 Aspect_VKey_G,
35 Aspect_VKey_H,
36 Aspect_VKey_I,
37 Aspect_VKey_J,
38 Aspect_VKey_K,
39 Aspect_VKey_L,
40 Aspect_VKey_M,
41 Aspect_VKey_N,
42 Aspect_VKey_O,
43 Aspect_VKey_P,
44 Aspect_VKey_Q,
45 Aspect_VKey_R,
46 Aspect_VKey_S,
47 Aspect_VKey_T,
48 Aspect_VKey_U,
49 Aspect_VKey_V,
50 Aspect_VKey_W,
51 Aspect_VKey_X,
52 Aspect_VKey_Y,
53 Aspect_VKey_Z,
54
55 Aspect_VKey_0,
56 Aspect_VKey_1,
57 Aspect_VKey_2,
58 Aspect_VKey_3,
59 Aspect_VKey_4,
60 Aspect_VKey_5,
61 Aspect_VKey_6,
62 Aspect_VKey_7,
63 Aspect_VKey_8,
64 Aspect_VKey_9,
65
66 Aspect_VKey_F1,
67 Aspect_VKey_F2,
68 Aspect_VKey_F3,
69 Aspect_VKey_F4,
70 Aspect_VKey_F5,
71 Aspect_VKey_F6,
72 Aspect_VKey_F7,
73 Aspect_VKey_F8,
74 Aspect_VKey_F9,
75 Aspect_VKey_F10,
76 Aspect_VKey_F11,
77 Aspect_VKey_F12,
78
79 // standard keys
80 Aspect_VKey_Up,
81 Aspect_VKey_Down,
82 Aspect_VKey_Left,
83 Aspect_VKey_Right,
84 Aspect_VKey_Plus, //!< '+'
85 Aspect_VKey_Minus, //!< '-'
86 Aspect_VKey_Equal, //!< '=+'
87 Aspect_VKey_PageUp,
88 Aspect_VKey_PageDown,
89 Aspect_VKey_Home,
90 Aspect_VKey_End,
91 Aspect_VKey_Escape,
92 Aspect_VKey_Back,
93 Aspect_VKey_Enter,
94 Aspect_VKey_Backspace,
95 Aspect_VKey_Space,
96 Aspect_VKey_Delete,
97 Aspect_VKey_Tilde,
98 Aspect_VKey_Tab,
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
109
110 // numpad keys
111 Aspect_VKey_Numpad0,
112 Aspect_VKey_Numpad1,
113 Aspect_VKey_Numpad2,
114 Aspect_VKey_Numpad3,
115 Aspect_VKey_Numpad4,
116 Aspect_VKey_Numpad5,
117 Aspect_VKey_Numpad6,
118 Aspect_VKey_Numpad7,
119 Aspect_VKey_Numpad8,
120 Aspect_VKey_Numpad9,
121 Aspect_VKey_NumpadMultiply, //!< numpad '*'
122 Aspect_VKey_NumpadAdd, //!< numpad '+'
123 Aspect_VKey_NumpadSubtract, //!< numpad '-'
124 Aspect_VKey_NumpadDivide, //!< numpad '/'
125
126 // Multimedia keys
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,
141
d6fbb2ab 142 // 3d view keys
143 Aspect_VKey_ViewTop,
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,
155
49582f9d 156 // modifier keys, @sa Aspect_VKey_ModifiersLower and Aspect_VKey_ModifiersUpper below
157 Aspect_VKey_Shift,
158 Aspect_VKey_Control,
159 Aspect_VKey_Alt,
160 Aspect_VKey_Menu,
161 Aspect_VKey_Meta,
162
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
184};
185
186//! Auxiliary ranges.
187enum
188{
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
197};
198
199//! Return modifier flags for specified modifier key.
200inline Aspect_VKeyFlags Aspect_VKey2Modifier (Aspect_VKey theKey)
201{
202 switch (theKey)
203 {
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;
209 default: return 0;
210 }
211}
212
213#endif // _Aspect_VKey_HeaderFile