OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
GraphicsStackItem.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
10
11namespace ot {
12
17 class OT_WIDGETS_API_EXPORT GraphicsStackItem : public QGraphicsItemGroup, public QGraphicsLayoutItem, public ot::GraphicsItem {
18 public:
26
29
31 virtual ~GraphicsStackItem();
32
33 // ###########################################################################################################################################################################################################################################################################################################################
34
35 // Base class functions: GraphicsItem
36
37 virtual bool setupFromConfig(const GraphicsItemCfg* _cfg) override;
38
39 virtual void removeAllConnections(void) override;
40
41 virtual void prepareGraphicsItemGeometryChange(void) override;
42
43 virtual void callPaint(QPainter* _painter, const QStyleOptionGraphicsItem* _opt, QWidget* _widget) override;
44
46 virtual void graphicsItemEventHandler(ot::GraphicsItem* _sender, GraphicsItemEvent _event) override;
47
48 virtual void setGraphicsItemRequestedSize(const QSizeF& _size) override;
49
50 virtual QSizeF graphicsItemSizeHint(Qt::SizeHint _hint, const QSizeF& _constrains) const;
51
52 virtual QGraphicsLayoutItem* getQGraphicsLayoutItem(void) override { return this; };
53 virtual QGraphicsItem* getQGraphicsItem(void) override { return this; };
54 virtual const QGraphicsItem* getQGraphicsItem(void) const override { return this; };
55
56 virtual ot::GraphicsItem* findItem(const std::string& _itemName) override;
57
58 virtual void finalizeGraphicsItem(void) override;
59
60 virtual std::list<GraphicsElement*> getAllGraphicsElements(void) override;
61
62 virtual std::list<GraphicsElement*> getAllDirectChildElements(void) override;
63
64 // ###########################################################################################################################################################################################################################################################################################################################
65
66 // Base class functions: QGraphicsItem
67
68 virtual void paint(QPainter* _painter, const QStyleOptionGraphicsItem* _opt, QWidget* _widget) override;
69
70 virtual QRectF boundingRect(void) const override;
71 virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange _change, const QVariant& _value) override;
72 virtual void mousePressEvent(QGraphicsSceneMouseEvent* _event) override;
73 virtual void mouseMoveEvent(QGraphicsSceneMouseEvent* _event) override;
74 virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent* _event) override;
75 virtual void hoverEnterEvent(QGraphicsSceneHoverEvent* _event) override;
76 virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent* _event) override;
77
78 // ###########################################################################################################################################################################################################################################################################################################################
79
80 // Base class functions: QGraphicsLayoutItem
81
82 virtual QSizeF sizeHint(Qt::SizeHint _hint, const QSizeF& _constrains) const override;
83
84 virtual void setGeometry(const QRectF& rect) override;
85
86 // ###########################################################################################################################################################################################################################################################################################################################
87
88 // Setter / Getter
89
90 void addItem(ot::GraphicsItem* _item, bool _isMaster, bool _isSlave);
91
93 virtual double getMaxAdditionalTriggerDistance(void) const override;
94
95 void clear(void);
96
97 // ###########################################################################################################################################################################################################################################################################################################################
98
99 // Protected
100
101 protected:
102 virtual void graphicsElementStateChanged(const GraphicsElementStateFlags& _state) override;
103
104 virtual void notifyChildsAboutTransformChange(const QTransform& _newTransform) override;
105
106 private:
107
110 bool adjustChildItems(void);
111
112 std::list<GraphicsStackItemEntry> m_items;
113 QSizeF m_lastCalculatedSize;
114
115 GraphicsStackItem(const GraphicsStackItem&) = delete;
116 GraphicsStackItem& operator = (const GraphicsStackItem&) = delete;
117 };
118
119
120}
#define OT_WIDGETS_API_EXPORT
Definition OTWidgetsAPIExport.h:12
The GraphicsItemCfg is the base class for all graphics item configurations.
Definition GraphicsItemCfg.h:33
Base class for all OpenTwin GraphicsItems GraphicsItems should be created by the GraphicsFactory and ...
Definition GraphicsItem.h:35
GraphicsItemEvent
The GraphicsItemEvent is used to describe the type of an event that occured.
Definition GraphicsItem.h:46
The GraphicsStackItem is used adjust the size of child items marked as slave occording to the naster ...
Definition GraphicsStackItem.h:17
virtual const QGraphicsItem * getQGraphicsItem(void) const override
Returns the const QGraphicsItem.
Definition GraphicsStackItem.h:54
virtual QGraphicsItem * getQGraphicsItem(void) override
Returns the QGraphicsItem.
Definition GraphicsStackItem.h:53
virtual QGraphicsLayoutItem * getQGraphicsLayoutItem(void) override
Returns the QGraphicsLayoutItem.
Definition GraphicsStackItem.h:52
Definition Connector.h:8
The GraphicsStackItemEntry holds a GraphicsItem aswell as the information if this item is a master or...
Definition GraphicsStackItem.h:21
bool isSlave
If true, the item is a master.
Definition GraphicsStackItem.h:24
ot::GraphicsItem * item
Definition GraphicsStackItem.h:22
bool isMaster
Item.
Definition GraphicsStackItem.h:23