~ubuntu-branches/ubuntu/lucid/rhythmbox/lucid

« back to all changes in this revision

Viewing changes to doc/reference/xml/rb-tree-dnd.xml

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2010-03-29 10:12:48 UTC
  • mfrom: (1.1.45 upstream)
  • Revision ID: james.westby@ubuntu.com-20100329101248-fu29j0q1s2dx8k99
Tags: 0.12.8-0ubuntu1
* New upstream version
* debian/patches/90_autoreconf.patch:
  - new version update

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0"?>
2
 
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
3
 
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
4
 
<refentry id="rhythmbox-rb-tree-dnd">
5
 
<refmeta>
6
 
<refentrytitle role="top_of_page" id="rhythmbox-rb-tree-dnd.top_of_page">rb-tree-dnd</refentrytitle>
7
 
<manvolnum>3</manvolnum>
8
 
<refmiscinfo>RHYTHMBOX Library</refmiscinfo>
9
 
</refmeta>
10
 
 
11
 
<refnamediv>
12
 
<refname>rb-tree-dnd</refname>
13
 
<refpurpose>multi-row drag and drop support for GtkTreeViews</refpurpose>
14
 
</refnamediv>
15
 
 
16
 
<refsynopsisdiv id="rhythmbox-rb-tree-dnd.synopsis" role="synopsis">
17
 
<title role="synopsis.title">Synopsis</title>
18
 
<anchor id="RbTreeDragSource"/><anchor id="RbTreeDragDest"/>
19
 
<synopsis>
20
 
                    <link linkend="RbTreeDragSource-struct">RbTreeDragSource</link>;
21
 
                    <link linkend="RbTreeDragSourceIface">RbTreeDragSourceIface</link>;
22
 
                    <link linkend="RbTreeDragDest-struct">RbTreeDragDest</link>;
23
 
                    <link linkend="RbTreeDragDestIface">RbTreeDragDestIface</link>;
24
 
enum                <link linkend="RbTreeDestFlag">RbTreeDestFlag</link>;
25
 
<link linkend="gboolean">gboolean</link>            <link linkend="rb-tree-drag-source-row-draggable">rb_tree_drag_source_row_draggable</link>   (<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
26
 
                                                         <link linkend="GList">GList</link> *path_list);
27
 
<link linkend="gboolean">gboolean</link>            <link linkend="rb-tree-drag-source-drag-data-delete">rb_tree_drag_source_drag_data_delete</link>
28
 
                                                        (<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
29
 
                                                         <link linkend="GList">GList</link> *path_list);
30
 
<link linkend="gboolean">gboolean</link>            <link linkend="rb-tree-drag-source-drag-data-get">rb_tree_drag_source_drag_data_get</link>   (<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
31
 
                                                         <link linkend="GList">GList</link> *path_list,
32
 
                                                         <link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);
33
 
<link linkend="gboolean">gboolean</link>            <link linkend="rb-tree-drag-dest-drag-data-received">rb_tree_drag_dest_drag_data_received</link>
34
 
                                                        (<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
35
 
                                                         <link linkend="GtkTreePath">GtkTreePath</link> *dest,
36
 
                                                         <link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> pos,
37
 
                                                         <link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);
38
 
<link linkend="gboolean">gboolean</link>            <link linkend="rb-tree-drag-dest-row-drop-possible">rb_tree_drag_dest_row_drop_possible</link> (<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
39
 
                                                         <link linkend="GtkTreePath">GtkTreePath</link> *dest_path,
40
 
                                                         <link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> pos,
41
 
                                                         <link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);
42
 
<link linkend="gboolean">gboolean</link>            <link linkend="rb-tree-drag-dest-row-drop-position">rb_tree_drag_dest_row_drop_position</link> (<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
43
 
                                                         <link linkend="GtkTreePath">GtkTreePath</link> *dest_path,
44
 
                                                         <link linkend="GList">GList</link> *targets,
45
 
                                                         <link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> *pos);
46
 
<link linkend="void">void</link>                <link linkend="rb-tree-dnd-add-drag-dest-support">rb_tree_dnd_add_drag_dest_support</link>   (<link linkend="GtkTreeView">GtkTreeView</link> *tree_view,
47
 
                                                         <link linkend="RbTreeDestFlag">RbTreeDestFlag</link> flags,
48
 
                                                         const <link linkend="GtkTargetEntry">GtkTargetEntry</link> *targets,
49
 
                                                         <link linkend="gint">gint</link> n_targets,
50
 
                                                         <link linkend="GdkDragAction">GdkDragAction</link> actions);
