[gtksourceview/wip/chergert/hoverers] make hover delay a property
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/chergert/hoverers] make hover delay a property
- Date: Wed, 10 Mar 2021 07:27:07 +0000 (UTC)
commit 69f6dd18810b36dad36b73d184eef3640b300cd0
Author: Christian Hergert <chergert redhat com>
Date: Tue Mar 9 23:26:18 2021 -0800
make hover delay a property
gtksourceview/gtksourcehover.c | 63 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 62 insertions(+), 1 deletion(-)
---
diff --git a/gtksourceview/gtksourcehover.c b/gtksourceview/gtksourcehover.c
index 9d5ad2cc..1b822ded 100644
--- a/gtksourceview/gtksourcehover.c
+++ b/gtksourceview/gtksourcehover.c
@@ -30,7 +30,7 @@
#include "gtksourcesignalgroup-private.h"
#include "gtksourceview-private.h"
-#define DEFAULT_HOVER_DELAY 250
+#define DEFAULT_HOVER_DELAY 500
struct _GtkSourceHover
{
@@ -50,6 +50,14 @@ struct _GtkSourceHover
G_DEFINE_TYPE (GtkSourceHover, gtk_source_hover, G_TYPE_OBJECT)
+enum {
+ PROP_0,
+ PROP_HOVER_DELAY,
+ N_PROPS
+};
+
+static GParamSpec *properties [N_PROPS];
+
static gboolean
gtk_source_hover_get_bounds (GtkSourceHover *self,
GtkTextIter *begin,
@@ -233,6 +241,42 @@ gtk_source_hover_finalize (GObject *object)
G_OBJECT_CLASS (gtk_source_hover_parent_class)->finalize (object);
}
+static void
+gtk_source_hover_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GtkSourceHover *self = GTK_SOURCE_HOVER (object);
+
+ switch (prop_id) {
+ case PROP_HOVER_DELAY:
+ g_value_set_uint (value, self->hover_delay);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
+gtk_source_hover_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GtkSourceHover *self = GTK_SOURCE_HOVER (object);
+
+ switch (prop_id) {
+ case PROP_HOVER_DELAY:
+ self->hover_delay = g_value_get_uint (value);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
static void
gtk_source_hover_class_init (GtkSourceHoverClass *klass)
{
@@ -240,6 +284,23 @@ gtk_source_hover_class_init (GtkSourceHoverClass *klass)
object_class->dispose = gtk_source_hover_dispose;
object_class->finalize = gtk_source_hover_finalize;
+ object_class->get_property = gtk_source_hover_get_property;
+ object_class->set_property = gtk_source_hover_set_property;
+
+ /**
+ * GtkSourceHover:hover-delay:
+ *
+ * The "hover-delay" property contains the number of milliseconds to
+ * delay before showing the hover assistant.
+ */
+ properties [PROP_HOVER_DELAY] =
+ g_param_spec_uint ("hover-delay",
+ "Hover Delay",
+ "Number of milliseconds to delay before showing assistant",
+ 1, 5000, DEFAULT_HOVER_DELAY,
+ (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_properties (object_class, N_PROPS, properties);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]