1 #ifndef BLOBS_UI_WIDGET_HPP_
2 #define BLOBS_UI_WIDGET_HPP_
5 #include "../graphics/glm.hpp"
23 Widget(const Widget &) = delete;
24 Widget &operator =(const Widget &) = delete;
26 Widget(Widget &&) = delete;
27 Widget &operator =(Widget &&) = delete;
30 Widget *Position(const glm::vec3 &p) noexcept { pos = p; return this; }
31 const glm::vec3 &Position() const noexcept { return pos; }
32 glm::vec3 AlignedPosition() noexcept;
33 glm::vec3 TopLeft() noexcept;
35 Widget *Origin(Gravity o) noexcept { origin = o; return this; }
36 Gravity Origin() const noexcept { return origin; }
38 virtual glm::vec2 Size() = 0;
39 virtual void Draw(app::Assets &, graphics::Viewport &) noexcept = 0;