Ardour  9.0-pre0-582-g084a23a80d
gtktreednd.h
Go to the documentation of this file.
1 /* gtktreednd.h
2  * Copyright (C) 2001 Red Hat, Inc.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */
19 
20 #ifndef __GTK_TREE_DND_H__
21 #define __GTK_TREE_DND_H__
22 
23 #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
24 #error "Only <gtk/gtk.h> can be included directly."
25 #endif
26 
27 #include <gtk/gtktreemodel.h>
28 #include <gtk/gtkdnd.h>
29 
30 G_BEGIN_DECLS
31 
32 #define GTK_TYPE_TREE_DRAG_SOURCE (gtk_tree_drag_source_get_type ())
33 #define GTK_TREE_DRAG_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_DRAG_SOURCE, GtkTreeDragSource))
34 #define GTK_IS_TREE_DRAG_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_DRAG_SOURCE))
35 #define GTK_TREE_DRAG_SOURCE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_TREE_DRAG_SOURCE, GtkTreeDragSourceIface))
36 
37 typedef struct _GtkTreeDragSource GtkTreeDragSource; /* Dummy typedef */
39 
41 {
42  GTypeInterface g_iface;
43 
44  /* VTable - not signals */
45 
46  gboolean (* row_draggable) (GtkTreeDragSource *drag_source,
47  GtkTreePath *path);
48 
49  gboolean (* drag_data_get) (GtkTreeDragSource *drag_source,
50  GtkTreePath *path,
51  GtkSelectionData *selection_data);
52 
53  gboolean (* drag_data_delete) (GtkTreeDragSource *drag_source,
54  GtkTreePath *path);
55 };
56 
57 GType gtk_tree_drag_source_get_type (void) G_GNUC_CONST;
58 
59 /* Returns whether the given row can be dragged */
61  GtkTreePath *path);
62 
63 /* Deletes the given row, or returns FALSE if it can't */
65  GtkTreePath *path);
66 
67 /* Fills in selection_data with type selection_data->target based on
68  * the row denoted by path, returns TRUE if it does anything
69  */
71  GtkTreePath *path,
72  GtkSelectionData *selection_data);
73 
74 #define GTK_TYPE_TREE_DRAG_DEST (gtk_tree_drag_dest_get_type ())
75 #define GTK_TREE_DRAG_DEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_DRAG_DEST, GtkTreeDragDest))
76 #define GTK_IS_TREE_DRAG_DEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_DRAG_DEST))
77 #define GTK_TREE_DRAG_DEST_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_TREE_DRAG_DEST, GtkTreeDragDestIface))
78 
79 typedef struct _GtkTreeDragDest GtkTreeDragDest; /* Dummy typedef */
81 
83 {
84  GTypeInterface g_iface;
85 
86  /* VTable - not signals */
87 
88  gboolean (* drag_data_received) (GtkTreeDragDest *drag_dest,
89  GtkTreePath *dest,
90  GtkSelectionData *selection_data);
91 
92  gboolean (* row_drop_possible) (GtkTreeDragDest *drag_dest,
93  GtkTreePath *dest_path,
94  GtkSelectionData *selection_data);
95 };
96 
97 GType gtk_tree_drag_dest_get_type (void) G_GNUC_CONST;
98 
99 /* Inserts a row before dest which contains data in selection_data,
100  * or returns FALSE if it can't
101  */
103  GtkTreePath *dest,
104  GtkSelectionData *selection_data);
105 
106 
107 /* Returns TRUE if we can drop before path; path may not exist. */
109  GtkTreePath *dest_path,
110  GtkSelectionData *selection_data);
111 
112 
113 /* The selection data would normally have target type GTK_TREE_MODEL_ROW in this
114  * case. If the target is wrong these functions return FALSE.
115  */
117  GtkTreeModel *tree_model,
118  GtkTreePath *path);
120  GtkTreeModel **tree_model,
121  GtkTreePath **path);
122 
123 G_END_DECLS
124 
125 #endif /* __GTK_TREE_DND_H__ */
GType gtk_tree_drag_dest_get_type(void) G_GNUC_CONST
struct _GtkTreeDragSource GtkTreeDragSource
Definition: gtktreednd.h:37
gboolean gtk_tree_drag_dest_row_drop_possible(GtkTreeDragDest *drag_dest, GtkTreePath *dest_path, GtkSelectionData *selection_data)
gboolean gtk_tree_get_row_drag_data(GtkSelectionData *selection_data, GtkTreeModel **tree_model, GtkTreePath **path)
gboolean gtk_tree_set_row_drag_data(GtkSelectionData *selection_data, GtkTreeModel *tree_model, GtkTreePath *path)
gboolean gtk_tree_drag_dest_drag_data_received(GtkTreeDragDest *drag_dest, GtkTreePath *dest, GtkSelectionData *selection_data)
gboolean gtk_tree_drag_source_drag_data_get(GtkTreeDragSource *drag_source, GtkTreePath *path, GtkSelectionData *selection_data)
GType gtk_tree_drag_source_get_type(void) G_GNUC_CONST
gboolean gtk_tree_drag_source_row_draggable(GtkTreeDragSource *drag_source, GtkTreePath *path)
gboolean gtk_tree_drag_source_drag_data_delete(GtkTreeDragSource *drag_source, GtkTreePath *path)
struct _GtkTreeDragDest GtkTreeDragDest
Definition: gtktreednd.h:79
struct _GtkTreePath GtkTreePath
Definition: gtktreemodel.h:44
struct _GtkTreeModel GtkTreeModel
Definition: gtktreemodel.h:46
GTypeInterface g_iface
Definition: gtktreednd.h:84
gboolean(* drag_data_received)(GtkTreeDragDest *drag_dest, GtkTreePath *dest, GtkSelectionData *selection_data)
Definition: gtktreednd.h:88
gboolean(* row_drop_possible)(GtkTreeDragDest *drag_dest, GtkTreePath *dest_path, GtkSelectionData *selection_data)
Definition: gtktreednd.h:92
gboolean(* row_draggable)(GtkTreeDragSource *drag_source, GtkTreePath *path)
Definition: gtktreednd.h:46
gboolean(* drag_data_get)(GtkTreeDragSource *drag_source, GtkTreePath *path, GtkSelectionData *selection_data)
Definition: gtktreednd.h:49
GTypeInterface g_iface
Definition: gtktreednd.h:42
gboolean(* drag_data_delete)(GtkTreeDragSource *drag_source, GtkTreePath *path)
Definition: gtktreednd.h:53