/packages/gtk2/src/gtk+/gtk/gtktreemodel.inc

https://github.com/slibre/freepascal · Pascal · 202 lines · 140 code · 29 blank · 33 comment · 0 complexity · c7209c1c6c51f8531baca4bed19107fc MD5 · raw file

  1. // included by gtk2.pas
  2. {$IFDEF read_forward_definitions}
  3. // internal type
  4. PPGtkTreeModel = ^PGtkTreeModel;
  5. PGtkTreeModel = pointer;
  6. // internal type
  7. PGtkTreePath = pointer;
  8. PGtkTreeIter = ^TGtkTreeIter;
  9. {$ENDIF read_forward_definitions}
  10. //------------------------------------------------------------------------------
  11. {$IFDEF read_interface_types}
  12. TGtkTreeModelForeachFunc = function (model:PGtkTreeModel; path:PGtkTreePath;
  13. iter:PGtkTreeIter; data:gpointer):gboolean; cdecl;
  14. PGtkTreeModelFlags = ^TGtkTreeModelFlags;
  15. TGtkTreeModelFlags = longint;
  16. TGtkTreeIter = record
  17. stamp : gint;
  18. user_data : gpointer;
  19. user_data2 : gpointer;
  20. user_data3 : gpointer;
  21. end;
  22. { Signals }
  23. { Virtual Table }
  24. PGtkTreeModelIface = ^TGtkTreeModelIface;
  25. TGtkTreeModelIface = record
  26. g_iface : TGTypeInterface;
  27. row_changed : procedure (tree_model:PGtkTreeModel; path:PGtkTreePath; iter:PGtkTreeIter); cdecl;
  28. row_inserted : procedure (tree_model:PGtkTreeModel; path:PGtkTreePath; iter:PGtkTreeIter); cdecl;
  29. row_has_child_toggled : procedure (tree_model:PGtkTreeModel; path:PGtkTreePath; iter:PGtkTreeIter); cdecl;
  30. row_deleted : procedure (tree_model:PGtkTreeModel; path:PGtkTreePath); cdecl;
  31. rows_reordered : procedure (tree_model:PGtkTreeModel; path:PGtkTreePath; iter:PGtkTreeIter; new_order:Pgint); cdecl;
  32. get_flags : function (tree_model:PGtkTreeModel):TGtkTreeModelFlags; cdecl;
  33. get_n_columns : function (tree_model:PGtkTreeModel):gint; cdecl;
  34. get_column_type : function (tree_model:PGtkTreeModel; index:gint):GType; cdecl;
  35. get_iter : function (tree_model:PGtkTreeModel; iter:PGtkTreeIter; path:PGtkTreePath):gboolean; cdecl;
  36. get_path : function (tree_model:PGtkTreeModel; iter:PGtkTreeIter):PGtkTreePath; cdecl;
  37. get_value : procedure (tree_model:PGtkTreeModel; iter:PGtkTreeIter; column:gint; value:PGValue); cdecl;
  38. iter_next : function (tree_model:PGtkTreeModel; iter:PGtkTreeIter):gboolean; cdecl;
  39. iter_children : function (tree_model:PGtkTreeModel; iter:PGtkTreeIter; parent:PGtkTreeIter):gboolean; cdecl;
  40. iter_has_child : function (tree_model:PGtkTreeModel; iter:PGtkTreeIter):gboolean; cdecl;
  41. iter_n_children : function (tree_model:PGtkTreeModel; iter:PGtkTreeIter):gint; cdecl;
  42. iter_nth_child : function (tree_model:PGtkTreeModel; iter:PGtkTreeIter; parent:PGtkTreeIter; n:gint):gboolean; cdecl;
  43. iter_parent : function (tree_model:PGtkTreeModel; iter:PGtkTreeIter; child:PGtkTreeIter):gboolean; cdecl;
  44. ref_node : procedure (tree_model:PGtkTreeModel; iter:PGtkTreeIter); cdecl;
  45. unref_node : procedure (tree_model:PGtkTreeModel; iter:PGtkTreeIter); cdecl;
  46. end;
  47. {$ENDIF read_interface_types}
  48. //------------------------------------------------------------------------------
  49. {$IFDEF read_interface_rest}
  50. const
  51. GTK_TREE_MODEL_ITERS_PERSIST = 1 shl 0;
  52. GTK_TREE_MODEL_LIST_ONLY = 1 shl 1;
  53. function GTK_TYPE_TREE_MODEL : GType;
  54. function GTK_TREE_MODEL(obj: pointer) : PGtkTreeModel;
  55. function GTK_IS_TREE_MODEL(obj: pointer) : boolean;
  56. function GTK_TREE_MODEL_GET_IFACE(obj: pointer) : PGtkTreeModelIface;
  57. function GTK_TYPE_TREE_ITER : GType;
  58. function GTK_TYPE_TREE_PATH : GType;
  59. { return type might be wrong }
  60. { GtkTreePath operations }
  61. function gtk_tree_path_new:PGtkTreePath; cdecl; external gtklib;
  62. function gtk_tree_path_new_from_string(path:Pgchar):PGtkTreePath; cdecl; external gtklib;
  63. function gtk_tree_path_to_string(path:PGtkTreePath):Pgchar; cdecl; external gtklib;
  64. function gtk_tree_path_new_root : PGtkTreePath;
  65. function gtk_tree_path_new_first:PGtkTreePath; cdecl; external gtklib;
  66. procedure gtk_tree_path_append_index(path:PGtkTreePath; index:gint); cdecl; external gtklib;
  67. procedure gtk_tree_path_prepend_index(path:PGtkTreePath; index:gint); cdecl; external gtklib;
  68. function gtk_tree_path_get_depth(path:PGtkTreePath):gint; cdecl; external gtklib;
  69. function gtk_tree_path_get_indices(path:PGtkTreePath):Pgint; cdecl; external gtklib;
  70. procedure gtk_tree_path_free(path:PGtkTreePath); cdecl; external gtklib;
  71. function gtk_tree_path_copy(path:PGtkTreePath):PGtkTreePath; cdecl; external gtklib;
  72. function gtk_tree_path_get_type:GType; cdecl; external gtklib;
  73. function gtk_tree_path_compare(a:PGtkTreePath; b:PGtkTreePath):gint; cdecl; external gtklib;
  74. procedure gtk_tree_path_next(path:PGtkTreePath); cdecl; external gtklib;
  75. function gtk_tree_path_prev(path:PGtkTreePath):gboolean; cdecl; external gtklib;
  76. function gtk_tree_path_up(path:PGtkTreePath):gboolean; cdecl; external gtklib;
  77. procedure gtk_tree_path_down(path:PGtkTreePath); cdecl; external gtklib;
  78. function gtk_tree_path_is_ancestor(path:PGtkTreePath; descendant:PGtkTreePath):gboolean; cdecl; external gtklib;
  79. function gtk_tree_path_is_descendant(path:PGtkTreePath; ancestor:PGtkTreePath):gboolean; cdecl; external gtklib;
  80. { Row reference (an anObject that tracks model changes so it refers to the same
  81. row always; a path refers to a position, not a fixed row). You almost always
  82. want to call gtk_tree_row_reference_new.
  83. }
  84. function gtk_tree_row_reference_new(model:PGtkTreeModel; path:PGtkTreePath):PGtkTreeRowReference; cdecl; external gtklib;
  85. function gtk_tree_row_reference_new_proxy(proxy:PGObject; model:PGtkTreeModel; path:PGtkTreePath):PGtkTreeRowReference; cdecl; external gtklib;
  86. function gtk_tree_row_reference_get_path(reference:PGtkTreeRowReference):PGtkTreePath; cdecl; external gtklib;
  87. function gtk_tree_row_reference_valid(reference:PGtkTreeRowReference):gboolean; cdecl; external gtklib;
  88. procedure gtk_tree_row_reference_free(reference:PGtkTreeRowReference); cdecl; external gtklib;
  89. { These two functions are only needed if you created the row reference with a
  90. proxy anObject }
  91. procedure gtk_tree_row_reference_inserted(proxy:PGObject; path:PGtkTreePath); cdecl; external gtklib;
  92. procedure gtk_tree_row_reference_deleted(proxy:PGObject; path:PGtkTreePath); cdecl; external gtklib;
  93. procedure gtk_tree_row_reference_reordered(proxy:PGObject; path:PGtkTreePath; iter:PGtkTreeIter; new_order:Pgint); cdecl; external gtklib;
  94. { GtkTreeIter operations }
  95. function gtk_tree_iter_copy(iter:PGtkTreeIter):PGtkTreeIter; cdecl; external gtklib;
  96. procedure gtk_tree_iter_free(iter:PGtkTreeIter); cdecl; external gtklib;
  97. function gtk_tree_iter_get_type:GType; cdecl; external gtklib;
  98. function gtk_tree_model_get_type:TGtkType; cdecl; external gtklib;
  99. function gtk_tree_model_get_flags(tree_model:PGtkTreeModel):TGtkTreeModelFlags; cdecl; external gtklib;
  100. function gtk_tree_model_get_n_columns(tree_model:PGtkTreeModel):gint; cdecl; external gtklib;
  101. function gtk_tree_model_get_column_type(tree_model:PGtkTreeModel; index:gint):GType; cdecl; external gtklib;
  102. { Iterator movement }
  103. function gtk_tree_model_get_iter(tree_model:PGtkTreeModel; iter:PGtkTreeIter; path:PGtkTreePath):gboolean; cdecl; external gtklib;
  104. function gtk_tree_model_get_iter_from_string(tree_model:PGtkTreeModel; iter:PGtkTreeIter; path_string:Pgchar):gboolean; cdecl; external gtklib;
  105. function gtk_tree_model_get_iter_root(tree_model:PGtkTreeModel; iter:PGtkTreeIter):gboolean;
  106. function gtk_tree_model_get_iter_first(tree_model:PGtkTreeModel; iter:PGtkTreeIter):gboolean; cdecl; external gtklib;
  107. function gtk_tree_model_get_path(tree_model:PGtkTreeModel; iter:PGtkTreeIter):PGtkTreePath; cdecl; external gtklib;
  108. procedure gtk_tree_model_get_value(tree_model:PGtkTreeModel; iter:PGtkTreeIter; column:gint; value:PGValue); cdecl; external gtklib;
  109. function gtk_tree_model_iter_next(tree_model:PGtkTreeModel; iter:PGtkTreeIter):gboolean; cdecl; external gtklib;
  110. function gtk_tree_model_iter_children(tree_model:PGtkTreeModel; iter:PGtkTreeIter; parent:PGtkTreeIter):gboolean; cdecl; external gtklib;
  111. function gtk_tree_model_iter_has_child(tree_model:PGtkTreeModel; iter:PGtkTreeIter):gboolean; cdecl; external gtklib;
  112. function gtk_tree_model_iter_n_children(tree_model:PGtkTreeModel; iter:PGtkTreeIter):gint; cdecl; external gtklib;
  113. function gtk_tree_model_iter_nth_child(tree_model:PGtkTreeModel; iter:PGtkTreeIter; parent:PGtkTreeIter; n:gint):gboolean; cdecl; external gtklib;
  114. function gtk_tree_model_iter_parent(tree_model:PGtkTreeModel; iter:PGtkTreeIter; child:PGtkTreeIter):gboolean; cdecl; external gtklib;
  115. procedure gtk_tree_model_ref_node(tree_model:PGtkTreeModel; iter:PGtkTreeIter); cdecl; external gtklib;
  116. procedure gtk_tree_model_unref_node(tree_model:PGtkTreeModel; iter:PGtkTreeIter); cdecl; external gtklib;
  117. {$IFNDEF KYLIX}
  118. procedure gtk_tree_model_get(tree_model:PGtkTreeModel; iter:PGtkTreeIter; args:array of const); cdecl; overload; external gtklib;
  119. procedure gtk_tree_model_get(tree_model:PGtkTreeModel; iter:PGtkTreeIter); cdecl; overload; varargs; external gtklib;
  120. procedure gtk_tree_model_get_valist(tree_model:PGtkTreeModel; iter:PGtkTreeIter; var_args: array of const); cdecl; varargs; external gtklib;
  121. {$ELSE}
  122. procedure gtk_tree_model_get(tree_model:PGtkTreeModel; iter:PGtkTreeIter); varargs; cdecl; external gtklib;
  123. procedure gtk_tree_model_get_valist(tree_model:PGtkTreeModel; iter:PGtkTreeIter); varargs; cdecl; external gtklib;
  124. {$ENDIF}
  125. procedure gtk_tree_model_foreach(model:PGtkTreeModel; func:TGtkTreeModelForeachFunc; user_data:gpointer); cdecl; external gtklib;
  126. { Signals }
  127. procedure gtk_tree_model_row_changed(tree_model:PGtkTreeModel; path:PGtkTreePath; iter:PGtkTreeIter); cdecl; external gtklib;
  128. procedure gtk_tree_model_row_inserted(tree_model:PGtkTreeModel; path:PGtkTreePath; iter:PGtkTreeIter); cdecl; external gtklib;
  129. procedure gtk_tree_model_row_has_child_toggled(tree_model:PGtkTreeModel; path:PGtkTreePath; iter:PGtkTreeIter); cdecl; external gtklib;
  130. procedure gtk_tree_model_row_deleted(tree_model:PGtkTreeModel; path:PGtkTreePath); cdecl; external gtklib;
  131. procedure gtk_tree_model_rows_reordered(tree_model:PGtkTreeModel; path:PGtkTreePath; iter:PGtkTreeIter; new_order:Pgint); cdecl; external gtklib;
  132. {$IFDEF HasGTK2_2}
  133. function gtk_tree_model_get_string_from_iter(tree_model:PGtkTreeModel; iter:PGtkTreeIter):Pgchar; cdecl; external gtklib;
  134. function gtk_tree_path_new_from_indices(first_index: gint): PGtkTreePath; cdecl; varargs; external gtklib;
  135. function gtk_tree_row_reference_copy(reference:PGtkTreeRowReference):PGtkTreeRowReference; cdecl; external gtklib;
  136. {$ENDIF}
  137. {$ENDIF read_interface_rest}
  138. //------------------------------------------------------------------------------
  139. {$IFDEF read_implementation}
  140. function GTK_TYPE_TREE_MODEL : GType;
  141. begin
  142. GTK_TYPE_TREE_MODEL:=gtk_tree_model_get_type;
  143. end;
  144. function GTK_TREE_MODEL(obj: pointer) : PGtkTreeModel;
  145. begin
  146. GTK_TREE_MODEL:=PGtkTreeModel(G_TYPE_CHECK_INSTANCE_CAST(obj,GTK_TYPE_TREE_MODEL));
  147. end;
  148. function GTK_IS_TREE_MODEL(obj: pointer) : boolean;
  149. begin
  150. GTK_IS_TREE_MODEL:=G_TYPE_CHECK_INSTANCE_TYPE(obj,GTK_TYPE_TREE_MODEL);
  151. end;
  152. function GTK_TREE_MODEL_GET_IFACE(obj: pointer) : PGtkTreeModelIface;
  153. begin
  154. GTK_TREE_MODEL_GET_IFACE:=PGtkTreeModelIface(G_TYPE_INSTANCE_GET_INTERFACE(obj,GTK_TYPE_TREE_MODEL));
  155. end;
  156. function GTK_TYPE_TREE_ITER : GType;
  157. begin
  158. GTK_TYPE_TREE_ITER:=gtk_tree_iter_get_type;
  159. end;
  160. function GTK_TYPE_TREE_PATH : GType;
  161. begin
  162. GTK_TYPE_TREE_PATH:=gtk_tree_path_get_type;
  163. end;
  164. function gtk_tree_path_new_root : PGtkTreePath;
  165. begin
  166. gtk_tree_path_new_root:=gtk_tree_path_new_first;
  167. end;
  168. function gtk_tree_model_get_iter_root(tree_model:PGtkTreeModel; iter:PGtkTreeIter):gboolean;
  169. begin
  170. gtk_tree_model_get_iter_root:=gtk_tree_model_get_iter_first(tree_model,iter);
  171. end;
  172. {$ENDIF read_implementation}
  173. // included by gtk2.pas