efl/src/lib/elementary/efl_text_interactive.eo

89 lines
3.3 KiB
Plaintext

import efl_text_types;
interface Efl.Text_Interactive extends Efl.Text, Efl.Text_Font_Properties,
Efl.Text_Format, Efl.Text_Style
{
[[Interface for interactive (editable) text inputs (text entries).
It handles cursors, edition and selection.
@since 1.24
]]
methods {
@property main_cursor {
[[The cursor used to insert new text, the one that's visible to the user.]]
get {}
values {
cursor: Efl.Text.Cursor; [[The cursor visible to the user.]]
}
}
@property selection_allowed {
[[Whether or not text selection is allowed on this object.]]
set {}
get {}
values {
allowed: bool; [[$true if enabled.]]
}
}
@property selection_cursors {
[[The cursors used for selection handling.
If the cursors are equal there's no selection.
]]
get {
[[You are allowed to retain and modify them. Modifying them modifies
the selection of the object (recommended to extend selection range).]]
}
set {
[[The positions of passed cursors will be used to set selection cursors positions.
Further modification for passed @Efl.Text.Cursor objects, will not affect selection.
Setter is recommended to set new range for selection.]]
}
values {
start: Efl.Text.Cursor; [[The start of the selection.]]
end: Efl.Text.Cursor; [[The end of the selection.]]
}
}
@property editable {
[[Whether the entry is editable.
By default interactive text objects are editable. Setting this
property to $false will disregard all keyboard input.
]]
set {
}
get {
}
values {
editable: bool; [[If $true, user input can modify the text.
Otherwise, the entry is read-only and no user input is allowed.]]
}
}
all_unselect {
[[Clears the selection.]]
}
all_select {
[[Select all the content.]]
}
@property have_selection {
[[Whether the entry has a selected text.
]]
get {
}
values {
selected: bool; [[If $true, entry has selected text.]]
}
}
}
events {
preedit,changed: void; [[Emitted when key presses do not result in a new character being added.
Multiple key presses are needed to produce a character in some languages like
Korean, for example. Each of these key presses will emit a @[.preedit,changed]
event but only the last one will emit a @[.changed,user] event.
]]
have_selection,changed: bool; [[Emitted when the @.have_selection property value changes.]]
selection,changed: Eina.Range; [[Emitted when selection has changed. Query using @.selection_cursors.]]
redo,request: void; [[Emitted when a redo operation is requested.]]
undo,request: void; [[Emitted when a undo operation is requested.]]
changed,user: Efl.Text_Change_Info; [[Emitted when the text content has changed due to user interaction.]]
}
}