summaryrefslogtreecommitdiffstats
path: root/debian/libcompizconfig-trinity/libcompizconfig-trinity-0.8.4/src/ccs-private.h
blob: 4909379672094f2bf74532be139a16a8dd8bfb2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
 * Compiz configuration system library
 *
 * Copyright (C) 2007  Dennis Kasprzyk <onestone@opencompositing.org>
 * Copyright (C) 2007  Danny Baumann <maniac@opencompositing.org>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

#ifndef CCS_PRIVATE_H
#define CSS_PRIVATE_H

#include <ccs.h>
#include <ccs-backend.h>

#define CONTEXT_PRIV(c) \
    CCSContextPrivate *cPrivate = (CCSContextPrivate *) c->ccsPrivate;
#define PLUGIN_PRIV(p) \
    CCSPluginPrivate *pPrivate = (CCSPluginPrivate *) p->ccsPrivate;

extern Bool basicMetadata;

typedef struct _CCSContextPrivate
{
    CCSBackend        *backend;

    char              *profile;
    Bool	      deIntegration;
    Bool              pluginListAutoSort;

    unsigned int      configWatchId;
} CCSContextPrivate;

typedef struct _CCSPluginPrivate
{
    CCSSettingList settings;
    CCSGroupList   groups;
    Bool 	   loaded;
    Bool           active;
    char *	   xmlFile;
    char *	   xmlPath;
#ifdef USE_PROTOBUF
    char *	   pbFilePath;
#endif

    CCSStrExtensionList stringExtensions;
} CCSPluginPrivate;

void ccsLoadPlugins (CCSContext * context);
void ccsLoadPluginSettings (CCSPlugin * plugin);
void collateGroups (CCSPluginPrivate * p);

void ccsCheckFileWatches (void);

typedef enum {
    OptionProfile,
    OptionBackend,
    OptionIntegration,
    OptionAutoSort
} ConfigOption;

Bool ccsReadConfig (ConfigOption option,
		    char         **value);
Bool ccsWriteConfig (ConfigOption option,
		     char         *value);
unsigned int ccsAddConfigWatch (CCSContext            *context,
				FileWatchCallbackProc callback);

#endif