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 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.