[anjuta/gtksourcecompletion: 1/3] Add IAnjutaEditorAssistProposal and IAnjutaEditorAssistProvider.



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]