Salome HOME
Preferences improvement
[modules/shaper.git] / src / Config / Config_PropManager.h
1 // File:        Config_PropManager.h
2 // Created:     13 Aug 2014
3 // Author:      Vitaly SMETANNIKOV
4
5 #ifndef Config_PropManager_H
6 #define Config_PropManager_H
7
8 #include "Config_def.h"
9 #include "Config_Prop.h"
10
11 #include <map>
12 #include <string>
13 #include <vector>
14
15 //! Class wihich let to register properties
16 class CONFIG_EXPORT Config_PropManager
17 {
18 public:
19
20   /** 
21   * Registers property parameters
22   * \param theOwnerId - name of owner (name of plugin for example)
23   * \param theSection - name of section (domain of using) of the property.
24   * \param theName - name (title) of the value.
25   * \param theType - type of the value.
26   * \param theValue - initial value of the property
27   * Returns True if the property succesfully registered
28   */
29   static bool registerProp(const std::string& theSection,
30                            const std::string& theName,
31                            const std::string& theTitle,
32                            Config_Prop::PropType theType,
33                            const std::string& theValue);
34
35   static Config_Prop* findProp(const std::string& theSection,
36                                const std::string& theName);
37
38   static Config_Properties getProperties();
39
40   //! Returns list of registered section names.
41   static std::list<std::string> getSections();
42
43   //! Returns list of properties by its owner and section.
44   static Config_Properties getProperties(const std::string& theSection);
45
46   //! Returns value of the property by its owner, section, and name
47   static std::string string(const std::string& theSection, 
48                             const std::string& theName,
49                             const std::string& theDefault);              
50   static std::vector<int> color(const std::string& theSection, 
51                                 const std::string& theName,
52                                 const std::string& theDefault);              
53   static int integer(const std::string& theSection, 
54                       const std::string& theName,
55                       const std::string& theDefault);              
56   static double real(const std::string& theSection, 
57                       const std::string& theName,
58                       const std::string& theDefault);              
59
60 private:
61   static Config_Properties myProps;
62 };
63
64
65 #endif