]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktreednd.h
Some more documentation fixes
[~andy/gtk] / gtk / gtktreednd.h
index 1257ed25f667ce3f619433bf6bf99fe20b7c6ac7..934d003a6432393984c9924aebe7d1d924b77d0b 100644 (file)
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __GTK_TREE_DND_H__
 #define __GTK_TREE_DND_H__
 
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #include <gtk/gtktreemodel.h>
 #include <gtk/gtkdnd.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
 #define GTK_TYPE_TREE_DRAG_SOURCE            (gtk_tree_drag_source_get_type ())
 #define GTK_TREE_DRAG_SOURCE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_DRAG_SOURCE, GtkTreeDragSource))
 #define GTK_IS_TREE_DRAG_SOURCE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_DRAG_SOURCE))
-#define GTK_TREE_DRAG_SOURCE_GET_IFACE(obj)  ((GtkTreeDragSourceIface *)g_type_interface_peek (((GTypeInstance *)GTK_TREE_DRAG_SOURCE (obj))->g_class, GTK_TYPE_TREE_DRAG_SOURCE))
+#define GTK_TREE_DRAG_SOURCE_GET_IFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_TREE_DRAG_SOURCE, GtkTreeDragSourceIface))
 
 typedef struct _GtkTreeDragSource      GtkTreeDragSource; /* Dummy typedef */
 typedef struct _GtkTreeDragSourceIface GtkTreeDragSourceIface;
@@ -41,16 +41,23 @@ struct _GtkTreeDragSourceIface
 
   /* VTable - not signals */
 
-  gboolean     (* drag_data_get)        (GtkTreeDragSource   *dragsource,
+  gboolean     (* row_draggable)        (GtkTreeDragSource   *drag_source,
+                                         GtkTreePath         *path);
+
+  gboolean     (* drag_data_get)        (GtkTreeDragSource   *drag_source,
                                          GtkTreePath         *path,
                                          GtkSelectionData    *selection_data);
 
-  gboolean     (* drag_data_delete)     (GtkTreeDragSource *dragsource,
+  gboolean     (* drag_data_delete)     (GtkTreeDragSource *drag_source,
                                          GtkTreePath       *path);
 };
 
 GType           gtk_tree_drag_source_get_type   (void) G_GNUC_CONST;
 
+/* Returns whether the given row can be dragged */
+gboolean gtk_tree_drag_source_row_draggable    (GtkTreeDragSource *drag_source,
+                                                GtkTreePath       *path);
+
 /* Deletes the given row, or returns FALSE if it can't */
 gboolean gtk_tree_drag_source_drag_data_delete (GtkTreeDragSource *drag_source,
                                                 GtkTreePath       *path);
@@ -65,7 +72,7 @@ gboolean gtk_tree_drag_source_drag_data_get    (GtkTreeDragSource *drag_source,
 #define GTK_TYPE_TREE_DRAG_DEST            (gtk_tree_drag_dest_get_type ())
 #define GTK_TREE_DRAG_DEST(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_DRAG_DEST, GtkTreeDragDest))
 #define GTK_IS_TREE_DRAG_DEST(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_DRAG_DEST))
-#define GTK_TREE_DRAG_DEST_GET_IFACE(obj)  ((GtkTreeDragDestIface *)g_type_interface_peek (((GTypeInstance *)GTK_TREE_DRAG_DEST (obj))->g_class, GTK_TYPE_TREE_DRAG_DEST))
+#define GTK_TREE_DRAG_DEST_GET_IFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_TREE_DRAG_DEST, GtkTreeDragDestIface))
 
 typedef struct _GtkTreeDragDest      GtkTreeDragDest; /* Dummy typedef */
 typedef struct _GtkTreeDragDestIface GtkTreeDragDestIface;
@@ -76,10 +83,13 @@ struct _GtkTreeDragDestIface
 
   /* VTable - not signals */
 
-  gboolean     (* drag_data_received) (GtkTreeDragDest   *dragdest,
+  gboolean     (* drag_data_received) (GtkTreeDragDest   *drag_dest,
                                        GtkTreePath       *dest,
                                        GtkSelectionData  *selection_data);
 
+  gboolean     (* row_drop_possible)  (GtkTreeDragDest   *drag_dest,
+                                       GtkTreePath       *dest_path,
+                                      GtkSelectionData  *selection_data);
 };
 
 GType           gtk_tree_drag_dest_get_type   (void) G_GNUC_CONST;
@@ -87,23 +97,27 @@ GType           gtk_tree_drag_dest_get_type   (void) G_GNUC_CONST;
 /* Inserts a row before dest which contains data in selection_data,
  * or returns FALSE if it can't
  */
-gboolean gtk_tree_drag_dest_drag_data_received (GtkTreeDragDest  *drag_dest,
-                                                GtkTreePath      *dest,
-                                                GtkSelectionData *selection_data);
+gboolean gtk_tree_drag_dest_drag_data_received (GtkTreeDragDest   *drag_dest,
+                                               GtkTreePath       *dest,
+                                               GtkSelectionData  *selection_data);
+
+
+/* Returns TRUE if we can drop before path; path may not exist. */
+gboolean gtk_tree_drag_dest_row_drop_possible  (GtkTreeDragDest   *drag_dest,
+                                               GtkTreePath       *dest_path,
+                                               GtkSelectionData  *selection_data);
+
 
 /* The selection data would normally have target type GTK_TREE_MODEL_ROW in this
  * case. If the target is wrong these functions return FALSE.
  */
-gboolean gtk_selection_data_set_tree_row     (GtkSelectionData         *selection_data,
-                                              GtkTreeModel             *tree_model,
-                                              GtkTreePath              *path);
-gboolean gtk_selection_data_get_tree_row     (GtkSelectionData         *selection_data,
-                                              GtkTreeModel           **tree_model,
-                                              GtkTreePath             **path);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
+gboolean gtk_tree_set_row_drag_data            (GtkSelectionData  *selection_data,
+                                               GtkTreeModel      *tree_model,
+                                               GtkTreePath       *path);
+gboolean gtk_tree_get_row_drag_data            (GtkSelectionData  *selection_data,
+                                               GtkTreeModel     **tree_model,
+                                               GtkTreePath      **path);
+
+G_END_DECLS
 
 #endif /* __GTK_TREE_DND_H__ */