static void drag_data_get_cb (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *data, guint info, guint time, gpointer user_data) { gint pos; pos = gtk_entry_get_current_icon_drag_source (GTK_ENTRY (widget)); if (pos == GTK_ENTRY_ICON_PRIMARY) { #if 0 gint start, end; if (gtk_editable_get_selection_bounds (GTK_EDITABLE (widget), &start, &end)) { gchar *str; str = gtk_editable_get_chars (GTK_EDITABLE (widget), start, end); gtk_selection_data_set_text (data, str, -1); g_free (str); } #else gtk_selection_data_set_text (data, "XXX", -1); #endif } }
static void drag_begin_cb (GtkWidget *widget, GdkDragContext *context, gpointer user_data) { gint pos; pos = gtk_entry_get_current_icon_drag_source (GTK_ENTRY (widget)); if (pos != -1) gtk_drag_set_icon_stock (context, GTK_STOCK_INFO, 2, 2); g_print ("drag begin %d\n", pos); }
static VALUE rg_current_icon_drag_source(VALUE self) { return INT2NUM(gtk_entry_get_current_icon_drag_source(_SELF(self))); }