OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
Painter2DEditDialog.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
9#include "OTGui/GuiTypes.h"
11#include "OTWidgets/Dialog.h"
13
14class QLabel;
15class QGroupBox;
16class QVBoxLayout;
17class QHBoxLayout;
18
19namespace ot {
20
21 class SpinBox;
22 class CheckBox;
23 class ComboBox;
24 class Painter2D;
25 class PushButton;
26 class DoubleSpinBox;
27 class ColorPickButton;
28 class Painter2DPreview;
29 class GradientPainter2D;
30
31 namespace intern {
33 Q_OBJECT
34 public:
35 Painter2DEditDialogGradientBase(QVBoxLayout* _layout, const GradientPainter2D* _painter);
37
38 inline void addStop(double _pos, const ot::Color& _color) { this->addStop(GradientPainterStop2D(_pos, _color)); };
39 void addStop(const GradientPainterStop2D& _stop);
40 void addStops(const std::vector<GradientPainterStop2D>& _stops);
41 std::vector<GradientPainterStop2D>stops(void) const;
42 ot::GradientSpread gradientSpread(void);
43
44 Q_SIGNALS:
45 void valuesChanged(void);
46
47 private Q_SLOTS:
48 void slotCountChanged(int _newCount);
49 void slotValueChanged(void);
50
51 private:
52 struct StopEntry {
53 QGroupBox* box;
54 DoubleSpinBox* pos;
55 ColorPickButton* color;
56 };
57 void rebuild(const std::vector<GradientPainterStop2D>& _stops);
58 StopEntry createStopEntry(size_t stopIx, const GradientPainterStop2D& _stop = GradientPainterStop2D()) const;
59 ot::GradientPainterStop2D createStopFromEntry(const StopEntry& _entry) const;
60
61 QVBoxLayout* m_layout;
62 ComboBox* m_spreadBox;
63
64 SpinBox* m_stopsBox;
65 std::list<StopEntry> m_stops;
66 };
67 }
68
69 // ###########################################################################################################################################################################################################################################################################################################################
70
71 // ###########################################################################################################################################################################################################################################################################################################################
72
73 // ###########################################################################################################################################################################################################################################################################################################################
74
76 Q_OBJECT
77 public:
84
87
88 virtual DialogEntryType getEntryType(void) const = 0;
89 virtual QWidget* getRootWidget(void) const = 0;
90
93 virtual Painter2D* createPainter(void) const = 0;
94
95 Q_SIGNALS:
96 void valueChanged(void);
97
98 public Q_SLOTS:
99 void slotValueChanged(void);
100 };
101
102 // ###########################################################################################################################################################################################################################################################################################################################
103
104 // ###########################################################################################################################################################################################################################################################################################################################
105
106 // ###########################################################################################################################################################################################################################################################################################################################
107
109 public:
110 Painter2DEditDialogFillEntry(const Painter2D* _painter = (Painter2D*)nullptr);
112
113 virtual DialogEntryType getEntryType(void) const { return FillType; };
114 virtual QWidget* getRootWidget(void) const override;
115
118 virtual Painter2D* createPainter(void) const override;
119
120 private:
121 ColorPickButton* m_btn;
122 };
123
124 // ###########################################################################################################################################################################################################################################################################################################################
125
126 // ###########################################################################################################################################################################################################################################################################################################################
127
128 // ###########################################################################################################################################################################################################################################################################################################################
129
131 public:
134
135 virtual DialogEntryType getEntryType(void) const { return LinearType; };
136 virtual QWidget* getRootWidget(void) const override { return m_cLayW; };
137
140 virtual Painter2D* createPainter(void) const override;
141
142 private:
143 QWidget* m_cLayW;
144 QVBoxLayout* m_cLay;
146
147 DoubleSpinBox* m_startX;
148 DoubleSpinBox* m_startY;
149 DoubleSpinBox* m_finalX;
150 DoubleSpinBox* m_finalY;
151 };
152
153
154 // ###########################################################################################################################################################################################################################################################################################################################
155
156 // ###########################################################################################################################################################################################################################################################################################################################
157
158 // ###########################################################################################################################################################################################################################################################################################################################
159
161 Q_OBJECT
162 public:
165
166 virtual DialogEntryType getEntryType(void) const { return RadialType; };
167 virtual QWidget* getRootWidget(void) const override { return m_cLayW; };
168
171 virtual Painter2D* createPainter(void) const override;
172
173 private Q_SLOTS:
174 void slotFocalEnabledChanged(void);
175
176 private:
177 QWidget* m_cLayW;
178 QVBoxLayout* m_cLay;
180
181 DoubleSpinBox* m_centerX;
182 DoubleSpinBox* m_centerY;
183 DoubleSpinBox* m_centerRadius;
184 CheckBox* m_useFocal;
185 DoubleSpinBox* m_focalX;
186 DoubleSpinBox* m_focalY;
187 DoubleSpinBox* m_focalRadius;
188 };
189
190 // ###########################################################################################################################################################################################################################################################################################################################
191
192 // ###########################################################################################################################################################################################################################################################################################################################
193
194 // ###########################################################################################################################################################################################################################################################################################################################
195
197 public:
198 Painter2DEditDialogReferenceEntry(const Painter2D* _painter = (Painter2D*)nullptr);
200
201 virtual DialogEntryType getEntryType(void) const { return ReferenceType; };
202 virtual QWidget* getRootWidget(void) const override;
203
206 virtual Painter2D* createPainter(void) const override;
207
208 private:
209 ComboBox* m_comboBox;
210 };
211
212 // ###########################################################################################################################################################################################################################################################################################################################
213
214 // ###########################################################################################################################################################################################################################################################################################################################
215
216 // ###########################################################################################################################################################################################################################################################################################################################
217
219 Q_OBJECT
220 public:
226
227 Painter2DEditDialog(const Painter2D* _painter = (Painter2D*)nullptr);
228 virtual ~Painter2DEditDialog();
229
230 const Painter2D* currentPainter(void) const { return m_painter; };
231 Painter2D* createPainter(void) const;
232
233 void setHasChanged(bool _changed) { m_changed = _changed; };
234 bool hasChanged(void) const { return m_changed; };
235
236 Q_SIGNALS:
237 void painterChanged(void);
238
239 private Q_SLOTS:
240 void slotTypeChanged(void);
241 void slotUpdate(void);
242 void slotConfirm(void);
243
244 private:
245 void ini(void);
246 void applyPainter(const Painter2D* _painter);
247
248 Painter2D* m_painter;
249
250 bool m_changed;
251 ComboBox* m_typeSelectionBox;
252 QVBoxLayout* m_vLayout;
253 Painter2DPreview* m_preview;
254 Painter2DEditDialogEntry* m_currentEntry;
255 PushButton* m_confirm;
256 PushButton* m_cancel;
257 QWidget* m_stretchItem;
258 };
259
260}
#define OT_WIDGETS_API_EXPORT
Definition OTWidgetsAPIExport.h:12
Definition CheckBox.h:17
The Color class is used to represent RGBA colors with integer values.
Definition Color.h:72
Definition ColorPickButton.h:22
Definition ComboBox.h:17
Definition Dialog.h:19
Definition DoubleSpinBox.h:20
Definition GradientPainter2D.h:16
Definition GradientPainterStop2D.h:15
Definition Painter2DEditDialog.h:75
DialogEntryType
Definition Painter2DEditDialog.h:78
@ RadialType
Definition Painter2DEditDialog.h:81
@ LinearType
Definition Painter2DEditDialog.h:80
@ FillType
Definition Painter2DEditDialog.h:79
void valueChanged(void)
virtual DialogEntryType getEntryType(void) const =0
virtual Painter2D * createPainter(void) const =0
Creates a new painter. Caller takes ownership.
Painter2DEditDialogEntry()
Definition Painter2DEditDialog.h:85
virtual QWidget * getRootWidget(void) const =0
Definition Painter2DEditDialog.h:108
virtual DialogEntryType getEntryType(void) const
Definition Painter2DEditDialog.h:113
Definition Painter2DEditDialog.h:218
const Painter2D * currentPainter(void) const
Definition Painter2DEditDialog.h:230
PainterEntryType
Definition Painter2DEditDialog.h:221
@ LinearType
Definition Painter2DEditDialog.h:223
@ FillType
Definition Painter2DEditDialog.h:222
void setHasChanged(bool _changed)
Definition Painter2DEditDialog.h:233
bool hasChanged(void) const
Definition Painter2DEditDialog.h:234
Definition Painter2DEditDialog.h:130
virtual DialogEntryType getEntryType(void) const
Definition Painter2DEditDialog.h:135
virtual QWidget * getRootWidget(void) const override
Definition Painter2DEditDialog.h:136
Definition Painter2DEditDialog.h:160
virtual QWidget * getRootWidget(void) const override
Definition Painter2DEditDialog.h:167
virtual DialogEntryType getEntryType(void) const
Definition Painter2DEditDialog.h:166
Definition Painter2DEditDialog.h:196
virtual DialogEntryType getEntryType(void) const
Definition Painter2DEditDialog.h:201
Definition Painter2D.h:17
Definition Painter2DPreview.h:21
Definition PushButton.h:17
Definition SpinBox.h:20
Definition Painter2DEditDialog.h:32
void addStop(double _pos, const ot::Color &_color)
Definition Painter2DEditDialog.h:38
Definition GraphicsPicker.cpp:29
Definition Connector.h:8
GradientSpread
Describes how the painter will behave when painting outsite the gradient area.
Definition GuiTypes.h:76