51
 
<link linkend="void">void</link>                <link linkend="rb-tree-dnd-add-drag-source-support">rb_tree_dnd_add_drag_source_support</link> (<link linkend="GtkTreeView">GtkTreeView</link> *tree_view,
52
 
                                                         <link linkend="GdkModifierType">GdkModifierType</link> start_button_mask,
53
 
                                                         const <link linkend="GtkTargetEntry">GtkTargetEntry</link> *targets,
54
 
                                                         <link linkend="gint">gint</link> n_targets,
55
 
                                                         <link linkend="GdkDragAction">GdkDragAction</link> actions);
56
 
</synopsis>
57
 
</refsynopsisdiv>
58
 
 
59
 
<refsect1 id="rhythmbox-rb-tree-dnd.object-hierarchy" role="object_hierarchy">
60
 
<title role="object_hierarchy.title">Object Hierarchy</title>
61
 
<synopsis>
62
 
  <link linkend="GInterface">GInterface</link>
63
 
   +----RbTreeDragSource
64
 
</synopsis>
65
 
<synopsis>
66
 
  <link linkend="GInterface">GInterface</link>
67
 
   +----RbTreeDragDest
68
 
</synopsis>
69
 
</refsect1>
70
 
 
71
 
 
72
 
 
73
 
 
74
 
<refsect1 id="rhythmbox-rb-tree-dnd.implementations" role="implementations">
75
 
<title role="implementations.title">Known Implementations</title>
76
 
<para>
77
 
RbTreeDragSource is implemented by
78
 
 <link linkend="RhythmDBPropertyModel">RhythmDBPropertyModel</link>,  <link linkend="RhythmDBQueryModel">RhythmDBQueryModel</link> and  <link linkend="RBSourceListModel">RBSourceListModel</link>.</para>
79
 
<para>
80
 
RbTreeDragDest is implemented by
81
 
 <link linkend="RhythmDBQueryModel">RhythmDBQueryModel</link> and  <link linkend="RBSourceListModel">RBSourceListModel</link>.</para>
82
 
</refsect1>
83
 
 
84
 
 
85
 
 
86
 
 
87
 
<refsect1 id="rhythmbox-rb-tree-dnd.description" role="desc">
88
 
<title role="desc.title">Description</title>
89
 
<para>
90
 
Provides support for drag and drop operations to and from GtkTreeView
91
 
widgets that can include multiple rows.  The model backing the tree view
92
 
widgets must implement the <link linkend="RbTreeDragSource"><type>RbTreeDragSource</type></link> and <link linkend="RbTreeDragDest"><type>RbTreeDragDest</type></link> interfaces.</para>
93
 
<para>
94
 
</para>
95
 
</refsect1>
96
 
 
97
 
<refsect1 id="rhythmbox-rb-tree-dnd.details" role="details">
98
 
<title role="details.title">Details</title>
99
 
<refsect2 id="RbTreeDragSource-struct" role="struct">
100
 
<title>RbTreeDragSource</title>
101
 
<indexterm zone="RbTreeDragSource-struct"><primary sortas="RbTreeDragSource">RbTreeDragSource</primary></indexterm><programlisting>typedef struct _RbTreeDragSource RbTreeDragSource;</programlisting>
102
 
<para>
103
 
</para></refsect2>
104
 
<refsect2 id="RbTreeDragSourceIface" role="struct">
105
 
<title>RbTreeDragSourceIface</title>
106
 
<indexterm zone="RbTreeDragSourceIface"><primary sortas="RbTreeDragSourceIface">RbTreeDragSourceIface</primary></indexterm><programlisting>typedef struct {
107
 
        GTypeInterface g_iface;
108
 
 
109
 
        /* VTable - not signals */
110
 
        gboolean     (* rb_row_draggable)        (RbTreeDragSource   *drag_source,
111
 
                                      GList              *path_list);
112
 
 
113
 
        gboolean     (* rb_drag_data_get)        (RbTreeDragSource   *drag_source,
114
 
                                         GList              *path_list,
115
 
                                         GtkSelectionData   *selection_data);
116
 
 
117
 
        gboolean     (* rb_drag_data_delete)     (RbTreeDragSource *drag_source,
118
 
                                         GList            *path_list);
119
 
} RbTreeDragSourceIface;
120
 
