1// included by gtk2.pas
2
3{$IFDEF read_forward_definitions}
4{$ENDIF read_forward_definitions}
5
6//------------------------------------------------------------------------------
7
8{$IFDEF read_interface_types}
9{ default view mode  }
10   PGtkTreeViewMode = ^TGtkTreeViewMode;
11   TGtkTreeViewMode = (
12     GTK_TREE_VIEW_LINE,
13     GTK_TREE_VIEW_ITEM
14   );
15
16{ owner of selection list  }
17   PGtkTree = ^TGtkTree;
18   TGtkTree = record
19        container : TGtkContainer;
20        children : PGList;
21        root_tree : PGtkTree;
22        tree_owner : PGtkWidget;
23        selection : PGList;
24        level : guint;
25        indent_value : guint;
26        current_indent : guint;
27        flag0 : word;
28     end;
29
30   PGtkTreeClass = ^TGtkTreeClass;
31   TGtkTreeClass = record
32        parent_class : TGtkContainerClass;
33        selection_changed : procedure (tree:PGtkTree); cdecl;
34        select_child : procedure (tree:PGtkTree; child:PGtkWidget); cdecl;
35        unselect_child : procedure (tree:PGtkTree; child:PGtkWidget); cdecl;
36     end;
37{$ENDIF read_interface_types}
38
39//------------------------------------------------------------------------------
40
41{$IFDEF read_interface_rest}
42const
43   bm_TGtkTree_selection_mode = $3;
44   bp_TGtkTree_selection_mode = 0;
45   bm_TGtkTree_view_mode = $4;
46   bp_TGtkTree_view_mode = 2;
47   bm_TGtkTree_view_line = $8;
48   bp_TGtkTree_view_line = 3;
49
50{ set this flag to enable tree debugging output  }
51{ $define TREE_DEBUG  }
52function GTK_TYPE_TREE : GType;
53function GTK_TREE(obj: pointer) : PGtkTree;
54function GTK_TREE_CLASS(klass: pointer) : PGtkTreeClass;
55function GTK_IS_TREE(obj: pointer) : boolean;
56function GTK_IS_TREE_CLASS(klass: pointer) : boolean;
57function GTK_TREE_GET_CLASS(obj: pointer) : PGtkTreeClass;
58function GTK_IS_ROOT_TREE(obj: pointer) : boolean;
59function GTK_TREE_ROOT_TREE(obj: pointer) : PGtkTree;
60function GTK_TREE_SELECTION_OLD(obj: pointer) : PGList;
61
62function selection_mode(var a : TGtkTree) : guint; overload;
63procedure set_selection_mode(var a : TGtkTree; __selection_mode : guint); overload;
64function view_mode(var a : TGtkTree) : guint;
65procedure set_view_mode(var a : TGtkTree; __view_mode : guint);
66function view_line(var a : TGtkTree) : guint;
67procedure set_view_line(var a : TGtkTree; __view_line : guint);
68
69
70function gtk_tree_get_type:TGtkType; cdecl; external gtklib;
71function gtk_tree_new:PGtkWidget; cdecl; external gtklib;
72procedure gtk_tree_append(tree:PGtkTree; tree_item:PGtkWidget); cdecl; external gtklib;
73procedure gtk_tree_prepend(tree:PGtkTree; tree_item:PGtkWidget); cdecl; external gtklib;
74procedure gtk_tree_insert(tree:PGtkTree; tree_item:PGtkWidget; position:gint); cdecl; external gtklib;
75procedure gtk_tree_remove_items(tree:PGtkTree; items:PGList); cdecl; external gtklib;
76procedure gtk_tree_clear_items(tree:PGtkTree; start:gint; theEnd:gint); cdecl; external gtklib;
77procedure gtk_tree_select_item(tree:PGtkTree; item:gint); cdecl; external gtklib;
78procedure gtk_tree_unselect_item(tree:PGtkTree; item:gint); cdecl; external gtklib;
79procedure gtk_tree_select_child(tree:PGtkTree; tree_item:PGtkWidget); cdecl; external gtklib;
80procedure gtk_tree_unselect_child(tree:PGtkTree; tree_item:PGtkWidget); cdecl; external gtklib;
81function gtk_tree_child_position(tree:PGtkTree; child:PGtkWidget):gint; cdecl; external gtklib;
82procedure gtk_tree_set_selection_mode(tree:PGtkTree; mode:TGtkSelectionMode); cdecl; external gtklib;
83procedure gtk_tree_set_view_mode(tree:PGtkTree; mode:TGtkTreeViewMode); cdecl; external gtklib;
84procedure gtk_tree_set_view_lines(tree:PGtkTree; flag:gboolean); cdecl; external gtklib;
85{ deprecated function, use gtk_container_remove instead.
86  }
87procedure gtk_tree_remove_item(tree:PGtkTree; child:PGtkWidget); cdecl; external gtklib;
88{$ENDIF read_interface_rest}
89
90//------------------------------------------------------------------------------
91
92{$IFDEF read_implementation}
93function GTK_TYPE_TREE : GType;
94begin
95   GTK_TYPE_TREE:=gtk_tree_get_type;
96end;
97
98function GTK_TREE(obj: pointer) : PGtkTree;
99begin
100   GTK_TREE:=PGtkTree(GTK_CHECK_CAST(obj,GTK_TYPE_TREE));
101end;
102
103function GTK_TREE_CLASS(klass: pointer) : PGtkTreeClass;
104begin
105   GTK_TREE_CLASS:=PGtkTreeClass(GTK_CHECK_CLASS_CAST(klass,GTK_TYPE_TREE));
106end;
107
108function GTK_IS_TREE(obj: pointer) : boolean;
109begin
110   GTK_IS_TREE:=GTK_CHECK_TYPE(obj,GTK_TYPE_TREE);
111end;
112
113function GTK_IS_TREE_CLASS(klass: pointer) : boolean;
114begin
115   GTK_IS_TREE_CLASS:=GTK_CHECK_CLASS_TYPE(klass,GTK_TYPE_TREE);
116end;
117
118function GTK_TREE_GET_CLASS(obj: pointer) : PGtkTreeClass;
119begin
120   GTK_TREE_GET_CLASS:=PGtkTreeClass(GTK_CHECK_GET_CLASS(obj,GTK_TYPE_TREE));
121end;
122
123function GTK_IS_ROOT_TREE(obj: pointer) : boolean;
124begin
125   GTK_IS_ROOT_TREE:=(PGtkObject((GTK_TREE(obj))^.root_tree)) = (PGtkObject(obj));
126end;
127
128function GTK_TREE_ROOT_TREE(obj: pointer) : PGtkTree;
129begin
130   GTK_TREE_ROOT_TREE:=GTK_TREE(obj)^.root_tree;
131end;
132
133function GTK_TREE_SELECTION_OLD(obj: pointer) : PGList;
134begin
135   GTK_TREE_SELECTION_OLD:=(GTK_TREE_ROOT_TREE(obj))^.selection;
136end;
137
138function selection_mode(var a : TGtkTree) : guint;
139begin
140   selection_mode:=(a.flag0 and bm_TGtkTree_selection_mode) shr bp_TGtkTree_selection_mode;
141end;
142
143procedure set_selection_mode(var a : TGtkTree; __selection_mode : guint);
144begin
145   a.flag0:=a.flag0 or ((__selection_mode shl bp_TGtkTree_selection_mode) and bm_TGtkTree_selection_mode);
146end;
147
148function view_mode(var a : TGtkTree) : guint;
149begin
150   view_mode:=(a.flag0 and bm_TGtkTree_view_mode) shr bp_TGtkTree_view_mode;
151end;
152
153procedure set_view_mode(var a : TGtkTree; __view_mode : guint);
154begin
155   a.flag0:=a.flag0 or ((__view_mode shl bp_TGtkTree_view_mode) and bm_TGtkTree_view_mode);
156end;
157
158function view_line(var a : TGtkTree) : guint;
159begin
160   view_line:=(a.flag0 and bm_TGtkTree_view_line) shr bp_TGtkTree_view_line;
161end;
162
163procedure set_view_line(var a : TGtkTree; __view_line : guint);
164begin
165   a.flag0:=a.flag0 or ((__view_line shl bp_TGtkTree_view_line) and bm_TGtkTree_view_line);
166end;
167
168{$ENDIF read_implementation}
169// included by gtk2.pas
170
171