#pragma once #include #include 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; }