]> git.localhorst.tv Git - blobs.git/blob - src/ui/Meter.hpp
12885e4bafed27eb43c1266b913c6f299491aa5b
[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; return this; }
19         Meter *Padding(const glm::vec2 &p) noexcept { padding = p; return this; }
20         // TODO: gl line width is deprecated, use polys instead
21         Meter *Border(float b) noexcept { border = b; return this; }
22
23         Meter *FillColor(const glm::vec4 &c) noexcept { fill_color = c; return this; }
24         Meter *BorderColor(const glm::vec4 &c) noexcept { border_color = c; return this; }
25
26         Meter *Value(float v) noexcept { value = v; return this; }
27
28         glm::vec2 Size() override;
29         void Draw(app::Assets &, graphics::Viewport &) noexcept override;
30
31 private:
32         glm::vec4 fill_color;
33         glm::vec4 border_color;
34
35         glm::vec2 size;
36         glm::vec2 padding;
37         float border;
38
39         float value;
40
41 };
42
43 }
44 }
45
46 #endif