dnd: Add gtk_drag_set_icon_texture()

This commit is contained in:
Benjamin Otte 2017-12-02 14:28:05 +01:00
parent 20de4c86ad
commit 481c6ad99a
3 changed files with 38 additions and 0 deletions

View File

@ -5317,6 +5317,7 @@ gtk_drag_begin_with_coordinates
gtk_drag_cancel gtk_drag_cancel
gtk_drag_set_icon_widget gtk_drag_set_icon_widget
gtk_drag_set_icon_surface gtk_drag_set_icon_surface
gtk_drag_set_icon_texture
gtk_drag_set_icon_name gtk_drag_set_icon_name
gtk_drag_set_icon_gicon gtk_drag_set_icon_gicon
gtk_drag_set_icon_default gtk_drag_set_icon_default

View File

@ -1619,6 +1619,38 @@ gtk_drag_set_icon_surface (GdkDragContext *context,
gtk_drag_set_icon_widget_internal (context, widget, (int)hot_x, (int)hot_y, TRUE); gtk_drag_set_icon_widget_internal (context, widget, (int)hot_x, (int)hot_y, TRUE);
} }
/**
* gtk_drag_set_icon_texture: (method)
* @context: the context for a drag (This must be called
* with a context for the source side of a drag)
* @texture: the #GdkTexture to use as icon
* @hot_x: the X offset of the hotspot within the icon
* @hot_y: the Y offset of the hotspot within the icon
*
* Sets @texture as the icon for a given drag. GTK+ retains
* references for the arguments, and will release them when
* they are no longer needed.
*
* To position the texture relative to the mouse, its top
* left will be positioned @hot_x, @hot_y pixels from the
* mouse cursor.
*/
void
gtk_drag_set_icon_texture (GdkDragContext *context,
GdkTexture *texture,
int hot_x,
int hot_y)
{
GtkWidget *widget;
g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
g_return_if_fail (GDK_IS_TEXTURE (texture));
widget = gtk_image_new_from_texture (texture);
gtk_drag_set_icon_widget_internal (context, widget, hot_x, hot_y, TRUE);
}
/** /**
* gtk_drag_set_icon_name: (method) * gtk_drag_set_icon_name: (method)
* @context: the context for a drag (This must be called * @context: the context for a drag (This must be called

View File

@ -80,6 +80,11 @@ void gtk_drag_set_icon_widget (GdkDragContext *context,
GDK_AVAILABLE_IN_ALL GDK_AVAILABLE_IN_ALL
void gtk_drag_set_icon_surface(GdkDragContext *context, void gtk_drag_set_icon_surface(GdkDragContext *context,
cairo_surface_t *surface); cairo_surface_t *surface);
GDK_AVAILABLE_IN_3_94
void gtk_drag_set_icon_texture(GdkDragContext *context,
GdkTexture *texture,
int hot_x,
int hot_y);
GDK_AVAILABLE_IN_ALL GDK_AVAILABLE_IN_ALL
void gtk_drag_set_icon_name (GdkDragContext *context, void gtk_drag_set_icon_name (GdkDragContext *context,
const gchar *icon_name, const gchar *icon_name,