<!-- ##### SECTION Title ##### -->
GtkEntryCompletion

<!-- ##### SECTION Short_Description ##### -->
Completion functionality for GtkEntry

<!-- ##### SECTION Long_Description ##### -->
<para>
#GtkEntryCompletion is an auxiliary object to be used in conjunction with
#GtkEntry to provide the completion functionality. It implements the
#GtkCellLayout interface, to allow the user to add extra cells to the 
#GtkTreeView with completion matches. 
</para>
<para>
"Completion functionality" means that when the user modifies the text 
in the entry, #GtkEntryCompletion 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_set_text_column()), but this can be overridden with 
a custom match function (see gtk_entry_completion_set_match_func()).
</para>
<para>
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 ::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.
</para>
<para>
To add completion functionality to an entry, use gtk_entry_set_completion().
</para>
<para>
In addition to regular completion matches, which will be inserted into the
entry when they are selected, #GtkEntryCompletion also allows to display 
"actions" in the popup window. Their appearance is similar to menuitems, 
to differentiate them clearly from completion strings. When an action is 
selected, the ::action-activated signal is emitted.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### SECTION Image ##### -->


<!-- ##### STRUCT GtkEntryCompletion ##### -->
<para>
The GtkEntryCompletion struct contains only private data.
</para>


<!-- ##### SIGNAL GtkEntryCompletion::action-activated ##### -->
<para>

</para>

@entrycompletion: the object which received the signal.
@arg1: 

<!-- ##### SIGNAL GtkEntryCompletion::cursor-on-match ##### -->
<para>

</para>

@entrycompletion: the object which received the signal.
@arg1: 
@arg2: 
@Returns: 

<!-- ##### SIGNAL GtkEntryCompletion::insert-prefix ##### -->
<para>

</para>

@entrycompletion: the object which received the signal.
@arg1: 
@Returns: 

<!-- ##### SIGNAL GtkEntryCompletion::match-selected ##### -->
<para>

</para>

@entrycompletion: the object which received the signal.
@arg1: 
@arg2: 
@Returns: 

<!-- ##### ARG GtkEntryCompletion:inline-completion ##### -->
<para>

</para>

<!-- ##### ARG GtkEntryCompletion:inline-selection ##### -->
<para>

</para>

<!-- ##### ARG GtkEntryCompletion:minimum-key-length ##### -->
<para>

</para>

<!-- ##### ARG GtkEntryCompletion:model ##### -->
<para>

</para>

<!-- ##### ARG GtkEntryCompletion:popup-completion ##### -->
<para>

</para>

<!-- ##### ARG GtkEntryCompletion:popup-set-width ##### -->
<para>

</para>

<!-- ##### ARG GtkEntryCompletion:popup-single-match ##### -->
<para>

</para>

<!-- ##### ARG GtkEntryCompletion:text-column ##### -->
<para>

</para>

<!-- ##### USER_FUNCTION GtkEntryCompletionMatchFunc ##### -->
<para>
A function which decides whether the row indicated by @iter matches a given 
@key, and should be displayed as a possible completion for @key. Note that
@key is normalized and case-folded (see g_utf8_normalize() and 
g_utf8_casefold()). If this is not appropriate, match functions have access
to the unmodified key via <literal>gtk_entry_get_text (GTK_ENTRY (gtk_entry_completion_get_entry (<!-- -->)))</literal>.
</para>

@completion: the #GtkEntryCompletion
@key: the string to match, normalized and case-folded
@iter: a #GtkTreeIter indicating the row to match
@user_data: user data given to gtk_entry_completion_set_match_func()
@Returns: %TRUE if @iter should be displayed as a possible completion for @key


<!-- ##### FUNCTION gtk_entry_completion_new ##### -->
<para>

</para>

@void: 
@Returns: 


<!-- ##### FUNCTION gtk_entry_completion_get_entry ##### -->
<para>

</para>

@completion: 
@Returns: 


<!-- ##### FUNCTION gtk_entry_completion_set_model ##### -->
<para>

</para>

@completion: 
@model: 


<!-- ##### FUNCTION gtk_entry_completion_get_model ##### -->
<para>

</para>

@completion: 
@Returns: 


<!-- ##### FUNCTION gtk_entry_completion_set_match_func ##### -->
<para>

</para>

@completion: 
@func: 
@func_data: 
@func_notify: 


<!-- ##### FUNCTION gtk_entry_completion_set_minimum_key_length ##### -->
<para>

</para>

@completion: 
@length: 


<!-- ##### FUNCTION gtk_entry_completion_get_minimum_key_length ##### -->
<para>

</para>

@completion: 
@Returns: 


<!-- ##### FUNCTION gtk_entry_completion_complete ##### -->
<para>

</para>

@completion: 


<!-- ##### FUNCTION gtk_entry_completion_get_completion_prefix ##### -->
<para>

</para>

@completion: 
@Returns: 


<!-- ##### FUNCTION gtk_entry_completion_insert_prefix ##### -->
<para>

</para>

@completion: 


<!-- ##### FUNCTION gtk_entry_completion_insert_action_text ##### -->
<para>

</para>

@completion: 
@index_: 
@text: 


<!-- ##### FUNCTION gtk_entry_completion_insert_action_markup ##### -->
<para>

</para>

@completion: 
@index_: 
@markup: 


<!-- ##### FUNCTION gtk_entry_completion_delete_action ##### -->
<para>

</para>

@completion: 
@index_: 


<!-- ##### FUNCTION gtk_entry_completion_set_text_column ##### -->
<para>

</para>

@completion: 
@column: 


<!-- ##### FUNCTION gtk_entry_completion_get_text_column ##### -->
<para>

</para>

@completion: 
@Returns: 


<!-- ##### FUNCTION gtk_entry_completion_set_inline_completion ##### -->
<para>

</para>

@completion: 
@inline_completion: 


<!-- ##### FUNCTION gtk_entry_completion_get_inline_completion ##### -->
<para>

</para>

@completion: 
@Returns: 


<!-- ##### FUNCTION gtk_entry_completion_set_inline_selection ##### -->
<para>

</para>

@completion: 
@inline_selection: 


<!-- ##### FUNCTION gtk_entry_completion_get_inline_selection ##### -->
<para>

</para>

@completion: 
@Returns: 


<!-- ##### FUNCTION gtk_entry_completion_set_popup_completion ##### -->
<para>

</para>

@completion: 
@popup_completion: 


<!-- ##### FUNCTION gtk_entry_completion_get_popup_completion ##### -->
<para>

</para>

@completion: 
@Returns: 


<!-- ##### FUNCTION gtk_entry_completion_set_popup_set_width ##### -->
<para>

</para>

@completion: 
@popup_set_width: 


<!-- ##### FUNCTION gtk_entry_completion_get_popup_set_width ##### -->
<para>

</para>

@completion: 
@Returns: 


<!-- ##### FUNCTION gtk_entry_completion_set_popup_single_match ##### -->
<para>

</para>

@completion: 
@popup_single_match: 


<!-- ##### FUNCTION gtk_entry_completion_get_popup_single_match ##### -->
<para>

</para>

@completion: 
@Returns: 


