<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <linklocation="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
<summary>The interface implemented by components with text content.</summary>
<remarks>
<para>
<seecref="T:Atk.Text"/> should be implemented by <seecref="T:Atk.Object"/>s on behalf of widgets that have text content which is either attributed or otherwise non-trivial. <seecref="T:Atk.Object"/>s whose text content is simple, unattributed, and very brief may expose that content via atk_object_get_name instead; however if the text is editable, multi-line, typically longer than three or four words, attributed, selectable, or if the object already uses the 'name' ATK property for other information, the <seecref="T:Atk.Text"/> interface should be used to expose the text content. In the case of editable text content, <seecref="T:Atk.EditableText"/> (a subtype of the <seecref="T:Atk.Text"/> interface) should be implemented instead.
</para>
<para>
<seecref="T:Atk.Text"/> provides not only traversal facilities and change notification for text content, but also caret tracking and glyph bounding box calculations. Note that the text strings are exposed as UTF-8, and are therefore potentially multi-byte, and caret-to-byte offset mapping makes no assumptions about the character length; also bounding box glyph-to-offset mapping may be complex for languages which use ligatures.
<summary>Creates an <seecref="T:Atk.AttributeSet"/> which consists of the default values of attributes for the text.</summary>
<value> an <seecref="T:Atk.AttributeSet"/> which contains the default values of attributes, at <paramrefname="offset"/>.</value>
<remarks>See the enum <seecref="T:Atk.TextAttribute"/> for types of text attributes that can be returned. Note that other attributes may also be returned.</remarks>
<MemberSignatureLanguage="C#"Value="public void GetCharacterExtents (int offset, out int x, out int y, out int width, out int height, Atk.CoordType coords);"/>
<paramname="x"> screen x-position of character</param>
<paramname="y"> screen y-position of character</param>
<paramname="coords"> specify whether coordinates are relative to the screen or widget window</param>
<summary>Gets the offset of the character located at coordinates <paramrefname="x"/> and <paramrefname="y"/>. </summary>
<returns> the offset to the character which is located at the specified x and y coordinates.</returns>
<remarks>
<paramrefname="x"/> and <paramrefname="y"/> are interpreted as being relative to the screen or this widget's window depending on <paramrefname="coords"/>.</remarks>
<paramname="selection_num"> The selection number. The selected regions are assigned numbers that correspond to how far the region is from the start of the text. The selected region closest to the beginning of the text region is assigned the number 0, etc. Note that adding, moving or deleting a selected region can change the numbering.</param>
<paramname="start_offset"> passes back the start position of the selected region</param>
<paramname="end_offset"> passes back the end position of the selected region</param>
<summary>Gets the text from the specified selection.</summary>
<MemberSignatureLanguage="C#"Value="public string GetTextAfterOffset (int offset, Atk.TextBoundary boundary_type, out int start_offset, out int end_offset);"/>
<returns> the text after <paramrefname="offset"/> bounded by the specified <paramrefname="boundary_type"/>.</returns>
<remarks>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.Char"/> the character after the offset is returned.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.WordStart"/> the returned string is from the word start after the offset to the next word start.
</para>
<para>
The returned string will contain the word after the offset if the offset is inside a word or if the offset is not inside a word.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.WordEnd"/> the returned string is from the word end at or after the offset to the next work end.
</para>
<para>
The returned string will contain the word after the offset if the offset is inside a word and will contain the word after the word after the offset if the offset is not inside a word.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.SentenceStart"/> the returned string is from the sentence start after the offset to the next sentence start.
</para>
<para>
The returned string will contain the sentence after the offset if the offset is inside a sentence or if the offset is not inside a sentence.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.SentenceEnd"/> the returned string is from the sentence end at or after the offset to the next sentence end.
</para>
<para>
The returned string will contain the sentence after the offset if the offset is inside a sentence and will contain the sentence after the sentence after the offset if the offset is not inside a sentence.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.LineStart"/> the returned string is from the line start after the offset to the next line start.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.LineEnd"/> the returned string is from the line end at or after the offset to the next line start.
<MemberSignatureLanguage="C#"Value="public string GetTextAtOffset (int offset, Atk.TextBoundary boundary_type, out int start_offset, out int end_offset);"/>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.Char"/> the character after the offset is returned.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.WordStart"/> the returned string is from the word start after the offset to the next word start.
</para>
<para>
The returned string will contain the word after the offset if the offset is inside a word or if the offset is not inside a word.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.WordEnd"/> the returned string is from the word end at or after the offset to the next work end.
</para>
<para>
The returned string will contain the word after the offset if the offset is inside a word and will contain the word after the word after the offset if the offset is not inside a word.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.SentenceStart"/> the returned string is from the sentence start after the offset to the next sentence start.
</para>
<para>
The returned string will contain the sentence after the offset if the offset is inside a sentence or if the offset is not inside a sentence.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.SentenceEnd"/> the returned string is from the sentence end at or after the offset to the next sentence end.
</para>
<para>
The returned string will contain the sentence after the offset if the offset is inside a sentence and will contain the sentence after the sentence after the offset if the offset is not inside a sentence.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.LineStart"/> the returned string is from the line start after the offset to the next line start.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.LineEnd"/> the returned string is from the line end at or after the offset to the next line start.
<MemberSignatureLanguage="C#"Value="public string GetTextBeforeOffset (int offset, Atk.TextBoundary boundary_type, out int start_offset, out int end_offset);"/>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.Char"/> the character after the offset is returned.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.WordStart"/> the returned string is from the word start after the offset to the next word start.
</para>
<para>
The returned string will contain the word after the offset if the offset is inside a word or if the offset is not inside a word.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.WordEnd"/> the returned string is from the word end at or after the offset to the next work end.
</para>
<para>
The returned string will contain the word after the offset if the offset is inside a word and will contain the word after the word after the offset if the offset is not inside a word.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.SentenceStart"/> the returned string is from the sentence start after the offset to the next sentence start.
</para>
<para>
The returned string will contain the sentence after the offset if the offset is inside a sentence or if the offset is not inside a sentence.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.SentenceEnd"/> the returned string is from the sentence end at or after the offset to the next sentence end.
</para>
<para>
The returned string will contain the sentence after the offset if the offset is inside a sentence and will contain the sentence after the sentence after the offset if the offset is not inside a sentence.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.LineStart"/> the returned string is from the line start after the offset to the next line start.
</para>
<para>
If the <paramrefname="boundary_type"/> is <seecref="F:Atk.TextBoundary.LineEnd"/> the returned string is from the line end at or after the offset to the next line start.
<paramname="selection_num"> The selection number. The selected regions are assigned numbers that correspond to how far the region is from the start of the text. The selected region closest to the beginning of the text region is assigned the number 0, etc. Note that adding, moving or deleting a selected region can change the numbering.</param>
<summary>Removes the specified selection.</summary>
<returns>
<seelangword="true"/> if success, <seelangword="false"/> otherwise</returns>
<paramname="selection_num"> The selection number. The selected regions are assigned numbers that correspond to how far the region is from the start of the text. The selected region closest to the beginning of the text region is assigned the number 0, etc. Note that adding, moving or deleting a selected region can change the numbering.</param>
<paramname="start_offset"> the new start position of the selection</param>
<paramname="end_offset"> the new end position of the selection</param>
<summary>Changes the start and end offset of the specified selection.</summary>
<returns>
<seelangword="true"/> if success, <seelangword="false"/> otherwise</returns>
<MemberSignatureLanguage="ILAsm"Value=".event class Atk.TextChangedHandler TextChanged"/>
<MemberType>Event</MemberType>
<ReturnValue>
<ReturnType>Atk.TextChangedHandler</ReturnType>
</ReturnValue>
<Parameters/>
<Docs>
<summary>Emitted when the text of the object which implements the AtkText interface changes.</summary>
<remarks>This signal will have a detail which is either "insert" or "delete" which identifies whether the text change was an insertion or a deletion.</remarks>