Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef GCU_MACROS_H
00026 #define GCU_MACROS_H
00027
00028 #include <goffice/goffice.h>
00029
00050 #define GCU_PROP(type,member) \
00051 public: \
00052 void Set##member (type val) {m_##member = val;} \
00053 type Get##member (void) const {return m_##member;} \
00054 type &GetRef##member (void) {return m_##member;} \
00055 private: \
00056 type m_##member;
00057
00072 #define GCU_POINTER_PROP(type,member) \
00073 public: \
00074 void Set##member (type *val) {m_##member = val;} \
00075 type *Get##member (void) {return m_##member;} \
00076 type const *Get##member (void) const {return m_##member;} \
00077 private: \
00078 type *m_##member;
00079
00093 #define GCU_RO_PROP(type,member) \
00094 public: \
00095 type Get##member (void) const {return m_##member;} \
00096 private: \
00097 type m_##member;
00098
00112 #define GCU_RO_STATIC_PROP(type,member) \
00113 public: \
00114 type Get##member (void) const {return m_##member;} \
00115 private: \
00116 static type m_##member;
00117
00131 #define GCU_RO_POINTER_PROP(type,member) \
00132 public: \
00133 type const *Get##member (void) const {return m_##member;} \
00134 private: \
00135 type *m_##member;
00136
00150 #define GCU_PROT_PROP(type,member) \
00151 public: \
00152 type Get##member (void) {return m_##member;} \
00153 protected: \
00154 type m_##member;
00155
00171 #define GCU_PROT_POINTER_PROP(type,member) \
00172 public: \
00173 type *Get##member (void) {return m_##member;} \
00174 type const *Get##member (void) const {return m_##member;} \
00175 protected: \
00176 type *m_##member;
00177
00187 #define go_conf_get_float go_conf_get_double
00188 #define GCU_GCONF_GET(key,type,target,defaultval) \
00189 target = go_conf_get_##type (m_ConfNode, key); \
00190 if (target == (type) 0) \
00191 target = defaultval;
00192
00200 #define GCU_GCONF_GET_NO_CHECK(key,type,target,defaultval) \
00201 target = go_conf_get_##type (m_ConfNode, key);
00202
00213 #define GCU_GCONF_GET_N_TRANSFORM(key,type,target,defaultval,func) \
00214 { \
00215 type val = go_conf_get_##type (m_ConfNode, key); \
00216 if (val == (type) 0) \
00217 val = defaultval; \
00218 target = func (val); \
00219 }
00220
00230 #define GCU_GCONF_GET_STRING(key,target,defaultval) \
00231 if (target) { \
00232 g_free (target); \
00233 target = NULL; \
00234 } \
00235 target = go_conf_get_string (m_ConfNode, key); \
00236 if (target == NULL && defaultval) \
00237 target = g_strdup (defaultval);
00238
00245 #define GCU_UPDATE_KEY(key,type,target,action) \
00246 if (!strcmp (name, ROOTDIR key)) { \
00247 target = go_conf_get_##type (node, ((node)? key: ROOTDIR key)); \
00248 action \
00249 return; \
00250 }
00251
00258 #define GCU_UPDATE_STRING_KEY(key,target,action) \
00259 if (!strcmp (name, ROOTDIR key)) { \
00260 target = go_conf_get_string (node, ((node)? key: ROOTDIR key)); \
00261 action \
00262 return; \
00263 }
00264
00265 #define CC2XML(x) reinterpret_cast <xmlChar const *> (x)
00266 #define C2XML(x) reinterpret_cast <xmlChar *> (x)
00267 #define XML2CC(x) reinterpret_cast <char const *> (x)
00268 #define XML2C(x) reinterpret_cast <char *> (x)
00269
00270 #endif // GCU_MACROS_H