Added drag and drop, re-enabled the watch cursor when adding images, and
* appearance-desktop.c: Added drag and drop, re-enabled the watch cursor when adding images, and removed some commented out code. svn path=/trunk/; revision=7538
This commit is contained in:
parent
255eb9da7d
commit
6bc2415583
1 changed files with 71 additions and 11 deletions
|
@ -43,6 +43,21 @@ typedef enum {
|
||||||
GNOME_WP_SCALE_TYPE_TILED
|
GNOME_WP_SCALE_TYPE_TILED
|
||||||
} GnomeWPScaleType;
|
} GnomeWPScaleType;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
TARGET_URI_LIST,
|
||||||
|
TARGET_URL,
|
||||||
|
TARGET_COLOR,
|
||||||
|
TARGET_BGIMAGE,
|
||||||
|
TARGET_BACKGROUND_RESET
|
||||||
|
};
|
||||||
|
|
||||||
|
static GtkTargetEntry drop_types[] = {
|
||||||
|
{"text/uri-list", 0, TARGET_URI_LIST},
|
||||||
|
/* { "application/x-color", 0, TARGET_COLOR }, */
|
||||||
|
{ "property/bgimage", 0, TARGET_BGIMAGE },
|
||||||
|
/* { "x-special/gnome-reset-background", 0, TARGET_BACKGROUND_RESET }*/
|
||||||
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
scroll_to_item (AppearanceData *data,
|
scroll_to_item (AppearanceData *data,
|
||||||
GnomeWPItem * item)
|
GnomeWPItem * item)
|
||||||
|
@ -136,14 +151,17 @@ static void
|
||||||
wp_add_images (AppearanceData *data,
|
wp_add_images (AppearanceData *data,
|
||||||
GSList *images)
|
GSList *images)
|
||||||
{
|
{
|
||||||
/*GdkCursor * cursor;*/
|
GdkWindow *window;
|
||||||
|
GdkCursor *cursor;
|
||||||
GnomeWPItem *item;
|
GnomeWPItem *item;
|
||||||
|
|
||||||
|
window = (WID ("appearance_window"))->window;
|
||||||
|
|
||||||
item = NULL;
|
item = NULL;
|
||||||
/* cursor = gdk_cursor_new_for_display (gdk_display_get_default (),
|
cursor = gdk_cursor_new_for_display (gdk_display_get_default (),
|
||||||
GDK_WATCH);
|
GDK_WATCH);
|
||||||
gdk_window_set_cursor (capplet->window->window, cursor);
|
gdk_window_set_cursor (window, cursor);
|
||||||
gdk_cursor_unref (cursor);*/
|
gdk_cursor_unref (cursor);
|
||||||
|
|
||||||
while (images != NULL)
|
while (images != NULL)
|
||||||
{
|
{
|
||||||
|
@ -154,7 +172,7 @@ wp_add_images (AppearanceData *data,
|
||||||
g_free (uri);
|
g_free (uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*gdk_window_set_cursor (capplet->window->window, NULL);*/
|
gdk_window_set_cursor (window, NULL);
|
||||||
|
|
||||||
if (item != NULL)
|
if (item != NULL)
|
||||||
{
|
{
|
||||||
|
@ -729,6 +747,47 @@ wp_tree_delete_event (GtkWidget *widget,
|
||||||
gnome_wp_xml_save_list (data);
|
gnome_wp_xml_save_list (data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
wp_dragged_image (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x, gint y,
|
||||||
|
GtkSelectionData *selection_data,
|
||||||
|
guint info, guint time,
|
||||||
|
AppearanceData *data)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (info == TARGET_URI_LIST || info == TARGET_BGIMAGE)
|
||||||
|
{
|
||||||
|
GList * uris;
|
||||||
|
GSList * realuris = NULL;
|
||||||
|
|
||||||
|
uris = gnome_vfs_uri_list_parse ((gchar *) selection_data->data);
|
||||||
|
|
||||||
|
if (uris != NULL && uris->data != NULL)
|
||||||
|
{
|
||||||
|
GdkWindow *window;
|
||||||
|
GdkCursor *cursor;
|
||||||
|
|
||||||
|
window = (WID ("appearance_window"))->window;
|
||||||
|
|
||||||
|
cursor = gdk_cursor_new_for_display (gdk_display_get_default (),
|
||||||
|
GDK_WATCH);
|
||||||
|
gdk_window_set_cursor (window, cursor);
|
||||||
|
gdk_cursor_unref (cursor);
|
||||||
|
|
||||||
|
for (; uris != NULL; uris = uris->next)
|
||||||
|
{
|
||||||
|
realuris = g_slist_append (realuris,
|
||||||
|
g_strdup (gnome_vfs_uri_get_path (uris->data)));
|
||||||
|
}
|
||||||
|
|
||||||
|
wp_add_images (data, realuris);
|
||||||
|
gdk_window_set_cursor (window, NULL);
|
||||||
|
}
|
||||||
|
gnome_vfs_uri_list_free (uris);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
wp_list_sort (GtkTreeModel *model,
|
wp_list_sort (GtkTreeModel *model,
|
||||||
GtkTreeIter *a, GtkTreeIter *b,
|
GtkTreeIter *a, GtkTreeIter *b,
|
||||||
|
@ -887,11 +946,6 @@ wp_load_stuffs (void *user_data)
|
||||||
g_free (imagepath);
|
g_free (imagepath);
|
||||||
g_free (style);
|
g_free (style);
|
||||||
|
|
||||||
/*if (data->uri_list)
|
|
||||||
{
|
|
||||||
wp_add_images (data, data->uri_list);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -966,6 +1020,12 @@ desktop_init (AppearanceData *data)
|
||||||
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (data->wp_model),
|
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (data->wp_model),
|
||||||
2, GTK_SORT_ASCENDING);
|
2, GTK_SORT_ASCENDING);
|
||||||
|
|
||||||
|
gtk_drag_dest_set (GTK_WIDGET (data->wp_tree), GTK_DEST_DEFAULT_ALL, drop_types,
|
||||||
|
sizeof (drop_types) / sizeof (drop_types[0]),
|
||||||
|
GDK_ACTION_COPY | GDK_ACTION_MOVE);
|
||||||
|
g_signal_connect (G_OBJECT (data->wp_tree), "drag_data_received",
|
||||||
|
G_CALLBACK (wp_dragged_image), data);
|
||||||
|
|
||||||
data->wp_style_menu = WID ("wp_style_menu");
|
data->wp_style_menu = WID ("wp_style_menu");
|
||||||
|
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (data->wp_style_menu), _("Centered"));
|
gtk_combo_box_append_text (GTK_COMBO_BOX (data->wp_style_menu), _("Centered"));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue