pub trait TextExt: 'static {
Show 23 methods
fn add_selection(&self, start_offset: i32, end_offset: i32) -> bool;
fn bounded_ranges(
&self,
rect: &mut TextRectangle,
coord_type: CoordType,
x_clip_type: TextClipType,
y_clip_type: TextClipType
) -> Vec<TextRange>;
fn caret_offset(&self) -> i32;
fn character_at_offset(&self, offset: i32) -> char;
fn character_count(&self) -> i32;
fn character_extents(
&self,
offset: i32,
coords: CoordType
) -> (i32, i32, i32, i32);
fn n_selections(&self) -> i32;
fn offset_at_point(&self, x: i32, y: i32, coords: CoordType) -> i32;
fn range_extents(
&self,
start_offset: i32,
end_offset: i32,
coord_type: CoordType
) -> TextRectangle;
fn selection(&self, selection_num: i32) -> (GString, i32, i32);
fn string_at_offset(
&self,
offset: i32,
granularity: TextGranularity
) -> (Option<GString>, i32, i32);
fn text(&self, start_offset: i32, end_offset: i32) -> Option<GString>;
fn text_at_offset(
&self,
offset: i32,
boundary_type: TextBoundary
) -> (GString, i32, i32);
fn remove_selection(&self, selection_num: i32) -> bool;
fn scroll_substring_to(
&self,
start_offset: i32,
end_offset: i32,
type_: ScrollType
) -> bool;
fn scroll_substring_to_point(
&self,
start_offset: i32,
end_offset: i32,
coords: CoordType,
x: i32,
y: i32
) -> bool;
fn set_caret_offset(&self, offset: i32) -> bool;
fn set_selection(
&self,
selection_num: i32,
start_offset: i32,
end_offset: i32
) -> bool;
fn connect_text_attributes_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_text_caret_moved<F: Fn(&Self, i32) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_text_insert<F: Fn(&Self, i32, i32, &str) + 'static>(
&self,
detail: Option<&str>,
f: F
) -> SignalHandlerId;
fn connect_text_remove<F: Fn(&Self, i32, i32, &str) + 'static>(
&self,
detail: Option<&str>,
f: F
) -> SignalHandlerId;
fn connect_text_selection_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
}
Expand description
Required Methods
fn add_selection(&self, start_offset: i32, end_offset: i32) -> bool
fn add_selection(&self, start_offset: i32, end_offset: i32) -> bool
Adds a selection bounded by the specified offsets.
start_offset
the starting character offset of the selected region
end_offset
the offset of the first character after the selected region.
Returns
fn bounded_ranges(
&self,
rect: &mut TextRectangle,
coord_type: CoordType,
x_clip_type: TextClipType,
y_clip_type: TextClipType
) -> Vec<TextRange>
fn bounded_ranges(
&self,
rect: &mut TextRectangle,
coord_type: CoordType,
x_clip_type: TextClipType,
y_clip_type: TextClipType
) -> Vec<TextRange>
Get the ranges of text in the specified bounding box.
rect
An AtkTextRectangle giving the dimensions of the bounding box.
coord_type
Specify whether coordinates are relative to the screen or widget window.
x_clip_type
Specify the horizontal clip type.
y_clip_type
Specify the vertical clip type.
Returns
Array of AtkTextRange. The last element of the array returned by this function will be NULL.
fn caret_offset(&self) -> i32
fn caret_offset(&self) -> i32
Gets the offset of the position of the caret (cursor).
Returns
the character offset of the position of the caret or -1 if the caret is not located inside the element or in the case of any other failure.
fn character_at_offset(&self, offset: i32) -> char
fn character_at_offset(&self, offset: i32) -> char
fn character_count(&self) -> i32
fn character_count(&self) -> i32
If the extent can not be obtained (e.g. missing support), all of x, y, width, height are set to -1.
Get the bounding box containing the glyph representing the character at a particular text offset.
offset
The offset of the text character for which bounding information is required.
coords
specify whether coordinates are relative to the screen or widget window
Returns
x
Pointer for the x coordinate of the bounding box
y
Pointer for the y coordinate of the bounding box
width
Pointer for the width of the bounding box
height
Pointer for the height of the bounding box
fn n_selections(&self) -> i32
fn n_selections(&self) -> i32
Gets the number of selected regions.
Returns
The number of selected regions, or -1 in the case of failure.
Gets the offset of the character located at coordinates x
and y
. x
and y
are interpreted as being relative to the screen or this widget’s window
depending on coords
.
x
screen x-position of character
y
screen y-position of character
coords
specify whether coordinates are relative to the screen or widget window
Returns
the offset to the character which is located at the specified
x
and y
coordinates of -1 in case of failure.
fn range_extents(
&self,
start_offset: i32,
end_offset: i32,
coord_type: CoordType
) -> TextRectangle
fn range_extents(
&self,
start_offset: i32,
end_offset: i32,
coord_type: CoordType
) -> TextRectangle
Get the bounding box for text within the specified range.
If the extents can not be obtained (e.g. or missing support), the rectangle fields are set to -1.
start_offset
The offset of the first text character for which boundary information is required.
end_offset
The offset of the text character after the last character for which boundary information is required.
coord_type
Specify whether coordinates are relative to the screen or widget window.
Returns
rect
A pointer to a AtkTextRectangle which is filled in by this function.
Gets the text from the specified selection.
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.
Returns
a newly allocated string containing the selected text. Use g_free()
to free the returned string.
start_offset
passes back the starting character offset of the selected region
end_offset
passes back the ending character offset (offset immediately past) of the selected region
fn string_at_offset(
&self,
offset: i32,
granularity: TextGranularity
) -> (Option<GString>, i32, i32)
fn string_at_offset(
&self,
offset: i32,
granularity: TextGranularity
) -> (Option<GString>, i32, i32)
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.
If granularity
is ATK_TEXT_GRANULARITY_CHAR the character at the
offset is returned.
If granularity
is ATK_TEXT_GRANULARITY_WORD the returned string
is from the word start at or before the offset to the word start after
the offset.
The returned string will contain the word at the offset if the offset is inside a word and will contain the word before the offset if the offset is not inside a word.
If granularity
is ATK_TEXT_GRANULARITY_SENTENCE the returned string
is from the sentence start at or before the offset to the sentence
start after the offset.
The returned string will contain the sentence at the offset if the offset is inside a sentence and will contain the sentence before the offset if the offset is not inside a sentence.
If granularity
is ATK_TEXT_GRANULARITY_LINE the returned string
is from the line start at or before the offset to the line
start after the offset.
If granularity
is ATK_TEXT_GRANULARITY_PARAGRAPH the returned string
is from the start of the paragraph at or before the offset to the start
of the following paragraph after the offset.
offset
position
granularity
Returns
a newly allocated string containing the text at
the offset
bounded by the specified granularity
. Use g_free()
to free the returned string. Returns None
if the offset is invalid
or no implementation is available.
start_offset
the starting character offset of the returned string, or -1 in the case of error (e.g. invalid offset, not implemented)
end_offset
the offset of the first character after the returned string, or -1 in the case of error (e.g. invalid offset, not implemented)
Gets the specified text.
start_offset
a starting character offset within self
end_offset
an ending character offset within self
, or -1 for the end of the string.
Returns
a newly allocated string containing the text from start_offset
up
to, but not including end_offset
. Use g_free()
to free the returned
string.
fn text_at_offset(
&self,
offset: i32,
boundary_type: TextBoundary
) -> (GString, i32, i32)
fn text_at_offset(
&self,
offset: i32,
boundary_type: TextBoundary
) -> (GString, i32, i32)
Gets the specified text.
If the boundary_type if ATK_TEXT_BOUNDARY_CHAR the character at the offset is returned.
If the boundary_type is ATK_TEXT_BOUNDARY_WORD_START the returned string is from the word start at or before the offset to the word start after the offset.
The returned string will contain the word at the offset if the offset is inside a word and will contain the word before the offset if the offset is not inside a word.
If the boundary type is ATK_TEXT_BOUNDARY_SENTENCE_START the returned string is from the sentence start at or before the offset to the sentence start after the offset.
The returned string will contain the sentence at the offset if the offset is inside a sentence and will contain the sentence before the offset if the offset is not inside a sentence.
If the boundary type is ATK_TEXT_BOUNDARY_LINE_START the returned string is from the line start at or before the offset to the line start after the offset.
Deprecated
This method is deprecated since ATK version
2.9.4. Please use string_at_offset()
instead.
offset
position
boundary_type
An TextBoundary
Returns
a newly allocated string containing the text at offset
bounded
by the specified boundary_type
. Use g_free()
to free the returned
string.
start_offset
the starting character offset of the returned string
end_offset
the offset of the first character after the returned substring
fn remove_selection(&self, selection_num: i32) -> bool
fn remove_selection(&self, selection_num: i32) -> bool
Removes the specified selection.
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.
Returns
fn scroll_substring_to(
&self,
start_offset: i32,
end_offset: i32,
type_: ScrollType
) -> bool
fn scroll_substring_to(
&self,
start_offset: i32,
end_offset: i32,
type_: ScrollType
) -> bool
v2_32
only.Makes a substring of self
visible on the screen by scrolling all necessary parents.
start_offset
start offset in the self
end_offset
end offset in the self
, or -1 for the end of the text.
type_
specify where the object should be made visible.
Returns
whether scrolling was successful.
v2_32
only.Move the top-left of a substring of self
to a given position of the screen
by scrolling all necessary parents.
start_offset
start offset in the self
end_offset
end offset in the self
, or -1 for the end of the text.
coords
specify whether coordinates are relative to the screen or to the parent object.
x
x-position where to scroll to
y
y-position where to scroll to
Returns
whether scrolling was successful.
fn set_caret_offset(&self, offset: i32) -> bool
fn set_caret_offset(&self, offset: i32) -> bool
Sets the caret (cursor) position to the specified offset
.
In the case of rich-text content, this method should either grab focus or move the sequential focus navigation starting point (if the application supports this concept) as if the user had clicked on the new caret position. Typically, this means that the target of this operation is the node containing the new caret position or one of its ancestors. In other words, after this method is called, if the user advances focus, it should move to the first focusable node following the new caret position.
Calling this method should also scroll the application viewport in a way that matches the behavior of the application’s typical caret motion or tab navigation as closely as possible. This also means that if the application’s caret motion or focus navigation does not trigger a scroll operation, this method should not trigger one either. If the application does not have a caret motion or focus navigation operation, this method should try to scroll the new caret position into view while minimizing unnecessary scroll motion.
offset
the character offset of the new caret position
Returns
Changes the start and end offset of the specified selection.
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.
start_offset
the new starting character offset of the selection
end_offset
the new end position of (e.g. offset immediately past) the selection
Returns
fn connect_text_attributes_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_text_attributes_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
The “text-attributes-changed” signal is emitted when the text attributes of the text of an object which implements AtkText changes.
fn connect_text_caret_moved<F: Fn(&Self, i32) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_text_caret_moved<F: Fn(&Self, i32) + 'static>(
&self,
f: F
) -> SignalHandlerId
The “text-caret-moved” signal is emitted when the caret position of the text of an object which implements AtkText changes.
arg1
The new position of the text caret.
fn connect_text_insert<F: Fn(&Self, i32, i32, &str) + 'static>(
&self,
detail: Option<&str>,
f: F
) -> SignalHandlerId
fn connect_text_insert<F: Fn(&Self, i32, i32, &str) + 'static>(
&self,
detail: Option<&str>,
f: F
) -> SignalHandlerId
The “text-insert” signal is emitted when a new text is inserted. If the signal was not triggered by the user (e.g. typing or pasting text), the “system” detail should be included.
arg1
The position (character offset) of the insertion.
arg2
The length (in characters) of text inserted.
arg3
The new text inserted
fn connect_text_remove<F: Fn(&Self, i32, i32, &str) + 'static>(
&self,
detail: Option<&str>,
f: F
) -> SignalHandlerId
fn connect_text_remove<F: Fn(&Self, i32, i32, &str) + 'static>(
&self,
detail: Option<&str>,
f: F
) -> SignalHandlerId
The “text-remove” signal is emitted when a new text is removed. If the signal was not triggered by the user (e.g. typing or pasting text), the “system” detail should be included.
arg1
The position (character offset) of the removal.
arg2
The length (in characters) of text removed.
arg3
The old text removed
fn connect_text_selection_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_text_selection_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
The “text-selection-changed” signal is emitted when the selected text of an object which implements AtkText changes.