summaryrefslogtreecommitdiff
path: root/docs/reference/gtk/tmpl/gtktreednd.sgml
blob: a45f8219ed6e339acc4b3fddf5344bf2ce5e18e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<!-- ##### SECTION Title ##### -->
GtkTreeView drag-and-drop

<!-- ##### SECTION Short_Description ##### -->
Interfaces for drag-and-drop support in GtkTreeView

<!-- ##### SECTION Long_Description ##### -->
<para>
GTK+ supports Drag-and-Drop in tree views with a high-level and a low-level 
API.
</para>
<para>
The low-level API consists of the GTK+ DND API, augmented by some treeview 
utility functions: gtk_tree_view_set_drag_dest_row(),
gtk_tree_view_get_drag_dest_row(), gtk_tree_view_get_dest_row_at_pos(), 
gtk_tree_view_create_row_drag_icon(), gtk_tree_set_row_drag_data() and
gtk_tree_get_row_drag_data(). This API leaves a lot of flexibility, but
nothing is done automatically, and implementing advanced features like
hover-to-open-rows or autoscrolling on top of this API is a lot of work.
</para>
<para>
On the other hand, if you write to the high-level API, then all the 
bookkeeping of rows is done for you, as well as things like hover-to-open 
and auto-scroll, but your models have to implement the 
#GtkTreeDragSource and #GtkTreeDragDest interfaces.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### SECTION Image ##### -->


<!-- ##### STRUCT GtkTreeDragSource ##### -->
<para>

</para>


<!-- ##### STRUCT GtkTreeDragSourceIface ##### -->
<para>

</para>

@g_iface: 
@row_draggable: 
@drag_data_get: 
@drag_data_delete: 

<!-- ##### FUNCTION gtk_tree_drag_source_drag_data_delete ##### -->
<para>

</para>

@drag_source: 
@path: 
@Returns: 


<!-- ##### FUNCTION gtk_tree_drag_source_drag_data_get ##### -->
<para>

</para>

@drag_source: 
@path: 
@selection_data: 
@Returns: 


<!-- ##### FUNCTION gtk_tree_drag_source_row_draggable ##### -->
<para>

</para>

@drag_source: 
@path: 
@Returns: 


<!-- ##### STRUCT GtkTreeDragDest ##### -->
<para>

</para>


<!-- ##### STRUCT GtkTreeDragDestIface ##### -->
<para>

</para>

@g_iface: 
@drag_data_received: 
@row_drop_possible: 

<!-- ##### FUNCTION gtk_tree_drag_dest_drag_data_received ##### -->
<para>

</para>

@drag_dest: 
@dest: 
@selection_data: 
@Returns: 


<!-- ##### FUNCTION gtk_tree_drag_dest_row_drop_possible ##### -->
<para>

</para>

@drag_dest: 
@dest_path: 
@selection_data: 
@Returns: 


<!-- ##### FUNCTION gtk_tree_set_row_drag_data ##### -->
<para>

</para>

@selection_data: 
@tree_model: 
@path: 
@Returns: 


<!-- ##### FUNCTION gtk_tree_get_row_drag_data ##### -->
<para>

</para>

@selection_data: 
@tree_model: 
@path: 
@Returns: