summaryrefslogtreecommitdiff
path: root/plugingui/slider.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugingui/slider.h')
-rw-r--r--plugingui/slider.h39
1 files changed, 36 insertions, 3 deletions
diff --git a/plugingui/slider.h b/plugingui/slider.h
index f11efba..22d162d 100644
--- a/plugingui/slider.h
+++ b/plugingui/slider.h
@@ -27,6 +27,8 @@
#pragma once
#include "widget.h"
+#include "texture.h"
+#include "texturedbox.h"
namespace GUI
{
@@ -41,8 +43,8 @@ public:
bool catchMouse() override { return true; }
bool isFocusable() override { return true; }
- void setValue(float value);
- float value();
+ void setValue(float new_value);
+ float value() const;
Notifier<> clickNotifier;
@@ -58,11 +60,42 @@ private:
down
};
- float currentValue;
+ float current_value;
float maximum;
float minimum;
State state;
+
+ TexturedBox bar{getImageCache(), ":slider.png",
+ 0, 0, // atlas offset (x, y)
+ 7, 1, 7, // dx1, dx2, dx3
+ 7, 1, 7 // dy1, dy2, dy3
+ };
+ TexturedBox inner_bar_green{getImageCache(), ":slider.png",
+ 30, 0, // atlas offset (x, y)
+ 2, 1, 2, // dx1, dx2, dx3
+ 2, 1, 2 // dy1, dy2, dy3
+ };
+ // TexturedBox inner_bar_red{getImageCache(), ":slider.png",
+ // 30, 5, // atlas offset (x, y)
+ // 2, 1, 2, // dx1, dx2, dx3
+ // 2, 1, 2 // dy1, dy2, dy3
+ // };
+ // TexturedBox inner_bar_blue{getImageCache(), ":slider.png",
+ // 30, 10, // atlas offset (x, y)
+ // 2, 1, 2, // dx1, dx2, dx3
+ // 2, 1, 2 // dy1, dy2, dy3
+ // };
+ Texture button{getImageCache(), ":slider.png",
+ 15, 0, // atlas offset (x, y)
+ 15, 15 // width, height
+ };
+
+ std::size_t bar_boundary{5};
+ std::size_t button_offset{7};
+
+ std::size_t getControlWidth() const;
+ void recomputeCurrentValue(float x);
};
} // GUI::