<!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"/> <title>bakery: Bakery::Conf::Client Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="namespaceBakery.html">Bakery</a>::<a class="el" href="namespaceBakery_1_1Conf.html">Conf</a>::<a class="el" href="classBakery_1_1Conf_1_1Client.html">Client</a> </div> </div> <div class="contents"> <h1>Bakery::Conf::Client Class Reference</h1><!-- doxytag: class="Bakery::Conf::Client" --> <p>Configuration <a class="el" href="classBakery_1_1Conf_1_1Client.html" title="Configuration Client Allows you to associate widget "values" with configuration...">Client</a> Allows you to associate widget "values" with configuration keys, and then <a class="el" href="classBakery_1_1Conf_1_1Client.html#a3c117e06fcdb742a8ca3817451a31f08">load()</a> and <a class="el" href="classBakery_1_1Conf_1_1Client.html#a3bedfb42f86634146e191304477a97c0">save()</a> them all at once. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="Client_8h_source.html">Client.h</a>></code></p> <p><a href="classBakery_1_1Conf_1_1Client-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classBakery_1_1Conf_1_1Client.html#a2b4cf3308f72b6c85f20261379fe3923">Client</a> (const Glib::ustring &configuration_directory)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classBakery_1_1Conf_1_1Client.html#aa72afb2973c097c6c31883bd1b310db8">~Client</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBakery_1_1Conf_1_1Client.html#a3c117e06fcdb742a8ca3817451a31f08">load</a> (std::auto_ptr< Glib::Error > &error)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBakery_1_1Conf_1_1Client.html#a3bedfb42f86634146e191304477a97c0">save</a> (std::auto_ptr< Glib::Error > &error)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBakery_1_1Conf_1_1Client.html#ad88705caaa7c7cc9d059d5b7fb330d27">add</a> (const Glib::ustring &key, Gtk::Widget &widget)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">e.g. conf_client.add("user_name", m_EntryUserName); <a href="#ad88705caaa7c7cc9d059d5b7fb330d27"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBakery_1_1Conf_1_1Client.html#aaec6d1a564bdbcbeeae1d52decc46587">add_instant</a> (const Glib::ustring &key, Gtk::Widget &widget)</td></tr> <tr><td colspan="2"><h2>Protected Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/> <a class="el" href="classBakery_1_1sharedptr.html">Bakery::Conf::AssociationBase::AssociationPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classBakery_1_1Conf_1_1Client.html#ab41a84ed0bd5c6fc3053d3e7e9fb7042">AssociationPtr</a></td></tr> <tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBakery_1_1Conf_1_1Client.html#a28b8a11643afe6b64252c329df398ed0">add_implementation</a> (const Glib::ustring &key, Gtk::Widget &widget, bool instant)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Override this method to add recognition of additional widget types to a derived class of <a class="el" href="classBakery_1_1Conf_1_1Client.html" title="Configuration Client Allows you to associate widget "values" with configuration...">Client</a>. <a href="#a28b8a11643afe6b64252c329df398ed0"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class T_Widget > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classBakery_1_1Conf_1_1Client.html#abc272f8a3a5f4a2cb73a3783e968c513">add_association</a> (const Glib::ustring &key, T_Widget &widget, bool instant)</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Configuration <a class="el" href="classBakery_1_1Conf_1_1Client.html" title="Configuration Client Allows you to associate widget "values" with configuration...">Client</a> Allows you to associate widget "values" with configuration keys, and then <a class="el" href="classBakery_1_1Conf_1_1Client.html#a3c117e06fcdb742a8ca3817451a31f08">load()</a> and <a class="el" href="classBakery_1_1Conf_1_1Client.html#a3bedfb42f86634146e191304477a97c0">save()</a> them all at once. </p> <p>The "value" depends on the widget: Gtk::Entry - text (gconf string). Gtk::CheckButton, Gtk::RadioButton - active (gconf bool). Gtk::Range (e.g. scales and scrollbars) - position (gconf float). Gtk::SpinButton - value (gconf float). Gtk::Combo - text (gconf string). Gtk::OptionMenu - item number (gconf int); ideally we would prefer to use a string representation, but that's not realistic.</p> <p>Advantages compared to Gnome::Conf::Client:</p> <ul> <li>Avoids repetition of key names.</li> <li>Avoids repetition of the directory name.</li> <li>Avoids manual code to get and set widget values.</li> <li>Avoids 2 sets of very similar code, for load and save.</li> <li>No need for Glib::RefPtr<></li> <li>Can do instant apply and instant update with <a class="el" href="classBakery_1_1Conf_1_1Client.html#aaec6d1a564bdbcbeeae1d52decc46587">add_instant()</a>.. </li> </ul> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="ab41a84ed0bd5c6fc3053d3e7e9fb7042"></a><!-- doxytag: member="Bakery::Conf::Client::AssociationPtr" ref="ab41a84ed0bd5c6fc3053d3e7e9fb7042" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classBakery_1_1sharedptr.html">Bakery::Conf::AssociationBase::AssociationPtr</a> <a class="el" href="classBakery_1_1sharedptr.html">Bakery::Conf::Client::AssociationPtr</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a2b4cf3308f72b6c85f20261379fe3923"></a><!-- doxytag: member="Bakery::Conf::Client::Client" ref="a2b4cf3308f72b6c85f20261379fe3923" args="(const Glib::ustring &configuration_directory)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Bakery::Conf::Client::Client </td> <td>(</td> <td class="paramtype">const Glib::ustring & </td> <td class="paramname"> <em>configuration_directory</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="aa72afb2973c097c6c31883bd1b310db8"></a><!-- doxytag: member="Bakery::Conf::Client::~Client" ref="aa72afb2973c097c6c31883bd1b310db8" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual Bakery::Conf::Client::~Client </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="ad88705caaa7c7cc9d059d5b7fb330d27"></a><!-- doxytag: member="Bakery::Conf::Client::add" ref="ad88705caaa7c7cc9d059d5b7fb330d27" args="(const Glib::ustring &key, Gtk::Widget &widget)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Bakery::Conf::Client::add </td> <td>(</td> <td class="paramtype">const Glib::ustring & </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Gtk::Widget & </td> <td class="paramname"> <em>widget</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>e.g. conf_client.add("user_name", m_EntryUserName); </p> </div> </div> <a class="anchor" id="abc272f8a3a5f4a2cb73a3783e968c513"></a><!-- doxytag: member="Bakery::Conf::Client::add_association" ref="abc272f8a3a5f4a2cb73a3783e968c513" args="(const Glib::ustring &key, T_Widget &widget, bool instant)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T_Widget > </div> <table class="memname"> <tr> <td class="memname">void Bakery::Conf::Client::add_association </td> <td>(</td> <td class="paramtype">const Glib::ustring & </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">T_Widget & </td> <td class="paramname"> <em>widget</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>instant</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a28b8a11643afe6b64252c329df398ed0"></a><!-- doxytag: member="Bakery::Conf::Client::add_implementation" ref="a28b8a11643afe6b64252c329df398ed0" args="(const Glib::ustring &key, Gtk::Widget &widget, bool instant)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Bakery::Conf::Client::add_implementation </td> <td>(</td> <td class="paramtype">const Glib::ustring & </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Gtk::Widget & </td> <td class="paramname"> <em>widget</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>instant</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Override this method to add recognition of additional widget types to a derived class of <a class="el" href="classBakery_1_1Conf_1_1Client.html" title="Configuration Client Allows you to associate widget "values" with configuration...">Client</a>. </p> <p>You must also provide an implementation for the specialization of Association<T> for the widget type(s) you are adding support for. </p> </div> </div> <a class="anchor" id="aaec6d1a564bdbcbeeae1d52decc46587"></a><!-- doxytag: member="Bakery::Conf::Client::add_instant" ref="aaec6d1a564bdbcbeeae1d52decc46587" args="(const Glib::ustring &key, Gtk::Widget &widget)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Bakery::Conf::Client::add_instant </td> <td>(</td> <td class="paramtype">const Glib::ustring & </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Gtk::Widget & </td> <td class="paramname"> <em>widget</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a3c117e06fcdb742a8ca3817451a31f08"></a><!-- doxytag: member="Bakery::Conf::Client::load" ref="a3c117e06fcdb742a8ca3817451a31f08" args="(std::auto_ptr< Glib::Error > &error)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Bakery::Conf::Client::load </td> <td>(</td> <td class="paramtype">std::auto_ptr< Glib::Error > & </td> <td class="paramname"> <em>error</em></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a3bedfb42f86634146e191304477a97c0"></a><!-- doxytag: member="Bakery::Conf::Client::save" ref="a3bedfb42f86634146e191304477a97c0" args="(std::auto_ptr< Glib::Error > &error)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Bakery::Conf::Client::save </td> <td>(</td> <td class="paramtype">std::auto_ptr< Glib::Error > & </td> <td class="paramname"> <em>error</em></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="Client_8h_source.html">Client.h</a></li> </ul> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>