The Gnome Chemistry Utils: macros.h File Reference

- Main Page
- Namespaces
- Classes
- Files
- Directories

# macros.h File Reference

Go to the source code of this file.

## Defines
#define | GCU_PROP(type, member)
#define | GCU_RO_PROP(type, member)
#define | GCU_PROT_PROP(type, member)
#define | GCU_GCONF_GET(key, type, target, defaultval)
#define | GCU_GCONF_GET_NO_CHECK(key, type, target, defaultval)
#define | GCU_GCONF_GET_N_TRANSFORM(key, type, target, defaultval, func)
#define | GCU_GCONF_GET_STRING(key, target, defaultval)

## Detailed Description

Definition in file macros.h.

## Define Documentation

#define GCU_GCONF_GET | ( | key,
|  | type,
|  | target,
|  | defaultval |  | ) |

Value:

    target = gconf_client_get_##type (m_ConfClient, key, &error); \
            if (error) {    \
                    target = defaultval;    \
                    g_message ("GConf failed: %s", error->message); \
                    g_error_free (error);   \
                    error = NULL;   \
            }       \
            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.
Calling class must have a GConfClient member called m_ConfClient, and the code must provide a GError *error initially set to NULL.

Definition at line 101 of file macros.h.

#define GCU_GCONF_GET_N_TRANSFORM | ( | key,
|  | type,
|  | target,
|  | defaultval,
|  | func |  | ) |

Value:

    {       \
                    type val = gconf_client_get_##type (m_ConfClient, key, &error); \
                    if (error) {    \
                            val = defaultval;       \
                            g_message ("GConf failed: %s", error->message); \
                            g_error_free (error);   \
                            error = NULL;   \
                    }       \
                    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 is then passed to func and the result is copied to target.
Calling class must have a GConfClient member called m_ConfClient, and the code must provide a GError *error initially set to NULL.

Definition at line 135 of file macros.h.

#define GCU_GCONF_GET_NO_CHECK | ( | key,
|  | type,
|  | target,
|  | defaultval |  | ) |

Value:

    target = gconf_client_get_##type (m_ConfClient, key, &error); \
            if (error) {    \
                    target = defaultval;    \
                    g_message ("GConf failed: %s", error->message); \
                    g_error_free (error);   \
                    error = NULL;   \
            }

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.
Calling class must have a GConfClient member called m_ConfClient, and the code must provide a GError *error initially set to NULL.

Definition at line 118 of file macros.h.

#define GCU_GCONF_GET_STRING | ( | key,
|  | target,
|  | defaultval |  | ) |

Value:

    if (target) {   \
                    g_free (target);        \
                    target = NULL;  \
            }       \
            target = gconf_client_get_string (m_ConfClient, key, &error); \
            if (error) {    \
                    if (defaultval) \
                            target = g_strdup (defaultval); \
                    g_message ("GConf failed: %s", error->message); \
                    g_error_free (error);   \
                    error = NULL;   \
            } else 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 GConfClient member called m_ConfClient, and the code must provide a GError *error initially set to NULL.

Definition at line 157 of file macros.h.

#define GCU_PROP | ( | type,
|  | member |  | ) |

Value:

    public: \
            void Set##member (type val) {m_##member = val;} \
            type Get##member (void) {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 48 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 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 88 of file macros.h.

#define GCU_RO_PROP | ( | type,
|  | member |  | ) |

Value:

    public: \
            type Get##member (void) {return m_##member;}    \
    private:        \
            type m_##member;

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

            Type m_Foo;

and one public method:

            Type GetFoo();

Definition at line 69 of file macros.h.