72 lines
1.5 KiB
C++
72 lines
1.5 KiB
C++
#pragma once
|
|
#include <cstdint>
|
|
#include <variant>
|
|
namespace renderive::web {
|
|
enum class Gallery_View_Input_Type : std::uint8_t {
|
|
Show,
|
|
Hide,
|
|
Leave
|
|
};
|
|
struct Gallery_View_Input {
|
|
Gallery_View_Input_Type type{};
|
|
};
|
|
enum class Gallery_Pointer_Input_Type : std::uint8_t {
|
|
Move,
|
|
Press,
|
|
Release
|
|
};
|
|
enum class Gallery_Mouse_Button : std::uint8_t {
|
|
None,
|
|
Left,
|
|
Right,
|
|
Middle
|
|
};
|
|
struct Gallery_Pointer_Input {
|
|
Gallery_Pointer_Input_Type type{};
|
|
double x{};
|
|
double y{};
|
|
double global_x{};
|
|
double global_y{};
|
|
Gallery_Mouse_Button button{};
|
|
std::uint8_t buttons{};
|
|
std::uint8_t modifiers{};
|
|
};
|
|
struct Gallery_Wheel_Input {
|
|
double x{};
|
|
double y{};
|
|
double global_x{};
|
|
double global_y{};
|
|
Gallery_Mouse_Button button{};
|
|
std::uint8_t buttons{};
|
|
std::uint8_t modifiers{};
|
|
double angle_delta_x{};
|
|
double angle_delta_y{};
|
|
double pixel_delta_x{};
|
|
double pixel_delta_y{};
|
|
};
|
|
enum class Gallery_Key_Input_Type : std::uint8_t {
|
|
Press,
|
|
Release
|
|
};
|
|
enum class Gallery_Key : std::uint16_t {
|
|
Unknown,
|
|
Escape,
|
|
Enter,
|
|
Space,
|
|
Delete,
|
|
Backspace,
|
|
Left,
|
|
Right,
|
|
Up,
|
|
Down
|
|
};
|
|
struct Gallery_Key_Input {
|
|
Gallery_Key_Input_Type type{};
|
|
Gallery_Key key{};
|
|
std::uint32_t native_key{};
|
|
std::uint8_t modifiers{};
|
|
bool auto_repeat{};
|
|
};
|
|
using Gallery_Input_Event = std::variant<Gallery_View_Input, Gallery_Pointer_Input, Gallery_Wheel_Input, Gallery_Key_Input>;
|
|
}
|