~cairo-dock-team/ubuntu/oneiric/cairo-dock/2.3.0-3

« back to all changes in this revision

Viewing changes to src/cairo-dock-config.h

  • Committer: Bazaar Package Importer
  • Author(s): Matthieu Baerts (matttbe)
  • Date: 2010-08-09 23:26:12 UTC
  • mto: This revision was merged to the branch mainline in revision 13.
  • Revision ID: james.westby@ubuntu.com-20100809232612-pocdxliaxjdetm37
Tags: upstream-2.2.0~0beta4
Import upstream version 2.2.0~0beta4

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
* This file is a part of the Cairo-Dock project
3
 
*
4
 
* Copyright : (C) see the 'copyright' file.
5
 
* E-mail    : see the 'copyright' file.
6
 
*
7
 
* This program is free software; you can redistribute it and/or
8
 
* modify it under the terms of the GNU General Public License
9
 
* as published by the Free Software Foundation; either version 3
10
 
* of the License, or (at your option) any later version.
11
 
*
12
 
* This program is distributed in the hope that it will be useful,
13
 
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 
* GNU General Public License for more details.
16
 
* You should have received a copy of the GNU General Public License
17
 
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
 
*/
19
 
 
20
 
 
21
 
#ifndef __CAIRO_DOCK_CONFIG__
22
 
#define  __CAIRO_DOCK_CONFIG__
23
 
 
24
 
#include <glib.h>
25
 
#include <libxml/tree.h>
26
 
#include <libxml/parser.h>
27
 
 
28
 
#include "cairo-dock-struct.h"
29
 
G_BEGIN_DECLS
30
 
 
31
 
/**
32
 
*@file cairo-dock-config.h This class manages the configuration system of Cairo-Dock.
33
 
* Cairo-Dock and any items (icons, root docks, modules, etc) are configured by conf files.
34
 
* Conf files containes some information usable by the GUI manager to build a corresponding config panel and update the conf file automatically, which relieves you from this thankless task.
35
 
*/
36
 
 
37
 
/*
38
 
*Recupere une cle booleene d'un fichier de cles.
39
 
*@param pKeyFile le fichier de cles.
40
 
*@param cGroupName le com du groupe.
41
 
*@param cKeyName le nom de la cle.
42
 
*@param bFlushConfFileNeeded est mis a TRUE si la cle est manquante.
43
 
*@param bDefaultValue valeur par defaut a utiliser et a inserer dans le fichier de cles au cas ou la cle est manquante.
44
 
*@param cDefaultGroupName nom de groupe alternatif, ou NULL si aucun autre.
45
 
*@param cDefaultKeyName nom de cle alternative, ou NULL si aucune autre.
46
 
*@return la valeur booleene de la cle.
47
 
*/
48
 
gboolean cairo_dock_get_boolean_key_value (GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, gboolean bDefaultValue, const gchar *cDefaultGroupName, const gchar *cDefaultKeyName);
49
 
/*
50
 
*Recupere une cle entiere d'un fichier de cles.
51
 
*@param pKeyFile le fichier de cles.
52
 
*@param cGroupName le com du groupe.
53
 
*@param cKeyName le nom de la cle.
54
 
*@param bFlushConfFileNeeded est mis a TRUE si la cle est manquante.
55
 
*@param iDefaultValue valeur par defaut a utiliser et a inserer dans le fichier de cles au cas ou la cle est manquante.
56
 
*@param cDefaultGroupName nom de groupe alternatif, ou NULL si aucun autre.
57
 
*@param cDefaultKeyName nom de cle alternative, ou NULL si aucune autre.
58
 
@return la valeur entiere de la cle.
59
 
*/
60
 
int cairo_dock_get_integer_key_value (GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, int iDefaultValue, const gchar *cDefaultGroupName, const gchar *cDefaultKeyName);
61
 
/*
62
 
*Recupere une cle flottante d'un fichier de cles.
63
 
*@param pKeyFile le fichier de cles.
64
 
*@param cGroupName le com du groupe.
65
 
*@param cKeyName le nom de la cle.
66
 
*@param bFlushConfFileNeeded est mis a TRUE si la cle est manquante.
67
 
*@param fDefaultValue valeur par defaut a utiliser et a inserer dans le fichier de cles au cas ou la cle est manquante.
68
 
*@param cDefaultGroupName nom de groupe alternatif, ou NULL si aucun autre.
69
 
*@param cDefaultKeyName nom de cle alternative, ou NULL si aucune autre.
70
 
*@return la valeur flottante de la cle.
71
 
*/
72
 
double cairo_dock_get_double_key_value (GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, double fDefaultValue, const gchar *cDefaultGroupName, const gchar *cDefaultKeyName);
73
 
