Blame gtksourceview/gtksourcecompletionprovider.c

Packit a7d494
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; coding: utf-8 -*- */
Packit a7d494
/* gtksourcecompletionprovider.c
Packit a7d494
 * This file is part of GtkSourceView
Packit a7d494
 *
Packit a7d494
 * Copyright (C) 2007 - 2009 Jesús Barbero Rodríguez <chuchiperriman@gmail.com>
Packit a7d494
 * Copyright (C) 2009 - Jesse van den Kieboom <jessevdk@gnome.org>
Packit a7d494
 *
Packit a7d494
 * GtkSourceView is free software; you can redistribute it and/or
Packit a7d494
 * modify it under the terms of the GNU Lesser General Public
Packit a7d494
 * License as published by the Free Software Foundation; either
Packit a7d494
 * version 2.1 of the License, or (at your option) any later version.
Packit a7d494
 *
Packit a7d494
 * GtkSourceView is distributed in the hope that it will be useful,
Packit a7d494
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit a7d494
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit a7d494
 * Lesser General Public License for more details.
Packit a7d494
 *
Packit a7d494
 * You should have received a copy of the GNU Lesser General Public
Packit a7d494
 * License along with this library; if not, write to the Free Software
Packit a7d494
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
Packit a7d494
 */
Packit a7d494
Packit a7d494
#ifdef HAVE_CONFIG_H
Packit a7d494
#include <config.h>
Packit a7d494
#endif
Packit a7d494
Packit a7d494
#include "gtksourcecompletionprovider.h"
Packit a7d494
#include "gtksourcecompletionproposal.h"
Packit a7d494
#include "gtksourcecompletioninfo.h"
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * SECTION:completionprovider
Packit a7d494
 * @title: GtkSourceCompletionProvider
Packit a7d494
 * @short_description: Completion provider interface
Packit a7d494
 *
Packit a7d494
 * You must implement this interface to provide proposals to #GtkSourceCompletion
Packit a7d494
 *
Packit a7d494
 * The provider may be displayed in the completion window as a header row, showing
Packit a7d494
 * its name and optionally an icon.
Packit a7d494
 * The icon may be specified as a #GdkPixbuf, as an icon name or as a #GIcon by
Packit a7d494
 * implementing the corresponding get function. At most one of those get functions
Packit a7d494
 * should return a value different from %NULL, if they all return %NULL no icon
Packit a7d494
 * will be used.
Packit a7d494
 */
Packit a7d494
Packit a7d494
typedef GtkSourceCompletionProviderIface GtkSourceCompletionProviderInterface;
Packit a7d494
Packit a7d494
G_DEFINE_INTERFACE(GtkSourceCompletionProvider, gtk_source_completion_provider, G_TYPE_OBJECT)
Packit a7d494
Packit a7d494
/* Default implementations */
Packit a7d494
static gchar *
Packit a7d494
gtk_source_completion_provider_get_name_default (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	g_return_val_if_reached (NULL);
Packit a7d494
}
Packit a7d494
Packit a7d494
static GdkPixbuf *
Packit a7d494
gtk_source_completion_provider_get_icon_default (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	return NULL;
Packit a7d494
}
Packit a7d494
Packit a7d494
static const gchar *
Packit a7d494
gtk_source_completion_provider_get_icon_name_default (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	return NULL;
Packit a7d494
}
Packit a7d494
Packit a7d494
static GIcon *
Packit a7d494
gtk_source_completion_provider_get_gicon_default (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	return NULL;
Packit a7d494
}
Packit a7d494
Packit a7d494
static void
Packit a7d494
gtk_source_completion_provider_populate_default (GtkSourceCompletionProvider *provider,
Packit a7d494
                                                 GtkSourceCompletionContext  *context)
Packit a7d494
{
Packit a7d494
	gtk_source_completion_context_add_proposals (context, provider, NULL, TRUE);
Packit a7d494
}
Packit a7d494
Packit a7d494
static GtkSourceCompletionActivation
Packit a7d494
gtk_source_completion_provider_get_activation_default (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	return GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE |
Packit a7d494
	       GTK_SOURCE_COMPLETION_ACTIVATION_USER_REQUESTED;
Packit a7d494
}
Packit a7d494
Packit a7d494
static gboolean
Packit a7d494
gtk_source_completion_provider_match_default (GtkSourceCompletionProvider *provider,
Packit a7d494
                                              GtkSourceCompletionContext  *context)
