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">
6
<refentrytitle>rb-tree-dnd</refentrytitle>
7
<manvolnum>3</manvolnum>
8
<refmiscinfo>RHYTHMBOX Library</refmiscinfo>
12
<refname>rb-tree-dnd</refname><refpurpose></refpurpose>
15
<refsynopsisdiv><title>Synopsis</title>
16
<anchor id="RbTreeDragSource"/><anchor id="RbTreeDragDest"/>
21
#define <link linkend="RB-TYPE-TREE-DRAG-DEST:CAPS">RB_TYPE_TREE_DRAG_DEST</link>
22
#define <link linkend="RB-TREE-DRAG-DEST:CAPS">RB_TREE_DRAG_DEST</link> (obj)
23
#define <link linkend="RB-IS-TREE-DRAG-DEST:CAPS">RB_IS_TREE_DRAG_DEST</link> (obj)
24
#define <link linkend="RB-TREE-DRAG-DEST-GET-IFACE:CAPS">RB_TREE_DRAG_DEST_GET_IFACE</link> (obj)
25
<link linkend="RbTreeDragSource-struct">RbTreeDragSource</link>;
26
<link linkend="RbTreeDragSourceIface">RbTreeDragSourceIface</link>;
27
<link linkend="RbTreeDragDest-struct">RbTreeDragDest</link>;
28
<link linkend="RbTreeDragDestIface">RbTreeDragDestIface</link>;
29
enum <link linkend="RbTreeDestFlag">RbTreeDestFlag</link>;
30
<link linkend="gboolean">gboolean</link> <link linkend="rb-tree-drag-source-row-draggable">rb_tree_drag_source_row_draggable</link>
31
(<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
32
<link linkend="GList">GList</link> *path_list);
33
<link linkend="gboolean">gboolean</link> <link linkend="rb-tree-drag-source-drag-data-delete">rb_tree_drag_source_drag_data_delete</link>
34
(<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
35
<link linkend="GList">GList</link> *path_list);
36
<link linkend="gboolean">gboolean</link> <link linkend="rb-tree-drag-source-drag-data-get">rb_tree_drag_source_drag_data_get</link>
37
(<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
38
<link linkend="GList">GList</link> *path_list,
39
<link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);
40
<link linkend="GType">GType</link> <link linkend="rb-tree-drag-dest-get-type">rb_tree_drag_dest_get_type</link> (void);
41
<link linkend="gboolean">gboolean</link> <link linkend="rb-tree-drag-dest-drag-data-received">rb_tree_drag_dest_drag_data_received</link>
42
(<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
43
<link linkend="GtkTreePath">GtkTreePath</link> *dest,
44
<link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> pos,
45
<link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);
46
<link linkend="gboolean">gboolean</link> <link linkend="rb-tree-drag-dest-row-drop-possible">rb_tree_drag_dest_row_drop_possible</link>
47
(<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
48
<link linkend="GtkTreePath">GtkTreePath</link> *dest_path,
49
<link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> pos,
50
<link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);
51
<link linkend="gboolean">gboolean</link> <link linkend="rb-tree-drag-dest-row-drop-position">rb_tree_drag_dest_row_drop_position</link>
52
(<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
53
<link linkend="GtkTreePath">GtkTreePath</link> *dest_path,
54
<link linkend="GList">GList</link> *targets,
55
<link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> *pos);
56
<link linkend="void">void</link> <link linkend="rb-tree-dnd-add-drag-dest-support">rb_tree_dnd_add_drag_dest_support</link>
57
(<link linkend="GtkTreeView">GtkTreeView</link> *tree_view,
58
<link linkend="RbTreeDestFlag">RbTreeDestFlag</link> flags,
59
const <link linkend="GtkTargetEntry">GtkTargetEntry</link> *targets,
60
<link linkend="gint">gint</link> n_targets,
61
<link linkend="GdkDragAction">GdkDragAction</link> actions);
62
<link linkend="void">void</link> <link linkend="rb-tree-dnd-add-drag-source-support">rb_tree_dnd_add_drag_source_support</link>
63
(<link linkend="GtkTreeView">GtkTreeView</link> *tree_view,
64
<link linkend="GdkModifierType">GdkModifierType</link> start_button_mask,
65
const <link linkend="GtkTargetEntry">GtkTargetEntry</link> *targets,
66
<link linkend="gint">gint</link> n_targets,
67
<link linkend="GdkDragAction">GdkDragAction</link> actions);
73
<title>Object Hierarchy</title>
76
<link linkend="GInterface">GInterface</link>
81
<link linkend="GInterface">GInterface</link>
95
<title>Description</title>
102
<title>Details</title>
104
<title><anchor id="RB-TYPE-TREE-DRAG-DEST:CAPS"/>RB_TYPE_TREE_DRAG_DEST</title>
105
<indexterm><primary>RB_TYPE_TREE_DRAG_DEST</primary></indexterm><programlisting>#define RB_TYPE_TREE_DRAG_DEST (rb_tree_drag_dest_get_type ())
111
<title><anchor id="RB-TREE-DRAG-DEST:CAPS"/>RB_TREE_DRAG_DEST()</title>
112
<indexterm><primary>RB_TREE_DRAG_DEST</primary></indexterm><programlisting>#define RB_TREE_DRAG_DEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RB_TYPE_TREE_DRAG_DEST, RbTreeDragDest))
116
</para><variablelist role="params">
117
<varlistentry><term><parameter>obj</parameter> :</term>
121
</simpara></listitem></varlistentry>
122
</variablelist></refsect2>
124
<title><anchor id="RB-IS-TREE-DRAG-DEST:CAPS"/>RB_IS_TREE_DRAG_DEST()</title>
125
<indexterm><primary>RB_IS_TREE_DRAG_DEST</primary></indexterm><programlisting>#define RB_IS_TREE_DRAG_DEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RB_TYPE_TREE_DRAG_DEST))
129
</para><variablelist role="params">
130
<varlistentry><term><parameter>obj</parameter> :</term>
134
</simpara></listitem></varlistentry>
135
</variablelist></refsect2>
137
<title><anchor id="RB-TREE-DRAG-DEST-GET-IFACE:CAPS"/>RB_TREE_DRAG_DEST_GET_IFACE()</title>
138
<indexterm><primary>RB_TREE_DRAG_DEST_GET_IFACE</primary></indexterm><programlisting>#define RB_TREE_DRAG_DEST_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), RB_TYPE_TREE_DRAG_DEST, RbTreeDragDestIface))
142
</para><variablelist role="params">
143
<varlistentry><term><parameter>obj</parameter> :</term>
147
</simpara></listitem></varlistentry>
148
</variablelist></refsect2>
150
<title><anchor id="RbTreeDragSource-struct"/>RbTreeDragSource</title>
151
<indexterm><primary>RbTreeDragSource</primary></indexterm><programlisting>typedef struct _RbTreeDragSource RbTreeDragSource;</programlisting>
156
<title><anchor id="RbTreeDragSourceIface"/>RbTreeDragSourceIface</title>
157
<indexterm><primary>RbTreeDragSourceIface</primary></indexterm><programlisting>typedef struct {
158
GTypeInterface g_iface;
160
/* VTable - not signals */
161
gboolean (* row_draggable) (RbTreeDragSource *drag_source,
164
gboolean (* drag_data_get) (RbTreeDragSource *drag_source,
166
GtkSelectionData *selection_data);
168
gboolean (* drag_data_delete) (RbTreeDragSource *drag_source,
170
} RbTreeDragSourceIface;
176
<title><anchor id="RbTreeDragDest-struct"/>RbTreeDragDest</title>
177
<indexterm><primary>RbTreeDragDest</primary></indexterm><programlisting>typedef struct _RbTreeDragDest RbTreeDragDest;</programlisting>
182
<title><anchor id="RbTreeDragDestIface"/>RbTreeDragDestIface</title>
183
<indexterm><primary>RbTreeDragDestIface</primary></indexterm><programlisting>typedef struct {
184
GTypeInterface g_iface;
186
/* VTable - not signals */
188
gboolean (* drag_data_received) (RbTreeDragDest *drag_dest,
190
GtkTreeViewDropPosition pos,
191
GtkSelectionData *selection_data);
193
gboolean (* row_drop_possible) (RbTreeDragDest *drag_dest,
194
GtkTreePath *dest_path,
195
GtkTreeViewDropPosition pos,
196
GtkSelectionData *selection_data);
198
gboolean (* row_drop_position) (RbTreeDragDest *drag_dest,
199
GtkTreePath *dest_path,
201
GtkTreeViewDropPosition *pos);
204
GdkAtom (* get_drag_target) (RbTreeDragDest *drag_dest,
206
GdkDragContext *context,
207
GtkTreePath *dest_path,
208
GtkTargetList *target_list);
209
} RbTreeDragDestIface;
215
<title><anchor id="RbTreeDestFlag"/>enum RbTreeDestFlag</title>
216
<indexterm><primary>RbTreeDestFlag</primary></indexterm><programlisting>typedef enum {
217
RB_TREE_DEST_EMPTY_VIEW_DROP = 1 << 0,
218
RB_TREE_DEST_CAN_DROP_INTO = 1 << 1,
219
RB_TREE_DEST_CAN_DROP_BETWEEN = 1 << 2
226
<title><anchor id="rb-tree-drag-source-row-draggable"/>rb_tree_drag_source_row_draggable ()</title>
227
<indexterm><primary>rb_tree_drag_source_row_draggable</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> rb_tree_drag_source_row_draggable
228
(<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
229
<link linkend="GList">GList</link> *path_list);</programlisting>
231
Asks the <link linkend="EggTreeMultiDragSource"><type>EggTreeMultiDragSource</type></link> whether a particular row can be used as
232
the source of a DND operation. If the source doesn't implement
233
this interface, the row is assumed draggable.</para>
236
</para><variablelist role="params">
237
<varlistentry><term><parameter>drag_source</parameter> :</term>
238
<listitem><simpara> a <link linkend="EggTreeMultiDragSource"><type>EggTreeMultiDragSource</type></link>
239
</simpara></listitem></varlistentry>
240
<varlistentry><term><parameter>path_list</parameter> :</term>
242
</simpara></listitem></varlistentry>
243
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <literal>TRUE</literal> if the row can be dragged
244
</simpara></listitem></varlistentry>
245
</variablelist></refsect2>
247
<title><anchor id="rb-tree-drag-source-drag-data-delete"/>rb_tree_drag_source_drag_data_delete ()</title>
248
<indexterm><primary>rb_tree_drag_source_drag_data_delete</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> rb_tree_drag_source_drag_data_delete
249
(<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
250
<link linkend="GList">GList</link> *path_list);</programlisting>
252
Asks the <link linkend="EggTreeMultiDragSource"><type>EggTreeMultiDragSource</type></link> to delete the row at <parameter>path</parameter>, because
253
it was moved somewhere else via drag-and-drop. Returns <literal>FALSE</literal>
254
if the deletion fails because <parameter>path</parameter> no longer exists, or for
255
some model-specific reason. Should robustly handle a <parameter>path</parameter> no
256
longer found in the model!</para>
259
</para><variablelist role="params">
260
<varlistentry><term><parameter>drag_source</parameter> :</term>
261
<listitem><simpara> a <link linkend="EggTreeMultiDragSource"><type>EggTreeMultiDragSource</type></link>
262
</simpara></listitem></varlistentry>
263
<varlistentry><term><parameter>path_list</parameter> :</term>
265
</simpara></listitem></varlistentry>
266
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <literal>TRUE</literal> if the row was successfully deleted
267
</simpara></listitem></varlistentry>
268
</variablelist></refsect2>
270
<title><anchor id="rb-tree-drag-source-drag-data-get"/>rb_tree_drag_source_drag_data_get ()</title>
271
<indexterm><primary>rb_tree_drag_source_drag_data_get</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> rb_tree_drag_source_drag_data_get
272
(<link linkend="RbTreeDragSource">RbTreeDragSource</link> *drag_source,
273
<link linkend="GList">GList</link> *path_list,
274
<link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);</programlisting>
276
Asks the <link linkend="EggTreeMultiDragSource"><type>EggTreeMultiDragSource</type></link> to fill in <parameter>selection_data</parameter> with a
277
representation of the row at <parameter>path</parameter>. <parameter>selection_data->target</parameter> gives
278
the required type of the data. Should robustly handle a <parameter>path</parameter> no
279
longer found in the model!</para>
282
</para><variablelist role="params">
283
<varlistentry><term><parameter>drag_source</parameter> :</term>
284
<listitem><simpara> a <link linkend="EggTreeMultiDragSource"><type>EggTreeMultiDragSource</type></link>
285
</simpara></listitem></varlistentry>
286
<varlistentry><term><parameter>path_list</parameter> :</term>
288
</simpara></listitem></varlistentry>
289
<varlistentry><term><parameter>selection_data</parameter> :</term>
290
<listitem><simpara> a <link linkend="EggSelectionData"><type>EggSelectionData</type></link> to fill with data from the dragged row
291
</simpara></listitem></varlistentry>
292
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <literal>TRUE</literal> if data of the required type was provided
293
</simpara></listitem></varlistentry>
294
</variablelist></refsect2>
296
<title><anchor id="rb-tree-drag-dest-get-type"/>rb_tree_drag_dest_get_type ()</title>
297
<indexterm><primary>rb_tree_drag_dest_get_type</primary></indexterm><programlisting><link linkend="GType">GType</link> rb_tree_drag_dest_get_type (void);</programlisting>
300
</para><variablelist role="params">
301
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
304
</simpara></listitem></varlistentry>
305
</variablelist></refsect2>
307
<title><anchor id="rb-tree-drag-dest-drag-data-received"/>rb_tree_drag_dest_drag_data_received ()</title>
308
<indexterm><primary>rb_tree_drag_dest_drag_data_received</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> rb_tree_drag_dest_drag_data_received
309
(<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
310
<link linkend="GtkTreePath">GtkTreePath</link> *dest,
311
<link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> pos,
312
<link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);</programlisting>
315
</para><variablelist role="params">
316
<varlistentry><term><parameter>drag_dest</parameter> :</term>
318
</simpara></listitem></varlistentry>
319
<varlistentry><term><parameter>dest</parameter> :</term>
321
</simpara></listitem></varlistentry>
322
<varlistentry><term><parameter>pos</parameter> :</term>
324
</simpara></listitem></varlistentry>
325
<varlistentry><term><parameter>selection_data</parameter> :</term>
327
</simpara></listitem></varlistentry>
328
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
331
</simpara></listitem></varlistentry>
332
</variablelist></refsect2>
334
<title><anchor id="rb-tree-drag-dest-row-drop-possible"/>rb_tree_drag_dest_row_drop_possible ()</title>
335
<indexterm><primary>rb_tree_drag_dest_row_drop_possible</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> rb_tree_drag_dest_row_drop_possible
336
(<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
337
<link linkend="GtkTreePath">GtkTreePath</link> *dest_path,
338
<link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> pos,
339
<link linkend="GtkSelectionData">GtkSelectionData</link> *selection_data);</programlisting>
342
</para><variablelist role="params">
343
<varlistentry><term><parameter>drag_dest</parameter> :</term>
345
</simpara></listitem></varlistentry>
346
<varlistentry><term><parameter>dest_path</parameter> :</term>
348
</simpara></listitem></varlistentry>
349
<varlistentry><term><parameter>pos</parameter> :</term>
351
</simpara></listitem></varlistentry>
352
<varlistentry><term><parameter>selection_data</parameter> :</term>
354
</simpara></listitem></varlistentry>
355
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
358
</simpara></listitem></varlistentry>
359
</variablelist></refsect2>
361
<title><anchor id="rb-tree-drag-dest-row-drop-position"/>rb_tree_drag_dest_row_drop_position ()</title>
362
<indexterm><primary>rb_tree_drag_dest_row_drop_position</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> rb_tree_drag_dest_row_drop_position
363
(<link linkend="RbTreeDragDest">RbTreeDragDest</link> *drag_dest,
364
<link linkend="GtkTreePath">GtkTreePath</link> *dest_path,
365
<link linkend="GList">GList</link> *targets,
366
<link linkend="GtkTreeViewDropPosition">GtkTreeViewDropPosition</link> *pos);</programlisting>
369
</para><variablelist role="params">
370
<varlistentry><term><parameter>drag_dest</parameter> :</term>
372
</simpara></listitem></varlistentry>
373
<varlistentry><term><parameter>dest_path</parameter> :</term>
375
</simpara></listitem></varlistentry>
376
<varlistentry><term><parameter>targets</parameter> :</term>
378
</simpara></listitem></varlistentry>
379
<varlistentry><term><parameter>pos</parameter> :</term>
381
</simpara></listitem></varlistentry>
382
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
385
</simpara></listitem></varlistentry>
386
</variablelist></refsect2>
388
<title><anchor id="rb-tree-dnd-add-drag-dest-support"/>rb_tree_dnd_add_drag_dest_support ()</title>
389
<indexterm><primary>rb_tree_dnd_add_drag_dest_support</primary></indexterm><programlisting><link linkend="void">void</link> rb_tree_dnd_add_drag_dest_support
390
(<link linkend="GtkTreeView">GtkTreeView</link> *tree_view,
391
<link linkend="RbTreeDestFlag">RbTreeDestFlag</link> flags,
392
const <link linkend="GtkTargetEntry">GtkTargetEntry</link> *targets,
393
<link linkend="gint">gint</link> n_targets,
394
<link linkend="GdkDragAction">GdkDragAction</link> actions);</programlisting>
397
</para><variablelist role="params">
398
<varlistentry><term><parameter>tree_view</parameter> :</term>
400
</simpara></listitem></varlistentry>
401
<varlistentry><term><parameter>flags</parameter> :</term>
403
</simpara></listitem></varlistentry>
404
<varlistentry><term><parameter>targets</parameter> :</term>
406
</simpara></listitem></varlistentry>
407
<varlistentry><term><parameter>n_targets</parameter> :</term>
409
</simpara></listitem></varlistentry>
410
<varlistentry><term><parameter>actions</parameter> :</term>
414
</simpara></listitem></varlistentry>
415
</variablelist></refsect2>
417
<title><anchor id="rb-tree-dnd-add-drag-source-support"/>rb_tree_dnd_add_drag_source_support ()</title>
418
<indexterm><primary>rb_tree_dnd_add_drag_source_support</primary></indexterm><programlisting><link linkend="void">void</link> rb_tree_dnd_add_drag_source_support
419
(<link linkend="GtkTreeView">GtkTreeView</link> *tree_view,
420
<link linkend="GdkModifierType">GdkModifierType</link> start_button_mask,
421
const <link linkend="GtkTargetEntry">GtkTargetEntry</link> *targets,
422
<link linkend="gint">gint</link> n_targets,
423
<link linkend="GdkDragAction">GdkDragAction</link> actions);</programlisting>
426
</para><variablelist role="params">
427
<varlistentry><term><parameter>tree_view</parameter> :</term>
429
</simpara></listitem></varlistentry>
430
<varlistentry><term><parameter>start_button_mask</parameter> :</term>
432
</simpara></listitem></varlistentry>
433
<varlistentry><term><parameter>targets</parameter> :</term>
435
</simpara></listitem></varlistentry>
436
<varlistentry><term><parameter>n_targets</parameter> :</term>
438
</simpara></listitem></varlistentry>
439
<varlistentry><term><parameter>actions</parameter> :</term>
443
</simpara></listitem></varlistentry>
444
</variablelist></refsect2>