The Gnome Chemistry Utils
0.15.1
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
51
#define GCU_PROP(type,member) \
52
public: \
53
void Set##member (type val) {m_##member = val;} \
54
type Get##member (void) const {return m_##member;} \
55
type &GetRef##member (void) {return m_##member;} \
56
type const &GetRef##member (void) const {return m_##member;} \
57
private: \
58
type m_##member;
59
76
#define GCU_PROP_EX(type,member) \
77
public: \
78
void Set##member (type val) {m_##member = val; Changed##member ();} \
79
type Get##member (void) const {return m_##member;} \
80
private: \
81
void Changed##member (void); \
82
type m_##member;
83
100
#define GCU_PROP_FULL(type,member,callback) \
101
public: \
102
void Set##member (type val) {m_##member = val; callback ();} \
103
type Get##member (void) const {return m_##member;} \
104
private: \
105
type m_##member;
106
121
#define GCU_POINTER_PROP(type,member) \
122
public: \
123
void Set##member (type *val) {m_##member = val;} \
124
type *Get##member (void) {return m_##member;} \
125
type const *Get##member (void) const {return m_##member;} \
126
private: \
127
type *m_##member;
128
142
#define GCU_RO_PROP(type,member) \
143
public: \
144
type Get##member (void) const {return m_##member;} \
145
private: \
146
type m_##member;
147
161
#define GCU_RO_STATIC_PROP(type,member) \
162
public: \
163
type Get##member (void) const {return m_##member;} \
164
private: \
165
static type m_##member;
166
180
#define GCU_RO_POINTER_PROP(type,member) \
181
public: \
182
type const *Get##member (void) const {return m_##member;} \
183
private: \
184
type *m_##member;
185
199
#define GCU_PROT_PROP(type,member) \
200
public: \
201
type Get##member (void) {return m_##member;} \
202
protected: \
203
type m_##member;
204
220
#define GCU_PROT_POINTER_PROP(type,member) \
221
public: \
222
type *Get##member (void) {return m_##member;} \
223
type const *Get##member (void) const {return m_##member;} \
224
protected: \
225
type *m_##member;
226
236
#define go_conf_get_float go_conf_get_double
237
#define GCU_GCONF_GET(key,type,target,defaultval) \
238
target = go_conf_get_##type (m_ConfNode, key); \
239
if (target == (type) 0) \
240
target = defaultval;
241
249
#define GCU_GCONF_GET_NO_CHECK(key,type,target,defaultval) \
250
target = go_conf_get_##type (m_ConfNode, key);
251
262
#define GCU_GCONF_GET_N_TRANSFORM(key,type,target,defaultval,func) \
263
{ \
264
type val = go_conf_get_##type (m_ConfNode, key); \
265
if (val == (type) 0) \
266
val = defaultval; \
267
target = func (val); \
268
}
269
279
#define GCU_GCONF_GET_STRING(key,target,defaultval) \
280
if (target) { \
281
g_free (target); \
282
target = NULL; \
283
} \
284
target = go_conf_get_string (m_ConfNode, key); \
285
if (target == NULL && defaultval != NULL) \
286
target = g_strdup (defaultval);
287
294
#define GCU_UPDATE_KEY(key,type,target,action) \
295
if (!strcmp (name, ROOTDIR key)) { \
296
target = go_conf_get_##type (node, ((node)? key: ROOTDIR key)); \
297
action \
298
return; \
299
}
300
307
#define GCU_UPDATE_STRING_KEY(key,target,action) \
308
if (!strcmp (name, ROOTDIR key)) { \
309
target = go_conf_get_string (node, ((node)? key: ROOTDIR key)); \
310
action \
311
return; \
312
}
313
314
#define CC2XML(x) reinterpret_cast <xmlChar const *> (x)
315
#define C2XML(x) reinterpret_cast <xmlChar *> (x)
316
#define XML2CC(x) reinterpret_cast <char const *> (x)
317
#define XML2C(x) reinterpret_cast <char *> (x)
318
319
#endif // GCU_MACROS_H
Generated on Thu May 8 2014 10:13:22 for The Gnome Chemistry Utils by
1.8.6