#ifndef INTERACTABLEWIDGET_HPP_INCLUDED #define INTERACTABLEWIDGET_HPP_INCLUDED #include "../../Core/Classes/Widget.hpp" #include "../../Core/Classes/ItemInfo.hpp" #include "../../Core/Types/Tile.hpp" #include "../../Core/Types/Point.hpp" #include "../../Core/Types/Box.hpp" #include "../../Core/Types/Convex.hpp" #include "../../Core/Input.hpp" #include #include namespace Interactable { class Widget : public Internal::Widget { public: Widget(const Internal::Widget& W); Widget() = default; Widget(Widget&& Obj) = default; Widget(const Widget& Obj) = default; Widget& operator=(Widget&& Obj) = default; Widget& operator=(const Widget& Obj) = default; bool IsHidden() const; bool IsVisible() const; std::vector GetNormalizedItemIDs() const; Box GetBox() const; Point GetPoint() const; Point GetPoint(double PointGenAccuracy) const; bool Hover() const; bool Interact(const Button& B = BUTTON_LEFT) const; bool Interact(const std::string& Option) const; bool Interact(const std::vector& Options) const; bool Interact(const std::function& InteractMethod) const; }; } #endif // INTERACTABLEWIDGET_HPP_INCLUDED