166
161
extern cairo_surface_t *g_pIndicatorSurface[2];
167
162
extern gboolean g_bMixLauncherAppli;
168
163
extern gboolean g_bOverWriteXIcons;
164
extern gboolean g_bShowThumbnail;
169
165
extern double g_fIndicatorWidth, g_fIndicatorHeight;
170
166
extern int g_iIndicatorDeltaY;
171
167
extern gboolean g_bLinkIndicatorWithIcon;
168
extern gboolean g_bIndicatorAbove;
170
extern gboolean g_bPopUp;
173
172
static gchar **g_cUseXIconAppliList = NULL;
174
173
static gboolean s_bLoading = FALSE;
177
*Recupere une cle booleene d'un fichier de cles.
178
*@param pKeyFile le fichier de cles.
179
*@param cGroupName le com du groupe.
180
*@param cKeyName le nom de la cle.
181
*@param bFlushConfFileNeeded est mis a TRUE si la cle est manquante.
182
*@param bDefaultValue valeur par defaut a utiliser et a inserer dans le fichier de cles au cas ou la cle est manquante.
183
@Returns la valeur booleene de la cle.
185
176
gboolean cairo_dock_get_boolean_key_value (GKeyFile *pKeyFile, gchar *cGroupName, gchar *cKeyName, gboolean *bFlushConfFileNeeded, gboolean bDefaultValue, gchar *cDefaultGroupName, gchar *cDefaultKeyName)
187
178
GError *erreur = NULL;
634
577
iScreenBorder = 0;
636
579
pDock->fAlign = cairo_dock_get_double_key_value (pKeyFile, "Position", "alignment", &bFlushConfFileNeeded, 0.5, NULL, NULL);
638
581
g_bReserveSpace = cairo_dock_get_boolean_key_value (pKeyFile, "Position", "reserve space", &bFlushConfFileNeeded, FALSE, NULL, NULL);
640
583
cairo_dock_deactivate_temporary_auto_hide ();
641
g_bAutoHide = cairo_dock_get_boolean_key_value (pKeyFile, "Position", "auto-hide", &bFlushConfFileNeeded, FALSE, "Auto-Hide", "auto-hide");
584
pDock->bAutoHide = cairo_dock_get_boolean_key_value (pKeyFile, "Position", "auto-hide", &bFlushConfFileNeeded, FALSE, "Auto-Hide", "auto-hide");
586
gboolean bPopUpOld = g_bPopUp;
587
g_bPopUp = cairo_dock_get_boolean_key_value (pKeyFile, "Position", "pop-up", &bFlushConfFileNeeded, FALSE, NULL, NULL);
644
590
//\___________________ On recupere les parametres de la zone visible.
645
591
gchar *cVisibleZoneImageFile = cairo_dock_get_string_key_value (pKeyFile, "Background", "callback image", &bFlushConfFileNeeded, NULL, "Auto-Hide", "background image");
662
608
g_bTextAlwaysHorizontal = cairo_dock_get_boolean_key_value (pKeyFile, "System", "always horizontal", &bFlushConfFileNeeded, FALSE, "Labels", NULL);
665
g_free (g_cLabelPolice);
666
g_cLabelPolice = cairo_dock_get_string_key_value (pKeyFile, "Icons", "police", &bFlushConfFileNeeded, "sans", "Labels", NULL);
668
g_iLabelSize = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "size", &bFlushConfFileNeeded, 14, "Labels", NULL);
670
g_iLabelWeight = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "weight", &bFlushConfFileNeeded, 5, "Labels", NULL);
671
g_iLabelWeight = ((PANGO_WEIGHT_HEAVY - PANGO_WEIGHT_ULTRALIGHT) * g_iLabelWeight + 9 * PANGO_WEIGHT_ULTRALIGHT - PANGO_WEIGHT_HEAVY) / 8; // on se ramene aux intervalles definit par Pango.
610
g_free (g_iconTextDescription.cFont);
611
g_iconTextDescription.cFont = cairo_dock_get_string_key_value (pKeyFile, "Icons", "police", &bFlushConfFileNeeded, "sans", "Labels", NULL);
613
g_iconTextDescription.iSize = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "size", &bFlushConfFileNeeded, 14, "Labels", NULL);
615
int iLabelWeight = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "weight", &bFlushConfFileNeeded, 5, "Labels", NULL);
616
g_iconTextDescription.iWeight = ((PANGO_WEIGHT_HEAVY - PANGO_WEIGHT_ULTRALIGHT) * iLabelWeight + 9 * PANGO_WEIGHT_ULTRALIGHT - PANGO_WEIGHT_HEAVY) / 8; // on se ramene aux intervalles definit par Pango.
673
618
gboolean bLabelStyleItalic = cairo_dock_get_boolean_key_value (pKeyFile, "Icons", "italic", &bFlushConfFileNeeded, FALSE, "Labels", NULL);
674
619
if (bLabelStyleItalic)
675
g_iLabelStyle = PANGO_STYLE_ITALIC;
620
g_iconTextDescription.iStyle = PANGO_STYLE_ITALIC;
677
g_iLabelStyle = PANGO_STYLE_NORMAL;
680
if (g_cLabelPolice == NULL)
683
if (g_iLabelSize == 0)
622
g_iconTextDescription.iStyle = PANGO_STYLE_NORMAL;
625
if (g_iconTextDescription.cFont == NULL)
626
g_iconTextDescription.iSize = 0;
628
if (g_iconTextDescription.iSize == 0)
685
g_free (g_cLabelPolice);
686
g_cLabelPolice = NULL;
630
g_free (g_iconTextDescription.cFont);
631
g_iconTextDescription.cFont = NULL;
689
double couleur_label[4] = {0., 0., 0., 0.5};
690
cairo_dock_get_double_list_key_value (pKeyFile, "Icons", "text background color", &bFlushConfFileNeeded, g_fLabelBackgroundColor, 4, couleur_label, NULL, NULL);
692
g_bUseBackgroundForLabel = cairo_dock_get_boolean_key_value (pKeyFile, "Icons", "background for label", &bFlushConfFileNeeded, FALSE, NULL, NULL);
634
double couleur_label[3] = {1., 1., 1.};
635
cairo_dock_get_double_list_key_value (pKeyFile, "Icons", "text color start", &bFlushConfFileNeeded, g_iconTextDescription.fColorStart, 3, couleur_label, NULL, NULL);
637
cairo_dock_get_double_list_key_value (pKeyFile, "Icons", "text color stop", &bFlushConfFileNeeded, g_iconTextDescription.fColorStop, 3, couleur_label, NULL, NULL);
639
g_iconTextDescription.bVerticalPattern = cairo_dock_get_boolean_key_value (pKeyFile, "Icons", "vertical label pattern", &bFlushConfFileNeeded, TRUE, NULL, NULL);
641
double couleur_backlabel[4] = {0., 0., 0., 0.5};
642
cairo_dock_get_double_list_key_value (pKeyFile, "Icons", "text background color", &bFlushConfFileNeeded, g_iconTextDescription.fBackgroundColor, 4, couleur_backlabel, NULL, NULL);
644
g_free (g_quickInfoTextDescription.cFont);
645
memcpy (&g_quickInfoTextDescription, &g_iconTextDescription, sizeof (CairoDockLabelDescription));
646
g_quickInfoTextDescription.cFont = g_strdup (g_iconTextDescription.cFont);
647
g_quickInfoTextDescription.iSize = 12;
648
g_quickInfoTextDescription.iWeight = PANGO_WEIGHT_HEAVY;
649
g_quickInfoTextDescription.iStyle = PANGO_STYLE_NORMAL;
651
gboolean bUseBackgroundForLabel = cairo_dock_get_boolean_key_value (pKeyFile, "Icons", "background for label", &bFlushConfFileNeeded, FALSE, NULL, NULL);
652
if (! bUseBackgroundForLabel)
653
g_iconTextDescription.fBackgroundColor[3] = 0; // ne sera pas pris en compte.
695
656
//\___________________ On recupere les parametres du dock en lui-meme.
696
657
gchar **cIconsTypesList = cairo_dock_get_string_list_key_value (pKeyFile, "Icons", "icon's type order", &bFlushConfFileNeeded, &length, NULL, "Cairo Dock", NULL);
909
874
g_bCloseAppliOnMiddleClick = cairo_dock_get_boolean_key_value (pKeyFile, "TaskBar", "close on middle click", &bFlushConfFileNeeded, TRUE, "Applications", NULL);
911
g_bAutoHideOnFullScreen = cairo_dock_get_boolean_key_value (pKeyFile, "TaskBar", "auto quick hide", &bFlushConfFileNeeded, FALSE, "Applications", NULL);
876
g_bAutoHideOnFullScreen = (! pDock->bAutoHide) && cairo_dock_get_boolean_key_value (pKeyFile, "TaskBar", "auto quick hide", &bFlushConfFileNeeded, FALSE, "Applications", NULL);
877
g_bAutoHideOnMaximized = (! pDock->bAutoHide) && cairo_dock_get_boolean_key_value (pKeyFile, "TaskBar", "auto quick hide on max", &bFlushConfFileNeeded, FALSE, "Applications", NULL);
913
879
g_bDemandsAttentionWithDialog = cairo_dock_get_boolean_key_value (pKeyFile, "TaskBar", "demands attention with dialog", &bFlushConfFileNeeded, TRUE, "Applications", NULL);
914
880
g_bDemandsAttentionWithAnimation = cairo_dock_get_boolean_key_value (pKeyFile, "TaskBar", "demands attention with animation", &bFlushConfFileNeeded, FALSE, "Applications", NULL);
921
887
g_fVisibleAppliAlpha = cairo_dock_get_double_key_value (pKeyFile, "TaskBar", "visibility alpha", &bFlushConfFileNeeded, .7, "Applications", NULL); // >0 <=> les fenetres minimisees sont transparentes.
922
888
if (g_bHideVisibleApplis && g_fVisibleAppliAlpha < 0)
923
889
g_fVisibleAppliAlpha = 0.; // on inhibe ce parametre, puisqu'il ne sert alors a rien.
892
double fActiveColor[4], couleur_active[4] = {0., 0.4, 0.8, 0.25};
893
cairo_dock_get_double_list_key_value (pKeyFile, "Indicators", "active color", &bFlushConfFileNeeded, fActiveColor, 4, couleur_active, "Icons", NULL);
895
int iActiveLineWidth = cairo_dock_get_integer_key_value (pKeyFile, "Indicators", "active line width", &bFlushConfFileNeeded, 3, "Icons", NULL);
896
int iActiveCornerRadius = cairo_dock_get_integer_key_value (pKeyFile, "Indicators", "active corner radius", &bFlushConfFileNeeded, 6, "Icons", NULL);
897
g_bActiveIndicatorAbove = cairo_dock_get_boolean_key_value (pKeyFile, "Indicators", "active frame position", &bFlushConfFileNeeded, TRUE, "Icons", NULL);
898
gchar *cActiveIndicatorImagePath= cairo_dock_get_string_key_value (pKeyFile, "Indicators", "active indicator", &bFlushConfFileNeeded, NULL, NULL, NULL);
925
900
gboolean bAppliOnCurrentDesktopOnlyOld = g_bAppliOnCurrentDesktopOnly;
926
901
g_bAppliOnCurrentDesktopOnly = cairo_dock_get_boolean_key_value (pKeyFile, "TaskBar", "current desktop only", &bFlushConfFileNeeded, FALSE, "Applications", NULL);
928
gchar *cIndicatorImageName = cairo_dock_get_string_key_value (pKeyFile, "Icons", "indicator image", &bFlushConfFileNeeded, NULL, NULL, NULL);
903
gchar *cIndicatorImageName = cairo_dock_get_string_key_value (pKeyFile, "Indicators", "indicator image", &bFlushConfFileNeeded, NULL, "Icons", NULL);
929
904
gchar *cIndicatorImagePath;
930
905
if (cIndicatorImageName != NULL)
937
912
cIndicatorImagePath = g_strdup_printf ("%s/%s", CAIRO_DOCK_SHARE_DATA_DIR, CAIRO_DOCK_DEFAULT_INDICATOR_NAME);
940
double fIndicatorRatio = cairo_dock_get_double_key_value (pKeyFile, "Icons", "indicator ratio", &bFlushConfFileNeeded, 1., NULL, NULL);
942
g_bLinkIndicatorWithIcon = cairo_dock_get_boolean_key_value (pKeyFile, "Icons", "link indicator", &bFlushConfFileNeeded, TRUE, NULL, NULL);
944
g_iIndicatorDeltaY = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "indicator deltaY", &bFlushConfFileNeeded, 2, NULL, NULL);
915
g_bIndicatorAbove = cairo_dock_get_boolean_key_value (pKeyFile, "Indicators", "indicator above", &bFlushConfFileNeeded, FALSE, "Icons", NULL);
917
double fIndicatorRatio = cairo_dock_get_double_key_value (pKeyFile, "Indicators", "indicator ratio", &bFlushConfFileNeeded, 1., "Icons", NULL);
919
g_bLinkIndicatorWithIcon = cairo_dock_get_boolean_key_value (pKeyFile, "Indicators", "link indicator", &bFlushConfFileNeeded, TRUE, "Icons", NULL);
921
g_iIndicatorDeltaY = cairo_dock_get_integer_key_value (pKeyFile, "Indicators", "indicator deltaY", &bFlushConfFileNeeded, 2, "Icons", NULL);
946
923
gboolean bMixLauncherAppliOld = g_bMixLauncherAppli;
947
924
g_bMixLauncherAppli = cairo_dock_get_boolean_key_value (pKeyFile, "TaskBar", "mix launcher appli", &bFlushConfFileNeeded, TRUE, NULL, NULL);
951
/**gchar **cUseXIconAppliListNew = cairo_dock_get_string_list_key_value (pKeyFile, "TaskBar", "use xicon", &bFlushConfFileNeeded, &length, NULL, NULL, NULL);
952
if (cUseXIconAppliListNew != NULL)
954
for (i = 0; cUseXIconAppliListNew[i] != NULL; i ++)
956
cairo_dock_set_class_use_xicon (cUseXIconAppliListNew[i], TRUE);
959
if (g_cUseXIconAppliList != NULL)
961
for (i = 0; g_cUseXIconAppliList[i] != NULL; i ++)
963
if (cUseXIconAppliListNew != NULL)
965
for (j = 0; cUseXIconAppliListNew[j] != NULL; j ++)
967
if (strcmp (g_cUseXIconAppliList[i], cUseXIconAppliListNew[j]) == 0)
971
if (cUseXIconAppliListNew == NULL || cUseXIconAppliListNew[j] == NULL) // pas trouve.
972
cairo_dock_set_class_use_xicon (g_cUseXIconAppliList[i], FALSE);
974
g_strfreev (g_cUseXIconAppliList);
976
g_cUseXIconAppliList = cUseXIconAppliListNew;*/
978
929
gboolean bOverWriteXIconsOld = g_bOverWriteXIcons;
979
930
g_bOverWriteXIcons = cairo_dock_get_boolean_key_value (pKeyFile, "TaskBar", "overwrite xicon", &bFlushConfFileNeeded, TRUE, NULL, NULL);
932
gboolean bShowThumbnailOld = g_bShowThumbnail;
933
g_bShowThumbnail = cairo_dock_get_boolean_key_value (pKeyFile, "TaskBar", "window thumbnail", &bFlushConfFileNeeded, TRUE, NULL, NULL);
982
935
//\___________________ On recupere les parametres des applets.
983
936
g_tIconAuthorizedWidth[CAIRO_DOCK_APPLET] = cairo_dock_get_integer_key_value (pKeyFile, "Icons", "applet width", &bFlushConfFileNeeded, 48, "Applets", "max icon size");
1042
995
g_iDialogIconSize = cairo_dock_get_integer_key_value (pKeyFile, "Dialogs", "icon size", &bFlushConfFileNeeded, 48, NULL, NULL);
1044
g_free (g_cDialogMessagePolice);
997
g_free (g_dialogTextDescription.cFont);
1045
998
if (cairo_dock_get_boolean_key_value (pKeyFile, "Dialogs", "homogeneous text", &bFlushConfFileNeeded, TRUE, NULL, NULL))
1047
g_iDialogMessageSize = g_iLabelSize;
1048
g_cDialogMessagePolice = g_strdup (g_cLabelPolice);
1049
g_iDialogMessageWeight = g_iLabelWeight;
1050
g_iDialogMessageStyle = g_iLabelStyle;
1000
g_dialogTextDescription.iSize = g_iconTextDescription.iSize;
1001
if (g_dialogTextDescription.iSize == 0)
1002
g_dialogTextDescription.iSize = 14;
1003
g_dialogTextDescription.cFont = g_strdup (g_iconTextDescription.cFont);
1004
g_dialogTextDescription.iWeight = g_iconTextDescription.iWeight;
1005
g_dialogTextDescription.iStyle = g_iconTextDescription.iStyle;
1054
g_cDialogMessagePolice = cairo_dock_get_string_key_value (pKeyFile, "Dialogs", "message police", &bFlushConfFileNeeded, "sans", NULL, NULL);
1055
g_iDialogMessageSize = cairo_dock_get_integer_key_value (pKeyFile, "Dialogs", "message size", &bFlushConfFileNeeded, 14, NULL, NULL);
1056
g_iDialogMessageWeight = cairo_dock_get_integer_key_value (pKeyFile, "Dialogs", "message weight", &bFlushConfFileNeeded, 5, NULL, NULL);
1057
g_iDialogMessageWeight = ((PANGO_WEIGHT_HEAVY - PANGO_WEIGHT_ULTRALIGHT) * g_iLabelWeight + 9 * PANGO_WEIGHT_ULTRALIGHT - PANGO_WEIGHT_HEAVY) / 8; // on se ramene aux intervalles definit par Pango.
1009
g_dialogTextDescription.cFont = cairo_dock_get_string_key_value (pKeyFile, "Dialogs", "message police", &bFlushConfFileNeeded, "sans", NULL, NULL);
1010
g_dialogTextDescription.iSize = cairo_dock_get_integer_key_value (pKeyFile, "Dialogs", "message size", &bFlushConfFileNeeded, 14, NULL, NULL);
1011
int iLabelWeight = cairo_dock_get_integer_key_value (pKeyFile, "Dialogs", "message weight", &bFlushConfFileNeeded, 5, NULL, NULL);
1012
g_dialogTextDescription.iWeight = ((PANGO_WEIGHT_HEAVY - PANGO_WEIGHT_ULTRALIGHT) * iLabelWeight + 9 * PANGO_WEIGHT_ULTRALIGHT - PANGO_WEIGHT_HEAVY) / 8; // on se ramene aux intervalles definit par Pango.
1058
1013
if (cairo_dock_get_boolean_key_value (pKeyFile, "Dialogs", "message italic", &bFlushConfFileNeeded, FALSE, NULL, NULL))
1059
g_iDialogMessageStyle = PANGO_STYLE_ITALIC;
1014
g_dialogTextDescription.iStyle = PANGO_STYLE_ITALIC;
1061
g_iDialogMessageStyle = PANGO_STYLE_NORMAL;
1016
g_dialogTextDescription.iStyle = PANGO_STYLE_NORMAL;
1064
1019
double couleur_dtext[4] = {0., 0., 0., 1.};
1065
cairo_dock_get_double_list_key_value (pKeyFile, "Dialogs", "text color", &bFlushConfFileNeeded, g_fDialogTextColor, 4, couleur_dtext, NULL, NULL);
1020
cairo_dock_get_double_list_key_value (pKeyFile, "Dialogs", "text color", &bFlushConfFileNeeded, g_dialogTextDescription.fColorStart, 3, couleur_dtext, NULL, NULL);
1021
memcpy (&g_dialogTextDescription.fColorStop, &g_dialogTextDescription.fColorStart, 3*sizeof (double));
1067
1023
double couleur_desklett[4] = {1.0, 1.0, 1.0, 0.2};
1068
1024
cairo_dock_get_double_list_key_value (pKeyFile, "Desklets", "background color", &bFlushConfFileNeeded, g_fDeskletColor, 4, couleur_desklett, NULL, NULL);
1080
1036
g_cRaiseDockShortcut = cairo_dock_get_string_key_value (pKeyFile, "Position", "raise shortcut", &bFlushConfFileNeeded, NULL, NULL, NULL);
1038
gchar *cDropIndicatorImageName = cairo_dock_get_string_key_value (pKeyFile, "Indicators", "drop indicator", &bFlushConfFileNeeded, NULL, "Icons", NULL);
1039
gchar *cDropIndicatorImagePath;
1040
if (cDropIndicatorImageName != NULL)
1042
cDropIndicatorImagePath = cairo_dock_generate_file_path (cDropIndicatorImageName);
1043
g_free (cDropIndicatorImageName);
1047
cDropIndicatorImagePath = g_strdup_printf ("%s/%s", CAIRO_DOCK_SHARE_DATA_DIR, CAIRO_DOCK_DEFAULT_DROP_INDICATOR_NAME);
1050
cairo_dock_updated_emblem_conf_file (pKeyFile, &bFlushConfFileNeeded);
1083
1052
//\___________________ On (re)charge tout, car n'importe quel parametre peut avoir change.
1084
1053
switch (iScreenBorder)
1091
1060
pDock->bHorizontalDock = CAIRO_DOCK_HORIZONTAL;
1092
1061
pDock->bDirectionUp = FALSE;
1063
case CAIRO_DOCK_RIGHT :
1064
pDock->bHorizontalDock = CAIRO_DOCK_VERTICAL;
1065
pDock->bDirectionUp = TRUE;
1094
1067
case CAIRO_DOCK_LEFT :
1095
1068
pDock->bHorizontalDock = CAIRO_DOCK_VERTICAL;
1096
1069
pDock->bDirectionUp = FALSE;
1098
case CAIRO_DOCK_RIGHT :
1099
pDock->bHorizontalDock = CAIRO_DOCK_VERTICAL;
1100
pDock->bDirectionUp = TRUE;
1104
1073
if (g_iMaxAuthorizedWidth == 0)
1105
1074
g_iMaxAuthorizedWidth = g_iScreenWidth[pDock->bHorizontalDock];
1077
cairo_t* pCairoContext = cairo_dock_create_context_from_window (CAIRO_CONTAINER (pDock));
1078
double fMaxScale = cairo_dock_get_max_scale (pDock);
1107
1080
cairo_dock_load_dialog_buttons (CAIRO_CONTAINER (pDock), cButtonOkImage, cButtonCancelImage);
1108
1081
g_free (cButtonOkImage);
1109
1082
g_free (cButtonCancelImage);
1111
cairo_surface_destroy (g_pIndicatorSurface[0]);
1112
cairo_surface_destroy (g_pIndicatorSurface[1]);
1113
g_pIndicatorSurface[0] = NULL;
1114
g_pIndicatorSurface[1] = NULL;
1117
double fLauncherWidth = (g_tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER] != 0 ? g_tIconAuthorizedWidth[CAIRO_DOCK_LAUNCHER] : 48);
1118
double fLauncherHeight = (g_tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER] != 0 ? g_tIconAuthorizedHeight[CAIRO_DOCK_LAUNCHER] : 48);
1120
cairo_t* pCairoContext = cairo_dock_create_context_from_window (CAIRO_CONTAINER (pDock));
1122
double fMasxScale = (g_bLinkIndicatorWithIcon ? (1 + g_fAmplitude) : 1 + 0);
1123
g_pIndicatorSurface[CAIRO_DOCK_HORIZONTAL] = cairo_dock_create_surface_from_image (
1124
cIndicatorImagePath,
1127
fLauncherWidth * fIndicatorRatio,
1128
fLauncherHeight * fIndicatorRatio,
1130
&g_fIndicatorHeight,
1132
//g_print ("g_pIndicatorSurface : %.2fx%.2f\n", g_fIndicatorWidth, g_fIndicatorHeight);
1133
g_pIndicatorSurface[CAIRO_DOCK_VERTICAL] = cairo_dock_rotate_surface (
1134
g_pIndicatorSurface[CAIRO_DOCK_HORIZONTAL],
1136
g_fIndicatorWidth * fMasxScale,
1137
g_fIndicatorHeight * fMasxScale,
1140
cairo_destroy (pCairoContext);
1084
cairo_dock_load_task_indicator (g_bShowAppli && g_bMixLauncherAppli ? cIndicatorImagePath : NULL, pCairoContext, fMaxScale, fIndicatorRatio);
1085
//cairo_dock_load_task_indicator (g_bShowAppli && g_bMixLauncherAppli ? cIndicatorImagePath : NULL, fIndicatorRatio, CAIRO_CONTAINER (pDock));
1142
1086
g_free (cIndicatorImagePath);
1088
cairo_dock_load_drop_indicator (cDropIndicatorImagePath, pCairoContext, fMaxScale);
1089
g_free (cDropIndicatorImagePath);
1091
cairo_dock_load_active_window_indicator (pCairoContext, cActiveIndicatorImagePath, cairo_dock_get_max_scale (pDock), iActiveCornerRadius, iActiveLineWidth, fActiveColor);
1092
g_free (cActiveIndicatorImagePath);
1144
1095
g_fReflectSize = 0;
1145
1096
for (i = 0; i < CAIRO_DOCK_NB_TYPES; i ++)
1215
1178
pDock->iMouseX = 0; // on se place hors du dock initialement.
1216
1179
pDock->iMouseY = 0;
1217
pDock->calculate_max_dock_size (pDock);
1180
///pDock->calculate_max_dock_size (pDock);
1218
1181
pDock->calculate_icons (pDock);
1219
1182
gtk_widget_queue_draw (pDock->pWidget); // le 'gdk_window_move_resize' ci-dessous ne provoquera pas le redessin si la taille n'a pas change.
1221
if (pDock->bAtBottom)
1223
cairo_dock_place_main_dock (pDock);
1184
cairo_dock_place_root_dock (pDock);
1226
1186
//\___________________ On ecrit si necessaire.
1227
1187
if (! bFlushConfFileNeeded)
1228
1188
bFlushConfFileNeeded = cairo_dock_conf_file_needs_update (pKeyFile, CAIRO_DOCK_VERSION);
1229
1189
if (bFlushConfFileNeeded)
1231
cairo_dock_flush_conf_file (pKeyFile, cConfFilePath, CAIRO_DOCK_SHARE_DATA_DIR);
1191
cairo_dock_flush_conf_file (pKeyFile, cConfFilePath, CAIRO_DOCK_SHARE_DATA_DIR, CAIRO_DOCK_CONF_FILE);
1232
1192
g_key_file_free (pKeyFile);
1233
1193
pKeyFile = g_key_file_new ();
1234
1194
g_key_file_load_from_file (pKeyFile, cConfFilePath, G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, NULL);
1239
1199
cairo_dock_update_renderer_list_for_gui ();
1241
1201
if (g_cRaiseDockShortcut != NULL)
1242
cd_keybinder_bind (g_cRaiseDockShortcut, (CDBindkeyHandler) cairo_dock_raise_from_keyboard, (gpointer)NULL);
1203
if (! cd_keybinder_bind (g_cRaiseDockShortcut, (CDBindkeyHandler) cairo_dock_raise_from_keyboard, NULL))
1205
g_free (g_cRaiseDockShortcut);
1206
g_cRaiseDockShortcut = NULL;
1211
cairo_dock_start_polling_screen_edge (pDock);
1213
cairo_dock_stop_polling_screen_edge ();
1214
if (! g_bPopUp && bPopUpOld)
1216
cairo_dock_set_root_docks_on_top_layer ();
1218
else if (g_bPopUp && ! bPopUpOld)
1219
gtk_window_set_keep_below (GTK_WINDOW (pDock->pWidget), TRUE); // le main dock ayant ete cree avant, il n'a pas herite de ce parametre.
1244
1221
//\___________________ On applique les modifs au fichier de conf easy.
1245
1222
cairo_dock_copy_to_easy_conf_file (pKeyFile, g_cEasyConfFile);
1224
cairo_destroy (pCairoContext);
1247
1226
g_key_file_free (pKeyFile);
1249
1228
cairo_dock_mark_theme_as_modified (TRUE);
1260
1239
static void _cairo_dock_user_action_on_config (GtkDialog *pDialog, gint action, gpointer *user_data); // declaree en amont, car les 2 s'appellent mutuellement.
1262
static gboolean cairo_dock_edit_conf_file_core (GtkWindow *pWindow, gchar *cConfFilePath, gchar *cTitle, int iWindowWidth, int iWindowHeight, gchar iIdentifier, gchar *cPresentedGroup, CairoDockConfigFunc pConfigFunc, gpointer data, GFunc pFreeUserDataFunc, CairoDockConfigFunc pConfigFunc2, gchar *cConfFilePath2, gchar *cButtonConvert, gchar *cButtonRevert, gchar *cGettextDomain)
1241
static gboolean cairo_dock_edit_conf_file_core (GtkWindow *pWindow, gchar *cConfFilePath, const gchar *cTitle, int iWindowWidth, int iWindowHeight, gchar iIdentifier, gchar *cPresentedGroup, CairoDockConfigFunc pConfigFunc, gpointer data, GFunc pFreeUserDataFunc, CairoDockConfigFunc pConfigFunc2, gchar *cConfFilePath2, gchar *cButtonConvert, gchar *cButtonRevert, gchar *cGettextDomain)
1264
1243
cd_message ("%s (%s; %s)", __func__, cConfFilePath, cConfFilePath2);
1265
1244
GSList *pWidgetList = NULL;
1456
*Lis un fichier de conf, construit l'IHM appropriee, et la presente a l'utilisateur.
1458
*@param cConfFilePath
1460
*@param iWindowWidth
1461
*@param iWindowHeight
1463
*@param cPresentedGroup
1466
*@param pFreeUserDataFunc
1467
*@param pConfigFunc2
1468
*@param cConfFilePath2
1469
*@param cButtonConvert
1470
*@param cButtonRevert
1471
*@param cGettextDomain
1472
@Returns TRUE si l'utilisateur a ferme le panneau de conf en appuyant sur OK, FALSE sinon.
1474
gboolean cairo_dock_edit_conf_file_full (GtkWindow *pWindow, gchar *cConfFilePath, gchar *cTitle, int iWindowWidth, int iWindowHeight, gchar iIdentifier, gchar *cPresentedGroup, CairoDockConfigFunc pConfigFunc, gpointer data, GFunc pFreeUserDataFunc, CairoDockConfigFunc pConfigFunc2, gchar *cConfFilePath2, gchar *cButtonConvert, gchar *cButtonRevert, gchar *cGettextDomain)
1435
gboolean cairo_dock_edit_conf_file_full (GtkWindow *pWindow, gchar *cConfFilePath, const gchar *cTitle, int iWindowWidth, int iWindowHeight, gchar iIdentifier, gchar *cPresentedGroup, CairoDockConfigFunc pConfigFunc, gpointer data, GFunc pFreeUserDataFunc, CairoDockConfigFunc pConfigFunc2, gchar *cConfFilePath2, gchar *cButtonConvert, gchar *cButtonRevert, gchar *cGettextDomain)
1476
1437
return cairo_dock_edit_conf_file_core (pWindow, g_strdup (cConfFilePath), g_strdup (cTitle), iWindowWidth, iWindowHeight, iIdentifier, cPresentedGroup, pConfigFunc, data, pFreeUserDataFunc, pConfigFunc2, g_strdup (cConfFilePath2), g_strdup (cButtonConvert), g_strdup (cButtonRevert), cGettextDomain);
1480
void cairo_dock_update_conf_file (gchar *cConfFilePath, GType iFirstDataType, ...) // type, groupe, nom, valeur, etc. finir par G_TYPE_INVALID.
1441
void cairo_dock_update_conf_file (const gchar *cConfFilePath, GType iFirstDataType, ...) // type, groupe, nom, valeur, etc. finir par G_TYPE_INVALID.
1482
1443
cd_message ("%s (%s)", __func__, cConfFilePath);