/*
74
 
*Recupere une cle d'un fichier de cles sous la forme d'une chaine de caractere.
75
 
*@param pKeyFile le fichier de cles.
76
 
*@param cGroupName le com du groupe.
77
 
*@param cKeyName le nom de la cle.
78
 
*@param bFlushConfFileNeeded est mis a TRUE si la cle est manquante.
79
 
*@param cDefaultValue valeur par defaut a utiliser et a inserer dans le fichier de cles au cas ou la cle est manquante.
80
 
*@param cDefaultGroupName nom de groupe alternatif, ou NULL si aucun autre.
81
 
*@param cDefaultKeyName nom de cle alternative, ou NULL si aucune autre.
82
 
*@return la chaine de caractere nouvellement allouee correspondante a la cle.
83
 
*/
84
 
gchar *cairo_dock_get_string_key_value (GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, const gchar *cDefaultValue, const gchar *cDefaultGroupName, const gchar *cDefaultKeyName);
85
 
/*
86
 
*Recupere une cle d'un fichier de cles sous la forme d'un tableau d'entiers.
87
 
*@param pKeyFile le fichier de cles.
88
 
*@param cGroupName le com du groupe.
89
 
*@param cKeyName le nom de la cle.
90
 
*@param bFlushConfFileNeeded est mis a TRUE si la cle est manquante.
91
 
*@param iValueBuffer tableau qui sera rempli.
92
 
*@param iNbElements nombre d'elements a recuperer; c'est le nombre d'elements du tableau passe en entree.
93
 
*@param iDefaultValues valeur par defaut a utiliser et a inserer dans le fichier de cles au cas ou la cle est manquante.
94
 
*@param cDefaultGroupName nom de groupe alternatif, ou NULL si aucun autre.
95
 
*@param cDefaultKeyName nom de cle alternative, ou NULL si aucune autre.
96
 
*/
97
 
void cairo_dock_get_integer_list_key_value (GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, int *iValueBuffer, guint iNbElements, int *iDefaultValues, const gchar *cDefaultGroupName, const gchar *cDefaultKeyName);
98
 
/*
99
 
*Recupere une cle d'un fichier de cles sous la forme d'un tableau de doubles.
100
 
*@param pKeyFile le fichier de cles.
101
 
*@param cGroupName le com du groupe.
102
 
*@param cKeyName le nom de la cle.
103
 
*@param bFlushConfFileNeeded est mis a TRUE si la cle est manquante.
104
 
*@param fValueBuffer tableau qui sera rempli.
105
 
*@param iNbElements nombre d'elements a recuperer; c'est le nombre d'elements du tableau passe en entree.
106
 
*@param fDefaultValues valeur par defaut a utiliser et a inserer dans le fichier de cles au cas ou la cle est manquante.
107
 
*@param cDefaultGroupName nom de groupe alternatif, ou NULL si aucun autre.
108
 
*@param cDefaultKeyName nom de cle alternative, ou NULL si aucune autre.
109
 
*/
110
 
void cairo_dock_get_double_list_key_value (GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, double *fValueBuffer, guint iNbElements, double *fDefaultValues, const gchar *cDefaultGroupName, const gchar *cDefaultKeyName);
111
 
/*
112
 
*Recupere une cle d'un fichier de cles sous la forme d'un tableau de chaines de caracteres.
113
 
*@param pKeyFile le fichier de cles.
114
 
*@param cGroupName le com du groupe.
115
 
*@param cKeyName le nom de la cle.
116
 
*@param bFlushConfFileNeeded est mis a TRUE si la cle est manquante.
117
 
*@param length nombre de chaines de caracteres recuperees.
118
 
*@param cDefaultValues valeur par defaut a utiliser et a inserer dans le fichier de cles au cas ou la cle est manquante.
119
 
*@param cDefaultGroupName nom de groupe alternatif, ou NULL si aucun autre.
120
 
*@param cDefaultKeyName nom de cle alternative, ou NULL si aucune autre.
121
 
*@return un tableau de chaines de caracteres; a liberer avec g_strfreev().
122
 
*/
123
 
gchar **cairo_dock_get_string_list_key_value (GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, gsize *length, const gchar *cDefaultValues, const gchar *cDefaultGroupName, const gchar *cDefaultKeyName);
124
 
 
125
 
void cairo_dock_get_size_key_value (GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, gint iDefaultSize, const gchar *cDefaultGroupName, const gchar *cDefaultKeyName, int *iWidth, int *iHeight);
126
 
/*
127
 
*Recupere une cle d'un fichier de cles sous la forme d'un chemin de fichier complet. La clé peut soit être un fichier relatif au thème courant, soit un chemin començant par '~', soit un chemin complet, soit vide auquel cas le chemin d'un fichier par defaut est renvoye s'il est specifie.
128
 
*@param pKeyFile le fichier de cles.
129
 
*@param cGroupName le com du groupe.
130
 
*@param cKeyName le nom de la cle.
131
 
*@param bFlushConfFileNeeded est mis a TRUE si la cle est manquante.
132
 
*@param cDefaultGroupName nom de groupe alternatif, ou NULL si aucun autre.
133
 
*@param cDefaultKeyName nom de cle alternative, ou NULL si aucune autre.
134
 
*@param cDefaultDir si la cle est vide, on prendra un fichier par defaut situe dans ce repertoire. (optionnel)
135
 
*@param cDefaultFileName si la cle est vide, on prendra ce fichier par defaut dans le repertoire defini ci-dessus. (optionnel)
136
 
*@return le chemin complet du fichier, a liberer avec g_free().
137
 
*/
138
 
