alternative to assert
[gtkD.git] / gtkD / src / gtk / TextIter.d
blob8fe882b598fe3f37cf9fab964a299c354f1eaa70
1 /*
2 * This file is part of gtkD.
4 * gtkD is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; either version 2.1 of the License, or
7 * (at your option) any later version.
9 * gtkD is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with gtkD; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 // generated automatically - do not change
20 // find conversion definition on APILookup.txt
21 // implement new conversion functionalities on the wrap.utils pakage
24 * Conversion parameters:
25 * inFile = gtk-GtkTextIter.html
26 * outPack = gtk
27 * outFile = TextIter
28 * strct = GtkTextIter
29 * realStrct=
30 * ctorStrct=
31 * clss = TextIter
32 * interf =
33 * class Code: Yes
34 * interface Code: No
35 * template for:
36 * extend =
37 * implements:
38 * prefixes:
39 * - gtk_text_iter_
40 * - gtk_
41 * omit structs:
42 * - GtkTextIter
43 * omit prefixes:
44 * omit code:
45 * imports:
46 * - glib.Str
47 * - gtk.TextBuffer
48 * - gtk.TextIter
49 * - gdk.Pixbuf
50 * - glib.ListSG
51 * - gtk.TextTag
52 * - gtk.TextAttributes
53 * - gtk.TextChildAnchor
54 * structWrap:
55 * - GSList* -> ListSG
56 * - GdkPixbuf* -> Pixbuf
57 * - GtkTextAttributes* -> TextAttributes
58 * - GtkTextBuffer* -> TextBuffer
59 * - GtkTextChildAnchor* -> TextChildAnchor
60 * - GtkTextIter* -> TextIter
61 * - GtkTextTag* -> TextTag
62 * module aliases:
63 * local aliases:
66 module gtk.TextIter;
68 version(noAssert)
70 version(Tango)
72 import tango.io.Stdout; // use the tango loging?
76 private import gtkc.gtktypes;
78 private import gtkc.gtk;
81 private import glib.Str;
82 private import gtk.TextBuffer;
83 private import gtk.TextIter;
84 private import gdk.Pixbuf;
85 private import glib.ListSG;
86 private import gtk.TextTag;
87 private import gtk.TextAttributes;
88 private import gtk.TextChildAnchor;
93 /**
94 * Description
95 * You may wish to begin by reading the text widget
96 * conceptual overview which gives an overview of all the objects and data
97 * types related to the text widget and how they work together.
99 public class TextIter
102 /** the main Gtk struct */
103 protected GtkTextIter* gtkTextIter;
106 public GtkTextIter* getTextIterStruct()
108 return gtkTextIter;
112 /** the main Gtk struct as a void* */
113 protected void* getStruct()
115 return cast(void*)gtkTextIter;
119 * Sets our main struct and passes it to the parent class
121 public this (GtkTextIter* gtkTextIter)
123 version(noAssert)
125 if ( gtkTextIter is null )
127 int zero = 0;
128 version(Tango)
130 Stdout("struct gtkTextIter is null on constructor").newline;
132 else
134 printf("struct gtkTextIter is null on constructor");
136 zero = zero / zero;
139 else
141 assert(gtkTextIter !is null, "struct gtkTextIter is null on constructor");
143 this.gtkTextIter = gtkTextIter;
146 public this()
148 this(new GtkTextIter);
157 * Returns the GtkTextBuffer this iterator is associated with.
158 * iter:
159 * an iterator
160 * Returns:
161 * the buffer
163 public TextBuffer getBuffer()
165 // GtkTextBuffer* gtk_text_iter_get_buffer (const GtkTextIter *iter);
166 return new TextBuffer( gtk_text_iter_get_buffer(gtkTextIter) );
170 * Creates a dynamically-allocated copy of an iterator. This function
171 * is not useful in applications, because iterators can be copied with a
172 * simple assignment (GtkTextIter i = j;). The
173 * function is used by language bindings.
174 * iter:
175 * an iterator
176 * Returns:
177 * a copy of the iter, free with gtk_text_iter_free()
179 public TextIter copy()
181 // GtkTextIter* gtk_text_iter_copy (const GtkTextIter *iter);
182 return new TextIter( gtk_text_iter_copy(gtkTextIter) );
186 * Free an iterator allocated on the heap. This function
187 * is intended for use in language bindings, and is not
188 * especially useful for applications, because iterators can
189 * simply be allocated on the stack.
190 * iter:
191 * a dynamically-allocated iterator
193 public void free()
195 // void gtk_text_iter_free (GtkTextIter *iter);
196 gtk_text_iter_free(gtkTextIter);
200 * Returns the character offset of an iterator.
201 * Each character in a GtkTextBuffer has an offset,
202 * starting with 0 for the first character in the buffer.
203 * Use gtk_text_buffer_get_iter_at_offset() to convert an
204 * offset back into an iterator.
205 * iter:
206 * an iterator
207 * Returns:
208 * a character offset
210 public int getOffset()
212 // gint gtk_text_iter_get_offset (const GtkTextIter *iter);
213 return gtk_text_iter_get_offset(gtkTextIter);
217 * Returns the line number containing the iterator. Lines in
218 * a GtkTextBuffer are numbered beginning with 0 for the first
219 * line in the buffer.
220 * iter:
221 * an iterator
222 * Returns:
223 * a line number
225 public int getLine()
227 // gint gtk_text_iter_get_line (const GtkTextIter *iter);
228 return gtk_text_iter_get_line(gtkTextIter);
232 * Returns the character offset of the iterator,
233 * counting from the start of a newline-terminated line.
234 * The first character on the line has offset 0.
235 * iter:
236 * an iterator
237 * Returns:
238 * offset from start of line
240 public int getLineOffset()
242 // gint gtk_text_iter_get_line_offset (const GtkTextIter *iter);
243 return gtk_text_iter_get_line_offset(gtkTextIter);
247 * Returns the byte index of the iterator, counting
248 * from the start of a newline-terminated line.
249 * Remember that GtkTextBuffer encodes text in
250 * UTF-8, and that characters can require a variable
251 * number of bytes to represent.
252 * iter:
253 * an iterator
254 * Returns:
255 * distance from start of line, in bytes
257 public int getLineIndex()
259 // gint gtk_text_iter_get_line_index (const GtkTextIter *iter);
260 return gtk_text_iter_get_line_index(gtkTextIter);
264 * Returns the number of bytes from the start of the
265 * line to the given iter, not counting bytes that
266 * are invisible due to tags with the "invisible" flag
267 * toggled on.
268 * iter:
269 * a GtkTextIter
270 * Returns:
271 * byte index of iter with respect to the start of the line
273 public int getVisibleLineIndex()
275 // gint gtk_text_iter_get_visible_line_index (const GtkTextIter *iter);
276 return gtk_text_iter_get_visible_line_index(gtkTextIter);
280 * Returns the offset in characters from the start of the
281 * line to the given iter, not counting characters that
282 * are invisible due to tags with the "invisible" flag
283 * toggled on.
284 * iter:
285 * a GtkTextIter
286 * Returns:
287 * offset in visible characters from the start of the line
289 public int getVisibleLineOffset()
291 // gint gtk_text_iter_get_visible_line_offset (const GtkTextIter *iter);
292 return gtk_text_iter_get_visible_line_offset(gtkTextIter);
296 * Returns the Unicode character at this iterator. (Equivalent to
297 * operator* on a C++ iterator.) If the element at this iterator is a
298 * non-character element, such as an image embedded in the buffer, the
299 * Unicode "unknown" character 0xFFFC is returned. If invoked on
300 * the end iterator, zero is returned; zero is not a valid Unicode character.
301 * So you can write a loop which ends when gtk_text_iter_get_char()
302 * returns 0.
303 * iter:
304 * an iterator
305 * Returns:
306 * a Unicode character, or 0 if iter is not dereferenceable
308 public gunichar getChar()
310 // gunichar gtk_text_iter_get_char (const GtkTextIter *iter);
311 return gtk_text_iter_get_char(gtkTextIter);
315 * Returns the text in the given range. A "slice" is an array of
316 * characters encoded in UTF-8 format, including the Unicode "unknown"
317 * character 0xFFFC for iterable non-character elements in the buffer,
318 * such as images. Because images are encoded in the slice, byte and
319 * character offsets in the returned array will correspond to byte
320 * offsets in the text buffer. Note that 0xFFFC can occur in normal
321 * text as well, so it is not a reliable indicator that a pixbuf or
322 * widget is in the buffer.
323 * start:
324 * iterator at start of a range
325 * end:
326 * iterator at end of a range
327 * Returns:
328 * slice of text from the buffer
330 public char[] getSlice(TextIter end)
332 // gchar* gtk_text_iter_get_slice (const GtkTextIter *start, const GtkTextIter *end);
333 return Str.toString(gtk_text_iter_get_slice(gtkTextIter, (end is null) ? null : end.getTextIterStruct()) );
337 * Returns text in the given range. If the range
338 * contains non-text elements such as images, the character and byte
339 * offsets in the returned string will not correspond to character and
340 * byte offsets in the buffer. If you want offsets to correspond, see
341 * gtk_text_iter_get_slice().
342 * start:
343 * iterator at start of a range
344 * end:
345 * iterator at end of a range
346 * Returns:
347 * array of characters from the buffer
349 public char[] getText(TextIter end)
351 // gchar* gtk_text_iter_get_text (const GtkTextIter *start, const GtkTextIter *end);
352 return Str.toString(gtk_text_iter_get_text(gtkTextIter, (end is null) ? null : end.getTextIterStruct()) );
356 * Like gtk_text_iter_get_slice(), but invisible text is not included.
357 * Invisible text is usually invisible because a GtkTextTag with the
358 * "invisible" attribute turned on has been applied to it.
359 * start:
360 * iterator at start of range
361 * end:
362 * iterator at end of range
363 * Returns:
364 * slice of text from the buffer
366 public char[] getVisibleSlice(TextIter end)
368 // gchar* gtk_text_iter_get_visible_slice (const GtkTextIter *start, const GtkTextIter *end);
369 return Str.toString(gtk_text_iter_get_visible_slice(gtkTextIter, (end is null) ? null : end.getTextIterStruct()) );
373 * Like gtk_text_iter_get_text(), but invisible text is not included.
374 * Invisible text is usually invisible because a GtkTextTag with the
375 * "invisible" attribute turned on has been applied to it.
376 * start:
377 * iterator at start of range
378 * end:
379 * iterator at end of range
380 * Returns:
381 * string containing visible text in the range
383 public char[] getVisibleText(TextIter end)
385 // gchar* gtk_text_iter_get_visible_text (const GtkTextIter *start, const GtkTextIter *end);
386 return Str.toString(gtk_text_iter_get_visible_text(gtkTextIter, (end is null) ? null : end.getTextIterStruct()) );
390 * If the element at iter is a pixbuf, the pixbuf is returned
391 * (with no new reference count added). Otherwise,
392 * NULL is returned.
393 * iter:
394 * an iterator
395 * Returns:
396 * the pixbuf at iter
398 public Pixbuf getPixbuf()
400 // GdkPixbuf* gtk_text_iter_get_pixbuf (const GtkTextIter *iter);
401 return new Pixbuf( gtk_text_iter_get_pixbuf(gtkTextIter) );
405 * Returns a list of all GtkTextMark at this location. Because marks
406 * are not iterable (they don't take up any "space" in the buffer,
407 * they are just marks in between iterable locations), multiple marks
408 * can exist in the same place. The returned list is not in any
409 * meaningful order.
410 * iter:
411 * an iterator
412 * Returns:
413 * list of GtkTextMark
415 public ListSG getMarks()
417 // GSList* gtk_text_iter_get_marks (const GtkTextIter *iter);
418 return new ListSG( gtk_text_iter_get_marks(gtkTextIter) );
422 * Returns a list of GtkTextTag that are toggled on or off at this
423 * point. (If toggled_on is TRUE, the list contains tags that are
424 * toggled on.) If a tag is toggled on at iter, then some non-empty
425 * range of characters following iter has that tag applied to it. If
426 * a tag is toggled off, then some non-empty range following iter
427 * does not have the tag applied to it.
428 * iter:
429 * an iterator
430 * toggled_on:
431 * TRUE to get toggled-on tags
432 * Returns:
433 * tags toggled at this point
435 public ListSG getToggledTags(int toggledOn)
437 // GSList* gtk_text_iter_get_toggled_tags (const GtkTextIter *iter, gboolean toggled_on);
438 return new ListSG( gtk_text_iter_get_toggled_tags(gtkTextIter, toggledOn) );
442 * If the location at iter contains a child anchor, the
443 * anchor is returned (with no new reference count added). Otherwise,
444 * NULL is returned.
445 * iter:
446 * an iterator
447 * Returns:
448 * the anchor at iter
450 public TextChildAnchor getChildAnchor()
452 // GtkTextChildAnchor* gtk_text_iter_get_child_anchor (const GtkTextIter *iter);
453 return new TextChildAnchor( gtk_text_iter_get_child_anchor(gtkTextIter) );
457 * Returns TRUE if tag is toggled on at exactly this point. If tag
458 * is NULL, returns TRUE if any tag is toggled on at this point. Note
459 * that the gtk_text_iter_begins_tag() returns TRUE if iter is the
460 * start of the tagged range;
461 * gtk_text_iter_has_tag() tells you whether an iterator is
462 * within a tagged range.
463 * iter:
464 * an iterator
465 * tag:
466 * a GtkTextTag, or NULL
467 * Returns:
468 * whether iter is the start of a range tagged with tag
470 public int beginsTag(TextTag tag)
472 // gboolean gtk_text_iter_begins_tag (const GtkTextIter *iter, GtkTextTag *tag);
473 return gtk_text_iter_begins_tag(gtkTextIter, (tag is null) ? null : tag.getTextTagStruct());
477 * Returns TRUE if tag is toggled off at exactly this point. If tag
478 * is NULL, returns TRUE if any tag is toggled off at this point. Note
479 * that the gtk_text_iter_ends_tag() returns TRUE if iter is the
480 * end of the tagged range;
481 * gtk_text_iter_has_tag() tells you whether an iterator is
482 * within a tagged range.
483 * iter:
484 * an iterator
485 * tag:
486 * a GtkTextTag, or NULL
487 * Returns:
488 * whether iter is the end of a range tagged with tag
490 public int endsTag(TextTag tag)
492 // gboolean gtk_text_iter_ends_tag (const GtkTextIter *iter, GtkTextTag *tag);
493 return gtk_text_iter_ends_tag(gtkTextIter, (tag is null) ? null : tag.getTextTagStruct());
497 * This is equivalent to (gtk_text_iter_begins_tag() ||
498 * gtk_text_iter_ends_tag()), i.e. it tells you whether a range with
499 * tag applied to it begins or ends at iter.
500 * iter:
501 * an iterator
502 * tag:
503 * a GtkTextTag, or NULL
504 * Returns:
505 * whether tag is toggled on or off at iter
507 public int togglesTag(TextTag tag)
509 // gboolean gtk_text_iter_toggles_tag (const GtkTextIter *iter, GtkTextTag *tag);
510 return gtk_text_iter_toggles_tag(gtkTextIter, (tag is null) ? null : tag.getTextTagStruct());
514 * Returns TRUE if iter is within a range tagged with tag.
515 * iter:
516 * an iterator
517 * tag:
518 * a GtkTextTag
519 * Returns:
520 * whether iter is tagged with tag
522 public int hasTag(TextTag tag)
524 // gboolean gtk_text_iter_has_tag (const GtkTextIter *iter, GtkTextTag *tag);
525 return gtk_text_iter_has_tag(gtkTextIter, (tag is null) ? null : tag.getTextTagStruct());
529 * Returns a list of tags that apply to iter, in ascending order of
530 * priority (highest-priority tags are last). The GtkTextTag in the
531 * list don't have a reference added, but you have to free the list
532 * itself.
533 * iter:
534 * a GtkTextIter
535 * Returns:
536 * list of GtkTextTag
538 public ListSG getTags()
540 // GSList* gtk_text_iter_get_tags (const GtkTextIter *iter);
541 return new ListSG( gtk_text_iter_get_tags(gtkTextIter) );
545 * Returns whether the character at iter is within an editable region
546 * of text. Non-editable text is "locked" and can't be changed by the
547 * user via GtkTextView. This function is simply a convenience
548 * wrapper around gtk_text_iter_get_attributes(). If no tags applied
549 * to this text affect editability, default_setting will be returned.
550 * You don't want to use this function to decide whether text can be
551 * inserted at iter, because for insertion you don't want to know
552 * whether the char at iter is inside an editable range, you want to
553 * know whether a new character inserted at iter would be inside an
554 * editable range. Use gtk_text_iter_can_insert() to handle this
555 * case.
556 * iter:
557 * an iterator
558 * default_setting:
559 * TRUE if text is editable by default
560 * Returns:
561 * whether iter is inside an editable range
563 public int editable(int defaultSetting)
565 // gboolean gtk_text_iter_editable (const GtkTextIter *iter, gboolean default_setting);
566 return gtk_text_iter_editable(gtkTextIter, defaultSetting);
570 * Considering the default editability of the buffer, and tags that
571 * affect editability, determines whether text inserted at iter would
572 * be editable. If text inserted at iter would be editable then the
573 * user should be allowed to insert text at iter.
574 * gtk_text_buffer_insert_interactive() uses this function to decide
575 * whether insertions are allowed at a given position.
576 * iter:
577 * an iterator
578 * default_editability:
579 * TRUE if text is editable by default
580 * Returns:
581 * whether text inserted at iter would be editable
583 public int canInsert(int defaultEditability)
585 // gboolean gtk_text_iter_can_insert (const GtkTextIter *iter, gboolean default_editability);
586 return gtk_text_iter_can_insert(gtkTextIter, defaultEditability);
590 * Determines whether iter begins a natural-language word. Word
591 * breaks are determined by Pango and should be correct for nearly any
592 * language (if not, the correct fix would be to the Pango word break
593 * algorithms).
594 * iter:
595 * a GtkTextIter
596 * Returns:
597 * TRUE if iter is at the start of a word
599 public int startsWord()
601 // gboolean gtk_text_iter_starts_word (const GtkTextIter *iter);
602 return gtk_text_iter_starts_word(gtkTextIter);
606 * Determines whether iter ends a natural-language word. Word breaks
607 * are determined by Pango and should be correct for nearly any
608 * language (if not, the correct fix would be to the Pango word break
609 * algorithms).
610 * iter:
611 * a GtkTextIter
612 * Returns:
613 * TRUE if iter is at the end of a word
615 public int endsWord()
617 // gboolean gtk_text_iter_ends_word (const GtkTextIter *iter);
618 return gtk_text_iter_ends_word(gtkTextIter);
622 * Determines whether iter is inside a natural-language word (as
623 * opposed to say inside some whitespace). Word breaks are determined
624 * by Pango and should be correct for nearly any language (if not, the
625 * correct fix would be to the Pango word break algorithms).
626 * iter:
627 * a GtkTextIter
628 * Returns:
629 * TRUE if iter is inside a word
631 public int insideWord()
633 // gboolean gtk_text_iter_inside_word (const GtkTextIter *iter);
634 return gtk_text_iter_inside_word(gtkTextIter);
638 * Returns TRUE if iter begins a paragraph,
639 * i.e. if gtk_text_iter_get_line_offset() would return 0.
640 * However this function is potentially more efficient than
641 * gtk_text_iter_get_line_offset() because it doesn't have to compute
642 * the offset, it just has to see whether it's 0.
643 * iter:
644 * an iterator
645 * Returns:
646 * whether iter begins a line
648 public int startsLine()
650 // gboolean gtk_text_iter_starts_line (const GtkTextIter *iter);
651 return gtk_text_iter_starts_line(gtkTextIter);
655 * Returns TRUE if iter points to the start of the paragraph
656 * delimiter characters for a line (delimiters will be either a
657 * newline, a carriage return, a carriage return followed by a
658 * newline, or a Unicode paragraph separator character). Note that an
659 * iterator pointing to the \n of a \r\n pair will not be counted as
660 * the end of a line, the line ends before the \r. The end iterator is
661 * considered to be at the end of a line, even though there are no
662 * paragraph delimiter chars there.
663 * iter:
664 * an iterator
665 * Returns:
666 * whether iter is at the end of a line
668 public int endsLine()
670 // gboolean gtk_text_iter_ends_line (const GtkTextIter *iter);
671 return gtk_text_iter_ends_line(gtkTextIter);
675 * Determines whether iter begins a sentence. Sentence boundaries are
676 * determined by Pango and should be correct for nearly any language
677 * (if not, the correct fix would be to the Pango text boundary
678 * algorithms).
679 * iter:
680 * a GtkTextIter
681 * Returns:
682 * TRUE if iter is at the start of a sentence.
684 public int startsSentence()
686 // gboolean gtk_text_iter_starts_sentence (const GtkTextIter *iter);
687 return gtk_text_iter_starts_sentence(gtkTextIter);
691 * Determines whether iter ends a sentence. Sentence boundaries are
692 * determined by Pango and should be correct for nearly any language
693 * (if not, the correct fix would be to the Pango text boundary
694 * algorithms).
695 * iter:
696 * a GtkTextIter
697 * Returns:
698 * TRUE if iter is at the end of a sentence.
700 public int endsSentence()
702 // gboolean gtk_text_iter_ends_sentence (const GtkTextIter *iter);
703 return gtk_text_iter_ends_sentence(gtkTextIter);
707 * Determines whether iter is inside a sentence (as opposed to in
708 * between two sentences, e.g. after a period and before the first
709 * letter of the next sentence). Sentence boundaries are determined
710 * by Pango and should be correct for nearly any language (if not, the
711 * correct fix would be to the Pango text boundary algorithms).
712 * iter:
713 * a GtkTextIter
714 * Returns:
715 * TRUE if iter is inside a sentence.
717 public int insideSentence()
719 // gboolean gtk_text_iter_inside_sentence (const GtkTextIter *iter);
720 return gtk_text_iter_inside_sentence(gtkTextIter);
724 * See gtk_text_iter_forward_cursor_position() or PangoLogAttr or
725 * pango_break() for details on what a cursor position is.
726 * iter:
727 * a GtkTextIter
728 * Returns:
729 * TRUE if the cursor can be placed at iter
731 public int isCursorPosition()
733 // gboolean gtk_text_iter_is_cursor_position (const GtkTextIter *iter);
734 return gtk_text_iter_is_cursor_position(gtkTextIter);
738 * Returns the number of characters in the line containing iter,
739 * including the paragraph delimiters.
740 * iter:
741 * an iterator
742 * Returns:
743 * number of characters in the line
745 public int getCharsInLine()
747 // gint gtk_text_iter_get_chars_in_line (const GtkTextIter *iter);
748 return gtk_text_iter_get_chars_in_line(gtkTextIter);
752 * Returns the number of bytes in the line containing iter,
753 * including the paragraph delimiters.
754 * iter:
755 * an iterator
756 * Returns:
757 * number of bytes in the line
759 public int getBytesInLine()
761 // gint gtk_text_iter_get_bytes_in_line (const GtkTextIter *iter);
762 return gtk_text_iter_get_bytes_in_line(gtkTextIter);
766 * Computes the effect of any tags applied to this spot in the
767 * text. The values parameter should be initialized to the default
768 * settings you wish to use if no tags are in effect. You'd typically
769 * obtain the defaults from gtk_text_view_get_default_attributes().
770 * gtk_text_iter_get_attributes() will modify values, applying the
771 * effects of any tags present at iter. If any tags affected values,
772 * the function returns TRUE.
773 * iter:
774 * an iterator
775 * values:
776 * a GtkTextAttributes to be filled in
777 * Returns:
778 * TRUE if values was modified
780 public int getAttributes(TextAttributes values)
782 // gboolean gtk_text_iter_get_attributes (const GtkTextIter *iter, GtkTextAttributes *values);
783 return gtk_text_iter_get_attributes(gtkTextIter, (values is null) ? null : values.getTextAttributesStruct());
787 * A convenience wrapper around gtk_text_iter_get_attributes(),
788 * which returns the language in effect at iter. If no tags affecting
789 * language apply to iter, the return value is identical to that of
790 * gtk_get_default_language().
791 * iter:
792 * an iterator
793 * Returns:
794 * language in effect at iter
796 public PangoLanguage* getLanguage()
798 // PangoLanguage* gtk_text_iter_get_language (const GtkTextIter *iter);
799 return gtk_text_iter_get_language(gtkTextIter);
803 * Returns TRUE if iter is the end iterator, i.e. one past the last
804 * dereferenceable iterator in the buffer. gtk_text_iter_is_end() is
805 * the most efficient way to check whether an iterator is the end
806 * iterator.
807 * iter:
808 * an iterator
809 * Returns:
810 * whether iter is the end iterator
812 public int isEnd()
814 // gboolean gtk_text_iter_is_end (const GtkTextIter *iter);
815 return gtk_text_iter_is_end(gtkTextIter);
819 * Returns TRUE if iter is the first iterator in the buffer, that is
820 * if iter has a character offset of 0.
821 * iter:
822 * an iterator
823 * Returns:
824 * whether iter is the first in the buffer
826 public int isStart()
828 // gboolean gtk_text_iter_is_start (const GtkTextIter *iter);
829 return gtk_text_iter_is_start(gtkTextIter);
833 * Moves iter forward by one character offset. Note that images
834 * embedded in the buffer occupy 1 character slot, so
835 * gtk_text_iter_forward_char() may actually move onto an image instead
836 * of a character, if you have images in your buffer. If iter is the
837 * end iterator or one character before it, iter will now point at
838 * the end iterator, and gtk_text_iter_forward_char() returns FALSE for
839 * convenience when writing loops.
840 * iter:
841 * an iterator
842 * Returns:
843 * whether iter moved and is dereferenceable
845 public int forwardChar()
847 // gboolean gtk_text_iter_forward_char (GtkTextIter *iter);
848 return gtk_text_iter_forward_char(gtkTextIter);
852 * Moves backward by one character offset. Returns TRUE if movement
853 * was possible; if iter was the first in the buffer (character
854 * offset 0), gtk_text_iter_backward_char() returns FALSE for convenience when
855 * writing loops.
856 * iter:
857 * an iterator
858 * Returns:
859 * whether movement was possible
861 public int backwardChar()
863 // gboolean gtk_text_iter_backward_char (GtkTextIter *iter);
864 return gtk_text_iter_backward_char(gtkTextIter);
868 * Moves count characters if possible (if count would move past the
869 * start or end of the buffer, moves to the start or end of the
870 * buffer). The return value indicates whether the new position of
871 * iter is different from its original position, and dereferenceable
872 * (the last iterator in the buffer is not dereferenceable). If count
873 * is 0, the function does nothing and returns FALSE.
874 * iter:
875 * an iterator
876 * count:
877 * number of characters to move, may be negative
878 * Returns:
879 * whether iter moved and is dereferenceable
881 public int forwardChars(int count)
883 // gboolean gtk_text_iter_forward_chars (GtkTextIter *iter, gint count);
884 return gtk_text_iter_forward_chars(gtkTextIter, count);
888 * Moves count characters backward, if possible (if count would move
889 * past the start or end of the buffer, moves to the start or end of
890 * the buffer). The return value indicates whether the iterator moved
891 * onto a dereferenceable position; if the iterator didn't move, or
892 * moved onto the end iterator, then FALSE is returned. If count is 0,
893 * the function does nothing and returns FALSE.
894 * iter:
895 * an iterator
896 * count:
897 * number of characters to move
898 * Returns:
899 * whether iter moved and is dereferenceable
901 public int backwardChars(int count)
903 // gboolean gtk_text_iter_backward_chars (GtkTextIter *iter, gint count);
904 return gtk_text_iter_backward_chars(gtkTextIter, count);
908 * Moves iter to the start of the next line. Returns TRUE if there
909 * was a next line to move to, and FALSE if iter was simply moved to
910 * the end of the buffer and is now not dereferenceable, or if iter was
911 * already at the end of the buffer.
912 * iter:
913 * an iterator
914 * Returns:
915 * whether iter can be dereferenced
917 public int forwardLine()
919 // gboolean gtk_text_iter_forward_line (GtkTextIter *iter);
920 return gtk_text_iter_forward_line(gtkTextIter);
924 * Moves iter to the start of the previous line. Returns TRUE if
925 * iter could be moved; i.e. if iter was at character offset 0, this
926 * function returns FALSE. Therefore if iter was already on line 0,
927 * but not at the start of the line, iter is snapped to the start of
928 * the line and the function returns TRUE. (Note that this implies that
929 * in a loop calling this function, the line number may not change on
930 * every iteration, if your first iteration is on line 0.)
931 * iter:
932 * an iterator
933 * Returns:
934 * whether iter moved
936 public int backwardLine()
938 // gboolean gtk_text_iter_backward_line (GtkTextIter *iter);
939 return gtk_text_iter_backward_line(gtkTextIter);
943 * Moves count lines forward, if possible (if count would move
944 * past the start or end of the buffer, moves to the start or end of
945 * the buffer). The return value indicates whether the iterator moved
946 * onto a dereferenceable position; if the iterator didn't move, or
947 * moved onto the end iterator, then FALSE is returned. If count is 0,
948 * the function does nothing and returns FALSE. If count is negative,
949 * moves backward by 0 - count lines.
950 * iter:
951 * a GtkTextIter
952 * count:
953 * number of lines to move forward
954 * Returns:
955 * whether iter moved and is dereferenceable
957 public int forwardLines(int count)
959 // gboolean gtk_text_iter_forward_lines (GtkTextIter *iter, gint count);
960 return gtk_text_iter_forward_lines(gtkTextIter, count);
964 * Moves count lines backward, if possible (if count would move
965 * past the start or end of the buffer, moves to the start or end of
966 * the buffer). The return value indicates whether the iterator moved
967 * onto a dereferenceable position; if the iterator didn't move, or
968 * moved onto the end iterator, then FALSE is returned. If count is 0,
969 * the function does nothing and returns FALSE. If count is negative,
970 * moves forward by 0 - count lines.
971 * iter:
972 * a GtkTextIter
973 * count:
974 * number of lines to move backward
975 * Returns:
976 * whether iter moved and is dereferenceable
978 public int backwardLines(int count)
980 // gboolean gtk_text_iter_backward_lines (GtkTextIter *iter, gint count);
981 return gtk_text_iter_backward_lines(gtkTextIter, count);
985 * Calls gtk_text_iter_forward_word_end() up to count times.
986 * iter:
987 * a GtkTextIter
988 * count:
989 * number of times to move
990 * Returns:
991 * TRUE if iter moved and is not the end iterator
993 public int forwardWordEnds(int count)
995 // gboolean gtk_text_iter_forward_word_ends (GtkTextIter *iter, gint count);
996 return gtk_text_iter_forward_word_ends(gtkTextIter, count);
1000 * Calls gtk_text_iter_backward_word_start() up to count times.
1001 * iter:
1002 * a GtkTextIter
1003 * count:
1004 * number of times to move
1005 * Returns:
1006 * TRUE if iter moved and is not the end iterator
1008 public int backwardWordStarts(int count)
1010 // gboolean gtk_text_iter_backward_word_starts (GtkTextIter *iter, gint count);
1011 return gtk_text_iter_backward_word_starts(gtkTextIter, count);
1015 * Moves forward to the next word end. (If iter is currently on a
1016 * word end, moves forward to the next one after that.) Word breaks
1017 * are determined by Pango and should be correct for nearly any
1018 * language (if not, the correct fix would be to the Pango word break
1019 * algorithms).
1020 * iter:
1021 * a GtkTextIter
1022 * Returns:
1023 * TRUE if iter moved and is not the end iterator
1025 public int forwardWordEnd()
1027 // gboolean gtk_text_iter_forward_word_end (GtkTextIter *iter);
1028 return gtk_text_iter_forward_word_end(gtkTextIter);
1032 * Moves backward to the previous word start. (If iter is currently on a
1033 * word start, moves backward to the next one after that.) Word breaks
1034 * are determined by Pango and should be correct for nearly any
1035 * language (if not, the correct fix would be to the Pango word break
1036 * algorithms).
1037 * iter:
1038 * a GtkTextIter
1039 * Returns:
1040 * TRUE if iter moved and is not the end iterator
1042 public int backwardWordStart()
1044 // gboolean gtk_text_iter_backward_word_start (GtkTextIter *iter);
1045 return gtk_text_iter_backward_word_start(gtkTextIter);
1049 * Moves iter forward by a single cursor position. Cursor positions
1050 * are (unsurprisingly) positions where the cursor can appear. Perhaps
1051 * surprisingly, there may not be a cursor position between all
1052 * characters. The most common example for European languages would be
1053 * a carriage return/newline sequence. For some Unicode characters,
1054 * the equivalent of say the letter "a" with an accent mark will be
1055 * represented as two characters, first the letter then a "combining
1056 * mark" that causes the accent to be rendered; so the cursor can't go
1057 * between those two characters. See also the PangoLogAttr structure and
1058 * pango_break() function.
1059 * iter:
1060 * a GtkTextIter
1061 * Returns:
1062 * TRUE if we moved and the new position is dereferenceable
1064 public int forwardCursorPosition()
1066 // gboolean gtk_text_iter_forward_cursor_position (GtkTextIter *iter);
1067 return gtk_text_iter_forward_cursor_position(gtkTextIter);
1071 * Like gtk_text_iter_forward_cursor_position(), but moves backward.
1072 * iter:
1073 * a GtkTextIter
1074 * Returns:
1075 * TRUE if we moved
1077 public int backwardCursorPosition()
1079 // gboolean gtk_text_iter_backward_cursor_position (GtkTextIter *iter);
1080 return gtk_text_iter_backward_cursor_position(gtkTextIter);
1084 * Moves up to count cursor positions. See
1085 * gtk_text_iter_forward_cursor_position() for details.
1086 * iter:
1087 * a GtkTextIter
1088 * count:
1089 * number of positions to move
1090 * Returns:
1091 * TRUE if we moved and the new position is dereferenceable
1093 public int forwardCursorPositions(int count)
1095 // gboolean gtk_text_iter_forward_cursor_positions (GtkTextIter *iter, gint count);
1096 return gtk_text_iter_forward_cursor_positions(gtkTextIter, count);
1100 * Moves up to count cursor positions. See
1101 * gtk_text_iter_forward_cursor_position() for details.
1102 * iter:
1103 * a GtkTextIter
1104 * count:
1105 * number of positions to move
1106 * Returns:
1107 * TRUE if we moved and the new position is dereferenceable
1109 public int backwardCursorPositions(int count)
1111 // gboolean gtk_text_iter_backward_cursor_positions (GtkTextIter *iter, gint count);
1112 return gtk_text_iter_backward_cursor_positions(gtkTextIter, count);
1116 * Moves backward to the previous sentence start; if iter is already at
1117 * the start of a sentence, moves backward to the next one. Sentence
1118 * boundaries are determined by Pango and should be correct for nearly
1119 * any language (if not, the correct fix would be to the Pango text
1120 * boundary algorithms).
1121 * iter:
1122 * a GtkTextIter
1123 * Returns:
1124 * TRUE if iter moved and is not the end iterator
1126 public int backwardSentenceStart()
1128 // gboolean gtk_text_iter_backward_sentence_start (GtkTextIter *iter);
1129 return gtk_text_iter_backward_sentence_start(gtkTextIter);
1133 * Calls gtk_text_iter_backward_sentence_start() up to count times,
1134 * or until it returns FALSE. If count is negative, moves forward
1135 * instead of backward.
1136 * iter:
1137 * a GtkTextIter
1138 * count:
1139 * number of sentences to move
1140 * Returns:
1141 * TRUE if iter moved and is not the end iterator
1143 public int backwardSentenceStarts(int count)
1145 // gboolean gtk_text_iter_backward_sentence_starts (GtkTextIter *iter, gint count);
1146 return gtk_text_iter_backward_sentence_starts(gtkTextIter, count);
1150 * Moves forward to the next sentence end. (If iter is at the end of
1151 * a sentence, moves to the next end of sentence.) Sentence
1152 * boundaries are determined by Pango and should be correct for nearly
1153 * any language (if not, the correct fix would be to the Pango text
1154 * boundary algorithms).
1155 * iter:
1156 * a GtkTextIter
1157 * Returns:
1158 * TRUE if iter moved and is not the end iterator
1160 public int forwardSentenceEnd()
1162 // gboolean gtk_text_iter_forward_sentence_end (GtkTextIter *iter);
1163 return gtk_text_iter_forward_sentence_end(gtkTextIter);
1167 * Calls gtk_text_iter_forward_sentence_end() count times (or until
1168 * gtk_text_iter_forward_sentence_end() returns FALSE). If count is
1169 * negative, moves backward instead of forward.
1170 * iter:
1171 * a GtkTextIter
1172 * count:
1173 * number of sentences to move
1174 * Returns:
1175 * TRUE if iter moved and is not the end iterator
1177 public int forwardSentenceEnds(int count)
1179 // gboolean gtk_text_iter_forward_sentence_ends (GtkTextIter *iter, gint count);
1180 return gtk_text_iter_forward_sentence_ends(gtkTextIter, count);
1184 * Calls gtk_text_iter_forward_visible_word_end() up to count times.
1185 * iter:
1186 * a GtkTextIter
1187 * count:
1188 * number of times to move
1189 * Returns:
1190 * TRUE if iter moved and is not the end iterator
1191 * Since 2.4
1193 public int forwardVisibleWordEnds(int count)
1195 // gboolean gtk_text_iter_forward_visible_word_ends (GtkTextIter *iter, gint count);
1196 return gtk_text_iter_forward_visible_word_ends(gtkTextIter, count);
1200 * Calls gtk_text_iter_backward_visible_word_start() up to count times.
1201 * iter:
1202 * a GtkTextIter
1203 * count:
1204 * number of times to move
1205 * Returns:
1206 * TRUE if iter moved and is not the end iterator
1207 * Since 2.4
1209 public int backwardVisibleWordStarts(int count)
1211 // gboolean gtk_text_iter_backward_visible_word_starts (GtkTextIter *iter, gint count);
1212 return gtk_text_iter_backward_visible_word_starts(gtkTextIter, count);
1216 * Moves forward to the next visible word end. (If iter is currently on a
1217 * word end, moves forward to the next one after that.) Word breaks
1218 * are determined by Pango and should be correct for nearly any
1219 * language (if not, the correct fix would be to the Pango word break
1220 * algorithms).
1221 * iter:
1222 * a GtkTextIter
1223 * Returns:
1224 * TRUE if iter moved and is not the end iterator
1225 * Since 2.4
1227 public int forwardVisibleWordEnd()
1229 // gboolean gtk_text_iter_forward_visible_word_end (GtkTextIter *iter);
1230 return gtk_text_iter_forward_visible_word_end(gtkTextIter);
1234 * Moves backward to the previous visible word start. (If iter is currently
1235 * on a word start, moves backward to the next one after that.) Word breaks
1236 * are determined by Pango and should be correct for nearly any
1237 * language (if not, the correct fix would be to the Pango word break
1238 * algorithms).
1239 * iter:
1240 * a GtkTextIter
1241 * Returns:
1242 * TRUE if iter moved and is not the end iterator
1243 * Since 2.4
1245 public int backwardVisibleWordStart()
1247 // gboolean gtk_text_iter_backward_visible_word_start (GtkTextIter *iter);
1248 return gtk_text_iter_backward_visible_word_start(gtkTextIter);
1252 * Moves iter forward to the next visible cursor position. See
1253 * gtk_text_iter_forward_cursor_position() for details.
1254 * iter:
1255 * a GtkTextIter
1256 * Returns:
1257 * TRUE if we moved and the new position is dereferenceable
1258 * Since 2.4
1260 public int forwardVisibleCursorPosition()
1262 // gboolean gtk_text_iter_forward_visible_cursor_position (GtkTextIter *iter);
1263 return gtk_text_iter_forward_visible_cursor_position(gtkTextIter);
1267 * Moves iter forward to the previous visible cursor position. See
1268 * gtk_text_iter_backward_cursor_position() for details.
1269 * iter:
1270 * a GtkTextIter
1271 * Returns:
1272 * TRUE if we moved and the new position is dereferenceable
1273 * Since 2.4
1275 public int backwardVisibleCursorPosition()
1277 // gboolean gtk_text_iter_backward_visible_cursor_position (GtkTextIter *iter);
1278 return gtk_text_iter_backward_visible_cursor_position(gtkTextIter);
1282 * Moves up to count visible cursor positions. See
1283 * gtk_text_iter_forward_cursor_position() for details.
1284 * iter:
1285 * a GtkTextIter
1286 * count:
1287 * number of positions to move
1288 * Returns:
1289 * TRUE if we moved and the new position is dereferenceable
1290 * Since 2.4
1292 public int forwardVisibleCursorPositions(int count)
1294 // gboolean gtk_text_iter_forward_visible_cursor_positions (GtkTextIter *iter, gint count);
1295 return gtk_text_iter_forward_visible_cursor_positions(gtkTextIter, count);
1299 * Moves up to count visible cursor positions. See
1300 * gtk_text_iter_backward_cursor_position() for details.
1301 * iter:
1302 * a GtkTextIter
1303 * count:
1304 * number of positions to move
1305 * Returns:
1306 * TRUE if we moved and the new position is dereferenceable
1307 * Since 2.4
1309 public int backwardVisibleCursorPositions(int count)
1311 // gboolean gtk_text_iter_backward_visible_cursor_positions (GtkTextIter *iter, gint count);
1312 return gtk_text_iter_backward_visible_cursor_positions(gtkTextIter, count);
1316 * Moves iter to the start of the next visible line. Returns TRUE if there
1317 * was a next line to move to, and FALSE if iter was simply moved to
1318 * the end of the buffer and is now not dereferenceable, or if iter was
1319 * already at the end of the buffer.
1320 * iter:
1321 * an iterator
1322 * Returns:
1323 * whether iter can be dereferenced
1324 * Since 2.8
1326 public int forwardVisibleLine()
1328 // gboolean gtk_text_iter_forward_visible_line (GtkTextIter *iter);
1329 return gtk_text_iter_forward_visible_line(gtkTextIter);
1333 * Moves iter to the start of the previous visible line. Returns TRUE if
1334 * iter could be moved; i.e. if iter was at character offset 0, this
1335 * function returns FALSE. Therefore if iter was already on line 0,
1336 * but not at the start of the line, iter is snapped to the start of
1337 * the line and the function returns TRUE. (Note that this implies that
1338 * in a loop calling this function, the line number may not change on
1339 * every iteration, if your first iteration is on line 0.)
1340 * iter:
1341 * an iterator
1342 * Returns:
1343 * whether iter moved
1344 * Since 2.8
1346 public int backwardVisibleLine()
1348 // gboolean gtk_text_iter_backward_visible_line (GtkTextIter *iter);
1349 return gtk_text_iter_backward_visible_line(gtkTextIter);
1353 * Moves count visible lines forward, if possible (if count would move
1354 * past the start or end of the buffer, moves to the start or end of
1355 * the buffer). The return value indicates whether the iterator moved
1356 * onto a dereferenceable position; if the iterator didn't move, or
1357 * moved onto the end iterator, then FALSE is returned. If count is 0,
1358 * the function does nothing and returns FALSE. If count is negative,
1359 * moves backward by 0 - count lines.
1360 * iter:
1361 * a GtkTextIter
1362 * count:
1363 * number of lines to move forward
1364 * Returns:
1365 * whether iter moved and is dereferenceable
1366 * Since 2.8
1368 public int forwardVisibleLines(int count)
1370 // gboolean gtk_text_iter_forward_visible_lines (GtkTextIter *iter, gint count);
1371 return gtk_text_iter_forward_visible_lines(gtkTextIter, count);
1375 * Moves count visible lines backward, if possible (if count would move
1376 * past the start or end of the buffer, moves to the start or end of
1377 * the buffer). The return value indicates whether the iterator moved
1378 * onto a dereferenceable position; if the iterator didn't move, or
1379 * moved onto the end iterator, then FALSE is returned. If count is 0,
1380 * the function does nothing and returns FALSE. If count is negative,
1381 * moves forward by 0 - count lines.
1382 * iter:
1383 * a GtkTextIter
1384 * count:
1385 * number of lines to move backward
1386 * Returns:
1387 * whether iter moved and is dereferenceable
1388 * Since 2.8
1390 public int backwardVisibleLines(int count)
1392 // gboolean gtk_text_iter_backward_visible_lines (GtkTextIter *iter, gint count);
1393 return gtk_text_iter_backward_visible_lines(gtkTextIter, count);
1397 * Sets iter to point to char_offset. char_offset counts from the start
1398 * of the entire text buffer, starting with 0.
1399 * iter:
1400 * a GtkTextIter
1401 * char_offset:
1402 * a character number
1404 public void setOffset(int charOffset)
1406 // void gtk_text_iter_set_offset (GtkTextIter *iter, gint char_offset);
1407 gtk_text_iter_set_offset(gtkTextIter, charOffset);
1411 * Moves iterator iter to the start of the line line_number. If
1412 * line_number is negative or larger than the number of lines in the
1413 * buffer, moves iter to the start of the last line in the buffer.
1414 * iter:
1415 * a GtkTextIter
1416 * line_number:
1417 * line number (counted from 0)
1419 public void setLine(int lineNumber)
1421 // void gtk_text_iter_set_line (GtkTextIter *iter, gint line_number);
1422 gtk_text_iter_set_line(gtkTextIter, lineNumber);
1426 * Moves iter within a line, to a new character
1427 * (not byte) offset. The given character offset must be less than or
1428 * equal to the number of characters in the line; if equal, iter
1429 * moves to the start of the next line. See
1430 * gtk_text_iter_set_line_index() if you have a byte index rather than
1431 * a character offset.
1432 * iter:
1433 * a GtkTextIter
1434 * char_on_line:
1435 * a character offset relative to the start of iter's current line
1437 public void setLineOffset(int charOnLine)
1439 // void gtk_text_iter_set_line_offset (GtkTextIter *iter, gint char_on_line);
1440 gtk_text_iter_set_line_offset(gtkTextIter, charOnLine);
1444 * Same as gtk_text_iter_set_line_offset(), but works with a
1445 * byte index. The given byte index must be at
1446 * the start of a character, it can't be in the middle of a UTF-8
1447 * encoded character.
1448 * iter:
1449 * a GtkTextIter
1450 * byte_on_line:
1451 * a byte index relative to the start of iter's current line
1453 public void setLineIndex(int byteOnLine)
1455 // void gtk_text_iter_set_line_index (GtkTextIter *iter, gint byte_on_line);
1456 gtk_text_iter_set_line_index(gtkTextIter, byteOnLine);
1460 * Like gtk_text_iter_set_line_index(), but the index is in visible
1461 * bytes, i.e. text with a tag making it invisible is not counted
1462 * in the index.
1463 * iter:
1464 * a GtkTextIter
1465 * byte_on_line:
1466 * a byte index
1468 public void setVisibleLineIndex(int byteOnLine)
1470 // void gtk_text_iter_set_visible_line_index (GtkTextIter *iter, gint byte_on_line);
1471 gtk_text_iter_set_visible_line_index(gtkTextIter, byteOnLine);
1475 * Like gtk_text_iter_set_line_offset(), but the offset is in visible
1476 * characters, i.e. text with a tag making it invisible is not
1477 * counted in the offset.
1478 * iter:
1479 * a GtkTextIter
1480 * char_on_line:
1481 * a character offset
1483 public void setVisibleLineOffset(int charOnLine)
1485 // void gtk_text_iter_set_visible_line_offset (GtkTextIter *iter, gint char_on_line);
1486 gtk_text_iter_set_visible_line_offset(gtkTextIter, charOnLine);
1490 * Moves iter forward to the "end iterator," which points one past the last
1491 * valid character in the buffer. gtk_text_iter_get_char() called on the
1492 * end iterator returns 0, which is convenient for writing loops.
1493 * iter:
1494 * a GtkTextIter
1496 public void forwardToEnd()
1498 // void gtk_text_iter_forward_to_end (GtkTextIter *iter);
1499 gtk_text_iter_forward_to_end(gtkTextIter);
1503 * Moves the iterator to point to the paragraph delimiter characters,
1504 * which will be either a newline, a carriage return, a carriage
1505 * return/newline in sequence, or the Unicode paragraph separator
1506 * character. If the iterator is already at the paragraph delimiter
1507 * characters, moves to the paragraph delimiter characters for the
1508 * next line. If iter is on the last line in the buffer, which does
1509 * not end in paragraph delimiters, moves to the end iterator (end of
1510 * the last line), and returns FALSE.
1511 * iter:
1512 * a GtkTextIter
1513 * Returns:
1514 * TRUE if we moved and the new location is not the end iterator
1516 public int forwardToLineEnd()
1518 // gboolean gtk_text_iter_forward_to_line_end (GtkTextIter *iter);
1519 return gtk_text_iter_forward_to_line_end(gtkTextIter);
1523 * Moves forward to the next toggle (on or off) of the
1524 * GtkTextTag tag, or to the next toggle of any tag if
1525 * tag is NULL. If no matching tag toggles are found,
1526 * returns FALSE, otherwise TRUE. Does not return toggles
1527 * located at iter, only toggles after iter. Sets iter to
1528 * the location of the toggle, or to the end of the buffer
1529 * if no toggle is found.
1530 * iter:
1531 * a GtkTextIter
1532 * tag:
1533 * a GtkTextTag, or NULL
1534 * Returns:
1535 * whether we found a tag toggle after iter
1537 public int forwardToTagToggle(TextTag tag)
1539 // gboolean gtk_text_iter_forward_to_tag_toggle (GtkTextIter *iter, GtkTextTag *tag);
1540 return gtk_text_iter_forward_to_tag_toggle(gtkTextIter, (tag is null) ? null : tag.getTextTagStruct());
1544 * Moves backward to the next toggle (on or off) of the
1545 * GtkTextTag tag, or to the next toggle of any tag if
1546 * tag is NULL. If no matching tag toggles are found,
1547 * returns FALSE, otherwise TRUE. Does not return toggles
1548 * located at iter, only toggles before iter. Sets iter
1549 * to the location of the toggle, or the start of the buffer
1550 * if no toggle is found.
1551 * iter:
1552 * a GtkTextIter
1553 * tag:
1554 * a GtkTextTag, or NULL
1555 * Returns:
1556 * whether we found a tag toggle before iter
1558 public int backwardToTagToggle(TextTag tag)
1560 // gboolean gtk_text_iter_backward_to_tag_toggle (GtkTextIter *iter, GtkTextTag *tag);
1561 return gtk_text_iter_backward_to_tag_toggle(gtkTextIter, (tag is null) ? null : tag.getTextTagStruct());
1566 * Advances iter, calling pred on each character. If
1567 * pred returns TRUE, returns TRUE and stops scanning.
1568 * If pred never returns TRUE, iter is set to limit if
1569 * limit is non-NULL, otherwise to the end iterator.
1570 * iter:
1571 * a GtkTextIter
1572 * pred:
1573 * a function to be called on each character
1574 * user_data:
1575 * user data for pred
1576 * limit:
1577 * search limit, or NULL for none
1578 * Returns:
1579 * whether a match was found
1581 public int forwardFindChar(GtkTextCharPredicate pred, void* userData, TextIter limit)
1583 // gboolean gtk_text_iter_forward_find_char (GtkTextIter *iter, GtkTextCharPredicate pred, gpointer user_data, const GtkTextIter *limit);
1584 return gtk_text_iter_forward_find_char(gtkTextIter, pred, userData, (limit is null) ? null : limit.getTextIterStruct());
1588 * Same as gtk_text_iter_forward_find_char(), but goes backward from iter.
1589 * iter:
1590 * a GtkTextIter
1591 * pred:
1592 * function to be called on each character
1593 * user_data:
1594 * user data for pred
1595 * limit:
1596 * search limit, or NULL for none
1597 * Returns:
1598 * whether a match was found
1600 public int backwardFindChar(GtkTextCharPredicate pred, void* userData, TextIter limit)
1602 // gboolean gtk_text_iter_backward_find_char (GtkTextIter *iter, GtkTextCharPredicate pred, gpointer user_data, const GtkTextIter *limit);
1603 return gtk_text_iter_backward_find_char(gtkTextIter, pred, userData, (limit is null) ? null : limit.getTextIterStruct());
1608 * Searches forward for str. Any match is returned by setting
1609 * match_start to the first character of the match and match_end to the
1610 * first character after the match. The search will not continue past
1611 * limit. Note that a search is a linear or O(n) operation, so you
1612 * may wish to use limit to avoid locking up your UI on large
1613 * buffers.
1614 * If the GTK_TEXT_SEARCH_VISIBLE_ONLY flag is present, the match may
1615 * have invisible text interspersed in str. i.e. str will be a
1616 * possibly-noncontiguous subsequence of the matched range. similarly,
1617 * if you specify GTK_TEXT_SEARCH_TEXT_ONLY, the match may have
1618 * pixbufs or child widgets mixed inside the matched range. If these
1619 * flags are not given, the match must be exact; the special 0xFFFC
1620 * character in str will match embedded pixbufs or child widgets.
1621 * iter:
1622 * start of search
1623 * str:
1624 * a search string
1625 * flags:
1626 * flags affecting how the search is done
1627 * match_start:
1628 * return location for start of match, or NULL
1629 * match_end:
1630 * return location for end of match, or NULL
1631 * limit:
1632 * bound for the search, or NULL for the end of the buffer
1633 * Returns:
1634 * whether a match was found
1636 public int forwardSearch(char[] str, GtkTextSearchFlags flags, TextIter matchStart, TextIter matchEnd, TextIter limit)
1638 // gboolean gtk_text_iter_forward_search (const GtkTextIter *iter, const gchar *str, GtkTextSearchFlags flags, GtkTextIter *match_start, GtkTextIter *match_end, const GtkTextIter *limit);
1639 return gtk_text_iter_forward_search(gtkTextIter, Str.toStringz(str), flags, (matchStart is null) ? null : matchStart.getTextIterStruct(), (matchEnd is null) ? null : matchEnd.getTextIterStruct(), (limit is null) ? null : limit.getTextIterStruct());
1643 * Same as gtk_text_iter_forward_search(), but moves backward.
1644 * iter:
1645 * a GtkTextIter where the search begins
1646 * str:
1647 * search string
1648 * flags:
1649 * bitmask of flags affecting the search
1650 * match_start:
1651 * return location for start of match, or NULL
1652 * match_end:
1653 * return location for end of match, or NULL
1654 * limit:
1655 * location of last possible match_start, or NULL for start of buffer
1656 * Returns:
1657 * whether a match was found
1659 public int backwardSearch(char[] str, GtkTextSearchFlags flags, TextIter matchStart, TextIter matchEnd, TextIter limit)
1661 // gboolean gtk_text_iter_backward_search (const GtkTextIter *iter, const gchar *str, GtkTextSearchFlags flags, GtkTextIter *match_start, GtkTextIter *match_end, const GtkTextIter *limit);
1662 return gtk_text_iter_backward_search(gtkTextIter, Str.toStringz(str), flags, (matchStart is null) ? null : matchStart.getTextIterStruct(), (matchEnd is null) ? null : matchEnd.getTextIterStruct(), (limit is null) ? null : limit.getTextIterStruct());
1666 * Tests whether two iterators are equal, using the fastest possible
1667 * mechanism. This function is very fast; you can expect it to perform
1668 * better than e.g. getting the character offset for each iterator and
1669 * comparing the offsets yourself. Also, it's a bit faster than
1670 * gtk_text_iter_compare().
1671 * lhs:
1672 * a GtkTextIter
1673 * rhs:
1674 * another GtkTextIter
1675 * Returns:
1676 * TRUE if the iterators point to the same place in the buffer
1678 public int equal(TextIter rhs)
1680 // gboolean gtk_text_iter_equal (const GtkTextIter *lhs, const GtkTextIter *rhs);
1681 return gtk_text_iter_equal(gtkTextIter, (rhs is null) ? null : rhs.getTextIterStruct());
1685 * A qsort()-style function that returns negative if lhs is less than
1686 * rhs, positive if lhs is greater than rhs, and 0 if they're equal.
1687 * Ordering is in character offset order, i.e. the first character in the buffer
1688 * is less than the second character in the buffer.
1689 * lhs:
1690 * a GtkTextIter
1691 * rhs:
1692 * another GtkTextIter
1693 * Returns:
1694 * -1 if lhs is less than rhs, 1 if lhs is greater, 0 if they are equal
1696 public int compare(TextIter rhs)
1698 // gint gtk_text_iter_compare (const GtkTextIter *lhs, const GtkTextIter *rhs);
1699 return gtk_text_iter_compare(gtkTextIter, (rhs is null) ? null : rhs.getTextIterStruct());
1703 * Checks whether iter falls in the range [start, end).
1704 * start and end must be in ascending order.
1705 * iter:
1706 * a GtkTextIter
1707 * start:
1708 * start of range
1709 * end:
1710 * end of range
1711 * Returns:
1712 * TRUE if iter is in the range
1714 public int inRange(TextIter start, TextIter end)
1716 // gboolean gtk_text_iter_in_range (const GtkTextIter *iter, const GtkTextIter *start, const GtkTextIter *end);
1717 return gtk_text_iter_in_range(gtkTextIter, (start is null) ? null : start.getTextIterStruct(), (end is null) ? null : end.getTextIterStruct());
1721 * Swaps the value of first and second if second comes before
1722 * first in the buffer. That is, ensures that first and second are
1723 * in sequence. Most text buffer functions that take a range call this
1724 * automatically on your behalf, so there's no real reason to call it yourself
1725 * in those cases. There are some exceptions, such as gtk_text_iter_in_range(),
1726 * that expect a pre-sorted range.
1727 * first:
1728 * a GtkTextIter
1729 * second:
1730 * another GtkTextIter
1732 public void order(TextIter second)
1734 // void gtk_text_iter_order (GtkTextIter *first, GtkTextIter *second);
1735 gtk_text_iter_order(gtkTextIter, (second is null) ? null : second.getTextIterStruct());