1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; coding: utf-8 -*-
*
* This file is part of GtkSourceView
*
* Copyright (C) 2007 - 2009 Jesús Barbero Rodríguez <chuchiperriman@gmail.com>
* Copyright (C) 2009 - Jesse van den Kieboom <jessevdk@gnome.org>
*
* GtkSourceView is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* GtkSourceView is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GTK_SOURCE_COMPLETION_H
#define GTK_SOURCE_COMPLETION_H
#if !defined (GTK_SOURCE_H_INSIDE) && !defined (GTK_SOURCE_COMPILATION)
#error "Only <gtksourceview/gtksource.h> can be included directly."
#endif
#include <gtk/gtk.h>
#include <gtksourceview/gtksourcetypes.h>
G_BEGIN_DECLS
/*
* Type checking and casting macros
*/
#define GTK_SOURCE_TYPE_COMPLETION (gtk_source_completion_get_type())
#define GTK_SOURCE_COMPLETION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_SOURCE_TYPE_COMPLETION, GtkSourceCompletion))
#define GTK_SOURCE_COMPLETION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_SOURCE_TYPE_COMPLETION, GtkSourceCompletionClass))
#define GTK_SOURCE_IS_COMPLETION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_SOURCE_TYPE_COMPLETION))
#define GTK_SOURCE_IS_COMPLETION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_SOURCE_TYPE_COMPLETION))
#define GTK_SOURCE_COMPLETION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_SOURCE_TYPE_COMPLETION, GtkSourceCompletionClass))
/**
* GTK_SOURCE_COMPLETION_ERROR:
*
* Error domain for the completion. Errors in this domain will be from the
* #GtkSourceCompletionError enumeration. See #GError for more information on
* error domains.
*/
#define GTK_SOURCE_COMPLETION_ERROR (gtk_source_completion_error_quark ())
typedef struct _GtkSourceCompletionPrivate GtkSourceCompletionPrivate;
typedef struct _GtkSourceCompletionClass GtkSourceCompletionClass;
/**
* GtkSourceCompletionError:
* @GTK_SOURCE_COMPLETION_ERROR_ALREADY_BOUND: The #GtkSourceCompletionProvider
* is already bound to the #GtkSourceCompletion object.
* @GTK_SOURCE_COMPLETION_ERROR_NOT_BOUND: The #GtkSourceCompletionProvider is
* not bound to the #GtkSourceCompletion object.
*
* An error code used with %GTK_SOURCE_COMPLETION_ERROR in a #GError returned
* from a completion-related function.
*/
typedef enum _GtkSourceCompletionError
{
GTK_SOURCE_COMPLETION_ERROR_ALREADY_BOUND = 0,
GTK_SOURCE_COMPLETION_ERROR_NOT_BOUND
} GtkSourceCompletionError;
struct _GtkSourceCompletion
{
GObject parent_instance;
GtkSourceCompletionPrivate *priv;
};
struct _GtkSourceCompletionClass
{
GObjectClass parent_class;
gboolean (* proposal_activated) (GtkSourceCompletion *completion,
GtkSourceCompletionProvider *provider,
GtkSourceCompletionProposal *proposal);
void (* show) (GtkSourceCompletion *completion);
void (* hide) (GtkSourceCompletion *completion);
void (* populate_context) (GtkSourceCompletion *completion,
GtkSourceCompletionContext *context);
/* Actions */
void (* move_cursor) (GtkSourceCompletion *completion,
GtkScrollStep step,
gint num);
void (* move_page) (GtkSourceCompletion *completion,
GtkScrollStep step,
gint num);
void (* activate_proposal) (GtkSourceCompletion *completion);
gpointer padding[20];
};
G_MODULE_EXPORT
GType gtk_source_completion_get_type (void) G_GNUC_CONST;
G_MODULE_EXPORT
GQuark gtk_source_completion_error_quark (void);
G_MODULE_EXPORT
gboolean gtk_source_completion_add_provider (GtkSourceCompletion *completion,
GtkSourceCompletionProvider *provider,
GError **error);
G_MODULE_EXPORT
gboolean gtk_source_completion_remove_provider (GtkSourceCompletion *completion,
GtkSourceCompletionProvider *provider,
GError **error);
G_MODULE_EXPORT
GList *gtk_source_completion_get_providers (GtkSourceCompletion *completion);
G_MODULE_EXPORT
gboolean gtk_source_completion_start (GtkSourceCompletion *completion,
GList *providers,
GtkSourceCompletionContext *context);
G_MODULE_EXPORT
void gtk_source_completion_hide (GtkSourceCompletion *completion);
G_MODULE_EXPORT
GtkSourceCompletionInfo *
gtk_source_completion_get_info_window (GtkSourceCompletion *completion);
G_MODULE_EXPORT
GtkSourceView *gtk_source_completion_get_view (GtkSourceCompletion *completion);
G_MODULE_EXPORT
GtkSourceCompletionContext *
gtk_source_completion_create_context (GtkSourceCompletion *completion,
GtkTextIter *position);
G_MODULE_EXPORT
void gtk_source_completion_block_interactive (GtkSourceCompletion *completion);
G_MODULE_EXPORT
void gtk_source_completion_unblock_interactive (GtkSourceCompletion *completion);
G_GNUC_INTERNAL
void _gtk_source_completion_add_proposals (GtkSourceCompletion *completion,
GtkSourceCompletionContext *context,
GtkSourceCompletionProvider *provider,
GList *proposals,
gboolean finished);
G_END_DECLS
#endif /* GTK_SOURCE_COMPLETION_H */
|