The Gnome Chemistry Utils
0.15.0
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-2011 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 3 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
74
#define GCU_PROP_EX(type,member) \
75
public: \
76
void Set##member (type val) {m_##member = val; Changed##member ();} \
77
type Get##member (void) const {return m_##member;} \
78
private: \
79
void Changed##member (void); \
80
type m_##member;
81
98
#define GCU_PROP_FULL(type,member,callback) \
99
public: \
100
void Set##member (type val) {m_##member = val; callback ();} \
101
type Get##member (void) const {return m_##member;} \
102
private: \
103
type m_##member;
104
119
#define GCU_POINTER_PROP(type,member) \
120
public: \
121
void Set##member (type *val) {m_##member = val;} \
122
type *Get##member (void) {return m_##member;} \
123
type const *Get##member (void) const {return m_##member;} \
124
private: \
125
type *m_##member;
126
140
#define GCU_RO_PROP(type,member) \
141
public: \
142
type Get##member (void) const {return m_##member;} \
143
private: \
144
type m_##member;
145
159
#define GCU_RO_STATIC_PROP(type,member) \
160
public: \
161
type Get##member (void) const {return m_##member;} \
162
private: \
163
static type m_##member;
164
178
#define GCU_RO_POINTER_PROP(type,member) \
179
public: \
180
type const *Get##member (void) const {return m_##member;} \
181
private: \
182
type *m_##member;
183
197
#define GCU_PROT_PROP(type,member) \
198
public: \
199
type Get##member (void) {return m_##member;} \
200
protected: \
201
type m_##member;
202
218
#define GCU_PROT_POINTER_PROP(type,member) \
219
public: \
220
type *Get##member (void) {return m_##member;} \
221
type const *Get##member (void) const {return m_##member;} \
222
protected: \
223
type *m_##member;
224
234
#define go_conf_get_float go_conf_get_double
235
#define GCU_GCONF_GET(key,type,target,defaultval) \
236
target = go_conf_get_##type (m_ConfNode, key); \
237
if (target == (type) 0) \
238
target = defaultval;
239
247
#define GCU_GCONF_GET_NO_CHECK(key,type,target,defaultval) \
248
target = go_conf_get_##type (m_ConfNode, key);
249
260
#define GCU_GCONF_GET_N_TRANSFORM(key,type,target,defaultval,func) \
261
{ \
262
type val = go_conf_get_##type (m_ConfNode, key); \
263
if (val == (type) 0) \
264
val = defaultval; \
265
target = func (val); \
266
}
267
277
#define GCU_GCONF_GET_STRING(key,target,defaultval) \
278
if (target) { \
279
g_free (target); \
280
target = NULL; \
281
} \
282
target = go_conf_get_string (m_ConfNode, key); \
283
if (target == NULL && defaultval != NULL) \
284
target = g_strdup (defaultval);
285
292
#define GCU_UPDATE_KEY(key,type,target,action) \
293
if (!strcmp (name, ROOTDIR key)) { \
294
target = go_conf_get_##type (node, ((node)? key: ROOTDIR key)); \
295
action \
296
return; \
297
}
298
305
#define GCU_UPDATE_STRING_KEY(key,target,action) \
306
if (!strcmp (name, ROOTDIR key)) { \
307
target = go_conf_get_string (node, ((node)? key: ROOTDIR key)); \
308
action \
309
return; \
310
}
311
312
#define CC2XML(x) reinterpret_cast <xmlChar const *> (x)
313
#define C2XML(x) reinterpret_cast <xmlChar *> (x)
314
#define XML2CC(x) reinterpret_cast <char const *> (x)
315
#define XML2C(x) reinterpret_cast <char *> (x)
316
317
#endif // GCU_MACROS_H
Generated on Sat Nov 16 2013 14:35:55 for The Gnome Chemistry Utils by
1.8.5