diff options
Diffstat (limited to 'source/modules/asura-core/input')
-rw-r--r-- | source/modules/asura-core/input/clipboard.cpp | 0 | ||||
-rw-r--r-- | source/modules/asura-core/input/clipboard.h | 37 | ||||
-rw-r--r-- | source/modules/asura-core/input/cursor.cpp | 0 | ||||
-rw-r--r-- | source/modules/asura-core/input/cursor.defs | 25 | ||||
-rw-r--r-- | source/modules/asura-core/input/cursor.h | 54 | ||||
-rw-r--r-- | source/modules/asura-core/input/cursor_impl_sdl.cpp | 0 | ||||
-rw-r--r-- | source/modules/asura-core/input/cursor_impl_sdl.h | 0 | ||||
-rw-r--r-- | source/modules/asura-core/input/event.h | 45 | ||||
-rw-r--r-- | source/modules/asura-core/input/input_device.hpp | 31 | ||||
-rw-r--r-- | source/modules/asura-core/input/joypad.h | 0 | ||||
-rw-r--r-- | source/modules/asura-core/input/keyboard.cpp | 0 | ||||
-rw-r--r-- | source/modules/asura-core/input/keyboard.defs | 482 | ||||
-rw-r--r-- | source/modules/asura-core/input/keyboard.h | 73 | ||||
-rw-r--r-- | source/modules/asura-core/input/mouse.cpp | 0 | ||||
-rw-r--r-- | source/modules/asura-core/input/mouse.defs | 7 | ||||
-rw-r--r-- | source/modules/asura-core/input/mouse.h | 56 |
16 files changed, 810 insertions, 0 deletions
diff --git a/source/modules/asura-core/input/clipboard.cpp b/source/modules/asura-core/input/clipboard.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-core/input/clipboard.cpp diff --git a/source/modules/asura-core/input/clipboard.h b/source/modules/asura-core/input/clipboard.h new file mode 100644 index 0000000..4cecd55 --- /dev/null +++ b/source/modules/asura-core/input/clipboard.h @@ -0,0 +1,37 @@ +#ifndef __ASURA_ENGINE_CLIPBOARD_H__ +#define __ASURA_ENGINE_CLIPBOARD_H__ + +#include "Text/String.hpp" +#include "InputDevice.hpp" + +namespace AsuraEngine +{ + namespace Input + { + + class Clipboard ASURA_FINAL : public InputDevice<Clipboard> + { + public: + + Clipboard(); + + Text::String GetString(); + + void SetString(const Text::String& text); + + //---------------------------------------------------------------------------------------------------------- + + LUAX_DECL_SINGLETON(Clipboard); + + //---------------------------------------------------------------------------------------------------------- + + private: + + ~Clipboard(); + + }; + + }; +} + +#endif
\ No newline at end of file diff --git a/source/modules/asura-core/input/cursor.cpp b/source/modules/asura-core/input/cursor.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-core/input/cursor.cpp diff --git a/source/modules/asura-core/input/cursor.defs b/source/modules/asura-core/input/cursor.defs new file mode 100644 index 0000000..f8b8492 --- /dev/null +++ b/source/modules/asura-core/input/cursor.defs @@ -0,0 +1,25 @@ + +// Types of system cursors. +enum SystemCursor +{ + CURSOR_ARROW, + CURSOR_IBEAM, + CURSOR_WAIT, + CURSOR_CROSSHAIR, + CURSOR_WAITARROW, + CURSOR_SIZENWSE, + CURSOR_SIZENESW, + CURSOR_SIZEWE, + CURSOR_SIZENS, + CURSOR_SIZEALL, + CURSOR_NO, + CURSOR_HAND, + CURSOR_MAX_ENUM +}; + +enum CursorType +{ + CURSORTYPE_SYSTEM, + CURSORTYPE_IMAGE, + CURSORTYPE_MAX_ENUM +}; diff --git a/source/modules/asura-core/input/cursor.h b/source/modules/asura-core/input/cursor.h new file mode 100644 index 0000000..05503ee --- /dev/null +++ b/source/modules/asura-core/input/cursor.h @@ -0,0 +1,54 @@ +#ifndef __ASURA_ENGINE_CURSOR_H__ +#define __ASURA_ENGINE_CURSOR_H__ + +#include <SDL2/SDL.h> + +#include <asura-utils/scripting/portable.hpp> + +#include "../graphics/image_data.h" + +#include "input_device.hpp" + +namespace AsuraEngine +{ + namespace Input + { + + class CursorImpl; + + // ָö +#include "Cursor.defs" + + class Cursor + : public AEScripting::Portable<Cursor> + { + public: + + LUAX_DECL_FACTORY(Cursor); + + Cursor(Graphics::ImageData& imageData, int hotx, int hoty); + Cursor(SystemCursor cursortype); + + ~Cursor(); + + SDL_Cursor* GetHandle() const; + CursorType GetType() const; + SystemCursor GetSystemType() const; + + private: + + CursorType mType; + SystemCursor mSystemType; + CursorImpl* mImpl; + + }; + + ASURA_ABSTRACT class CursorImpl + { + + }; + + } +} + +#endif
\ No newline at end of file diff --git a/source/modules/asura-core/input/cursor_impl_sdl.cpp b/source/modules/asura-core/input/cursor_impl_sdl.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-core/input/cursor_impl_sdl.cpp diff --git a/source/modules/asura-core/input/cursor_impl_sdl.h b/source/modules/asura-core/input/cursor_impl_sdl.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-core/input/cursor_impl_sdl.h diff --git a/source/modules/asura-core/input/event.h b/source/modules/asura-core/input/event.h new file mode 100644 index 0000000..a24e806 --- /dev/null +++ b/source/modules/asura-core/input/event.h @@ -0,0 +1,45 @@ +#ifndef __ASURA_ENGINE_EVENT_H__ +#define __ASURA_ENGINE_EVENT_H__ + +namespace AsuraEngine +{ + namespace Input + { + + enum EventType + { + EVENT_BEGIN_MOUSE__ , + EVENT_LEFT_DOWN , + EVENT_LEFT_UP , + EVENT_LEFT_DCLICK , + EVENT_MIDDLE_DOWN , + EVENT_MIDDLE_UP , + EVENT_MIDDLE_DCLICK , + EVENT_RIGHT_DOWN , + EVENT_RIGHT_UP , + EVENT_RIGHT_DCLICK , + EVENT_MOTION , + EVENT_END_MOUSE__ , + EVENT_ENTER_WINDOW , + EVENT_LEAVE_WINDOW , + EVENT_MOUSEWHEEL + }; + + struct Event + { + int type; + union + { + // 갴¼ + struct { + int id; + } button; + }; + }; + + } +} + +namespace AEInput = AsuraEngine::Input; + +#endif
\ No newline at end of file diff --git a/source/modules/asura-core/input/input_device.hpp b/source/modules/asura-core/input/input_device.hpp new file mode 100644 index 0000000..1d08d09 --- /dev/null +++ b/source/modules/asura-core/input/input_device.hpp @@ -0,0 +1,31 @@ +#ifndef __ASURA_ENGINE_INPUT_BASE_H__ +#define __ASURA_ENGINE_INPUT_BASE_H__ + +#include <asura-utils/scripting/portable.hpp> + +#include "../core_config.h" +#include "../singleton.hpp" + +namespace AsuraEngine +{ + namespace Input + { + + /// + /// 豸һ + /// + template<class T> + ASURA_ABSTRACT class InputDevice + : virtual public Scripting::Portable<T> + , virtual public Singleton<T> + { + public: + InputDevice(); + virtual ~InputDevice(); + + }; + + } +} + +#endif
\ No newline at end of file diff --git a/source/modules/asura-core/input/joypad.h b/source/modules/asura-core/input/joypad.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-core/input/joypad.h diff --git a/source/modules/asura-core/input/keyboard.cpp b/source/modules/asura-core/input/keyboard.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-core/input/keyboard.cpp diff --git a/source/modules/asura-core/input/keyboard.defs b/source/modules/asura-core/input/keyboard.defs new file mode 100644 index 0000000..8f04dc2 --- /dev/null +++ b/source/modules/asura-core/input/keyboard.defs @@ -0,0 +1,482 @@ + +/** +* Keyboard keys. They are dependent on the current layout of the keyboard. +**/ +enum Key +{ + KEY_UNKNOWN, + + KEY_RETURN, + KEY_ESCAPE, + KEY_BACKSPACE, + KEY_TAB, + KEY_SPACE, + KEY_EXCLAIM, + KEY_QUOTEDBL, + KEY_HASH, + KEY_PERCENT, + KEY_DOLLAR, + KEY_AMPERSAND, + KEY_QUOTE, + KEY_LEFTPAREN, + KEY_RIGHTPAREN, + KEY_ASTERISK, + KEY_PLUS, + KEY_COMMA, + KEY_MINUS, + KEY_PERIOD, + KEY_SLASH, + KEY_0, + KEY_1, + KEY_2, + KEY_3, + KEY_4, + KEY_5, + KEY_6, + KEY_7, + KEY_8, + KEY_9, + KEY_COLON, + KEY_SEMICOLON, + KEY_LESS, + KEY_EQUALS, + KEY_GREATER, + KEY_QUESTION, + KEY_AT, + + KEY_LEFTBRACKET, + KEY_BACKSLASH, + KEY_RIGHTBRACKET, + KEY_CARET, + KEY_UNDERSCORE, + KEY_BACKQUOTE, + 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_CAPSLOCK, + + 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_PRINTSCREEN, + KEY_SCROLLLOCK, + KEY_PAUSE, + KEY_INSERT, + KEY_HOME, + KEY_PAGEUP, + KEY_DELETE, + KEY_END, + KEY_PAGEDOWN, + KEY_RIGHT, + KEY_LEFT, + KEY_DOWN, + KEY_UP, + + KEY_NUMLOCKCLEAR, + KEY_KP_DIVIDE, + KEY_KP_MULTIPLY, + KEY_KP_MINUS, + KEY_KP_PLUS, + KEY_KP_ENTER, + KEY_KP_1, + KEY_KP_2, + KEY_KP_3, + KEY_KP_4, + KEY_KP_5, + KEY_KP_6, + KEY_KP_7, + KEY_KP_8, + KEY_KP_9, + KEY_KP_0, + KEY_KP_PERIOD, + KEY_KP_COMMA, + KEY_KP_EQUALS, + + KEY_APPLICATION, + KEY_POWER, + 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_EXECUTE, + KEY_HELP, + KEY_MENU, + KEY_SELECT, + KEY_STOP, + KEY_AGAIN, + KEY_UNDO, + KEY_CUT, + KEY_COPY, + KEY_PASTE, + KEY_FIND, + KEY_MUTE, + KEY_VOLUMEUP, + KEY_VOLUMEDOWN, + + KEY_ALTERASE, + KEY_SYSREQ, + KEY_CANCEL, + KEY_CLEAR, + KEY_PRIOR, + KEY_RETURN2, + KEY_SEPARATOR, + KEY_OUT, + KEY_OPER, + KEY_CLEARAGAIN, + + KEY_THOUSANDSSEPARATOR, + KEY_DECIMALSEPARATOR, + KEY_CURRENCYUNIT, + KEY_CURRENCYSUBUNIT, + + KEY_LCTRL, + KEY_LSHIFT, + KEY_LALT, + KEY_LGUI, + KEY_RCTRL, + KEY_RSHIFT, + KEY_RALT, + KEY_RGUI, + + KEY_MODE, + + KEY_AUDIONEXT, + KEY_AUDIOPREV, + KEY_AUDIOSTOP, + KEY_AUDIOPLAY, + KEY_AUDIOMUTE, + KEY_MEDIASELECT, + KEY_WWW, + KEY_MAIL, + KEY_CALCULATOR, + KEY_COMPUTER, + KEY_APP_SEARCH, + KEY_APP_HOME, + KEY_APP_BACK, + KEY_APP_FORWARD, + KEY_APP_STOP, + KEY_APP_REFRESH, + KEY_APP_BOOKMARKS, + + KEY_BRIGHTNESSDOWN, + KEY_BRIGHTNESSUP, + KEY_DISPLAYSWITCH, + KEY_KBDILLUMTOGGLE, + KEY_KBDILLUMDOWN, + KEY_KBDILLUMUP, + KEY_EJECT, + KEY_SLEEP, + + KEY_MAX_ENUM +}; + +/** +* Scancodes represent physical keys independent of the current layout. +* Their names may not match the names of the keys printed on the keyboard. +* Some of them are very esoteric... +**/ +enum Scancode +{ + SCANCODE_UNKNOWN, + + SCANCODE_A, + SCANCODE_B, + SCANCODE_C, + SCANCODE_D, + SCANCODE_E, + SCANCODE_F, + SCANCODE_G, + SCANCODE_H, + SCANCODE_I, + SCANCODE_J, + SCANCODE_K, + SCANCODE_L, + SCANCODE_M, + SCANCODE_N, + SCANCODE_O, + SCANCODE_P, + SCANCODE_Q, + SCANCODE_R, + SCANCODE_S, + SCANCODE_T, + SCANCODE_U, + SCANCODE_V, + SCANCODE_W, + SCANCODE_X, + SCANCODE_Y, + SCANCODE_Z, + + SCANCODE_1, + SCANCODE_2, + SCANCODE_3, + SCANCODE_4, + SCANCODE_5, + SCANCODE_6, + SCANCODE_7, + SCANCODE_8, + SCANCODE_9, + SCANCODE_0, + + SCANCODE_RETURN, + SCANCODE_ESCAPE, + SCANCODE_BACKSPACE, + SCANCODE_TAB, + SCANCODE_SPACE, + + SCANCODE_MINUS, + SCANCODE_EQUALS, + SCANCODE_LEFTBRACKET, + SCANCODE_RIGHTBRACKET, + SCANCODE_BACKSLASH, + SCANCODE_NONUSHASH, + SCANCODE_SEMICOLON, + SCANCODE_APOSTROPHE, + SCANCODE_GRAVE, + SCANCODE_COMMA, + SCANCODE_PERIOD, + SCANCODE_SLASH, + + SCANCODE_CAPSLOCK, + + SCANCODE_F1, + SCANCODE_F2, + SCANCODE_F3, + SCANCODE_F4, + SCANCODE_F5, + SCANCODE_F6, + SCANCODE_F7, + SCANCODE_F8, + SCANCODE_F9, + SCANCODE_F10, + SCANCODE_F11, + SCANCODE_F12, + + SCANCODE_PRINTSCREEN, + SCANCODE_SCROLLLOCK, + SCANCODE_PAUSE, + SCANCODE_INSERT, + SCANCODE_HOME, + SCANCODE_PAGEUP, + SCANCODE_DELETE, + SCANCODE_END, + SCANCODE_PAGEDOWN, + SCANCODE_RIGHT, + SCANCODE_LEFT, + SCANCODE_DOWN, + SCANCODE_UP, + + SCANCODE_NUMLOCKCLEAR, + SCANCODE_KP_DIVIDE, + SCANCODE_KP_MULTIPLY, + SCANCODE_KP_MINUS, + SCANCODE_KP_PLUS, + SCANCODE_KP_ENTER, + SCANCODE_KP_1, + SCANCODE_KP_2, + SCANCODE_KP_3, + SCANCODE_KP_4, + SCANCODE_KP_5, + SCANCODE_KP_6, + SCANCODE_KP_7, + SCANCODE_KP_8, + SCANCODE_KP_9, + SCANCODE_KP_0, + SCANCODE_KP_PERIOD, + + SCANCODE_NONUSBACKSLASH, + SCANCODE_APPLICATION, + SCANCODE_POWER, + SCANCODE_KP_EQUALS, + SCANCODE_F13, + SCANCODE_F14, + SCANCODE_F15, + SCANCODE_F16, + SCANCODE_F17, + SCANCODE_F18, + SCANCODE_F19, + SCANCODE_F20, + SCANCODE_F21, + SCANCODE_F22, + SCANCODE_F23, + SCANCODE_F24, + SCANCODE_EXECUTE, + SCANCODE_HELP, + SCANCODE_MENU, + SCANCODE_SELECT, + SCANCODE_STOP, + SCANCODE_AGAIN, + SCANCODE_UNDO, + SCANCODE_CUT, + SCANCODE_COPY, + SCANCODE_PASTE, + SCANCODE_FIND, + SCANCODE_MUTE, + SCANCODE_VOLUMEUP, + SCANCODE_VOLUMEDOWN, + SCANCODE_KP_COMMA, + SCANCODE_KP_EQUALSAS400, + + SCANCODE_INTERNATIONAL1, + SCANCODE_INTERNATIONAL2, + SCANCODE_INTERNATIONAL3, + SCANCODE_INTERNATIONAL4, + SCANCODE_INTERNATIONAL5, + SCANCODE_INTERNATIONAL6, + SCANCODE_INTERNATIONAL7, + SCANCODE_INTERNATIONAL8, + SCANCODE_INTERNATIONAL9, + SCANCODE_LANG1, + SCANCODE_LANG2, + SCANCODE_LANG3, + SCANCODE_LANG4, + SCANCODE_LANG5, + SCANCODE_LANG6, + SCANCODE_LANG7, + SCANCODE_LANG8, + SCANCODE_LANG9, + + SCANCODE_ALTERASE, + SCANCODE_SYSREQ, + SCANCODE_CANCEL, + SCANCODE_CLEAR, + SCANCODE_PRIOR, + SCANCODE_RETURN2, + SCANCODE_SEPARATOR, + SCANCODE_OUT, + SCANCODE_OPER, + SCANCODE_CLEARAGAIN, + SCANCODE_CRSEL, + SCANCODE_EXSEL, + + SCANCODE_KP_00, + SCANCODE_KP_000, + SCANCODE_THOUSANDSSEPARATOR, + SCANCODE_DECIMALSEPARATOR, + SCANCODE_CURRENCYUNIT, + SCANCODE_CURRENCYSUBUNIT, + SCANCODE_KP_LEFTPAREN, + SCANCODE_KP_RIGHTPAREN, + SCANCODE_KP_LEFTBRACE, + SCANCODE_KP_RIGHTBRACE, + SCANCODE_KP_TAB, + SCANCODE_KP_BACKSPACE, + SCANCODE_KP_A, + SCANCODE_KP_B, + SCANCODE_KP_C, + SCANCODE_KP_D, + SCANCODE_KP_E, + SCANCODE_KP_F, + SCANCODE_KP_XOR, + SCANCODE_KP_POWER, + SCANCODE_KP_PERCENT, + SCANCODE_KP_LESS, + SCANCODE_KP_GREATER, + SCANCODE_KP_AMPERSAND, + SCANCODE_KP_DBLAMPERSAND, + SCANCODE_KP_VERTICALBAR, + SCANCODE_KP_DBLVERTICALBAR, + SCANCODE_KP_COLON, + SCANCODE_KP_HASH, + SCANCODE_KP_SPACE, + SCANCODE_KP_AT, + SCANCODE_KP_EXCLAM, + SCANCODE_KP_MEMSTORE, + SCANCODE_KP_MEMRECALL, + SCANCODE_KP_MEMCLEAR, + SCANCODE_KP_MEMADD, + SCANCODE_KP_MEMSUBTRACT, + SCANCODE_KP_MEMMULTIPLY, + SCANCODE_KP_MEMDIVIDE, + SCANCODE_KP_PLUSMINUS, + SCANCODE_KP_CLEAR, + SCANCODE_KP_CLEARENTRY, + SCANCODE_KP_BINARY, + SCANCODE_KP_OCTAL, + SCANCODE_KP_DECIMAL, + SCANCODE_KP_HEXADECIMAL, + + SCANCODE_LCTRL, + SCANCODE_LSHIFT, + SCANCODE_LALT, + SCANCODE_LGUI, + SCANCODE_RCTRL, + SCANCODE_RSHIFT, + SCANCODE_RALT, + SCANCODE_RGUI, + + SCANCODE_MODE, + + SCANCODE_AUDIONEXT, + SCANCODE_AUDIOPREV, + SCANCODE_AUDIOSTOP, + SCANCODE_AUDIOPLAY, + SCANCODE_AUDIOMUTE, + SCANCODE_MEDIASELECT, + SCANCODE_WWW, + SCANCODE_MAIL, + SCANCODE_CALCULATOR, + SCANCODE_COMPUTER, + SCANCODE_AC_SEARCH, + SCANCODE_AC_HOME, + SCANCODE_AC_BACK, + SCANCODE_AC_FORWARD, + SCANCODE_AC_STOP, + SCANCODE_AC_REFRESH, + SCANCODE_AC_BOOKMARKS, + + SCANCODE_BRIGHTNESSDOWN, + SCANCODE_BRIGHTNESSUP, + SCANCODE_DISPLAYSWITCH, + SCANCODE_KBDILLUMTOGGLE, + SCANCODE_KBDILLUMDOWN, + SCANCODE_KBDILLUMUP, + SCANCODE_EJECT, + SCANCODE_SLEEP, + + SCANCODE_APP1, + SCANCODE_APP2, + + SCANCODE_MAX_ENUM +}; diff --git a/source/modules/asura-core/input/keyboard.h b/source/modules/asura-core/input/keyboard.h new file mode 100644 index 0000000..1480d06 --- /dev/null +++ b/source/modules/asura-core/input/keyboard.h @@ -0,0 +1,73 @@ +//#ifndef __ASURA_INPUT_KEYBOARD_H__ +//#define __ASURA_INPUT_KEYBOARD_H__ +// +//#include <SDL2/SDL.h> +// +//#include "InputDevice.hpp" +//#include "Scripting/Portable.h" +// +//namespace AsuraEngine +//{ +// namespace Input +// { +// +// class Keyboard ASURA_FINAL : public InputDevice<Keyboard> +// { +// public: +// +// // صö +// #include "Keyboard.defs" +// +// Keyboard(); +// +// void SetKeyRepeat(bool enable); +// bool HasKeyRepeat() const; +// bool IsDown(const std::vector<Key> &keylist) const; +// bool IsScancodeDown(const std::vector<Scancode> &scancodelist) const; +// +// Key GetKeyFromScancode(Scancode scancode) const; +// Scancode GetScancodeFromKey(Key key) const; +// +// void SetTextInput(bool enable); +// void SetTextInput(bool enable, double x, double y, double w, double h); +// bool HasTextInput() const; +// bool HasScreenKeyboard() const; +// +// bool GetConstant(Scancode in, SDL_Scancode &out); +// bool GetConstant(SDL_Scancode in, Scancode &out); +// +// private: +// +// ~Keyboard(); +// +// public: +// +// //---------------------------------------------------------------------------------------------------------- +// +// LUAX_DECL_SINGLETON(Keyboard); // ͨAsuraEngine.KeyboardֱӷʣûNew +// +// LUAX_DECL_ENUM(Key); +// LUAX_DECL_ENUM(ScanCode); +// +// LUAX_DECL_METHOD(SetKeyRepeat); +// LUAX_DECL_METHOD(HasKeyRepeat); +// LUAX_DECL_METHOD(IsDown); +// LUAX_DECL_METHOD(IsScancodeDown); +// +// LUAX_DECL_METHOD(GetKeyFromScancode); +// LUAX_DECL_METHOD(GetScancodeFromKey); +// +// LUAX_DECL_METHOD(SetTextInput); +// LUAX_DECL_METHOD(HasTextInput); +// LUAX_DECL_METHOD(HasScreenKeyboard); +// +// LUAX_DECL_METHOD(GetConstant); +// +// //---------------------------------------------------------------------------------------------------------- +// +// }; +// +// } +//} +// +//#endif
\ No newline at end of file diff --git a/source/modules/asura-core/input/mouse.cpp b/source/modules/asura-core/input/mouse.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-core/input/mouse.cpp diff --git a/source/modules/asura-core/input/mouse.defs b/source/modules/asura-core/input/mouse.defs new file mode 100644 index 0000000..de1d117 --- /dev/null +++ b/source/modules/asura-core/input/mouse.defs @@ -0,0 +1,7 @@ + +enum MouseButton +{ + MOUSE_BUTTON_LEFT, + MOUSE_BUTTON_MIDDLE, + MOUSE_BUTTON_RIGHT, +}; diff --git a/source/modules/asura-core/input/mouse.h b/source/modules/asura-core/input/mouse.h new file mode 100644 index 0000000..3ab67fa --- /dev/null +++ b/source/modules/asura-core/input/mouse.h @@ -0,0 +1,56 @@ +#ifndef __ASURA_ENGINE_MOUSE_H__ +#define __ASURA_ENGINE_MOUSE_H__ + +#include "cursor.h" +#include "input_device.hpp" + +namespace AsuraEngine +{ + namespace Input + { + + class Mouse : public InputDevice<Mouse> + { + public: + + /// + /// ͼƬйָʹϵͳָ + /// + Cursor *CreateCursor(Graphics::ImageData *data, int hotx, int hoty); + Cursor *GetSystemCursor(Cursor::SystemCursor cursortype); + + void SetCursor(Cursor *cursor); + void SetCursor() ; + + Cursor* GetCursor() const; + + bool IsCursorSupported() const; + + double GetX() const; + double GetY() const; + void GetPosition(double &x, double &y) const; + void GetX(double x) ; + void SetY(double y) ; + void SetPosition(double x, double y) ; + void SetVisible(bool visible) ; + bool IsDown(const std::vector<int> &buttons) const; + bool IsVisible() const; + void SetGrabbed(bool grab) ; + bool IsGrabbed() const; + bool SetRelativeMode(bool relative) ; + bool GetRelativeMode() const; + + //---------------------------------------------------------------------------------------------------------- + + LUAX_DECL_SINGLETON(Mouse); + + //---------------------------------------------------------------------------------------------------------- + + private: + + }; + + } +} + +#endif
\ No newline at end of file |