macros.h
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/app/go-conf.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_POINTER_PROP(type,member) \
00113 public: \
00114 type const *Get##member (void) const {return m_##member;} \
00115 private: \
00116 type *m_##member;
00117
00131 #define GCU_PROT_PROP(type,member) \
00132 public: \
00133 type Get##member (void) {return m_##member;} \
00134 protected: \
00135 type m_##member;
00136
00152 #define GCU_PROT_POINTER_PROP(type,member) \
00153 public: \
00154 type *Get##member (void) {return m_##member;} \
00155 type const *Get##member (void) const {return m_##member;} \
00156 protected: \
00157 type *m_##member;
00158
00169 #define go_conf_get_float go_conf_get_double
00170 #define GCU_GCONF_GET(key,type,target,defaultval) \
00171 target = go_conf_get_##type (m_ConfNode, key); \
00172 if (target == (type) 0) \
00173 target = defaultval;
00174
00183 #define GCU_GCONF_GET_NO_CHECK(key,type,target,defaultval) \
00184 target = go_conf_get_##type (m_ConfNode, key);
00185
00197 #define GCU_GCONF_GET_N_TRANSFORM(key,type,target,defaultval,func) \
00198 { \
00199 type val = go_conf_get_##type (m_ConfNode, key); \
00200 if (val == (type) 0) \
00201 val = defaultval; \
00202 target = func (val); \
00203 }
00204
00214 #define GCU_GCONF_GET_STRING(key,target,defaultval) \
00215 if (target) { \
00216 g_free (target); \
00217 target = NULL; \
00218 } \
00219 target = go_conf_get_string (m_ConfNode, key); \
00220 if (target == NULL && defaultval) \
00221 target = g_strdup (defaultval);
00222
00230 #define GCU_UPDATE_KEY(key,type,target,action) \
00231 if (!strcmp (name, ROOTDIR key)) { \
00232 target = go_conf_get_##type (node, ((node)? key: ROOTDIR key)); \
00233 action \
00234 return; \
00235 }
00236
00244 #define GCU_UPDATE_STRING_KEY(key,target,action) \
00245 if (!strcmp (name, ROOTDIR key)) { \
00246 target = go_conf_get_string (node, ((node)? key: ROOTDIR key)); \
00247 action \
00248 return; \
00249 }
00250
00251 #endif // GCU_MACROS_H