2
* Copyright © 2008 Danny Baumann
4
* Permission to use, copy, modify, distribute, and sell this software
5
* and its documentation for any purpose is hereby granted without
6
* fee, provided that the above copyright notice appear in all copies
7
* and that both that copyright notice and this permission notice
8
* appear in supporting documentation, and that the name of
9
* Danny Baumann not be used in advertising or publicity pertaining to
10
* distribution of the software without specific, written prior permission.
11
* Danny Baumann makes no representations about the suitability of this
12
* software for any purpose. It is provided "as is" without express or
15
* DANNY BAUMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
16
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
17
* NO EVENT SHALL DANNY BAUMANN BE LIABLE FOR ANY SPECIAL, INDIRECT OR
18
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
19
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
20
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
21
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23
* Author: Danny Baumann <dannybaumann@web.de>
33
#include <core/core.h>
34
#include <core/privatehandler.h>
36
#define HOME_OPTIONDIR ".compiz/options"
37
#define CORE_NAME "general"
38
#define FILE_SUFFIX ".conf"
41
public ScreenInterface,
42
public PrivateHandler<IniScreen, CompScreen>
45
IniScreen (CompScreen *screen);
48
bool initPluginForScreen (CompPlugin *p);
49
bool setOptionForPlugin (const char *plugin,
51
CompOption::Value &v);
53
void updateDirectoryWatch (const CompString&);
56
CompFileWatchHandle directoryWatchHandle;
58
void fileChanged (const char *name);
63
static CompString getHomeDir ();
64
static bool createDir (const CompString& path);
67
class IniPluginVTable :
68
public CompPlugin::VTableForScreen<IniScreen>
78
IniFile (CompPlugin *p);
88
std::fstream optionFile;
90
bool open (bool write);
92
CompString optionValueToString (CompOption::Value &value,
93
CompOption::Type type);
94
CompString optionToString (CompOption &option,
96
bool stringToOption (CompOption *option,
97
CompString &valueString);
98
bool stringToOptionValue (CompString &string,
99
CompOption::Type type,
100
CompOption::Value &value);
102
bool validItemType (CompOption::Type type);
103
bool validListItemType (CompOption::Type type);