QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RTextBasedEntity.h
Go to the documentation of this file.
1
20#ifndef RTEXTBASEDENTITY_H
21#define RTEXTBASEDENTITY_H
22
23#include "core_global.h"
24
25#include "REntity.h"
26#include "RTextBasedData.h"
27
28class RDocument;
29class RExporter;
30
39
40 Q_DECLARE_TR_FUNCTIONS(RTextBasedEntity)
41
42public:
54
73
74public:
75 RTextBasedEntity(RDocument* document);
76 virtual ~RTextBasedEntity();
77
78 static void init();
79
83
84 virtual RTextBasedData& getData() = 0;
85
86 virtual const RTextBasedData& getData() const = 0;
87
88 QList<RVector> getRotatedBoundingBox() const {
89 return getData().getRotatedBoundingBox();
90 }
91
92 virtual bool setProperty(RPropertyTypeId propertyTypeId, const QVariant& value,
93 RTransaction* transaction=NULL);
94 virtual QPair<QVariant, RPropertyAttributes> getProperty(
95 RPropertyTypeId& propertyTypeId,
96 bool humanReadable = false, bool noAttributes = false, bool showOnRequest = false);
97
98 virtual void exportEntity(RExporter& e, bool preview=false, bool forceSelected=false) const;
99
100 virtual QSharedPointer<REntity> scaleNonUniform(const RVector& scaleFactors, const RVector& center);
101
102 QList<RPainterPath> getPainterPaths(bool draft = false) const {
103 return getData().getPainterPaths(draft);
104 }
105
106 virtual QList<QSharedPointer<RShape> > getShapes(const RBox& queryBox = RDEFAULT_RBOX, bool ignoreComplex = false, bool segment = false, QList<RObject::Id>* entityIds = NULL) const {
107 return getData().getShapes(queryBox, ignoreComplex, segment, entityIds);
108 }
109
110 virtual QList<QSharedPointer<RShape> > getExploded() const {
111 return getData().getExploded();
112 }
113
115 return getData();
116 }
117
118 bool isBold() const {
119 return getData().isBold();
120 }
121
122 void setBold(bool on) {
123 getData().setBold(on);
124 }
125
126 bool isItalic() const {
127 return getData().isItalic();
128 }
129
130 void setItalic(bool on) {
131 getData().setItalic(on);
132 }
133
134 bool isBackward() const {
135 return getData().isBackward();
136 }
137
138 void setBackward(bool on) {
139 getData().setBackward(on);
140 }
141
142 bool isUpsideDown() const {
143 return getData().isUpsideDown();
144 }
145
146 void setUpsideDown(bool on) {
147 getData().setUpsideDown(on);
148 }
149
151 return getData().getPosition();
152 }
153
154 void setPosition(const RVector& position) {
155 getData().setPosition(position);
156 }
157
159 return getData().getAlignmentPoint();
160 }
161
162 void setAlignmentPoint(const RVector& alignmentPoint) {
163 getData().setAlignmentPoint(alignmentPoint);
164 }
165
166 double getTextHeight() const {
167 return getData().getTextHeight();
168 }
169
170 void setTextHeight(double h) {
171 getData().setTextHeight(h);
172 }
173
174 double getTextWidth() const {
175 return getData().getTextWidth();
176 }
177
178 double getWidth() const {
179 return getData().getWidth();
180 }
181 double getHeight() const {
182 return getData().getHeight();
183 }
184
186 return getData().getVAlign();
187 }
188
190 getData().setVAlign(va);
191 }
192
194 return getData().getHAlign();
195 }
196
198 getData().setHAlign(ha);
199 }
200
201 QString getFontName() const {
202 return getData().getFontName();
203 }
204
205 void setFontName(const QString& fontName) {
206 getData().setFontName(fontName);
207 }
208
209 QString getFontFile() const {
210 return getData().getFontFile();
211 }
212
214 getData().setDrawingDirection(drawingDirection);
215 }
216
218 return getData().getDrawingDirection();
219 }
220
222 getData().setLineSpacingStyle(lineSpacingStyle);
223 }
224
226 return getData().getLineSpacingStyle();
227 }
228
229 void setLineSpacingFactor(double lineSpacingFactor) {
230 getData().setLineSpacingFactor(lineSpacingFactor);
231 }
232
233 double getLineSpacingFactor() const {
234 return getData().getLineSpacingFactor();
235 }
236
237 void setAngle(double angle) {
238 getData().setAngle(angle);
239 }
240
241 double getAngle() const {
242 return getData().getAngle();
243 }
244
245 void setXScale(double xScale) {
246 getData().setXScale(xScale);
247 }
248
249 double getXScale() const {
250 return getData().getXScale();
251 }
252
253 void setSimple(bool on) {
254 getData().setSimple(on);
255 }
256
257 bool isSimple() const {
258 return getData().isSimple();
259 }
260
261 QString getEscapedText(bool escapeUnicode = false) const {
262 return getData().getEscapedText(escapeUnicode);
263 }
264
265 //QString getHtmlText() const {
266 // return getData().getHtmlText();
267 //}
268
269 QString getPlainText() const {
270 return getData().getPlainText();
271 }
272
273 void setText(const QString& text) {
274 getData().setText(text);
275 }
276
277 void sync(const RTextBasedEntity& other) {
278 getData().sync(other.getData());
279 }
280
281 QList<RTextBasedData> getSimpleTextBlocks() {
282 return getData().getSimpleTextBlocks();
283 }
284
285protected:
286 virtual void print(QDebug dbg) const;
287};
288
290Q_DECLARE_METATYPE(QSharedPointer<RTextBasedEntity>)
291Q_DECLARE_METATYPE(QSharedPointer<RTextBasedEntity>*)
292
293#endif
#define RDEFAULT_RBOX
Definition RBox.h:35
Q_DECLARE_METATYPE(RMath *)
Represents a box e.g.
Definition RBox.h:46
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
virtual QList< QSharedPointer< RShape > > getShapes(const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=false, bool segment=false, QList< RObject::Id > *entityIds=NULL) const
Definition REntityData.h:111
Base class for all entity classes.
Definition REntity.h:63
virtual REntityData & getData()=0
virtual QPair< QVariant, RPropertyAttributes > getProperty(RPropertyTypeId &propertyTypeId, bool humanReadable=false, bool noAttributes=false, bool showOnRequest=false)
Definition REntity.cpp:236
virtual QSharedPointer< REntity > scaleNonUniform(const RVector &scaleFactors, const RVector &center=RDEFAULT_RVECTOR)
Definition REntity.cpp:471
static void init()
Definition REntity.cpp:89
static RS::EntityType getRtti()
Definition REntity.h:98
virtual bool setProperty(RPropertyTypeId propertyTypeId, const QVariant &value, RTransaction *transaction=NULL)
Sets the given property to the given value.
Definition REntity.cpp:338
virtual void exportEntity(RExporter &e, bool preview=false, bool forceSelected=false) const =0
Exports the entity to the given exporter.
virtual void print(QDebug dbg) const
Stream operator for QDebug.
Definition REntity.cpp:487
Abstract base class for exporters.
Definition RExporter.h:78
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RPropertyTypeId.h:54
static QSet< RPropertyTypeId > getPropertyTypeIds(RS::EntityType type, RPropertyAttributes::Option=RPropertyAttributes::NoOptions)
Gets all property type IDs that where registered for the given class.
Definition RPropertyTypeId.cpp:283
VAlign
Vertical alignments.
Definition RS.h:332
TextLineSpacingStyle
Line spacing style for texts.
Definition RS.h:363
HAlign
Horizontal alignments.
Definition RS.h:342
TextDrawingDirection
Text drawing direction.
Definition RS.h:354
Stores and manages all data that defines the geometry and appearance of a text based entity (text,...
Definition RTextBasedData.h:68
Text entity.
Definition RTextBasedEntity.h:38
RS::TextDrawingDirection getDrawingDirection() const
Definition RTextBasedEntity.h:217
void setLineSpacingFactor(double lineSpacingFactor)
Definition RTextBasedEntity.h:229
virtual RTextBasedData & getTextData()
Definition RTextBasedEntity.h:114
double getTextWidth() const
Definition RTextBasedEntity.h:174
void setAlignmentPoint(const RVector &alignmentPoint)
Definition RTextBasedEntity.h:162
static RPropertyTypeId PropertyBold
Definition RTextBasedEntity.h:66
static RPropertyTypeId PropertyAngle
Definition RTextBasedEntity.h:64
double getWidth() const
Definition RTextBasedEntity.h:178
bool isUpsideDown() const
Definition RTextBasedEntity.h:142
RS::HAlign getHAlign() const
Definition RTextBasedEntity.h:193
RS::TextLineSpacingStyle getLineSpacingStyle() const
Definition RTextBasedEntity.h:225
double getLineSpacingFactor() const
Definition RTextBasedEntity.h:233
void setDrawingDirection(RS::TextDrawingDirection drawingDirection)
Definition RTextBasedEntity.h:213
void setVAlign(RS::VAlign va)
Definition RTextBasedEntity.h:189
bool isSimple() const
Definition RTextBasedEntity.h:257
virtual RTextBasedData & getData()=0
QString getFontName() const
Definition RTextBasedEntity.h:201
static RPropertyTypeId PropertyFontName
Definition RTextBasedEntity.h:61
void setUpsideDown(bool on)
Definition RTextBasedEntity.h:146
void setSimple(bool on)
Definition RTextBasedEntity.h:253
static RPropertyTypeId PropertySimple
Definition RTextBasedEntity.h:55
QList< RTextBasedData > getSimpleTextBlocks()
Definition RTextBasedEntity.h:281
static RPropertyTypeId PropertyCustom
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RTextBasedEntity.h:43
static RPropertyTypeId PropertyHeight
Definition RTextBasedEntity.h:62
static RPropertyTypeId PropertyType
Definition RTextBasedEntity.h:45
static RPropertyTypeId PropertyColor
Definition RTextBasedEntity.h:51
static RPropertyTypeId PropertyPositionX
Definition RTextBasedEntity.h:56
void setTextHeight(double h)
Definition RTextBasedEntity.h:170
void setBold(bool on)
Definition RTextBasedEntity.h:122
static RPropertyTypeId PropertyWidth
Definition RTextBasedEntity.h:63
double getTextHeight() const
Definition RTextBasedEntity.h:166
static RPropertyTypeId PropertyXScale
Definition RTextBasedEntity.h:65
void setBackward(bool on)
Definition RTextBasedEntity.h:138
bool isBold() const
Definition RTextBasedEntity.h:118
RVector getAlignmentPoint() const
Definition RTextBasedEntity.h:158
static RPropertyTypeId PropertyLinetype
Definition RTextBasedEntity.h:48
QString getEscapedText(bool escapeUnicode=false) const
Definition RTextBasedEntity.h:261
static RPropertyTypeId PropertyHAlign
Definition RTextBasedEntity.h:69
static QSet< RPropertyTypeId > getStaticPropertyTypeIds()
Definition RTextBasedEntity.h:80
static RPropertyTypeId PropertyDisplayedColor
Definition RTextBasedEntity.h:52
void setFontName(const QString &fontName)
Definition RTextBasedEntity.h:205
static RPropertyTypeId PropertyDrawOrder
Definition RTextBasedEntity.h:53
RS::VAlign getVAlign() const
Definition RTextBasedEntity.h:185
void sync(const RTextBasedEntity &other)
Definition RTextBasedEntity.h:277
static RPropertyTypeId PropertyPositionY
Definition RTextBasedEntity.h:57
virtual const RTextBasedData & getData() const =0
static RPropertyTypeId PropertyLineweight
Definition RTextBasedEntity.h:50
static RPropertyTypeId PropertyLineSpacingFactor
Definition RTextBasedEntity.h:68
static RPropertyTypeId PropertyBackward
Definition RTextBasedEntity.h:71
static RPropertyTypeId PropertyLayer
Definition RTextBasedEntity.h:47
static RPropertyTypeId PropertyUpsideDown
Definition RTextBasedEntity.h:72
virtual QList< QSharedPointer< RShape > > getShapes(const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=false, bool segment=false, QList< RObject::Id > *entityIds=NULL) const
Definition RTextBasedEntity.h:106
bool isItalic() const
Definition RTextBasedEntity.h:126
double getHeight() const
Definition RTextBasedEntity.h:181
QList< RVector > getRotatedBoundingBox() const
Definition RTextBasedEntity.h:88
RVector getPosition() const
Definition RTextBasedEntity.h:150
static RPropertyTypeId PropertyItalic
Definition RTextBasedEntity.h:67
void setItalic(bool on)
Definition RTextBasedEntity.h:130
double getAngle() const
Definition RTextBasedEntity.h:241
void setHAlign(RS::HAlign ha)
Definition RTextBasedEntity.h:197
virtual QList< QSharedPointer< RShape > > getExploded() const
Definition RTextBasedEntity.h:110
QString getFontFile() const
Definition RTextBasedEntity.h:209
static RPropertyTypeId PropertyBlock
Definition RTextBasedEntity.h:46
QString getPlainText() const
Definition RTextBasedEntity.h:269
double getXScale() const
Definition RTextBasedEntity.h:249
void setXScale(double xScale)
Definition RTextBasedEntity.h:245
static RPropertyTypeId PropertyHandle
Definition RTextBasedEntity.h:44
static RPropertyTypeId PropertyPlainText
Definition RTextBasedEntity.h:60
void setAngle(double angle)
Definition RTextBasedEntity.h:237
static RPropertyTypeId PropertyText
Definition RTextBasedEntity.h:59
void setText(const QString &text)
Definition RTextBasedEntity.h:273
void setLineSpacingStyle(RS::TextLineSpacingStyle lineSpacingStyle)
Definition RTextBasedEntity.h:221
QList< RPainterPath > getPainterPaths(bool draft=false) const
Definition RTextBasedEntity.h:102
static RPropertyTypeId PropertyLinetypeScale
Definition RTextBasedEntity.h:49
static RPropertyTypeId PropertyPositionZ
Definition RTextBasedEntity.h:58
static RPropertyTypeId PropertyVAlign
Definition RTextBasedEntity.h:70
bool isBackward() const
Definition RTextBasedEntity.h:134
void setPosition(const RVector &position)
Definition RTextBasedEntity.h:154
Transaction implementation.
Definition RTransaction.h:73
Represents a 3d vector (x/y/z).
Definition RVector.h:47
#define QCADCORE_EXPORT
Definition core_global.h:10
#define NULL
Definition opennurbs_system.h:256