[gtk+] Move documentation to inline comments: GtkDnd
- From: Javier Jardón <jjardon src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Move documentation to inline comments: GtkDnd
- Date: Mon, 18 Apr 2011 01:43:11 +0000 (UTC)
commit f7b7e8a6b833f8a8ff5aa39f49ef75c71de887ec
Author: Javier Jardón <jjardon gnome org>
Date: Mon Apr 18 01:10:14 2011 +0100
Move documentation to inline comments: GtkDnd
docs/reference/gtk/tmpl/.gitignore | 1 +
docs/reference/gtk/tmpl/gtkdnd.sgml | 424 -----------------------------------
gtk/gtkdnd.c | 148 ++++++++-----
gtk/gtkdnd.h | 36 +++-
4 files changed, 129 insertions(+), 480 deletions(-)
---
diff --git a/docs/reference/gtk/tmpl/.gitignore b/docs/reference/gtk/tmpl/.gitignore
index 8a3a384..139e198 100644
--- a/docs/reference/gtk/tmpl/.gitignore
+++ b/docs/reference/gtk/tmpl/.gitignore
@@ -29,6 +29,7 @@ gtkcombobox.sgml
gtkcomboboxentry.sgml
gtkcontainer.sgml
gtkdialog.sgml
+gtkdnd.sgml
gtkdrawingarea.sgml
gtkeditable.sgml
gtkentry.sgml
diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c
index 8e4ffdd..3e960c9 100644
--- a/gtk/gtkdnd.c
+++ b/gtk/gtkdnd.c
@@ -52,6 +52,26 @@
#include "gtkdndcursors.h"
#include "gtkselectionprivate.h"
+
+/**
+ * SECTION:gtkdnd
+ * @Short_description: Functions for controlling drag and drop handling
+ * @Title: Drag and Drop
+ *
+ * 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.
+ * 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.
+ */
+
+
static GSList *source_widgets = NULL;
typedef struct _GtkDragSourceSite GtkDragSourceSite;
@@ -958,13 +978,23 @@ gtk_drag_update_cursor (GtkDragSourceInfo *info)
********************/
/**
- * gtk_drag_get_data: (method)
- * @widget: a #GtkWidget
- * @context: drag context
- * @target: format to retrieve the data in.
- * @time_: timestamp of triggering event.
+ * gtk_drag_get_data:
+ * @widget: the widget that will receive the
+ * #GtkWidget::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 #GtkWidget::drag-motion"
+ * or #GtkWidget::drag-drop" signal.
*
- * Get the data for a drag or drop
+ * Gets the data associated with a drag. When the data
+ * is received or the retrieval fails, GTK+ will emit a
+ * #GtkWidget::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_DEST_DEFAULT_DROP was set,
+ * then the widget will not receive notification of failed
+ * drops.
*/
void
gtk_drag_get_data (GtkWidget *widget,
@@ -1030,17 +1060,17 @@ gtk_drag_get_source_widget (GdkDragContext *context)
return NULL;
}
-/*************************************************************
+/**
* gtk_drag_finish:
- * Notify the drag source that the transfer of data
- * is complete.
- * arguments:
- * context: The drag context for this drag
- * success: Was the data successfully transferred?
- * time: The timestamp to use when notifying the destination.
- * results:
- *************************************************************/
-
+ * @context: the drag context.
+ * @success: a flag indicating whether the drop was successful
+ * @del: a flag indicating whether the source should delete the
+ * original data. (This should be %TRUE for a move)
+ * @time_: the timestamp from the #GtkWidget::drag-drop signal.
+ *
+ * Informs the drag source that the drop is finished, and
+ * that the data of the drag will no longer be required.
+ */
void
gtk_drag_finish (GdkDragContext *context,
gboolean success,
@@ -1121,11 +1151,14 @@ gtk_drag_highlight_draw (GtkWidget *widget,
return FALSE;
}
- /**
- * gtk_drag_highlight: (method)
- * @widget: a #GtkWidget
+/**
+ * gtk_drag_highlight:
+ * @widget: a widget to highlight
*
- * Highlight the given widget in the default manner.
+ * Draws a highlight around a widget. This will attach
+ * handlers to #GtkWidget::draw, so the highlight
+ * will continue to be displayed until gtk_drag_unhighlight()
+ * is called.
*/
void
gtk_drag_highlight (GtkWidget *widget)
@@ -1139,11 +1172,12 @@ gtk_drag_highlight (GtkWidget *widget)
gtk_widget_queue_draw (widget);
}
- /**
- * gtk_drag_unhighlight: (method)
- * @widget: a #GtkWidget
+/**
+ * gtk_drag_unhighlight:
+ * @widget: a widget to remove the highlight from.
*
- * Refresh the given widget to remove the highlight.
+ * Removes a highlight set by gtk_drag_highlight() from
+ * a widget.
*/
void
gtk_drag_unhighlight (GtkWidget *widget)
@@ -1206,22 +1240,22 @@ gtk_drag_dest_set_internal (GtkWidget *widget,
*
* The default behaviors listed in @flags have an effect similar
* to installing default handlers for the widget's drag-and-drop signals
- * (#GtkWidget:drag-motion, #GtkWidget:drag-drop, ...). They all exist
+ * (#GtkWidget::drag-motion, #GtkWidget::drag-drop, ...). They all exist
* for convenience. When passing #GTK_DEST_DEFAULT_ALL for instance it is
* sufficient to connect to the widget's #GtkWidget::drag-data-received
* signal to get primitive, but consistent drag-and-drop support.
*
* Things become more complicated when you try to preview the dragged data,
- * as described in the documentation for #GtkWidget:drag-motion. The default
+ * as described in the documentation for #GtkWidget::drag-motion. The default
* behaviors described by @flags make some assumptions, that can conflict
* with your own signal handlers. For instance #GTK_DEST_DEFAULT_DROP causes
- * invokations of gdk_drag_status() in the context of #GtkWidget:drag-motion,
- * and invokations of gtk_drag_finish() in #GtkWidget:drag-data-received.
- * Especially the later is dramatic, when your own #GtkWidget:drag-motion
+ * invokations of gdk_drag_status() in the context of #GtkWidget::drag-motion,
+ * and invokations of gtk_drag_finish() in #GtkWidget::drag-data-received.
+ * Especially the later is dramatic, when your own #GtkWidget::drag-motion
* handler calls gtk_drag_get_data() to inspect the dragged data.
*
* There's no way to set a default action here, you can use the
- * #GtkWidget:drag-motion callback for that. Here's an example which selects
+ * #GtkWidget::drag-motion callback for that. Here's an example which selects
* the action to use depending on whether the control key is pressed or not:
* |[
* static void
@@ -1270,15 +1304,16 @@ gtk_drag_dest_set (GtkWidget *widget,
}
/**
- * gtk_drag_dest_set_proxy: (method)
+ * gtk_drag_dest_set_proxy:
* @widget: a #GtkWidget
- * @proxy_window: window to which forward drag events
- * @protocol: Drag protocol which the dest widget accepts
- * @use_coordinates: If true, send the same coordinates to the
- * destination, because it is a embedded
- * subwindow.
+ * @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
+ * subwindow.
*
- * Set up this widget to proxy drags elsewhere.
+ * Sets this widget as a proxy for drops to another window.
*/
void
gtk_drag_dest_set_proxy (GtkWidget *widget,
@@ -1308,11 +1343,13 @@ gtk_drag_dest_set_proxy (GtkWidget *widget,
gtk_drag_dest_set_internal (widget, site);
}
- /**
- * gtk_drag_dest_unset: (method)
+/**
+ * gtk_drag_dest_unset:
* @widget: a #GtkWidget
*
- * Unregister this widget as a drag target.
+ * Clears information about a drop destination set with
+ * gtk_drag_dest_set(). The widget will no longer receive
+ * notification of drags.
*/
void
gtk_drag_dest_unset (GtkWidget *widget)
@@ -1477,10 +1514,10 @@ gtk_drag_dest_add_uri_targets (GtkWidget *widget)
* gtk_drag_dest_set_track_motion: (method)
* @widget: a #GtkWidget that's a drag destination
* @track_motion: whether to accept all targets
- *
- * Tells the widget to emit ::drag-motion and ::drag-leave
- * events regardless of the targets and the %GTK_DEST_DEFAULT_MOTION
- * flag.
+ *
+ * Tells the widget to emit #GtkWidget::drag-motion and
+ * #GtkWidget::drag-leave events regardless of the targets and the
+ * %GTK_DEST_DEFAULT_MOTION flag.
*
* This may be used when a widget wants to do generic
* actions regardless of the targets that the source offers.
@@ -1505,11 +1542,12 @@ gtk_drag_dest_set_track_motion (GtkWidget *widget,
/**
* gtk_drag_dest_get_track_motion: (method)
* @widget: a #GtkWidget that's a drag destination
- *
+ *
* Returns whether the widget has been configured to always
- * emit ::drag-motion signals.
- *
- * Return Value: %TRUE if the widget always emits ::drag-motion events
+ * emit #GtkWidget::drag-motion signals.
+ *
+ * Return Value: %TRUE if the widget always emits
+ * #GtkWidget::drag-motion events
*
* Since: 2.10
**/
@@ -2513,18 +2551,18 @@ gtk_drag_begin_internal (GtkWidget *widget,
* grab the pointer. If @event is #NULL, then GDK_CURRENT_TIME will be used.
* However, you should try to pass a real event in all cases, since that can be
* used by GTK+ to get information about the start position of the drag, for
- * example if the @event is a GDK_MOTION_NOTIFY.
+ * example if the @event is a %GDK_MOTION_NOTIFY.
*
* Generally there are three cases when you want to start a drag by hand by
* calling this function:
*
- * 1. During a button-press-event handler, if you want to start a drag
+ * 1. During a #GtkWidget::button-press-event handler, if you want to start a drag
* immediately when the user presses the mouse button. Pass the @event
- * that you have in your button-press-event handler.
+ * that you have in your #GtkWidget::button-press-event handler.
*
- * 2. During a motion-notify-event handler, if you want to start a drag
+ * 2. During a #GtkWidget::motion-notify-event handler, if you want to start a drag
* when the mouse moves past a certain threshold distance after a button-press.
- * Pass the @event that you have in your motion-notify-event handler.
+ * Pass the @event that you have in your #GtkWidget::motion-notify-event handler.
*
* 3. During a timeout handler, if you want to start a drag after the mouse
* button is held down for some time. Try to save the last event that you got
@@ -2613,10 +2651,10 @@ gtk_drag_source_set (GtkWidget *widget,
}
/**
- * gtk_drag_source_unset: (method)
+ * gtk_drag_source_unset:
* @widget: a #GtkWidget
*
- * Unregister this widget as a drag source.
+ * Undoes the effects of gtk_drag_source_set().
*/
void
gtk_drag_source_unset (GtkWidget *widget)
diff --git a/gtk/gtkdnd.h b/gtk/gtkdnd.h
index bb2336d..a2dcab6 100644
--- a/gtk/gtkdnd.h
+++ b/gtk/gtkdnd.h
@@ -39,6 +39,28 @@
G_BEGIN_DECLS
+/**
+ * GtkDestDefaults:
+ * @GTK_DEST_DEFAULT_MOTION: 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 gdk_drag_status() as appropriate.
+ * @GTK_DEST_DEFAULT_HIGHLIGHT: If set for a widget, GTK+ will draw a highlight on
+ * this widget as long as a drag is over this widget and the widget drag format
+ * and action are acceptable.
+ * @GTK_DEST_DEFAULT_DROP: 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_get_data() on behalf of the widget.
+ * Whether or not the drop is successful, GTK+ will call gtk_drag_finish(). If
+ * the action was a move, then if the drag was successful, then %TRUE will be
+ * passed for the @delete parameter to gtk_drag_finish().
+ * @GTK_DEST_DEFAULT_ALL: If set, specifies that all default actions should
+ * be taken.
+ *
+ * The #GtkDestDefaults enumeration specifies the various
+ * types of action that will be taken on behalf
+ * of the user for a drag destination site.
+ */
typedef enum {
GTK_DEST_DEFAULT_MOTION = 1 << 0, /* respond to "drag_motion" */
GTK_DEST_DEFAULT_HIGHLIGHT = 1 << 1, /* auto-highlight */
@@ -46,7 +68,19 @@ typedef enum {
GTK_DEST_DEFAULT_ALL = 0x07
} GtkDestDefaults;
-/* Flags for the GtkTargetEntry on the destination side
+/**
+ * GtkTargetFlags:
+ * @GTK_TARGET_SAME_APP: If this is set, the target will only be selected
+ * for drags within a single application.
+ * @GTK_TARGET_SAME_WIDGET: If this is set, the target will only be selected
+ * for drags within a single widget.
+ * @GTK_TARGET_OTHER_APP: If this is set, the target will not be selected
+ * for drags within a single application.
+ * @GTK_TARGET_OTHER_WIDGET: If this is set, the target will not be selected
+ * for drags withing a single widget.
+ *
+ * The #GtkTargetFlags enumeration is used to specify
+ * constraints on an entry in a #GtkTargetTable.
*/
typedef enum {
GTK_TARGET_SAME_APP = 1 << 0, /*< nick=same-app >*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]