[anjuta/gtksourcecompletion: 1/3] Add IAnjutaEditorAssistProposal and IAnjutaEditorAssistProvider.
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjuta/gtksourcecompletion: 1/3] Add IAnjutaEditorAssistProposal and IAnjutaEditorAssistProvider.
- Date: Sun, 17 May 2009 16:42:37 -0400 (EDT)
commit 231f78407a7c189104e9935382bf0fc484bbd672
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Sat May 16 13:38:05 2009 +0200
Add IAnjutaEditorAssistProposal and IAnjutaEditorAssistProvider.
---
libanjuta/interfaces/libanjuta.idl | 38 +++++++++++++++++++++++++++-
plugins/sourceview/Makefile.am | 4 ---
plugins/sourceview/sourceview-private.h | 6 +---
plugins/sourceview/sourceview.c | 41 ++++++++----------------------
4 files changed, 49 insertions(+), 40 deletions(-)
diff --git a/libanjuta/interfaces/libanjuta.idl b/libanjuta/interfaces/libanjuta.idl
index 4596a68..6001193 100644
--- a/libanjuta/interfaces/libanjuta.idl
+++ b/libanjuta/interfaces/libanjuta.idl
@@ -1872,6 +1872,34 @@ interface IAnjutaEditor
void fix ();
}
+ interface IAnjutaEditorAssistProposal
+ {
+ const gchar *get_label ();
+
+ const gchar *get_markup ();
+
+ const gchar *get_text ();
+
+ GdkPixbuf *get_icon ();
+
+ const gchar *get_info ();
+ }
+
+ interface IAnjutaEditorAssistProvider
+ {
+ #include <libanjuta/interfaces/ianjuta-editor-assist-proposal.h>
+
+ const gchar *get_name ();
+
+ GdkPixbuf *get_icon ();
+
+ List<IAnjutaEditorAssistProposal *> get_proposals (IAnjutaIterable *position);
+
+ GtkWidget *get_info_widget (IAnjutaEditorAssistProposal *proposal);
+
+ void update_info (IAnjutaEditorAssistProposal *proposal, GtkWidget *info);
+ }
+
/**
* SECTION:ianjuta-editor-assist
* @title: IAnjutaEditorAssist
@@ -1883,6 +1911,8 @@ interface IAnjutaEditor
*/
interface IAnjutaEditorAssist
{
+ #include <libanjuta/interfaces/ianjuta-editor-assist-provider.h>
+
/* IAnjutaEdiotrAssist::assist_chosen:
* @obj: self
* @selection: The selection index
@@ -1896,7 +1926,7 @@ interface IAnjutaEditor
/**
* ianjuta_editor_assist_suggest:
* @obj: Self
- * @choices: list of choices.
+ * @providers: list of providers.
* @char_alignment: Character alignment.
* @err: Error propagation and reporting
*
@@ -1906,7 +1936,7 @@ interface IAnjutaEditor
* will occur
*
*/
- void suggest (List<const gchar*> choices, IAnjutaIterable *position, int char_alignment);
+ void suggest (List<IAnjutaEditorAssistProvider*> providers, IAnjutaIterable *position, int char_alignment);
/**
* ianjuta_editor_assist_hide_suggestions:
@@ -1918,6 +1948,10 @@ interface IAnjutaEditor
*/
void hide_suggestions ();
+ void add_provider (IAnjutaEditorAssistProvider *provider);
+
+ void remove_provider (IAnjutaEditorAssistProvider *provider);
+
/**
* ianjuta_editor_assist_tip:
* @obj: Self
diff --git a/plugins/sourceview/Makefile.am b/plugins/sourceview/Makefile.am
index 4a23acc..e4ccfc6 100644
--- a/plugins/sourceview/Makefile.am
+++ b/plugins/sourceview/Makefile.am
@@ -54,8 +54,6 @@ libanjuta_sourceview_la_SOURCES = \
plugin.h \
sourceview.c \
sourceview.h \
- assist-window.h \
- assist-window.c \
anjuta-view.h \
anjuta-view.c \
sourceview-prefs.h \
@@ -65,8 +63,6 @@ libanjuta_sourceview_la_SOURCES = \
sourceview-cell.h \
sourceview-print.h \
sourceview-print.c \
- assist-tip.h \
- assist-tip.c \
sourceview-io.h \
sourceview-io.c
diff --git a/plugins/sourceview/sourceview-private.h b/plugins/sourceview/sourceview-private.h
index 5f48cff..84d7763 100644
--- a/plugins/sourceview/sourceview-private.h
+++ b/plugins/sourceview/sourceview-private.h
@@ -19,10 +19,9 @@
#include "anjuta-view.h"
-#include "assist-window.h"
-#include "assist-tip.h"
#include "sourceview-cell.h"
#include "sourceview-io.h"
+#include <gtksourceview/gtksourcecompletioninfo.h>
#include <libanjuta/anjuta-plugin.h>
#include <glib.h>
@@ -68,8 +67,7 @@ struct SourceviewPrivate {
GSList* idle_sources;
/* Assist */
- AssistWindow* assist_win;
- AssistTip* assist_tip;
+ GtkSourceCompletionInfo* assist_tip;
/* Hover */
gchar* tooltip;
diff --git a/plugins/sourceview/sourceview.c b/plugins/sourceview/sourceview.c
index 66e0a21..f9a866b 100644
--- a/plugins/sourceview/sourceview.c
+++ b/plugins/sourceview/sourceview.c
@@ -223,31 +223,14 @@ sourceview_set_message_area (Sourceview* sv, GtkWidget *message_area)
/* Callbacks */
-static void
-on_assist_window_destroyed (Sourceview* sv, gpointer where_object_was)
-{
- sv->priv->assist_win = NULL;
-}
-
-static void
-on_assist_tip_destroyed (Sourceview* sv, gpointer where_object_was)
-{
- sv->priv->assist_tip = NULL;
-}
-
-static void
-on_assist_chosen(AssistWindow* assist_win, gint num, Sourceview* sv)
-{
- g_signal_emit_by_name(G_OBJECT(sv), "assist-chosen", num);
-}
-
static void
on_assist_cancel(AssistWindow* assist_win, Sourceview* sv)
{
- if (sv->priv->assist_win)
- {
- gtk_widget_destroy(GTK_WIDGET(sv->priv->assist_win));
- }
+ GtkSourceCompletion *completion;
+
+ completion = gtk_source_view_get_completion (GTK_SOURCE_VIEW (sv->view));
+
+ gtk_source_completion_hide (completion);
}
static void on_insert_text (GtkTextBuffer* buffer,
@@ -598,8 +581,6 @@ sourceview_adjustment_changed(GtkAdjustment* ad, Sourceview* sv)
{
/* Hide assistance windows when scrolling vertically */
- if (sv->priv->assist_win)
- gtk_widget_destroy (GTK_WIDGET (sv->priv->assist_win));
if (sv->priv->assist_tip)
gtk_widget_destroy (GTK_WIDGET (sv->priv->assist_tip));
}
@@ -668,8 +649,7 @@ sourceview_dispose(GObject *object)
{
Sourceview *cobj = ANJUTA_SOURCEVIEW(object);
GSList* node;
- if (cobj->priv->assist_win)
- on_assist_cancel(cobj->priv->assist_win, cobj);
+
if (cobj->priv->assist_tip)
gtk_widget_destroy(GTK_WIDGET(cobj->priv->assist_tip));
g_object_unref (cobj->priv->io);
@@ -2071,10 +2051,11 @@ static void
iassist_hide_suggestions (IAnjutaEditorAssist* iassist, GError** err)
{
Sourceview* sv = ANJUTA_SOURCEVIEW(iassist);
- if (sv->priv->assist_win)
- {
- gtk_widget_hide (GTK_WIDGET (sv->priv->assist_win));
- }
+ GtkSourceCompletion *completion;
+
+ completion = gtk_source_view_get_completion (GTK_SOURCE_VIEW (sv->view));
+
+ gtk_source_completion_hide (completion);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]