summaryrefslogtreecommitdiff
path: root/docs/reference/gtk/tmpl/gtktextmark.sgml
blob: e08615371b85b81d6b2a61575ddfde2346137bb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<!-- ##### SECTION Title ##### -->
GtkTextMark

<!-- ##### SECTION Short_Description ##### -->

A position in the buffer preserved across buffer modifications

<!-- ##### SECTION Long_Description ##### -->
<para>
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.
</para>

<para>
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
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 <firstterm>left gravity</firstterm> will be moved to the
beginning of the newly-inserted text, and a mark with <firstterm>right
gravity</firstterm> will be moved to the end. 

<footnote>
<para>
"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.
</para>
</footnote>
</para>

<para>
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.
</para>

<para>
Marks optionally have names; these can be convenient to avoid passing the 
#GtkTextMark object around.
</para>

<para>
Marks are typically created using the gtk_text_buffer_create_mark() function.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### STRUCT GtkTextMark ##### -->
<para>

</para>


<!-- ##### FUNCTION gtk_text_mark_set_visible ##### -->
<para>

</para>

@mark: 
@setting: 


<!-- ##### FUNCTION gtk_text_mark_get_visible ##### -->
<para>

</para>

@mark: 
@Returns: 


<!-- ##### FUNCTION gtk_text_mark_get_deleted ##### -->
<para>

</para>

@mark: 
@Returns: 


<!-- ##### FUNCTION gtk_text_mark_get_name ##### -->
<para>

</para>

@mark: 
@Returns: 


<!-- ##### FUNCTION gtk_text_mark_get_buffer ##### -->
<para>

</para>

@mark: 
@Returns: 


<!-- ##### FUNCTION gtk_text_mark_get_left_gravity ##### -->
<para>

</para>

@mark: 
@Returns: