PeriDyno 1.2.1
Loading...
Searching...
No Matches
WtNodeGraphicsObject.h
Go to the documentation of this file.
1#pragma once
2
3#include <Wt/WPaintDevice.h>
4#include <Wt/WPainter.h>
5#include <Wt/WColor.h>
6#include <Wt/WPen.h>
7#include <Wt/WGradient.h>
8#include <Wt/WAbstractArea.h>
9#include <Wt/WRectArea.h>
10
11#include "WtNode.h"
12#include "WtNodeStyle.h"
13#include "WtFlowScene.h"
14#include "WtFlowNodeData.h"
15
16class WtNode;
17class WtNodeState;
18class WtNodeGeometry;
20class WtNodeDataModel;
21class WtFlowScene;
22
24{
25public:
26
28
30
31public:
32
33 static void paint(Wt::WPainter* painter, WtNode& node, WtFlowScene const& scene);
34
35 static void drawNodeRect(
36 Wt::WPainter* painter,
37 WtNodeGeometry const& geom,
38 WtNodeDataModel const* model,
39 WtNodeGraphicsObject const& graphicsObject);
40
41 static void drawHotKeys(
42 Wt::WPainter* painter,
43 WtNodeGeometry const& geom,
44 WtNodeDataModel const* model,
45 WtNodeGraphicsObject const& graphicsObject);
46
47 static void drawModelName(
48 Wt::WPainter* painter,
49 WtNodeGeometry const& geom,
50 WtNodeState const& state,
51 WtNodeDataModel const* model
52 );
53
54 static void drawEntryLabels(
55 Wt::WPainter* painter,
56 WtNodeGeometry const& geom,
57 WtNodeState const& state,
58 WtNodeDataModel const* model);
59
60 static void drawConnectionPoints(
61 Wt::WPainter* painter,
62 WtNodeGeometry const& geom,
63 WtNodeState const& state,
64 WtNodeDataModel const* model,
65 WtFlowScene const& scene,
66 WtNodeGraphicsObject const& graphicsObject
67 );
68
69 //static void drawFilledConnectionPoints(Wt::WPainter* painter);
70
71 static void drawResizeRect(
72 Wt::WPainter* painter,
73 WtNodeGeometry const& geom,
74 WtNodeDataModel const* model);
75
76 static void drawValidationRect(
77 Wt::WPainter* painter,
78 WtNodeGeometry const& geom,
79 WtNodeDataModel const* model,
80 WtNodeGraphicsObject const& graphicsObject);
81};
82
84{
85public:
86 WtNodeGraphicsObject(WtFlowScene& scene, WtNode& node, Wt::WPainter* painter, int selectType);
87
88 virtual ~WtNodeGraphicsObject();
89
90 WtNode& node();
91
92 WtNode const& node() const;
93
94 Wt::WRectF boundingRect() const;
95
96 void setGeometryChanged();
97
100 void moveConnections() const;
101
102 enum { Type = 65538 };
103
104 int type() const { return Type; }
105
106 void lock(bool locked);
107
108 bool isHotKey0Checked() const { return _hotKey0Checked; }
109
110 void setHotKey0Checked(bool checked) { _hotKey0Checked = checked; }
111
112 bool hotKey0Hovered() const { return _hotKey0Hovered; }
113
114 void setHotKey0Hovered(bool h) { _hotKey0Hovered = h; }
115
116 bool isHotKey1Checked() const { return _hotKey1Checked; }
117
118 void setHotKey1Checked(bool checked) { _hotKey1Checked = checked; }
119
120 bool hotKey1Hovered() const { return _hotKey1Hovered; }
121
122 void setHotKey1Hovered(bool h) { _hotKey1Hovered = h; }
123
124 void setPos(Wt::WPointF pos);
125
126 void setPos(int x, int y);
127
128 Wt::WPointF getPos() const;
129
130 int selectType() const { return _selectType; }
131
132 void setSelecteChecked(int s) { _selectType = s; }
133
134 Wt::WTransform sceneTransform() const
135 {
136 return Wt::WTransform(1, 0, 0, 1, 0, 0);
137 }
138
139 void setBoundingRect(Wt::WRectF r) const { _flowNodeData.setNodeBoundingRect(r); }
140
141 void setHotKey0BoundingRect(Wt::WRectF r) const { _flowNodeData.setHotKey0BoundingRect(r); }
142
143 void setHotKey1BoundingRect(Wt::WRectF r) const { _flowNodeData.setHotKey1BoundingRect(r); }
144
145 void setPointsData(std::vector<connectionPointData> p) const { _flowNodeData.setPointsData(p); }
146
147protected:
148 void paint(Wt::WPainter* painter);
149
150private:
151 void embedQWidget();
152
153private:
155
157
158 Wt::WPainter* _painter;
159
161
162 bool _hotKey0Checked = true;
163
164 bool _hotKey0Hovered = false;
165
166 bool _hotKey1Hovered = false;
167
168 bool _hotKey1Checked = true;
169
170 bool _hotKey2Hovered = false;
171
172 bool _hotKey2Checked = false;
173
175
177
178 int HelpTimerID = -1;
179 int PortTimerID = -1;
180
181 // use for move
182 Wt::WPointF _origin = Wt::WPointF(0, 0);
183
185
186 // either nullptr or owned by parent QGraphicsItem
187 //QGraphicsProxyWidget* _proxyWidget;
188public:
189
191};
void setPos(Wt::WPointF pos)
Wt::WTransform sceneTransform() const
Wt::WRectF boundingRect() const
WtFlowNodeData & _flowNodeData
void setPointsData(std::vector< connectionPointData > p) const
void setBoundingRect(Wt::WRectF r) const
WtNodeGraphicsObject(WtFlowScene &scene, WtNode &node, Wt::WPainter *painter, int selectType)
void setHotKey1Checked(bool checked)
WtNodeGraphicsObject()=default
void setHotKey0BoundingRect(Wt::WRectF r) const
void paint(Wt::WPainter *painter)
void setHotKey1BoundingRect(Wt::WRectF r) const
void setHotKey0Checked(bool checked)
static void paint(Wt::WPainter *painter, WtNode &node, WtFlowScene const &scene)
static void drawResizeRect(Wt::WPainter *painter, WtNodeGeometry const &geom, WtNodeDataModel const *model)
static void drawEntryLabels(Wt::WPainter *painter, WtNodeGeometry const &geom, WtNodeState const &state, WtNodeDataModel const *model)
static void drawValidationRect(Wt::WPainter *painter, WtNodeGeometry const &geom, WtNodeDataModel const *model, WtNodeGraphicsObject const &graphicsObject)
static void drawConnectionPoints(Wt::WPainter *painter, WtNodeGeometry const &geom, WtNodeState const &state, WtNodeDataModel const *model, WtFlowScene const &scene, WtNodeGraphicsObject const &graphicsObject)
static void drawNodeRect(Wt::WPainter *painter, WtNodeGeometry const &geom, WtNodeDataModel const *model, WtNodeGraphicsObject const &graphicsObject)
static void drawModelName(Wt::WPainter *painter, WtNodeGeometry const &geom, WtNodeState const &state, WtNodeDataModel const *model)
static void drawHotKeys(Wt::WPainter *painter, WtNodeGeometry const &geom, WtNodeDataModel const *model, WtNodeGraphicsObject const &graphicsObject)