414
414
CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Create a new folder"), GTK_STOCK_NEW, _cd_folders_new_folder, CD_APPLET_MY_MENU, myApplet);
417
GtkWidget *pSubMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (D_("Sort by"), CD_APPLET_MY_MENU, GTK_STOCK_SORT_DESCENDING);
418
pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By name"), _cd_folders_sort_by_name, pSubMenu, myApplet);
419
pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By date"), _cd_folders_sort_by_date, pSubMenu, myApplet);
420
pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By size"), _cd_folders_sort_by_size, pSubMenu, myApplet);
421
pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By type"), _cd_folders_sort_by_type, pSubMenu, myApplet);
417
if (myConfig.bShowFiles)
419
GtkWidget *pSubMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (D_("Sort by"), CD_APPLET_MY_MENU, GTK_STOCK_SORT_DESCENDING);
420
pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By name"), _cd_folders_sort_by_name, pSubMenu, myApplet);
421
pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By date"), _cd_folders_sort_by_date, pSubMenu, myApplet);
422
pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By size"), _cd_folders_sort_by_size, pSubMenu, myApplet);
423
pMenuItem = CD_APPLET_ADD_IN_MENU_WITH_DATA (D_("By type"), _cd_folders_sort_by_type, pSubMenu, myApplet);
423
426
if (CD_APPLET_CLICKED_ICON != NULL && CD_APPLET_CLICKED_ICON != myIcon)
424
427
CD_APPLET_LEAVE (CAIRO_DOCK_INTERCEPT_NOTIFICATION);
425
428
CD_APPLET_ON_BUILD_MENU_END
431
static void _on_answer_import (int iClickedButton, GtkWidget *pInteractiveWidget, const gchar *cReceivedData, CairoDialog *pDialog)
433
cd_debug ("%s (%d)", __func__, iClickedButton);
434
gboolean bImportFiles = (iClickedButton == 0 || iClickedButton == -1); // ok or Enter.
436
CairoDockModule *pModule = cairo_dock_find_module_from_name ("Folders");
437
g_return_if_fail (pModule != NULL);
439
gchar *cConfFilePath = cairo_dock_add_module_conf_file (pModule); // we want to update the conf file before we instanciate the applet, so don't use high-level functions.
440
cairo_dock_update_conf_file (cConfFilePath,
441
G_TYPE_STRING, "Configuration", "dir path", cReceivedData,
442
G_TYPE_BOOLEAN, "Configuration", "show files", bImportFiles,
445
CairoDockModuleInstance *pNewInstance = cairo_dock_instanciate_module (pModule, cConfFilePath); // prend le 'cConfFilePath'.
446
if (pNewInstance != NULL && pNewInstance->pDock)
448
cairo_dock_update_dock_size (pNewInstance->pDock);
451
if (pNewInstance != NULL)
452
cairo_dock_show_temporary_dialog_with_icon (D_("The folder has been imported."),
453
pNewInstance->pIcon, pNewInstance->pContainer,
455
MY_APPLET_SHARE_DATA_DIR"/"MY_APPLET_ICON_FILE); // not "same icon" because the icon may not be loaded yet (eg. stack or emblem icon).
457
if (pModule->pInstancesList && pModule->pInstancesList->next == NULL) // module nouvellement active.
459
cairo_dock_write_active_modules ();
428
462
gboolean cd_folders_on_drop_data (gpointer data, const gchar *cReceivedData, Icon *icon, double fOrder, CairoContainer *pContainer)
430
464
//g_print ("Folders received '%s'\n", cReceivedData);
432
if (fOrder == CAIRO_DOCK_LAST_ORDER) // lachage sur une icone.
466
if (icon != NULL || fOrder == CAIRO_DOCK_LAST_ORDER) // drop on an icon or outside of icons.
433
467
return CAIRO_DOCK_LET_PASS_NOTIFICATION;
435
469
gchar *cPath = NULL;
441
475
if (g_file_test (cPath, G_FILE_TEST_IS_DIR)) // it's a folder, let's add a new instance of the applet that will handle it.
443
477
//g_print (" ajout d'un repertoire...\n");
444
CairoDockModule *pModule = cairo_dock_find_module_from_name ("Folders");
445
g_return_val_if_fail (pModule != NULL, CAIRO_DOCK_LET_PASS_NOTIFICATION);
447
gchar *cConfFilePath = cairo_dock_add_module_conf_file (pModule); // we want to update the conf file before we instanciate the applet, so don't use high-level functions.
448
cairo_dock_update_conf_file (cConfFilePath,
449
G_TYPE_STRING, "Configuration", "dir path", cReceivedData,
452
CairoDockModuleInstance *pNewInstance = cairo_dock_instanciate_module (pModule, cConfFilePath); // prend le 'cConfFilePath'.
453
if (pNewInstance != NULL && pNewInstance->pDock)
455
cairo_dock_update_dock_size (pNewInstance->pDock);
458
if (pNewInstance != NULL)
459
cairo_dock_show_temporary_dialog_with_icon (D_("The folder has been imported."),
460
pNewInstance->pIcon, pNewInstance->pContainer,
462
MY_APPLET_SHARE_DATA_DIR"/"MY_APPLET_ICON_FILE); // not "same icon" because the icon may not be loaded yet (eg. stack or emblem icon).
464
if (pModule->pInstancesList && pModule->pInstancesList->next == NULL) // module nouvellement active.
466
cairo_dock_write_active_modules ();
480
if (CAIRO_DOCK_IS_DOCK (pContainer))
481
icon = cairo_dock_get_dialogless_icon_full (CAIRO_DOCK (pContainer));
483
icon = cairo_dock_get_dialogless_icon ();
485
cairo_dock_show_dialog_full (D_("Do you want to import the content of the folder too?"),
488
MY_APPLET_SHARE_DATA_DIR"/"MY_APPLET_ICON_FILE,
490
(CairoDockActionOnAnswerFunc) _on_answer_import,
491
g_strdup (cReceivedData),
469
494
return CAIRO_DOCK_INTERCEPT_NOTIFICATION;