#ifndef CLIENT_WINDOW_INVENTORY_WINDOW_HH_ #define CLIENT_WINDOW_INVENTORY_WINDOW_HH_ #include #include #include "client/item/item.hh" #include "client/render/draw.hh" #include "client/state/state.hh" #include "client/window/basic_window.hh" namespace client { namespace window { class inventory_window : public basic_window { private: std::optional grabbed; private: std::optional maybe_get_inventory_index(const glm::vec2& pos) const noexcept; private: bool maybe_handle_mousebuttondown(const SDL_Event& event) noexcept; bool maybe_handle_mousebuttonup(const SDL_Event& event) noexcept; public: template inventory_window(Args&&... args) noexcept : basic_window(std::forward(args)...) {} virtual ~inventory_window() noexcept {} virtual bool maybe_handle_event(const SDL_Event& event) noexcept override; virtual void draw() noexcept override; }; } // namespace window } // namespace client #endif