Top | ![]() |
![]() |
![]() |
![]() |
The selection mechanism provides the basis for different types of communication between processes. In particular, drag and drop and GtkClipboard work via selections. You will very seldom or never need to use most of the functions in this section directly; GtkClipboard provides a nicer interface to the same functionality.
Some of the datatypes defined this section are used in the GtkClipboard and drag-and-drop API’s as well. The GdkContentFormats object represents lists of data types that are supported when sending or receiving data. The GtkSelectionData object is used to store a chunk of data along with the data type and other associated information.
void gtk_selection_data_set (GtkSelectionData *selection_data
,GdkAtom type
,gint format
,const guchar *data
,gint length
);
Stores new data into a GtkSelectionData object. Should only be called from a selection handler callback. Zero-terminates the stored data.
selection_data |
a pointer to a GtkSelectionData. |
|
type |
the type of selection data |
|
format |
format (number of bits in a unit) |
|
data |
pointer to the data (will be copied). |
[array length=length] |
length |
length of the data |
gboolean gtk_selection_data_set_text (GtkSelectionData *selection_data
,const gchar *str
,gint len
);
Sets the contents of the selection from a UTF-8 encoded string.
The string is converted to the form determined by
selection_data->target
.
guchar *
gtk_selection_data_get_text (const GtkSelectionData *selection_data
);
Gets the contents of the selection data as a UTF-8 string.
gboolean gtk_selection_data_set_pixbuf (GtkSelectionData *selection_data
,GdkPixbuf *pixbuf
);
Sets the contents of the selection from a GdkPixbuf
The pixbuf is converted to the form determined by
selection_data->target
.
GdkPixbuf *
gtk_selection_data_get_pixbuf (const GtkSelectionData *selection_data
);
Gets the contents of the selection data as a GdkPixbuf.
if the selection data
contained a recognized image type and it could be converted to a
GdkPixbuf, a newly allocated pixbuf is returned, otherwise
NULL
. If the result is non-NULL
it must be freed with
g_object_unref()
.
[nullable][transfer full]
gboolean gtk_selection_data_set_texture (GtkSelectionData *selection_data
,GdkTexture *texture
);
Sets the contents of the selection from a GdkTexture.
The surface is converted to the form determined by
selection_data->target
.
GdkTexture *
gtk_selection_data_get_texture (const GtkSelectionData *selection_data
);
Gets the contents of the selection data as a GdkPixbuf.
if the selection data
contained a recognized image type and it could be converted to a
GdkTexture, a newly allocated texture is returned, otherwise
NULL
. If the result is non-NULL
it must be freed with
g_object_unref()
.
[nullable][transfer full]
gboolean gtk_selection_data_set_uris (GtkSelectionData *selection_data
,gchar **uris
);
Sets the contents of the selection from a list of URIs.
The string is converted to the form determined by
selection_data->target
.
gchar **
gtk_selection_data_get_uris (const GtkSelectionData *selection_data
);
Gets the contents of the selection data as array of URIs.
gboolean gtk_selection_data_get_targets (const GtkSelectionData *selection_data
,GdkAtom **targets
,gint *n_atoms
);
Gets the contents of selection_data
as an array of targets.
This can be used to interpret the results of getting
the standard TARGETS target that is always supplied for
any selection.
selection_data |
a GtkSelectionData object |
|
targets |
location to store an array of targets. The result stored
here must be freed with |
[out][array length=n_atoms][transfer container] |
n_atoms |
location to store number of items in |
gboolean gtk_selection_data_targets_include_image (const GtkSelectionData *selection_data
,gboolean writable
);
Given a GtkSelectionData object holding a list of targets,
determines if any of the targets in targets
can be used to
provide a GdkPixbuf.
selection_data |
a GtkSelectionData object |
|
writable |
whether to accept only targets for which GTK+ knows how to convert a pixbuf into the format |
gboolean
gtk_selection_data_targets_include_text
(const GtkSelectionData *selection_data
);
Given a GtkSelectionData object holding a list of targets,
determines if any of the targets in targets
can be used to
provide text.
gboolean
gtk_selection_data_targets_include_uri
(const GtkSelectionData *selection_data
);
Given a GtkSelectionData object holding a list of targets,
determines if any of the targets in targets
can be used to
provide a list or URIs.
const guchar *
gtk_selection_data_get_data (const GtkSelectionData *selection_data
);
Retrieves the raw data of the selection.
[skip]
gint
gtk_selection_data_get_length (const GtkSelectionData *selection_data
);
Retrieves the length of the raw data of the selection.
const guchar * gtk_selection_data_get_data_with_length (const GtkSelectionData *selection_data
,gint *length
);
Retrieves the raw data of the selection along with its length.
[rename-to gtk_selection_data_get_data]
selection_data |
a pointer to a GtkSelectionData. |
|
length |
return location for length of the data segment. |
[out] |
GdkAtom
gtk_selection_data_get_data_type (const GtkSelectionData *selection_data
);
Retrieves the data type of the selection.
GdkDisplay *
gtk_selection_data_get_display (const GtkSelectionData *selection_data
);
Retrieves the display of the selection.
gint
gtk_selection_data_get_format (const GtkSelectionData *selection_data
);
Retrieves the format of the selection.
GdkAtom
gtk_selection_data_get_target (const GtkSelectionData *selection_data
);
Retrieves the target of the selection.
gboolean gtk_targets_include_image (GdkAtom *targets
,gint n_targets
,gboolean writable
);
Determines if any of the targets in targets
can be used to
provide a GdkPixbuf.
targets |
an array of GdkAtoms. |
[array length=n_targets] |
n_targets |
the length of |
|
writable |
whether to accept only targets for which GTK+ knows how to convert a pixbuf into the format |
gboolean gtk_targets_include_text (GdkAtom *targets
,gint n_targets
);
Determines if any of the targets in targets
can be used to
provide text.
gboolean gtk_targets_include_uri (GdkAtom *targets
,gint n_targets
);
Determines if any of the targets in targets
can be used to
provide an uri list.
GtkSelectionData *
gtk_selection_data_copy (const GtkSelectionData *data
);
Makes a copy of a GtkSelectionData and its data.
void
gtk_selection_data_free (GtkSelectionData *data
);
Frees a GtkSelectionData returned from
gtk_selection_data_copy()
.