Selections
Functions for handling inter-process communication via selections
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
#GtkTargetEntry structure and #GtkTargetList objects represent
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.
#GtkWidget
Much of the operation of selections happens via
signals for #GtkWidget. In particular, if you are
using the functions in this section, you may need
to pay attention to ::selection_get,
::selection_received, and :selection_clear_event
signals.
A #GtkTargetEntry structure represents a single type of
data than can be supplied for by a widget for a selection
or for supplied or received during drag-and-drop. It
contains a string representing the drag type, a flags
field (used only for drag and drop - see #GtkTargetFlags),
and an application assigned integer ID. The integer
ID will later be passed as a signal parameter for signals
like "selection_get". It allows the application to identify
the target type without extensive string compares.
@target:
@flags:
@info:
A #GtkTargetList structure is a reference counted list
of #GtkTargetPair. It is used to represent the same
information as a table of #GtkTargetEntry, but in
an efficient form. This structure should be treated as
opaque.
@list:
@ref_count:
Internally used structure in the drag-and-drop and
selection handling code.
@target:
@flags:
@info:
Creates a new #GtkTargetList from an array of #GtkTargetEntry.
@targets: Pointer to an array of #GtkTargetEntry
@ntargets: number of entries in @targets.
@Returns: the new #GtkTargetList.
Increases the reference count of a #GtkTargetList by one.
@list: a #GtkTargetList
Decreases the reference count of a #GtkTargetList by one.
If the resulting reference count is zero, frees the list.
@list: a #GtkTargetList
Adds another target to a #GtkTargetList.
@list: a #GtkTargetList
@target: the interned atom representing the target
@flags: the flags for this target
@info: an ID that will be passed back to the application
Adds a table of #GtkTargetEntry into a target list.
@list: a #GtkTargetList
@targets: the table of #GtkTargetEntry
@ntargets: number of targets in the table
@list:
Removes a target from a target list.
@list: a #GtkTargetList
@target: the interned atom representing the target
Looks up a given target in a #GtkTargetList.
@list: a #GtkTargetList
@target: an interned atom representing the target to search for
@info: a pointer to the location to store application info for target
@Returns: %TRUE if the target was found, otherwise %FALSE
@widget:
@selection:
@time_:
@Returns:
@display:
@widget:
@selection:
@time_:
@Returns:
Adds specified target to the list of supported targets for a
given widget and selection.
@widget: a #GtkTarget
@selection: the selection
@target: target to add.
@info: A unsigned integer which will be passed back to the application.
Adds a table of targets to the list of supported targets
for a given widget and selection.
@widget: a #GtkWidget
@selection: the selection
@targets: a table of targets to add
@ntargets: number of entries in @targets
@widget:
@selection:
Requests the contents of a selection. When received,
a "selection_received" signal will be generated.
@widget: The widget which acts as requestor
@selection: Which selection to get
@target: Form of information desired (e.g., STRING)
@time_: Time of request (usually of triggering event)
In emergency, you could use #GDK_CURRENT_TIME
@Returns: %TRUE if requested succeeded. %FALSE if we could not process
request. (e.g., there was already a request in process for
this widget).
Stores new data into a #GtkSelectionData object. Should
only be called from a selection handler callback.
Zero-terminates the stored data.
@selection_data:
@type: the type of selection data
@format: format (number of bits in a unit)
@data: pointer to the data (will be copied)
@length: length of the data
@selection_data:
@str:
@len:
@Returns:
@selection_data:
@Returns:
@selection_data:
@targets:
@n_atoms:
@Returns:
@selection_data:
@Returns:
Removes all handlers and unsets ownership of all
selections for a widget. Called when widget is being
destroyed. This function will not generally be
called by applications.
@widget: a #GtkWidget
@widget:
@event:
@Returns:
Makes a copy of a #GtkSelectionData structure and its data.
@data: a pointer to a #GtkSelectionData structure.
@Returns: a pointer to a copy of @data.
Frees a #GtkSelectionData structure returned from
gtk_selection_data_copy().
@data: a pointer to a #GtkSelectionData structure.