Gtk.TextMark
Gtk.TextMark — A position in the buffer preserved across buffer modifications
Object Hierarchy:
GObject
╰── Gtk.TextMark
Functions:
- new
(name:str=None, left_gravity:bool) -> Gtk.TextMark
- set_visible
(self, setting:bool)
- get_visible
(self) -> bool
- get_deleted
(self) -> bool
- get_name
(self) -> str
- get_buffer
(self) -> Gtk.TextBuffer
- get_left_gravity
(self) -> bool
Description:
You may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together.
A Gtk.TextMark
is like a bookmark in a text buffer; it preserves a position in the text. You can convert the mark to an iterator using 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 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 Gtk.TextMark
object around.
Marks are typically created using the Gtk.TextBuffer::create_mark()
function.
Function Details:
new()
new (name:str=None, left_gravity:bool) -> Gtk.TextMark
Creates a text mark. Add it to a buffer using Gtk.TextBuffer:add_mark`()`.If `name` is `None`, the mark is anonymous; otherwise, the mark can be retrieved by name using
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
= 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 rightside of the text you’re typing).
Returns: new Gtk.TextMark
Since: 2.12
set_visible()
set_visible (self, setting:bool)
Sets the visibility of mark
; the insertion point is normallyvisible, i.e. you can see it as a vertical bar. Also, the textwidget uses a visible mark to indicate where a drop will occur whendragging-and-dropping text. Most other marks are not visible.Marks are not visible by default.
get_visible()
get_visible (self) -> bool
Returns True
if the mark is visible (i.e. a cursor is displayedfor it).
- Returns:
True
if visible
get_deleted()
get_deleted (self) -> bool
Returns True
if the mark has been removed from its bufferwith Gtk.TextBuffer:delete_mark`()`. See
Gtk.TextBuffer:add_mark()
for a way to add it to a buffer again.
- Returns: whether the mark is deleted
get_name()
get_name (self) -> str
Returns the mark name; returns None for anonymous marks.
- Returns: mark name
get_buffer()
get_buffer (self) -> Gtk.TextBuffer
Gets the buffer this mark is located inside,or None
if the mark is deleted.
- Returns:
the mark’s
Gtk.TextBuffer
.
get_left_gravity()
get_left_gravity (self) -> bool
Determines whether the mark has left gravity.
- Returns:
True
if the mark has left gravity,FALSE
otherwise