1 #ifndef GTK_TEXT_ITER_H
2 #define GTK_TEXT_ITER_H
4 #include <gtk/gtktexttag.h>
8 #endif /* __cplusplus */
11 * Iter: represents a location in the text. Becomes invalid if the
12 * characters/pixmaps/widgets (indexable objects) in the text buffer
16 typedef struct _GtkTextBuffer GtkTextBuffer;
35 /* This is primarily intended for language bindings that want to avoid
36 a "buffer" argument to text insertions, deletions, etc. */
37 GtkTextBuffer *gtk_text_iter_get_buffer(const GtkTextIter *iter);
43 GtkTextIter *gtk_text_iter_copy (const GtkTextIter *iter);
44 void gtk_text_iter_free (GtkTextIter *iter);
47 * Convert to different kinds of index
50 gint gtk_text_iter_get_offset (const GtkTextIter *iter);
51 gint gtk_text_iter_get_line (const GtkTextIter *iter);
52 gint gtk_text_iter_get_line_offset (const GtkTextIter *iter);
53 gint gtk_text_iter_get_line_index (const GtkTextIter *iter);
57 * "Dereference" operators
59 gunichar gtk_text_iter_get_char (const GtkTextIter *iter);
61 /* includes the 0xFFFD char for pixmaps/widgets, so char offsets
62 into the returned string map properly into buffer char offsets */
63 gchar *gtk_text_iter_get_slice (const GtkTextIter *start,
64 const GtkTextIter *end);
66 /* includes only text, no 0xFFFD */
67 gchar *gtk_text_iter_get_text (const GtkTextIter *start,
68 const GtkTextIter *end);
69 /* exclude invisible chars */
70 gchar *gtk_text_iter_get_visible_slice (const GtkTextIter *start,
71 const GtkTextIter *end);
72 gchar *gtk_text_iter_get_visible_text (const GtkTextIter *start,
73 const GtkTextIter *end);
75 /* Returns TRUE if the iterator pointed at a pixmap */
76 gboolean gtk_text_iter_get_pixmap (const GtkTextIter *iter,
80 GSList *gtk_text_iter_get_marks (const GtkTextIter *iter);
82 /* Return list of tags toggled at this point (toggled_on determines
83 whether the list is of on-toggles or off-toggles) */
84 GSList *gtk_text_iter_get_toggled_tags (const GtkTextIter *iter,
87 gboolean gtk_text_iter_begins_tag (const GtkTextIter *iter,
90 gboolean gtk_text_iter_ends_tag (const GtkTextIter *iter,
93 gboolean gtk_text_iter_toggles_tag (const GtkTextIter *iter,
96 gboolean gtk_text_iter_has_tag (const GtkTextIter *iter,
99 gboolean gtk_text_iter_editable (const GtkTextIter *iter,
100 gboolean default_setting);
102 gboolean gtk_text_iter_starts_line (const GtkTextIter *iter);
103 gboolean gtk_text_iter_ends_line (const GtkTextIter *iter);
105 gint gtk_text_iter_get_chars_in_line (const GtkTextIter *iter);
107 gboolean gtk_text_iter_get_style_values (const GtkTextIter *iter,
108 GtkTextStyleValues *values);
110 gboolean gtk_text_iter_is_last (const GtkTextIter *iter);
111 gboolean gtk_text_iter_is_first (const GtkTextIter *iter);
114 * Moving around the buffer
117 gboolean gtk_text_iter_next_char (GtkTextIter *iter);
118 gboolean gtk_text_iter_prev_char (GtkTextIter *iter);
119 gboolean gtk_text_iter_forward_chars (GtkTextIter *iter,
121 gboolean gtk_text_iter_backward_chars (GtkTextIter *iter,
123 gboolean gtk_text_iter_forward_line (GtkTextIter *iter);
124 gboolean gtk_text_iter_backward_line (GtkTextIter *iter);
125 gboolean gtk_text_iter_forward_lines (GtkTextIter *iter,
127 gboolean gtk_text_iter_backward_lines (GtkTextIter *iter,
129 gboolean gtk_text_iter_forward_word_ends (GtkTextIter *iter,
131 gboolean gtk_text_iter_backward_word_starts (GtkTextIter *iter,
133 gboolean gtk_text_iter_forward_word_end (GtkTextIter *iter);
134 gboolean gtk_text_iter_backward_word_start (GtkTextIter *iter);
136 void gtk_text_iter_set_offset (GtkTextIter *iter,
138 void gtk_text_iter_set_line (GtkTextIter *iter,
140 void gtk_text_iter_set_line_offset (GtkTextIter *iter,
142 void gtk_text_iter_forward_to_end (GtkTextIter *iter);
143 gboolean gtk_text_iter_forward_to_newline (GtkTextIter *iter);
145 /* returns TRUE if a toggle was found; NULL for the tag pointer
146 means "any tag toggle", otherwise the next toggle of the
147 specified tag is located. */
148 gboolean gtk_text_iter_forward_to_tag_toggle (GtkTextIter *iter,
151 gboolean gtk_text_iter_backward_to_tag_toggle (GtkTextIter *iter,
154 typedef gboolean (* GtkTextCharPredicate) (gunichar ch, gpointer user_data);
156 gboolean gtk_text_iter_forward_find_char (GtkTextIter *iter,
157 GtkTextCharPredicate pred,
160 gboolean gtk_text_iter_backward_find_char (GtkTextIter *iter,
161 GtkTextCharPredicate pred,
164 gboolean gtk_text_iter_forward_search (GtkTextIter *iter,
166 gboolean visible_only,
169 gboolean gtk_text_iter_backward_search (GtkTextIter *iter,
171 gboolean visible_only,
177 gboolean gtk_text_iter_equal (const GtkTextIter *lhs,
178 const GtkTextIter *rhs);
179 gint gtk_text_iter_compare (const GtkTextIter *lhs,
180 const GtkTextIter *rhs);
181 gboolean gtk_text_iter_in_region (const GtkTextIter *iter,
182 const GtkTextIter *start,
183 const GtkTextIter *end);
185 /* Put these two in ascending order */
186 void gtk_text_iter_reorder (GtkTextIter *first,
187 GtkTextIter *second);
190 void gtk_text_iter_spew (const GtkTextIter *iter,
195 #endif /* __cplusplus */