Packit a7d494
{
Packit a7d494
	return TRUE;
Packit a7d494
}
Packit a7d494
Packit a7d494
static GtkWidget *
Packit a7d494
gtk_source_completion_provider_get_info_widget_default (GtkSourceCompletionProvider *provider,
Packit a7d494
                                                        GtkSourceCompletionProposal *proposal)
Packit a7d494
{
Packit a7d494
	return NULL;
Packit a7d494
}
Packit a7d494
Packit a7d494
static void
Packit a7d494
gtk_source_completion_provider_update_info_default (GtkSourceCompletionProvider *provider,
Packit a7d494
                                                    GtkSourceCompletionProposal *proposal,
Packit a7d494
                                                    GtkSourceCompletionInfo     *info)
Packit a7d494
{
Packit a7d494
}
Packit a7d494
Packit a7d494
static gboolean
Packit a7d494
gtk_source_completion_provider_get_start_iter_default (GtkSourceCompletionProvider *provider,
Packit a7d494
                                                       GtkSourceCompletionContext  *context,
Packit a7d494
                                                       GtkSourceCompletionProposal *proposal,
Packit a7d494
                                                       GtkTextIter                 *iter)
Packit a7d494
{
Packit a7d494
	return FALSE;
Packit a7d494
}
Packit a7d494
Packit a7d494
static gboolean
Packit a7d494
gtk_source_completion_provider_activate_proposal_default (GtkSourceCompletionProvider *provider,
Packit a7d494
                                                          GtkSourceCompletionProposal *proposal,
Packit a7d494
                                                          GtkTextIter                 *iter)
Packit a7d494
{
Packit a7d494
	return FALSE;
Packit a7d494
}
Packit a7d494
Packit a7d494
static gint
Packit a7d494
gtk_source_completion_provider_get_interactive_delay_default (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	/* -1 means the default value in the completion object */
Packit a7d494
	return -1;
Packit a7d494
}
Packit a7d494
Packit a7d494
static gint
Packit a7d494
gtk_source_completion_provider_get_priority_default (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	return 0;
Packit a7d494
}
Packit a7d494
Packit a7d494
static void
Packit a7d494
gtk_source_completion_provider_default_init (GtkSourceCompletionProviderIface *iface)
Packit a7d494
{
Packit a7d494
	iface->get_name = gtk_source_completion_provider_get_name_default;
Packit a7d494
Packit a7d494
	iface->get_icon = gtk_source_completion_provider_get_icon_default;
Packit a7d494
	iface->get_icon_name = gtk_source_completion_provider_get_icon_name_default;
Packit a7d494
	iface->get_gicon = gtk_source_completion_provider_get_gicon_default;
Packit a7d494
Packit a7d494
	iface->populate = gtk_source_completion_provider_populate_default;
Packit a7d494
Packit a7d494
	iface->match = gtk_source_completion_provider_match_default;
Packit a7d494
	iface->get_activation = gtk_source_completion_provider_get_activation_default;
Packit a7d494
Packit a7d494
	iface->get_info_widget = gtk_source_completion_provider_get_info_widget_default;
Packit a7d494
	iface->update_info = gtk_source_completion_provider_update_info_default;
Packit a7d494
Packit a7d494
	iface->get_start_iter = gtk_source_completion_provider_get_start_iter_default;
Packit a7d494
	iface->activate_proposal = gtk_source_completion_provider_activate_proposal_default;
Packit a7d494
Packit a7d494
	iface->get_interactive_delay = gtk_source_completion_provider_get_interactive_delay_default;
Packit a7d494
	iface->get_priority = gtk_source_completion_provider_get_priority_default;
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_get_name:
Packit a7d494
 * @provider: a #GtkSourceCompletionProvider.
Packit a7d494
 *
Packit a7d494
 * Get the name of the provider. This should be a translatable name for
Packit a7d494
 * display to the user. For example: _("Document word completion provider"). The
Packit a7d494
 * returned string must be freed with g_free().
Packit a7d494
 *
Packit a7d494
 * Returns: a new string containing the name of the provider.
Packit a7d494
 */
Packit a7d494
gchar *
Packit a7d494
gtk_source_completion_provider_get_name (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), NULL);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_name (provider);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_get_icon:
Packit a7d494
 * @provider: The #GtkSourceCompletionProvider
