type Gtk_Text_Mark_Record is new GObject_Record with null record;
type Gtk_Text_Mark is access all Gtk_Text_Mark_Record'Class;
Left_Gravity_Property : constant Glib.Properties.Property_Boolean;
Name_Property : constant Glib.Properties.Property_String;
procedure Gtk_New
( | Mark | : out Gtk_Text_Mark; |
Name | : UTF8_String := ""; | |
Left_Gravity | : Boolean); |
procedure Initialize
( | Mark | : not null access Gtk_Text_Mark_Record'Class; |
Name | : UTF8_String := ""; | |
Left_Gravity | : Boolean); |
function Gtk_Text_Mark_New
( | Name | : UTF8_String := ""; |
Left_Gravity | : Boolean) return Gtk_Text_Mark; |
function Get_Type return Glib.GType;
function Get_Deleted
( | Mark | : not null access Gtk_Text_Mark_Record) return Boolean; |
function Get_Left_Gravity
( | Mark | : not null access Gtk_Text_Mark_Record) return Boolean; |
function Get_Name
( | Mark | : not null access Gtk_Text_Mark_Record) return UTF8_String; |
function Get_Visible
( | Mark | : not null access Gtk_Text_Mark_Record) return Boolean; |
procedure Set_Visible
( | Mark | : not null access Gtk_Text_Mark_Record; |
Setting | : Boolean); |
procedure Set_Text_Mark
( | Val | : in out Glib.Values.GValue; |
Mark | : access Gtk_Text_Mark_Record); |
function Get_Text_Mark
( | Val | : Glib.Values.GValue) return Gtk_Text_Mark; |
You may wish to begin by reading the <link linkend="TextWidget">text widget conceptual overview</link> which gives an overview of all the objects and data types related to the text widget and how they work together.
A Gtk.Text_Mark.Gtk_Text_Mark 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.Text_Buffer.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. [ "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.Text_Buffer.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.Text_Mark.Gtk_Text_Mark object around.
Marks are typically created using the Gtk.Text_Buffer.Create_Mark function.