About all my projects
Gnome::Gtk4::TextMark

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; .