89 QSvgNode(QSvgNode *parent=0);
91 void draw(QPainter *p, QSvgExtraStates &states);
92 virtual bool separateFillStroke(
const QPainter *,
const QSvgExtraStates &)
const {
return false;}
93 virtual void drawCommand(QPainter *p, QSvgExtraStates &states) = 0;
94 void fillThenStroke(QPainter *p, QSvgExtraStates &states);
95 QImage drawIntoBuffer(QPainter *p, QSvgExtraStates &states,
const QRect &boundsRect);
96 void applyMaskToBuffer(QImage *proxy, QImage mask)
const;
97 void drawWithMask(QPainter *p, QSvgExtraStates &states,
const QImage &mask,
const QRect &boundsRect);
98 void applyBufferToCanvas(QPainter *p, QImage proxy)
const;
100 QSvgNode *parent()
const;
101 bool isDescendantOf(
const QSvgNode *parent)
const;
103 void appendStyleProperty(QSvgStyleProperty *prop,
const QString &id);
104 void applyStyle(QPainter *p, QSvgExtraStates &states)
const;
105 void applyStyleRecursive(QPainter *p, QSvgExtraStates &states)
const;
106 void revertStyle(QPainter *p, QSvgExtraStates &states)
const;
107 void revertStyleRecursive(QPainter *p, QSvgExtraStates &states)
const;
108 void applyAnimatedStyle(QPainter *p, QSvgExtraStates &states)
const;
109 void revertAnimatedStyle(QPainter *p, QSvgExtraStates &states)
const;
110 QSvgStyleProperty *styleProperty(QSvgStyleProperty::Type type)
const;
112 QSvgDocument *document()
const;
114 virtual Type type()
const = 0;
115 QString typeName()
const;
116 virtual QRectF internalFastBounds(QPainter *p, QSvgExtraStates &states)
const;
117 virtual QRectF internalBounds(QPainter *p, QSvgExtraStates &states)
const;
118 QRectF bounds(QPainter *p, QSvgExtraStates &states)
const;
119 QRectF bounds()
const;
120 virtual QRectF decoratedInternalBounds(QPainter *p, QSvgExtraStates &states)
const;
121 virtual QRectF decoratedBounds(QPainter *p, QSvgExtraStates &states)
const;
123 void setRequiredFeatures(
const QStringList &lst);
124 const QStringList & requiredFeatures()
const;
126 void setRequiredExtensions(
const QStringList &lst);
127 const QStringList & requiredExtensions()
const;
129 void setRequiredLanguages(
const QStringList &lst);
130 const QStringList & requiredLanguages()
const;
132 void setRequiredFormats(
const QStringList &lst);
133 const QStringList & requiredFormats()
const;
135 void setRequiredFonts(
const QStringList &lst);
136 const QStringList & requiredFonts()
const;
138 void setVisible(
bool visible);
139 bool isVisible()
const;
141 void setDisplayMode(DisplayMode display);
142 DisplayMode displayMode()
const;
144 QString nodeId()
const;
145 void setNodeId(
const QString &i);
147 QString xmlClass()
const;
148 void setXmlClass(
const QString &str);
150 QString maskId()
const;
151 void setMaskId(
const QString &str);
152 bool hasMask()
const;
154 QString filterId()
const;
155 void setFilterId(
const QString &str);
156 bool hasFilter()
const;
158 QString markerStartId()
const;
159 void setMarkerStartId(
const QString &str);
160 bool hasMarkerStart()
const;
162 QString markerMidId()
const;
163 void setMarkerMidId(
const QString &str);
164 bool hasMarkerMid()
const;
166 QString markerEndId()
const;
167 void setMarkerEndId(
const QString &str);
168 bool hasMarkerEnd()
const;
170 bool hasAnyMarker()
const;
172 virtual bool requiresGroupRendering()
const;
174 virtual bool shouldDrawNode(QPainter *p, QSvgExtraStates &states)
const;
175 const QSvgStaticStyle &style()
const {
return m_style; }
177 mutable QSvgStaticStyle m_style;
178 mutable QSvgAnimatedStyle m_animatedStyle;
180 QRectF filterRegion(QRectF bounds)
const;
182 static qreal strokeWidth(QPainter *p);
183 static void initPainter(QPainter *p);
189 static QRectF boundsOnStroke(QPainter *p,
const QPainterPath &path,
190 qreal width, BoundsMode mode);
195 QStringList m_requiredFeatures;
196 QStringList m_requiredExtensions;
197 QStringList m_requiredLanguages;
198 QStringList m_requiredFormats;
199 QStringList m_requiredFonts;
205 QString m_markerStartId;
206 QString m_markerMidId;
207 QString m_markerEndId;
209 mutable QRectF m_cachedBounds;
210 DisplayMode m_displayMode;
213 friend class QSvgDocument;
216 Q_DISABLE_COPY_X(QSvgNode,
"Classes inheriting from this class may contain"
217 "a vector of unique pointers as a member variable")