[libgda] GdaBrowser: improved query editor tooltip
- From: Vivien Malerba <vivien src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] GdaBrowser: improved query editor tooltip
- Date: Tue, 12 Jul 2011 19:22:38 +0000 (UTC)
commit 2eff57b7b482ea97b987d482d48eba91b99d019d
Author: Vivien Malerba <malerba gnome-db org>
Date: Tue Jul 12 20:39:35 2011 +0200
GdaBrowser: improved query editor tooltip
tools/browser/query-exec/query-editor.c | 32 ++++++++++++++++++++++++++++--
1 files changed, 29 insertions(+), 3 deletions(-)
---
diff --git a/tools/browser/query-exec/query-editor.c b/tools/browser/query-exec/query-editor.c
index 7ca7248..d45e93d 100644
--- a/tools/browser/query-exec/query-editor.c
+++ b/tools/browser/query-exec/query-editor.c
@@ -37,6 +37,7 @@
#include "../browser-window.h"
#include <libgda-ui/internal/popup-container.h>
#include "../support.h"
+#include "../common/widget-overlay.h"
#define QUERY_EDITOR_LANGUAGE_SQL "gda-sql"
#define COLOR_ALTER_FACTOR 1.8
@@ -91,6 +92,10 @@ struct _QueryEditorPrivate {
GtkTreeView *completion_treeview;
GtkCellRenderer *completion_renderer;
GtkWidget *completion_sw;
+
+ /* tooltip */
+ GtkWidget *ovl;
+ GtkWidget *tooltip_widget;
};
static void query_editor_class_init (QueryEditorClass *klass);
@@ -658,6 +663,7 @@ query_editor_init (QueryEditor *editor, G_GNUC_UNUSED QueryEditorClass *klass)
int tab = 8;
gboolean highlight = TRUE;
gboolean showlinesno = FALSE;
+ GtkWidget *ovl, *wid;
g_return_if_fail (QUERY_IS_EDITOR (editor));
@@ -677,12 +683,31 @@ query_editor_init (QueryEditor *editor, G_GNUC_UNUSED QueryEditorClass *klass)
editor->priv->completion_popup = NULL;
/* set up widgets */
+ ovl = widget_overlay_new ();
+ editor->priv->ovl = ovl;
+ gtk_box_pack_start (GTK_BOX (editor), ovl, TRUE, TRUE, 2);
+
editor->priv->scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (editor->priv->scrolled_window),
GTK_SHADOW_ETCHED_OUT);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (editor->priv->scrolled_window),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_box_pack_start (GTK_BOX (editor), editor->priv->scrolled_window, TRUE, TRUE, 2);
+ gtk_container_add (GTK_CONTAINER (ovl), editor->priv->scrolled_window);
+ widget_overlay_set_child_props (WIDGET_OVERLAY (ovl), editor->priv->scrolled_window,
+ WIDGET_OVERLAY_CHILD_HALIGN, WIDGET_OVERLAY_ALIGN_FILL,
+ WIDGET_OVERLAY_CHILD_VALIGN, WIDGET_OVERLAY_ALIGN_FILL,
+ -1);
+
+ wid = gtk_label_new ("");
+ editor->priv->tooltip_widget = wid;
+ gtk_label_set_markup (GTK_LABEL (wid), QUERY_EDITOR_TOOLTIP);
+ gtk_container_add (GTK_CONTAINER (ovl), wid);
+ widget_overlay_set_child_props (WIDGET_OVERLAY (ovl), wid,
+ WIDGET_OVERLAY_CHILD_HALIGN, WIDGET_OVERLAY_ALIGN_CENTER,
+ WIDGET_OVERLAY_CHILD_VALIGN, WIDGET_OVERLAY_ALIGN_CENTER,
+ WIDGET_OVERLAY_CHILD_ALPHA, .8,
+ WIDGET_OVERLAY_CHILD_TOOLTIP, TRUE,
+ -1);
#ifdef HAVE_GTKSOURCEVIEW
editor->priv->text = gtk_source_view_new ();
@@ -695,7 +720,6 @@ query_editor_init (QueryEditor *editor, G_GNUC_UNUSED QueryEditorClass *klass)
#endif
gtk_container_add (GTK_CONTAINER (editor->priv->scrolled_window), editor->priv->text);
- gtk_widget_set_tooltip_markup (editor->priv->text, QUERY_EDITOR_TOOLTIP);
g_signal_connect (editor->priv->text, "event",
G_CALLBACK (event), editor);
g_signal_connect (gtk_text_view_get_buffer (GTK_TEXT_VIEW (editor->priv->text)), "changed",
@@ -732,7 +756,7 @@ query_editor_init (QueryEditor *editor, G_GNUC_UNUSED QueryEditorClass *klass)
create_tags_for_sql (editor, QUERY_EDITOR_LANGUAGE_SQL);
- gtk_widget_show_all (editor->priv->scrolled_window);
+ gtk_widget_show_all (ovl);
/* timeout function to update timestamps */
editor->priv->ts_timeout_id = 0;
@@ -928,6 +952,8 @@ query_editor_set_mode (QueryEditor *editor, QueryEditorMode mode)
gtk_widget_set_tooltip_markup (editor->priv->text, NULL);
gtk_text_view_set_editable (GTK_TEXT_VIEW (editor->priv->text), FALSE);
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (editor->priv->text), FALSE);
+ gtk_widget_destroy (editor->priv->tooltip_widget);
+ editor->priv->tooltip_widget = NULL;
break;
default:
g_assert_not_reached ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]