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
  
/* -*- C -*- */ 
class GTK2.TreeDragDest; 
//! 
mixin_for G.Object; 
 
int drag_data_received(GTK2.TreePath path, GTK2.SelectionData sel) 
//! Asks to insert a row before the path dest, deriving the contents of the 
//! row from the sel.  If this dest is outside the tree so that inserting 
//! before it is impossible, false will be returned.  Also, false may be 
//! returned if the new row is not created for some model-specific reason. 
{ 
  pgtk2_verify_inited(); 
  { 
    struct object *o1,*o2; 
    int res; 
    get_all_args(NULL,args,"%o%o",&o1,&o2); 
    res=gtk_tree_drag_dest_drag_data_received( 
                        GTK_TREE_DRAG_DEST(THIS->obj), 
                        (GtkTreePath *)get_pg2object(o1,pgtk2_tree_path_program), 
                        (GtkSelectionData *)get_gobject(o2)); 
    pgtk2_pop_n_elems(args); 
    PGTK_PUSH_INT(res); 
  } 
} 
 
int row_drop_possible(GTK2.TreePath path, GTK2.SelectionData sel) 
//! Determines whether a drop is possible before past, at the same depth as 
//! path.  i.e., can we drop the data in sel at that location.  path does not 
//! have to exist; the return value will almost certainly be false if the 
//! parent of path doesn't exist, though. 
{ 
  pgtk2_verify_inited(); 
  { 
    struct object *o1,*o2; 
    int res; 
    get_all_args(NULL,args,"%o%o",&o1,&o2); 
    res=gtk_tree_drag_dest_row_drop_possible( 
                        GTK_TREE_DRAG_DEST(THIS->obj), 
                        (GtkTreePath *)get_pg2object(o1,pgtk2_tree_path_program), 
                        (GtkSelectionData *)get_gobject(o2)); 
    pgtk2_pop_n_elems(args); 
    PGTK_PUSH_INT(res); 
  } 
}