0030507: Visualization - introduce AIS_ViewController
[occt.git] / src / Aspect / Aspect_VKeyFlags.hxx
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_VKeyFlags_HeaderFile
15 #define _Aspect_VKeyFlags_HeaderFile
16
17 //! Key modifier, for combining with general key from Aspect_VKey.
18 typedef unsigned int Aspect_VKeyFlags;
19
20 //! Key modifier, for combining with general key from Aspect_VKey.
21 enum
22 {
23   Aspect_VKeyFlags_NONE  = 0,
24   // reserve first 8 bits to combine value with Aspect_VKey
25   Aspect_VKeyFlags_SHIFT = 1 <<  8, //!< Aspect_VKey_Shift
26   Aspect_VKeyFlags_CTRL  = 1 <<  9, //!< Aspect_VKey_Control
27   Aspect_VKeyFlags_ALT   = 1 << 10, //!< Aspect_VKey_Alt
28   Aspect_VKeyFlags_MENU  = 1 << 11, //!< Aspect_VKey_Menu
29   Aspect_VKeyFlags_META  = 1 << 12, //!< Aspect_VKey_Meta
30
31   Aspect_VKeyFlags_ALL = Aspect_VKeyFlags_SHIFT | Aspect_VKeyFlags_CTRL | Aspect_VKeyFlags_ALT | Aspect_VKeyFlags_MENU | Aspect_VKeyFlags_META
32 };
33
34 //! Mouse buttons, for combining with Aspect_VKey and Aspect_VKeyFlags.
35 typedef unsigned int Aspect_VKeyMouse;
36
37 //! Mouse button bitmask
38 enum
39 {
40   Aspect_VKeyMouse_NONE         = 0,       //!< no buttons
41
42   Aspect_VKeyMouse_LeftButton   = 1 << 13, //!< mouse left   button
43   Aspect_VKeyMouse_MiddleButton = 1 << 14, //!< mouse middle button (scroll)
44   Aspect_VKeyMouse_RightButton  = 1 << 15, //!< mouse right  button
45
46   Aspect_VKeyMouse_MainButtons = Aspect_VKeyMouse_LeftButton | Aspect_VKeyMouse_MiddleButton | Aspect_VKeyMouse_RightButton
47 };
48
49 #endif // _Aspect_VKeyFlags_HeaderFile