xmake.repo/packages/n/noesis/latest/Include/NsGui/InputEnums.h

354 lines
7.4 KiB
C
Raw Normal View History

2024-12-22 19:15:02 +08:00
////////////////////////////////////////////////////////////////////////////////////////////////////
// NoesisGUI - http://www.noesisengine.com
// Copyright (c) 2013 Noesis Technologies S.L. All Rights Reserved.
////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef __GUI_INPUTENUMS_H__
#define __GUI_INPUTENUMS_H__
#include <NsCore/Noesis.h>
#include <NsGui/CoreApi.h>
#include <NsCore/ReflectionDeclareEnum.h>
namespace Noesis
{
////////////////////////////////////////////////////////////////////////////////////////////////////
enum MouseButton: int32_t
{
MouseButton_Left,
MouseButton_Right,
MouseButton_Middle,
MouseButton_XButton1,
MouseButton_XButton2,
MouseButton_Count
};
////////////////////////////////////////////////////////////////////////////////////////////////////
enum MouseButtonState: int32_t
{
MouseButtonState_Released,
MouseButtonState_Pressed
};
////////////////////////////////////////////////////////////////////////////////////////////////////
enum MouseAction: int32_t
{
MouseAction_None,
MouseAction_LeftClick,
MouseAction_RightClick,
MouseAction_MiddleClick,
MouseAction_WheelClick,
MouseAction_LeftDoubleClick,
MouseAction_RightDoubleClick,
MouseAction_MiddleDoubleClick
};
////////////////////////////////////////////////////////////////////////////////////////////////////
enum Key: int32_t
{
Key_None,
Key_Cancel,
Key_Back,
Key_Tab,
Key_LineFeed,
Key_Clear,
Key_Return,
Key_Enter = Key_Return,
Key_Pause,
Key_Capital,
Key_CapsLock = Key_Capital,
Key_KanaMode,
Key_HangulMode = Key_KanaMode,
Key_JunjaMode,
Key_FinalMode,
Key_HanjaMode,
Key_KanjiMode = Key_HanjaMode,
Key_Escape,
Key_ImeConvert,
Key_ImeNonConvert,
Key_ImeAccept,
Key_ImeModeChange,
Key_Space,
Key_Prior,
Key_PageUp = Key_Prior,
Key_Next,
Key_PageDown = Key_Next,
Key_End,
Key_Home,
Key_Left,
Key_Up,
Key_Right,
Key_Down,
Key_Select,
Key_Print,
Key_Execute,
Key_Snapshot,
Key_PrintScreen = Key_Snapshot,
Key_Insert,
Key_Delete,
Key_Help,
Key_D0,
Key_D1,
Key_D2,
Key_D3,
Key_D4,
Key_D5,
Key_D6,
Key_D7,
Key_D8,
Key_D9,
Key_A,
Key_B,
Key_C,
Key_D,
Key_E,
Key_F,
Key_G,
Key_H,
Key_I,
Key_J,
Key_K,
Key_L,
Key_M,
Key_N,
Key_O,
Key_P,
Key_Q,
Key_R,
Key_S,
Key_T,
Key_U,
Key_V,
Key_W,
Key_X,
Key_Y,
Key_Z,
Key_LWin,
Key_RWin,
Key_Apps,
Key_Sleep,
Key_NumPad0,
Key_NumPad1,
Key_NumPad2,
Key_NumPad3,
Key_NumPad4,
Key_NumPad5,
Key_NumPad6,
Key_NumPad7,
Key_NumPad8,
Key_NumPad9,
Key_Multiply,
Key_Add,
Key_Separator,
Key_Subtract,
Key_Decimal,
Key_Divide,
Key_F1,
Key_F2,
Key_F3,
Key_F4,
Key_F5,
Key_F6,
Key_F7,
Key_F8,
Key_F9,
Key_F10,
Key_F11,
Key_F12,
Key_F13,
Key_F14,
Key_F15,
Key_F16,
Key_F17,
Key_F18,
Key_F19,
Key_F20,
Key_F21,
Key_F22,
Key_F23,
Key_F24,
Key_NumLock,
Key_Scroll,
Key_LeftShift,
Key_RightShift,
Key_LeftCtrl,
Key_RightCtrl,
Key_LeftAlt,
Key_RightAlt,
Key_BrowserBack,
Key_BrowserForward,
Key_BrowserRefresh,
Key_BrowserStop,
Key_BrowserSearch,
Key_BrowserFavorites,
Key_BrowserHome,
Key_VolumeMute,
Key_VolumeDown,
Key_VolumeUp,
Key_MediaNextTrack,
Key_MediaPreviousTrack,
Key_MediaStop,
Key_MediaPlayPause,
Key_LaunchMail,
Key_SelectMedia,
Key_LaunchApplication1,
Key_LaunchApplication2,
Key_Oem1,
Key_OemSemicolon = Key_Oem1,
Key_OemPlus,
Key_OemComma,
Key_OemMinus,
Key_OemPeriod,
Key_Oem2,
Key_OemQuestion = Key_Oem2,
Key_Oem3,
Key_OemTilde = Key_Oem3,
Key_AbntC1,
Key_AbntC2,
Key_Oem4,
Key_OemOpenBrackets = Key_Oem4,
Key_Oem5,
Key_OemPipe = Key_Oem5,
Key_Oem6,
Key_OemCloseBrackets = Key_Oem6,
Key_Oem7,
Key_OemQuotes = Key_Oem7,
Key_Oem8,
Key_Oem102,
Key_OemBackslash = Key_Oem102,
Key_ImeProcessed,
Key_System,
Key_OemAttn,
Key_DbeAlphanumeric = Key_OemAttn,
Key_OemFinish,
Key_DbeKatakana = Key_OemFinish,
Key_OemCopy,
Key_DbeHiragana = Key_OemCopy,
Key_OemAuto,
Key_DbeSbcsChar = Key_OemAuto,
Key_OemEnlw,
Key_DbeDbcsChar = Key_OemEnlw,
Key_OemBackTab,
Key_DbeRoman = Key_OemBackTab,
Key_Attn,
Key_DbeNoRoman = Key_Attn,
Key_CrSel,
Key_DbeEnterWordRegisterMode = Key_CrSel,
Key_ExSel,
Key_DbeEnterImeConfigureMode = Key_ExSel,
Key_EraseEof,
Key_DbeFlushString = Key_EraseEof,
Key_Play,
Key_DbeCodeInput = Key_Play,
Key_Zoom,
Key_DbeNoCodeInput = Key_Zoom,
Key_NoName,
Key_DbeDetermineString = Key_NoName,
Key_Pa1,
Key_DbeEnterDialogConversionMode = Key_Pa1,
Key_OemClear,
Key_DeadCharProcessed,
Key_PageLeft,
Key_PageRight,
Key_GamepadLeft,
Key_GamepadUp,
Key_GamepadRight,
Key_GamepadDown,
Key_GamepadAccept,
Key_GamepadCancel,
Key_GamepadMenu,
Key_GamepadView,
Key_GamepadPageUp,
Key_GamepadPageDown,
Key_GamepadPageLeft,
Key_GamepadPageRight,
Key_GamepadContext1,
Key_GamepadContext2,
Key_GamepadContext3,
Key_GamepadContext4,
Key_Count
};
////////////////////////////////////////////////////////////////////////////////////////////////////
enum KeyStates: int32_t
{
/// The key is not pressed (same as up).
KeyStates_None = 0,
/// The key is pressed.
KeyStates_Down = 1,
/// The key is toggled on.
KeyStates_Toggled = 2
};
////////////////////////////////////////////////////////////////////////////////////////////////////
enum ModifierKeys: int32_t
{
ModifierKeys_None = 0,
ModifierKeys_Alt = 1,
ModifierKeys_Control = 2,
ModifierKeys_Shift = 4,
ModifierKeys_Windows = 8
};
////////////////////////////////////////////////////////////////////////////////////////////////////
/// Specifies how manipulation events are interpreted
////////////////////////////////////////////////////////////////////////////////////////////////////
enum ManipulationModes: int32_t
{
/// Manipulation events do not occur
ManipulationModes_None = 0,
/// A manipulation can translate an object horizontally
ManipulationModes_TranslateX = 1,
/// A manipulation can translate an object vertically
ManipulationModes_TranslateY = 2,
/// A manipulation can translate an object
ManipulationModes_Translate = ManipulationModes_TranslateX | ManipulationModes_TranslateY,
/// A manipulation can rotate an object
ManipulationModes_Rotate = 4,
/// A manipulation can scale an object
ManipulationModes_Scale = 8,
/// A manipulation can scale, translate, or rotate an object
ManipulationModes_All = ManipulationModes_Translate | ManipulationModes_Rotate |
ManipulationModes_Scale
};
}
NS_DECLARE_REFLECTION_ENUM_EXPORT(NS_GUI_CORE_API, Noesis::MouseAction)
NS_DECLARE_REFLECTION_ENUM_EXPORT(NS_GUI_CORE_API, Noesis::Key)
NS_DECLARE_REFLECTION_ENUM_EXPORT(NS_GUI_CORE_API, Noesis::ModifierKeys)
NS_DECLARE_REFLECTION_ENUM_EXPORT(NS_GUI_CORE_API, Noesis::ManipulationModes)
#endif