]> git.localhorst.tv Git - space.git/blobdiff - src/ui/DualGauge.cpp
simple dual gauge (vertical)
[space.git] / src / ui / DualGauge.cpp
diff --git a/src/ui/DualGauge.cpp b/src/ui/DualGauge.cpp
new file mode 100644 (file)
index 0000000..55f9528
--- /dev/null
@@ -0,0 +1,32 @@
+#include "DualGauge.h"
+
+#include "../graphics/Canvas.h"
+
+#include <algorithm>
+#include <cmath>
+
+
+namespace space {
+
+void DualGauge::Render(Canvas &canv, float val) const {
+       canv.SetColor(borderCol);
+       canv.OutlineRect(pos, size);
+
+       canv.SetColor(bgCol);
+       canv.FillRect(bgPos, bgSize);
+
+       if (val == 0) return;
+
+       Vector<int> vSize(valSize.x, valSize.y * std::abs(val));
+
+       if (val > 0) {
+               Vector<int> vPos(valPos.x, valPos.y - vSize.y);
+               canv.SetColor(posCol);
+               canv.FillRect(vPos, vSize);
+       } else {
+               canv.SetColor(negCol);
+               canv.FillRect(valPos, vSize);
+       }
+}
+
+}