diff --git a/assets/texture/ui/slider_thumb001.png b/assets/texture/ui/slider_thumb001.png new file mode 100644 index 0000000..b2ccf54 Binary files /dev/null and b/assets/texture/ui/slider_thumb001.png differ diff --git a/assets/texture/ui/slider_track001.png b/assets/texture/ui/slider_track001.png new file mode 100644 index 0000000..7b5b956 Binary files /dev/null and b/assets/texture/ui/slider_track001.png differ diff --git a/include/Cubed/ui/slider.hpp b/include/Cubed/ui/slider.hpp index 9dca9e2..5f6f9b0 100644 --- a/include/Cubed/ui/slider.hpp +++ b/include/Cubed/ui/slider.hpp @@ -1,6 +1,7 @@ #pragma once #include "Cubed/ui/image.hpp" +#include "Cubed/ui/label.hpp" #include "Cubed/ui/widget.hpp" namespace Cubed { @@ -10,34 +11,29 @@ public: Slider& set_slider(float* value, const float& min, const float& max); - Image& get_track(); - Image& get_thumb(); - float width() const override; float height() const override; Slider& set_scale(float scale); Slider& set_width(float width); Slider& set_height(float h); + Slider& set_text(const std::string& text); + Slider& set_track_image(const std::string& path, + TextureManager& texture_manager); + Slider& set_thumb_image(const std::string& path, + TextureManager& texture_manager); bool handle_mouse_move_event(const MouseMoveEvent& e) override; bool handle_mouse_button_event(const MouseButtonEvent& e) override; private: - static constexpr float THUMB_WIDTH = 5.0f; - - void init_track(); - void init_thumb(); - - void update_value(float mouse_x); - - void on_update(float) override; - - void on_render(Renderer& renderer) override; + static constexpr float PADDING = 5.0f; + static constexpr float DEFAULT_SCALE = 3.0f; std::unique_ptr m_track; std::unique_ptr m_thumb; - float m_scale = 1.0f; + std::unique_ptr