/**************************************************************************** ** ** Copyright (C) 2016 NVIDIA Corporation. ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt 3D Studio. ** ** $QT_BEGIN_LICENSE:GPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 or (at your option) any later version ** approved by the KDE Free Qt Foundation. The licenses are as published by ** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #pragma once //============================================================================== // Namespace //============================================================================== namespace Q3DStudio { //============================================================================== /** * Mouse button state flags * There is some discrepancy between mouse state and mouse events. * * Mouse button state refers to the actual state of the button as captured * by the input engine. The logical states are: up, pressed, down and released. * * Mouse events are generated by Kernel (in CKernel::SetPickFrame), and current * support is only for pressed and released. This translates to the respective * MOUSE_DOWN and MOUSE_UP. * * Therefore, a mapping would be: * STATE_MOUSE_PRESSED -> EVENT_MOUSE_DOWN * STATE_MOUSE_RELEASED -> EVENT_MOUSE_UP * STATE_MOUSE_UP -> No corresponding event * STATE_MOUSE_DOWN -> No corresponding event * */ enum EMouseInputFlags { NO_INPUT = 0, // LMOUSE_PRESSED = 1 << 0, LMOUSE_RELEASED = 1 << 1, MMOUSE_PRESSED = 1 << 2, MMOUSE_RELEASED = 1 << 3, RMOUSE_PRESSED = 1 << 4, RMOUSE_RELEASED = 1 << 5, // LMOUSE_DOWN = 1 << 6, LMOUSE_UP = 1 << 7, MMOUSE_DOWN = 1 << 8, MMOUSE_UP = 1 << 9, RMOUSE_DOWN = 1 << 10, RMOUSE_UP = 1 << 11, MOUSEBUTTONCOUNT = 3, // left, middle, right - could potentially have more mouse buttons HSCROLLWHEEL = 1 << 12, VSCROLLWHEEL = 1 << 13, }; //============================================================================== /** * Key code/index to SInputFrame::m_KeyStates */ // enum EKeyCode //{ // KEY_NOKEY = 0x00, // KEY_ESCAPE, // KEY_1, // KEY_2, // KEY_3, // KEY_4, // KEY_5, // KEY_6, // KEY_7, // KEY_8, // KEY_9, // KEY_0, // KEY_MINUS, /* - on main keyboard */ // KEY_EQUALS, // KEY_BACK, /* backspace */ // KEY_TAB, // KEY_Q, // KEY_W, // KEY_E, // KEY_R, // KEY_T, // KEY_Y, // KEY_U, // KEY_I, // KEY_O, // KEY_P, // KEY_LBRACKET, // KEY_RBRACKET, // KEY_RETURN, /* Enter on main keyboard */ // KEY_LCONTROL, // KEY_A, // KEY_S, // KEY_D, // KEY_F, // KEY_G, // KEY_H, // KEY_J, // KEY_K, // KEY_L, // KEY_SEMICOLON, // KEY_APOSTROPHE, // KEY_GRAVE, /* accent grave */ // KEY_LSHIFT, // KEY_BACKSLASH, // KEY_Z, // KEY_X, // KEY_C, // KEY_V, // KEY_B, // KEY_N, // KEY_M, // KEY_COMMA, // KEY_PERIOD, /* . on main keyboard */ // KEY_SLASH, /* / on main keyboard */ // KEY_RSHIFT, // KEY_MULTIPLY, /* * on numeric keypad */ // KEY_LMENU, /* left Alt */ // KEY_SPACE, // KEY_CAPITAL, // KEY_F1, // KEY_F2, // KEY_F3, // KEY_F4, // KEY_F5, // KEY_F6, // KEY_F7, // KEY_F8, // KEY_F9, // KEY_F10, // KEY_NUMLOCK, // KEY_SCROLL, /* Scroll Lock */ // KEY_NUMPAD7, // KEY_NUMPAD8, // KEY_NUMPAD9, // KEY_SUBTRACT, /* - on numeric keypad */ // KEY_NUMPAD4, // KEY_NUMPAD5, // KEY_NUMPAD6, // KEY_ADD, /* + on numeric keypad */ // KEY_NUMPAD1, // KEY_NUMPAD2, // KEY_NUMPAD3, // KEY_NUMPAD0, // KEY_DECIMAL, /* . on numeric keypad */ // KEY_OEM_102, /* <> or \| on RT 102-key keyboard (Non-U.S.) */ // KEY_F11, // KEY_F12, // KEY_F13, /* (NEC PC98) */ // KEY_F14, /* (NEC PC98) */ // KEY_F15, /* (NEC PC98) */ // KEY_KANA, /* (Japanese keyboard) */ // KEY_ABNT_C1, /* /? on Brazilian keyboard */ // KEY_CONVERT, /* (Japanese keyboard) */ // KEY_NOCONVERT, /* (Japanese keyboard) */ // KEY_YEN, /* (Japanese keyboard) */ // KEY_ABNT_C2, /* Numpad . on Brazilian keyboard */ // KEY_NUMPADEQUALS, /* = on numeric keypad (NEC PC98) */ // KEY_PREVTRACK, /* Previous Track // (DIK_CIRCUMFLEX on Japanese keyboard) */ // KEY_AT, /* (NEC PC98) */ // KEY_COLON, /* (NEC PC98) */ // KEY_UNDERLINE, /* (NEC PC98) */ // KEY_KANJI, /* (Japanese keyboard) */ // KEY_STOP, /* (NEC PC98) */ // KEY_AX, /* (Japan AX) */ // KEY_UNLABELED, /* (J3100) */ // KEY_NEXTTRACK, /* Next Track */ // KEY_NUMPADENTER, /* Enter on numeric keypad */ // KEY_RCONTROL, // KEY_MUTE, /* Mute */ // KEY_CALCULATOR, /* Calculator */ // KEY_PLAYPAUSE, /* Play / Pause */ // KEY_MEDIASTOP, /* Media Stop */ // KEY_VOLUMEDOWN, /* Volume - */ // KEY_VOLUMEUP, /* Volume + */ // KEY_WEBHOME, /* Web home */ // KEY_NUMPADPERIOD, /* . on numeric keypad (NEC PC98) */ // KEY_DIVIDE, /* / on numeric keypad */ // KEY_SYSRQ, // KEY_RMENU, /* right Alt */ // KEY_PAUSE, /* Pause */ // KEY_HOME, /* Home on arrow keypad */ // KEY_UP, /* UpArrow on arrow keypad */ // KEY_PRIOR, /* PgUp on arrow keypad */ // KEY_LEFT, /* LeftArrow on arrow keypad */ // KEY_RIGHT, /* RightArrow on arrow keypad */ // KEY_END, /* End on arrow keypad */ // KEY_DOWN, /* DownArrow on arrow keypad */ // KEY_NEXT, /* PgDn on arrow keypad */ // KEY_INSERT, /* Insert on arrow keypad */ // KEY_DELETE, /* Delete on arrow keypad */ // KEY_LWIN, /* Left Windows key */ // KEY_RWIN, /* Right Windows key */ // KEY_APPS, /* AppMenu key */ // KEY_POWER, /* System Power */ // KEY_SLEEP, /* System Sleep */ // KEY_WAKE, /* System Wake */ // KEY_WEBSEARCH, /* Web Search */ // KEY_WEBFAVORITES, /* Web Favorites */ // KEY_WEBREFRESH, /* Web Refresh */ // KEY_WEBSTOP, /* Web Stop */ // KEY_WEBFORWARD, /* Web Forward */ // KEY_WEBBACK, /* Web Back */ // KEY_MYCOMPUTER, /* My Computer */ // KEY_MAIL, /* Mail */ // KEY_MEDIASELECT, /* Media Select */ // // // KEY_TOTAL_COUNT //}; typedef enum _EKeyCode { KEY_NOKEY = 0, KEY_ESCAPE, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_0, KEY_SUBTRACT, KEY_EQUALS, KEY_BACK, KEY_TAB, KEY_Q, KEY_W, KEY_E, KEY_R, KEY_T, KEY_Y, KEY_U, KEY_I, KEY_O, KEY_P, KEY_LBRACKET, KEY_RBRACKET, KEY_RETURN, KEY_LCONTROL, KEY_A, // 30 KEY_S, KEY_D, KEY_F, KEY_G, KEY_H, KEY_J, KEY_K, KEY_L, KEY_SEMICOLON, KEY_APOSTROPHE, // 40 KEY_GRAVE, KEY_LSHIFT, KEY_BACKSLASH, KEY_Z, KEY_X, KEY_C, KEY_V, KEY_B, KEY_N, KEY_M, KEY_COMMA, KEY_PERIOD, KEY_SLASH, KEY_RSHIFT, KEY_MULTIPLY, KEY_LALT, KEY_SPACE, KEY_CAPITAL, KEY_F1, KEY_F2, // 60 KEY_F3, KEY_F4, KEY_F5, KEY_F6, KEY_F7, KEY_F8, KEY_F9, KEY_F10, KEY_NUMLOCK, KEY_SCROLL, // 70 KEY_NUMPAD7, KEY_NUMPAD8, KEY_NUMPAD9, KEY_NUMPADSUBTRACT, KEY_NUMPAD4, KEY_NUMPAD5, KEY_NUMPAD6, KEY_NUMPADADD, KEY_NUMPAD1, KEY_NUMPAD2, // 80 KEY_NUMPAD3, KEY_NUMPAD0, KEY_NUMPADDECIMAL, KEY_NOOP, KEY_ZENKAKUHANKAKU, KEY_102ND, KEY_F11, KEY_F12, KEY_F13, KEY_F14, // 90 KEY_HIRAGANA, KEY_HENKAN, KEY_KATAKANAHIRAGANA, KEY_MUHENKAN, KEY_KPJPCOMMA, KEY_NUMPADENTER, KEY_RCONTROL, KEY_NUMPADDIVIDE, KEY_PRINTSCREEN, KEY_RALT, // 100 KEY_LINEFEED, KEY_HOME, KEY_UP, KEY_PGUP, KEY_LEFT, KEY_RIGHT, KEY_END, KEY_DOWN, KEY_PGDN, KEY_INSERT, // 110 KEY_DELETE, KEY_MACRO, KEY_MUTE, KEY_VOLUMEDOWN, KEY_VOLUMEUP, KEY_POWER, KEY_KPEQUAL, KEY_KPPLUSMINUS, KEY_PAUSE, KEY_SCALE, KEY_TOTAL_COUNT } EKeyCode; //============================================================================== /** * Keyboard modifier flags */ enum EKeyboardModifierFlags { MODIFIER_NONE = 0, MODIFIER_SHIFT = 1 << 0, MODIFIER_CTRL = 1 << 1, MODIFIER_ALT = 1 << 2, MODIFIER_KEYDOWN = 1 << 3, ///< One or more key is down }; //============================================================================== /** * Button codes */ enum EButtonCodes { BUTTON_A = 0, BUTTON_B, BUTTON_X, BUTTON_Y, BUTTON_L1, BUTTON_R1, BUTTON_THUMBL, BUTTON_THUMBR, BUTTON_SELECT, BUTTON_START, BUTTON_MODE, BUTTON_UP, BUTTON_DOWN, BUTTON_LEFT, BUTTON_RIGHT, BUTTON_CENTER, BUTTON_ENTER, BUTTON_TOTAL_COUNT }; //============================================================================== /** * Axis codes */ enum EAxisCodes { AXIS_X = 0, AXIS_Y, AXIS_Z, AXIS_RZ, AXIS_HAT_X, AXIS_HAT_Y, AXIS_LTRIGGER, AXIS_RTRIGGER, AXIS_TOTAL_COUNT }; } // namespace Q3DStudio