gtk2/docs/reference/gtk/tmpl/gtkdnd.sgml

351 lines
8.0 KiB
Plaintext
Raw Normal View History

1999-08-16 18:51:52 +00:00
<!-- ##### 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 metaphor. GTK+
can do drag-and-drop (DND) via multiple protocols.
1999-08-16 18:51:52 +00:00
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>
Doc typo fix. (#68172) * gtk/gtksocket.c (gtk_socket_get_id): Doc typo fix. (#68172) * gtk/gtktreemodel.c (gtk_tree_path_is_descendant): Fix docs. * gtk/gtktreemodel.c (gtk_tree_model_rows_reordered): Document. * gtk/gtkwindow.c (gtk_window_remove_accel_group): Fix docs. * gtk/gtkrc.c (gtk_rc_get_style_by_paths), gtk/gtkwidget.c (gtk_widget_get_toplevel, gtk_widget_push_composite_child), gtk/gtkdialog.c (gtk_dialog_new_with_buttons, gtk_dialog_run): Keep gtk-doc from messing up the indentation of inline examples. * gtk/gtkmain.c, gtk/gtkrc.c: Consistently call g_getenv() instead of getenv(). * gtk/gtktreemodel.c, gtk/gtkaccelgroup.c, gtk/gtkclipboard.c, gtk/gtkdnd.c, gtk/gtkiconfactory.c, gtk/gtkrc.c, gtk/gtkstyle.c, gtk/gtkselection.c: Doc fixes. * gtk/gtkaccelmap.c (gtk_accel_map_add_filter, gtk_accel_map_foreach_unfiltered, gtk_accel_map_load_scanner): Document. * gtk/tmpl/gtksocket.sgml: Mention gtk_socket_get_id() instead of GTK_WINDOW_XWINDOW(). (#68172) * gtk/gtk-sections.txt: Move functions which are documented as "private" or "internal" into Private subsections. * gtk/tmpl/gtkdnd.sgml, gtk/tmpl/gtkobject.sgml, gtk/tmpl/gtkrc.sgml, gtk/tmpl/gtktooltips.sgml, gtk/tmpl/gtkwidget.sgml, gtk/tmpl/gtkclipboard.sgml, gtk/tmpl/gtkstyle.sgml, gtk/tmpl/gtkselection.sgml, gtk/tmpl/gtkfeatures.sgml: Minor markup fixes. * gtk/tmpl/gtksignal.sgml: Add link to GLib signal docs. * gtk/tmpl/gtkpreview.sgml, gtk/tmpl/gtktext.sgml, gtk/tmpl/gtktree.sgml: Remove "deprecated" from short desc. * gtk/tmpl/gtkrc.sgml: Correct names of default RC files.
2002-01-08 00:04:57 +00:00
The #GtkDestDefaults enumeration specifies the various
1999-08-16 18:51:52 +00:00
types of action that will be taken on behalf
of the user for a drag destination site.
</para>
@GTK_DEST_DEFAULT_MOTION:
1999-08-16 18:51:52 +00:00
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.
@GTK_DEST_DEFAULT_HIGHLIGHT:
1999-08-16 18:51:52 +00:00
If set for a widget, GTK+ will draw a highlight on
this widget as long as a drag is over this widget
Doc typo fix. (#68172) * gtk/gtksocket.c (gtk_socket_get_id): Doc typo fix. (#68172) * gtk/gtktreemodel.c (gtk_tree_path_is_descendant): Fix docs. * gtk/gtktreemodel.c (gtk_tree_model_rows_reordered): Document. * gtk/gtkwindow.c (gtk_window_remove_accel_group): Fix docs. * gtk/gtkrc.c (gtk_rc_get_style_by_paths), gtk/gtkwidget.c (gtk_widget_get_toplevel, gtk_widget_push_composite_child), gtk/gtkdialog.c (gtk_dialog_new_with_buttons, gtk_dialog_run): Keep gtk-doc from messing up the indentation of inline examples. * gtk/gtkmain.c, gtk/gtkrc.c: Consistently call g_getenv() instead of getenv(). * gtk/gtktreemodel.c, gtk/gtkaccelgroup.c, gtk/gtkclipboard.c, gtk/gtkdnd.c, gtk/gtkiconfactory.c, gtk/gtkrc.c, gtk/gtkstyle.c, gtk/gtkselection.c: Doc fixes. * gtk/gtkaccelmap.c (gtk_accel_map_add_filter, gtk_accel_map_foreach_unfiltered, gtk_accel_map_load_scanner): Document. * gtk/tmpl/gtksocket.sgml: Mention gtk_socket_get_id() instead of GTK_WINDOW_XWINDOW(). (#68172) * gtk/gtk-sections.txt: Move functions which are documented as "private" or "internal" into Private subsections. * gtk/tmpl/gtkdnd.sgml, gtk/tmpl/gtkobject.sgml, gtk/tmpl/gtkrc.sgml, gtk/tmpl/gtktooltips.sgml, gtk/tmpl/gtkwidget.sgml, gtk/tmpl/gtkclipboard.sgml, gtk/tmpl/gtkstyle.sgml, gtk/tmpl/gtkselection.sgml, gtk/tmpl/gtkfeatures.sgml: Minor markup fixes. * gtk/tmpl/gtksignal.sgml: Add link to GLib signal docs. * gtk/tmpl/gtkpreview.sgml, gtk/tmpl/gtktext.sgml, gtk/tmpl/gtktree.sgml: Remove "deprecated" from short desc. * gtk/tmpl/gtkrc.sgml: Correct names of default RC files.
2002-01-08 00:04:57 +00:00
and the widget drag format and action are acceptable.
@GTK_DEST_DEFAULT_DROP:
1999-08-16 18:51:52 +00:00
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 successful,
1999-08-16 18:51:52 +00:00
GTK+ will call gtk_drag_finish(). If the action
was a move, then if the drag was successful, then
1999-08-16 18:51:52 +00:00
%TRUE will be passed for the @delete parameter
to gtk_drag_finish().
@GTK_DEST_DEFAULT_ALL:
1999-08-16 18:51:52 +00:00
If set, specifies that all default actions should
be taken.
<!-- ##### ENUM GtkTargetFlags ##### -->
<para>
The #GtkTargetFlags enumeration is used to specify
constraints on an entry in a #GtkTargetTable.
</para>
Doc typo fix. (#68172) * gtk/gtksocket.c (gtk_socket_get_id): Doc typo fix. (#68172) * gtk/gtktreemodel.c (gtk_tree_path_is_descendant): Fix docs. * gtk/gtktreemodel.c (gtk_tree_model_rows_reordered): Document. * gtk/gtkwindow.c (gtk_window_remove_accel_group): Fix docs. * gtk/gtkrc.c (gtk_rc_get_style_by_paths), gtk/gtkwidget.c (gtk_widget_get_toplevel, gtk_widget_push_composite_child), gtk/gtkdialog.c (gtk_dialog_new_with_buttons, gtk_dialog_run): Keep gtk-doc from messing up the indentation of inline examples. * gtk/gtkmain.c, gtk/gtkrc.c: Consistently call g_getenv() instead of getenv(). * gtk/gtktreemodel.c, gtk/gtkaccelgroup.c, gtk/gtkclipboard.c, gtk/gtkdnd.c, gtk/gtkiconfactory.c, gtk/gtkrc.c, gtk/gtkstyle.c, gtk/gtkselection.c: Doc fixes. * gtk/gtkaccelmap.c (gtk_accel_map_add_filter, gtk_accel_map_foreach_unfiltered, gtk_accel_map_load_scanner): Document. * gtk/tmpl/gtksocket.sgml: Mention gtk_socket_get_id() instead of GTK_WINDOW_XWINDOW(). (#68172) * gtk/gtk-sections.txt: Move functions which are documented as "private" or "internal" into Private subsections. * gtk/tmpl/gtkdnd.sgml, gtk/tmpl/gtkobject.sgml, gtk/tmpl/gtkrc.sgml, gtk/tmpl/gtktooltips.sgml, gtk/tmpl/gtkwidget.sgml, gtk/tmpl/gtkclipboard.sgml, gtk/tmpl/gtkstyle.sgml, gtk/tmpl/gtkselection.sgml, gtk/tmpl/gtkfeatures.sgml: Minor markup fixes. * gtk/tmpl/gtksignal.sgml: Add link to GLib signal docs. * gtk/tmpl/gtkpreview.sgml, gtk/tmpl/gtktext.sgml, gtk/tmpl/gtktree.sgml: Remove "deprecated" from short desc. * gtk/tmpl/gtkrc.sgml: Correct names of default RC files.
2002-01-08 00:04:57 +00:00
@GTK_TARGET_SAME_APP:
1999-08-16 18:51:52 +00:00
If this is set, the target will only be selected
for drags within a single application.
Doc typo fix. (#68172) * gtk/gtksocket.c (gtk_socket_get_id): Doc typo fix. (#68172) * gtk/gtktreemodel.c (gtk_tree_path_is_descendant): Fix docs. * gtk/gtktreemodel.c (gtk_tree_model_rows_reordered): Document. * gtk/gtkwindow.c (gtk_window_remove_accel_group): Fix docs. * gtk/gtkrc.c (gtk_rc_get_style_by_paths), gtk/gtkwidget.c (gtk_widget_get_toplevel, gtk_widget_push_composite_child), gtk/gtkdialog.c (gtk_dialog_new_with_buttons, gtk_dialog_run): Keep gtk-doc from messing up the indentation of inline examples. * gtk/gtkmain.c, gtk/gtkrc.c: Consistently call g_getenv() instead of getenv(). * gtk/gtktreemodel.c, gtk/gtkaccelgroup.c, gtk/gtkclipboard.c, gtk/gtkdnd.c, gtk/gtkiconfactory.c, gtk/gtkrc.c, gtk/gtkstyle.c, gtk/gtkselection.c: Doc fixes. * gtk/gtkaccelmap.c (gtk_accel_map_add_filter, gtk_accel_map_foreach_unfiltered, gtk_accel_map_load_scanner): Document. * gtk/tmpl/gtksocket.sgml: Mention gtk_socket_get_id() instead of GTK_WINDOW_XWINDOW(). (#68172) * gtk/gtk-sections.txt: Move functions which are documented as "private" or "internal" into Private subsections. * gtk/tmpl/gtkdnd.sgml, gtk/tmpl/gtkobject.sgml, gtk/tmpl/gtkrc.sgml, gtk/tmpl/gtktooltips.sgml, gtk/tmpl/gtkwidget.sgml, gtk/tmpl/gtkclipboard.sgml, gtk/tmpl/gtkstyle.sgml, gtk/tmpl/gtkselection.sgml, gtk/tmpl/gtkfeatures.sgml: Minor markup fixes. * gtk/tmpl/gtksignal.sgml: Add link to GLib signal docs. * gtk/tmpl/gtkpreview.sgml, gtk/tmpl/gtktext.sgml, gtk/tmpl/gtktree.sgml: Remove "deprecated" from short desc. * gtk/tmpl/gtkrc.sgml: Correct names of default RC files.
2002-01-08 00:04:57 +00:00
@GTK_TARGET_SAME_WIDGET:
1999-08-16 18:51:52 +00:00
If this is set, the target will only be selected
for drags within a single widget.
@GTK_TARGET_SAME_WIDGET:
1999-08-16 18:51:52 +00:00
<!-- ##### FUNCTION gtk_drag_dest_set ##### -->
<para>
Sets a widget as a potential drop destination.
1999-08-16 18:51:52 +00:00
</para>
@widget: a #GtkWidget
1999-08-16 18:51:52 +00:00
@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<!-- -->s indicating
1999-08-16 18:51:52 +00:00
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>
Sets this widget as a proxy for drops to another window.
1999-08-16 18:51:52 +00:00
</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 an embedded
1999-08-16 18:51:52 +00:00
subwindow.
<!-- ##### FUNCTION gtk_drag_dest_unset ##### -->
<para>
Clears information about a drop destination set with
1999-08-16 18:51:52 +00:00
gtk_drag_dest_set(). The widget will no longer receive
notification of drags.
</para>
@widget: a #GtkWidget
<!-- ##### FUNCTION gtk_drag_dest_find_target ##### -->
<para>
</para>
@widget:
@context:
@target_list:
@Returns:
<!-- ##### FUNCTION gtk_drag_dest_get_target_list ##### -->
<para>
</para>
@widget:
@Returns:
<!-- ##### FUNCTION gtk_drag_dest_set_target_list ##### -->
<para>
</para>
@widget:
@target_list:
1999-08-16 18:51:52 +00:00
<!-- ##### FUNCTION gtk_drag_finish ##### -->
<para>
Informs the drag source that the drop is finished, and
1999-08-16 18:51:52 +00:00
that the data of the drag will no longer be required.
</para>
@context: the drag context.
@success: a flag indicating whether the drop was successful
1999-08-16 18:51:52 +00:00
@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>
Doc typo fix. (#68172) * gtk/gtksocket.c (gtk_socket_get_id): Doc typo fix. (#68172) * gtk/gtktreemodel.c (gtk_tree_path_is_descendant): Fix docs. * gtk/gtktreemodel.c (gtk_tree_model_rows_reordered): Document. * gtk/gtkwindow.c (gtk_window_remove_accel_group): Fix docs. * gtk/gtkrc.c (gtk_rc_get_style_by_paths), gtk/gtkwidget.c (gtk_widget_get_toplevel, gtk_widget_push_composite_child), gtk/gtkdialog.c (gtk_dialog_new_with_buttons, gtk_dialog_run): Keep gtk-doc from messing up the indentation of inline examples. * gtk/gtkmain.c, gtk/gtkrc.c: Consistently call g_getenv() instead of getenv(). * gtk/gtktreemodel.c, gtk/gtkaccelgroup.c, gtk/gtkclipboard.c, gtk/gtkdnd.c, gtk/gtkiconfactory.c, gtk/gtkrc.c, gtk/gtkstyle.c, gtk/gtkselection.c: Doc fixes. * gtk/gtkaccelmap.c (gtk_accel_map_add_filter, gtk_accel_map_foreach_unfiltered, gtk_accel_map_load_scanner): Document. * gtk/tmpl/gtksocket.sgml: Mention gtk_socket_get_id() instead of GTK_WINDOW_XWINDOW(). (#68172) * gtk/gtk-sections.txt: Move functions which are documented as "private" or "internal" into Private subsections. * gtk/tmpl/gtkdnd.sgml, gtk/tmpl/gtkobject.sgml, gtk/tmpl/gtkrc.sgml, gtk/tmpl/gtktooltips.sgml, gtk/tmpl/gtkwidget.sgml, gtk/tmpl/gtkclipboard.sgml, gtk/tmpl/gtkstyle.sgml, gtk/tmpl/gtkselection.sgml, gtk/tmpl/gtkfeatures.sgml: Minor markup fixes. * gtk/tmpl/gtksignal.sgml: Add link to GLib signal docs. * gtk/tmpl/gtkpreview.sgml, gtk/tmpl/gtktext.sgml, gtk/tmpl/gtktree.sgml: Remove "deprecated" from short desc. * gtk/tmpl/gtkrc.sgml: Correct names of default RC files.
2002-01-08 00:04:57 +00:00
Gets the data associated with a drag. When the data
1999-08-16 18:51:52 +00:00
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>
Determines the source widget for a drag.
1999-08-16 18:51:52 +00:00
</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.
1999-08-16 18:51:52 +00:00
<!-- ##### FUNCTION gtk_drag_highlight ##### -->
<para>
Draws a highlight around a widget. This will attach
1999-08-16 18:51:52 +00:00
handlers to "expose_event" and "draw", so the highlight
will continue to be displayed until gtk_drag_unhighlight()
1999-08-16 18:51:52 +00:00
is called.
</para>
@widget: a widget to highlight
<!-- ##### FUNCTION gtk_drag_unhighlight ##### -->
<para>
Removes a highlight set by gtk_drag_highlight() from
1999-08-16 18:51:52 +00:00
a widget.
</para>
@widget: a widget to remove the highlight from.
<!-- ##### FUNCTION gtk_drag_begin ##### -->
<para>
Initiates a drag on the source side. The function
1999-08-16 18:51:52 +00:00
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.
1999-08-16 18:51:52 +00:00
@Returns: The context for this drag.
<!-- ##### FUNCTION gtk_drag_set_icon_widget ##### -->
<para>
</para>
@context:
@widget:
@hot_x:
@hot_y:
1999-08-16 18:51:52 +00:00
<!-- ##### FUNCTION gtk_drag_set_icon_pixmap ##### -->
<para>
</para>
@context:
@colormap:
@pixmap:
@mask:
@hot_x:
@hot_y:
1999-08-16 18:51:52 +00:00
<!-- ##### FUNCTION gtk_drag_set_icon_pixbuf ##### -->
<para>
</para>
@context:
@pixbuf:
@hot_x:
@hot_y:
<!-- ##### FUNCTION gtk_drag_set_icon_stock ##### -->
<para>
</para>
@context:
@stock_id:
@hot_x:
@hot_y:
1999-08-16 18:51:52 +00:00
<!-- ##### FUNCTION gtk_drag_set_icon_default ##### -->
<para>
</para>
@context:
1999-08-16 18:51:52 +00:00
<!-- ##### FUNCTION gtk_drag_set_default_icon ##### -->
<para>
1999-08-16 18:51:52 +00:00
</para>
@colormap:
@pixmap:
@mask:
@hot_x:
@hot_y:
1999-08-16 18:51:52 +00:00
<!-- ##### FUNCTION gtk_drag_check_threshold ##### -->
<para>
</para>
@widget:
@start_x:
@start_y:
@current_x:
@current_y:
@Returns:
1999-08-16 18:51:52 +00:00
<!-- ##### 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>
</para>
@widget:
@colormap:
@pixmap:
@mask:
1999-08-16 18:51:52 +00:00
<!-- ##### FUNCTION gtk_drag_source_set_icon_pixbuf ##### -->
<para>
</para>
@widget:
@pixbuf:
<!-- ##### FUNCTION gtk_drag_source_set_icon_stock ##### -->
<para>
</para>
@widget:
@stock_id:
1999-08-16 18:51:52 +00:00
<!-- ##### FUNCTION gtk_drag_source_unset ##### -->
<para>
Undoes the effects of gtk_drag_source_set().
1999-08-16 18:51:52 +00:00
</para>
@widget: a #GtkWidget