36
36
#include "cairo-dock-icon-facility.h"
37
37
#include "cairo-dock-callbacks.h"
38
38
#include "cairo-dock-applications-manager.h"
39
#include "cairo-dock-stack-icon-manager.h"
40
#include "cairo-dock-separator-manager.h"
41
#include "cairo-dock-applet-manager.h"
42
#include "cairo-dock-class-icon-manager.h"
39
43
#include "cairo-dock-application-facility.h"
40
#include "cairo-dock-desktop-file-factory.h"
41
44
#include "cairo-dock-launcher-manager.h"
42
45
#include "cairo-dock-module-manager.h"
43
46
#include "cairo-dock-module-instance-manager.h"
47
50
#include "cairo-dock-dialog-manager.h"
48
51
#include "cairo-dock-file-manager.h" // cairo_dock_copy_file
49
52
#include "cairo-dock-log.h"
53
#include "cairo-dock-utils.h" // cairo_dock_launch_command_sync
50
54
#include "cairo-dock-desklet-manager.h"
51
55
#include "cairo-dock-dock-manager.h"
52
56
#include "cairo-dock-class-manager.h"
113
117
cairo_dock_remove_icons_from_dock (pDock, NULL);
115
gldi_object_unref (GLDI_OBJECT(pDock));
119
gldi_object_delete (GLDI_OBJECT(pDock));
118
122
static void _cairo_dock_delete_dock (G_GNUC_UNUSED GtkMenuItem *pMenuItem, CairoDock *pDock)
504
508
return pItemSubMenu;
507
static void _cairo_dock_create_launcher (Icon *icon, CairoDock *pDock, CairoDockDesktopFileType iLauncherType)
512
static double _get_next_order (Icon *icon, CairoDock *pDock)
509
//\___________________ On determine l'ordre d'insertion suivant l'endroit du clique.
511
515
if (icon != NULL)
525
529
fOrder = CAIRO_DOCK_LAST_ORDER;
527
//\___________________ On cree et on charge l'icone a partir d'un des templates.
528
Icon *pNewIcon = cairo_dock_add_new_launcher_by_type (iLauncherType, pDock, fOrder);
529
if (pNewIcon == NULL)
531
cd_warning ("Couldn't create create the icon.\nCheck that you have writing permissions on ~/.config/cairo-dock and its sub-folders");
535
//\___________________ On ouvre automatiquement l'IHM pour permettre de modifier ses champs.
536
if (iLauncherType != CAIRO_DOCK_DESKTOP_FILE_FOR_SEPARATOR) // inutile pour un separateur.
537
cairo_dock_show_items_gui (pNewIcon, NULL, NULL, -1);
540
533
static void cairo_dock_add_launcher (G_GNUC_UNUSED GtkMenuItem *pMenuItem, gpointer *data)
542
535
Icon *icon = data[0];
543
536
CairoDock *pDock = data[1];
544
_cairo_dock_create_launcher (icon, pDock, CAIRO_DOCK_DESKTOP_FILE_FOR_LAUNCHER);
537
double fOrder = _get_next_order (icon, pDock);
538
Icon *pNewIcon = gldi_separator_icon_add_new (pDock, fOrder);
539
if (pNewIcon == NULL)
540
cd_warning ("Couldn't create create the icon.\nCheck that you have writing permissions on ~/.config/cairo-dock and its sub-folders");
542
cairo_dock_show_items_gui (pNewIcon, NULL, NULL, -1); // open the config so that the user can complete its fields
547
545
static void cairo_dock_add_sub_dock (G_GNUC_UNUSED GtkMenuItem *pMenuItem, gpointer *data)
549
547
Icon *icon = data[0];
550
548
CairoDock *pDock = data[1];
551
_cairo_dock_create_launcher (icon, pDock, CAIRO_DOCK_DESKTOP_FILE_FOR_CONTAINER);
549
double fOrder = _get_next_order (icon, pDock);
550
Icon *pNewIcon = gldi_stack_icon_add_new (pDock, fOrder);
551
if (pNewIcon == NULL)
552
cd_warning ("Couldn't create create the icon.\nCheck that you have writing permissions on ~/.config/cairo-dock and its sub-folders");
554
555
static gboolean _show_new_dock_msg (gchar *cDockName)
562
563
static void cairo_dock_add_main_dock (G_GNUC_UNUSED GtkMenuItem *pMenuItem, G_GNUC_UNUSED gpointer *data)
564
565
gchar *cDockName = gldi_dock_add_conf_file ();
565
/**CairoDock *pDock = */gldi_dock_new (cDockName);
566
///gldi_dock_reload (pDock);
566
gldi_dock_new (cDockName);
568
cairo_dock_gui_trigger_reload_items (); // pas de signal "new_dock"
568
cairo_dock_gui_trigger_reload_items (); // we could also connect to the signal "new-object" on docks...
570
570
g_timeout_add_seconds (1, (GSourceFunc)_show_new_dock_msg, cDockName); // delai, car sa fenetre n'est pas encore bien placee (0,0).
575
575
Icon *icon = data[0];
576
576
CairoDock *pDock = data[1];
577
_cairo_dock_create_launcher (icon, pDock, CAIRO_DOCK_DESKTOP_FILE_FOR_SEPARATOR);
577
double fOrder = _get_next_order (icon, pDock);
578
Icon *pNewIcon = gldi_separator_icon_add_new (pDock, fOrder);
579
if (pNewIcon == NULL)
580
cd_warning ("Couldn't create create the icon.\nCheck that you have writing permissions on ~/.config/cairo-dock and its sub-folders");
580
583
static void cairo_dock_add_applet (G_GNUC_UNUSED GtkMenuItem *pMenuItem, G_GNUC_UNUSED gpointer *data)
685
688
//\_________________________ on met a jour le fichier de conf de l'icone.
686
cairo_dock_write_container_name_in_conf_file (pIcon, cValidDockName);
689
gldi_theme_icon_write_container_name_in_conf_file (pIcon, cValidDockName);
688
691
//\_________________________ on recharge l'icone, ce qui va creer le dock.
689
692
if ((CAIRO_DOCK_ICON_TYPE_IS_LAUNCHER (pIcon)
782
785
fOrder = pIcon->fOrder + 1;
784
cairo_dock_add_new_launcher_by_uri (cDesktopFilePath, g_pMainDock, fOrder); // on l'ajoute dans le main dock.
787
gldi_launcher_add_new (cDesktopFilePath, g_pMainDock, fOrder); // add in the main dock
822
825
if (iClickedButton == 0 || iClickedButton == -1) // ok button or Enter.
824
gldi_module_delete_instance (icon->pModuleInstance);
827
gldi_object_delete (GLDI_OBJECT(icon->pModuleInstance));
827
830
static void _cairo_dock_remove_module_instance (G_GNUC_UNUSED GtkMenuItem *pMenuItem, gpointer *data)