The Gnome Chemistry Utils  0.14.0
Macros
macros.h File Reference
#include <goffice/goffice.h>

Go to the source code of this file.

Macros

#define GCU_PROP(type, member)
#define GCU_PROP_EX(type, member)
#define GCU_POINTER_PROP(type, member)
#define GCU_RO_PROP(type, member)
#define GCU_RO_STATIC_PROP(type, member)
#define GCU_RO_POINTER_PROP(type, member)
#define GCU_PROT_PROP(type, member)
#define GCU_PROT_POINTER_PROP(type, member)
#define GCU_GCONF_GET(key, type, target, defaultval)
#define GCU_GCONF_GET_NO_CHECK(key, type, target, defaultval)   target = go_conf_get_##type (m_ConfNode, key);
#define GCU_GCONF_GET_N_TRANSFORM(key, type, target, defaultval, func)
#define GCU_GCONF_GET_STRING(key, target, defaultval)
#define GCU_UPDATE_KEY(key, type, target, action)
#define GCU_UPDATE_STRING_KEY(key, target, action)

Detailed Description

Definition in file macros.h.

Macro Definition Documentation

#define GCU_GCONF_GET (   key,
  type,
  target,
  defaultval 
)
Value:
target = go_conf_get_##type (m_ConfNode, key); \
if (target == (type) 0) \
target = defaultval;

This macro gets the numerical value of type type associated to key, and copies it to target. If an error occurs or if the value is 0, defaultval is used instead.
If the GOConf mechanism is available in goffice (>= 0.7.0), calling class must have a GOConfNode called m_ConfNode, and the code must provide a GError *error initially set to NULL (GConf version only). The real key is obtained by appending the value of ROOTDIR to key.

Definition at line 212 of file macros.h.

#define GCU_GCONF_GET_N_TRANSFORM (   key,
  type,
  target,
  defaultval,
  func 
)
Value:
{ \
type val = go_conf_get_##type (m_ConfNode, key); \
if (val == (type) 0) \
val = defaultval; \
target = func (val); \
}

This macro gets the numerical value of type type associated to key. If an error occurs or if the value is 0, defaultval is used instead.
The resuting value (which might be the default value) is then passed to func and the result is copied to target.
If the GOConf mechanism is available in goffice (>= 0.7.0), calling class must have a GOConfNode called m_ConfNode, and the code must provide a GError *error initially set to NULL (GConf version only). The real key is obtained by appending the value of ROOTDIR to key.

Definition at line 237 of file macros.h.

#define GCU_GCONF_GET_NO_CHECK (   key,
  type,
  target,
  defaultval 
)    target = go_conf_get_##type (m_ConfNode, key);

This macro gets the numerical value of type type associated to key, and copies it to target. If an error occurs, defaultval is used instead.
If the GOConf mechanism is available in goffice (>= 0.7.0), calling class must have a GOConfNode called m_ConfNode, and the code must provide a GError *error initially set to NULL (GConf version only). The real key is obtained by appending the value of ROOTDIR to key.

Definition at line 224 of file macros.h.

#define GCU_GCONF_GET_STRING (   key,
  target,
  defaultval 
)
Value:
if (target) { \
g_free (target); \
target = NULL; \
} \
target = go_conf_get_string (m_ConfNode, key); \
if (target == NULL && defaultval) \
target = g_strdup (defaultval);

This macro gets the string value associated to key, and copies it to target. If an error occurs, defaultval is used instead.
If target is not NULL when entering the macro, it is deallocated using g_free and set to NULL before calling gconf_client_get_string.
Calling class must have a GOConfNode called m_ConfNode, and the code must provide a GError *error initially set to NULL. The real key is obtained by appending the value of ROOTDIR to key.

Definition at line 254 of file macros.h.

#define GCU_POINTER_PROP (   type,
  member 
)
Value:
public: \
void Set##member (type *val) {m_##member = val;} \
type *Get##member (void) {return m_##member;} \
type const *Get##member (void) const {return m_##member;} \
private: \
type *m_##member;

Defines a private pointer member with appropriate get/set methods. GCU_POINTER_PROP((Type,Foo) expands to one private member:

Type *m_Foo;

and three public methods:

void SetFoo(Type *val);
Type *GetFoo();
Type const *GetFoo() const;

Definition at line 96 of file macros.h.

#define GCU_PROP (   type,
  member 
)
Value:
public: \
void Set##member (type val) {m_##member = val;} \
type Get##member (void) const {return m_##member;} \
type &GetRef##member (void) {return m_##member;} \
private: \
type m_##member;

