:right-sidebar: True TextMark =================================================================== .. currentmodule:: gi.repository.Gtk .. class:: TextMark(**properties: ~typing.Any) :no-contents-entry: Superclasses: :class:`~gi.repository.GObject.Object` A ``GtkTextMark`` is a position in a ``GtkTextbuffer`` that is preserved across modifications. You may wish to begin by reading the `text widget conceptual overview `__\, which gives an overview of all the objects and data types related to the text widget and how they work together. A ``GtkTextMark`` is like a bookmark in a text buffer; it preserves a position in the text. You can convert the mark to an iterator using :obj:`~gi.repository.Gtk.TextBuffer.get_iter_at_mark`\. Unlike iterators, marks remain valid across buffer mutations, because their behavior is defined when text is inserted or deleted. When text containing a mark is deleted, the mark remains in the position originally occupied by the deleted text. When text is inserted at a mark, a mark with “left gravity” will be moved to the beginning of the newly-inserted text, and a mark with “right gravity” will be moved to the end. Note that “left” and “right” here refer to logical direction (left is the toward the start of the buffer); in some languages such as Hebrew the logically-leftmost text is not actually on the left when displayed. Marks are reference counted, but the reference count only controls the validity of the memory; marks can be deleted from the buffer at any time with :obj:`~gi.repository.Gtk.TextBuffer.delete_mark`\. Once deleted from the buffer, a mark is essentially useless. Marks optionally have names; these can be convenient to avoid passing the ``GtkTextMark`` object around. Marks are typically created using the :obj:`~gi.repository.Gtk.TextBuffer.create_mark` function. Constructors ------------ .. rst-class:: interim-class .. class:: TextMark :no-index: .. classmethod:: new(name: str | None, left_gravity: bool) -> ~gi.repository.Gtk.TextMark Creates a text mark. Add it to a buffer using :obj:`~gi.repository.Gtk.TextBuffer.add_mark`\. If ``name`` is :const:`None`, the mark is anonymous; otherwise, the mark can be retrieved by name using :obj:`~gi.repository.Gtk.TextBuffer.get_mark`\. If a mark has left gravity, and text is inserted at the mark’s current location, the mark will be moved to the left of the newly-inserted text. If the mark has right gravity (``left_gravity`` = :const:`False`), the mark will end up on the right of newly-inserted text. The standard left-to-right cursor is a mark with right gravity (when you type, the cursor stays on the right side of the text you’re typing). :param name: mark name :param left_gravity: whether the mark should have left gravity Methods ------- .. rst-class:: interim-class .. class:: TextMark :no-index: .. method:: get_buffer() -> ~gi.repository.Gtk.TextBuffer | None Gets the buffer this mark is located inside. Returns :const:`None` if the mark is deleted. .. method:: get_deleted() -> bool Returns :const:`True` if the mark has been removed from its buffer. See :obj:`~gi.repository.Gtk.TextBuffer.add_mark` for a way to add it to a buffer again. .. method:: get_left_gravity() -> bool Determines whether the mark has left gravity. .. method:: get_name() -> str | None Returns the mark name. Returns :const:`None` for anonymous marks. .. method:: get_visible() -> bool Returns :const:`True` if the mark is visible. A cursor is displayed for visible marks. .. method:: set_visible(setting: bool) -> None Sets the visibility of ``mark``\. The insertion point is normally visible, i.e. you can see it as a vertical bar. Also, the text widget uses a visible mark to indicate where a drop will occur when dragging-and-dropping text. Most other marks are not visible. Marks are not visible by default. :param setting: visibility of mark Properties ---------- .. rst-class:: interim-class .. class:: TextMark :no-index: .. attribute:: props.left_gravity :type: bool The type of the None singleton. .. attribute:: props.name :type: str The type of the None singleton. Fields ------ .. rst-class:: interim-class .. class:: TextMark :no-index: .. attribute:: parent_instance .. attribute:: segment