summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/gtk2/src/gtk+/gtk/gtktextiter.inc
blob: cd114a3cb1d2d221afd797a9b0018ee6110a10c2 (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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
// included by gtk2.pas

{$IFDEF read_forward_definitions}
{$ENDIF read_forward_definitions}

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

{$IFDEF read_interface_types}
{ Possible future plans: SEARCH_CASE_INSENSITIVE, SEARCH_REGEXP  }
   PGtkTextSearchFlags = ^TGtkTextSearchFlags;
   TGtkTextSearchFlags = longint;

{ GtkTextIter is an opaque datatype; ignore all these fields.
     Initialize the iter with gtk_text_buffer_get_iter_
     functions
    }
{< private > }
{ padding  }
   PGtkTextIter = ^TGtkTextIter;
   TGtkTextIter = record
        dummy1 : gpointer;
        dummy2 : gpointer;
        dummy3 : gint;
        dummy4 : gint;
        dummy5 : gint;
        dummy6 : gint;
        dummy7 : gint;
        dummy8 : gint;
        dummy9 : gpointer;
        dummy10 : gpointer;
        dummy11 : gint;
        dummy12 : gint;
        dummy13 : gint;
        dummy14 : gpointer;
     end;

   TGtkTextCharPredicate = function (ch:gunichar; user_data:gpointer):gboolean; cdecl;
{$ENDIF read_interface_types}

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

{$IFDEF read_interface_rest}

const
   GTK_TEXT_SEARCH_VISIBLE_ONLY = 0;  (* values of TGtkTextSearchFlags *)
   GTK_TEXT_SEARCH_TEXT_ONLY    = 1;

{
   Iter: represents a location in the text. Becomes invalid if the
   characters/pixmaps/widgets (indexable objects) in the text buffer
   are changed.
  }
function GTK_TYPE_TEXT_ITER : GType;

{ This is primarily intended for language bindings that want to avoid
  a "buffer" argument to text insertions, deletions, etc.  }
function gtk_text_iter_get_buffer(iter:PGtkTextIter):PGtkTextBuffer; cdecl; external gtklib;
{
   Life cycle
  }
function gtk_text_iter_copy(iter:PGtkTextIter):PGtkTextIter; cdecl; external gtklib;
procedure gtk_text_iter_free(iter:PGtkTextIter); cdecl; external gtklib;
function gtk_text_iter_get_type:GType; cdecl; external gtklib;
{
   Convert to different kinds of index
  }
function gtk_text_iter_get_offset(iter:PGtkTextIter):gint; cdecl; external gtklib;
function gtk_text_iter_get_line(iter:PGtkTextIter):gint; cdecl; external gtklib;
function gtk_text_iter_get_line_offset(iter:PGtkTextIter):gint; cdecl; external gtklib;
function gtk_text_iter_get_line_index(iter:PGtkTextIter):gint; cdecl; external gtklib;
function gtk_text_iter_get_visible_line_offset(iter:PGtkTextIter):gint; cdecl; external gtklib;
function gtk_text_iter_get_visible_line_index(iter:PGtkTextIter):gint; cdecl; external gtklib;
{
   "Dereference" operators
  }

function gtk_text_iter_get_char(iter:PGtkTextIter):gunichar; cdecl; external gtklib;

{ includes the 0xFFFC char for pixmaps/widgets, so char offsets
   into the returned string map properly into buffer char offsets
  }
function gtk_text_iter_get_slice(start:PGtkTextIter; theEnd:PGtkTextIter):Pgchar; cdecl; external gtklib;

{ includes only text, no 0xFFFC  }
function gtk_text_iter_get_text(start:PGtkTextIter; theEnd:PGtkTextIter):Pgchar; cdecl; external gtklib;

{ exclude invisible chars  }
function gtk_text_iter_get_visible_slice(start:PGtkTextIter; theEnd:PGtkTextIter):Pgchar; cdecl; external gtklib;
function gtk_text_iter_get_visible_text(start:PGtkTextIter; theEnd:PGtkTextIter):Pgchar; cdecl; external gtklib;
function gtk_text_iter_get_pixbuf(iter:PGtkTextIter):PGdkPixbuf; cdecl; external gtklib;
function gtk_text_iter_get_marks(iter:PGtkTextIter):PGSList; cdecl; external gtklib;
function gtk_text_iter_get_child_anchor(iter:PGtkTextIter):PGtkTextChildAnchor; cdecl; external gtklib;
{ Return list of tags toggled at this point (toggled_on determines
   whether the list is of on-toggles or off-toggles)
  }
function gtk_text_iter_get_toggled_tags(iter:PGtkTextIter; toggled_on:gboolean):PGSList; cdecl; external gtklib;
function gtk_text_iter_begins_tag(iter:PGtkTextIter; tag:PGtkTextTag):gboolean; cdecl; external gtklib;
function gtk_text_iter_ends_tag(iter:PGtkTextIter; tag:PGtkTextTag):gboolean; cdecl; external gtklib;
function gtk_text_iter_toggles_tag(iter:PGtkTextIter; tag:PGtkTextTag):gboolean; cdecl; external gtklib;
function gtk_text_iter_has_tag(iter:PGtkTextIter; tag:PGtkTextTag):gboolean; cdecl; external gtklib;
function gtk_text_iter_get_tags(iter:PGtkTextIter):PGSList; cdecl; external gtklib;
function gtk_text_iter_editable(iter:PGtkTextIter; default_setting:gboolean):gboolean; cdecl; external gtklib;
function gtk_text_iter_can_insert(iter:PGtkTextIter; default_editability:gboolean):gboolean; cdecl; external gtklib;
function gtk_text_iter_starts_word(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_ends_word(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_inside_word(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_starts_sentence(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_ends_sentence(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_inside_sentence(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_starts_line(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_ends_line(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_is_cursor_position(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_get_chars_in_line(iter:PGtkTextIter):gint; cdecl; external gtklib;
function gtk_text_iter_get_bytes_in_line(iter:PGtkTextIter):gint; cdecl; external gtklib;
function gtk_text_iter_get_attributes(iter:PGtkTextIter; values:PGtkTextAttributes):gboolean; cdecl; external gtklib;
function gtk_text_iter_get_language(iter:PGtkTextIter):PPangoLanguage; cdecl; external gtklib;
function gtk_text_iter_is_end(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_is_start(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
{
   Moving around the buffer
  }
function gtk_text_iter_forward_char(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_char(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_chars(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_chars(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_line(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_line(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_lines(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_lines(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_word_end(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_word_start(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_word_ends(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_word_starts(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_sentence_end(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_sentence_start(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_sentence_ends(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_sentence_starts(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
{ cursor positions are almost equivalent to chars, but not quite;
   in some languages, you can't put the cursor between certain
   chars. Also, you can't put the cursor between \r\n at the theEnd
   of a line.
  }
function gtk_text_iter_forward_cursor_position(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_cursor_position(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_cursor_positions(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_cursor_positions(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
procedure gtk_text_iter_set_offset(iter:PGtkTextIter; char_offset:gint); cdecl; external gtklib;
procedure gtk_text_iter_set_line(iter:PGtkTextIter; line_number:gint); cdecl; external gtklib;
procedure gtk_text_iter_set_line_offset(iter:PGtkTextIter; char_on_line:gint); cdecl; external gtklib;
procedure gtk_text_iter_set_line_index(iter:PGtkTextIter; byte_on_line:gint); cdecl; external gtklib;
procedure gtk_text_iter_forward_to_end(iter:PGtkTextIter); cdecl; external gtklib;
function gtk_text_iter_forward_to_line_end(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
procedure gtk_text_iter_set_visible_line_offset(iter:PGtkTextIter; char_on_line:gint); cdecl; external gtklib;
procedure gtk_text_iter_set_visible_line_index(iter:PGtkTextIter; byte_on_line:gint); cdecl; external gtklib;
{ returns TRUE if a toggle was found; NULL for the tag pointer
   means "any tag toggle", otherwise the next toggle of the
   specified tag is located.
  }
function gtk_text_iter_forward_to_tag_toggle(iter:PGtkTextIter; tag:PGtkTextTag):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_to_tag_toggle(iter:PGtkTextIter; tag:PGtkTextTag):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_find_char(iter:PGtkTextIter; pred:TGtkTextCharPredicate; user_data:gpointer; limit:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_find_char(iter:PGtkTextIter; pred:TGtkTextCharPredicate; user_data:gpointer; limit:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_search(iter:PGtkTextIter; str:Pgchar; flags:TGtkTextSearchFlags; match_start:PGtkTextIter; match_end:PGtkTextIter;
           limit:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_search(iter:PGtkTextIter; str:Pgchar; flags:TGtkTextSearchFlags; match_start:PGtkTextIter; match_end:PGtkTextIter;
           limit:PGtkTextIter):gboolean; cdecl; external gtklib;
{
   Comparisons
  }
function gtk_text_iter_equal(lhs:PGtkTextIter; rhs:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_compare(lhs:PGtkTextIter; rhs:PGtkTextIter):gint; cdecl; external gtklib;
function gtk_text_iter_in_range(iter:PGtkTextIter; start:PGtkTextIter; theEnd:PGtkTextIter):gboolean; cdecl; external gtklib;
{ Put these two in ascending order  }
procedure gtk_text_iter_order(first:PGtkTextIter; second:PGtkTextIter); cdecl; external gtklib;

{$ifdef HasGTK2_4}
function gtk_text_iter_backward_visible_cursor_position(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_visible_cursor_positions(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_visible_word_start(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_backward_visible_word_starts(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_visible_cursor_position(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_visible_cursor_positions(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_visible_word_end(iter:PGtkTextIter):gboolean; cdecl; external gtklib;
function gtk_text_iter_forward_visible_word_ends(iter:PGtkTextIter; count:gint):gboolean; cdecl; external gtklib;
{$endif}

{$ENDIF read_interface_rest}

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

{$IFDEF read_implementation}
function GTK_TYPE_TEXT_ITER : GType;
begin
   GTK_TYPE_TEXT_ITER:=gtk_text_iter_get_type;
end;

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