summaryrefslogtreecommitdiffstats
path: root/src/runtime/Qt3DSInputDefs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/Qt3DSInputDefs.h')
-rw-r--r--src/runtime/Qt3DSInputDefs.h413
1 files changed, 413 insertions, 0 deletions
diff --git a/src/runtime/Qt3DSInputDefs.h b/src/runtime/Qt3DSInputDefs.h
new file mode 100644
index 0000000..447e424
--- /dev/null
+++ b/src/runtime/Qt3DSInputDefs.h
@@ -0,0 +1,413 @@
+/****************************************************************************
+**
+** 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