Packit a7d494
 *
Packit a7d494
 * Get the #GdkPixbuf for the icon of the @provider.
Packit a7d494
 *
Packit a7d494
 * Returns: (nullable) (transfer none): The icon to be used for the provider,
Packit a7d494
 *          or %NULL if the provider does not have a special icon.
Packit a7d494
 */
Packit a7d494
GdkPixbuf *
Packit a7d494
gtk_source_completion_provider_get_icon (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), NULL);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_icon (provider);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_get_icon_name:
Packit a7d494
 * @provider: The #GtkSourceCompletionProvider
Packit a7d494
 *
Packit a7d494
 * Gets the icon name of @provider.
Packit a7d494
 *
Packit a7d494
 * Returns: (nullable) (transfer none): The icon name to be used for the provider,
Packit a7d494
 *          or %NULL if the provider does not have a special icon.
Packit a7d494
 *
Packit a7d494
 * Since: 3.18
Packit a7d494
 */
Packit a7d494
const gchar *
Packit a7d494
gtk_source_completion_provider_get_icon_name (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), NULL);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_icon_name (provider);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_get_gicon:
Packit a7d494
 * @provider: The #GtkSourceCompletionProvider
Packit a7d494
 *
Packit a7d494
 * Gets the #GIcon for the icon of @provider.
Packit a7d494
 *
Packit a7d494
 * Returns: (nullable) (transfer none): The icon to be used for the provider,
Packit a7d494
 *          or %NULL if the provider does not have a special icon.
Packit a7d494
 *
Packit a7d494
 * Since: 3.18
Packit a7d494
 */
Packit a7d494
GIcon *
Packit a7d494
gtk_source_completion_provider_get_gicon (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), NULL);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_gicon (provider);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_populate:
Packit a7d494
 * @provider: a #GtkSourceCompletionProvider.
Packit a7d494
 * @context: a #GtkSourceCompletionContext.
Packit a7d494
 *
Packit a7d494
 * Populate @context with proposals from @provider added with the
Packit a7d494
 * gtk_source_completion_context_add_proposals() function.
Packit a7d494
 */
Packit a7d494
void
Packit a7d494
gtk_source_completion_provider_populate (GtkSourceCompletionProvider *provider,
Packit a7d494
                                         GtkSourceCompletionContext  *context)
Packit a7d494
{
Packit a7d494
	g_return_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider));
Packit a7d494
Packit a7d494
	GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->populate (provider, context);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_get_activation:
Packit a7d494
 * @provider: a #GtkSourceCompletionProvider.
Packit a7d494
 *
Packit a7d494
 * Get with what kind of activation the provider should be activated.
Packit a7d494
 *
Packit a7d494
 * Returns: a combination of #GtkSourceCompletionActivation.
Packit a7d494
 **/
Packit a7d494
GtkSourceCompletionActivation
Packit a7d494
gtk_source_completion_provider_get_activation (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), GTK_SOURCE_COMPLETION_ACTIVATION_NONE);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_activation (provider);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_match:
Packit a7d494
 * @provider: a #GtkSourceCompletionProvider.
Packit a7d494
 * @context: a #GtkSourceCompletionContext.
Packit a7d494
 *
Packit a7d494
 * Get whether the provider match the context of completion detailed in
Packit a7d494
 * @context.
Packit a7d494
 *
Packit a7d494
 * Returns: %TRUE if @provider matches the completion context, %FALSE otherwise.
Packit a7d494
 */
Packit a7d494
gboolean
Packit a7d494
gtk_source_completion_provider_match (GtkSourceCompletionProvider *provider,
Packit a7d494
                                      GtkSourceCompletionContext  *context)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), TRUE);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->match (provider,
Packit a7d494
	                                                                       context);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_get_info_widget:
