diff options
author | Owen Taylor <otaylor@src.gnome.org> | 1999-08-16 18:51:52 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1999-08-16 18:51:52 +0000 |
commit | 91a5956707f72e6ca4f57c2af51fab378bf22949 (patch) | |
tree | df292b9e1130dc0906526afadd0742d38ce480a9 /docs/reference/gtk/tmpl/gtkdnd.sgml | |
parent | 0455fa3029a4744fa40ab58bf4f837bfa1890509 (diff) | |
download | gtk+-91a5956707f72e6ca4f57c2af51fab378bf22949.tar.gz |
Initial revision
Diffstat (limited to 'docs/reference/gtk/tmpl/gtkdnd.sgml')
-rw-r--r-- | docs/reference/gtk/tmpl/gtkdnd.sgml | 344 |
1 files changed, 344 insertions, 0 deletions
diff --git a/docs/reference/gtk/tmpl/gtkdnd.sgml b/docs/reference/gtk/tmpl/gtkdnd.sgml new file mode 100644 index 0000000000..cf93b8f5f3 --- /dev/null +++ b/docs/reference/gtk/tmpl/gtkdnd.sgml @@ -0,0 +1,344 @@ +<!-- ##### SECTION Title ##### --> +Drag and Drop + +<!-- ##### SECTION Short_Description ##### --> +Functions for controlling drag and drop handling. + +<!-- ##### SECTION Long_Description ##### --> +<para> +GTK+ has a rich set of functions for doing inter-process +communication via the drag-and-drop metaphore. GTK+ +can do drag and drop (DND) via multiple protocols. +The currently supported protocols are the Xdnd and +Motif protocols. + +As well as the functions listed here, applications +may need to use some facilities provided for +<link linkend="gtk-Selections">Selections</link>. +Also, the Drag and Drop API makes use of signals +in the #GtkWidget class. +</para> + +<!-- ##### SECTION See_Also ##### --> +<para> + +</para> + +<!-- ##### ENUM GtkDestDefaults ##### --> +<para> +The #GtkDestfaults enumeration specifies the various +types of action that will be taken on behalf +of the user for a drag destination site. +</para> +<informaltable pgwide=1 frame="none" role="enum"> +<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*"> +<tbody> + +<row> +<entry><symbol>GTK_DEST_DEFAULT_MOTION</symbol></entry> +<entry> + If set for a widget, GTK+, during a drag over this + widget will check if the drag matches this widget's + list of possible targets and actions. + GTK+ will then call gtk_drag_status() as appropriate. +</entry> +</row> + +<row> +<entry><symbol>GTK_DEST_DEFAULT_HIGHLIGHT</symbol></entry> +<entry> + If set for a widget, GTK+ will draw a highlight on + this widget as long as a drag is over this widget + and the wiget drag format and action is accetable.</entry> +</row> + +<row> +<entry><symbol>GTK_DEST_DEFAULT_DROP</symbol></entry> +<entry> + If set for a widget, when a drop occurs, GTK+ will + will check if the drag matches this widget's + list of possible targets and actions. If so, + GTK+ will call gtk_drag_data_get() on behalf + of the widget. Whether or not the drop is succesful, + GTK+ will call gtk_drag_finish(). If the action + was a move, then if the drag was succesful, then + %TRUE will be passed for the @delete parameter + to gtk_drag_finish(). +</entry> +</row> + +<row> +<entry><symbol>GTK_DEST_DEFAULT_ALL</symbol></entry> +<entry> + If set, specifies that all default actions should + be taken. +</entry> +</row> + +</tbody></tgroup></informaltable> + +@GTK_DEST_DEFAULT_MOTION: +@GTK_DEST_DEFAULT_HIGHLIGHT: +@GTK_DEST_DEFAULT_DROP: +@GTK_DEST_DEFAULT_ALL: + +<!-- ##### ENUM GtkTargetFlags ##### --> +<para> +The #GtkTargetFlags enumeration is used to specifies +constraints on an entry in a GtkTargetTable. +<variablelist> + <varlistentry><term> %GTK_TARGET_SAME_APP </term> + <listitem> + <para> + If this is set, the target will only be selected + for drags within a single application. + </para> + </listitem> + </varlistentry> + <varlistentry><term> %GTK_TARGET_SAME_WIDGET </term> + <listitem> + <para> + If this is set, the target will only be selected + for drags within a single widget. + </para> + </listitem> + </varlistentry> +</variablelist> + +@GTK_TARGET_SAME_APP: +@GTK_TARGET_SAME_WIDGET: + +<!-- ##### FUNCTION gtk_drag_dest_set ##### --> +<para> +Set a widget as a potential drop destination. +</para> + +@widget: a widget +@flags: the flags that specify what actions GTK+ should take + on behalf of a widget for drops onto that widget. The @targets + and @actions fields only are used if %GTK_DEST_DEFAULT_MOTION + or %GTK_DEST_DEFAULT_DROP are given. +@targets: a pointer to an array of #GtkTargetEntry indicating + the drop types that this widget will accept. +@n_targets: the number of entries in @targets. +@actions: a bitmask of possible actions for a drop onto this + widget. + + +<!-- ##### FUNCTION gtk_drag_dest_set_proxy ##### --> +<para> +Set this widget as a proxy for drops to another window. +</para> + +@widget: a #GtkWidget +@proxy_window: the window to which to forward drag events +@protocol: the drag protocol which the @proxy_window accepts + (You can use gdk_drag_get_protocol() to determine this) +@use_coordinates: If true, send the same coordinates to the + destination, because it is a embedded + subwindow. + + +<!-- ##### FUNCTION gtk_drag_dest_unset ##### --> +<para> +Clear information about a drop destination set with +gtk_drag_dest_set(). The widget will no longer receive +notification of drags. +</para> + +@widget: a #GtkWidget + + +<!-- ##### FUNCTION gtk_drag_finish ##### --> +<para> +Inform the drag source that the drop is finished, and +that the data of the drag will no longer be required. +</para> + +@context: the drag context. +@success: a flag indicating whether the drop was succesful +@del: a flag indicating whether the source should delete the + original data. (This should be %TRUE for a move) +@time: the timestamp from the "drag_data_drop" signal. + + +<!-- ##### FUNCTION gtk_drag_get_data ##### --> +<para> +Get the data associated with a drag. When the data +is received or the retrieval fails, GTK+ will emit a +"drag_data_received" signal. Failure of the retrieval +is indicated by the length field of the @selection_data +signal parameter being negative. However, when gtk_drag_get_data() +is called implicitely because the %GTK_DRAG_DEFAULT_DROP was set, +then the widget will not receive notification of failed +drops. +</para> + +@widget: the widget that will receive the "drag_data_received" + signal. +@context: the drag context +@target: the target (form of the data) to retrieve. +@time: a timestamp for retrieving the data. This will + generally be the time received in a "drag_data_motion" + or "drag_data_drop" signal. + + +<!-- ##### FUNCTION gtk_drag_get_source_widget ##### --> +<para> +Determine the source widget for a drag. +</para> + +@context: a (destination side) drag context. +@Returns: if the drag is occurring within a single application, + a pointer to the source widget. Otherwise, NULL. + + +<!-- ##### FUNCTION gtk_drag_highlight ##### --> +<para> +Draw a highlight around a widget. This will attach +handlers to "expose_event" and "draw", so the highlight +will continue to be displayed until gtk_drag_unhighlight +is called. +</para> + +@widget: a widget to highlight + + +<!-- ##### FUNCTION gtk_drag_unhighlight ##### --> +<para> +Remove a highlight set by gtk_drag_highlight() from +a widget. +is called. +</para> + +@widget: a widget to remove the highlight from. + + +<!-- ##### FUNCTION gtk_drag_begin ##### --> +<para> +Initiate a drag on the source side. The function +only needs to be used when the application is +starting drags itself, and is not needed when +gtk_drag_source_set() is used. +</para> + +@widget: the source widget. +@targets: The targets (data formats) in which the + source can provide the data. +@actions: A bitmask of the allowed drag actions for this + drag. +@button: The button the user clicked to start the drag. +@event: The event that triggered the start of the + drag. Usually +@Returns: The context for this drag. + + +<!-- ##### FUNCTION gtk_drag_set_icon_widget ##### --> +<para> +Change the icon for a widget to a given widget. GTK+ +will not destroy the icon, so if you don't want +it to persist, you should connect to the "drag_end" +signal and destroy it yourself. +</para> + +@context: the context for a drag. (This must be called + with a context for the source side of a drag) +@widget: A toplevel window to use as an icon. +@hot_x: The X offset within @widget of the hotspot. +@hot_y: The Y offset within @widget of the hotspot. + + +<!-- ##### FUNCTION gtk_drag_set_icon_pixmap ##### --> +<para> +Sets a given pixmap as the icon for a given drag. +GTK+ retains a reference count for the arguments, and +will release them when they are no longer needed. +</para> + +@context: the context for a drag. (This must be called + with a context for the source side of a drag) +@colormap: the colormap of the icon +@pixmap: the image data for the icon +@mask: the transparency mask for an image. +@hot_x: The X offset within @widget of the hotspot. +@hot_y: The Y offset within @widget of the hotspot. + + +<!-- ##### FUNCTION gtk_drag_set_icon_default ##### --> +<para> +Set the icon for a particular drag to the default +icon. +</para> + +@context: the context for a drag. (This must be called + with a context for the source side of a drag) + + +<!-- ##### FUNCTION gtk_drag_set_default_icon ##### --> +<para> +Change the default drag icon. GTK+ retains a reference count for the +arguments, and will release them when they are no longer needed. +</para> + +@colormap: the colormap of the icon +@pixmap: the image data for the icon +@mask: the transparency mask for an image. +@hot_x: The X offset within @widget of the hotspot. +@hot_y: The Y offset within @widget of the hotspot. + + +<!-- ##### FUNCTION gtk_drag_source_set ##### --> +<para> +Sets up a widget so that GTK+ will start a drag +operation when the user clicks and drags on the +widget. The widget must have a window. +</para> + +@widget: a #GtkWidget +@start_button_mask: the bitmask of buttons that can start the drag +@targets: the table of targets that the drag will support +@n_targets: the number of items in @targets +@actions: the bitmask of possible actions for a drag from this + widget. + + +<!-- ##### FUNCTION gtk_drag_source_set_icon ##### --> +<para> +Sets the icon that will be used for drags from a +particular widget. GTK+ retains a reference count +for the arguments, and will release them when +they are no longer needed. +</para> + +@widget: a #GtkWidget +@colormap: the colormap of the icon +@pixmap: the image data for the icon +@mask: the transparency mask for an image. + + +<!-- ##### FUNCTION gtk_drag_source_unset ##### --> +<para> +Undo the effects of gtk_drag_source_set(). +</para> + +@widget: a #GtkWidget + + +<!-- ##### FUNCTION gtk_drag_source_handle_event ##### --> +<para> +Internal function. +</para> + +@widget: +@event: + + +<!-- ##### FUNCTION gtk_drag_dest_handle_event ##### --> +<para> +Internal function. +</para> + +@toplevel: +@event: + + |