summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/gtk2/src/gtk+/gtk/gtktreednd.inc
blob: 79e1735769f8ba42b91919f0b63f46f42496d031 (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
// included by gtk2.pas

{$IFDEF read_forward_definitions}
{$ENDIF read_forward_definitions}

//------------------------------------------------------------------------------

{$IFDEF read_interface_types}
   // internal type
   PGtkTreeDragSource = pointer;
   // internal type
   PGtkTreeDragDest = pointer;

{ VTable - not signals  }
   PGtkTreeDragSourceIface = ^TGtkTreeDragSourceIface;
   TGtkTreeDragSourceIface = record
        g_iface : TGTypeInterface;
        row_draggable : function (drag_source:PGtkTreeDragSource; path:PGtkTreePath):gboolean; cdecl;
        drag_data_get : function (drag_source:PGtkTreeDragSource; path:PGtkTreePath; selection_data:PGtkSelectionData):gboolean; cdecl;
        drag_data_delete : function (drag_source:PGtkTreeDragSource; path:PGtkTreePath):gboolean; cdecl;
     end;


{ VTable - not signals  }
   PGtkTreeDragDestIface = ^TGtkTreeDragDestIface;
   TGtkTreeDragDestIface = record
        g_iface : TGTypeInterface;
        drag_data_received : function (drag_dest:PGtkTreeDragDest; dest:PGtkTreePath; selection_data:PGtkSelectionData):gboolean; cdecl;
        row_drop_possible : function (drag_dest:PGtkTreeDragDest; dest_path:PGtkTreePath; selection_data:PGtkSelectionData):gboolean; cdecl;
     end;

{$ENDIF read_interface_types}

//------------------------------------------------------------------------------

{$IFDEF read_interface_rest}
function GTK_TYPE_TREE_DRAG_SOURCE : GType;
function GTK_TREE_DRAG_SOURCE(obj: pointer) : PGtkTreeDragSource;
function GTK_IS_TREE_DRAG_SOURCE(obj: pointer) : boolean;
function GTK_TREE_DRAG_SOURCE_GET_IFACE(obj: pointer) : PGtkTreeDragSourceIface;


function gtk_tree_drag_source_get_type:GType; cdecl; external gtklib;
{ Returns whether the given row can be dragged  }
function gtk_tree_drag_source_row_draggable(drag_source:PGtkTreeDragSource; path:PGtkTreePath):gboolean; cdecl; external gtklib;
{ Deletes the given row, or returns FALSE if it can't  }
function gtk_tree_drag_source_drag_data_delete(drag_source:PGtkTreeDragSource; path:PGtkTreePath):gboolean; cdecl; external gtklib;
{ Fills in selection_data with type selection_data->target based on
   the row denoted by path, returns TRUE if it does anything
  }
function gtk_tree_drag_source_drag_data_get(drag_source:PGtkTreeDragSource; path:PGtkTreePath; selection_data:PGtkSelectionData):gboolean; cdecl; external gtklib;
function GTK_TYPE_TREE_DRAG_DEST : GType;
function GTK_TREE_DRAG_DEST(obj: pointer) : PGtkTreeDragDest;
function GTK_IS_TREE_DRAG_DEST(obj: pointer) : boolean;
function GTK_TREE_DRAG_DEST_GET_IFACE(obj: pointer) : PGtkTreeDragDestIface;


function gtk_tree_drag_dest_get_type:GType; cdecl; external gtklib;
{ Inserts a row before dest which contains data in selection_data,
   or returns FALSE if it can't
  }
function gtk_tree_drag_dest_drag_data_received(drag_dest:PGtkTreeDragDest; dest:PGtkTreePath; selection_data:PGtkSelectionData):gboolean; cdecl; external gtklib;
{ Returns TRUE if we can drop before path; path may not exist.  }
function gtk_tree_drag_dest_row_drop_possible(drag_dest:PGtkTreeDragDest; dest_path:PGtkTreePath; selection_data:PGtkSelectionData):gboolean; cdecl; external gtklib;
{ The selection data would normally have target type GTK_TREE_MODEL_ROW in this
   case. If the target is wrong these functions return FALSE.
  }
function gtk_tree_set_row_drag_data(selection_data:PGtkSelectionData; tree_model:PGtkTreeModel; path:PGtkTreePath):gboolean; cdecl; external gtklib;
function gtk_tree_get_row_drag_data(selection_data:PGtkSelectionData; var tree_model:PGtkTreeModel; var path:PGtkTreePath):gboolean; cdecl; external gtklib;
{$ENDIF read_interface_rest}

//------------------------------------------------------------------------------

{$IFDEF read_implementation}
function GTK_TYPE_TREE_DRAG_SOURCE : GType;
begin
   GTK_TYPE_TREE_DRAG_SOURCE:=gtk_tree_drag_source_get_type;
end;

function GTK_TREE_DRAG_SOURCE(obj: pointer) : PGtkTreeDragSource;
begin
   GTK_TREE_DRAG_SOURCE:=PGtkTreeDragSource(G_TYPE_CHECK_INSTANCE_CAST(obj,GTK_TYPE_TREE_DRAG_SOURCE));
end;

function GTK_IS_TREE_DRAG_SOURCE(obj: pointer) : boolean;
begin
   GTK_IS_TREE_DRAG_SOURCE:=G_TYPE_CHECK_INSTANCE_TYPE(obj,GTK_TYPE_TREE_DRAG_SOURCE);
end;

function GTK_TREE_DRAG_SOURCE_GET_IFACE(obj: pointer) : PGtkTreeDragSourceIface;
begin
   GTK_TREE_DRAG_SOURCE_GET_IFACE:=PGtkTreeDragSourceIface(G_TYPE_INSTANCE_GET_INTERFACE(obj,GTK_TYPE_TREE_DRAG_SOURCE));
end;

function GTK_TYPE_TREE_DRAG_DEST : GType;
begin
   GTK_TYPE_TREE_DRAG_DEST:=gtk_tree_drag_dest_get_type;
end;

function GTK_TREE_DRAG_DEST(obj: pointer) : PGtkTreeDragDest;
begin
   GTK_TREE_DRAG_DEST:=PGtkTreeDragDest(G_TYPE_CHECK_INSTANCE_CAST(obj,GTK_TYPE_TREE_DRAG_DEST));
end;

function GTK_IS_TREE_DRAG_DEST(obj: pointer) : boolean;
begin
   GTK_IS_TREE_DRAG_DEST:=G_TYPE_CHECK_INSTANCE_TYPE(obj,GTK_TYPE_TREE_DRAG_DEST);
end;

function GTK_TREE_DRAG_DEST_GET_IFACE(obj: pointer) : PGtkTreeDragDestIface;
begin
   GTK_TREE_DRAG_DEST_GET_IFACE:=PGtkTreeDragDestIface(G_TYPE_INSTANCE_GET_INTERFACE(obj,GTK_TYPE_TREE_DRAG_DEST));
end;

{$ENDIF read_implementation}
// included by gtk2.pas