</programlisting>
121
 
<para>
122
 
</para></refsect2>
123
 
<refsect2 id="RbTreeDragDest-struct" role="struct">
124
 
<title>RbTreeDragDest</title>
125
 
<indexterm zone="RbTreeDragDest-struct"><primary sortas="RbTreeDragDest">RbTreeDragDest</primary></indexterm><programlisting>typedef struct _RbTreeDragDest RbTreeDragDest;</programlisting>
126
 
<para>
127
 
</para></refsect2>
128
 
<refsect2 id="RbTreeDragDestIface" role="struct">
129
 
<title>RbTreeDragDestIface</title>
130
 
<indexterm zone="RbTreeDragDestIface"><primary sortas="RbTreeDragDestIface">RbTreeDragDestIface</primary></indexterm><programlisting>typedef struct {
131
 
        GTypeInterface g_iface;
132
 
 
133
 
        /* VTable - not signals */
134
 
 
135
 
        gboolean (* rb_drag_data_received) (RbTreeDragDest   *drag_dest,
136
 
                                         GtkTreePath       *dest,
137
 
                                         GtkTreeViewDropPosition pos,
138
 
                                         GtkSelectionData  *selection_data);
139
 
 
140
 
        gboolean (* rb_row_drop_possible)  (RbTreeDragDest   *drag_dest,
141
 
                                         GtkTreePath       *dest_path,
142
 
                                         GtkTreeViewDropPosition pos,
143
 
                                         GtkSelectionData  *selection_data);
144
 
 
145
 
        gboolean (* rb_row_drop_position) (RbTreeDragDest   *drag_dest,
146
 
                                        GtkTreePath       *dest_path,
147
 
                                        GList *targets,
148
 
                                        GtkTreeViewDropPosition *pos);
149
 
 
150
 
        /* optional */
151
 
        GdkAtom  (* rb_get_drag_target)    (RbTreeDragDest   *drag_dest,
152
 
                                         GtkWidget        *widget,
153
 
                                         GdkDragContext   *context,
154
 
                                         GtkTreePath      *dest_path,
155
 
                                         GtkTargetList    *target_list);
156
 
} RbTreeDragDestIface;
157
 
</programlisting>
158
 
<para>
159
 
</para></refsect2>
160
 
<refsect2 id="RbTreeDestFlag" role="enum">
161
 
<title>enum RbTreeDestFlag</title>
162
 
<indexterm zone="RbTreeDestFlag"><primary sortas="RbTreeDestFlag">RbTreeDestFlag</primary></indexterm><programlisting>typedef enum {
163
 
        RB_TREE_DEST_EMPTY_VIEW_DROP = 1 &lt;&lt; 0,
164
 
        RB_TREE_DEST_CAN_DROP_INTO = 1 &lt;&lt; 1,
165
 
        RB_TREE_DEST_CAN_DROP_BETWEEN = 1 &lt;&lt; 2,
166
 
        RB_TREE_DEST_SELECT_ON_DRAG_TIMEOUT = 1 &lt;&lt; 3
167
 
} RbTreeDestFlag;
168
 
</programlisting>
169
 
<para>
170
 
Flags controlling drag destination behaviour.</para>
171
 
<para>
172
 
</para><variablelist role="enum">
173
 
<varlistentry id="RB-TREE-DEST-EMPTY-VIEW-DROP--CAPS" role="constant">
174
 
<term><literal>RB_TREE_DEST_EMPTY_VIEW_DROP</literal></term>
175
 
<listitem><simpara> If set, drops into empty spaces in the view are accepted
176
 
</simpara></listitem>
177
 
</varlistentry>
178
 
<varlistentry id="RB-TREE-DEST-CAN-DROP-INTO--CAPS" role="constant">
179
 
<term><literal>RB_TREE_DEST_CAN_DROP_INTO</literal></term>
180
 
<listitem><simpara> If set, drops into existing rows are accepted
181
 
</simpara></listitem>
182
 
</varlistentry>
183
 
