Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
DiamarRepeaterPanel.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_UI_PANELS_DIAMARREPEATER_DIAMARREPEATERPANEL_HPP_
2#define IV_SRC_UI_PANELS_DIAMARREPEATER_DIAMARREPEATERPANEL_HPP_
3
4#include "ui/gui/CButton.hpp"
5#include "ui/gui/CLabel.hpp"
7#include "ui/gui/CList.hpp"
11
12#include <atomic>
13
15{
16
18{
19public:
21 ~DiamarRepeaterPanel() override = default;
22
24
25private:
27 void buildNoCommDialog();
28
30 const std::map<iv::types::repeaterId, iv::panels::diamarRepeater::CabinRepeater> &cabinRepeaters) override;
31
33 const std::map<iv::types::groupId, iv::panels::diamarRepeater::GroupStateInfo> &groupsStates);
35 const std::map<iv::types::groupId, iv::panels::diamarRepeater::GroupStateInfo> &groupsStates) override;
37 const std::map<iv::types::groupId, iv::panels::diamarRepeater::GroupStateInfo> &groupsStates) override;
38
39 void
40 displayAlarms(const std::optional<std::string> &groupName,
41 const std::shared_ptr<std::vector<iv::panels::diamarRepeater::AlarmEvent>> &alarmsEvents) override;
42 void
43 updateAlarmsList(const std::shared_ptr<std::vector<iv::panels::diamarRepeater::AlarmEvent>> &alarmsEvents) override;
44
45 void displaySystemPanel() override;
46
47 void updateCallAllButton(const iv::panels::diamarRepeater::CallAllInfo &callAllInfo) override;
48
50 iv::panels::diamarRepeater::WatchCallPassInfo watchCallPassInfo) override;
51
52 void updateRepeatAlarmLabel(bool hasRepeatAlarm) override;
53
55
56 enum class ePanelState
57 {
61 };
62
64 {
65 // Navigable panels container
68
69 // Left buttons container
71
72 // Bottom buttons
77
78 // Navigable panels
79 std::optional<AbstractComponentGUI *> m_groupsListPanel;// Groups list
80 std::map<iv::types::groupId, CButton *> m_groupsButtons;
81
82 std::optional<AbstractComponentGUI *> m_systemPanel;// System panel
83
84 std::optional<CList *> m_alarmsPanel;// Alarms panel
85
86 // No Comm elements
91 std::shared_ptr<CDialog> m_noCommDialog {nullptr};
92 std::atomic_bool m_isNoCommDialogVisible {false};
93 };
94
96
97 std::shared_ptr<iv::panels::diamarRepeater::IDiamarRepeaterPresenter> m_presenter;
100
101 struct Sizes
102 {
105
106 static constexpr iv::types::width requestButtonWidth {150};
108
109 static constexpr iv::types::width groupButtonMaxWidth {200};
111
114 };
115
117 {
118 static constexpr double buttonBlinkDarkenFactor {0.35};
119 };
120};
121
122}// namespace iv::panels::diamarRepeater
123
124#endif//IV_SRC_UI_PANELS_DIAMARREPEATER_DIAMARREPEATERPANEL_HPP_
Definition AbstractComponentGUI.hpp:30
Definition CButton.hpp:18
Definition CDialog.hpp:21
Definition CLabel.hpp:17
Definition CLayoutContainer.hpp:7
Definition DiamarRepeaterPanel.hpp:18
void updateAlarmsList(const std::shared_ptr< std::vector< iv::panels::diamarRepeater::AlarmEvent > > &alarmsEvents) override
Definition DiamarRepeaterPanel.cpp:566
void updateWatchCallPassButton(iv::panels::diamarRepeater::eWatchCallPassButton button, iv::panels::diamarRepeater::WatchCallPassInfo watchCallPassInfo) override
Definition DiamarRepeaterPanel.cpp:713
void displaySystemPanel() override
Definition DiamarRepeaterPanel.cpp:578
AbstractComponentGUI * buildPanel(CDialog *dialogFather)
Definition DiamarRepeaterPanel.cpp:37
void prvUpdateButtonGroupColorState(const std::map< iv::types::groupId, iv::panels::diamarRepeater::GroupStateInfo > &groupsStates)
Definition DiamarRepeaterPanel.cpp:257
void updateCallAllButton(const iv::panels::diamarRepeater::CallAllInfo &callAllInfo) override
Definition DiamarRepeaterPanel.cpp:696
void buildNoCommDialog()
Definition DiamarRepeaterPanel.cpp:210
void buildRepeatersButtons(const std::map< iv::types::repeaterId, iv::panels::diamarRepeater::CabinRepeater > &cabinRepeaters) override
Builds the buttons for the repeaters that will be displayed at the left.
Definition DiamarRepeaterPanel.cpp:665
AbstractComponentGUI * buildBottomButtons()
Definition DiamarRepeaterPanel.cpp:120
std::shared_ptr< iv::panels::diamarRepeater::IDiamarRepeaterPresenter > m_presenter
Definition DiamarRepeaterPanel.hpp:97
CDialog * m_dialogFatherRef
Definition DiamarRepeaterPanel.hpp:99
ePanelState m_panelState
Definition DiamarRepeaterPanel.hpp:95
DiamarRepeaterPanelElements m_panelElements
Definition DiamarRepeaterPanel.hpp:98
ePanelState
Definition DiamarRepeaterPanel.hpp:57
void displayAlarms(const std::optional< std::string > &groupName, const std::shared_ptr< std::vector< iv::panels::diamarRepeater::AlarmEvent > > &alarmsEvents) override
Definition DiamarRepeaterPanel.cpp:531
void updateRepeatAlarmLabel(bool hasRepeatAlarm) override
Definition DiamarRepeaterPanel.cpp:810
void displayGroupsButtonsPanel(const std::map< iv::types::groupId, iv::panels::diamarRepeater::GroupStateInfo > &groupsStates) override
Definition DiamarRepeaterPanel.cpp:368
void updateNoCommMessage(const iv::panels::diamarRepeater::CommConnectionError &commError) override
Definition DiamarRepeaterPanel.cpp:780
void updateGroupsButtons(const std::map< iv::types::groupId, iv::panels::diamarRepeater::GroupStateInfo > &groupsStates) override
Definition DiamarRepeaterPanel.cpp:413
Definition IDiamarRepeaterPanel.hpp:17
Definition defines.hpp:7
eWatchCallPassButton
Definition defines.hpp:10
double height
Definition types.hpp:14
double padding
Definition types.hpp:16
double width
Definition types.hpp:23
static constexpr double buttonBlinkDarkenFactor
Definition DiamarRepeaterPanel.hpp:118
CButton * m_buttonRequestBgr
Definition DiamarRepeaterPanel.hpp:74
std::optional< AbstractComponentGUI * > m_groupsListPanel
Definition DiamarRepeaterPanel.hpp:79
CLayoutContainer * m_mainViewContainer
Definition DiamarRepeaterPanel.hpp:66
std::atomic_bool m_isNoCommDialogVisible
Definition DiamarRepeaterPanel.hpp:92
CLayoutContainer * m_cabinRepeaterButtonsContainer
Definition DiamarRepeaterPanel.hpp:70
CLabel * m_noCommLabelSolution
Definition DiamarRepeaterPanel.hpp:89
CButton * m_repeatAlarmButton
Definition DiamarRepeaterPanel.hpp:76
std::map< iv::types::groupId, CButton * > m_groupsButtons
Definition DiamarRepeaterPanel.hpp:80
CButton * m_noCommSoundOffButton
Definition DiamarRepeaterPanel.hpp:90
std::optional< AbstractComponentGUI * > m_systemPanel
Definition DiamarRepeaterPanel.hpp:82
CButton * m_buttonNavigateSystemOrBackRef
Definition DiamarRepeaterPanel.hpp:67
std::optional< CList * > m_alarmsPanel
Definition DiamarRepeaterPanel.hpp:84
CButton * m_buttonRequestEcr
Definition DiamarRepeaterPanel.hpp:73
CButton * m_buttonCallAll
Definition DiamarRepeaterPanel.hpp:75
CLabel * m_noCommLabelConsequence
Definition DiamarRepeaterPanel.hpp:88
std::shared_ptr< CDialog > m_noCommDialog
Definition DiamarRepeaterPanel.hpp:91
Definition DiamarRepeaterPanel.hpp:102
static constexpr iv::types::padding verticalContainerSpacing
Definition DiamarRepeaterPanel.hpp:112
static constexpr iv::types::width groupButtonMaxWidth
Definition DiamarRepeaterPanel.hpp:109
static constexpr iv::types::height repeatersButtonHeight
Definition DiamarRepeaterPanel.hpp:104
static constexpr iv::types::padding horizontalContainerSpacing
Definition DiamarRepeaterPanel.hpp:113
static constexpr iv::types::height groupButtonMaxHeight
Definition DiamarRepeaterPanel.hpp:110
static constexpr iv::types::height requestButtonHeight
Definition DiamarRepeaterPanel.hpp:107
static constexpr iv::types::width repeatersButtonWidth
Definition DiamarRepeaterPanel.hpp:103
static constexpr iv::types::width requestButtonWidth
Definition DiamarRepeaterPanel.hpp:106