[gnome-builder] gutter: add tooltips to omni gutter renderer
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] gutter: add tooltips to omni gutter renderer
- Date: Mon, 19 Feb 2018 23:27:32 +0000 (UTC)
commit 0a135c67fe668f74c2b7a34e046601efa072db4a
Author: Christian Hergert <chergert redhat com>
Date: Mon Feb 19 15:27:13 2018 -0800
gutter: add tooltips to omni gutter renderer
This lets the user know what happens when they click on a line (if
breakpoints are enabled) as well as information about the diagnostic.
po/POTFILES.in | 1 +
src/libide/sourceview/ide-omni-gutter-renderer.c | 44 ++++++++++++++++++++++++
2 files changed, 45 insertions(+)
---
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 92915de8f..2aa67441a 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -100,6 +100,7 @@ src/libide/runner/ide-runner.c
src/libide/runtimes/ide-runtime-manager.c
src/libide/snippets/ide-source-snippet-completion-provider.c
src/libide/snippets/ide-source-snippets-manager.c
+src/libide/sourceview/ide-omni-gutter-renderer.c
src/libide/sourceview/ide-source-view.c
src/libide/sourceview/ide-word-completion-provider.c
src/libide/terminal/ide-terminal-search.ui
diff --git a/src/libide/sourceview/ide-omni-gutter-renderer.c
b/src/libide/sourceview/ide-omni-gutter-renderer.c
index aade92830..cf8000686 100644
--- a/src/libide/sourceview/ide-omni-gutter-renderer.c
+++ b/src/libide/sourceview/ide-omni-gutter-renderer.c
@@ -19,12 +19,14 @@
#define G_LOG_DOMAIN "ide-omni-gutter-renderer"
#include <dazzle.h>
+#include <glib/gi18n.h>
#include <string.h>
#include "ide-context.h"
#include "ide-debug.h"
#include "buffers/ide-buffer.h"
+#include "diagnostics/ide-diagnostic.h"
#include "debugger/ide-debug-manager.h"
#include "debugger/ide-debugger-breakpoint.h"
#include "debugger/ide-debugger-breakpoints.h"
@@ -711,6 +713,47 @@ ide_omni_gutter_renderer_query_activatable (GtkSourceGutterRenderer *renderer,
return TRUE;
}
+static gboolean
+ide_omni_gutter_renderer_query_tooltip (GtkSourceGutterRenderer *renderer,
+ GtkTextIter *iter,
+ GdkRectangle *area,
+ gint x,
+ gint y,
+ GtkTooltip *tooltip)
+{
+ IdeOmniGutterRenderer *self = (IdeOmniGutterRenderer *)renderer;
+ g_autoptr(GString) text = NULL;
+ GtkTextBuffer *buffer;
+ IdeDiagnostic *diag;
+
+ g_assert (IDE_IS_OMNI_GUTTER_RENDERER (renderer));
+ g_assert (iter != NULL);
+ g_assert (area != NULL);
+ g_assert (GTK_IS_TOOLTIP (tooltip));
+
+ text = g_string_new (NULL);
+
+ buffer = gtk_text_iter_get_buffer (iter);
+ if ((diag = ide_buffer_get_diagnostic_at_iter (IDE_BUFFER (buffer), iter)))
+ {
+ g_autofree gchar *disp = NULL;
+
+ disp = ide_diagnostic_get_text_for_display (diag);
+ g_string_append (text, disp);
+ }
+
+ if (self->breakpoints != NULL)
+ {
+ if (text->len > 0)
+ g_string_append (text, "\n\n");
+ g_string_append (text, _("Click to toggle breakpoint"));
+ }
+
+ gtk_tooltip_set_text (tooltip, text->str);
+
+ return text->len > 0;
+}
+
static void
animate_at_iter (IdeOmniGutterRenderer *self,
GdkRectangle *area,
@@ -1517,6 +1560,7 @@ ide_omni_gutter_renderer_class_init (IdeOmniGutterRendererClass *klass)
renderer_class->begin = ide_omni_gutter_renderer_begin;
renderer_class->end = ide_omni_gutter_renderer_end;
renderer_class->query_activatable = ide_omni_gutter_renderer_query_activatable;
+ renderer_class->query_tooltip = ide_omni_gutter_renderer_query_tooltip;
renderer_class->activate = ide_omni_gutter_renderer_activate;
properties [PROP_SHOW_LINE_CHANGES] =
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]