summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-dnd.c
diff options
context:
space:
mode:
authorDave Camp <dave@ximian.com>2002-10-31 22:38:46 +0000
committerDave Camp <campd@src.gnome.org>2002-10-31 22:38:46 +0000
commitcd6b5059951cee4fb1102dfe392c6719943798ed (patch)
tree7af3ecd96c9358c96761b3896677ba307f8aa4cb /libnautilus-private/nautilus-dnd.c
parent56c379f59f40fa53de6c5ecaf72752fbface290b (diff)
downloadnautilus-cd6b5059951cee4fb1102dfe392c6719943798ed.tar.gz
Set the background globally by default. On a right-drag from the property
2002-10-31 Dave Camp <dave@ximian.com> * libnautilus-private/nautilus-directory-background.c: (nautilus_file_background_get_default_settings), (nautilus_file_background_is_set), (background_changed_callback), (background_reset_callback): * libnautilus-private/nautilus-dnd.c: (nautilus_drag_drop_background_ask): * libnautilus-private/nautilus-dnd.h: * libnautilus-private/nautilus-global-preferences.h: * libnautilus-private/nautilus-icon-dnd.c: (get_background_drag_action), (receive_dropped_color), (receive_dropped_tile_image), (nautilus_icon_container_receive_dropped_icons), (drag_data_received_callback): Set the background globally by default. On a right-drag from the property dialog, pop up a context menu asking to set it globally or for that directory. * libnautilus-private/apps_nautilus_preferences.schemas: * src/nautilus-information-panel.c: (nautilus_information_panel_init), (nautilus_information_panel_finalize), (information_panel_has_background), (nautilus_information_panel_create_context_menu), (nautilus_information_panel_read_defaults), (nautilus_information_panel_theme_changed), (receive_dropped_uri_list), (receive_dropped_color), (nautilus_information_panel_drag_data_received), (background_settings_changed_callback), (background_reset_callback), (nautilus_information_panel_update_appearance): Take the default background from gconf, handle global vs. per-directory backgrounds. * nautilus-property-browser.c: (element_clicked_callback): Add ASK to the list of actions.
Diffstat (limited to 'libnautilus-private/nautilus-dnd.c')
-rw-r--r--libnautilus-private/nautilus-dnd.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/libnautilus-private/nautilus-dnd.c b/libnautilus-private/nautilus-dnd.c
index 1eb7e2dd6..f4398cec9 100644
--- a/libnautilus-private/nautilus-dnd.c
+++ b/libnautilus-private/nautilus-dnd.c
@@ -613,6 +613,59 @@ nautilus_drag_drop_action_ask (GdkDragAction actions)
return damd.chosen;
}
+GdkDragAction
+nautilus_drag_drop_background_ask (GdkDragAction actions)
+{
+ GtkWidget *menu;
+ GtkWidget *menu_item;
+ DropActionMenuData damd;
+
+ /* Create the menu and set the sensitivity of the items based on the
+ * allowed actions.
+ */
+ menu = gtk_menu_new ();
+
+ append_drop_action_menu_item (menu, _("Set as background for _all directories"),
+ NAUTILUS_DND_ACTION_SET_AS_GLOBAL_BACKGROUND,
+ (actions & NAUTILUS_DND_ACTION_SET_AS_GLOBAL_BACKGROUND) != 0,
+ &damd);
+
+ append_drop_action_menu_item (menu, _("Set as background for _this directory"),
+ NAUTILUS_DND_ACTION_SET_AS_BACKGROUND,
+ (actions & NAUTILUS_DND_ACTION_SET_AS_BACKGROUND) != 0,
+ &damd);
+
+ menu_item = gtk_separator_menu_item_new ();
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+ gtk_widget_show (menu_item);
+
+ menu_item = gtk_menu_item_new_with_mnemonic (_("Cancel"));
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+ gtk_widget_show (menu_item);
+
+ damd.chosen = 0;
+ damd.loop = g_main_loop_new (NULL, FALSE);
+
+ g_signal_connect (menu, "deactivate",
+ G_CALLBACK (menu_deactivate_callback),
+ &damd);
+
+ gtk_grab_add (menu);
+
+ gtk_menu_popup (GTK_MENU (menu), NULL, NULL,
+ NULL, NULL, 0, GDK_CURRENT_TIME);
+
+ g_main_loop_run (damd.loop);
+
+ gtk_grab_remove (menu);
+
+ g_main_loop_unref (damd.loop);
+
+ gtk_object_sink (GTK_OBJECT (menu));
+
+ return damd.chosen;
+}
+
gboolean
nautilus_drag_autoscroll_in_scroll_region (GtkWidget *widget)
{