Text should be implemented by Objects on behalf of widgets that
have text content which is either attributed or otherwise non-trivial.
Objects whose text content is simple, unattributed, and very brief may expose that content
via 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
Text interface should be used to expose the text content. In the case of editable text content,
EditableText (a subtype of the Text interface) should
be implemented instead.
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.
Gets a portion of the text exposed through an Text
according to a given offset and a specific granularity, along with the start and end offsets defining the
boundaries of such a portion of text.
The "text-changed" signal is emitted when the text of the object which
implements the AtkText interface changes, This signal will have a detail which is either "insert" or "delete" which identifies whether the
text change was an insertion or a deletion.