GtkEntryCompletion

gtk.entry_completion.EntryCompletion is an auxiliary object to provide completion functionality for gtk.entry.Entry.

It implements the gtk.cell_layout.CellLayout interface, to allow the user to add extra cells to the gtk.tree_view.TreeView with completion matches.

“Completion functionality” means that when the user modifies the text in the entry, gtk.entry_completion.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 gtk.entry_completion.EntryCompletion.setTextColumn), but this can be overridden with a custom match function (see gtk.entry_completion.EntryCompletion.setMatchFunc).

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@Gtk.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 gtk.entry.Entry.setCompletion.

gtk.entry_completion.EntryCompletion uses a gtk.tree_model_filter.TreeModelFilter model to represent the subset of the entire model that is currently matching. While the gtk.entry_completion.EntryCompletion signals signal@Gtk.EntryCompletion::match-selected and signal@Gtk.EntryCompletion::cursor-on-match take the original model and an iter pointing to that model as arguments, other callbacks and signals (such as gtk.types.CellLayoutDataFunc or signal@Gtk.CellArea::apply-attributes) will generally take the filter model as argument. As long as you are only calling gtk.tree_model.TreeModel.get, this will make no difference to you. If for some reason, you need the original model, use gtk.tree_model_filter.TreeModelFilter.getModel. Don’t forget to use gtk.tree_model_filter.TreeModelFilter.convertIterToChildIter to obtain a matching iter.

struct GtkEntryCompletion