<varlistentry id="RB-TREE-DEST-CAN-DROP-BETWEEN--CAPS" role="constant">
184
 
<term><literal>RB_TREE_DEST_CAN_DROP_BETWEEN</literal></term>
185
 
<listitem><simpara> If set, drops between existing rows are accepted
186
 
</simpara></listitem>
187
 
</varlistentry>
188
 
<varlistentry id="RB-TREE-DEST-SELECT-ON-DRAG-TIMEOUT--CAPS" role="constant">
189
 
<term><literal>RB_TREE_DEST_SELECT_ON_DRAG_TIMEOUT</literal></term>
190
 
<listitem><simpara> If set, update the drag selection using a timeout
191
 
</simpara></listitem>
192
 
</varlistentry>
193
 
</variablelist></refsect2>
194
 
<refsect2 id="rb-tree-drag-source-row-draggable" role="function">
195
 
<title>rb_tree_drag_source_row_draggable ()</title>
196
 
<indexterm zone="rb-tree-drag-source-row-draggable"><primary sortas="rb_tree_drag_source_row_draggable">rb_tree_drag_source_row_draggable</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            rb_tree_drag_source_row_draggable   (<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
197
 
                                                         <link linkend="GList">GList</link> *path_list);</programlisting>
198
 
<para>
199
 
Asks the <link linkend="RbTreeDragSource"><type>RbTreeDragSource</type></link> whether a particular row can be used as
200
 
the source of a DND operation. If the source doesn't implement
201
 
this interface, the row is assumed draggable.</para>
202
 
<para>
203
 
</para><variablelist role="params">
204
 
<varlistentry><term><parameter>drag_source</parameter>&#160;:</term>
205
 
<listitem><simpara> a <link linkend="RbTreeDragSource"><type>RbTreeDragSource</type></link>
206
 
</simpara></listitem></varlistentry>
207
 
<varlistentry><term><parameter>path_list</parameter>&#160;:</term>
208
 
<listitem><simpara> row on which user is initiating a drag
209
 
</simpara></listitem></varlistentry>
210
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the row can be dragged
211
 
</simpara></listitem></varlistentry>
212
 
</variablelist></refsect2>
213
 
<refsect2 id="rb-tree-drag-source-drag-data-delete" role="function">
214
 
<title>rb_tree_drag_source_drag_data_delete ()</title>
215
 
<indexterm zone="rb-tree-drag-source-drag-data-delete"><primary sortas="rb_tree_drag_source_drag_data_delete">rb_tree_drag_source_drag_data_delete</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            rb_tree_drag_source_drag_data_delete
216
 
                                                        (<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
217
 
                                                         <link linkend="GList">GList</link> *path_list);</programlisting>
218
 
<para>
219
 
Asks the <link linkend="RbTreeDragSource"><type>RbTreeDragSource</type></link> to delete the row at <parameter>path</parameter>, because
220
 
it was moved somewhere else via drag-and-drop. Returns <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>
221
 
if the deletion fails because <parameter>path</parameter> no longer exists, or for
222
 
some model-specific reason. Should robustly handle a <parameter>path</parameter> no
223
 
longer found in the model!</para>
224
 
<para>
225
 
</para><variablelist role="params">
226
 
<varlistentry><term><parameter>drag_source</parameter>&#160;:</term>
227
 
<listitem><simpara> a <link linkend="RbTreeDragSource"><type>RbTreeDragSource</type></link>
228
 
</simpara></listitem></varlistentry>
229
 
<varlistentry><term><parameter>path_list</parameter>&#160;:</term>
230
 
<listitem><simpara> row that was being dragged
231
 
</simpara></listitem></varlistentry>
232
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the row was successfully deleted
233
 
</simpara></listitem></varlistentry>
234
 
</variablelist></refsect2>
235
 
<refsect2 id="rb-tree-drag-source-drag-data-get" role="function">
236
 
<title>rb_tree_drag_source_drag_data_get ()</title>
237
 
<indexterm zone="rb-tree-drag-source-drag-data-get"><primary sortas="rb_tree_drag_source_drag_data_get">rb_tree_drag_source_drag_data_get</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            rb_tree_drag_source_drag_data_get   (<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
238
 
                                                         <link linkend="GList">GList</link> *path_list,
239
 
                                                         <link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);</programlisting>
240
 
<para>
241
 
