Client.h
bakery/Configuration/Association.h
Dialog_Preferences.h
gtkmm/optionmenu.h
gtkmm/widget.h
bakery/Configuration/AssociationBase.h
gtkmm/entry.h
bakery/Configuration/Association.h
gtkmm/range.h
bakery/Utilities/sharedptr.h
gtkmm/combo.h
gtkmm/spinbutton.h
iostream
Client.h
gtkmm/togglebutton.h
gconfmm.h
Dialog_Preferences.h
bakery.h
Client.h
Bakery::Conf::Client
Bakery
Bakery::Conf

    /*
    *Copyright2002MurrayCumming
    *
    *Thislibraryisfreesoftware;youcanredistributeitand/or
    *modifyitunderthetermsoftheGNULibraryGeneralPublic
    *LicenseaspublishedbytheFreeSoftwareFoundation;either
    *version2oftheLicense,or(atyouroption)anylaterversion.
    *
    *Thislibraryisdistributedinthehopethatitwillbeuseful,
    *butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof
    *MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU
    *LibraryGeneralPublicLicenseformoredetails.
    *
    *YoushouldhavereceivedacopyoftheGNULibraryGeneralPublic
    *Licensealongwiththislibrary;ifnot,writetotheFree
    *SoftwareFoundation,Inc.,675MassAve,Cambridge,MA02139,USA.
    */

    #ifndefBAKERY_CONFIGURATION_CONFCLIENT_H
    #defineBAKERY_CONFIGURATION_CONFCLIENT_H

    #include"bakery/Configuration/Association.h"

    namespaceBakery
    {

    namespaceConf
    {

    classClient:publicsigc::trackable
    {
    public:
    Client(constGlib::ustring&configuration_directory);
    virtual~Client();

    #ifdefGLIBMM_EXCEPTIONS_ENABLED
    virtualvoidload();
    virtualvoidsave();
    #else
    virtualvoidload(std::auto_ptr<Glib::Error>&error);
    virtualvoidsave(std::auto_ptr<Glib::Error>&error);
    #endif

    virtualvoidadd(constGlib::ustring&key,Gtk::Widget&widget);
    virtualvoidadd_instant(constGlib::ustring&key,Gtk::Widget&widget);

    protected:

    virtualvoidadd_implementation(constGlib::ustring&key,Gtk::Widget&widget,boolinstant);

    typedefBakery::Conf::AssociationBase::AssociationPtrAssociationPtr;

    public:

    protected:
    template<classT_Widget>
    voidadd_association(constGlib::ustring&key,T_Widget&widget,boolinstant)
    {
    Glib::ustringfull_key=m_directory+"/"+key;
    AssociationPtrassoc=Association<T_Widget>::create(full_key,widget,instant);
    m_vecWidgets.push_back(assoc);
    assoc->add(m_refClient);
    }

    private:
    Glib::RefPtr<Gnome::Conf::Client>m_refClient;
    Glib::ustringm_directory;

    typedefstd::vector<AssociationPtr>type_vecWidgets;
    type_vecWidgetsm_vecWidgets;
    };

    }//namespaceConf

    }//namespaceBakery

    #endif//BAKERY_CONFIGURATION_CONFCLIENT_H