static VALUE rg_s_get_info(G_GNUC_UNUSED VALUE self, VALUE window) { GtkTooltips* tooltips; GtkWidget* current_widget; gboolean ret = gtk_tooltips_get_info_from_tip_window(GTK_WINDOW(RVAL2GOBJ(window)), &tooltips, ¤t_widget); if (ret) return rb_assoc_new(GOBJ2RVAL(tooltips), GOBJ2RVAL(current_widget)); else return Qnil; }
static AtkRelationSet* gail_window_ref_relation_set (AtkObject *obj) { GtkWidget *widget; AtkRelationSet *relation_set; AtkObject *array[1]; AtkRelation* relation; GtkWidget *current_widget; gail_return_val_if_fail (GAIL_IS_WIDGET (obj), NULL); widget = GTK_ACCESSIBLE (obj)->widget; if (widget == NULL) /* * State is defunct */ return NULL; relation_set = ATK_OBJECT_CLASS (gail_window_parent_class)->ref_relation_set (obj); if (atk_object_get_role (obj) == ATK_ROLE_TOOL_TIP) { relation = atk_relation_set_get_relation_by_type (relation_set, ATK_RELATION_POPUP_FOR); if (relation) { atk_relation_set_remove (relation_set, relation); } if (gtk_widget_get_visible(widget) && gtk_tooltips_get_info_from_tip_window (GTK_WINDOW (widget), NULL, ¤t_widget)) { array [0] = gtk_widget_get_accessible (current_widget); relation = atk_relation_new (array, 1, ATK_RELATION_POPUP_FOR); atk_relation_set_add (relation_set, relation); g_object_unref (relation); } } return relation_set; }