gtkctree.pp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. {
  2. }
  3. {****************************************************************************
  4. Interface
  5. ****************************************************************************}
  6. {$ifdef read_interface}
  7. type
  8. TGtkCTreePos = (GTK_CTREE_POS_BEFORE,GTK_CTREE_POS_AS_CHILD,
  9. GTK_CTREE_POS_AFTER);
  10. TGtkCTreeLineStyle = (GTK_CTREE_LINES_NONE,GTK_CTREE_LINES_SOLID,
  11. GTK_CTREE_LINES_DOTTED,GTK_CTREE_LINES_TABBED
  12. );
  13. TGtkCTreeExpanderStyle = (GTK_CTREE_EXPANDER_NONE,GTK_CTREE_EXPANDER_SQUARE,
  14. GTK_CTREE_EXPANDER_TRIANGLE,GTK_CTREE_EXPANDER_CIRCULAR
  15. );
  16. TGtkCTreeExpansionType = (GTK_CTREE_EXPANSION_EXPAND,GTK_CTREE_EXPANSION_EXPAND_RECURSIVE,
  17. GTK_CTREE_EXPANSION_COLLAPSE,GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE,
  18. GTK_CTREE_EXPANSION_TOGGLE,GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE
  19. );
  20. PGtkCTree = ^TGtkCTree;
  21. PGtkCTreeNode = ^TGtkCTreeNode;
  22. PGtkCTreeRow = ^TGtkCTreeRow;
  23. PGtkCTreeClass = ^TGtkCTreeClass;
  24. TGtkCTreeFunc = procedure (ctree:PGtkCTree; node:PGtkCTreeNode; data:gpointer);cdecl;
  25. TGtkCTreeGNodeFunc = function (ctree:PGtkCTree; depth:guint; gnode:PGNode; cnode:PGtkCTreeNode; data:gpointer):gboolean;cdecl;
  26. TGtkCTreeCompareDragFunc = function (ctree:PGtkCTree; source_node:PGtkCTreeNode; new_parent:PGtkCTreeNode; new_sibling:PGtkCTreeNode):gboolean;cdecl;
  27. TGtkCTree = record
  28. clist : TGtkCList;
  29. lines_gc : PGdkGC;
  30. tree_indent : gint;
  31. tree_spacing : gint;
  32. tree_column : gint;
  33. flag0 : {$ifdef win32}longint{$else}word{$endif};
  34. drag_compare : TGtkCTreeCompareDragFunc;
  35. end;
  36. TGtkCTreeNode = record
  37. list : TGList;
  38. end;
  39. TGtkCTreeRow = record
  40. row : TGtkCListRow;
  41. parent : PGtkCTreeNode;
  42. sibling : PGtkCTreeNode;
  43. children : PGtkCTreeNode;
  44. pixmap_closed : PGdkPixmap;
  45. mask_closed : PGdkBitmap;
  46. pixmap_opened : PGdkPixmap;
  47. mask_opened : PGdkBitmap;
  48. level : guint16;
  49. flag0 : {$ifdef win32}longint{$else}word{$endif};
  50. end;
  51. TGtkCTreeClass = record
  52. parent_class : TGtkCListClass;
  53. tree_select_row : procedure (ctree:PGtkCTree; row:PGtkCTreeNode; column:gint);cdecl;
  54. tree_unselect_row : procedure (ctree:PGtkCTree; row:PGtkCTreeNode; column:gint);cdecl;
  55. tree_expand : procedure (ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;
  56. tree_collapse : procedure (ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;
  57. tree_move : procedure (ctree:PGtkCTree; node:PGtkCTreeNode; new_parent:PGtkCTreeNode; new_sibling:PGtkCTreeNode);cdecl;
  58. change_focus_row_expansion : procedure (ctree:PGtkCTree; action:TGtkCTreeExpansionType);cdecl;
  59. end;
  60. const
  61. bm_TGtkCTree_line_style = $3;
  62. bp_TGtkCTree_line_style = 0;
  63. bm_TGtkCTree_expander_style = $C;
  64. bp_TGtkCTree_expander_style = 2;
  65. bm_TGtkCTree_show_stub = $10;
  66. bp_TGtkCTree_show_stub = 4;
  67. function line_style(var a : TGtkCTree) : guint;
  68. procedure set_line_style(var a : TGtkCTree; __line_style : guint);
  69. function expander_style(var a : TGtkCTree) : guint;
  70. procedure set_expander_style(var a : TGtkCTree; __expander_style : guint);
  71. function show_stub(var a : TGtkCTree) : guint;
  72. procedure set_show_stub(var a : TGtkCTree; __show_stub : guint);
  73. const
  74. bm_TGtkCTreeRow_is_leaf = $1;
  75. bp_TGtkCTreeRow_is_leaf = 0;
  76. bm_TGtkCTreeRow_expanded = $2;
  77. bp_TGtkCTreeRow_expanded = 1;
  78. function is_leaf(var a : TGtkCTreeRow) : guint;
  79. procedure set_is_leaf(var a : TGtkCTreeRow; __is_leaf : guint);
  80. function expanded(var a : TGtkCTreeRow) : guint;
  81. procedure set_expanded(var a : TGtkCTreeRow; __expanded : guint);
  82. function GTK_CTREE_ROW(_node_ : PGList) : PGtkCTreeRow;
  83. function GTK_CTREE_NODE(_node_ : PGList) : PGtkCTreeNode;
  84. function GTK_CTREE_NODE_NEXT(_nnode_ : PGList) : PGtkCTreeNode;
  85. function GTK_CTREE_NODE_PREV(_pnode_ : PGList) : PGtkCTreeNode;
  86. function GTK_CTREE_FUNC(_func_ : pointer) : TGtkCTreeFunc;
  87. type
  88. GTK_CTREE=PGtkCTree;
  89. GTK_CTREE_CLASS=PGtkCTreeClass;
  90. function GTK_CTREE_TYPE:TGtkType;cdecl;external gtkdll name 'gtk_ctree_get_type';
  91. function GTK_IS_CTREE(obj:pointer):boolean;
  92. function GTK_IS_CTREE_CLASS(klass:pointer):boolean;
  93. function gtk_ctree_get_type:TGtkType;cdecl;external gtkdll name 'gtk_ctree_get_type';
  94. procedure gtk_ctree_construct(ctree:PGtkCTree; columns:gint; tree_column:gint; titles:PPgchar);cdecl;external gtkdll name 'gtk_ctree_construct';
  95. function gtk_ctree_new_with_titles(columns:gint; tree_column:gint; titles:PPgchar):PGtkWidget;cdecl;external gtkdll name 'gtk_ctree_new_with_titles';
  96. function gtk_ctree_new(columns:gint; tree_column:gint):PGtkWidget;cdecl;external gtkdll name 'gtk_ctree_new';
  97. function gtk_ctree_insert_node(ctree:PGtkCTree; parent:PGtkCTreeNode; sibling:PGtkCTreeNode; text:PPgchar; spacing:guint8; pixmap_closed:PGdkPixmap; mask_closed:PGdkBitmap; pixmap_opened:PGdkPixmap; mask_opened:PGdkBitmap; is_leaf:gboolean; expanded:gboolean):PGtkCTreeNode;cdecl;external gtkdll name 'gtk_ctree_insert_node';
  98. procedure gtk_ctree_remove_node(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_remove_node';
  99. function gtk_ctree_insert_gnode(ctree:PGtkCTree; parent:PGtkCTreeNode; sibling:PGtkCTreeNode; gnode:PGNode; func:TGtkCTreeGNodeFunc; data:gpointer):PGtkCTreeNode;cdecl;external gtkdll name 'gtk_ctree_insert_gnode';
  100. function gtk_ctree_export_to_gnode(ctree:PGtkCTree; parent:PGNode; sibling:PGNode; node:PGtkCTreeNode; func:TGtkCTreeGNodeFunc; data:gpointer):PGNode;cdecl;external gtkdll name 'gtk_ctree_export_to_gnode';
  101. procedure gtk_ctree_post_recursive(ctree:PGtkCTree; node:PGtkCTreeNode; func:TGtkCTreeFunc; data:gpointer);cdecl;external gtkdll name 'gtk_ctree_post_recursive';
  102. procedure gtk_ctree_post_recursive_to_depth(ctree:PGtkCTree; node:PGtkCTreeNode; depth:gint; func:TGtkCTreeFunc; data:gpointer);cdecl;external gtkdll name 'gtk_ctree_post_recursive_to_depth';
  103. procedure gtk_ctree_pre_recursive(ctree:PGtkCTree; node:PGtkCTreeNode; func:TGtkCTreeFunc; data:gpointer);cdecl;external gtkdll name 'gtk_ctree_pre_recursive';
  104. procedure gtk_ctree_pre_recursive_to_depth(ctree:PGtkCTree; node:PGtkCTreeNode; depth:gint; func:TGtkCTreeFunc; data:gpointer);cdecl;external gtkdll name 'gtk_ctree_pre_recursive_to_depth';
  105. function gtk_ctree_is_viewable(ctree:PGtkCTree; node:PGtkCTreeNode):gboolean;cdecl;external gtkdll name 'gtk_ctree_is_viewable';
  106. function gtk_ctree_last(ctree:PGtkCTree; node:PGtkCTreeNode):PGtkCTreeNode;cdecl;external gtkdll name 'gtk_ctree_last';
  107. function gtk_ctree_find_node_ptr(ctree:PGtkCTree; ctree_row:PGtkCTreeRow):PGtkCTreeNode;cdecl;external gtkdll name 'gtk_ctree_find_node_ptr';
  108. function gtk_ctree_node_nth(ctree:PGtkCTree; row:guint):PGtkCTreeNode;cdecl;external gtkdll name 'gtk_ctree_node_nth';
  109. function gtk_ctree_find(ctree:PGtkCTree; node:PGtkCTreeNode; child:PGtkCTreeNode):gboolean;cdecl;external gtkdll name 'gtk_ctree_find';
  110. function gtk_ctree_is_ancestor(ctree:PGtkCTree; node:PGtkCTreeNode; child:PGtkCTreeNode):gboolean;cdecl;external gtkdll name 'gtk_ctree_is_ancestor';
  111. function gtk_ctree_find_by_row_data(ctree:PGtkCTree; node:PGtkCTreeNode; data:gpointer):PGtkCTreeNode;cdecl;external gtkdll name 'gtk_ctree_find_by_row_data';
  112. {//$ifndef gtkwin}
  113. function gtk_ctree_find_all_by_row_data(ctree:PGtkCTree; node:PGtkCTreeNode; data:gpointer):PGList;cdecl;external gtkdll name 'gtk_ctree_find_all_by_row_data';
  114. function gtk_ctree_find_by_row_data_custom(ctree:PGtkCTree; node:PGtkCTreeNode; data:gpointer; func:TGCompareFunc):PGtkCTreeNode;cdecl;external gtkdll name 'gtk_ctree_find_by_row_data_custom';
  115. function gtk_ctree_find_all_by_row_data_custom(ctree:PGtkCTree; node:PGtkCTreeNode; data:gpointer; func:TGCompareFunc):PGList;cdecl;external gtkdll name 'gtk_ctree_find_all_by_row_data_custom';
  116. {//$endif}
  117. function gtk_ctree_is_hot_spot(ctree:PGtkCTree; x:gint; y:gint):gboolean;cdecl;external gtkdll name 'gtk_ctree_is_hot_spot';
  118. procedure gtk_ctree_node_set_text(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint; text:Pgchar);cdecl;external gtkdll name 'gtk_ctree_node_set_text';
  119. procedure gtk_ctree_node_set_pixmap(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint; pixmap:PGdkPixmap; mask:PGdkBitmap);cdecl;external gtkdll name 'gtk_ctree_node_set_pixmap';
  120. procedure gtk_ctree_node_set_pixtext(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint; text:Pgchar; spacing:guint8; pixmap:PGdkPixmap; mask:PGdkBitmap);cdecl;external gtkdll name 'gtk_ctree_node_set_pixtext';
  121. procedure gtk_ctree_set_node_info(ctree:PGtkCTree; node:PGtkCTreeNode; text:Pgchar; spacing:guint8; pixmap_closed:PGdkPixmap; mask_closed:PGdkBitmap; pixmap_opened:PGdkPixmap; mask_opened:PGdkBitmap; is_leaf:gboolean; expanded:gboolean);cdecl;external gtkdll name 'gtk_ctree_set_node_info';
  122. procedure gtk_ctree_node_set_shift(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint; vertical:gint; horizontal:gint);cdecl;external gtkdll name 'gtk_ctree_node_set_shift';
  123. function gtk_ctree_node_get_selectable(ctree:PGtkCTree; node:PGtkCTreeNode):gboolean;cdecl;external gtkdll name 'gtk_ctree_node_get_selectable';
  124. function gtk_ctree_node_get_cell_type(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint):TGtkCellType;cdecl;external gtkdll name 'gtk_ctree_node_get_cell_type';
  125. function gtk_ctree_node_get_text(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint; text:PPgchar):gint;cdecl;external gtkdll name 'gtk_ctree_node_get_text';
  126. function gtk_ctree_node_get_pixmap(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint; pixmap:PPGdkPixmap; mask:PPGdkBitmap):gint;cdecl;external gtkdll name 'gtk_ctree_node_get_pixmap';
  127. function gtk_ctree_node_get_pixtext(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint; text:PPgchar; spacing:Pguint8; pixmap:PPGdkPixmap; mask:PPGdkBitmap):gint;cdecl;external gtkdll name 'gtk_ctree_node_get_pixtext';
  128. function gtk_ctree_get_node_info(ctree:PGtkCTree; node:PGtkCTreeNode; text:PPgchar; spacing:Pguint8; pixmap_closed:PPGdkPixmap; mask_closed:PPGdkBitmap; pixmap_opened:PPGdkPixmap; mask_opened:PPGdkBitmap; is_leaf:Pgboolean; expanded:Pgboolean):gint;cdecl;external gtkdll name 'gtk_ctree_get_node_info';
  129. procedure gtk_ctree_node_set_row_style(ctree:PGtkCTree; node:PGtkCTreeNode; style:PGtkStyle);cdecl;external gtkdll name 'gtk_ctree_node_set_row_style';
  130. function gtk_ctree_node_get_row_style(ctree:PGtkCTree; node:PGtkCTreeNode):PGtkStyle;cdecl;external gtkdll name 'gtk_ctree_node_get_row_style';
  131. procedure gtk_ctree_node_set_cell_style(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint; style:PGtkStyle);cdecl;external gtkdll name 'gtk_ctree_node_set_cell_style';
  132. function gtk_ctree_node_get_cell_style(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint):PGtkStyle;cdecl;external gtkdll name 'gtk_ctree_node_get_cell_style';
  133. procedure gtk_ctree_node_set_foreground(ctree:PGtkCTree; node:PGtkCTreeNode; color:PGdkColor);cdecl;external gtkdll name 'gtk_ctree_node_set_foreground';
  134. procedure gtk_ctree_node_set_background(ctree:PGtkCTree; node:PGtkCTreeNode; color:PGdkColor);cdecl;external gtkdll name 'gtk_ctree_node_set_background';
  135. procedure gtk_ctree_node_set_row_data(ctree:PGtkCTree; node:PGtkCTreeNode; data:gpointer);cdecl;external gtkdll name 'gtk_ctree_node_set_row_data';
  136. procedure gtk_ctree_node_set_row_data_full(ctree:PGtkCTree; node:PGtkCTreeNode; data:gpointer; destroy:TGtkDestroyNotify);cdecl;external gtkdll name 'gtk_ctree_node_set_row_data_full';
  137. function gtk_ctree_node_get_row_data(ctree:PGtkCTree; node:PGtkCTreeNode):gpointer;cdecl;external gtkdll name 'gtk_ctree_node_get_row_data';
  138. procedure gtk_ctree_node_moveto(ctree:PGtkCTree; node:PGtkCTreeNode; column:gint; row_align:gfloat; col_align:gfloat);cdecl;external gtkdll name 'gtk_ctree_node_moveto';
  139. function gtk_ctree_node_is_visible(ctree:PGtkCTree; node:PGtkCTreeNode):TGtkVisibility;cdecl;external gtkdll name 'gtk_ctree_node_is_visible';
  140. procedure gtk_ctree_set_indent(ctree:PGtkCTree; indent:gint);cdecl;external gtkdll name 'gtk_ctree_set_indent';
  141. procedure gtk_ctree_set_spacing(ctree:PGtkCTree; spacing:gint);cdecl;external gtkdll name 'gtk_ctree_set_spacing';
  142. {//$ifndef gtkwin}
  143. procedure gtk_ctree_set_show_stub(ctree:PGtkCTree; show_stub:gboolean);cdecl;external gtkdll name 'gtk_ctree_set_show_stub';
  144. {//$endif}
  145. procedure gtk_ctree_set_line_style(ctree:PGtkCTree; line_style:TGtkCTreeLineStyle);cdecl;external gtkdll name 'gtk_ctree_set_line_style';
  146. procedure gtk_ctree_set_expander_style(ctree:PGtkCTree; expander_style:TGtkCTreeExpanderStyle);cdecl;external gtkdll name 'gtk_ctree_set_expander_style';
  147. procedure gtk_ctree_set_drag_compare_func(ctree:PGtkCTree; cmp_func:TGtkCTreeCompareDragFunc);cdecl;external gtkdll name 'gtk_ctree_set_drag_compare_func';
  148. procedure gtk_ctree_sort_node(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_sort_node';
  149. procedure gtk_ctree_sort_recursive(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_sort_recursive';
  150. procedure gtk_ctree_move(ctree:PGtkCTree; node:PGtkCTreeNode; new_parent:PGtkCTreeNode; new_sibling:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_move';
  151. procedure gtk_ctree_expand(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_expand';
  152. procedure gtk_ctree_expand_recursive(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_expand_recursive';
  153. procedure gtk_ctree_expand_to_depth(ctree:PGtkCTree; node:PGtkCTreeNode; depth:gint);cdecl;external gtkdll name 'gtk_ctree_expand_to_depth';
  154. procedure gtk_ctree_collapse(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_collapse';
  155. procedure gtk_ctree_collapse_recursive(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_collapse_recursive';
  156. procedure gtk_ctree_collapse_to_depth(ctree:PGtkCTree; node:PGtkCTreeNode; depth:gint);cdecl;external gtkdll name 'gtk_ctree_collapse_to_depth';
  157. procedure gtk_ctree_select(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_select';
  158. procedure gtk_ctree_select_recursive(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_select_recursive';
  159. procedure gtk_ctree_unselect(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_unselect';
  160. procedure gtk_ctree_unselect_recursive(ctree:PGtkCTree; node:PGtkCTreeNode);cdecl;external gtkdll name 'gtk_ctree_unselect_recursive';
  161. procedure gtk_ctree_real_select_recursive(ctree:PGtkCTree; node:PGtkCTreeNode; state:gint);cdecl;external gtkdll name 'gtk_ctree_real_select_recursive';
  162. procedure gtk_ctree_node_set_selectable(ctree:PGtkCTree; node:PGtkCTreeNode; selectable:gboolean);cdecl;external gtkdll name 'gtk_ctree_node_set_selectable';
  163. {$endif read_interface}
  164. {****************************************************************************
  165. Implementation
  166. ****************************************************************************}
  167. {$ifdef read_implementation}
  168. function GTK_CTREE_ROW(_node_ : PGList) : PGtkCTreeRow;
  169. begin
  170. GTK_CTREE_ROW:=PGtkCTreeRow((PGList(_node_))^.data);
  171. end;
  172. function GTK_CTREE_NODE(_node_ : PGList) : PGtkCTreeNode;
  173. begin
  174. GTK_CTREE_NODE:=PGtkCTreeNode(_node_);
  175. end;
  176. function GTK_CTREE_NODE_NEXT(_nnode_ : PGList) : PGtkCTreeNode;
  177. begin
  178. GTK_CTREE_NODE_NEXT:=PGtkCTreeNode((PGList(_nnode_))^.next);
  179. end;
  180. function GTK_CTREE_NODE_PREV(_pnode_ : PGList) : PGtkCTreeNode;
  181. begin
  182. GTK_CTREE_NODE_PREV:=PGtkCTreeNode((PGList(_pnode_))^.prev);
  183. end;
  184. function GTK_CTREE_FUNC(_func_ : pointer) : TGtkCTreeFunc;
  185. begin
  186. GTK_CTREE_FUNC:=TGtkCTreeFunc(_func_);
  187. end;
  188. function line_style(var a : TGtkCTree) : guint;
  189. begin
  190. line_style:=(a.flag0 and bm_TGtkCTree_line_style) shr bp_TGtkCTree_line_style;
  191. end;
  192. procedure set_line_style(var a : TGtkCTree; __line_style : guint);
  193. begin
  194. a.flag0:=a.flag0 or ((__line_style shl bp_TGtkCTree_line_style) and bm_TGtkCTree_line_style);
  195. end;
  196. function expander_style(var a : TGtkCTree) : guint;
  197. begin
  198. expander_style:=(a.flag0 and bm_TGtkCTree_expander_style) shr bp_TGtkCTree_expander_style;
  199. end;
  200. procedure set_expander_style(var a : TGtkCTree; __expander_style : guint);
  201. begin
  202. a.flag0:=a.flag0 or ((__expander_style shl bp_TGtkCTree_expander_style) and bm_TGtkCTree_expander_style);
  203. end;
  204. function show_stub(var a : TGtkCTree) : guint;
  205. begin
  206. show_stub:=(a.flag0 and bm_TGtkCTree_show_stub) shr bp_TGtkCTree_show_stub;
  207. end;
  208. procedure set_show_stub(var a : TGtkCTree; __show_stub : guint);
  209. begin
  210. a.flag0:=a.flag0 or ((__show_stub shl bp_TGtkCTree_show_stub) and bm_TGtkCTree_show_stub);
  211. end;
  212. function is_leaf(var a : TGtkCTreeRow) : guint;
  213. begin
  214. is_leaf:=(a.flag0 and bm_TGtkCTreeRow_is_leaf) shr bp_TGtkCTreeRow_is_leaf;
  215. end;
  216. procedure set_is_leaf(var a : TGtkCTreeRow; __is_leaf : guint);
  217. begin
  218. a.flag0:=a.flag0 or ((__is_leaf shl bp_TGtkCTreeRow_is_leaf) and bm_TGtkCTreeRow_is_leaf);
  219. end;
  220. function expanded(var a : TGtkCTreeRow) : guint;
  221. begin
  222. expanded:=(a.flag0 and bm_TGtkCTreeRow_expanded) shr bp_TGtkCTreeRow_expanded;
  223. end;
  224. procedure set_expanded(var a : TGtkCTreeRow; __expanded : guint);
  225. begin
  226. a.flag0:=a.flag0 or ((__expanded shl bp_TGtkCTreeRow_expanded) and bm_TGtkCTreeRow_expanded);
  227. end;
  228. function GTK_IS_CTREE(obj:pointer):boolean;
  229. begin
  230. GTK_IS_CTREE:=(obj<>nil) and GTK_IS_CTREE_CLASS(PGtkTypeObject(obj)^.klass);
  231. end;
  232. function GTK_IS_CTREE_CLASS(klass:pointer):boolean;
  233. begin
  234. GTK_IS_CTREE_CLASS:=(klass<>nil) and (PGtkTypeClass(klass)^.thetype=GTK_CTREE_TYPE);
  235. end;
  236. {$endif read_implementation}