aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-09-11 19:19:10 +0200
committerdec05eba <dec05eba@protonmail.com>2024-09-11 19:19:10 +0200
commitcb04c11b2c29d973cdda9b0336024946bb3ca93d (patch)
tree791c067179a64d08531ada23fb2085695e68b14d /include
parent234cc3391eba6be67964e5c98beeecd318b8e779 (diff)
Make checkbox nicer
Diffstat (limited to 'include')
-rw-r--r--include/Theme.hpp2
-rw-r--r--include/gui/CheckBox.hpp7
-rw-r--r--include/gui/ScrollablePage.hpp4
3 files changed, 12 insertions, 1 deletions
diff --git a/include/Theme.hpp b/include/Theme.hpp
index df25268..1db389a 100644
--- a/include/Theme.hpp
+++ b/include/Theme.hpp
@@ -37,6 +37,8 @@ namespace gsr {
mgl::Texture stream_button_texture;
mgl::Texture close_texture;
mgl::Texture logo_texture;
+ mgl::Texture checkbox_circle_texture;
+ mgl::Texture checkbox_background_texture;
double double_click_timeout_seconds = 0.4;
diff --git a/include/gui/CheckBox.hpp b/include/gui/CheckBox.hpp
index 19ffaf6..8703794 100644
--- a/include/gui/CheckBox.hpp
+++ b/include/gui/CheckBox.hpp
@@ -4,6 +4,7 @@
#include <mglpp/graphics/Color.hpp>
#include <mglpp/graphics/Text.hpp>
+#include <mglpp/graphics/Sprite.hpp>
namespace gsr {
class CheckBox : public Widget {
@@ -17,12 +18,16 @@ namespace gsr {
mgl::vec2f get_size() override;
- void set_checked(bool checked);
+ void set_checked(bool checked, bool animated = false);
bool is_checked() const;
private:
+ void apply_animation();
mgl::vec2f get_checkbox_size();
private:
mgl::Text text;
+ mgl::Sprite background_sprite;
+ mgl::Sprite circle_sprite;
bool checked = false;
+ float toggle_animation_value = 0.0f;
};
} \ No newline at end of file
diff --git a/include/gui/ScrollablePage.hpp b/include/gui/ScrollablePage.hpp
index ade7c67..452d0e9 100644
--- a/include/gui/ScrollablePage.hpp
+++ b/include/gui/ScrollablePage.hpp
@@ -24,6 +24,10 @@ namespace gsr {
void reset_scroll();
private:
+ void apply_animation();
+ void limit_scroll(double child_height);
+ void limit_scroll_cursor(mgl::Window &window, double child_height, double scrollbar_empty_space);
+ void draw_scrollbar();
float get_scrollbar_width() const;
private:
mgl::vec2f size;