# Bakery::Conf::Client Class Reference

Configuration Client Allows you to associate widget "values" with configuration keys, and then load() and save() them all at once. More...

`#include <Client.h>`

Inheritance diagram for Bakery::Conf::Client:

[legend]

List of all members.

## Public Member Functions

| Client (const Glib::ustring &configuration_directory)
virtual | ~Client ()
virtual void | load (std::auto_ptr< Glib::Error > &error)
virtual void | save (std::auto_ptr< Glib::Error > &error)
virtual void | add (const Glib::ustring &key, Gtk::Widget &widget)
| e.g. conf_client.add("user_name", m_EntryUserName);
virtual void | add_instant (const Glib::ustring &key, Gtk::Widget &widget)

## Protected Types

typedef Bakery::Conf::AssociationBase::AssociationPtr | AssociationPtr

## Protected Member Functions

virtual void | add_implementation (const Glib::ustring &key, Gtk::Widget &widget, bool instant)
| Override this method to add recognition of additional widget types to a derived class of Client.
template<class T_Widget>
void | add_association (const Glib::ustring &key, T_Widget &widget, bool instant)

## Detailed Description

Configuration Client Allows you to associate widget "values" with configuration keys, and then load() and save() them all at once.

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.

Advantages compared to Gnome::Conf::Client:

- Avoids repetition of key names.
- Avoids repetition of the directory name.
- Avoids manual code to get and set widget values.
- Avoids 2 sets of very similar code, for load and save.
- No need for Glib::RefPtr<>
- Can do instant apply and instant update with add_instant()..

## Member Typedef Documentation

typedef Bakery::Conf::AssociationBase::AssociationPtr Bakery::Conf::Client::AssociationPtr`[protected]`

## Constructor & Destructor Documentation

Bakery::Conf::Client::Client | ( | const Glib::ustring & | configuration_directory | ) |

virtual Bakery::Conf::Client::~Client | ( |  | ) | `[virtual]`

## Member Function Documentation

virtual void Bakery::Conf::Client::load | ( | std::auto_ptr< Glib::Error > & | error | ) | `[virtual]`

virtual void Bakery::Conf::Client::save | ( | std::auto_ptr< Glib::Error > & | error | ) | `[virtual]`

virtual void Bakery::Conf::Client::add | ( | const Glib::ustring & | key,
|  | Gtk::Widget & | widget |
| ) |  |  | `[virtual]`

e.g. conf_client.add("user_name", m_EntryUserName);

virtual void Bakery::Conf::Client::add_instant | ( | const Glib::ustring & | key,
|  | Gtk::Widget & | widget |
| ) |  |  | `[virtual]`

virtual void Bakery::Conf::Client::add_implementation | ( | const Glib::ustring & | key,
|  | Gtk::Widget & | widget,
|  | bool | instant |
| ) |  |  | `[protected, virtual]`

Override this method to add recognition of additional widget types to a derived class of Client.

You must also provide an implementation for the specialization of Association<T> for the widget type(s) you are adding support for.

template<class T_Widget>

void Bakery::Conf::Client::add_association | ( | const Glib::ustring & | key,
|  | T_Widget & | widget,
|  | bool | instant |
| ) |  |  | `[inline, protected]`

The documentation for this class was generated from the following file:

- Client.h