Gnome::Gtk4::TextMark
Description
A Gnome::Gtk4::TextMark is a position in a GtkTextbuffer that is preserved across modifications.
You may wish to begin by reading the [text widget conceptual overview](section-text-widget.html), which gives an overview of all the objects and data types related to the text widget and how they work together.
A Gnome::Gtk4::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 .get-iter-at-mark() in class Gnome::Gtk4::TextBuffer
. 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 .delete-mark() in class Gnome::Gtk4::TextBuffer
. Once deleted from the buffer, a mark is essentially useless.
Marks optionally have names; these can be convenient to avoid passing the Gnome::Gtk4::TextMark object around.
Marks are typically created using the .create-mark() in class Gnome::Gtk4::TextBuffer
function.
Class initialization
new
:native-object
Create an object using a native object from elsewhere. See also Gnome::N::TopLevelSupportClass.
multi method new ( N-Object :$native-object! )
new-textmark
Creates a text mark.
Add it to a buffer using .add-mark() in class Gnome::Gtk4::TextBuffer
. If $name
is undefined, the mark is anonymous; otherwise, the mark can be retrieved by name using .get-mark() in class Gnome::Gtk4::TextBuffer
. 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 right side of the text you’re typing).
method new-textmark ( Str $name, Bool() $left-gravity --> Gnome::Gtk4::TextMark \)
$name; mark name.
$left-gravity; whether the mark should have left gravity.
Methods
get-buffer
Gets the buffer this mark is located inside.
Returns undefined if the mark is deleted.
method get-buffer (--> N-Object )
Return value; the mark’s Gnome::Gtk4::TextBuffer.
get-deleted
Returns True
if the mark has been removed from its buffer.
See .add-mark() in class Gnome::Gtk4::TextBuffer
for a way to add it to a buffer again.
method get-deleted (--> Bool )
Return value; whether the mark is deleted.
get-left-gravity
Determines whether the mark has left gravity.
method get-left-gravity (--> Bool )
Return value; True
if the mark has left gravity, False
otherwise.
get-name
Returns the mark name.
Returns undefined for anonymous marks.
method get-name (--> Str )
Return value; mark name.
get-visible
Returns True
if the mark is visible.
A cursor is displayed for visible marks.
method get-visible (--> Bool )
Return value; True
if visible.
set-visible
No documentation of method.
method set-visible ( Bool() $setting )
$setting; .