From: Ben Pfaff Date: Wed, 22 Jun 2011 05:45:48 +0000 (-0700) Subject: pspp-sheet-view-column: Add support for tooltips on columns. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp;a=commitdiff_plain;h=c7b09a12fae1611db7f1e7e00fa1e92c19d9fa37 pspp-sheet-view-column: Add support for tooltips on columns. --- diff --git a/src/ui/gui/marshaller-list b/src/ui/gui/marshaller-list index 02c7ff6d89..3cf5a9c87e 100644 --- a/src/ui/gui/marshaller-list +++ b/src/ui/gui/marshaller-list @@ -6,6 +6,7 @@ BOOLEAN:ENUM BOOLEAN:ENUM,INT BOOLEAN:BOXED,BOXED BOOLEAN:BOXED,POINTER +BOOLEAN:OBJECT BOOLEAN:VOID VOID:BOXED,BOXED VOID:BOXED,OBJECT diff --git a/src/ui/gui/pspp-sheet-view-column.c b/src/ui/gui/pspp-sheet-view-column.c index d8f863dc3b..316dc3349c 100644 --- a/src/ui/gui/pspp-sheet-view-column.c +++ b/src/ui/gui/pspp-sheet-view-column.c @@ -72,6 +72,7 @@ enum enum { CLICKED, + QUERY_TOOLTIP, LAST_SIGNAL }; @@ -200,6 +201,16 @@ pspp_sheet_view_column_class_init (PsppSheetViewColumnClass *class) g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + tree_column_signals[QUERY_TOOLTIP] = + g_signal_new ("query-tooltip", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + g_signal_accumulator_true_handled, NULL, + psppire_marshal_BOOLEAN__OBJECT, + G_TYPE_BOOLEAN, 1, + GTK_TYPE_TOOLTIP); + g_object_class_install_property (object_class, PROP_VISIBLE, g_param_spec_boolean ("visible", @@ -812,6 +823,22 @@ pspp_sheet_view_column_clear_attributes_by_info (PsppSheetViewColumn *tree_colum _pspp_sheet_view_column_cell_set_dirty (tree_column); } +static gboolean +on_query_tooltip (GtkWidget *widget, + gint x, + gint y, + gboolean keyboard_mode, + GtkTooltip *tooltip, + gpointer user_data) +{ + PsppSheetViewColumn *tree_column = user_data; + gboolean handled; + + g_signal_emit (tree_column, tree_column_signals[QUERY_TOOLTIP], 0, + tooltip, &handled); + return handled; +} + /* Helper functions */ @@ -846,6 +873,10 @@ pspp_sheet_view_column_create_button (PsppSheetViewColumn *tree_column) G_CALLBACK (pspp_sheet_view_column_button_clicked), tree_column); + g_signal_connect (tree_column->button, "query-tooltip", + G_CALLBACK (on_query_tooltip), tree_column); + g_object_set (tree_column->button, "has-tooltip", TRUE, NULL); + tree_column->alignment = gtk_alignment_new (tree_column->xalign, 0.5, 0.0, 0.0); hbox = gtk_hbox_new (FALSE, 2);