Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
SliderGraphics.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_UI_GRAPHICSCOMP_SLIDERGRAPHICS_HPP_
2#define IV_SRC_UI_GRAPHICSCOMP_SLIDERGRAPHICS_HPP_
3
5#include "ui/gui/Slider.hpp"
9
11{
12
14{
15public:
16 explicit SliderGraphics(iv::gui::Slider *sliderRef, iv::types::Range<double> valueRange,
17 bool isOrientationHorizontal, uint64_t steps);
18 ~SliderGraphics() override = default;
19
20 [[nodiscard]] double getValue() const;
21
22 void setValue(double value, bool propagateValue = false);
23 void setDisplayValue(bool displayValue);
24
25 bool sizeChanged() override;
26 void update(IGraphics *graphics, CLibraryImages *libraryImage) override;
27 void handleEvent(CEventGraphics *event, double xOrg, double yOrg) override;
28 void handleEventOut(CEventGraphics *event) override;
29
30private:
31 void calculatePosGlobal(double xFather, double yFather) override;
32 void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp,
33 double *sizeYComp) override;
34 void nextFrameChildren() override;
35 void removeObjectDraw(IGraphics *graphics) override;
36 void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) override;
37 void drawComponent(IGraphics *graphics, const CTheme *theme) override;
38
39 double m_value {0};
42 const uint64_t m_steps;
43 bool m_displayValue {false};
45
46 std::atomic_bool m_hasChanged {false};
47 std::atomic_bool m_isFocused {false};
48
49 std::unique_ptr<CRectangleGraphics> m_rectangleBackground {nullptr};
50 std::unique_ptr<CRectangleGraphics> m_rectangleValueBar {nullptr};
51 std::unique_ptr<CCircleGraphics> m_circleValuePoint {nullptr};
52 std::unique_ptr<CDrawText> m_sliderValueText {nullptr};
53
54 struct Constants
55 {
56 static constexpr iv::types::height textHeight {18};
57 static constexpr iv::types::padding valueBarWidth {5};
60 };
67};
68
69}// namespace iv::ui::graphicsComp
70
71#endif//IV_SRC_UI_GRAPHICSCOMP_SLIDERGRAPHICS_HPP_
Definition AbstractComponentGraphics.hpp:21
Definition CEventGraphics.hpp:9
Definition CLibraryImages.hpp:11
Definition CTheme.hpp:10
Definition IGraphics.hpp:20
Definition Slider.hpp:15
Definition SliderGraphics.hpp:14
std::unique_ptr< CRectangleGraphics > m_rectangleBackground
Definition SliderGraphics.hpp:49
void setValue(double value, bool propagateValue=false)
Definition SliderGraphics.cpp:26
void handleEventOut(CEventGraphics *event) override
Definition SliderGraphics.cpp:120
std::unique_ptr< CCircleGraphics > m_circleValuePoint
Definition SliderGraphics.hpp:51
void update(IGraphics *graphics, CLibraryImages *libraryImage) override
Definition SliderGraphics.cpp:70
void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) override
Definition SliderGraphics.cpp:175
void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp, double *sizeYComp) override
Definition SliderGraphics.cpp:130
void nextFrameChildren() override
Definition SliderGraphics.cpp:150
SliderGraphics(iv::gui::Slider *sliderRef, iv::types::Range< double > valueRange, bool isOrientationHorizontal, uint64_t steps)
Definition SliderGraphics.cpp:13
iv::gui::Slider * m_sliderRef
Definition SliderGraphics.hpp:44
const iv::types::Range< double > m_valueRange
Definition SliderGraphics.hpp:40
std::atomic_bool m_hasChanged
Definition SliderGraphics.hpp:46
double getValue() const
Definition SliderGraphics.cpp:21
double m_value
Definition SliderGraphics.hpp:39
void setDisplayValue(bool displayValue)
Definition SliderGraphics.cpp:50
void handleEvent(CEventGraphics *event, double xOrg, double yOrg) override
Definition SliderGraphics.cpp:75
bool m_displayValue
Definition SliderGraphics.hpp:43
const uint64_t m_steps
Definition SliderGraphics.hpp:42
std::unique_ptr< CDrawText > m_sliderValueText
Definition SliderGraphics.hpp:52
void removeObjectDraw(IGraphics *graphics) override
Definition SliderGraphics.cpp:155
const bool m_isOrientationHorizontal
Definition SliderGraphics.hpp:41
void drawComponent(IGraphics *graphics, const CTheme *theme) override
Definition SliderGraphics.cpp:255
std::atomic_bool m_isFocused
Definition SliderGraphics.hpp:47
std::unique_ptr< CRectangleGraphics > m_rectangleValueBar
Definition SliderGraphics.hpp:50
bool sizeChanged() override
Definition SliderGraphics.cpp:59
void calculatePosGlobal(double xFather, double yFather) override
Definition SliderGraphics.cpp:125
constexpr iv::types::color WonderBitsGrey5
Definition color.hpp:244
constexpr iv::types::color WonderBitsBlue
Definition color.hpp:235
constexpr iv::types::color WhiteSmoke
Definition color.hpp:223
double height
Definition types.hpp:14
double radius
Definition types.hpp:17
double padding
Definition types.hpp:16
uint32_t color
Definition types.hpp:12
Definition CollapsibleMenuGraphics.cpp:10
Definition types.hpp:30
Definition SliderGraphics.hpp:62
static constexpr iv::types::color backgroundColor
Definition SliderGraphics.hpp:63
static constexpr iv::types::color valueColor
Definition SliderGraphics.hpp:64
static constexpr iv::types::color valueCircleColor
Definition SliderGraphics.hpp:65
Definition SliderGraphics.hpp:55
static constexpr iv::types::radius valueCircleRadius
Definition SliderGraphics.hpp:58
static constexpr iv::types::height textHeight
Definition SliderGraphics.hpp:56
static constexpr iv::types::padding valueBarPadding
Definition SliderGraphics.hpp:59
static constexpr iv::types::padding valueBarWidth
Definition SliderGraphics.hpp:57