713
713
g_free (cValidDockName);
716
static void _add_one_dock_to_menu (const gchar *cName, CairoDock *pDock, GtkWidget *pMenu)
716
static void _cairo_dock_add_docks_sub_menu (GtkWidget *pMenu, Icon *pIcon)
718
// on ne prend que les sous-docks utilisateur.
719
Icon *pPointingIcon = cairo_dock_search_icon_pointing_on_dock (pDock, NULL);
720
if (pPointingIcon && ! CAIRO_DOCK_ICON_TYPE_IS_CONTAINER (pPointingIcon))
722
// on elimine le dock courant.
723
Icon *pIcon = g_object_get_data (G_OBJECT (pMenu), "icon-item");
724
if (strcmp (pIcon->cParentDockName, cName) == 0)
726
// on elimine le sous-dock.
727
if (pIcon->pSubDock != NULL && pIcon->pSubDock == pDock)
729
// On definit un nom plus parlant.
730
gchar *cUserName = cairo_dock_get_readable_name_for_fock (pDock);
731
// on rajoute une entree pour le dock.
732
GtkWidget *pMenuItem = cairo_dock_add_in_menu_with_stock_and_data (cUserName ? cUserName : cName, NULL, G_CALLBACK (_cairo_dock_move_launcher_to_dock), pMenu, (gpointer)cName);
718
GtkWidget *pSubMenuDocks = cairo_dock_create_sub_menu (_("Move to another dock"), pMenu, GTK_STOCK_JUMP_TO);
719
g_object_set_data (G_OBJECT (pSubMenuDocks), "icon-item", pIcon);
720
GtkWidget *pMenuItem = cairo_dock_add_in_menu_with_stock_and_data (_("New main dock"), GTK_STOCK_NEW, G_CALLBACK (_cairo_dock_move_launcher_to_dock), pSubMenuDocks, NULL);
733
721
g_object_set_data (G_OBJECT (pMenuItem), "icon-item", pIcon);
723
GList *pDocks = cairo_dock_get_available_docks_for_icon (pIcon);
728
for (d = pDocks; d != NULL; d = d->next)
731
cName = cairo_dock_search_dock_name (pDock);
732
cUserName = cairo_dock_get_readable_name_for_fock (pDock);
734
GtkWidget *pMenuItem = cairo_dock_add_in_menu_with_stock_and_data (cUserName ? cUserName : cName, NULL, G_CALLBACK (_cairo_dock_move_launcher_to_dock), pSubMenuDocks, (gpointer)cName);
735
g_object_set_data (G_OBJECT (pMenuItem), "icon-item", pIcon);
738
g_list_free (pDocks);
737
741
static void _cairo_dock_make_launcher_from_appli (G_GNUC_UNUSED GtkMenuItem *pMenuItem, gpointer *data)
1200
1204
pMenuItem = _add_entry_in_menu (_("Remove"), GTK_STOCK_REMOVE, _cairo_dock_remove_launcher, pItemSubMenu);
1201
1205
gtk_widget_set_tooltip_text (pMenuItem, _("You can remove a launcher by dragging it out of the dock with the mouse ."));
1203
GtkWidget *pSubMenuDocks = cairo_dock_create_sub_menu (_("Move to another dock"), pItemSubMenu, GTK_STOCK_JUMP_TO);
1204
g_object_set_data (G_OBJECT (pSubMenuDocks), "icon-item", pIcon);
1205
pMenuItem = cairo_dock_add_in_menu_with_stock_and_data (_("New main dock"), GTK_STOCK_NEW, G_CALLBACK (_cairo_dock_move_launcher_to_dock), pSubMenuDocks, NULL);
1206
g_object_set_data (G_OBJECT (pMenuItem), "icon-item", pIcon);
1207
cairo_dock_foreach_docks ((GHFunc) _add_one_dock_to_menu, pSubMenuDocks);
1207
_cairo_dock_add_docks_sub_menu (pItemSubMenu, pIcon);
1209
1209
else if (CAIRO_DOCK_ICON_TYPE_IS_APPLI (pIcon)
1210
1210
|| CAIRO_DOCK_ICON_TYPE_IS_CLASS_CONTAINER (pIcon)) // appli with no launcher
1261
1261
if (CAIRO_DOCK_IS_DOCK (pContainer) && pIcon->cParentDockName != NULL) // sinon bien sur ca n'est pas la peine de presenter l'option (Cairo-Penguin par exemple)
1263
GtkWidget *pSubMenuDocks = cairo_dock_create_sub_menu (_("Move to another dock"), pItemSubMenu, GTK_STOCK_JUMP_TO);
1264
g_object_set_data (G_OBJECT (pSubMenuDocks), "icon-item", pIcon);
1265
pMenuItem = cairo_dock_add_in_menu_with_stock_and_data (_("New main dock"), GTK_STOCK_NEW, G_CALLBACK (_cairo_dock_move_launcher_to_dock), pSubMenuDocks, NULL);
1266
g_object_set_data (G_OBJECT (pMenuItem), "icon-item", pIcon);
1267
cairo_dock_foreach_docks ((GHFunc) _add_one_dock_to_menu, pSubMenuDocks);
1263
_cairo_dock_add_docks_sub_menu (pItemSubMenu, pIcon);
1270
1266
pMenuItem = gtk_separator_menu_item_new ();