blob: dca353fc748e89dfcdff6a3d9d72b9f3b7dc9dc5 [file] [log] [blame]
<!-- ##### SECTION Title ##### -->
Automatic String Completion
<!-- ##### SECTION Short_Description ##### -->
support for automatic completion using a group of target strings.
<!-- ##### SECTION Long_Description ##### -->
<para>
#GCompletion provides support for automatic completion of a string using
any group of target strings. It is typically used for file name completion
as is common in many UNIX shells.
</para>
<para>
A #GCompletion is created using g_completion_new().
Target items are added and removed with
g_completion_add_items(), g_completion_remove_items() and
g_completion_clear_items().
A completion attempt is requested with g_completion_complete() or
g_completion_complete_utf8().
When no longer needed, the #GCompletion is freed with g_completion_free().
</para>
<para>
Items in the completion can be simple strings (e.g. filenames),
or pointers to arbitrary data structures. If data structures are used
you must provide a #GCompletionFunc in g_completion_new(),
which retrieves the item's string from the data structure.
You can change the way in which strings are compared by setting
a different #GCompletionStrncmpFunc in g_completion_set_compare().
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### STRUCT GCompletion ##### -->
<para>
The data structure used for automatic completion.
</para>
@items: list of target items (strings or data structures).
@func: function which is called to get the string associated with a target
item. It is %NULL if the target items are strings.
@prefix: the last prefix passed to g_completion_complete() or
g_completion_complete_utf8().
@cache: the list of items which begin with @prefix.
@strncmp_func:
<!-- ##### FUNCTION g_completion_new ##### -->
<para>
Creates a new #GCompletion.
</para>
@func: the function to be called to return the string representing an item
in the #GCompletion, or %NULL if strings are going to be used as the
#GCompletion items.
@Returns: the new #GCompletion.
<!-- ##### USER_FUNCTION GCompletionFunc ##### -->
<para>
Specifies the type of the function passed to g_completion_new().
It should return the string corresponding to the given target item.
This is used when you use data structures as #GCompletion items.
</para>
@Param1: the completion item.
@Returns: the string corresponding to the item.
<!-- ##### FUNCTION g_completion_add_items ##### -->
<para>
Adds items to the #GCompletion.
</para>
@cmp: the #GCompletion.
@items: the list of items to add.
<!-- ##### FUNCTION g_completion_remove_items ##### -->
<para>
Removes items from a #GCompletion.
</para>
@cmp: the #GCompletion.
@items: the items to remove.
<!-- ##### FUNCTION g_completion_clear_items ##### -->
<para>
Removes all items from the #GCompletion.
</para>
@cmp: the #GCompletion.
<!-- ##### FUNCTION g_completion_complete ##### -->
<para>
Attempts to complete the string @prefix using the #GCompletion target items.
</para>
@cmp: the #GCompletion.
@prefix: the prefix string, typically typed by the user, which is compared
with each of the items.
@new_prefix: if non-%NULL, returns the longest prefix which is common to all
items that matched @prefix, or %NULL if no items matched @prefix.
This string should be freed when no longer needed.
@Returns: the list of items whose strings begin with @prefix. This should
not be changed.
<!-- ##### FUNCTION g_completion_complete_utf8 ##### -->
<para>
</para>
@cmp:
@prefix:
@new_prefix:
@Returns:
<!-- ##### FUNCTION g_completion_set_compare ##### -->
<para>
Sets the function to use for string comparisons. The default
string comparison function is <function>strncmp()</function>.
</para>
@cmp: a #GCompletion.
@strncmp_func: the string comparison function.
<!-- ##### USER_FUNCTION GCompletionStrncmpFunc ##### -->
<para>
Specifies the type of the function passed to g_completion_set_compare().
This is used when you use strings as #GCompletion items.
</para>
@s1: string to compare with @s2.
@s2: string to compare with @s1.
@n: maximal number of bytes to compare.
@Returns: an integer less than, equal to, or greater than zero if the
first @n bytes of @s1 is found, respectively, to be less than, to match,
or to be greater than the first @n bytes of @s2.
<!-- ##### FUNCTION g_completion_free ##### -->
<para>
Frees all memory used by the #GCompletion.
</para>
@cmp: the #GCompletion.