1#ifndef IV_SRC_MIMICS_ABSTRACTMIMICELEMENT_HPP_
2#define IV_SRC_MIMICS_ABSTRACTMIMICELEMENT_HPP_
15#include <unordered_set>
33 [[nodiscard]]
virtual std::shared_ptr<iv::mimics::AbstractMimicElement>
clone()
const = 0;
46 virtual void mapChannels(
const std::function<
void(std::weak_ptr<iv::channels::AbstractChannel> &)> &mapFunction);
54 const std::shared_ptr<std::vector<std::weak_ptr<iv::channels::AbstractChannel>>> &channelsInControl)
const;
56 virtual void addOptionsMenu(
const std::shared_ptr<iv::mimics::MimicControlMenu> &menu);
64 [[nodiscard]]
virtual std::optional<iv::mimics::eAlarmState>
getAlarmState()
const;
133 const std::optional<std::unordered_set<iv::types::channelId>> &channelsRepeatedOpt = std::nullopt,
134 const std::optional<std::set<std::shared_ptr<AbstractMimicElement>>> &otherMimicElements = std::nullopt);
145 virtual void move(
double dx,
double dy);
147 bool rotate(
double angle);
166 std::shared_ptr<std::vector<std::weak_ptr<iv::channels::AbstractChannel>>>
m_addedAlarms;
174 virtual bool hasRepeatedChannels(
const std::unordered_set<iv::types::channelId> &channelsRepeatedOpt)
const;
186 std::optional<iv::types::color> colorControlState,
iv::eLanguage drawingLanguage) = 0;
202 checkHasRepeated(
const std::unordered_set<iv::types::channelId> &repeatedChannels,
203 const std::shared_ptr<std::vector<std::weak_ptr<iv::channels::AbstractChannel>>> &elementChannels);
229 static constexpr std::string_view
width {
"Width"};
230 static constexpr std::string_view
height {
"Height"};
236 static constexpr std::string_view
location {
"Location"};
243 static constexpr std::string
string {};
Definition AbstractComponentGUI.hpp:30
Definition CDialog.hpp:21
Definition CEventMotion.hpp:15
Definition IGraphics.hpp:20
Definition xmlFile.hpp:15
Definition AbstractMimicElement.hpp:21
bool isPointInMimic(iv::types::coord x, iv::types::coord y) const
Definition AbstractMimicElement.cpp:210
std::weak_ptr< iv::mimics::OnlineVariables > getOnlineVariables() const
Definition AbstractMimicElement.cpp:136
virtual void move(double dx, double dy)
MOVEMENTS.
Definition AbstractMimicElement.cpp:585
bool m_redrawFlag
Definition AbstractMimicElement.hpp:196
std::unique_ptr< CDrawText > prvCreateTextTitle(iv::eLanguage language) const
Definition AbstractMimicElement.cpp:812
std::shared_ptr< std::vector< iv::math::geometry::Point2d > > m_polylinesLimits
Definition AbstractMimicElement.hpp:211
bool m_isMarked
Definition AbstractMimicElement.hpp:219
void removeGraphicsObjects(IGraphics *graphics)
Elimina el elemento gráfico.
Definition AbstractMimicElement.cpp:729
iv::types::width m_width
Definition AbstractMimicElement.hpp:159
virtual bool save(iv::file::xml::node &nodeControlMimic) const
Definition AbstractMimicElement.cpp:104
AbstractComponentGUI * panelEditSize()
Definition AbstractMimicElement.cpp:940
iv::mimics::Background m_background
Definition AbstractMimicElement.hpp:163
virtual bool hasAlternativeAction() const
Definition AbstractMimicElement.cpp:317
bool m_isCreatedBackground
Definition AbstractMimicElement.hpp:217
virtual iv::math::geometry::Point2d getAlarmIconPosition(const iv::math::geometry::Area &elementSize) const
Definition AbstractMimicElement.cpp:307
void applyRotation(IGraphics *graphics) const
Definition AbstractMimicElement.cpp:870
std::shared_ptr< std::vector< std::weak_ptr< iv::channels::AbstractChannel > > > m_addedAlarms
Definition AbstractMimicElement.hpp:166
std::shared_ptr< OnlineVariables > m_onlineVariables
Definition AbstractMimicElement.hpp:164
void setRedrawFlag(bool reDrawFlag=true)
Definition AbstractMimicElement.cpp:580
virtual void drawSpecific(IGraphics *graphics, std::optional< iv::types::color > colorWorkingState, std::optional< iv::types::color > colorControlState, iv::eLanguage drawingLanguage)=0
Draws the specific abstract element shape.
virtual void getChannels(const std::shared_ptr< std::vector< std::weak_ptr< iv::channels::AbstractChannel > > > &channelsInControl) const
Añade los canales que el MimicElement tiene enlazado.
Definition AbstractMimicElement.cpp:165
void draw(IGraphics *graphics, iv::eLanguage drawingLanguage, const std::optional< std::unordered_set< iv::types::channelId > > &channelsRepeatedOpt=std::nullopt, const std::optional< std::set< std::shared_ptr< AbstractMimicElement > > > &otherMimicElements=std::nullopt)
DRAWS.
Definition AbstractMimicElement.cpp:337
virtual void updateEnabledLanguages(const std::set< iv::eLanguage > &enabledLanguages)
Definition AbstractMimicElement.cpp:141
void handleEvent(CEventMotion *evtMotion)
Definition AbstractMimicElement.cpp:657
virtual bool load(const iv::file::xml::node &nodeControlMimic)
Definition AbstractMimicElement.cpp:62
std::vector< iv::math::geometry::Point2d > calculateLimits(IGraphics *graphics, iv::eLanguage drawingLanguage)
Definition AbstractMimicElement.cpp:756
eZDepth m_depth
Definition AbstractMimicElement.hpp:154
virtual void runAlternativeAction(CDialog *dlgFatherRef)
Ejecuta código específico del control.
Definition AbstractMimicElement.cpp:328
virtual void runEvaluation()
Ejecuta la evaluación del control.
Definition AbstractMimicElement.cpp:332
virtual bool checkIntegrity() const
Definition AbstractMimicElement.cpp:882
virtual void runCommandControlWithoutMenu()
Ejecuta un comando accionado sin el menu de opciones (caso de un botón)
Definition AbstractMimicElement.cpp:322
virtual std::optional< iv::types::color > getColorWorkingState() const
Retrieves the color representing the current working state of the element.
Definition AbstractMimicElement.cpp:247
uint32_t m_idBlockBackground
Definition AbstractMimicElement.hpp:213
virtual bool isRepeatedMimicElement(const std::set< std::shared_ptr< AbstractMimicElement > > &otherMimicsElements) const
Determines whether the current mimic element shares significant similarities with others.
Definition AbstractMimicElement.cpp:916
const iv::mimics::TitleSettings & getTitleSettings() const
Definition AbstractMimicElement.hpp:28
virtual AbstractComponentGUI * panelEditControl()=0
UI methods ///.
iv::mimics::TitleSettings m_titleSettings
Definition AbstractMimicElement.hpp:162
AbstractComponentGUI * panelEditOnlineVariables() const
Definition AbstractMimicElement.cpp:992
virtual void addOptionsMenu(const std::shared_ptr< iv::mimics::MimicControlMenu > &menu)
Definition AbstractMimicElement.cpp:192
iv::types::height m_height
Definition AbstractMimicElement.hpp:160
bool rotate(double angle)
Definition AbstractMimicElement.cpp:593
iv::mimics::eMimicElementType m_mimicElementType
Definition AbstractMimicElement.hpp:156
iv::mimics::Location m_location
Definition AbstractMimicElement.hpp:157
AbstractComponentGUI * panelEditAddedAlarms() const
Definition AbstractMimicElement.cpp:998
virtual bool hasRepeatedChannels(const std::unordered_set< iv::types::channelId > &channelsRepeatedOpt) const
Checks if the current mimic element contains any repeated channels.
Definition AbstractMimicElement.cpp:897
AbstractMimicElement(iv::mimics::eMimicElementType elementType)
Definition AbstractMimicElement.cpp:31
virtual void executeCommand(const std::string &strAction) const =0
Run actions ///.
virtual std::optional< iv::types::color > getColorControlState() const
Retrieves the color representing the current control state of the element.
Definition AbstractMimicElement.cpp:261
virtual std::shared_ptr< iv::mimics::AbstractMimicElement > clone() const =0
AbstractComponentGUI * buttonEditTitle()
Definition AbstractMimicElement.cpp:922
virtual void postProcess()
PROCESSES.
Definition AbstractMimicElement.cpp:1003
virtual void mapChannels(const std::function< void(std::weak_ptr< iv::channels::AbstractChannel > &)> &mapFunction)
Processed gets ///.
Definition AbstractMimicElement.cpp:160
std::unique_ptr< CDrawText > m_textTitleOpt
Definition AbstractMimicElement.hpp:210
void applyPosition(IGraphics *graphics) const
Definition AbstractMimicElement.cpp:858
bool m_isCreatedForeground
Definition AbstractMimicElement.hpp:216
virtual std::optional< iv::mimics::eAlarmState > getAlarmState() const
Definition AbstractMimicElement.cpp:276
virtual std::optional< std::string > getStringControlState() const
Definition AbstractMimicElement.cpp:271
virtual ~AbstractMimicElement()
virtual std::optional< std::string > getStringWorkingState() const
Definition AbstractMimicElement.cpp:266
uint32_t m_idBlockForegorund
Definition AbstractMimicElement.hpp:214
static bool checkHasRepeated(const std::unordered_set< iv::types::channelId > &repeatedChannels, const std::shared_ptr< std::vector< std::weak_ptr< iv::channels::AbstractChannel > > > &elementChannels)
Definition AbstractMimicElement.cpp:795
virtual bool canShowCircularMenu() const
Behaviours gets ///.
Definition AbstractMimicElement.cpp:312
std::optional< iv::mimics::eAlarmState > getAddedAlarmsMimicAlarmState() const
Definition AbstractMimicElement.cpp:281
Definition GeneratorPmsBuilders.cpp:9
eMimicElementType
Definition enums.hpp:8
eZDepth
Definition enums.hpp:50
double height
Definition types.hpp:14
double width
Definition types.hpp:23
double coord
Definition types.hpp:13
eLanguage
Definition enums.hpp:37
Definition structs.hpp:123
Definition structs.hpp:16
Definition AbstractMimicElement.hpp:222
static constexpr iv::types::width offlineCrossLineMaxWidth
Definition AbstractMimicElement.hpp:225
static constexpr double offlineCrossLineWidthProportion
Definition AbstractMimicElement.hpp:223
static constexpr iv::types::width offlineCrossLineMinWidth
Definition AbstractMimicElement.hpp:224
Definition AbstractMimicElement.hpp:242
static constexpr iv::types::width width
Definition AbstractMimicElement.hpp:245
static constexpr iv::types::height height
Definition AbstractMimicElement.hpp:246
static constexpr std::string mimicElementType
Definition AbstractMimicElement.hpp:244
Definition AbstractMimicElement.hpp:228
static constexpr std::string_view height
Definition AbstractMimicElement.hpp:230
static constexpr std::string_view addedChannelId
Definition AbstractMimicElement.hpp:231
static constexpr std::string_view width
Definition AbstractMimicElement.hpp:229
Definition AbstractMimicElement.hpp:234
static constexpr std::string_view onlineVariables
Definition AbstractMimicElement.hpp:237
static constexpr std::string_view addedAlarms
Definition AbstractMimicElement.hpp:238
static constexpr std::string_view titleSettings
Definition AbstractMimicElement.hpp:235
static constexpr std::string_view addedChannel
Definition AbstractMimicElement.hpp:239
static constexpr std::string_view location
Definition AbstractMimicElement.hpp:236
Definition structs.hpp:176
Definition structs.hpp:15
Definition structs.hpp:67