]> git.localhorst.tv Git - space.git/blob - src/ui/DualGauge.cpp
simple dual gauge (vertical)
[space.git] / src / ui / DualGauge.cpp
1 #include "DualGauge.h"
2
3 #include "../graphics/Canvas.h"
4
5 #include <algorithm>
6 #include <cmath>
7
8
9 namespace space {
10
11 void DualGauge::Render(Canvas &canv, float val) const {
12         canv.SetColor(borderCol);
13         canv.OutlineRect(pos, size);
14
15         canv.SetColor(bgCol);
16         canv.FillRect(bgPos, bgSize);
17
18         if (val == 0) return;
19
20         Vector<int> vSize(valSize.x, valSize.y * std::abs(val));
21
22         if (val > 0) {
23                 Vector<int> vPos(valPos.x, valPos.y - vSize.y);
24                 canv.SetColor(posCol);
25                 canv.FillRect(vPos, vSize);
26         } else {
27                 canv.SetColor(negCol);
28                 canv.FillRect(valPos, vSize);
29         }
30 }
31
32 }