static void on_scale_button_value_changed (GtkScaleButton *button, gdouble value, gpointer user_data) { gtk_widget_trigger_tooltip_query (GTK_WIDGET (button)); }
static void update_mouse_cursor (GtkTextView *text_view, gint x, gint y) { static GdkCursor *hand_cursor = NULL; static GdkCursor *regular_cursor = NULL; gboolean hovering = FALSE, hovering_over_link = FALSE, hovering_real; guint32 state; GtkTextBuffer *buffer = gtk_text_view_get_buffer (text_view); GtkTextTagTable *tag_table; GtkTextTag *tag; GtkTextIter iter; if (!hand_cursor) { hand_cursor = gdk_cursor_new (GDK_HAND2); regular_cursor = gdk_cursor_new (GDK_XTERM); } g_return_if_fail (buffer != NULL); tag_table = gtk_text_buffer_get_tag_table (buffer); tag = gtk_text_tag_table_lookup (tag_table, E_BUFFER_TAGGER_LINK_TAG); g_return_if_fail (tag != NULL); state = get_state (buffer); gtk_text_view_get_iter_at_location (text_view, &iter, x, y); hovering_real = gtk_text_iter_has_tag (&iter, tag); hovering_over_link = (state & E_BUFFER_TAGGER_STATE_IS_HOVERING) != 0; if ((state & E_BUFFER_TAGGER_STATE_CTRL_DOWN) == 0) { hovering = FALSE; } else { hovering = hovering_real; } if (hovering != hovering_over_link) { update_state (buffer, E_BUFFER_TAGGER_STATE_IS_HOVERING, hovering); if (hovering && gtk_widget_has_focus (GTK_WIDGET (text_view))) gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), hand_cursor); else gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), regular_cursor); /* XXX Is this necessary? Appears to be a no-op. */ get_pointer_position (text_view, NULL, NULL); } hovering_over_link = (state & E_BUFFER_TAGGER_STATE_IS_HOVERING_TOOLTIP) != 0; if (hovering_real != hovering_over_link) { update_state (buffer, E_BUFFER_TAGGER_STATE_IS_HOVERING_TOOLTIP, hovering_real); gtk_widget_trigger_tooltip_query (GTK_WIDGET (text_view)); } }
/* FIXME: If the GHidPort is ever destroyed, we must call * cancel_tooltip_update (), otherwise the timeout might * fire after the data it utilises has been free'd. */ static void queue_tooltip_update (GHidPort *out) { /* Zap the old tool-tip text and force it to be removed from the screen */ gtk_widget_set_tooltip_text (out->drawing_area, NULL); gtk_widget_trigger_tooltip_query (out->drawing_area); cancel_tooltip_update (); tooltip_update_timeout_id = g_timeout_add (TOOLTIP_UPDATE_DELAY, (GSourceFunc) check_object_tooltips, out); }
int iupdrvBaseSetTipVisibleAttrib(Ihandle* ih, const char* value) { GtkWidget* widget = (GtkWidget*)iupAttribGet(ih, "_IUP_EXTRAPARENT"); if (!widget) widget = ih->handle; (void)value; /* must use IupGetAttribute to use inheritance */ if (!IupGetAttribute(ih, "TIP")) return 0; #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_trigger_tooltip_query(widget); #endif return 0; }
static void selection_changed_cb (GtkTreeSelection *selection, GtkWidget *tree_view) { gtk_widget_trigger_tooltip_query (tree_view); }
static VALUE rg_trigger_tooltip_query(VALUE self) { gtk_widget_trigger_tooltip_query(_SELF(self)); return self; }