]> git.localhorst.tv Git - blobs.git/blob - src/ui/Meter.hpp
fix layout
[blobs.git] / src / ui / Meter.hpp
1 #ifndef BLOBS_UI_METER_HPP_
2 #define BLOBS_UI_METER_HPP_
3
4 #include "Widget.hpp"
5
6
7 namespace blobs {
8 namespace ui {
9
10 class Meter
11 : public Widget {
12
13 public:
14         Meter();
15         ~Meter() override;
16
17 public:
18         Meter *Size(const glm::vec2 &s) noexcept { size = s; BreakParentLayout(); return this; }
19         Meter *Padding(const glm::vec2 &p) noexcept { padding = p; BreakParentLayout(); return this; }
20         Meter *Border(float b) noexcept { border = b; BreakParentLayout(); return this; }
21
22         Meter *FillColor(const glm::vec4 &c) noexcept { fill_color = c; return this; }
23         Meter *BorderColor(const glm::vec4 &c) noexcept { border_color = c; return this; }
24
25         Meter *Value(float v) noexcept { value = v; return this; }
26
27         glm::vec2 Size() override;
28         void Draw(app::Assets &, graphics::Viewport &) noexcept override;
29
30 private:
31         glm::vec4 fill_color;
32         glm::vec4 border_color;
33
34         glm::vec2 size;
35         glm::vec2 padding;
36         float border;
37
38         float value;
39
40 };
41
42 }
43 }
44
45 #endif