Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
FooterBarGraphics.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_UI_GRAPHICS_FOOTERBARGRAPHICS_HPP_
2#define IV_SRC_UI_GRAPHICS_FOOTERBARGRAPHICS_HPP_
3
4#include "core/color.hpp"
15
16#include <memory>
17
19{
20
22{
23public:
25
26 void setNavigableOptions(const iv::gui::FooterNavigableOptions &navigableOptions);
28 void setClockNotification(const std::shared_ptr<iv::diamar::IClockNotification> &clockNotification);
29
30 [[nodiscard]] bool isFloatingFooter() const;
31
32 bool sizeChanged() override;
33 void update(IGraphics *graphics, CLibraryImages *libraryImage) override;
34 void calculatePosGlobal(double xFather, double yFather) override;
35 void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp,
36 double *sizeYComp) override;
37 void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) override;
38 void drawComponent(IGraphics *graphics, const CTheme *theme) override;
39
40 void handleEvent(CEventGraphics *event, double xOrg, double yOrg) override;
41
42 void nextFrameChildren() override;
43 void removeObjectDraw(IGraphics *graphics) override;
44
45private:
46 std::shared_ptr<CLabelGraphics> m_date;
47 std::shared_ptr<CLabelGraphics> m_clock;
48 std::shared_ptr<AbstractComponentGraphics> m_timeLayout;
49 std::shared_ptr<CGroupButtonsGraphics> m_navigableOptions;
50
51 std::unique_ptr<CCircleGraphics> m_circle;
52
53 std::unique_ptr<CRectangleGraphics> m_footerBackground;
54 std::unique_ptr<CRectangleGraphics> m_separatorLine;
55
56 std::shared_ptr<iv::diamar::IClockNotification> m_clockNotification;
57
59 bool m_isFloatingFooter {false};
60
61 struct Margins
62 {
63 static constexpr iv::types::width clockLeft {3};
64 static constexpr iv::types::width clockRight {3};
65 static constexpr iv::types::height clockTop {3};
66 static constexpr iv::types::height clockAndDate {3};
67 static constexpr iv::types::height dataBottom {3};
68 };
76 struct Sizes
77 {
78 static constexpr iv::types::width separatorLine {2};
79 };
80
82};
83
84}// namespace iv::ui::graphicsComp
85
86#endif//IV_SRC_UI_GRAPHICS_FOOTERBARGRAPHICS_HPP_
Definition AbstractComponentGraphics.hpp:21
Definition CEventGraphics.hpp:9
Definition CLibraryImages.hpp:11
Definition CTheme.hpp:10
Definition IGraphics.hpp:20
Definition FooterNavigableOptions.hpp:24
Definition FooterBarGraphics.hpp:22
void removeObjectDraw(IGraphics *graphics) override
Definition FooterBarGraphics.cpp:303
std::shared_ptr< CGroupButtonsGraphics > m_navigableOptions
Definition FooterBarGraphics.hpp:49
std::unique_ptr< CRectangleGraphics > m_footerBackground
Definition FooterBarGraphics.hpp:53
void setClockNotification(const std::shared_ptr< iv::diamar::IClockNotification > &clockNotification)
Definition FooterBarGraphics.cpp:143
bool isFloatingFooter() const
Definition FooterBarGraphics.cpp:148
void drawComponent(IGraphics *graphics, const CTheme *theme) override
Definition FooterBarGraphics.cpp:237
std::shared_ptr< CLabelGraphics > m_date
Definition FooterBarGraphics.hpp:46
std::unique_ptr< CRectangleGraphics > m_separatorLine
Definition FooterBarGraphics.hpp:54
std::shared_ptr< CLabelGraphics > m_clock
Definition FooterBarGraphics.hpp:47
void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) override
Definition FooterBarGraphics.cpp:209
void handleEvent(CEventGraphics *event, double xOrg, double yOrg) override
Definition FooterBarGraphics.cpp:273
bool m_isFloatingFooter
Definition FooterBarGraphics.hpp:59
void nextFrameChildren() override
Definition FooterBarGraphics.cpp:294
std::shared_ptr< AbstractComponentGraphics > m_timeLayout
Definition FooterBarGraphics.hpp:48
void update(IGraphics *graphics, CLibraryImages *libraryImage) override
Definition FooterBarGraphics.cpp:173
void setFloatingFooter(bool isFloatingFooter)
Definition FooterBarGraphics.cpp:138
void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp, double *sizeYComp) override
Definition FooterBarGraphics.cpp:191
void calculatePosGlobal(double xFather, double yFather) override
Definition FooterBarGraphics.cpp:181
void setNavigableOptions(const iv::gui::FooterNavigableOptions &navigableOptions)
Definition FooterBarGraphics.cpp:107
std::unique_ptr< CCircleGraphics > m_circle
Definition FooterBarGraphics.hpp:51
bool sizeChanged() override
Definition FooterBarGraphics.cpp:153
FooterBarGraphics()
Definition FooterBarGraphics.cpp:48
std::shared_ptr< iv::diamar::IClockNotification > m_clockNotification
Definition FooterBarGraphics.hpp:56
constexpr iv::types::color WonderBitsGrey3
Definition color.hpp:242
constexpr iv::types::color WonderBitsGrey6
Definition color.hpp:245
constexpr iv::types::color WonderBitsBlack
Definition color.hpp:234
double height
Definition types.hpp:14
double width
Definition types.hpp:23
uint32_t color
Definition types.hpp:12
Definition CollapsibleMenuGraphics.cpp:10
Definition FooterBarGraphics.hpp:70
static constexpr iv::types::color background
Definition FooterBarGraphics.hpp:72
static constexpr iv::types::color separatorLine
Definition FooterBarGraphics.hpp:73
static constexpr iv::types::color clockText
Definition FooterBarGraphics.hpp:71
static constexpr iv::types::color navigableOptionBackground
Definition FooterBarGraphics.hpp:74
Definition FooterBarGraphics.hpp:62
static constexpr iv::types::height clockAndDate
Definition FooterBarGraphics.hpp:66
static constexpr iv::types::width clockLeft
Definition FooterBarGraphics.hpp:63
static constexpr iv::types::height clockTop
Definition FooterBarGraphics.hpp:65
static constexpr iv::types::width clockRight
Definition FooterBarGraphics.hpp:64
static constexpr iv::types::height dataBottom
Definition FooterBarGraphics.hpp:67
Definition FooterBarGraphics.hpp:77
static constexpr iv::types::width separatorLine
Definition FooterBarGraphics.hpp:78