Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
Slider.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_UI_GUI_SLIDER_HPP_
2#define IV_SRC_UI_GUI_SLIDER_HPP_
3
4#include "core/types.hpp"
6
7#include <functional>
8#include <optional>
9#include <string>
10
11namespace iv::gui
12{
13
14class Slider final : public AbstractComponentGUI
15{
16public:
18 {
21 };
22
24 {
25 double initialValue {50};
28 bool displayValue {true};
29 std::optional<std::function<void(double)>> onChangeCallback;
30 std::optional<uint64_t> steps;
31 };
32
33 explicit Slider(const SliderParams &params,
34 const std::optional<std::reference_wrapper<double>> &valueRef = std::nullopt);
35 ~Slider() override = default;
36
37 void setOnChangeCallback(const std::optional<std::function<void(double)>> &onChangeCallback) const;
38 void setValue(double value) const;
39 void setDisplayValue(bool displayValue) const;
40
41 [[nodiscard]] double getValue() const;
42
43 [[nodiscard]] SliderParams getParams() const;
44
45private:
46 IWidget *createWidget(CDialog *dialogFatherRef) override;
47
48 std::shared_ptr<SliderParams> m_params;
49 std::optional<std::reference_wrapper<double>> m_valueRef;
50};
51
52}// namespace iv::gui
53
54#endif//IV_SRC_UI_GUI_SLIDER_HPP_
Definition AbstractComponentGUI.hpp:30
Definition CDialog.hpp:21
Definition IWidget.hpp:5
Definition Slider.hpp:15
std::optional< std::reference_wrapper< double > > m_valueRef
Definition Slider.hpp:49
IWidget * createWidget(CDialog *dialogFatherRef) override
Definition Slider.cpp:78
SliderParams getParams() const
Definition Slider.cpp:73
void setValue(double value) const
Definition Slider.cpp:28
void setDisplayValue(bool displayValue) const
Definition Slider.cpp:48
void setOnChangeCallback(const std::optional< std::function< void(double)> > &onChangeCallback) const
Definition Slider.cpp:23
~Slider() override=default
eSliderOrientation
Definition Slider.hpp:18
std::shared_ptr< SliderParams > m_params
Definition Slider.hpp:48
double getValue() const
Definition Slider.cpp:58
Slider(const SliderParams &params, const std::optional< std::reference_wrapper< double > > &valueRef=std::nullopt)
Definition Slider.cpp:8
Definition enums.hpp:5
Definition Slider.hpp:24
bool displayValue
Definition Slider.hpp:28
std::optional< uint64_t > steps
Definition Slider.hpp:30
double initialValue
Definition Slider.hpp:25
eSliderOrientation orientation
Definition Slider.hpp:27
std::optional< std::function< void(double)> > onChangeCallback
Definition Slider.hpp:29
iv::types::Range< double > valueRange
Definition Slider.hpp:26
Definition types.hpp:30