Packit a7d494
 * @provider: a #GtkSourceCompletionProvider.
Packit a7d494
 * @proposal: a currently selected #GtkSourceCompletionProposal.
Packit a7d494
 *
Packit a7d494
 * Get a customized info widget to show extra information of a proposal.
Packit a7d494
 * This allows for customized widgets on a proposal basis, although in general
Packit a7d494
 * providers will have the same custom widget for all their proposals and
Packit a7d494
 * @proposal can be ignored. The implementation of this function is optional.
Packit a7d494
 *
Packit a7d494
 * If this function is not implemented, the default widget is a #GtkLabel. The
Packit a7d494
 * return value of gtk_source_completion_proposal_get_info() is used as the
Packit a7d494
 * content of the #GtkLabel.
Packit a7d494
 *
Packit a7d494
 * <note>
Packit a7d494
 *   <para>
Packit a7d494
 *     If implemented, gtk_source_completion_provider_update_info()
Packit a7d494
 *     <emphasis>must</emphasis> also be implemented.
Packit a7d494
 *   </para>
Packit a7d494
 * </note>
Packit a7d494
 *
Packit a7d494
 * Returns: (nullable) (transfer none): a custom #GtkWidget to show extra
Packit a7d494
 * information about @proposal, or %NULL if the provider does not have a special
Packit a7d494
 * info widget.
Packit a7d494
 */
Packit a7d494
GtkWidget *
Packit a7d494
gtk_source_completion_provider_get_info_widget (GtkSourceCompletionProvider *provider,
Packit a7d494
                                                GtkSourceCompletionProposal *proposal)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), NULL);
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROPOSAL (proposal), NULL);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_info_widget (provider, proposal);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_update_info:
Packit a7d494
 * @provider: a #GtkSourceCompletionProvider.
Packit a7d494
 * @proposal: a #GtkSourceCompletionProposal.
Packit a7d494
 * @info: a #GtkSourceCompletionInfo.
Packit a7d494
 *
Packit a7d494
 * Update extra information shown in @info for @proposal.
Packit a7d494
 *
Packit a7d494
 * <note>
Packit a7d494
 *   <para>
Packit a7d494
 *     This function <emphasis>must</emphasis> be implemented when
Packit a7d494
 *     gtk_source_completion_provider_get_info_widget() is implemented.
Packit a7d494
 *   </para>
Packit a7d494
 * </note>
Packit a7d494
 */
Packit a7d494
void
Packit a7d494
gtk_source_completion_provider_update_info (GtkSourceCompletionProvider *provider,
Packit a7d494
                                            GtkSourceCompletionProposal *proposal,
Packit a7d494
                                            GtkSourceCompletionInfo     *info)
Packit a7d494
{
Packit a7d494
	g_return_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider));
Packit a7d494
	g_return_if_fail (GTK_SOURCE_IS_COMPLETION_PROPOSAL (proposal));
Packit a7d494
	g_return_if_fail (GTK_SOURCE_IS_COMPLETION_INFO (info));
Packit a7d494
Packit a7d494
	GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->update_info (provider, proposal, info);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_get_start_iter:
Packit a7d494
 * @provider: a #GtkSourceCompletionProvider.
Packit a7d494
 * @proposal: a #GtkSourceCompletionProposal.
Packit a7d494
 * @context: a #GtkSourceCompletionContext.
Packit a7d494
 * @iter: (out): a #GtkTextIter.
Packit a7d494
 *
Packit a7d494
 * Get the #GtkTextIter at which the completion for @proposal starts. When
Packit a7d494
 * implemented, this information is used to position the completion window
Packit a7d494
 * accordingly when a proposal is selected in the completion window. The
Packit a7d494
 * @proposal text inside the completion window is aligned on @iter.
Packit a7d494
 *
Packit a7d494
 * If this function is not implemented, the word boundary is taken to position
Packit a7d494
 * the completion window. See gtk_source_completion_provider_activate_proposal()
Packit a7d494
 * for an explanation on the word boundaries.
Packit a7d494
 *
Packit a7d494
 * When the @proposal is activated, the default handler uses @iter as the start
Packit a7d494
 * of the word to replace. See
Packit a7d494
 * gtk_source_completion_provider_activate_proposal() for more information.