Asks the <link linkend="RbTreeDragSource"><type>RbTreeDragSource</type></link> to fill in <parameter>selection_data</parameter> with a
242
 
representation of the row at <parameter>path</parameter>. <parameter>selection_data->target</parameter> gives
243
 
the required type of the data.  Should robustly handle a <parameter>path</parameter> no
244
 
longer found in the model!</para>
245
 
<para>
246
 
</para><variablelist role="params">
247
 
<varlistentry><term><parameter>drag_source</parameter>&#160;:</term>
248
 
<listitem><simpara> a <link linkend="RbTreeDragSource"><type>RbTreeDragSource</type></link>
249
 
</simpara></listitem></varlistentry>
250
 
<varlistentry><term><parameter>path_list</parameter>&#160;:</term>
251
 
<listitem><simpara> row that was dragged
252
 
</simpara></listitem></varlistentry>
253
 
<varlistentry><term><parameter>selection_data</parameter>&#160;:</term>
254
 
<listitem><simpara> a <link linkend="GtkSelectionData"><type>GtkSelectionData</type></link> to fill with data from the dragged row
255
 
</simpara></listitem></varlistentry>
256
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if data of the required type was provided
257
 
</simpara></listitem></varlistentry>
258
 
</variablelist></refsect2>
259
 
<refsect2 id="rb-tree-drag-dest-drag-data-received" role="function">
260
 
<title>rb_tree_drag_dest_drag_data_received ()</title>
261
 
<indexterm zone="rb-tree-drag-dest-drag-data-received"><primary sortas="rb_tree_drag_dest_drag_data_received">rb_tree_drag_dest_drag_data_received</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            rb_tree_drag_dest_drag_data_received
262
 
                                                        (<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
263
 
                                                         <link linkend="GtkTreePath">GtkTreePath</link> *dest,
264
 
                                                         <link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> pos,
265
 
                                                         <link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);</programlisting>
266
 
<para>
267
 
Asks a <link linkend="RbTreeDragDest"><type>RbTreeDragDest</type></link> to accept some drag and drop data.</para>
268
 
<para>
269
 
</para><variablelist role="params">
270
 
<varlistentry><term><parameter>drag_dest</parameter>&#160;:</term>
271
 
<listitem><simpara> a <link linkend="RbTreeDragDest"><type>RbTreeDragDest</type></link>
272
 
</simpara></listitem></varlistentry>
273
 
<varlistentry><term><parameter>dest</parameter>&#160;:</term>
274
 
<listitem><simpara> the <link linkend="GtkTreePath"><type>GtkTreePath</type></link> on which the data was dropped
275
 
</simpara></listitem></varlistentry>
276
 
<varlistentry><term><parameter>pos</parameter>&#160;:</term>
277
 
<listitem><simpara> the drop position relative to the row identified by <parameter>dest</parameter>
278
 
</simpara></listitem></varlistentry>
279
 
<varlistentry><term><parameter>selection_data</parameter>&#160;:</term>
280
 
<listitem><simpara> a <link linkend="GtkSelectionData"><type>GtkSelectionData</type></link> containing the drag data
281
 
</simpara></listitem></varlistentry>
282
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the data was accepted, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
283
 
</simpara></listitem></varlistentry>
284
 
</variablelist></refsect2>
285
 
<refsect2 id="rb-tree-drag-dest-row-drop-possible" role="function">
286
 
<title>rb_tree_drag_dest_row_drop_possible ()</title>
287
 
<indexterm zone="rb-tree-drag-dest-row-drop-possible"><primary sortas="rb_tree_drag_dest_row_drop_possible">rb_tree_drag_dest_row_drop_possible</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            rb_tree_drag_dest_row_drop_possible (<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
288
 
                                                         <link linkend="GtkTreePath">GtkTreePath</link> *dest_path,
289
 
                                                         <link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> pos,
290
 
                                                         <link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);</programlisting>
291
 
<para>
292
 
Asks the <link linkend="RbTreeDragDest"><type>RbTreeDragDest</type></link> whether data can be dropped on a particular
293
 
row.  This should probably check based on the format and the row.</para>
294
 
<para>
295
 
</para><variablelist role="params">
296
 
<varlistentry><term><parameter>drag_dest</parameter>&#160;:</term>
297
 
