22 #include "styles/stylecontextproxy.h"
29 #define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
30 m_##attr_NAME = attr_DEFAULT; \
31 inh_##attr_NAME = true;
32 #include "linestyle.attrdefs.cxx"
36 LineStyle(qreal width,
const QString& color, qreal shade=100) :
Style(), lineStyleProxy(
this) {
37 #define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
38 m_##attr_NAME = attr_DEFAULT; \
39 inh_##attr_NAME = true;
40 #include "linestyle.attrdefs.cxx"
52 static void desaxeRules(
const Xml_string& prefixPattern,
desaxe::Digester& ruleset, Xml_string elemtag = saxxDefaultElem);
54 virtual void saxx(
SaxHandler& handler,
const Xml_string& elemtag)
const;
60 QString displayName()
const;
66 void applyLineStyle(
const LineStyle & other);
67 void eraseLineStyle(
const LineStyle & other);
69 void erase() { eraseLineStyle(*
this); }
71 QString asString()
const;
75 #define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
76 const attr_TYPE &attr_GETTER() const { validate(); return m_##attr_NAME; }
77 #include "linestyle.attrdefs.cxx"
82 #define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
83 void set##attr_NAME(attr_TYPE v) { m_##attr_NAME = v; inh_##attr_NAME = false; }
84 #include "linestyle.attrdefs.cxx"
86 void appendSubline(
const LineStyle& subline) {
validate(); m_Sublines.append(subline); inh_Sublines =
false; }
90 #define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
91 void reset##attr_NAME() { m_##attr_NAME = attr_DEFAULT; inh_##attr_NAME = true; }
92 #include "linestyle.attrdefs.cxx"
96 #define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
97 bool isInh##attr_NAME() const { return inh_##attr_NAME; }
98 #include "linestyle.attrdefs.cxx"
103 #define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
104 bool isDef##attr_NAME() const { \
105 if ( !inh_##attr_NAME ) return true; \
106 const LineStyle * par = dynamic_cast<const LineStyle*>(parentStyle()); \
107 return par && par->isDef##attr_NAME(); \
109 #include "linestyle.attrdefs.cxx"
121 #define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
122 attr_TYPE m_##attr_NAME; \
123 bool inh_##attr_NAME;
124 #include "linestyle.attrdefs.cxx"
131 static_cast<Style&
>(*this) =
static_cast<const Style&
>(other);
132 #define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
133 m_##attr_NAME = other.m_##attr_NAME; \
134 inh_##attr_NAME = other.inh_##attr_NAME;
135 #include "linestyle.attrdefs.cxx"
137 m_contextversion = -1;
141 inline LineStyle::LineStyle(
const LineStyle & other) :
Style(other), lineStyleProxy(this)
143 #define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
144 m_##attr_NAME = other.m_##attr_NAME; \
145 inh_##attr_NAME = other.inh_##attr_NAME;
146 #include "linestyle.attrdefs.cxx"
148 m_contextversion = -1;
void erase()
Definition: linestyle.h:69
virtual bool equiv(const Style &other) const =0
Definition: stylecontext.h:35
Definition: saxhandler.h:21
Definition: stylecontextproxy.h:33
Definition: linestyle.h:24
virtual void update(const StyleContext *b=NULL)
Definition: style.cpp:54
static const Xml_string saxxDefaultElem
Definition: saxio.h:40
virtual void saxx(SaxHandler &handler) const
Definition: linestyle.h:55
Definition: digester.h:100
virtual void saxx(SaxHandler &, const Xml_string &) const =0
void validate() const
Definition: style.h:113
Definition: resourcecollection.h:41