2
* This file is a part of the Cairo-Dock project
4
* Copyright : (C) see the 'copyright' file.
5
* E-mail : see the 'copyright' file.
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.
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/>.
23
#include "cairo-dock-modules.h"
24
#include "cairo-dock-load.h"
25
#include "cairo-dock-draw.h"
26
#include "cairo-dock-dock-factory.h"
27
#include "cairo-dock-dock-facility.h"
28
#include "cairo-dock-log.h"
29
#include "cairo-dock-icons.h"
30
#include "cairo-dock-draw-opengl.h"
31
#include "cairo-dock-dock-manager.h"
32
#include "cairo-dock-internal-taskbar.h"
33
#include "cairo-dock-internal-indicators.h"
34
#include "cairo-dock-container.h"
35
#include "cairo-dock-keyfile-utilities.h"
36
#include "cairo-dock-class-manager.h"
37
#define _INTERNAL_MODULE_
38
#include "cairo-dock-internal-icons.h"
40
CairoConfigIcons myIcons;
41
extern CairoDock *g_pMainDock;
42
extern gchar *g_cCurrentThemePath;
43
extern gchar *g_cCurrentLaunchersPath;
44
extern gboolean g_bUseOpenGL;
45
extern CairoDockImageBuffer g_pDockBackgroundBuffer;
48
static const gchar * s_cIconTypeNames[(CAIRO_DOCK_NB_TYPES+1)/2] = {"launchers", "applications", "applets"};
50
static gboolean get_config (GKeyFile *pKeyFile, CairoConfigIcons *pIcons)
52
gboolean bFlushConfFileNeeded = FALSE;
54
//\___________________ Ordre des icones.
56
for (i = 0; i < CAIRO_DOCK_NB_TYPES; i ++)
57
pIcons->tIconTypeOrder[i] = i;
60
int iSeparateIcons = 0;
61
if (! g_key_file_has_key (pKeyFile, "Icons", "separate_icons", NULL)) // old parameters.
63
if (!g_key_file_get_boolean (pKeyFile, "Icons", "mix applets with launchers", NULL))
65
if (!g_key_file_get_boolean (pKeyFile, "Icons", "mix applis with launchers", NULL))
70
else if (!g_key_file_get_boolean (pKeyFile, "Icons", "mix applis with launchers", NULL))
73
pIcons->iSeparateIcons = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "separate_icons", &bFlushConfFileNeeded, iSeparateIcons , NULL, NULL);
75
cairo_dock_get_integer_list_key_value (pKeyFile, "Icons", "icon's type order", &bFlushConfFileNeeded, pIcons->iIconsTypesList, 3, NULL, "Cairo Dock", NULL); // on le recupere meme si on ne separe pas les icones, pour le panneau de conf simple.
76
if (pIcons->iIconsTypesList[0] == 0 && pIcons->iIconsTypesList[1] == 0) // old format.
78
g_print ("icon's type order : old format\n");
79
gchar **cIconsTypesList = cairo_dock_get_string_list_key_value (pKeyFile, "Icons", "icon's type order", &bFlushConfFileNeeded, &length, NULL, "Cairo Dock", NULL);
81
if (cIconsTypesList != NULL && length > 0)
83
g_print (" conversion ...\n");
85
for (i = 0; i < length; i ++)
87
g_print (" %d) %s\n", i, cIconsTypesList[i]);
88
for (j = 0; j < ((CAIRO_DOCK_NB_TYPES + 1) / 2); j ++)
90
if (strcmp (cIconsTypesList[i], s_cIconTypeNames[j]) == 0)
92
g_print (" => %d\n", j);
93
pIcons->tIconTypeOrder[2*j] = 2 * i;
98
g_strfreev (cIconsTypesList);
100
pIcons->iIconsTypesList[0] = pIcons->tIconTypeOrder[2*0]/2;
101
pIcons->iIconsTypesList[1] = pIcons->tIconTypeOrder[2*1]/2;
102
pIcons->iIconsTypesList[2] = pIcons->tIconTypeOrder[2*2]/2;
103
g_print ("mise a jour avec {%d;%d;%d}\n", pIcons->iIconsTypesList[0], pIcons->iIconsTypesList[1], pIcons->iIconsTypesList[2]);
104
g_key_file_set_integer_list (pKeyFile, "Icons", "icon's type order", pIcons->iIconsTypesList, 3);
105
bFlushConfFileNeeded = TRUE;
108
for (i = 0; i < 3; i ++)
109
pIcons->tIconTypeOrder[2*pIcons->iIconsTypesList[i]] = 2*i;
110
if (pIcons->iSeparateIcons == 0)
112
for (i = 0; i < 3; i ++)
113
pIcons->tIconTypeOrder[2*i] = 0;
115
else if (pIcons->iSeparateIcons == 1)
117
pIcons->tIconTypeOrder[CAIRO_DOCK_APPLET] = pIcons->tIconTypeOrder[CAIRO_DOCK_LAUNCHER];
119
else if (pIcons->iSeparateIcons == 2)
121
pIcons->tIconTypeOrder[CAIRO_DOCK_APPLI] = pIcons->tIconTypeOrder[CAIRO_DOCK_LAUNCHER];
124
//\___________________ Reflets.
125
pIcons->fFieldDepth = cairo_dock_get_double_key_value (pKeyFile, "Icons", "field depth", &bFlushConfFileNeeded, 0.7, NULL, NULL);
127
pIcons->fAlbedo = cairo_dock_get_double_key_value (pKeyFile, "Icons", "albedo", &bFlushConfFileNeeded, .6, NULL, NULL);
129
double fMaxScale = cairo_dock_get_double_key_value (pKeyFile, "Icons", "zoom max", &bFlushConfFileNeeded, 0., NULL, NULL);
132
pIcons->fAmplitude = g_key_file_get_double (pKeyFile, "Icons", "amplitude", NULL);
133
fMaxScale = 1 + pIcons->fAmplitude;
134
g_key_file_set_double (pKeyFile, "Icons", "zoom max", fMaxScale);
137
pIcons->fAmplitude = fMaxScale - 1;
139
pIcons->iSinusoidWidth = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "sinusoid width", &bFlushConfFileNeeded, 250, NULL, NULL);
140
pIcons->iSinusoidWidth = MAX (1, pIcons->iSinusoidWidth);
142
pIcons->iIconGap = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "icon gap", &bFlushConfFileNeeded, 0, NULL, NULL);
144
//\___________________ Ficelle.
145
pIcons->iStringLineWidth = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "string width", &bFlushConfFileNeeded, 0, NULL, NULL);
148
cairo_dock_get_double_list_key_value (pKeyFile, "Icons", "string color", &bFlushConfFileNeeded, pIcons->fStringColor, 4, couleur, NULL, NULL);
150
pIcons->fAlphaAtRest = cairo_dock_get_double_key_value (pKeyFile, "Icons", "alpha at rest", &bFlushConfFileNeeded, 1., NULL, NULL);
152
//\___________________ Theme d'icone.
153
pIcons->cIconTheme = cairo_dock_get_string_key_value (pKeyFile, "Icons", "default icon directory", &bFlushConfFileNeeded, NULL, "Launchers", NULL);
154
if (g_key_file_has_key (pKeyFile, "Icons", "local icons", NULL)) // anciens parametres.
156
bFlushConfFileNeeded = TRUE;
157
gboolean bUseLocalIcons = g_key_file_get_boolean (pKeyFile, "Icons", "local icons", NULL);
160
g_free (pIcons->cIconTheme);
161
pIcons->cIconTheme = g_strdup ("_Custom Icons_");
162
g_key_file_set_string (pKeyFile, "Icons", "default icon directory", pIcons->cIconTheme);
165
pIcons->pDefaultIconDirectory = g_new0 (gpointer, 2 * 4); // theme d'icone + theme local + theme default + NULL final.
167
gboolean bLocalIconsUsed = FALSE, bDefaultThemeUsed = FALSE;
169
if (pIcons->cIconTheme == NULL || *pIcons->cIconTheme == '\0') // theme systeme.
172
bDefaultThemeUsed = TRUE;
174
else if (pIcons->cIconTheme[0] == '~')
176
pIcons->pDefaultIconDirectory[2*j] = g_strdup_printf ("%s%s", getenv ("HOME"), pIcons->cIconTheme+1);
179
else if (pIcons->cIconTheme[0] == '/')
181
pIcons->pDefaultIconDirectory[2*j] = g_strdup (pIcons->cIconTheme);
184
else if (strncmp (pIcons->cIconTheme, "_LocalTheme_", 12) == 0 || strncmp (pIcons->cIconTheme, "_ThemeDirectory_", 16) == 0 || strncmp (pIcons->cIconTheme, "_Custom Icons_", 14) == 0)
186
pIcons->pDefaultIconDirectory[2*j] = g_strdup_printf ("%s/%s", g_cCurrentThemePath, CAIRO_DOCK_LOCAL_ICONS_DIR);
188
bLocalIconsUsed = TRUE;
192
pIcons->pDefaultIconDirectory[2*j+1] = gtk_icon_theme_new ();
193
gtk_icon_theme_set_custom_theme (pIcons->pDefaultIconDirectory[2*j+1], pIcons->cIconTheme);
197
if (! bLocalIconsUsed)
199
pIcons->pDefaultIconDirectory[2*j] = g_strdup_printf ("%s/%s", g_cCurrentThemePath, CAIRO_DOCK_LOCAL_ICONS_DIR);
202
if (! bDefaultThemeUsed)
206
pIcons->iNbIconPlaces = j;
208
gchar *cLauncherBackgroundImageName = cairo_dock_get_string_key_value (pKeyFile, "Icons", "icons bg", &bFlushConfFileNeeded, NULL, NULL, NULL);
209
if (cLauncherBackgroundImageName != NULL)
211
pIcons->cBackgroundImagePath = cairo_dock_generate_file_path (cLauncherBackgroundImageName);
212
g_free (cLauncherBackgroundImageName);
215
//\___________________ Parametres des lanceurs.
216
cairo_dock_get_size_key_value_helper (pKeyFile, "Icons", "launcher ", bFlushConfFileNeeded, pIcons->tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER], pIcons->tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER]);
217
if (pIcons->tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER] == 0)
218
pIcons->tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER] = 48;
219
if (pIcons->tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER] == 0)
220
pIcons->tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER] = 48;
222
//\___________________ Parametres des applis.
223
cairo_dock_get_size_key_value_helper (pKeyFile, "Icons", "appli ", bFlushConfFileNeeded, pIcons->tIconAuthorizedWidth[CAIRO_DOCK_APPLI], pIcons->tIconAuthorizedHeight[CAIRO_DOCK_APPLI]);
224
if (pIcons->tIconAuthorizedWidth[CAIRO_DOCK_APPLI] == 0)
225
pIcons->tIconAuthorizedWidth[CAIRO_DOCK_APPLET] = pIcons->tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER];
226
if (pIcons->tIconAuthorizedHeight[CAIRO_DOCK_APPLI] == 0)
227
pIcons->tIconAuthorizedHeight[CAIRO_DOCK_APPLET] = pIcons->tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER];
229
//\___________________ Parametres des applets.
230
cairo_dock_get_size_key_value_helper (pKeyFile, "Icons", "applet ", bFlushConfFileNeeded, pIcons->tIconAuthorizedWidth[CAIRO_DOCK_APPLET], pIcons->tIconAuthorizedHeight[CAIRO_DOCK_APPLET]);
231
if (pIcons->tIconAuthorizedWidth[CAIRO_DOCK_APPLET] == 0)
232
pIcons->tIconAuthorizedWidth[CAIRO_DOCK_APPLET] = pIcons->tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER];
233
if (pIcons->tIconAuthorizedHeight[CAIRO_DOCK_APPLET] == 0)
234
pIcons->tIconAuthorizedHeight[CAIRO_DOCK_APPLET] = pIcons->tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER];
236
//\___________________ Parametres des separateurs.
237
cairo_dock_get_size_key_value_helper (pKeyFile, "Icons", "separator ", bFlushConfFileNeeded, pIcons->tIconAuthorizedWidth[CAIRO_DOCK_SEPARATOR12], pIcons->tIconAuthorizedHeight[CAIRO_DOCK_SEPARATOR12]);
238
pIcons->tIconAuthorizedWidth[CAIRO_DOCK_SEPARATOR23] = pIcons->tIconAuthorizedWidth[CAIRO_DOCK_SEPARATOR12];
239
pIcons->tIconAuthorizedHeight[CAIRO_DOCK_SEPARATOR23] = pIcons->tIconAuthorizedHeight[CAIRO_DOCK_SEPARATOR12];
241
pIcons->iSeparatorType = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "separator type", &bFlushConfFileNeeded, -1, NULL, NULL);
242
if (pIcons->iSeparatorType == -1) // nouveau parametre, avant il etait dans dock-rendering.
244
pIcons->iSeparatorType = 0; // ce qui suit est tres moche, mais c'est pour eviter d'avoir a repasser derriere tous les themes.
245
gchar *cRenderingConfFile = g_strdup_printf ("%s/plug-ins/rendering/rendering.conf", g_cCurrentThemePath);
246
gchar *cMainDockDefaultRendererName = g_key_file_get_string (pKeyFile, "Views", "main dock view", NULL);
247
if (cMainDockDefaultRendererName && (strcmp (cMainDockDefaultRendererName, "3D plane") == 0 || strcmp (cMainDockDefaultRendererName, "curve") == 0))
249
GKeyFile *keyfile = cairo_dock_open_key_file (cRenderingConfFile);
250
g_free (cRenderingConfFile);
252
pIcons->iSeparatorType = 0;
256
pIcons->iSeparatorType = g_key_file_get_integer (keyfile, "Inclinated Plane", "draw separator", NULL);
257
double *color = g_key_file_get_double_list (keyfile, "Inclinated Plane", "separator color", &length, NULL);
258
memcpy (pIcons->fSeparatorColor, color, 4*sizeof (gdouble));
259
g_key_file_free (keyfile);
262
g_key_file_set_integer (pKeyFile, "Icons", "separator type", pIcons->iSeparatorType);
266
double couleur[4] = {0.9,0.9,1.0,1.0};
267
cairo_dock_get_double_list_key_value (pKeyFile, "Icons", "separator color", &bFlushConfFileNeeded, pIcons->fSeparatorColor, 4, couleur, NULL, NULL);
269
pIcons->cSeparatorImage = cairo_dock_get_string_key_value (pKeyFile, "Icons", "separator image", &bFlushConfFileNeeded, NULL, "Separators", NULL);
271
pIcons->bRevolveSeparator = cairo_dock_get_boolean_key_value (pKeyFile, "Icons", "revolve separator image", &bFlushConfFileNeeded, TRUE, "Separators", NULL);
273
pIcons->bConstantSeparatorSize = cairo_dock_get_boolean_key_value (pKeyFile, "Icons", "force size", &bFlushConfFileNeeded, TRUE, "Separators", NULL);
276
pIcons->fReflectSize = 0;
277
for (i = 0; i < CAIRO_DOCK_NB_TYPES; i ++)
279
if (pIcons->tIconAuthorizedHeight[i] > 0)
280
pIcons->fReflectSize = MAX (pIcons->fReflectSize, pIcons->tIconAuthorizedHeight[i]);
282
if (pIcons->fReflectSize == 0) // on n'a pas trouve de hauteur, on va essayer avec la largeur.
284
for (i = 0; i < CAIRO_DOCK_NB_TYPES; i ++)
286
if (pIcons->tIconAuthorizedWidth[i] > 0)
287
pIcons->fReflectSize = MAX (pIcons->fReflectSize, pIcons->tIconAuthorizedWidth[i]);
289
if (pIcons->fReflectSize > 0)
290
pIcons->fReflectSize = MIN (48, pIcons->fReflectSize);
292
pIcons->fReflectSize = 48;
294
pIcons->fReflectSize *= pIcons->fFieldDepth;
296
return bFlushConfFileNeeded;
300
static void reset_config (CairoConfigIcons *pIcons)
302
if (pIcons->pDefaultIconDirectory != NULL)
306
for (i = 0; i < pIcons->iNbIconPlaces; i ++)
308
if (pIcons->pDefaultIconDirectory[2*i] != NULL)
309
g_free (pIcons->pDefaultIconDirectory[2*i]);
310
else if (pIcons->pDefaultIconDirectory[2*i+1] != NULL)
311
g_object_unref (pIcons->pDefaultIconDirectory[2*i+1]);
313
g_free (pIcons->pDefaultIconDirectory);
315
g_free (pIcons->cSeparatorImage);
316
g_free (pIcons->cBackgroundImagePath);
317
g_free (pIcons->cIconTheme);
321
static void reload (CairoConfigIcons *pPrevIcons, CairoConfigIcons *pIcons)
323
CairoDock *pDock = g_pMainDock;
324
double fMaxScale = cairo_dock_get_max_scale (pDock);
325
cairo_t* pCairoContext = cairo_dock_create_drawing_context_generic (CAIRO_CONTAINER (pDock));
326
gboolean bInsertSeparators = FALSE;
328
gboolean bGroupOrderChanged;
329
if (pPrevIcons->tIconTypeOrder[CAIRO_DOCK_LAUNCHER] != pIcons->tIconTypeOrder[CAIRO_DOCK_LAUNCHER] ||
330
pPrevIcons->tIconTypeOrder[CAIRO_DOCK_APPLI] != pIcons->tIconTypeOrder[CAIRO_DOCK_APPLI] ||
331
pPrevIcons->tIconTypeOrder[CAIRO_DOCK_APPLET] != pIcons->tIconTypeOrder[CAIRO_DOCK_APPLET] ||
332
pPrevIcons->iSeparateIcons != pIcons->iSeparateIcons)
333
bGroupOrderChanged = TRUE;
335
bGroupOrderChanged = FALSE;
337
if (bGroupOrderChanged)
339
bInsertSeparators = TRUE; // on enleve les separateurs avant de re-ordonner.
340
cairo_dock_remove_automatic_separators (pDock);
342
if (pPrevIcons->iSeparateIcons && ! pIcons->iSeparateIcons)
344
cairo_dock_reorder_classes (); // on re-ordonne les applis a cote des lanceurs/applets.
347
pDock->icons = g_list_sort (pDock->icons, (GCompareFunc) cairo_dock_compare_icons_order);
350
if ((pPrevIcons->iSeparateIcons && ! pIcons->iSeparateIcons) ||
351
pPrevIcons->cSeparatorImage != pIcons->cSeparatorImage ||
352
pPrevIcons->tIconAuthorizedWidth[CAIRO_DOCK_SEPARATOR12] != pIcons->tIconAuthorizedWidth[CAIRO_DOCK_SEPARATOR12] ||
353
pPrevIcons->tIconAuthorizedHeight[CAIRO_DOCK_SEPARATOR12] != pIcons->tIconAuthorizedHeight[CAIRO_DOCK_SEPARATOR12] ||
354
pPrevIcons->fAmplitude != pIcons->fAmplitude)
356
bInsertSeparators = TRUE;
357
cairo_dock_remove_automatic_separators (pDock);
360
gboolean bThemeChanged = cairo_dock_strings_differ (pIcons->cIconTheme, pPrevIcons->cIconTheme);
362
gboolean bIconBackgroundImagesChanged = FALSE;
363
// if background images are different, reload them and trigger the reload of all icons
364
if (cairo_dock_strings_differ (pPrevIcons->cBackgroundImagePath, pIcons->cBackgroundImagePath) ||
365
pPrevIcons->fAmplitude != pIcons->fAmplitude)
367
bIconBackgroundImagesChanged = TRUE;
368
cairo_dock_load_icons_background_surface (pIcons->cBackgroundImagePath, fMaxScale);
371
cairo_dock_create_icon_pbuffer ();
373
if (pPrevIcons->tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER] != pIcons->tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER] ||
374
pPrevIcons->tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER] != pIcons->tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER] ||
375
pPrevIcons->tIconAuthorizedWidth[CAIRO_DOCK_APPLI] != pIcons->tIconAuthorizedWidth[CAIRO_DOCK_APPLI] ||
376
pPrevIcons->tIconAuthorizedHeight[CAIRO_DOCK_APPLI] != pIcons->tIconAuthorizedHeight[CAIRO_DOCK_APPLI] ||
377
pPrevIcons->tIconAuthorizedWidth[CAIRO_DOCK_APPLET] != pIcons->tIconAuthorizedWidth[CAIRO_DOCK_APPLET] ||
378
pPrevIcons->tIconAuthorizedHeight[CAIRO_DOCK_APPLET] != pIcons->tIconAuthorizedHeight[CAIRO_DOCK_APPLET] ||
379
pPrevIcons->tIconAuthorizedWidth[CAIRO_DOCK_SEPARATOR12] != pIcons->tIconAuthorizedHeight[CAIRO_DOCK_SEPARATOR12] ||
380
pPrevIcons->tIconAuthorizedHeight[CAIRO_DOCK_SEPARATOR12] != pIcons->tIconAuthorizedHeight[CAIRO_DOCK_SEPARATOR12] ||
381
pPrevIcons->fAmplitude != pIcons->fAmplitude ||
382
(!g_bUseOpenGL && pPrevIcons->fFieldDepth != pIcons->fFieldDepth) ||
383
(!g_bUseOpenGL && pPrevIcons->fAlbedo != pIcons->fAlbedo) ||
385
bIconBackgroundImagesChanged) // oui on ne fait pas dans la finesse.
387
g_pDockBackgroundBuffer.iWidth = g_pDockBackgroundBuffer.iHeight = 0.; // pour mettre a jour les decorations.
388
cairo_dock_reload_buffers_in_all_docks (TRUE); // TRUE <=> y compris les applets.
391
if (bInsertSeparators)
393
cairo_dock_insert_separators_in_dock (pDock);
396
if (pPrevIcons->iSeparatorType != pIcons->iSeparatorType)
398
cairo_dock_update_dock_size (pDock); // le chargement des separateurs plats se fait dans le calcul de max dock size.
401
if (pPrevIcons->tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER] != pIcons->tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER] ||
402
pPrevIcons->tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER] != pIcons->tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER] ||
403
pPrevIcons->fAmplitude != pIcons->fAmplitude)
405
cairo_dock_load_active_window_indicator (myIndicators.cActiveIndicatorImagePath,
407
myIndicators.iActiveCornerRadius,
408
myIndicators.iActiveLineWidth,
409
myIndicators.fActiveColor);
410
if (myTaskBar.bShowAppli && myTaskBar.bGroupAppliByClass)
411
cairo_dock_load_class_indicator (myIndicators.cClassIndicatorImagePath,
413
if (myTaskBar.bShowAppli && myTaskBar.bMixLauncherAppli)
414
cairo_dock_load_task_indicator (myIndicators.cIndicatorImagePath,
416
myIndicators.fIndicatorRatio);
419
g_pDockBackgroundBuffer.iWidth = g_pDockBackgroundBuffer.iHeight = 0.;
420
cairo_dock_set_all_views_to_default (0); // met a jour la taille (decorations incluses) de tous les docks.
421
cairo_dock_calculate_dock_icons (pDock);
422
cairo_dock_redraw_root_docks (FALSE); // main dock inclus.
424
cairo_destroy (pCairoContext);
428
DEFINE_PRE_INIT (Icons)
430
static const gchar *cDependencies[3] = {"Animated icons", N_("It provides many animations to your icons."), NULL};
431
pModule->cModuleName = "Icons";
432
pModule->cTitle = N_("Icons");
433
pModule->cIcon = "icon-icons.png";
434
pModule->cDescription = N_("All about icons :\n size, reflection, icon theme, ...");
435
pModule->iCategory = CAIRO_DOCK_CATEGORY_THEME;
436
pModule->iSizeOfConfig = sizeof (CairoConfigIcons);
437
pModule->iSizeOfData = 0;
439
pModule->reload = (CairoDockInternalModuleReloadFunc) reload;
440
pModule->get_config = (CairoDockInternalModuleGetConfigFunc) get_config;
441
pModule->reset_config = (CairoDockInternalModuleResetConfigFunc) reset_config;
442
pModule->reset_data = NULL;
444
pModule->pConfig = (CairoInternalModuleConfigPtr) &myIcons;
445
pModule->pData = NULL;