<listitem><simpara> a <link linkend="RbTreeDragDest"><type>RbTreeDragDest</type></link>
298
 
</simpara></listitem></varlistentry>
299
 
<varlistentry><term><parameter>dest_path</parameter>&#160;:</term>
300
 
<listitem><simpara> the <link linkend="GtkTreePath"><type>GtkTreePath</type></link> on which the data may be dropped
301
 
</simpara></listitem></varlistentry>
302
 
<varlistentry><term><parameter>pos</parameter>&#160;:</term>
303
 
<listitem><simpara> the drop position relative to the row identified by <parameter>dest</parameter>
304
 
</simpara></listitem></varlistentry>
305
 
<varlistentry><term><parameter>selection_data</parameter>&#160;:</term>
306
 
<listitem><simpara> a <link linkend="GtkSelectionData"><type>GtkSelectionData</type></link> containing the drag data
307
 
</simpara></listitem></varlistentry>
308
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the data can be dropped there
309
 
</simpara></listitem></varlistentry>
310
 
</variablelist></refsect2>
311
 
<refsect2 id="rb-tree-drag-dest-row-drop-position" role="function">
312
 
<title>rb_tree_drag_dest_row_drop_position ()</title>
313
 
<indexterm zone="rb-tree-drag-dest-row-drop-position"><primary sortas="rb_tree_drag_dest_row_drop_position">rb_tree_drag_dest_row_drop_position</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            rb_tree_drag_dest_row_drop_position (<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
314
 
                                                         <link linkend="GtkTreePath">GtkTreePath</link> *dest_path,
315
 
                                                         <link linkend="GList">GList</link> *targets,
316
 
                                                         <link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> *pos);</programlisting>
317
 
<para>
318
 
Asks the <link linkend="RbTreeDragDest"><type>RbTreeDragDest</type></link> which drop position to use relative to the specified row.
319
 
The drag destination should decide which drop position to use based on the 
320
 
target row and the list of drag targets.</para>
321
 
<para>
322
 
</para><variablelist role="params">
323
 
<varlistentry><term><parameter>drag_dest</parameter>&#160;:</term>
324
 
<listitem><simpara> a <link linkend="RbTreeDragDest"><type>RbTreeDragDest</type></link>
325
 
</simpara></listitem></varlistentry>
326
 
<varlistentry><term><parameter>dest_path</parameter>&#160;:</term>
327
 
<listitem><simpara> a <link linkend="GtkTreePath"><type>GtkTreePath</type></link> describing a possible drop row
328
 
</simpara></listitem></varlistentry>
329
 
<varlistentry><term><parameter>targets</parameter>&#160;:</term>
330
 
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> containing possible drop target types
331
 
</simpara></listitem></varlistentry>
332
 
<varlistentry><term><parameter>pos</parameter>&#160;:</term>
333
 
<listitem><simpara> returns the <link linkend="GtkTreeViewDropPosition"><type>GtkTreeViewDropPosition</type></link> to use relative to the row
334
 
</simpara></listitem></varlistentry>
335
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if a drop position has been set, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> if a drop should not be
336
 
  allowed in the specified row
337
 
</simpara></listitem></varlistentry>
338
 
</variablelist></refsect2>
339
 
<refsect2 id="rb-tree-dnd-add-drag-dest-support" role="function">
340
 
<title>rb_tree_dnd_add_drag_dest_support ()</title>
341
 
<indexterm zone="rb-tree-dnd-add-drag-dest-support"><primary sortas="rb_tree_dnd_add_drag_dest_support">rb_tree_dnd_add_drag_dest_support</primary></indexterm><programlisting><link linkend="void">void</link>                rb_tree_dnd_add_drag_dest_support   (<link linkend="GtkTreeView">GtkTreeView</link> *tree_view,
342
 
                                                         <link linkend="RbTreeDestFlag">RbTreeDestFlag</link> flags,
343
 
                                                         const <link linkend="GtkTargetEntry">GtkTargetEntry</link> *targets,
344
 
                                                         <link linkend="gint">gint</link> n_targets,
345
 
                                                         <link linkend="GdkDragAction">GdkDragAction</link> actions);</programlisting>
346
 
<para>
347
 
Adds event handlers to perform multi-row drag and drop operations to the specified
348
 
