1 // This file is a part of Simple Launcher
3 // Copyright (C) 2006, 2007, Mikhail Sobolev
5 // Simple Launcher is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU General Public License version 2 as published by
7 // the Free Software Foundation.
9 // This program is distributed in the hope that it will be useful, but WITHOUT
10 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 // You should have received a copy of the GNU General Public License along with
15 // this program; if not, write to the Free Software Foundation, Inc., 51
16 // Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 #ifndef _GCONF_WRAPPER_H_
19 #define _GCONF_WRAPPER_H_
23 #include <gconf/gconf-client.h>
27 virtual ~GConfItem() {}
30 GConfItem(); // I do not want to create instances of this class
32 static void validateClient();
35 static GConfClient *ourClient;
38 class GConfKey : public GConfItem {
40 GConfKey(const std::string&);
41 GConfKey(const GConfKey&, const std::string&);
44 const std::string& path() const { return myKeyPath; }
46 static std::string mergePath(const std::string&, const std::string);
49 std::string myKeyPath;
52 class GConfOption : public GConfItem {
54 GConfOption(const GConfKey& key, const std::string& path): myIsSynchronized(false), myPath(GConfKey::mergePath(key.path(), path)) { }
56 void setGConfValue(const GConfValue *);
57 GConfValue *getGConfValue(GConfValueType) const;
58 void unsetGConfValue();
61 mutable bool myIsSynchronized;
65 class GConfStringValue : public GConfOption {
67 GConfStringValue(const GConfKey&, const std::string&, const std::string& = "");
70 const std::string& value() const;
71 const std::string& setValue(const std::string& newValue);
74 mutable std::string myValue;
75 std::string myDefaultValue;
78 class GConfBooleanValue : public GConfOption {
80 GConfBooleanValue(const GConfKey&, const std::string&, bool = false);
84 bool setValue(bool newValue);
91 class GConfIntegerValue : public GConfOption {
93 GConfIntegerValue(const GConfKey&, const std::string&, int = false);
97 int setValue(int newValue);