diff options
author | Dave Camp <dave@ximian.com> | 2002-10-31 22:38:46 +0000 |
---|---|---|
committer | Dave Camp <campd@src.gnome.org> | 2002-10-31 22:38:46 +0000 |
commit | cd6b5059951cee4fb1102dfe392c6719943798ed (patch) | |
tree | 7af3ecd96c9358c96761b3896677ba307f8aa4cb /libnautilus-private/nautilus-dnd.c | |
parent | 56c379f59f40fa53de6c5ecaf72752fbface290b (diff) | |
download | nautilus-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.c | 53 |
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) { |