Struct gtk4::EntryCompletion [−][src]
pub struct EntryCompletion(_);
Expand description
EntryCompletion
is an auxiliary object to provide completion functionality
for Entry
.
It implements the CellLayout
interface, to allow the user
to add extra cells to the TreeView
with completion matches.
“Completion functionality” means that when the user modifies the text
in the entry, EntryCompletion
checks which rows in the model match
the current content of the entry, and displays a list of matches.
By default, the matching is done by comparing the entry text
case-insensitively against the text column of the model (see
set_text_column()
), but this can be overridden
with a custom match function (see set_match_func()
).
When the user selects a completion, the content of the entry is
updated. By default, the content of the entry is replaced by the
text column of the model, but this can be overridden by connecting
to the signal::EntryCompletion::match-selected
signal and updating the
entry in the signal handler. Note that you should return true
from
the signal handler to suppress the default behaviour.
To add completion functionality to an entry, use
EntryExt::set_completion()
.
EntryCompletion
uses a TreeModelFilter
model to
represent the subset of the entire model that is currently matching.
While the EntryCompletion
signals
signal::EntryCompletion::match-selected
and
signal::EntryCompletion::cursor-on-match
take the original model
and an iter pointing to that model as arguments, other callbacks and
signals (such as GtkCellLayoutDataFunc
or
signal::CellArea::apply-attributes
)]
will generally take the filter model as argument. As long as you are
only calling TreeModelExtManual::get()
, this will make no difference to
you. If for some reason, you need the original model, use
TreeModelFilterExt::model()
. Don’t forget to use
TreeModelFilterExt::convert_iter_to_child_iter()
to obtain a
matching iter.
Implements
glib::ObjectExt
, BuildableExt
, CellLayoutExt
, CellLayoutExtManual
Implementations
Creates a new EntryCompletion
object using the
specified area
.
The CellArea
is used to layout cells in the underlying
TreeViewColumn
for the drop-down menu.
area
the CellArea
used to layout cells
Returns
A newly created EntryCompletion
object
Creates a new builder-pattern struct instance to construct EntryCompletion
objects.
This method returns an instance of EntryCompletionBuilder
which can be used to create EntryCompletion
objects.
Requests a completion operation, or in other words a refiltering of the current list with completions, using the current key.
The completion list view will be updated accordingly.
Computes the common prefix that is shared by all rows in self
that start with key
.
If no row matches key
, None
will be returned.
Note that a text column must have been set for this function to work,
see set_text_column()
for details.
key
The text to complete for
Returns
The common prefix all rows
starting with key
Returns the model the EntryCompletion
is using as data source.
Returns None
if the model is unset.
Returns
Returns the column in the model of self
to get strings from.
Returns
the column containing the strings
Requests a prefix insertion.
Sets whether the common prefix of the possible completions should be automatically inserted in the entry.
inline_completion
true
to do inline completion
Sets whether it is possible to cycle through the possible completions inside the entry.
inline_selection
true
to do inline selection
pub fn set_match_func<P: Fn(&EntryCompletion, &str, &TreeIter) -> bool + 'static>(
&self,
func: P
)
pub fn set_match_func<P: Fn(&EntryCompletion, &str, &TreeIter) -> bool + 'static>(
&self,
func: P
)
Sets the match function for self
to be func
.
The match function is used to determine if a row should or should not be in the completion list.
func
the EntryCompletion
MatchFunc to use
func_data
user data for func
func_notify
destroy notify for func_data
.
Requires the length of the search key for self
to be at least
length
.
This is useful for long lists, where completing using a small key takes a lot of time and will come up with meaningless results anyway (ie, a too large dataset).
length
the minimum length of the key in order to start completing
Sets the model for a EntryCompletion
.
If self
already has a model set, it will remove it
before setting the new model. If model is None
, then it
will unset the model.
model
the TreeModel
Sets whether the completions should be presented in a popup window.
popup_completion
true
to do popup completion
Sets whether the completion popup window will be resized to be the same width as the entry.
popup_set_width
true
to make the width of the popup the same as the entry
Sets whether the completion popup window will appear even if there is only a single match.
You may want to set this to false
if you
are using property::EntryCompletion::inline-completion
.
popup_single_match
true
if the popup should appear even for a single match
Convenience function for setting up the most used case of this code: a completion list with just strings.
This function will set up self
to have a list displaying all (and just) strings in the completion list,
and to get those strings from column
in the model of self
.
This functions creates and adds a CellRendererText
for the selected
column. If you need to set the text column, but don’t want the cell
renderer, use g_object_set()
to set the
property::EntryCompletion::text-column
property directly.
column
the column in the model of self
to get strings from
The CellArea
used to layout cell renderers in the treeview column.
If no area is specified when creating the entry completion with
with_area()
, a horizontally oriented
CellAreaBox
will be used.
pub fn connect_cursor_on_match<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_cursor_on_match<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>(
&self,
f: F
) -> SignalHandlerId
Emitted when a match from the cursor is on a match of the list.
The default behaviour is to replace the contents
of the entry with the contents of the text column in the row
pointed to by iter
.
Note that model
is the model that was passed to
set_model()
.
model
the TreeModel
containing the matches
iter
a TreeIter
positioned at the selected match
Returns
true
if the signal has been handled
pub fn connect_insert_prefix<F: Fn(&Self, &str) -> Inhibit + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_insert_prefix<F: Fn(&Self, &str) -> Inhibit + 'static>(
&self,
f: F
) -> SignalHandlerId
Emitted when the inline autocompletion is triggered.
The default behaviour is to make the entry display the whole prefix and select the newly inserted part.
Applications may connect to this signal in order to insert only a
smaller part of the prefix
into the entry - e.g. the entry used in
the FileChooser
inserts only the part of the prefix up to the
next ‘/’.
prefix
the common prefix of all possible completions
Returns
true
if the signal has been handled
pub fn connect_match_selected<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_match_selected<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>(
&self,
f: F
) -> SignalHandlerId
Emitted when a match from the list is selected.
The default behaviour is to replace the contents of the
entry with the contents of the text column in the row
pointed to by iter
.
Note that model
is the model that was passed to
set_model()
.
model
the TreeModel
containing the matches
iter
a TreeIter
positioned at the selected match
Returns
true
if the signal has been handled
Emitted when the filter model has zero number of rows in completion_complete method.
In other words when EntryCompletion
is out of suggestions.
pub fn connect_inline_completion_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_inline_selection_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_minimum_key_length_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_popup_completion_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_popup_single_match_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Returns the type identifier of Self
.
Auto Trait Implementations
impl RefUnwindSafe for EntryCompletion
impl !Send for EntryCompletion
impl !Sync for EntryCompletion
impl Unpin for EntryCompletion
impl UnwindSafe for EntryCompletion
Blanket Implementations
Mutably borrows from an owned value. Read more
Upcasts an object to a superclass or interface T
. Read more
Upcasts an object to a reference of its superclass or interface T
. Read more
Tries to downcast to a subclass or interface implementor T
. Read more
Tries to downcast to a reference of its subclass or interface implementor T
. Read more
Tries to cast to an object of type T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read more
Tries to cast to reference to an object of type T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read more
Casts to T
unconditionally. Read more
Casts to &T
unconditionally. Read more
Returns true
if the object is an instance of (can be cast to) T
.
pub fn set_property<'a, N, V>(
&self,
property_name: N,
value: V
) -> Result<(), BoolError> where
N: Into<&'a str>,
V: ToValue,
pub fn set_property_from_value<'a, N>(
&self,
property_name: N,
value: &Value
) -> Result<(), BoolError> where
N: Into<&'a str>,
pub fn set_properties_from_value(
&self,
property_values: &[(&str, Value)]
) -> Result<(), BoolError>
pub fn has_property<'a, N>(&self, property_name: N, type_: Option<Type>) -> bool where
N: Into<&'a str>,
pub fn find_property<'a, N>(&self, property_name: N) -> Option<ParamSpec> where
N: Into<&'a str>,
Safety Read more
Safety Read more
Safety Read more
Safety Read more
pub fn connect<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
N: Into<&'a str>,
F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
Same as connect
but takes a SignalId
instead of a signal name.
pub fn connect_local<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
N: Into<&'a str>,
F: 'static + Fn(&[Value]) -> Option<Value>,
Same as connect_local
but takes a SignalId
instead of a signal name.
pub unsafe fn connect_unsafe<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
N: Into<&'a str>,
F: Fn(&[Value]) -> Option<Value>,
Same as connect_unsafe
but takes a SignalId
instead of a signal name.
Emit signal by signal id.
Same as emit
but takes Value
for the arguments.
Emit signal by its name.
Same as emit_by_name
but takes Value
for the arguments.
Emit signal with details by signal id.
Same as emit_with_details
but takes Value
for the arguments.
pub fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
pub fn connect_notify_local<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec),
pub unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec),
pub fn bind_property<'a, O, N, M>(
&'a self,
source_property: N,
target: &'a O,
target_property: M
) -> BindingBuilder<'a> where
O: ObjectType,
N: Into<&'a str>,
M: Into<&'a str>,
Returns a SendValue
clone of self
.