<link linkend="GtkTreeView"><type>GtkTreeView</type></link>.  The model backing the tree view should implement the <link linkend="RbTreeDragDest"><type>RbTreeDragDest</type></link>
349
 
interface.  This should be called immediately after the tree view is created.</para>
350
 
<para>
351
 
</para><variablelist role="params">
352
 
<varlistentry><term><parameter>tree_view</parameter>&#160;:</term>
353
 
<listitem><simpara> a <link linkend="GtkTreeView"><type>GtkTreeView</type></link> that wants to be a drag destination
354
 
</simpara></listitem></varlistentry>
355
 
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
356
 
<listitem><simpara> <link linkend="RbTreeDestFlags"><type>RbTreeDestFlags</type></link> for this drag destination
357
 
</simpara></listitem></varlistentry>
358
 
<varlistentry><term><parameter>targets</parameter>&#160;:</term>
359
 
<listitem><simpara> an array of <link linkend="GtkTargetEntry"><type>GtkTargetEntry</type></link> structures describing the allowed drag targets
360
 
</simpara></listitem></varlistentry>
361
 
<varlistentry><term><parameter>n_targets</parameter>&#160;:</term>
362
 
<listitem><simpara> the number of elements in <parameter>targets</parameter>
363
 
</simpara></listitem></varlistentry>
364
 
<varlistentry><term><parameter>actions</parameter>&#160;:</term>
365
 
<listitem><simpara> the allowable drag actions for this destination
366
 
</simpara></listitem></varlistentry>
367
 
</variablelist></refsect2>
368
 
<refsect2 id="rb-tree-dnd-add-drag-source-support" role="function">
369
 
<title>rb_tree_dnd_add_drag_source_support ()</title>
370
 
<indexterm zone="rb-tree-dnd-add-drag-source-support"><primary sortas="rb_tree_dnd_add_drag_source_support">rb_tree_dnd_add_drag_source_support</primary></indexterm><programlisting><link linkend="void">void</link>                rb_tree_dnd_add_drag_source_support (<link linkend="GtkTreeView">GtkTreeView</link> *tree_view,
371
 
                                                         <link linkend="GdkModifierType">GdkModifierType</link> start_button_mask,
372
 
                                                         const <link linkend="GtkTargetEntry">GtkTargetEntry</link> *targets,
373
 
                                                         <link linkend="gint">gint</link> n_targets,
374
 
                                                         <link linkend="GdkDragAction">GdkDragAction</link> actions);</programlisting>
375
 
<para>
376
 
Adds event handlers to perform multi-row drag and drop operations from the
377
 
specified <link linkend="GtkTreeView"><type>GtkTreeView</type></link> widget.  The model backing the <link linkend="GtkTreeView"><type>GtkTreeView</type></link> must
378
 
implement the <link linkend="RbTreeDragSource"><type>RbTreeDragSource</type></link> interface.  This should be called immediately
379
 
after the tree view is created.</para>
380
 
<para>
381
 
</para><variablelist role="params">
382
 
<varlistentry><term><parameter>tree_view</parameter>&#160;:</term>
383
 
<listitem><simpara> a <link linkend="GtkTreeView"><type>GtkTreeView</type></link> that wants to be a drag source
384
 
</simpara></listitem></varlistentry>
385
 
<varlistentry><term><parameter>start_button_mask</parameter>&#160;:</term>
386
 
<listitem><simpara> a mask describing modifier keys to handle when dragging
387
 
</simpara></listitem></varlistentry>
388
 
<varlistentry><term><parameter>targets</parameter>&#160;:</term>
389
 
<listitem><simpara> an array of <link linkend="GtkTargetEntry"><type>GtkTargetEntry</type></link> structures describing drag data types
390
 
</simpara></listitem></varlistentry>
391
 
<varlistentry><term><parameter>n_targets</parameter>&#160;:</term>
392
 
<listitem><simpara> the number of elements in <parameter>targets</parameter>
393
 
</simpara></listitem></varlistentry>
394
 
<varlistentry><term><parameter>actions</parameter>&#160;:</term>
395
 
<listitem><simpara> a mask describing drag actions that are allowed from this source
396
 
</simpara></listitem></varlistentry>
397
 
</variablelist></refsect2>
398
 
 
399
 
</refsect1>
400
 
 
401
 
 
402
 
 
403
 
 
404
 
</refentry>