Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
HeaderBarGraphics.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_UI_GRAPHICSCOMP_HEADERBARGRAPHICS_HPP_
2#define IV_SRC_UI_GRAPHICSCOMP_HEADERBARGRAPHICS_HPP_
3
4#include "core/color.hpp"
11
12#include <set>
13
15{
16
18{
19public:
21
22 void setMenuBar(CMenuBarGraphics *menuBarRef);
23 void setTitle(const std::string &title);
24 void setPossibleTitles(const std::set<std::string> &possibleTitles);
25 void setIndicators(CIndicatorsGraphics *indicatorsRef);
27 void setNavigableOptions(const iv::gui::HeaderNavigableOptions &navigableOptions);
28
29 void getNormalHeaderSize(double *sizeXOpt, double *sizeYOpt) const;
30
31 bool sizeChanged() override;
32 void update(IGraphics *graphics, CLibraryImages *libraryImage) override;
33 void calculatePosGlobal(double xFather, double yFather) override;
34 void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp,
35 double *sizeYComp) override;
36 void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) override;
37 void drawComponent(IGraphics *graphics, const CTheme *theme) override;
38
39 void handleEvent(CEventGraphics *event, double xOrg, double yOrg) override;
40 void handleEventOut(CEventGraphics *event) override;
41
42 void nextFrameChildren() override;
43 void removeObjectDraw(IGraphics *graphics) override;
44
45private:
47 std::optional<std::string> m_title;
48 std::optional<std::set<std::string>> m_possibleHeaderTitle;
52 std::vector<AbstractComponentGraphics *> m_headerNavigableOptions;
53
54 std::unique_ptr<CRectangleGraphics> m_headerBackground;
55 std::unique_ptr<CRectangleGraphics> m_separatorLine;
56 std::unique_ptr<CRectangleGraphics> m_separatorIndicatorsNotification;
57
63 struct Sizes
64 {
65 static constexpr iv::types::width separatorLine {2};
68 };
69};
70
71}// namespace iv::ui::graphicsComp
72
73#endif//IV_SRC_UI_GRAPHICSCOMP_HEADERBARGRAPHICS_HPP_
Definition AbstractComponentGraphics.hpp:21
Definition CEventGraphics.hpp:9
Definition CIndicatorsGraphics.hpp:15
Definition CLabelGraphics.hpp:16
Definition CLibraryImages.hpp:11
Definition CMenuBarGraphics.hpp:15
Definition CTheme.hpp:10
Definition IGraphics.hpp:20
Definition HeaderNavigableOptions.hpp:28
Definition HeaderBarGraphics.hpp:18
void setTitle(const std::string &title)
Definition HeaderBarGraphics.cpp:34
bool sizeChanged() override
Definition HeaderBarGraphics.cpp:124
void handleEventOut(CEventGraphics *event) override
Definition HeaderBarGraphics.cpp:419
void removeObjectDraw(IGraphics *graphics) override
Definition HeaderBarGraphics.cpp:455
CLabelGraphics * m_titleLabelOpt
Definition HeaderBarGraphics.hpp:49
std::vector< AbstractComponentGraphics * > m_headerNavigableOptions
Definition HeaderBarGraphics.hpp:52
void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp, double *sizeYComp) override
Definition HeaderBarGraphics.cpp:208
void setNavigableOptions(const iv::gui::HeaderNavigableOptions &navigableOptions)
Definition HeaderBarGraphics.cpp:60
void drawComponent(IGraphics *graphics, const CTheme *theme) override
Definition HeaderBarGraphics.cpp:356
void calculatePosGlobal(double xFather, double yFather) override
Definition HeaderBarGraphics.cpp:180
std::optional< std::set< std::string > > m_possibleHeaderTitle
Definition HeaderBarGraphics.hpp:48
std::unique_ptr< CRectangleGraphics > m_separatorLine
Definition HeaderBarGraphics.hpp:55
std::unique_ptr< CRectangleGraphics > m_separatorIndicatorsNotification
Definition HeaderBarGraphics.hpp:56
void setPossibleTitles(const std::set< std::string > &possibleTitles)
Definition HeaderBarGraphics.cpp:43
void setNotificationIndicator(iv::ui::graphicsComp::NotificationIndicatorGraphics *notificationIndicator)
Definition HeaderBarGraphics.cpp:54
std::optional< std::string > m_title
Definition HeaderBarGraphics.hpp:47
void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) override
Definition HeaderBarGraphics.cpp:280
void handleEvent(CEventGraphics *event, double xOrg, double yOrg) override
Definition HeaderBarGraphics.cpp:393
void setIndicators(CIndicatorsGraphics *indicatorsRef)
Definition HeaderBarGraphics.cpp:48
void setMenuBar(CMenuBarGraphics *menuBarRef)
Definition HeaderBarGraphics.cpp:29
HeaderBarGraphics()
Definition HeaderBarGraphics.cpp:21
CMenuBarGraphics * m_menuBarRef
Definition HeaderBarGraphics.hpp:46
std::unique_ptr< CRectangleGraphics > m_headerBackground
Definition HeaderBarGraphics.hpp:54
void update(IGraphics *graphics, CLibraryImages *libraryImage) override
Definition HeaderBarGraphics.cpp:157
iv::ui::graphicsComp::NotificationIndicatorGraphics * m_notificationIndicator
Definition HeaderBarGraphics.hpp:51
void getNormalHeaderSize(double *sizeXOpt, double *sizeYOpt) const
Definition HeaderBarGraphics.cpp:70
void nextFrameChildren() override
Definition HeaderBarGraphics.cpp:427
CIndicatorsGraphics * m_indicatorsRef
Definition HeaderBarGraphics.hpp:50
Definition NotificationIndicatorGraphics.hpp:13
constexpr iv::types::color WonderBitsGrey6
Definition color.hpp:245
constexpr iv::types::color WonderBitsBlack
Definition color.hpp:234
double width
Definition types.hpp:23
uint32_t color
Definition types.hpp:12
Definition CollapsibleMenuGraphics.cpp:10
Definition HeaderBarGraphics.hpp:59
static constexpr iv::types::color separatorLine
Definition HeaderBarGraphics.hpp:61
static constexpr iv::types::color background
Definition HeaderBarGraphics.hpp:60
Definition HeaderBarGraphics.hpp:64
static constexpr iv::types::width navigableOptionsSpacing
Definition HeaderBarGraphics.hpp:66
static constexpr iv::types::width separatorLine
Definition HeaderBarGraphics.hpp:65
static constexpr iv::types::width navigableOptionsMinWidth
Definition HeaderBarGraphics.hpp:67