The Gnome Chemistry Utils
0.12.13
Main Page
Namespaces
Classes
Files
File List
File Members
libs
gcu
macros.h
Go to the documentation of this file.
1
// -*- C++ -*-
2
3
/*
4
* Gnome Chemisty Utils
5
* macros.h
6
*
7
* Copyright (C) 2001-2009 Jean Bréfort <jean.brefort@normalesup.org>
8
*
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public License as
11
* published by the Free Software Foundation; either version 2 of the
12
* License, or (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
22
* USA
23
*/
24
25
#ifndef GCU_MACROS_H
26
#define GCU_MACROS_H
27
28
#include <goffice/goffice.h>
29
50
#define GCU_PROP(type,member) \
51
public: \
52
void Set##member (type val) {m_##member = val;} \
53
type Get##member (void) const {return m_##member;} \
54
type &GetRef##member (void) {return m_##member;} \
55
private: \
56
type m_##member;
57
72
#define GCU_POINTER_PROP(type,member) \
73
public: \
74
void Set##member (type *val) {m_##member = val;} \
75
type *Get##member (void) {return m_##member;} \
76
type const *Get##member (void) const {return m_##member;} \
77
private: \
78
type *m_##member;
79
93
#define GCU_RO_PROP(type,member) \
94
public: \
95
type Get##member (void) const {return m_##member;} \
96
private: \
97
type m_##member;
98
112
#define GCU_RO_POINTER_PROP(type,member) \
113
public: \
114
type const *Get##member (void) const {return m_##member;} \
115
private: \
116
type *m_##member;
117
131
#define GCU_PROT_PROP(type,member) \
132
public: \
133
type Get##member (void) {return m_##member;} \
134
protected: \
135
type m_##member;
136
152
#define GCU_PROT_POINTER_PROP(type,member) \
153
public: \
154
type *Get##member (void) {return m_##member;} \
155
type const *Get##member (void) const {return m_##member;} \
156
protected: \
157
type *m_##member;
158
168
#define go_conf_get_float go_conf_get_double
169
#define GCU_GCONF_GET(key,type,target,defaultval) \
170
target = go_conf_get_##type (m_ConfNode, key); \
171
if (target == (type) 0) \
172
target = defaultval;
173
181
#define GCU_GCONF_GET_NO_CHECK(key,type,target,defaultval) \
182
target = go_conf_get_##type (m_ConfNode, key);
183
194
#define GCU_GCONF_GET_N_TRANSFORM(key,type,target,defaultval,func) \
195
{ \
196
type val = go_conf_get_##type (m_ConfNode, key); \
197
if (val == (type) 0) \
198
val = defaultval; \
199
target = func (val); \
200
}
201
211
#define GCU_GCONF_GET_STRING(key,target,defaultval) \
212
if (target) { \
213
g_free (target); \
214
target = NULL; \
215
} \
216
target = go_conf_get_string (m_ConfNode, key); \
217
if (target == NULL && defaultval) \
218
target = g_strdup (defaultval);
219
226
#define GCU_UPDATE_KEY(key,type,target,action) \
227
if (!strcmp (name, ROOTDIR key)) { \
228
target = go_conf_get_##type (node, ((node)? key: ROOTDIR key)); \
229
action \
230
return; \
231
}
232
239
#define GCU_UPDATE_STRING_KEY(key,target,action) \
240
if (!strcmp (name, ROOTDIR key)) { \
241
target = go_conf_get_string (node, ((node)? key: ROOTDIR key)); \
242
action \
243
return; \
244
}
245
246
#endif // GCU_MACROS_H
Generated on Sat Aug 11 2012 14:48:00 for The Gnome Chemistry Utils by
1.8.1.2