AssociationBase.h
gconfmm.h
gtkmm/widget.h
bakery/Utilities/sharedptr.h
Association.h
gtkmm/widget.h
AssociationBase.h
bakery/Utilities/sharedptr.h
iostream
gconfmm.h
Dialog_Preferences.h
AssociationBase.h
bakery.h
Association.h
Client.h
Bakery::Conf::AssociationBase
Bakery
Bakery::Conf

    /*
    *Copyright2002TheBakeryteam
    *
    *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_ASSOCIATIONBASE_H
    #defineBAKERY_CONFIGURATION_ASSOCIATIONBASE_H

    #include<gconfmm.h>
    #include<gtkmm/widget.h>
    #include<bakery/Utilities/sharedptr.h>

    namespaceBakery
    {

    namespaceConf
    {

    classAssociationBase:publicsigc::trackable
    {
    public:
    typedefsharedptr<AssociationBase>AssociationPtr;
    typedefsharedptr<const AssociationBase>AssociationConstPtr;

    voidadd(constGlib::RefPtr<Gnome::Conf::Client>&conf_client);

    #ifdefGLIBMM_EXCEPTIONS_ENABLED
    voidload();
    voidsave();
    #else
    //TODO:Ignoreerrorsinthesefunctions?
    voidload(std::auto_ptr<Glib::Error>&error);
    voidsave(std::auto_ptr<Glib::Error>&error);
    #endif

    virtual~AssociationBase();

    protected:
    AssociationBase(constGlib::ustring&full_key,boolinstant);
    AssociationBase(constAssociationBase&other);//Notimplemented

    boolis_instant()const;
    Glib::ustringget_key()const;
    Glib::RefPtr<const Gnome::Conf::Client>get_conf_client()const;
    Glib::RefPtr<Gnome::Conf::Client>get_conf_client();

    typedefsigc::slot<void>Callback;
    virtualvoidconnect_widget(Callbackon_widget_changed)=0;

    #ifdefGLIBMM_EXCEPTIONS_ENABLED
    virtualvoidload_widget()=0;
    virtualvoidsave_widget()=0;
    #else
    virtualvoidload_widget(std::auto_ptr<Glib::Error>&error)=0;
    virtualvoidsave_widget(std::auto_ptr<Glib::Error>&error)=0;
    #endif

    voidon_widget_changed();
    voidon_conf_changed(guintcnxn_id,Gnome::Conf::Entryentry);

    Glib::ustringm_key;
    boolm_instant;
    Glib::RefPtr<Gnome::Conf::Client>m_conf_client;
    };

    }//namespaceConf

    }//namespaceBakery

    #endif//BAKERY_CONFIGURATION_ASSOCIATIONBASE_H