aboutsummaryrefslogtreecommitdiff
path: root/include/gui/Subsection.hpp
blob: 4da6baf9c73195ee8a1776b12e0e6c65ad542666 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once

#include "Widget.hpp"
#include "Label.hpp"
#include <memory>

namespace gsr {
    class Subsection : public Widget {
    public:
        // If size width or height is 0 then the size in that direction is the size of the widgets
        Subsection(const char *title, std::unique_ptr<Widget> inner_widget, mgl::vec2f size);
        Subsection(const Subsection&) = delete;
        Subsection& operator=(const Subsection&) = delete;

        bool on_event(mgl::Event &event, mgl::Window &window, mgl::vec2f offset) override;
        void draw(mgl::Window &window, mgl::vec2f offset) override;

        mgl::vec2f get_size() override;
        mgl::vec2f get_inner_size() override;
    private:
        Label label;
        std::unique_ptr<Widget> inner_widget;
        mgl::vec2f size;
    };
}