Packit a7d494
 *
Packit a7d494
 * Returns: %TRUE if @iter was set for @proposal, %FALSE otherwise.
Packit a7d494
 */
Packit a7d494
gboolean
Packit a7d494
gtk_source_completion_provider_get_start_iter (GtkSourceCompletionProvider *provider,
Packit a7d494
                                               GtkSourceCompletionContext  *context,
Packit a7d494
                                               GtkSourceCompletionProposal *proposal,
Packit a7d494
                                               GtkTextIter                 *iter)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), FALSE);
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_CONTEXT (context), FALSE);
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROPOSAL (proposal), FALSE);
Packit a7d494
	g_return_val_if_fail (iter != NULL, FALSE);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_start_iter (provider,
Packit a7d494
	                                                                                context,
Packit a7d494
	                                                                                proposal,
Packit a7d494
	                                                                                iter);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_activate_proposal:
Packit a7d494
 * @provider: a #GtkSourceCompletionProvider.
Packit a7d494
 * @proposal: a #GtkSourceCompletionProposal.
Packit a7d494
 * @iter: a #GtkTextIter.
Packit a7d494
 *
Packit a7d494
 * Activate @proposal at @iter. When this functions returns %FALSE, the default
Packit a7d494
 * activation of @proposal will take place which replaces the word at @iter
Packit a7d494
 * with the text of @proposal (see gtk_source_completion_proposal_get_text()).
Packit a7d494
 *
Packit a7d494
 * Here is how the default activation selects the boundaries of the word to
Packit a7d494
 * replace. The end of the word is @iter. For the start of the word, it depends
Packit a7d494
 * on whether a start iter is defined for @proposal (see
Packit a7d494
 * gtk_source_completion_provider_get_start_iter()). If a start iter is defined,
Packit a7d494
 * the start of the word is the start iter. Else, the word (as long as possible)
Packit a7d494
 * will contain only alphanumerical and the "_" characters.
Packit a7d494
 *
Packit a7d494
 * Returns: %TRUE to indicate that the proposal activation has been handled,
Packit a7d494
 *          %FALSE otherwise.
Packit a7d494
 */
Packit a7d494
gboolean
Packit a7d494
gtk_source_completion_provider_activate_proposal (GtkSourceCompletionProvider *provider,
Packit a7d494
                                                  GtkSourceCompletionProposal *proposal,
Packit a7d494
                                                  GtkTextIter                 *iter)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), FALSE);
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROPOSAL (proposal), FALSE);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->activate_proposal (provider,
Packit a7d494
	                                                                                   proposal,
Packit a7d494
	                                                                                   iter);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_get_interactive_delay:
Packit a7d494
 * @provider: a #GtkSourceCompletionProvider.
Packit a7d494
 *
Packit a7d494
 * Get the delay in milliseconds before starting interactive completion for
Packit a7d494
 * this provider. A value of -1 indicates to use the default value as set
Packit a7d494
 * by the #GtkSourceCompletion:auto-complete-delay property.
Packit a7d494
 *
Packit a7d494
 * Returns: the interactive delay in milliseconds.
Packit a7d494
 **/
Packit a7d494
gint
Packit a7d494
gtk_source_completion_provider_get_interactive_delay (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), -1);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_interactive_delay (provider);
Packit a7d494
}
Packit a7d494
Packit a7d494
/**
Packit a7d494
 * gtk_source_completion_provider_get_priority:
Packit a7d494
 * @provider: a #GtkSourceCompletionProvider.
Packit a7d494
 *
Packit a7d494
 * Get the provider priority. The priority determines the order in which
Packit a7d494
 * proposals appear in the completion popup. Higher priorities are sorted
Packit a7d494
 * before lower priorities. The default priority is 0.
Packit a7d494
 *
Packit a7d494
 * Returns: the provider priority.
Packit a7d494
 **/
Packit a7d494
gint
Packit a7d494
gtk_source_completion_provider_get_priority (GtkSourceCompletionProvider *provider)
Packit a7d494
{
Packit a7d494
	g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), 0);
Packit a7d494
Packit a7d494
	return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_priority (provider);
Packit a7d494
}