gchar *cairo_dock_get_file_path_key_value (GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, const gchar *cDefaultGroupName, const gchar *cDefaultKeyName, const gchar *cDefaultDir, const gchar *cDefaultFileName);
139
 
 
140
 
#define cairo_dock_get_size_key_value_helper(pKeyFile, cGroupName, cKeyPrefix, bFlushConfFileNeeded, iWidth, iHeight) \
141
 
        cairo_dock_get_size_key_value (pKeyFile, cGroupName, cKeyPrefix"size", &bFlushConfFileNeeded, 0, NULL, NULL, &iWidth, &iHeight);\
142
 
        if (iWidth == 0) {\
143
 
                iWidth = g_key_file_get_integer (pKeyFile, cGroupName, cKeyPrefix"width", NULL);\
144
 
                if (iWidth != 0) {\
145
 
                        iHeight = g_key_file_get_integer (pKeyFile, cGroupName, cKeyPrefix"height", NULL);\
146
 
                        int iSize[2] = {iWidth, iHeight};\
147
 
                        g_key_file_set_integer_list (pKeyFile, cGroupName, cKeyPrefix"size", iSize, 2); } }
148
 
 
149
 
/** Convert an integer in [0,9] into a Pango text weight.
150
 
*@param iWeight weight between 0 and 9.
151
 
*/
152
 
#define cairo_dock_get_pango_weight_from_1_9(iWeight) ((int) ((((PANGO_WEIGHT_HEAVY - PANGO_WEIGHT_ULTRALIGHT) * iWeight + 9 * PANGO_WEIGHT_ULTRALIGHT - PANGO_WEIGHT_HEAVY) / 8) / 100)) * 100
153
 
 
154
 
 
155
 
/** Get the Cairo-Dock's config and reload everything.
156
 
*@param cConfFilePath path to the main conf file.
157
 
*@param pDock the main dock, created beforehand.
158
 
*/
159
 
void cairo_dock_read_conf_file (const gchar *cConfFilePath, CairoDock *pDock);
160
 
 
161
 
/** Say if Cairo-Dock is loading.
162
 
*@return TRUE if the global config is being loaded (this happens when a theme is loaded).
163
 
*/
164
 
gboolean cairo_dock_is_loading (void);
165
 
 
166
 
/** Update a conf file with a list of values of the form : {type, name of the groupe, name of the key, value}. Must end with G_TYPE_INVALID.
167
 
*@param cConfFilePath path to the conf file.
168
 
*@param iFirstDataType type of the first value.
169
 
*/
170
 
void cairo_dock_update_conf_file (const gchar *cConfFilePath, GType iFirstDataType, ...);
171
 
 
172
 
/* Met a jour un fichier de conf de dock racine avec sa position définie par les écarts en x et en y.
173
 
*@param cConfFilePath chemin du fichier de conf.
174
 
*@param x écart latéral.
175
 
*@param y écart vertical.
176
 
*/
177
 
void cairo_dock_update_conf_file_with_position (const gchar *cConfFilePath, int x, int y);
178
 
 
179
 
 
180
 
 
181
 
/** Get the 3 version numbers of a string.
182
 
*@param cVersionString the string of the form "x.y.z".
183
 
*@param iMajorVersion pointer to the major version.
184
 
*@param iMinorVersion pointer to the minor version.
185
 
*@param iMicroVersion pointer to the micro version.
186
 
*/
187
 
void cairo_dock_get_version_from_string (const gchar *cVersionString, int *iMajorVersion, int *iMinorVersion, int *iMicroVersion);
188
 
 
189
 
 
190
 
/** Decrypt a string (uses DES-encryption from libcrypt).
191
 
*@param cEncryptedString the encrypted string.
192
 
*@param cDecryptedString the decrypted string.
193
 
*/
194
 
void cairo_dock_decrypt_string( const guchar *cEncryptedString,  guchar **cDecryptedString );
195
 
 
196
 
/** Encrypt a string (uses DES-encryption from libcrypt).
197
 
*@param cDecryptedString the decrypted string.
198
 
*@param cEncryptedString the encrypted string.
199
 
*/
200
 
void cairo_dock_encrypt_string( const guchar *cDecryptedString,  guchar **cEncryptedString );
201
 
 
202
 
 
203
 
xmlDocPtr cairo_dock_open_xml_file (const gchar *cDataFilePath, const gchar *cRootNodeName, xmlNodePtr *root_node, GError **erreur);
204
 
 
205
 
void cairo_dock_close_xml_file (xmlDocPtr doc);
206
 
 
207
 
 
208
 
gchar *cairo_dock_get_default_system_font (void);
209
 
 
210
 
 
211
 
#define DEFINE_PRE_INIT(cGroupName) \
212
 
void cairo_dock_pre_init_##cGroupName (CairoDockInternalModule *pModule)
213
 
 
214
 
 
215
 
G_END_DECLS
216
 
#endif