<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <title>The Gnome Chemistry Utils: macros.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">The Gnome Chemistry Utils  <span id="projectnumber">0.14.2</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.1.2 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_a58dfd42f88c935731f32d659aed32ec.html">gcu</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#define-members">Macros</a> </div> <div class="headertitle"> <div class="title">macros.h File Reference</div> </div> </div><!--header--> <div class="contents"> <div class="textblock"><code>#include <goffice/goffice.h></code><br/> </div> <p><a href="macros_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:a2e6e8322502a538f4583d41206cea297"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a>(type, member)</td></tr> <tr class="memitem:a82f428df551c9d2116e35e28f522dc52"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#a82f428df551c9d2116e35e28f522dc52">GCU_PROP_EX</a>(type, member)</td></tr> <tr class="memitem:a4afc3ecac8195714ecd17b3fcfae14b5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#a4afc3ecac8195714ecd17b3fcfae14b5">GCU_POINTER_PROP</a>(type, member)</td></tr> <tr class="memitem:ae59df402113b58e8e28a7898e09a19a2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#ae59df402113b58e8e28a7898e09a19a2">GCU_RO_PROP</a>(type, member)</td></tr> <tr class="memitem:af8399c69817174a6241eba28bd47fa3b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#af8399c69817174a6241eba28bd47fa3b">GCU_RO_STATIC_PROP</a>(type, member)</td></tr> <tr class="memitem:a4669fa4e57baed635fa3e090eb659c32"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#a4669fa4e57baed635fa3e090eb659c32">GCU_RO_POINTER_PROP</a>(type, member)</td></tr> <tr class="memitem:ac63298328b07e40af4fe4a5e8d1b8b7c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#ac63298328b07e40af4fe4a5e8d1b8b7c">GCU_PROT_PROP</a>(type, member)</td></tr> <tr class="memitem:ad52419f8ee19ed3a6e49ca7db37e6a47"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#ad52419f8ee19ed3a6e49ca7db37e6a47">GCU_PROT_POINTER_PROP</a>(type, member)</td></tr> <tr class="memitem:a7f327ffde08ae1d96f6e8e788ee41d47"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#a7f327ffde08ae1d96f6e8e788ee41d47">GCU_GCONF_GET</a>(key, type, target, defaultval)</td></tr> <tr class="memitem:a6c15ff41e4a73db737e23088295d77e9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#a6c15ff41e4a73db737e23088295d77e9">GCU_GCONF_GET_NO_CHECK</a>(key, type, target, defaultval)   target = go_conf_get_##type (m_ConfNode, key);</td></tr> <tr class="memitem:a4da94d7466c70f4b3e9ae7f9c1918fb7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#a4da94d7466c70f4b3e9ae7f9c1918fb7">GCU_GCONF_GET_N_TRANSFORM</a>(key, type, target, defaultval, func)</td></tr> <tr class="memitem:ab53d3fd225a7feb90f841b07bd296a45"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#ab53d3fd225a7feb90f841b07bd296a45">GCU_GCONF_GET_STRING</a>(key, target, defaultval)</td></tr> <tr class="memitem:a71c4fa98fbeb9345f755f7d0cf5553a9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#a71c4fa98fbeb9345f755f7d0cf5553a9">GCU_UPDATE_KEY</a>(key, type, target, action)</td></tr> <tr class="memitem:a207e0a40d94e290fc8c2dffb19662d81"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="macros_8h.html#a207e0a40d94e290fc8c2dffb19662d81">GCU_UPDATE_STRING_KEY</a>(key, target, action)</td></tr> </table> <a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"> <p>Definition in file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div><h2>Macro Definition Documentation</h2> <a class="anchor" id="a7f327ffde08ae1d96f6e8e788ee41d47"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_GCONF_GET</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">key, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">target, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">defaultval </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">target = go_conf_get_##type (m_ConfNode, key); \</div> <div class="line"> if (target == (type) 0) \</div> <div class="line"> target = defaultval;</div> </div><!-- fragment --><p>This macro gets the numerical value of type <em>type</em> associated to <em>key</em>, and copies it to <em>target</em>. If an error occurs or if the value is 0, <em>defaultval</em> is used instead.<br/> 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 <em>key</em>. </p> <p>Definition at line <a class="el" href="macros_8h_source.html#l00212">212</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="a4da94d7466c70f4b3e9ae7f9c1918fb7"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_GCONF_GET_N_TRANSFORM</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">key, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">target, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">defaultval, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">func </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">{ \</div> <div class="line"> type val = go_conf_get_##type (m_ConfNode, key); \</div> <div class="line"> if (val == (type) 0) \</div> <div class="line"> val = defaultval; \</div> <div class="line"> target = func (val); \</div> <div class="line"> }</div> </div><!-- fragment --><p>This macro gets the numerical value of type <em>type</em> associated to <em>key</em>. If an error occurs or if the value is 0, <em>defaultval</em> is used instead.<br/> The resuting value (which might be the default value) is then passed to <em>func</em> and the result is copied to <em>target</em>. <br/> 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 <em>key</em>. </p> <p>Definition at line <a class="el" href="macros_8h_source.html#l00237">237</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="a6c15ff41e4a73db737e23088295d77e9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_GCONF_GET_NO_CHECK</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">key, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">target, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">defaultval </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   target = go_conf_get_##type (m_ConfNode, key);</td> </tr> </table> </div><div class="memdoc"> <p>This macro gets the numerical value of type <em>type</em> associated to <em>key</em>, and copies it to <em>target</em>. If an error occurs, <em>defaultval</em> is used instead.<br/> 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 <em>key</em>. </p> <p>Definition at line <a class="el" href="macros_8h_source.html#l00224">224</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="ab53d3fd225a7feb90f841b07bd296a45"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_GCONF_GET_STRING</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">key, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">target, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">defaultval </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (target) { \</div> <div class="line"> g_free (target); \</div> <div class="line"> target = NULL; \</div> <div class="line"> } \</div> <div class="line"> target = go_conf_get_string (m_ConfNode, key); \</div> <div class="line"> if (target == NULL && defaultval) \</div> <div class="line"> target = g_strdup (defaultval);</div> </div><!-- fragment --><p>This macro gets the string value associated to <em>key</em>, and copies it to <em>target</em>. If an error occurs, <em>defaultval</em> is used instead.<br/> If <em>target</em> is not NULL when entering the macro, it is deallocated using g_free and set to NULL before calling gconf_client_get_string.<br/> 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 <em>key</em>. </p> <p>Definition at line <a class="el" href="macros_8h_source.html#l00254">254</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="a4afc3ecac8195714ecd17b3fcfae14b5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_POINTER_PROP</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">member </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div> <div class="line"> void Set##member (type *val) {m_##member = val;} \</div> <div class="line"> type *Get##member (<span class="keywordtype">void</span>) {<span class="keywordflow">return</span> m_##member;} \</div> <div class="line"> type <span class="keyword">const</span> *Get##member (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_##member;} \</div> <div class="line">private: \</div> <div class="line"> type *m_##member;</div> </div><!-- fragment --><p>Defines a private pointer member with appropriate get/set methods. GCU_POINTER_PROP((Type,Foo) expands to one private member: </p> <div class="fragment"><div class="line">Type *m_Foo;</div> </div><!-- fragment --><p>and three public methods: </p> <div class="fragment"><div class="line"><span class="keywordtype">void</span> SetFoo(Type *val);</div> <div class="line">Type *GetFoo();</div> <div class="line">Type <span class="keyword">const</span> *GetFoo() <span class="keyword">const</span>;</div> </div><!-- fragment --> <p>Definition at line <a class="el" href="macros_8h_source.html#l00096">96</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="a2e6e8322502a538f4583d41206cea297"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_PROP</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">member </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div> <div class="line"> void Set##member (type val) {m_##member = val;} \</div> <div class="line"> type Get##member (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_##member;} \</div> <div class="line"> type &GetRef##member (<span class="keywordtype">void</span>) {<span class="keywordflow">return</span> m_##member;} \</div> <div class="line">private: \</div> <div class="line"> type m_##member;</div> </div><!-- fragment --><p>Defines a private member with appropriate get/set methods. GCU_PROP((Type,Foo) expands to one private member: </p> <div class="fragment"><div class="line">Type m_Foo;</div> </div><!-- fragment --><p>and three public methods: </p> <div class="fragment"><div class="line"><span class="keywordtype">void</span> SetFoo(Type val);</div> <div class="line">Type GetFoo();</div> <div class="line">Type& GetRefFoo();</div> </div><!-- fragment --><p>The last one allows code as: </p> <div class="fragment"><div class="line">obj.GetRefFoo() = val;</div> </div><!-- fragment --> <p>Definition at line <a class="el" href="macros_8h_source.html#l00050">50</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="a82f428df551c9d2116e35e28f522dc52"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_PROP_EX</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">member </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div> <div class="line"> void Set##member (type val) {m_##member = val; Changed##member ();} \</div> <div class="line"> type Get##member (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_##member;} \</div> <div class="line">private: \</div> <div class="line"> void Changed##member (<span class="keywordtype">void</span>); \</div> <div class="line"> type m_##member;</div> </div><!-- fragment --><p>Defines a private member with appropriate get/set methods. GCU_PROP_EX((Type,Foo) expands to one private member: </p> <div class="fragment"><div class="line">Type m_Foo;</div> </div><!-- fragment --><p>and two public methods: </p> <div class="fragment"><div class="line"><span class="keywordtype">void</span> SetFoo(Type val);</div> <div class="line">Type GetFoo();</div> </div><!-- fragment --><p>SetFoo() calls private method (void ChangedFoo()) which must be implemented by the class. </p> <p>Definition at line <a class="el" href="macros_8h_source.html#l00074">74</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="ad52419f8ee19ed3a6e49ca7db37e6a47"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_PROT_POINTER_PROP</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">member </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div> <div class="line"> type *Get##member (<span class="keywordtype">void</span>) {<span class="keywordflow">return</span> m_##member;} \</div> <div class="line"> type <span class="keyword">const</span> *Get##member (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_##member;} \</div> <div class="line">protected: \</div> <div class="line"> type *m_##member;</div> </div><!-- fragment --><p>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: </p> <div class="fragment"><div class="line">Type *m_Foo;</div> </div><!-- fragment --><p>and two public methods: </p> <div class="fragment"><div class="line">Type *GetFoo();</div> <div class="line">Type <span class="keyword">const</span> *GetFoo() <span class="keyword">const</span>;</div> </div><!-- fragment --> <p>Definition at line <a class="el" href="macros_8h_source.html#l00195">195</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="ac63298328b07e40af4fe4a5e8d1b8b7c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_PROT_PROP</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">member </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div> <div class="line"> type Get##member (<span class="keywordtype">void</span>) {<span class="keywordflow">return</span> m_##member;} \</div> <div class="line">protected: \</div> <div class="line"> type m_##member;</div> </div><!-- fragment --><p>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. <a class="el" href="macros_8h.html#ac63298328b07e40af4fe4a5e8d1b8b7c">GCU_PROT_PROP(Type,Foo)</a> expands to one protected member: </p> <div class="fragment"><div class="line">Type m_Foo;</div> </div><!-- fragment --><p>and one public method: </p> <div class="fragment"><div class="line">Type GetFoo();</div> </div><!-- fragment --> <p>Definition at line <a class="el" href="macros_8h_source.html#l00174">174</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="a4669fa4e57baed635fa3e090eb659c32"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_RO_POINTER_PROP</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">member </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div> <div class="line"> type <span class="keyword">const</span> *Get##member (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_##member;} \</div> <div class="line">private: \</div> <div class="line"> type *m_##member;</div> </div><!-- fragment --><p>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: </p> <div class="fragment"><div class="line">Type *m_Foo;</div> </div><!-- fragment --><p>and one public methods: </p> <div class="fragment"><div class="line">Type <span class="keyword">const</span> *GetFoo() <span class="keyword">const</span>;</div> </div><!-- fragment --> <p>Definition at line <a class="el" href="macros_8h_source.html#l00155">155</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="ae59df402113b58e8e28a7898e09a19a2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_RO_PROP</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">member </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div> <div class="line"> type Get##member (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_##member;} \</div> <div class="line">private: \</div> <div class="line"> type m_##member;</div> </div><!-- fragment --><p>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. <a class="el" href="macros_8h.html#ae59df402113b58e8e28a7898e09a19a2">GCU_RO_PROP(Type,Foo)</a> expands to one private member: </p> <div class="fragment"><div class="line">Type m_Foo;</div> </div><!-- fragment --><p>and one public method: </p> <div class="fragment"><div class="line">Type GetFoo() <span class="keyword">const</span>;</div> </div><!-- fragment --> <p>Definition at line <a class="el" href="macros_8h_source.html#l00117">117</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="af8399c69817174a6241eba28bd47fa3b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_RO_STATIC_PROP</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">member </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">public</span>: \</div> <div class="line"> type Get##member (<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_##member;} \</div> <div class="line">private: \</div> <div class="line"> static type m_##member;</div> </div><!-- fragment --><p>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. <a class="el" href="macros_8h.html#af8399c69817174a6241eba28bd47fa3b">GCU_RO_STATIC_PROP(Type,Foo)</a> expands to one private member: </p> <div class="fragment"><div class="line"><span class="keyword">static</span> Type m_Foo;</div> </div><!-- fragment --><p>and one public method: </p> <div class="fragment"><div class="line">Type GetFoo() <span class="keyword">const</span>;</div> </div><!-- fragment --> <p>Definition at line <a class="el" href="macros_8h_source.html#l00136">136</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="a71c4fa98fbeb9345f755f7d0cf5553a9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_UPDATE_KEY</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">key, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">type, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">target, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">action </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (!strcmp (name, ROOTDIR key)) { \</div> <div class="line"> target = go_conf_get_##type (node, ((node)? key: ROOTDIR key)); \</div> <div class="line"> action \</div> <div class="line"> return; \</div> <div class="line"> }</div> </div><!-- fragment --><p>This macro updates a value of type <em>type</em> associated to <em>key</em>, and copies it to <em>target</em>. <em>action</em> 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 <em>key</em>. </p> <p>Definition at line <a class="el" href="macros_8h_source.html#l00269">269</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> <a class="anchor" id="a207e0a40d94e290fc8c2dffb19662d81"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define GCU_UPDATE_STRING_KEY</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">key, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">target, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">action </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (!strcmp (name, ROOTDIR key)) { \</div> <div class="line"> target = go_conf_get_string (node, ((node)? key: ROOTDIR key)); \</div> <div class="line"> action \</div> <div class="line"> return; \</div> <div class="line"> }</div> </div><!-- fragment --><p>This macro updates a string value associated to <em>key</em>, and copies it to <em>target</em>. <em>action</em> 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 <em>key</em>. </p> <p>Definition at line <a class="el" href="macros_8h_source.html#l00282">282</a> of file <a class="el" href="macros_8h_source.html">macros.h</a>.</p> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Mar 14 2013 17:34:28 for The Gnome Chemistry Utils by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.1.2 </small></address> </body> </html>