[gtksourceview/wip/chergert/hoverers] wire hover into sourceview widget
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/chergert/hoverers] wire hover into sourceview widget
- Date: Tue, 9 Mar 2021 00:19:45 +0000 (UTC)
commit 3ea68ef31994731bea2d2cf4a276a528464410cf
Author: Christian Hergert <chergert redhat com>
Date: Mon Mar 8 16:19:14 2021 -0800
wire hover into sourceview widget
gtksourceview/gtksourceview.c | 33 +++++++++++++++++++++++++++++++++
gtksourceview/gtksourceview.h | 2 ++
2 files changed, 35 insertions(+)
---
diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c
index e4292dd2..e2abe64b 100644
--- a/gtksourceview/gtksourceview.c
+++ b/gtksourceview/gtksourceview.c
@@ -39,6 +39,7 @@
#include "gtksourcegutter-private.h"
#include "gtksourcegutterrendererlines-private.h"
#include "gtksourcegutterrenderermarks-private.h"
+#include "gtksourcehover-private.h"
#include "gtksource-enumtypes.h"
#include "gtksourcemark.h"
#include "gtksourcemarkattributes.h"
@@ -189,6 +190,7 @@ typedef struct
GdkRGBA right_margin_overlay_color;
GtkSourceCompletion *completion;
+ GtkSourceHover *hover;
guint right_margin_pos;
gint cached_right_margin_pos;
@@ -1455,6 +1457,12 @@ gtk_source_view_dispose (GObject *object)
g_clear_object (&priv->completion);
}
+ if (priv->hover != NULL)
+ {
+ g_object_run_dispose (G_OBJECT (priv->hover));
+ g_clear_object (&priv->hover);
+ }
+
g_clear_object (&priv->style_scheme);
g_clear_object (&priv->space_drawer);
@@ -4805,6 +4813,31 @@ gtk_source_view_get_completion (GtkSourceView *view)
return priv->completion;
}
+/**
+ * gtk_source_view_get_hover:
+ * @view: a #GtkSourceView.
+ *
+ * Gets the #GtkSourceHover associated with @view. The returned object is
+ * guaranteed to be the same for the lifetime of @view. Each #GtkSourceView
+ * object has a different #GtkSourceHover.
+ *
+ * Returns: (transfer none): a #GtkSourceHover associated with @view.
+ */
+GtkSourceHover *
+gtk_source_view_get_hover (GtkSourceView *view)
+{
+ GtkSourceViewPrivate *priv = gtk_source_view_get_instance_private (view);
+
+ g_return_val_if_fail (GTK_SOURCE_IS_VIEW (view), NULL);
+
+ if (priv->hover == NULL)
+ {
+ priv->hover = _gtk_source_hover_new (view);
+ }
+
+ return priv->hover;
+}
+
/**
* gtk_source_view_get_gutter:
* @view: a #GtkSourceView.
diff --git a/gtksourceview/gtksourceview.h b/gtksourceview/gtksourceview.h
index 4b448722..ab154a39 100644
--- a/gtksourceview/gtksourceview.h
+++ b/gtksourceview/gtksourceview.h
@@ -195,6 +195,8 @@ guint gtk_source_view_get_visual_column
const GtkTextIter
*iter);
GTK_SOURCE_AVAILABLE_IN_ALL
GtkSourceCompletion *gtk_source_view_get_completion (GtkSourceView
*view);
+GTK_SOURCE_AVAILABLE_IN_5_0
+GtkSourceHover *gtk_source_view_get_hover (GtkSourceView
*view);
GTK_SOURCE_AVAILABLE_IN_ALL
GtkSourceGutter *gtk_source_view_get_gutter (GtkSourceView
*view,
GtkTextWindowType
window_type);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]