Add a vfunc for gdk_selection_property_get
This commit is contained in:
@ -209,6 +209,11 @@ struct _GdkDisplayClass
|
|||||||
GdkAtom target,
|
GdkAtom target,
|
||||||
GdkAtom property,
|
GdkAtom property,
|
||||||
guint32 time_);
|
guint32 time_);
|
||||||
|
gint (*get_selection_property) (GdkDisplay *display,
|
||||||
|
GdkWindow *requestor,
|
||||||
|
guchar **data,
|
||||||
|
GdkAtom *type,
|
||||||
|
gint *format);
|
||||||
|
|
||||||
/* Signals */
|
/* Signals */
|
||||||
void (*closed) (GdkDisplay *display,
|
void (*closed) (GdkDisplay *display,
|
||||||
|
@ -334,3 +334,39 @@ gdk_selection_send_notify_for_display (GdkDisplay *display,
|
|||||||
GDK_DISPLAY_GET_CLASS (display)
|
GDK_DISPLAY_GET_CLASS (display)
|
||||||
->send_selection_notify (display, requestor, selection,target, property, time_);
|
->send_selection_notify (display, requestor, selection,target, property, time_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gdk_selection_property_get:
|
||||||
|
* @requestor: the window on which the data is stored
|
||||||
|
* @data: location to store a pointer to the retrieved data.
|
||||||
|
If the retrieval failed, %NULL we be stored here, otherwise, it
|
||||||
|
will be non-%NULL and the returned data should be freed with g_free()
|
||||||
|
when you are finished using it. The length of the
|
||||||
|
allocated memory is one more than the length
|
||||||
|
of the returned data, and the final byte will always
|
||||||
|
be zero, to ensure nul-termination of strings
|
||||||
|
* @prop_type: location to store the type of the property
|
||||||
|
* @prop_format: location to store the format of the property
|
||||||
|
*
|
||||||
|
* Retrieves selection data that was stored by the selection
|
||||||
|
* data in response to a call to gdk_selection_convert(). This function
|
||||||
|
* will not be used by applications, who should use the #GtkClipboard
|
||||||
|
* API instead.
|
||||||
|
*
|
||||||
|
* Return value: the length of the retrieved data.
|
||||||
|
*/
|
||||||
|
gint
|
||||||
|
gdk_selection_property_get (GdkWindow *requestor,
|
||||||
|
guchar **data,
|
||||||
|
GdkAtom *ret_type,
|
||||||
|
gint *ret_format)
|
||||||
|
{
|
||||||
|
GdkDisplay *display;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GDK_IS_WINDOW (requestor), 0);
|
||||||
|
|
||||||
|
display = gdk_window_get_display (requestor);
|
||||||
|
|
||||||
|
return GDK_DISPLAY_GET_CLASS (display)
|
||||||
|
->get_selection_property (display, requestor, data, ret_type, ret_format);
|
||||||
|
}
|
||||||
|
@ -2763,4 +2763,5 @@ _gdk_display_x11_class_init (GdkDisplayX11Class * class)
|
|||||||
display_class->get_selection_owner = _gdk_x11_display_get_selection_owner;
|
display_class->get_selection_owner = _gdk_x11_display_get_selection_owner;
|
||||||
display_class->set_selection_owner = _gdk_x11_display_set_selection_owner;
|
display_class->set_selection_owner = _gdk_x11_display_set_selection_owner;
|
||||||
display_class->send_selection_notify = _gdk_x11_display_send_selection_notify;
|
display_class->send_selection_notify = _gdk_x11_display_send_selection_notify;
|
||||||
|
display_class->get_selection_property = _gdk_x11_display_get_selection_property;
|
||||||
}
|
}
|
||||||
|
@ -202,6 +202,11 @@ void _gdk_x11_display_send_selection_notify (GdkDisplay *display,
|
|||||||
GdkAtom target,
|
GdkAtom target,
|
||||||
GdkAtom property,
|
GdkAtom property,
|
||||||
guint32 time);
|
guint32 time);
|
||||||
|
gint _gdk_x11_display_get_selection_property (GdkDisplay *display,
|
||||||
|
GdkWindow *requestor,
|
||||||
|
guchar **data,
|
||||||
|
GdkAtom *ret_type,
|
||||||
|
gint *ret_format);
|
||||||
|
|
||||||
void _gdk_x11_device_check_extension_events (GdkDevice *device);
|
void _gdk_x11_device_check_extension_events (GdkDevice *device);
|
||||||
|
|
||||||
|
@ -204,45 +204,19 @@ gdk_selection_convert (GdkWindow *requestor,
|
|||||||
GDK_WINDOW_XID (requestor), time);
|
GDK_WINDOW_XID (requestor), time);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* gdk_selection_property_get:
|
|
||||||
* @requestor: the window on which the data is stored
|
|
||||||
* @data: location to store a pointer to the retrieved data.
|
|
||||||
If the retrieval failed, %NULL we be stored here, otherwise, it
|
|
||||||
will be non-%NULL and the returned data should be freed with g_free()
|
|
||||||
when you are finished using it. The length of the
|
|
||||||
allocated memory is one more than the length
|
|
||||||
of the returned data, and the final byte will always
|
|
||||||
be zero, to ensure nul-termination of strings.
|
|
||||||
* @prop_type: location to store the type of the property.
|
|
||||||
* @prop_format: location to store the format of the property.
|
|
||||||
*
|
|
||||||
* Retrieves selection data that was stored by the selection
|
|
||||||
* data in response to a call to gdk_selection_convert(). This function
|
|
||||||
* will not be used by applications, who should use the #GtkClipboard
|
|
||||||
* API instead.
|
|
||||||
*
|
|
||||||
* Return value: the length of the retrieved data.
|
|
||||||
**/
|
|
||||||
gint
|
gint
|
||||||
gdk_selection_property_get (GdkWindow *requestor,
|
_gdk_x11_display_get_selection_property (GdkDisplay *display,
|
||||||
guchar **data,
|
GdkWindow *requestor,
|
||||||
GdkAtom *ret_type,
|
guchar **data,
|
||||||
gint *ret_format)
|
GdkAtom *ret_type,
|
||||||
|
gint *ret_format)
|
||||||
{
|
{
|
||||||
gulong nitems;
|
gulong nitems;
|
||||||
gulong nbytes;
|
gulong nbytes;
|
||||||
gulong length = 0; /* Quiet GCC */
|
gulong length = 0;
|
||||||
Atom prop_type;
|
Atom prop_type;
|
||||||
gint prop_format;
|
gint prop_format;
|
||||||
guchar *t = NULL;
|
guchar *t = NULL;
|
||||||
GdkDisplay *display;
|
|
||||||
|
|
||||||
g_return_val_if_fail (requestor != NULL, 0);
|
|
||||||
g_return_val_if_fail (GDK_IS_WINDOW (requestor), 0);
|
|
||||||
g_return_val_if_fail (GDK_WINDOW_IS_X11 (requestor), 0);
|
|
||||||
|
|
||||||
display = GDK_WINDOW_DISPLAY (requestor);
|
|
||||||
|
|
||||||
if (GDK_WINDOW_DESTROYED (requestor) || !GDK_WINDOW_IS_X11 (requestor))
|
if (GDK_WINDOW_DESTROYED (requestor) || !GDK_WINDOW_IS_X11 (requestor))
|
||||||
goto err;
|
goto err;
|
||||||
|
Reference in New Issue
Block a user