diff options
Diffstat (limited to 'include/gui/List.hpp')
-rw-r--r-- | include/gui/List.hpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/gui/List.hpp b/include/gui/List.hpp new file mode 100644 index 0000000..23bf5ea --- /dev/null +++ b/include/gui/List.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include "Widget.hpp" +#include <vector> +#include <memory> + +namespace gsr { + class List : public Widget { + public: + enum class Orientation { + VERTICAL, + HORIZONTAL + }; + + List(Orientation orientation); + List(const List&) = delete; + List& operator=(const List&) = delete; + + bool on_event(mgl::Event &event, mgl::Window &window, mgl::vec2f offset) override; + void draw(mgl::Window &window, mgl::vec2f offset) override; + + void add_widget(std::unique_ptr<Widget> widget); + mgl::vec2f get_size() override; + protected: + std::vector<std::unique_ptr<Widget>> widgets; + Orientation orientation; + }; +}
\ No newline at end of file |