theme_set.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
- /*
- * ===========================================================================
- * PRODUCTION $Log: theme_set.hpp,v $
- * PRODUCTION Revision 1000.0 2004/04/12 18:17:40 gouriano
- * PRODUCTION PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.5
- * PRODUCTION
- * ===========================================================================
- */
- #ifndef GUI_CONFIG____THEMESET_HPP
- #define GUI_CONFIG____THEMESET_HPP
- /* $Id: theme_set.hpp,v 1000.0 2004/04/12 18:17:40 gouriano Exp $
- * ===========================================================================
- *
- * PUBLIC DOMAIN NOTICE
- * National Center for Biotechnology Information
- *
- * This software/database is a "United States Government Work" under the
- * terms of the United States Copyright Act. It was written as part of
- * the author's official duties as a United States Government employee and
- * thus cannot be copyrighted. This software/database is freely available
- * to the public for use. The National Library of Medicine and the U.S.
- * Government have not placed any restriction on its use or reproduction.
- *
- * Although all reasonable efforts have been taken to ensure the accuracy
- * and reliability of the software and data, the NLM and the U.S.
- * Government do not and cannot warrant the performance or results that
- * may be obtained by using this software or data. The NLM and the U.S.
- * Government disclaim all warranties, express or implied, including
- * warranties of performance, merchantability or fitness for any particular
- * purpose.
- *
- * Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- * Author: Robert G. Smith
- *
- */
-
- /**
- * File Description:
- * CThemeSet is an adapter of the PluginConfigCache, particularly an adapter
- * of a set of PluginConfigValues Include type objects. It is meant to be
- * used as a base class for plugins' configuration classes which manage
- * a number of other configuration classes, all descendants of CSettingsSet.
- *
- * Classes that inherit from this need to use AddSettingsSet to initialize
- * The set of sub-configuration classes that this manages.
- */
- #include <gui/config/settings_set.hpp>
- #include <corelib/ncbistr.hpp>
- #include <string>
- #include <map>
- BEGIN_NCBI_SCOPE
- BEGIN_SCOPE(objects)
- class CPluginConfigCache;
- END_SCOPE(objects)
- class NCBI_GUICONFIG_EXPORT CThemeSet : public CSettingsSet
- {
- public:
- CThemeSet(objects::CPluginConfigCache* config_cache,
- const string& type,
- const string& typedesc = "",
- const string& delim = "|");
- virtual ~CThemeSet();
-
- /// convert between current settings and the PluginConfigCache.
- virtual bool LoadCurrentSettings(ELoadValueSource src);
- virtual bool SaveCurrentSettings(void);
-
- vector<string> GetTypes() const;
- vector<string> GetTypeDescriptions() const;
- list<string> GetSetsStyles(const string& type) const;
- const string& GetSetsCurrentStyleName(const string& type) const;
- void SetSetsCurrentStyleName(const string& type, const string& new_style);
- const string& GetSetsDescription(const string& type) const;
-
- protected:
- void AddSettingsSet(CSettingsSet& new_set); // use in desendant's constructors.
-
- private:
- using CSettingsSet::Get;
- using CSettingsSet::Set;
-
- const CSettingsSet& x_GetSettings(const string& type) const;
- CSettingsSet& x_SetSettings(const string& type);
-
- // typedef map<string, CRef<CSettingsSet> > TSettingsReg;
- typedef vector<CRef<CSettingsSet> > TSettingsReg;
- TSettingsReg m_Settings;
- };
- END_NCBI_SCOPE
- /*
- * ===========================================================================
- *
- * $Log: theme_set.hpp,v $
- * Revision 1000.0 2004/04/12 18:17:40 gouriano
- * PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.5
- *
- * Revision 1.5 2004/02/04 16:20:49 rsmith
- * store managed settings in a vector, not a map so we have control over their order.
- *
- * Revision 1.4 2004/02/02 18:43:26 rsmith
- * add description to CSettingsSet, constructor and descendants.
- *
- * Revision 1.3 2004/01/20 23:52:34 dicuccio
- * Make sure that objects predeclarations are in the objects namespace
- *
- * Revision 1.2 2004/01/20 13:53:29 rsmith
- * remove wrong comment
- *
- * Revision 1.1 2003/12/29 14:25:29 rsmith
- * initial checkin
- *
- *
- * ===========================================================================
- */
- #endif // GUI_CONFIG____THEMESET_HPP