Defines a private member with appropriate get/set methods. GCU_PROP((Type,Foo) expands to one private member:

Type m_Foo;

and three public methods:

void SetFoo(Type val);
Type GetFoo();
Type& GetRefFoo();

The last one allows code as:

obj.GetRefFoo() = val;

Definition at line 50 of file macros.h.

#define GCU_PROP_EX (   type,
  member 
)
Value:
public: \
void Set##member (type val) {m_##member = val; Changed##member ();} \
type Get##member (void) const {return m_##member;} \
private: \
void Changed##member (void); \
type m_##member;

Defines a private member with appropriate get/set methods. GCU_PROP_EX((Type,Foo) expands to one private member:

Type m_Foo;

and two public methods:

void SetFoo(Type val);
Type GetFoo();

SetFoo() calls private method (void ChangedFoo()) which must be implemented by the class.

Definition at line 74 of file macros.h.

#define GCU_PROT_POINTER_PROP (   type,
  member 
)
Value:
public: \
type *Get##member (void) {return m_##member;} \
type const *Get##member (void) const {return m_##member;} \
protected: \
type *m_##member;

Defines a protected pointer member with an appropriate get method. The member can be modified the class it belongs too or a friend class or a derived class. The data referenced by the pointer can be modified if the class instance is not const. GCU_PROT_POINTER_PROP((Type,Foo) expands to one private member:

Type *m_Foo;

and two public methods:

Type *GetFoo();
Type const *GetFoo() const;

Definition at line 195 of file macros.h.

#define GCU_PROT_PROP (   type,
  member 
)
Value:
public: \
type Get##member (void) {return m_##member;} \
protected: \
type m_##member;

Defines a protected member with an appropriate get method. The member can be modified the class it belongs too or a friend class or a derived class. GCU_PROT_PROP(Type,Foo) expands to one protected member:

Type m_Foo;

and one public method:

Type GetFoo();

Definition at line 174 of file macros.h.

#define GCU_RO_POINTER_PROP (   type,
  member 
)
Value:
public: \
type const *Get##member (void) const {return m_##member;} \
private: \
type *m_##member;

Defines a private pointer member an with appropriate get method. RO stands for Read Only. The member can't be modified from outside the class it belongs to or a friend class. GCU_RO_POINTER_PROP((Type,Foo) expands to one private member:

Type *m_Foo;

and one public methods:

Type const *GetFoo() const;

Definition at line 155 of file macros.h.

#define GCU_RO_PROP (   type,
  member 
)
Value:
public: \
type Get##member (void) const {return m_##member;} \
private: \
type m_##member;

Defines a private member with an appropriate get method. RO stands for Read Only. The member can't be modified from outside the class it belongs to or a friend class. GCU_RO_PROP(Type,Foo) expands to one private member:

Type m_Foo;

and one public method:

Type GetFoo() const;

Definition at line 117 of file macros.h.

#define GCU_RO_STATIC_PROP (   type,
  member 
)
Value:
public: \
type Get##member (void) const {return m_##member;} \
private: \
static type m_##member;

Defines a static private member with an appropriate get method. RO stands for Read Only. The member can't be modified from outside the class it belongs to or a friend class. GCU_RO_STATIC_PROP(Type,Foo) expands to one private member:

static Type m_Foo;

and one public method:

Type GetFoo() const;

Definition at line 136 of file macros.h.

#define GCU_UPDATE_KEY (   key,
  type,
  target,
  action 
)
Value:
if (!strcmp (name, ROOTDIR key)) { \
target = go_conf_get_##type (node, ((node)? key: ROOTDIR key)); \
action \
return; \
}

This macro updates a value of type type associated to key, and copies it to target. action is called after setting the target? It also needs a GOConfNode* called node. The real key is obtained by appending the value of ROOTDIR to key.

Definition at line 269 of file macros.h.

#define GCU_UPDATE_STRING_KEY (   key,
  target,
  action 
)
Value:
if (!strcmp (name, ROOTDIR key)) { \
target = go_conf_get_string (node, ((node)? key: ROOTDIR key)); \
action \
return; \
}

This macro updates a string value associated to key, and copies it to target. action is called after setting the target? It also needs a GOConfNode* called node. The real key is obtained by appending the value of ROOTDIR to key.

Definition at line 282 of file macros.h.