gtktextbuffer.inc 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. // included by gtk2.pas
  2. {$IFDEF read_forward_definitions}
  3. {$ENDIF read_forward_definitions}
  4. //------------------------------------------------------------------------------
  5. {$IFDEF read_interface_types}
  6. // internal type
  7. PGtkTextLogAttrCache = pointer;
  8. { Whether the buffer has been modified since last save }
  9. PGtkTextBuffer = ^TGtkTextBuffer;
  10. TGtkTextBuffer = record
  11. parent_instance : TGObject;
  12. tag_table : PGtkTextTagTable;
  13. btree : PGtkTextBTree;
  14. clipboard_contents_buffers : PGSList;
  15. selection_clipboards : PGSList;
  16. log_attr_cache : PGtkTextLogAttrCache;
  17. user_action_count : guint;
  18. flag0 : word;
  19. end;
  20. { Only for text/widgets/pixbuf changed, marks/tags don't cause this
  21. to be emitted
  22. }
  23. { New value for the modified flag }
  24. { Mark moved or created }
  25. { Called at the start and theEnd of an atomic user action }
  26. { Padding for future expansion }
  27. PGtkTextBufferClass = ^TGtkTextBufferClass;
  28. TGtkTextBufferClass = record
  29. parent_class : TGObjectClass;
  30. insert_text : procedure (buffer:PGtkTextBuffer; pos:PGtkTextIter; text:Pgchar; length:gint); cdecl;
  31. insert_pixbuf : procedure (buffer:PGtkTextBuffer; pos:PGtkTextIter; pixbuf:PGdkPixbuf); cdecl;
  32. insert_child_anchor : procedure (buffer:PGtkTextBuffer; pos:PGtkTextIter; anchor:PGtkTextChildAnchor); cdecl;
  33. delete_range : procedure (buffer:PGtkTextBuffer; start:PGtkTextIter; theEnd:PGtkTextIter); cdecl;
  34. changed : procedure (buffer:PGtkTextBuffer); cdecl;
  35. modified_changed : procedure (buffer:PGtkTextBuffer); cdecl;
  36. mark_set : procedure (buffer:PGtkTextBuffer; location:PGtkTextIter; mark:PGtkTextMark); cdecl;
  37. mark_deleted : procedure (buffer:PGtkTextBuffer; mark:PGtkTextMark); cdecl;
  38. apply_tag : procedure (buffer:PGtkTextBuffer; tag:PGtkTextTag; start_char:PGtkTextIter; end_char:PGtkTextIter); cdecl;
  39. remove_tag : procedure (buffer:PGtkTextBuffer; tag:PGtkTextTag; start_char:PGtkTextIter; end_char:PGtkTextIter); cdecl;
  40. begin_user_action : procedure (buffer:PGtkTextBuffer); cdecl;
  41. end_user_action : procedure (buffer:PGtkTextBuffer); cdecl;
  42. _gtk_reserved1 : procedure ; cdecl;
  43. _gtk_reserved2 : procedure ; cdecl;
  44. _gtk_reserved3 : procedure ; cdecl;
  45. _gtk_reserved4 : procedure ; cdecl;
  46. _gtk_reserved5 : procedure ; cdecl;
  47. _gtk_reserved6 : procedure ; cdecl;
  48. end;
  49. {$ENDIF read_interface_types}
  50. //------------------------------------------------------------------------------
  51. {$IFDEF read_interface_rest}
  52. const
  53. bm_TGtkTextBuffer_modified = $1;
  54. bp_TGtkTextBuffer_modified = 0;
  55. {
  56. This is the PUBLIC representation of a text buffer.
  57. GtkTextBTree is the PRIVATE internal representation of it.
  58. }
  59. function GTK_TYPE_TEXT_BUFFER : GType;
  60. function GTK_TEXT_BUFFER(obj: pointer) : PGtkTextBuffer;
  61. function GTK_TEXT_BUFFER_CLASS(klass: pointer) : PGtkTextBufferClass;
  62. function GTK_IS_TEXT_BUFFER(obj: pointer) : boolean;
  63. function GTK_IS_TEXT_BUFFER_CLASS(klass: pointer) : boolean;
  64. function GTK_TEXT_BUFFER_GET_CLASS(obj: pointer) : PGtkTextBufferClass;
  65. function modified(var a : TGtkTextBuffer) : guint;
  66. procedure set_modified(var a : TGtkTextBuffer; __modified : guint);
  67. function gtk_text_buffer_get_type:GType; cdecl; external gtklib;
  68. { table is NULL to create a new one }
  69. function gtk_text_buffer_new(table:PGtkTextTagTable):PGtkTextBuffer; cdecl; external gtklib;
  70. function gtk_text_buffer_get_line_count(buffer:PGtkTextBuffer):gint; cdecl; external gtklib;
  71. function gtk_text_buffer_get_char_count(buffer:PGtkTextBuffer):gint; cdecl; external gtklib;
  72. function gtk_text_buffer_get_tag_table(buffer:PGtkTextBuffer):PGtkTextTagTable; cdecl; external gtklib;
  73. { Delete whole buffer, then insert }
  74. procedure gtk_text_buffer_set_text(buffer:PGtkTextBuffer; text:Pgchar; len:gint); cdecl; external gtklib;
  75. { Insert into the buffer }
  76. procedure gtk_text_buffer_insert(buffer:PGtkTextBuffer; iter:PGtkTextIter; text:Pgchar; len:gint); cdecl; external gtklib;
  77. procedure gtk_text_buffer_insert_at_cursor(buffer:PGtkTextBuffer; text:Pgchar; len:gint); cdecl; external gtklib;
  78. function gtk_text_buffer_insert_interactive(buffer:PGtkTextBuffer; iter:PGtkTextIter; text:Pgchar; len:gint; default_editable:gboolean):gboolean; cdecl; external gtklib;
  79. function gtk_text_buffer_insert_interactive_at_cursor(buffer:PGtkTextBuffer; text:Pgchar; len:gint; default_editable:gboolean):gboolean; cdecl; external gtklib;
  80. procedure gtk_text_buffer_insert_range(buffer:PGtkTextBuffer; iter:PGtkTextIter; start:PGtkTextIter; theEnd:PGtkTextIter); cdecl; external gtklib;
  81. function gtk_text_buffer_insert_range_interactive(buffer:PGtkTextBuffer; iter:PGtkTextIter; start:PGtkTextIter; theEnd:PGtkTextIter; default_editable:gboolean):gboolean; cdecl; external gtklib;
  82. {$IFNDEF KYLIX}
  83. procedure gtk_text_buffer_insert_with_tags(buffer:PGtkTextBuffer; iter:PGtkTextIter; text:Pgchar; len:gint; first_tag:PGtkTextTag;
  84. args:array of const); cdecl; overload; external gtklib;
  85. procedure gtk_text_buffer_insert_with_tags(buffer:PGtkTextBuffer; iter:PGtkTextIter; text:Pgchar; len:gint; first_tag:PGtkTextTag); cdecl; overload; external gtklib;
  86. procedure gtk_text_buffer_insert_with_tags_by_name(buffer:PGtkTextBuffer; iter:PGtkTextIter; text:Pgchar; len:gint; first_tag_name:Pgchar;
  87. args:array of const); cdecl; overload; external gtklib;
  88. procedure gtk_text_buffer_insert_with_tags_by_name(buffer:PGtkTextBuffer; iter:PGtkTextIter; text:Pgchar; len:gint; first_tag_name:Pgchar); cdecl; overload; external gtklib;
  89. {$ELSE}
  90. procedure gtk_text_buffer_insert_with_tags(buffer:PGtkTextBuffer; iter:PGtkTextIter; text:Pgchar; len:gint; first_tag:PGtkTextTag); varargs; cdecl; external gtklib;
  91. procedure gtk_text_buffer_insert_with_tags_by_name(buffer:PGtkTextBuffer; iter:PGtkTextIter; text:Pgchar; len:gint; first_tag_name:Pgchar); varargs; cdecl; external gtklib;
  92. {$ENDIF}
  93. { Delete from the buffer }
  94. procedure gtk_text_buffer_delete(buffer:PGtkTextBuffer; start:PGtkTextIter; theEnd:PGtkTextIter); cdecl; external gtklib;
  95. function gtk_text_buffer_delete_interactive(buffer:PGtkTextBuffer; start_iter:PGtkTextIter; end_iter:PGtkTextIter; default_editable:gboolean):gboolean; cdecl; external gtklib;
  96. { Obtain strings from the buffer }
  97. function gtk_text_buffer_get_text(buffer:PGtkTextBuffer; start:PGtkTextIter; theEnd:PGtkTextIter; include_hidden_chars:gboolean):Pgchar; cdecl; external gtklib;
  98. function gtk_text_buffer_get_slice(buffer:PGtkTextBuffer; start:PGtkTextIter; theEnd:PGtkTextIter; include_hidden_chars:gboolean):Pgchar; cdecl; external gtklib;
  99. { Insert a pixbuf }
  100. procedure gtk_text_buffer_insert_pixbuf(buffer:PGtkTextBuffer; iter:PGtkTextIter; pixbuf:PGdkPixbuf); cdecl; external gtklib;
  101. { Insert a child anchor }
  102. procedure gtk_text_buffer_insert_child_anchor(buffer:PGtkTextBuffer; iter:PGtkTextIter; anchor:PGtkTextChildAnchor); cdecl; external gtklib;
  103. { Convenience, create and insert a child anchor }
  104. function gtk_text_buffer_create_child_anchor(buffer:PGtkTextBuffer; iter:PGtkTextIter):PGtkTextChildAnchor; cdecl; external gtklib;
  105. { Mark manipulation }
  106. function gtk_text_buffer_create_mark(buffer:PGtkTextBuffer; mark_name:Pgchar; where:PGtkTextIter; left_gravity:gboolean):PGtkTextMark; cdecl; external gtklib;
  107. procedure gtk_text_buffer_move_mark(buffer:PGtkTextBuffer; mark:PGtkTextMark; where:PGtkTextIter); cdecl; external gtklib;
  108. procedure gtk_text_buffer_delete_mark(buffer:PGtkTextBuffer; mark:PGtkTextMark); cdecl; external gtklib;
  109. function gtk_text_buffer_get_mark(buffer:PGtkTextBuffer; name:Pgchar):PGtkTextMark; cdecl; external gtklib;
  110. procedure gtk_text_buffer_move_mark_by_name(buffer:PGtkTextBuffer; name:Pgchar; where:PGtkTextIter); cdecl; external gtklib;
  111. procedure gtk_text_buffer_delete_mark_by_name(buffer:PGtkTextBuffer; name:Pgchar); cdecl; external gtklib;
  112. function gtk_text_buffer_get_insert(buffer:PGtkTextBuffer):PGtkTextMark; cdecl; external gtklib;
  113. function gtk_text_buffer_get_selection_bound(buffer:PGtkTextBuffer):PGtkTextMark; cdecl; external gtklib;
  114. { efficiently move insert and selection_bound to same location }
  115. procedure gtk_text_buffer_place_cursor(buffer:PGtkTextBuffer; where:PGtkTextIter); cdecl; external gtklib;
  116. { Tag manipulation }
  117. procedure gtk_text_buffer_apply_tag(buffer:PGtkTextBuffer; tag:PGtkTextTag; start:PGtkTextIter; theEnd:PGtkTextIter); cdecl; external gtklib;
  118. procedure gtk_text_buffer_remove_tag(buffer:PGtkTextBuffer; tag:PGtkTextTag; start:PGtkTextIter; theEnd:PGtkTextIter); cdecl; external gtklib;
  119. procedure gtk_text_buffer_apply_tag_by_name(buffer:PGtkTextBuffer; name:Pgchar; start:PGtkTextIter; theEnd:PGtkTextIter); cdecl; external gtklib;
  120. procedure gtk_text_buffer_remove_tag_by_name(buffer:PGtkTextBuffer; name:Pgchar; start:PGtkTextIter; theEnd:PGtkTextIter); cdecl; external gtklib;
  121. procedure gtk_text_buffer_remove_all_tags(buffer:PGtkTextBuffer; start:PGtkTextIter; theEnd:PGtkTextIter); cdecl; external gtklib;
  122. { You can either ignore the return value, or use it to
  123. set the attributes of the tag. tag_name can be NULL
  124. }
  125. {$IFNDEF KYLIX}
  126. function gtk_text_buffer_create_tag(buffer:PGtkTextBuffer; tag_name:Pgchar; first_property_name:Pgchar; args:array of const):PGtkTextTag; cdecl; overload; external gtklib;
  127. function gtk_text_buffer_create_tag(buffer:PGtkTextBuffer; tag_name:Pgchar; first_property_name:Pgchar):PGtkTextTag; cdecl; overload; external gtklib;
  128. {$ELSE}
  129. function gtk_text_buffer_create_tag(buffer:PGtkTextBuffer; tag_name:Pgchar; first_property_name:Pgchar):PGtkTextTag; varargs; cdecl; external gtklib;
  130. {$ENDIF}
  131. { Obtain iterators pointed at various places, then you can move the
  132. iterator around using the GtkTextIter operators
  133. }
  134. procedure gtk_text_buffer_get_iter_at_line_offset(buffer:PGtkTextBuffer; iter:PGtkTextIter; line_number:gint; char_offset:gint); cdecl; external gtklib;
  135. procedure gtk_text_buffer_get_iter_at_line_index(buffer:PGtkTextBuffer; iter:PGtkTextIter; line_number:gint; byte_index:gint); cdecl; external gtklib;
  136. procedure gtk_text_buffer_get_iter_at_offset(buffer:PGtkTextBuffer; iter:PGtkTextIter; char_offset:gint); cdecl; external gtklib;
  137. procedure gtk_text_buffer_get_iter_at_line(buffer:PGtkTextBuffer; iter:PGtkTextIter; line_number:gint); cdecl; external gtklib;
  138. procedure gtk_text_buffer_get_start_iter(buffer:PGtkTextBuffer; iter:PGtkTextIter); cdecl; external gtklib;
  139. procedure gtk_text_buffer_get_end_iter(buffer:PGtkTextBuffer; iter:PGtkTextIter); cdecl; external gtklib;
  140. procedure gtk_text_buffer_get_bounds(buffer:PGtkTextBuffer; start:PGtkTextIter; theEnd:PGtkTextIter); cdecl; external gtklib;
  141. procedure gtk_text_buffer_get_iter_at_mark(buffer:PGtkTextBuffer; iter:PGtkTextIter; mark:PGtkTextMark); cdecl; external gtklib;
  142. procedure gtk_text_buffer_get_iter_at_child_anchor(buffer:PGtkTextBuffer; iter:PGtkTextIter; anchor:PGtkTextChildAnchor); cdecl; external gtklib;
  143. { There's no get_first_iter because you just get the iter for
  144. line or char 0 }
  145. { Used to keep track of whether the buffer needs saving; anytime the
  146. buffer contents change, the modified flag is turned on. Whenever
  147. you save, turn it off. Tags and marks do not affect the modified
  148. flag, but if you would like them to you can connect a handler to
  149. the tag/mark signals and call set_modified in your handler }
  150. function gtk_text_buffer_get_modified(buffer:PGtkTextBuffer):gboolean; cdecl; external gtklib;
  151. procedure gtk_text_buffer_set_modified(buffer:PGtkTextBuffer; setting:gboolean); cdecl; external gtklib;
  152. procedure gtk_text_buffer_add_selection_clipboard(buffer:PGtkTextBuffer; clipboard:PGtkClipboard); cdecl; external gtklib;
  153. procedure gtk_text_buffer_remove_selection_clipboard(buffer:PGtkTextBuffer; clipboard:PGtkClipboard); cdecl; external gtklib;
  154. procedure gtk_text_buffer_cut_clipboard(buffer:PGtkTextBuffer; clipboard:PGtkClipboard; default_editable:gboolean); cdecl; external gtklib;
  155. procedure gtk_text_buffer_copy_clipboard(buffer:PGtkTextBuffer; clipboard:PGtkClipboard); cdecl; external gtklib;
  156. procedure gtk_text_buffer_paste_clipboard(buffer:PGtkTextBuffer; clipboard:PGtkClipboard; override_location:PGtkTextIter; default_editable:gboolean); cdecl; external gtklib;
  157. function gtk_text_buffer_get_selection_bounds(buffer:PGtkTextBuffer; start:PGtkTextIter; theEnd:PGtkTextIter):gboolean; cdecl; external gtklib;
  158. function gtk_text_buffer_delete_selection(buffer:PGtkTextBuffer; interactive:gboolean; default_editable:gboolean):gboolean; cdecl; external gtklib;
  159. { Called to specify atomic user actions, used to implement undo }
  160. procedure gtk_text_buffer_begin_user_action(buffer:PGtkTextBuffer); cdecl; external gtklib;
  161. procedure gtk_text_buffer_end_user_action(buffer:PGtkTextBuffer); cdecl; external gtklib;
  162. { INTERNAL private stuff }
  163. procedure _gtk_text_buffer_spew(buffer:PGtkTextBuffer); cdecl; external gtklib;
  164. function _gtk_text_buffer_get_btree(buffer:PGtkTextBuffer):PGtkTextBTree; cdecl; external gtklib;
  165. function _gtk_text_buffer_get_line_log_attrs(buffer:PGtkTextBuffer; anywhere_in_line:PGtkTextIter; char_len:Pgint):PPangoLogAttr; cdecl; external gtklib;
  166. procedure _gtk_text_buffer_notify_will_remove_tag(buffer:PGtkTextBuffer; tag:PGtkTextTag); cdecl; external gtklib;
  167. {$ENDIF read_interface_rest}
  168. //------------------------------------------------------------------------------
  169. {$IFDEF read_implementation}
  170. function GTK_TYPE_TEXT_BUFFER : GType;
  171. begin
  172. GTK_TYPE_TEXT_BUFFER:=gtk_text_buffer_get_type;
  173. end;
  174. function GTK_TEXT_BUFFER(obj: pointer) : PGtkTextBuffer;
  175. begin
  176. GTK_TEXT_BUFFER:=PGtkTextBuffer(G_TYPE_CHECK_INSTANCE_CAST(obj,GTK_TYPE_TEXT_BUFFER));
  177. end;
  178. function GTK_TEXT_BUFFER_CLASS(klass: pointer) : PGtkTextBufferClass;
  179. begin
  180. GTK_TEXT_BUFFER_CLASS:=PGtkTextBufferClass(G_TYPE_CHECK_CLASS_CAST(klass,GTK_TYPE_TEXT_BUFFER));
  181. end;
  182. function GTK_IS_TEXT_BUFFER(obj: pointer) : boolean;
  183. begin
  184. GTK_IS_TEXT_BUFFER:=G_TYPE_CHECK_INSTANCE_TYPE(obj,GTK_TYPE_TEXT_BUFFER);
  185. end;
  186. function GTK_IS_TEXT_BUFFER_CLASS(klass: pointer) : boolean;
  187. begin
  188. GTK_IS_TEXT_BUFFER_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,GTK_TYPE_TEXT_BUFFER);
  189. end;
  190. function GTK_TEXT_BUFFER_GET_CLASS(obj: pointer) : PGtkTextBufferClass;
  191. begin
  192. GTK_TEXT_BUFFER_GET_CLASS:=PGtkTextBufferClass(G_TYPE_INSTANCE_GET_CLASS(obj,GTK_TYPE_TEXT_BUFFER));
  193. end;
  194. function modified(var a : TGtkTextBuffer) : guint;
  195. begin
  196. modified:=(a.flag0 and bm_TGtkTextBuffer_modified) shr bp_TGtkTextBuffer_modified;
  197. end;
  198. procedure set_modified(var a : TGtkTextBuffer; __modified : guint);
  199. begin
  200. a.flag0:=a.flag0 or ((__modified shl bp_TGtkTextBuffer_modified) and bm_TGtkTextBuffer_modified);
  201. end;
  202. {$ENDIF read_implementation}
  203. // included by gtk2.pas