Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-09 09:14:48

0001 // Copyright (c) 2016-2019 OPEN CASCADE SAS
0002 //
0003 // This file is part of Open CASCADE Technology software library.
0004 //
0005 // This library is free software; you can redistribute it and/or modify it under
0006 // the terms of the GNU Lesser General Public License version 2.1 as published
0007 // by the Free Software Foundation, with special exception defined in the file
0008 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0009 // distribution for complete text of the license and disclaimer of any warranty.
0010 //
0011 // Alternatively, this file may be used under the terms of Open CASCADE
0012 // commercial license or contractual agreement.
0013 
0014 #ifndef _Aspect_VKey_HeaderFile
0015 #define _Aspect_VKey_HeaderFile
0016 
0017 #include <Aspect_VKeyFlags.hxx>
0018 
0019 //! Define virtual key as integer number to allow extensions.
0020 typedef unsigned int Aspect_VKey;
0021 
0022 //! Enumeration defining virtual keys irrelevant to current keyboard layout for simplified hot-keys
0023 //! management logic.
0024 enum Aspect_VKeyBasic
0025 {
0026   Aspect_VKey_UNKNOWN = 0,
0027 
0028   // main latin alphabet keys
0029   Aspect_VKey_A = 1,
0030   Aspect_VKey_B,
0031   Aspect_VKey_C,
0032   Aspect_VKey_D,
0033   Aspect_VKey_E,
0034   Aspect_VKey_F,
0035   Aspect_VKey_G,
0036   Aspect_VKey_H,
0037   Aspect_VKey_I,
0038   Aspect_VKey_J,
0039   Aspect_VKey_K,
0040   Aspect_VKey_L,
0041   Aspect_VKey_M,
0042   Aspect_VKey_N,
0043   Aspect_VKey_O,
0044   Aspect_VKey_P,
0045   Aspect_VKey_Q,
0046   Aspect_VKey_R,
0047   Aspect_VKey_S,
0048   Aspect_VKey_T,
0049   Aspect_VKey_U,
0050   Aspect_VKey_V,
0051   Aspect_VKey_W,
0052   Aspect_VKey_X,
0053   Aspect_VKey_Y,
0054   Aspect_VKey_Z,
0055 
0056   Aspect_VKey_0,
0057   Aspect_VKey_1,
0058   Aspect_VKey_2,
0059   Aspect_VKey_3,
0060   Aspect_VKey_4,
0061   Aspect_VKey_5,
0062   Aspect_VKey_6,
0063   Aspect_VKey_7,
0064   Aspect_VKey_8,
0065   Aspect_VKey_9,
0066 
0067   Aspect_VKey_F1,
0068   Aspect_VKey_F2,
0069   Aspect_VKey_F3,
0070   Aspect_VKey_F4,
0071   Aspect_VKey_F5,
0072   Aspect_VKey_F6,
0073   Aspect_VKey_F7,
0074   Aspect_VKey_F8,
0075   Aspect_VKey_F9,
0076   Aspect_VKey_F10,
0077   Aspect_VKey_F11,
0078   Aspect_VKey_F12,
0079 
0080   // standard keys
0081   Aspect_VKey_Up,
0082   Aspect_VKey_Down,
0083   Aspect_VKey_Left,
0084   Aspect_VKey_Right,
0085   Aspect_VKey_Plus,  //!< '+'
0086   Aspect_VKey_Minus, //!< '-'
0087   Aspect_VKey_Equal, //!< '=+'
0088   Aspect_VKey_PageUp,
0089   Aspect_VKey_PageDown,
0090   Aspect_VKey_Home,
0091   Aspect_VKey_End,
0092   Aspect_VKey_Escape,
0093   Aspect_VKey_Back,
0094   Aspect_VKey_Enter,
0095   Aspect_VKey_Backspace,
0096   Aspect_VKey_Space,
0097   Aspect_VKey_Delete,
0098   Aspect_VKey_Tilde,
0099   Aspect_VKey_Tab,
0100   Aspect_VKey_Comma,        //!< ','
0101   Aspect_VKey_Period,       //!< '.'
0102   Aspect_VKey_Semicolon,    //!< ';:'
0103   Aspect_VKey_Slash,        //!< '/?'
0104   Aspect_VKey_BracketLeft,  //!< '[{'
0105   Aspect_VKey_Backslash,    //!< '\|'
0106   Aspect_VKey_BracketRight, //!< ']}'
0107   Aspect_VKey_Apostrophe,   //!< ''"'
0108   Aspect_VKey_Numlock,      //!< Num Lock key
0109   Aspect_VKey_Scroll,       //!< Scroll Lock key
0110 
0111   // numpad keys
0112   Aspect_VKey_Numpad0,
0113   Aspect_VKey_Numpad1,
0114   Aspect_VKey_Numpad2,
0115   Aspect_VKey_Numpad3,
0116   Aspect_VKey_Numpad4,
0117   Aspect_VKey_Numpad5,
0118   Aspect_VKey_Numpad6,
0119   Aspect_VKey_Numpad7,
0120   Aspect_VKey_Numpad8,
0121   Aspect_VKey_Numpad9,
0122   Aspect_VKey_NumpadMultiply, //!< numpad '*'
0123   Aspect_VKey_NumpadAdd,      //!< numpad '+'
0124   Aspect_VKey_NumpadSubtract, //!< numpad '-'
0125   Aspect_VKey_NumpadDivide,   //!< numpad '/'
0126 
0127   // Multimedia keys
0128   Aspect_VKey_MediaNextTrack,
0129   Aspect_VKey_MediaPreviousTrack,
0130   Aspect_VKey_MediaStop,
0131   Aspect_VKey_MediaPlayPause,
0132   Aspect_VKey_VolumeMute,
0133   Aspect_VKey_VolumeDown,
0134   Aspect_VKey_VolumeUp,
0135   Aspect_VKey_BrowserBack,
0136   Aspect_VKey_BrowserForward,
0137   Aspect_VKey_BrowserRefresh,
0138   Aspect_VKey_BrowserStop,
0139   Aspect_VKey_BrowserSearch,
0140   Aspect_VKey_BrowserFavorites,
0141   Aspect_VKey_BrowserHome,
0142 
0143   // 3d view keys
0144   Aspect_VKey_ViewTop,
0145   Aspect_VKey_ViewBottom,
0146   Aspect_VKey_ViewLeft,
0147   Aspect_VKey_ViewRight,
0148   Aspect_VKey_ViewFront,
0149   Aspect_VKey_ViewBack,
0150   Aspect_VKey_ViewAxoLeftProj,
0151   Aspect_VKey_ViewAxoRightProj,
0152   Aspect_VKey_ViewFitAll,
0153   Aspect_VKey_ViewRoll90CW,
0154   Aspect_VKey_ViewRoll90CCW,
0155   Aspect_VKey_ViewSwitchRotate,
0156 
0157   // modifier keys, @sa Aspect_VKey_ModifiersLower and Aspect_VKey_ModifiersUpper below
0158   Aspect_VKey_Shift,
0159   Aspect_VKey_Control,
0160   Aspect_VKey_Alt,
0161   Aspect_VKey_Menu,
0162   Aspect_VKey_Meta,
0163 
0164   // virtual navigation keys, @sa Aspect_VKey_NavigationKeysLower and
0165   // Aspect_VKey_NavigationKeysUpper below
0166   Aspect_VKey_NavInteract,       //!< interact
0167   Aspect_VKey_NavForward,        //!< go forward
0168   Aspect_VKey_NavBackward,       //!< go backward
0169   Aspect_VKey_NavSlideLeft,      //!< sidewalk, left
0170   Aspect_VKey_NavSlideRight,     //!< sidewalk, right
0171   Aspect_VKey_NavSlideUp,        //!< lift up
0172   Aspect_VKey_NavSlideDown,      //!< fall down
0173   Aspect_VKey_NavRollCCW,        //!< bank left  (roll counter-clockwise)
0174   Aspect_VKey_NavRollCW,         //!< bank right (roll clockwise)
0175   Aspect_VKey_NavLookLeft,       //!< look left  (yaw counter-clockwise)
0176   Aspect_VKey_NavLookRight,      //!< look right (yaw clockwise)
0177   Aspect_VKey_NavLookUp,         //!< look up    (pitch clockwise)
0178   Aspect_VKey_NavLookDown,       //!< look down  (pitch counter-clockwise)
0179   Aspect_VKey_NavCrouch,         //!< crouch walking
0180   Aspect_VKey_NavJump,           //!< jump
0181   Aspect_VKey_NavThrustForward,  //!< increase continuous velocity in forward  direction
0182   Aspect_VKey_NavThrustBackward, //!< increase continuous velocity in reversed direction
0183   Aspect_VKey_NavThrustStop,     //!< reset continuous velocity
0184   Aspect_VKey_NavSpeedIncrease,  //!< increase navigation speed
0185   Aspect_VKey_NavSpeedDecrease,  //!< decrease navigation speed
0186 };
0187 
0188 //! Auxiliary ranges.
0189 enum
0190 {
0191   Aspect_VKey_Lower               = 0,
0192   Aspect_VKey_ModifiersLower      = Aspect_VKey_Shift,
0193   Aspect_VKey_ModifiersUpper      = Aspect_VKey_Meta,
0194   Aspect_VKey_NavigationKeysLower = Aspect_VKey_NavInteract,
0195   Aspect_VKey_NavigationKeysUpper = Aspect_VKey_NavSpeedDecrease,
0196   Aspect_VKey_Upper               = Aspect_VKey_NavSpeedDecrease,
0197   Aspect_VKey_NB                  = Aspect_VKey_Upper - Aspect_VKey_Lower + 1,
0198   Aspect_VKey_MAX                 = 255
0199 };
0200 
0201 //! Return modifier flags for specified modifier key.
0202 inline Aspect_VKeyFlags Aspect_VKey2Modifier(Aspect_VKey theKey)
0203 {
0204   switch (theKey)
0205   {
0206     case Aspect_VKey_Shift:
0207       return Aspect_VKeyFlags_SHIFT;
0208     case Aspect_VKey_Control:
0209       return Aspect_VKeyFlags_CTRL;
0210     case Aspect_VKey_Alt:
0211       return Aspect_VKeyFlags_ALT;
0212     case Aspect_VKey_Menu:
0213       return Aspect_VKeyFlags_MENU;
0214     case Aspect_VKey_Meta:
0215       return Aspect_VKeyFlags_META;
0216     default:
0217       return 0;
0218   }
0219 }
0220 
0221 #endif // _Aspect_VKey_HeaderFile