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 #define GCU_PROP(type,member) \
00029 public: \
00030 void Set##member (type val) {m_##member = val;} \
00031 type Get##member (void) {return m_##member;} \
00032 type &GetRef##member (void) {return m_##member;} \
00033 private: \
00034 type m_##member;
00035
00036 #define GCU_RO_PROP(type,member) \
00037 public: \
00038 type Get##member (void) {return m_##member;} \
00039 private: \
00040 type m_##member;
00041
00042 #define GCU_PROT_PROP(type,member) \
00043 public: \
00044 type Get##member (void) {return m_##member;} \
00045 protected: \
00046 type m_##member;
00047
00048 #define GCU_GCONF_GET(key,type,target,defaultval) \
00049 type target = gconf_client_get_##type (m_ConfClient, key, &error); \
00050 if (error) { \
00051 target = defaultval; \
00052 g_message ("GConf failed: %s", error->message); \
00053 g_error_free (error); \
00054 error = NULL; \
00055 } \
00056 if (target == (type) 0) \
00057 target = defaultval;
00058
00059 #define GCU_GCONF_GET_NO_CHECK(key,type,target,defaultval) \
00060 target = gconf_client_get_##type (m_ConfClient, key, &error); \
00061 if (error) { \
00062 target = defaultval; \
00063 g_message ("GConf failed: %s", error->message); \
00064 g_error_free (error); \
00065 error = NULL; \
00066 }
00067
00068 #define GCU_GCONF_GET_N_TRANSFORM(key,type,target,defaultval,func) \
00069 { \
00070 type val = gconf_client_get_##type (m_ConfClient, key, &error); \
00071 if (error) { \
00072 val = defaultval; \
00073 g_message ("GConf failed: %s", error->message); \
00074 g_error_free (error); \
00075 error = NULL; \
00076 } \
00077 if (val == (type) 0) \
00078 val = defaultval; \
00079 target = func (val); \
00080 }
00081
00082 #define GCU_GCONF_GET_STRING(key,target,defaultval) \
00083 if (target) { \
00084 g_free (target); \
00085 target = NULL; \
00086 } \
00087 target = gconf_client_get_string (m_ConfClient, key, &error); \
00088 if (error) { \
00089 if (defaultval) \
00090 target = g_strdup (defaultval); \
00091 g_message ("GConf failed: %s", error->message); \
00092 g_error_free (error); \
00093 error = NULL; \
00094 }
00095
00096 #endif // GCU_MACROS_H