24
24
#include <glib/gstdio.h>
25
25
#include <glib/gi18n.h>
27
#include "cairo-dock-struct.h"
28
28
#include "cairo-dock-modules.h"
29
29
#include "cairo-dock-log.h"
30
30
#include "cairo-dock-gui-factory.h"
31
31
#include "cairo-dock-keyfile-utilities.h"
32
32
#include "cairo-dock-animations.h"
33
#include "cairo-dock-dialogs.h"
33
#include "cairo-dock-dialog-manager.h"
34
34
#include "cairo-dock-dock-manager.h"
35
35
#include "cairo-dock-dock-factory.h"
36
36
#include "cairo-dock-launcher-factory.h"
37
#include "cairo-dock-internal-taskbar.h"
38
#include "cairo-dock-internal-accessibility.h"
39
#include "cairo-dock-internal-icons.h"
40
#include "cairo-dock-internal-views.h"
37
#include "cairo-dock-internal-dialogs.h"
41
38
#include "cairo-dock-internal-system.h"
42
39
#include "cairo-dock-desktop-file-factory.h"
43
40
#include "cairo-dock-file-manager.h"
44
41
#include "cairo-dock-applications-manager.h"
42
#include "cairo-dock-X-manager.h"
45
43
#include "cairo-dock-gui-manager.h"
44
#include "cairo-dock-gui-switch.h"
46
45
#include "cairo-dock-gui-main.h"
48
47
#define CAIRO_DOCK_GROUP_ICON_SIZE 32
49
48
#define CAIRO_DOCK_CATEGORY_ICON_SIZE 32
50
49
#define CAIRO_DOCK_NB_BUTTONS_BY_ROW 4
51
50
#define CAIRO_DOCK_NB_BUTTONS_BY_ROW_MIN 3
52
#define CAIRO_DOCK_GUI_MARGIN 6
51
#define CAIRO_DOCK_FRAME_MARGIN 6
53
52
#define CAIRO_DOCK_TABLE_MARGIN 12
54
53
#define CAIRO_DOCK_CONF_PANEL_WIDTH 1150
55
54
#define CAIRO_DOCK_CONF_PANEL_WIDTH_MIN 800
60
59
#define CAIRO_DOCK_ICON_MARGIN 6
61
60
#define CAIRO_DOCK_TAB_ICON_SIZE 32
62
extern CairoDockDesktopGeometry g_desktopGeometry;
63
extern gboolean g_bEnterHelpOnce;
63
65
struct _CairoDockCategoryWidgetTable {
116
118
extern gchar *g_cConfFile;
117
119
extern CairoDock *g_pMainDock;
118
extern int g_iXScreenWidth[2], g_iXScreenHeight[2];
119
120
extern CairoDockDesktopEnv g_iDesktopEnv;
120
121
extern gchar *g_cCurrentLaunchersPath;
121
122
extern gchar *g_cCairoDockDataDir;
124
125
static const gchar *s_cCategoriesDescription[2*(CAIRO_DOCK_NB_CATEGORY+1)] = {
125
126
N_("Behaviour"), "icon-behavior.svg",
126
127
N_("Appearance"), "icon-appearance.svg",
127
N_("Accessories"), "icon-accessories.png",
128
N_("Files"), "icon-files.svg",
129
N_("Internet"), "icon-internet.svg",
128
130
N_("Desktop"), "icon-desktop.svg",
129
N_("Controlers"), "icon-controler.png",
130
N_("Plug-ins"), "icon-extensions.svg",
131
N_("Accessories"), "icon-accessories.svg",
132
N_("System"), "icon-system.svg",
133
N_("Fun"), "icon-fun.svg",
131
134
N_("All"), "icon-all.svg" };
133
136
static void cairo_dock_hide_all_categories (void);
248
251
//g_print ("%s ()\n", __func__);
249
252
if (sBuffer == NULL)
250
253
sBuffer = g_string_new ("");
251
gpointer *pGroupKeyWidget;
252
GList *pSubWidgetList;
254
CairoDockGroupKeyWidget *pGroupKeyWidget;
255
GSList *pSubWidgetList;
253
256
GtkWidget *pLabel, *pKeyBox, *pVBox, *pFrame, *pCurrentFrame = NULL, *pExpander;
254
257
const gchar *cDescription;
255
258
gchar *cToolTip = NULL;
264
267
pGroupKeyWidget = w->data;
265
//g_print ("widget : %s - %s\n", pGroupKeyWidget[0], pGroupKeyWidget[1]);
266
pSubWidgetList = pGroupKeyWidget[2];
268
pSubWidgetList = pGroupKeyWidget->pSubWidgetList;
267
269
if (pSubWidgetList == NULL)
269
pLabel = pGroupKeyWidget[4];
271
pLabel = pGroupKeyWidget->pLabel;
270
272
if (pLabel == NULL)
272
pKeyBox = pGroupKeyWidget[5];
274
pKeyBox = pGroupKeyWidget->pKeyBox;
273
275
if (pKeyBox == NULL)
275
277
pVBox = gtk_widget_get_parent (pKeyBox);
415
417
if (pGroupDescription->cInternalModule)
417
g_print ("%s : bouton emprunte a %s\n", pGroupDescription->cGroupName, pGroupDescription->cInternalModule);
419
cd_debug ("%s : bouton emprunte a %s\n", pGroupDescription->cGroupName, pGroupDescription->cInternalModule);
418
420
pInternalGroupDescription = cairo_dock_find_module_description (pGroupDescription->cInternalModule);
419
421
if (pInternalGroupDescription != NULL)
420
422
pGroupBox = gtk_widget_get_parent (pInternalGroupDescription->pActivateButton);
423
425
pLabel = pInternalGroupDescription->pLabel;
424
g_print ("ok, found pGroupBox\n");
426
cd_debug ("ok, found pGroupBox\n");
433
435
cGettextDomain = pGroupDescription->cGettextDomain;
436
cDescription = dgettext (cGettextDomain, pGroupDescription->cGroupName);
438
cDescription = dgettext (cGettextDomain, pGroupDescription->cTitle);
437
439
if (bSearchInToolTip)
438
440
cToolTip = dgettext (cGettextDomain, pGroupDescription->cDescription);
439
441
//g_print ("cDescription : %s (%s)(%x,%x)\n", cDescription, cToolTip, cModifiedText, str);
707
709
if (pPlace == NULL)
708
710
cairo_dock_show_all_categories ();
709
else if ((int)pPlace < 10) // categorie.
711
else if (GPOINTER_TO_INT (pPlace) < CAIRO_DOCK_NB_CATEGORY+1) // categorie.
712
714
cairo_dock_show_all_categories ();
715
int iCategory = (int)pPlace - 1;
717
int iCategory = GPOINTER_TO_INT (pPlace) - 1;
716
718
cairo_dock_show_one_category (iCategory);
795
797
iPreviewHeight *= 1.*iPreviewWidgetWidth/iPreviewWidth;
796
798
iPreviewWidth = iPreviewWidgetWidth;
798
g_print ("preview : %dx%d\n", iPreviewWidth, iPreviewHeight);
800
//g_print ("preview : %dx%d\n", iPreviewWidth, iPreviewHeight);
799
801
pPreviewPixbuf = gdk_pixbuf_new_from_file_at_size (pGroupDescription->cPreviewFilePath, iPreviewWidth, iPreviewHeight, NULL);
801
803
if (pPreviewPixbuf == NULL)
825
827
attr.cText = dgettext (pGroupDescription->cGettextDomain, cDescription != NULL ? cDescription : pGroupDescription->cDescription);
826
828
attr.cImageFilePath = pGroupDescription->cIcon;
827
829
attr.bNoInput = TRUE;
830
myDialogs.dialogTextDescription.bUseMarkup = TRUE;
828
831
s_pDialog = cairo_dock_build_dialog (&attr, pIcon, CAIRO_CONTAINER (pDock));
832
myDialogs.dialogTextDescription.bUseMarkup = FALSE;
830
834
cairo_dock_dialog_reference (s_pDialog);
844
848
if (s_iSidShowGroupDialog != 0)
845
849
g_source_remove (s_iSidShowGroupDialog);
847
s_iSidShowGroupDialog = g_timeout_add (500, (GSourceFunc)_show_group_dialog, (gpointer) pGroupDescription);
851
s_iSidShowGroupDialog = g_timeout_add (330, (GSourceFunc)_show_group_dialog, (gpointer) pGroupDescription);
849
853
static void on_leave_group_button (GtkButton *button, gpointer *data)
914
918
static gboolean on_delete_main_gui (GtkWidget *pWidget, GdkEvent *event, GMainLoop *pBlockingLoop)
916
g_print ("%s (%x)\n", __func__, pBlockingLoop);
920
cd_debug ("%s (%ld)\n", __func__, pBlockingLoop);
917
921
if (pBlockingLoop != NULL)
919
923
cd_debug ("dialogue detruit, on sort de la boucle");
1066
1070
static void on_click_activate_current_group (GtkToggleButton *button, gpointer *data)
1068
1072
CairoDockGroupDescription *pGroupDescription = s_pCurrentGroup;
1073
on_click_activate_given_group (button, pGroupDescription);
1070
CairoDockModule *pModule = cairo_dock_find_module_from_name (pGroupDescription->cGroupName);
1071
g_return_if_fail (pModule != NULL);
1072
if (pModule->pInstancesList == NULL)
1074
cairo_dock_activate_module_and_load (pGroupDescription->cGroupName);
1078
cairo_dock_deactivate_module_and_unload (pGroupDescription->cGroupName);
1080
if (pGroupDescription->pActivateButton != NULL)
1075
if (pGroupDescription->pActivateButton != NULL) // on repercute le changement sur le bouton d'activation du groupe.
1077
CairoDockModule *pModule = cairo_dock_find_module_from_name (pGroupDescription->cGroupName);
1078
g_return_if_fail (pModule != NULL);
1082
1079
g_signal_handlers_block_by_func (pGroupDescription->pActivateButton, on_click_activate_given_group, pGroupDescription);
1083
1080
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pGroupDescription->pActivateButton), pModule->pInstancesList != NULL);
1084
1081
g_signal_handlers_unblock_by_func (pGroupDescription->pActivateButton, on_click_activate_given_group, pGroupDescription);
1163
1160
bHideOther = gtk_check_menu_item_get_active (pMenuItem);
1164
1161
_trigger_current_filter ();
1166
static void on_clear_filter (GtkButton *pButton, GtkEntry *pEntry)
1163
///static void on_clear_filter (GtkButton *pButton, GtkEntry *pEntry)
1164
static void on_clear_filter (GtkEntry *pEntry, GtkEntryIconPosition icon_pos, GdkEvent *event, gpointer data)
1168
1166
gtk_entry_set_text (pEntry, "");
1169
1167
//gpointer pCurrentPlace = cairo_dock_get_current_widget ();
1241
1239
g_free (cLabel2);
1243
1241
GtkWidget *pAlign = gtk_alignment_new (0., 0.5, 0., 1.);
1244
gtk_alignment_set_padding (GTK_ALIGNMENT (pAlign), 0, 0, CAIRO_DOCK_GUI_MARGIN, 0);
1242
gtk_alignment_set_padding (GTK_ALIGNMENT (pAlign), 0, 0, CAIRO_DOCK_FRAME_MARGIN, 0);
1245
1243
gtk_container_add (GTK_CONTAINER (pAlign), pLabel);
1246
1244
gtk_tool_button_set_label_widget (GTK_TOOL_BUTTON (pWidget), pAlign);
1295
1293
return pGroupDescription;
1297
1295
//\____________ On construit le bouton du groupe.
1298
GtkWidget *pGroupHBox = gtk_hbox_new (FALSE, CAIRO_DOCK_GUI_MARGIN);
1296
GtkWidget *pGroupHBox = gtk_hbox_new (FALSE, CAIRO_DOCK_FRAME_MARGIN);
1300
1298
pGroupDescription->pActivateButton = gtk_check_button_new ();
1301
1299
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pGroupDescription->pActivateButton), iActivation);
1311
1309
GtkWidget *pGroupButton = gtk_button_new ();
1310
gtk_button_set_relief (GTK_BUTTON (pGroupButton), GTK_RELIEF_NONE);
1312
1311
if (bConfigurable)
1313
1312
g_signal_connect (G_OBJECT (pGroupButton), "clicked", G_CALLBACK(on_click_group_button), pGroupDescription);
1315
1314
gtk_widget_set_sensitive (pGroupButton, FALSE);
1316
1315
g_signal_connect (G_OBJECT (pGroupButton), "enter", G_CALLBACK(on_enter_group_button), pGroupDescription);
1317
1316
g_signal_connect (G_OBJECT (pGroupButton), "leave", G_CALLBACK(on_leave_group_button), NULL);
1318
_add_image_on_button (pGroupButton,
1320
CAIRO_DOCK_GROUP_ICON_SIZE);
1321
gtk_box_pack_start (GTK_BOX (pGroupHBox),
1318
GtkWidget *pButtonHBox = gtk_hbox_new (FALSE, CAIRO_DOCK_FRAME_MARGIN);
1319
GtkWidget *pImage = _make_image (cIconPath, CAIRO_DOCK_GROUP_ICON_SIZE);
1320
gtk_box_pack_start (GTK_BOX (pButtonHBox), pImage, FALSE, FALSE, 0);
1327
1321
pGroupDescription->pLabel = gtk_label_new (dgettext (pGroupDescription->cGettextDomain, cTitle));
1328
gtk_box_pack_start (GTK_BOX (pGroupHBox),
1322
gtk_box_pack_start (GTK_BOX (pButtonHBox),
1329
1323
pGroupDescription->pLabel,
1327
gtk_container_add (GTK_CONTAINER (pGroupButton), pButtonHBox);
1328
gtk_box_pack_start (GTK_BOX (pGroupHBox),
1334
1334
//\____________ On place le bouton dans sa table.
1335
1335
CairoDockCategoryWidgetTable *pCategoryWidget = &s_pCategoryWidgetTables[iCategory];
1427
1427
return s_pMainWindow;
1429
1429
s_pMainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
1430
//gtk_container_set_border_width (s_pMainWindow, CAIRO_DOCK_GUI_MARGIN);
1430
//gtk_container_set_border_width (s_pMainWindow, CAIRO_DOCK_FRAME_MARGIN);
1431
1431
gchar *cIconPath = g_strdup_printf ("%s/%s", CAIRO_DOCK_SHARE_DATA_DIR, CAIRO_DOCK_ICON);
1432
1432
gtk_window_set_icon_from_file (GTK_WINDOW (s_pMainWindow), cIconPath, NULL);
1433
1433
g_free (cIconPath);
1435
1435
GtkWidget *pMainHBox = gtk_hbox_new (FALSE, 0);
1436
1436
gtk_container_add (GTK_CONTAINER (s_pMainWindow), pMainHBox);
1438
if (g_iXScreenWidth[CAIRO_DOCK_HORIZONTAL] > CAIRO_DOCK_CONF_PANEL_WIDTH)
1438
if (g_desktopGeometry.iXScreenWidth[CAIRO_DOCK_HORIZONTAL] > CAIRO_DOCK_CONF_PANEL_WIDTH)
1440
1440
s_iPreviewWidth = CAIRO_DOCK_PREVIEW_WIDTH;
1441
1441
s_iNbButtonsByRow = CAIRO_DOCK_NB_BUTTONS_BY_ROW;
1443
else if (g_iXScreenWidth[CAIRO_DOCK_HORIZONTAL] > CAIRO_DOCK_CONF_PANEL_WIDTH_MIN)
1443
else if (g_desktopGeometry.iXScreenWidth[CAIRO_DOCK_HORIZONTAL] > CAIRO_DOCK_CONF_PANEL_WIDTH_MIN)
1445
1445
double a = 1.*(CAIRO_DOCK_PREVIEW_WIDTH - CAIRO_DOCK_PREVIEW_WIDTH_MIN) / (CAIRO_DOCK_CONF_PANEL_WIDTH - CAIRO_DOCK_CONF_PANEL_WIDTH_MIN);
1446
1446
double b = CAIRO_DOCK_PREVIEW_WIDTH_MIN - CAIRO_DOCK_CONF_PANEL_WIDTH_MIN * a;
1447
s_iPreviewWidth = a * g_iXScreenWidth[CAIRO_DOCK_HORIZONTAL] + b;
1447
s_iPreviewWidth = a * g_desktopGeometry.iXScreenWidth[CAIRO_DOCK_HORIZONTAL] + b;
1448
1448
s_iNbButtonsByRow = CAIRO_DOCK_NB_BUTTONS_BY_ROW - 1;
1452
1452
s_iPreviewWidth = CAIRO_DOCK_PREVIEW_WIDTH_MIN;
1453
1453
s_iNbButtonsByRow = CAIRO_DOCK_NB_BUTTONS_BY_ROW_MIN;
1455
GtkWidget *pCategoriesVBox = gtk_vbox_new (FALSE, CAIRO_DOCK_GUI_MARGIN);
1456
gtk_widget_set_size_request (pCategoriesVBox, s_iPreviewWidth+2*CAIRO_DOCK_GUI_MARGIN, CAIRO_DOCK_PREVIEW_HEIGHT);
1455
GtkWidget *pCategoriesVBox = gtk_vbox_new (FALSE, CAIRO_DOCK_FRAME_MARGIN);
1456
gtk_widget_set_size_request (pCategoriesVBox, s_iPreviewWidth+2*CAIRO_DOCK_FRAME_MARGIN, CAIRO_DOCK_PREVIEW_HEIGHT);
1457
1457
gtk_box_pack_start (GTK_BOX (pMainHBox),
1458
1458
pCategoriesVBox,
1493
1493
//\_____________ On construit les boutons de chaque categorie.
1494
1494
GtkWidget *pCategoriesFrame = gtk_frame_new (NULL);
1495
gtk_container_set_border_width (GTK_CONTAINER (pCategoriesFrame), CAIRO_DOCK_GUI_MARGIN);
1495
gtk_container_set_border_width (GTK_CONTAINER (pCategoriesFrame), CAIRO_DOCK_FRAME_MARGIN);
1496
1496
gtk_frame_set_shadow_type (GTK_FRAME (pCategoriesFrame), GTK_SHADOW_OUT);
1498
1498
GtkWidget *pLabel;
1505
1505
gtk_box_pack_start (GTK_BOX (pCategoriesVBox),
1506
1506
pCategoriesFrame,
1511
1511
s_pToolBar = gtk_toolbar_new ();
1512
1512
gtk_toolbar_set_orientation (GTK_TOOLBAR (s_pToolBar), GTK_ORIENTATION_VERTICAL);
1513
1513
gtk_toolbar_set_style (GTK_TOOLBAR (s_pToolBar), GTK_TOOLBAR_BOTH_HORIZ);
1514
gtk_toolbar_set_show_arrow (GTK_TOOLBAR (s_pToolBar), FALSE);
1515
gtk_toolbar_set_icon_size (GTK_TOOLBAR (s_pToolBar), GTK_ICON_SIZE_LARGE_TOOLBAR);
1514
gtk_toolbar_set_show_arrow (GTK_TOOLBAR (s_pToolBar), TRUE); /// FALSE
1515
//gtk_widget_set (s_pToolBar, "height-request", 300, NULL);
1516
//g_object_set (s_pToolBar, "expand", TRUE, NULL);
1517
///gtk_toolbar_set_icon_size (GTK_TOOLBAR (s_pToolBar), GTK_ICON_SIZE_LARGE_TOOLBAR); /// GTK_ICON_SIZE_LARGE_TOOLBAR
1516
1518
gtk_container_add (GTK_CONTAINER (pCategoriesFrame), s_pToolBar);
1518
1520
CairoDockCategoryWidgetTable *pCategoryWidget;
1543
1545
pCategoryWidget = &s_pCategoryWidgetTables[i];
1545
1547
pCategoryWidget->pFrame = gtk_frame_new (NULL);
1546
gtk_container_set_border_width (GTK_CONTAINER (pCategoryWidget->pFrame), CAIRO_DOCK_GUI_MARGIN);
1548
gtk_container_set_border_width (GTK_CONTAINER (pCategoryWidget->pFrame), CAIRO_DOCK_FRAME_MARGIN);
1547
1549
gtk_frame_set_shadow_type (GTK_FRAME (pCategoryWidget->pFrame), GTK_SHADOW_OUT);
1549
1551
pLabel = gtk_label_new (NULL);
1555
1557
pCategoryWidget->pTable = gtk_table_new (1,
1556
1558
s_iNbButtonsByRow,
1558
gtk_table_set_row_spacings (GTK_TABLE (pCategoryWidget->pTable), CAIRO_DOCK_GUI_MARGIN);
1559
gtk_table_set_col_spacings (GTK_TABLE (pCategoryWidget->pTable), CAIRO_DOCK_GUI_MARGIN);
1560
gtk_table_set_row_spacings (GTK_TABLE (pCategoryWidget->pTable), CAIRO_DOCK_FRAME_MARGIN);
1561
gtk_table_set_col_spacings (GTK_TABLE (pCategoryWidget->pTable), CAIRO_DOCK_FRAME_MARGIN);
1560
1562
gtk_container_add (GTK_CONTAINER (pCategoryWidget->pFrame),
1561
1563
pCategoryWidget->pTable);
1562
1564
gtk_box_pack_start (GTK_BOX (s_pGroupsVBox),
1626
1628
GtkWidget *pFilterFrame = gtk_frame_new (NULL);
1627
1629
cLabel = g_strdup_printf ("<span font_desc=\"Sans 12\" color=\"#81728C\"><b><u>%s :</u></b></span>", _("Filter"));
1628
GtkWidget *pFilterLabelContainer = gtk_hbox_new (FALSE, CAIRO_DOCK_GUI_MARGIN);
1630
GtkWidget *pFilterLabelContainer = gtk_hbox_new (FALSE, CAIRO_DOCK_FRAME_MARGIN);
1629
1631
GtkWidget *pImage = gtk_image_new_from_stock (GTK_STOCK_FIND, GTK_ICON_SIZE_MENU);
1630
1632
gtk_container_add (GTK_CONTAINER (pFilterLabelContainer), pImage);
1635
1637
gtk_container_add (GTK_CONTAINER (pFilterLabelContainer), pLabel);
1637
1639
gtk_frame_set_label_widget (GTK_FRAME (pFilterFrame), pFilterLabelContainer);
1638
gtk_container_set_border_width (GTK_CONTAINER (pFilterFrame), CAIRO_DOCK_GUI_MARGIN);
1640
gtk_container_set_border_width (GTK_CONTAINER (pFilterFrame), CAIRO_DOCK_FRAME_MARGIN);
1639
1641
gtk_frame_set_shadow_type (GTK_FRAME (pFilterFrame), GTK_SHADOW_OUT);
1640
1642
gtk_box_pack_start (GTK_BOX (pCategoriesVBox),
1646
GtkWidget *pOptionVBox = gtk_vbox_new (FALSE, CAIRO_DOCK_GUI_MARGIN);
1648
GtkWidget *pOptionVBox = gtk_vbox_new (FALSE, CAIRO_DOCK_FRAME_MARGIN);
1647
1649
gtk_container_add (GTK_CONTAINER (pFilterFrame), pOptionVBox);
1649
1651
// entree de texte
1650
GtkWidget *pFilterBox = gtk_hbox_new (FALSE, CAIRO_DOCK_GUI_MARGIN);
1652
GtkWidget *pFilterBox = gtk_hbox_new (FALSE, CAIRO_DOCK_FRAME_MARGIN);
1651
1653
gtk_box_pack_start (GTK_BOX (pOptionVBox),
1663
GtkWidget *pClearButton = gtk_button_new ();
1664
_add_image_on_button (pClearButton,
1667
g_signal_connect (pClearButton, "clicked", G_CALLBACK (on_clear_filter), s_pFilterEntry);
1668
gtk_box_pack_start (GTK_BOX (pFilterBox),
1670
TRUE, // sinon le bouton est repousse en-dehors de la marge.
1666
gtk_entry_set_icon_activatable (GTK_ENTRY (s_pFilterEntry), GTK_ENTRY_ICON_SECONDARY, TRUE);
1667
gtk_entry_set_icon_from_stock (GTK_ENTRY (s_pFilterEntry), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR);
1668
g_signal_connect (s_pFilterEntry, "icon-press", G_CALLBACK (on_clear_filter), NULL);
1675
1671
_reset_filter_state ();
1689
1685
gtk_menu_shell_append (GTK_MENU_SHELL (pMenu), pMenuItem);
1690
1686
g_signal_connect (pMenuItem, "toggled", G_CALLBACK (on_toggle_all_words), NULL);
1692
pMenuItem = gtk_check_menu_item_new_with_label (_("Highlight words"));
1688
pMenuItem = gtk_check_menu_item_new_with_label (_("Highlighted words"));
1693
1689
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (pMenuItem), TRUE);
1694
1690
gtk_menu_shell_append (GTK_MENU_SHELL (pMenu), pMenuItem);
1695
1691
g_signal_connect (pMenuItem, "toggled", G_CALLBACK (on_toggle_highlight_words), NULL);
1707
1703
//\_____________ On ajoute le cadre d'activation du module.
1708
1704
s_pGroupFrame = gtk_frame_new ("pouet");
1709
gtk_container_set_border_width (GTK_CONTAINER (s_pGroupFrame), CAIRO_DOCK_GUI_MARGIN);
1705
gtk_container_set_border_width (GTK_CONTAINER (s_pGroupFrame), CAIRO_DOCK_FRAME_MARGIN);
1710
1706
gtk_frame_set_shadow_type (GTK_FRAME (s_pGroupFrame), GTK_SHADOW_OUT);
1711
1707
gtk_box_pack_start (GTK_BOX (pCategoriesVBox),
1716
s_pActivateButton = gtk_check_button_new_with_label (_("Activate this module"));
1712
s_pActivateButton = gtk_check_button_new_with_label (_("Enable this module"));
1717
1713
g_signal_connect (G_OBJECT (s_pActivateButton), "clicked", G_CALLBACK(on_click_activate_current_group), NULL);
1718
1714
gtk_container_add (GTK_CONTAINER (s_pGroupFrame), s_pActivateButton);
1719
1715
gtk_widget_show_all (s_pActivateButton);
1721
1717
//\_____________ On ajoute la zone de prevue.
1722
GtkWidget *pInfoVBox = gtk_vbox_new (FALSE, CAIRO_DOCK_GUI_MARGIN);
1718
GtkWidget *pInfoVBox = gtk_vbox_new (FALSE, CAIRO_DOCK_FRAME_MARGIN);
1723
1719
gtk_box_pack_start (GTK_BOX (pCategoriesVBox),
1730
1726
gtk_container_add (GTK_CONTAINER (pInfoVBox), s_pPreviewImage);
1732
1728
//\_____________ On ajoute les boutons.
1733
GtkWidget *pButtonsHBox = gtk_hbox_new (FALSE, CAIRO_DOCK_GUI_MARGIN);
1729
GtkWidget *pButtonsHBox = gtk_hbox_new (FALSE, CAIRO_DOCK_FRAME_MARGIN);
1734
1730
gtk_box_pack_end (GTK_BOX (pVBox),
1787
1783
g_object_set_data (G_OBJECT (s_pMainWindow), "status-bar", s_pStatusBar);
1789
1785
gtk_window_resize (GTK_WINDOW (s_pMainWindow),
1790
MIN (CAIRO_DOCK_CONF_PANEL_WIDTH, g_iXScreenWidth[CAIRO_DOCK_HORIZONTAL]),
1791
MIN (CAIRO_DOCK_CONF_PANEL_HEIGHT, g_iXScreenHeight[CAIRO_DOCK_HORIZONTAL] - (g_pMainDock && g_pMainDock->container.bIsHorizontal ? g_pMainDock->iMaxDockHeight : 0)));
1786
MIN (CAIRO_DOCK_CONF_PANEL_WIDTH, g_desktopGeometry.iXScreenWidth[CAIRO_DOCK_HORIZONTAL]),
1787
MIN (CAIRO_DOCK_CONF_PANEL_HEIGHT, g_desktopGeometry.iXScreenHeight[CAIRO_DOCK_HORIZONTAL] - (g_pMainDock && g_pMainDock->container.bIsHorizontal ? g_pMainDock->iMaxDockHeight : 0)));
1794
1790
gtk_widget_show_all (s_pMainWindow);
1809
1805
G_CALLBACK (on_delete_main_gui),
1810
1806
pBlockingLoop);
1812
g_print ("debut de boucle bloquante ...\n");
1808
cd_debug ("debut de boucle bloquante ...\n");
1813
1809
GDK_THREADS_LEAVE ();
1814
1810
g_main_loop_run (pBlockingLoop);
1815
1811
GDK_THREADS_ENTER ();
1816
g_print ("fin de boucle bloquante\n");
1812
cd_debug ("fin de boucle bloquante\n");
1818
1814
g_main_loop_unref (pBlockingLoop);
1822
//gtk_window_set_title (GTK_WINDOW (s_pMainWindow), _("Configuration of Cairo-Dock"));
1818
//gtk_window_set_title (GTK_WINDOW (s_pMainWindow), _("Cairo-Dock configuration"));
1823
1819
///cairo_dock_show_one_category (0);
1824
1820
g_signal_connect (G_OBJECT (s_pMainWindow),
1825
1821
"delete-event",
1891
1887
gtk_widget_hide (s_pGroupFrame);
1893
1889
//\_______________ On actualise le titre de la fenetre.
1894
gtk_window_set_title (GTK_WINDOW (s_pMainWindow), _("Configuration of Cairo-Dock"));
1890
gtk_window_set_title (GTK_WINDOW (s_pMainWindow), _("Cairo-Dock configuration"));
1895
1891
if (s_path == NULL || s_path->data != GINT_TO_POINTER (0))
1896
1892
s_path = g_slist_prepend (s_path, GINT_TO_POINTER (0));
2066
2062
if (pGroupDescription->pExternalModules != NULL)
2068
2064
// on cree les widgets de tous les modules externes dans un meme notebook.
2069
g_print ("on cree les widgets de tous les modules externes\n");
2065
//g_print ("on cree les widgets de tous les modules externes\n");
2070
2066
GtkWidget *pNoteBook = NULL;
2071
2067
GKeyFile* pExtraKeyFile;
2072
2068
CairoDockModule *pModule;
2212
2208
if (pIcon == NULL)
2213
2209
pIcon = cairo_dock_get_dialogless_icon ();
2214
2210
CairoDock *pDock = cairo_dock_search_dock_from_name (pIcon != NULL ? pIcon->cParentDockName : NULL);
2215
cairo_dock_show_temporary_dialog_with_icon_printf (_("The module '%s' is not present. You need to install it or its dependencies to make the most of this module."), pIcon, CAIRO_CONTAINER (pDock), 10, "same icon", cModuleName);
2211
cairo_dock_show_temporary_dialog_with_icon_printf (_("The '%s' module is not present. You need to install it and all its dependencies in order to use this module."), pIcon, CAIRO_CONTAINER (pDock), 10, "same icon", cModuleName);
2217
2213
else if (pDependencyModule != pModule)
2219
2215
if (pDependencyModule->pInstancesList == NULL && pDependencyModule->pInterface->initModule != NULL)
2221
gchar *cWarning = g_strdup_printf (_("The module '%s' is not activated."), cModuleName);
2222
gchar *cQuestion = g_strdup_printf ("%s\n%s\n%s", cWarning, gettext (cMessage), _("Do you want to activate it now ?"));
2217
gchar *cWarning = g_strdup_printf (_("The '%s' module is not enabled."), cModuleName);
2218
gchar *cQuestion = g_strdup_printf ("%s\n%s\n%s", cWarning, gettext (cMessage), _("Do you want to enable it now?"));
2223
2219
int iAnswer = cairo_dock_ask_general_question_and_wait (cQuestion);
2224
2220
g_free (cQuestion);
2225
2221
g_free (cWarning);
2359
2355
CairoDockModule *pModule = cairo_dock_find_module_from_name ("Help");
2360
2356
if (pModule != NULL)
2362
gchar *cHelpHistory = g_strdup_printf ("%s/.help/entered-once", g_cCairoDockDataDir);
2363
if (! g_file_test (cHelpHistory, G_FILE_TEST_EXISTS))
2358
if (! g_bEnterHelpOnce)
2365
2360
Icon *pIcon = cairo_dock_get_dialogless_icon ();
2366
cairo_dock_show_dialog_full (_("It seems that you've never entered the help module yet.\nIf you have some difficulty to configure the dock, or if you are willing to customize it,\nthe Help module is here for you !\nDo you want to take a look at it now ?"),
2361
cairo_dock_show_dialog_full (_("It appears that you've never entered the help module before.\nIf you are having difficulty configuring the dock, or if you want to customise it,\nthe Help module is here for you!\nWould you like to take a look at it now?"),
2368
2363
CAIRO_CONTAINER (g_pMainDock),
2461
2456
gtk_statusbar_push (GTK_STATUSBAR (s_pStatusBar), 0, cMessage);
2464
static GSList *get_widgets_from_name (const gchar *cGroupName, const gchar *cKeyName)
2459
static CairoDockGroupKeyWidget *get_widget_from_name (const gchar *cGroupName, const gchar *cKeyName)
2466
2461
g_return_val_if_fail (s_pCurrentWidgetList != NULL, NULL);
2467
GSList *pList = cairo_dock_find_widgets_from_name (s_pCurrentWidgetList, cGroupName, cKeyName);
2468
if (pList == NULL && s_pExtraCurrentWidgetList != NULL)
2462
CairoDockGroupKeyWidget *pGroupKeyWidget = cairo_dock_gui_find_group_key_widget_in_list (s_pCurrentWidgetList, cGroupName, cKeyName);
2463
if (pGroupKeyWidget == NULL && s_pExtraCurrentWidgetList != NULL)
2471
2466
for (l = s_pExtraCurrentWidgetList; l != NULL; l = l->next)
2473
pList = cairo_dock_find_widgets_from_name (l->data, cGroupName, cKeyName);
2468
pGroupKeyWidget = cairo_dock_gui_find_group_key_widget_in_list (l->data, cGroupName, cKeyName);
2469
if (pGroupKeyWidget != NULL)
2473
return pGroupKeyWidget;
2481
2476
static void close_gui (void)
2491
2486
CairoDockGuiBackend *pBackend = g_new0 (CairoDockGuiBackend, 1);
2493
pBackend->show_main_gui = show_main_gui;
2488
pBackend->show_main_gui = show_main_gui;
2494
2489
pBackend->show_module_instance_gui = show_module_instance_gui;
2495
pBackend->show_module_gui = show_module_gui;
2490
pBackend->show_module_gui = show_module_gui;
2496
2491
pBackend->set_status_message_on_gui = set_status_message_on_gui;
2497
pBackend->module_is_opened = module_is_opened;
2492
pBackend->module_is_opened = module_is_opened;
2498
2493
pBackend->deactivate_module_in_gui = deactivate_module_in_gui;
2499
pBackend->get_widgets_from_name = get_widgets_from_name;
2500
pBackend->close_gui = close_gui;
2494
pBackend->get_widget_from_name = get_widget_from_name;
2495
pBackend->close_gui = close_gui;
2502
2497
cairo_dock_register_gui_backend (pBackend);