NS_IMETHODIMP EmbedWindow::OnShowTooltip(PRInt32 aXCoords, PRInt32 aYCoords, const PRUnichar *aTipText) { nsAutoString tipText ( aTipText ); const char* tipString = ToNewCString(tipText), *font = "TextFont08"; PtArg_t args[10]; PhRect_t extent; PhDim_t dim; PhPoint_t pos = {0, 0}; int n = 0, w, h; if (sTipWindow) PtDestroyWidget(sTipWindow); // get the root origin for this content window nsCOMPtr<nsIWidget> mainWidget; mBaseWindow->GetMainWidget(getter_AddRefs(mainWidget)); PtWidget_t *window; window = static_cast<PtWidget_t *>(mainWidget->GetNativeData(NS_NATIVE_WINDOW)); PgExtentText(&extent, &pos, font, tipString, 0); w = extent.lr.x - extent.ul.x + 1; h = extent.lr.y - extent.ul.y + 1; n = 0; pos.x = aXCoords; pos.y = aYCoords + 10; /* we add 10 so that we don't position it right under the mouse */ dim.w = w + 6; dim.h = h + 6; PtSetArg(&args[n++], Pt_ARG_POS, &pos, 0); PtSetArg(&args[n++], Pt_ARG_DIM, &dim, 0); PtSetArg( &args[n++], Pt_ARG_REGION_OPAQUE, Ph_EV_EXPOSE, Ph_EV_EXPOSE); sTipWindow = PtCreateWidget(PtRegion, Pt_NO_PARENT, n, args); n = 0; pos.x = pos.y = 0; dim.w = w; dim.h = h; PtSetArg(&args[n++], Pt_ARG_POS, &pos, 0); PtSetArg(&args[n++], Pt_ARG_DIM, &dim, 0); PtSetArg(&args[n++], Pt_ARG_FLAGS, Pt_HIGHLIGHTED, -1 ); PtSetArg(&args[n++], Pt_ARG_FILL_COLOR, 0xfeffb1, 0); PtSetArg(&args[n++], Pt_ARG_TEXT_FONT, font, 0); PtSetArg(&args[n++], Pt_ARG_TEXT_STRING, tipString, 0); PtSetArg(&args[n++], Pt_ARG_BASIC_FLAGS, Pt_STATIC_GRADIENT | Pt_TOP_OUTLINE | Pt_LEFT_OUTLINE | Pt_RIGHT_OUTLINE | Pt_BOTTOM_OUTLINE, -1 ); PtCreateWidget(PtLabel, sTipWindow, n, args); // realize the widget PtRealizeWidget(sTipWindow); nsMemory::Free( (void*)tipString ); return NS_OK; }
void KOListViewToolTip::maybeTip(const QPoint &pos) { QRect r; QListViewItem *it = eventlist->itemAt(pos); KOListViewItem *i = static_cast<KOListViewItem *>(it); if(i && KOPrefs::instance()->mEnableToolTips) { /* Calculate the rectangle. */ r = eventlist->itemRect(it); /* Show the tip */ QString tipText(IncidenceFormatter::toolTipString(i->data())); if(!tipText.isEmpty()) { tip(r, tipText); } } }
void Pstable::showTip(QPoint p, int idx) { QToolTip::showText(p, tipText(idx)); }
NS_IMETHODIMP EmbedWindow::OnShowTooltip(PRInt32 aXCoords, PRInt32 aYCoords, const PRUnichar *aTipText) { nsAutoString tipText ( aTipText ); const char* tipString = ToNewUTF8String(tipText); if (sTipWindow) gtk_widget_destroy(sTipWindow); // get the root origin for this content window nsCOMPtr<nsIWidget> mainWidget; mBaseWindow->GetMainWidget(getter_AddRefs(mainWidget)); GdkWindow *window; window = static_cast<GdkWindow *>(mainWidget->GetNativeData(NS_NATIVE_WINDOW)); gint root_x, root_y; gdk_window_get_origin(window, &root_x, &root_y); // XXX work around until I can get pink to figure out why // tooltips vanish if they show up right at the origin of the // cursor. root_y += 10; sTipWindow = gtk_window_new(GTK_WINDOW_POPUP); gtk_widget_set_app_paintable(sTipWindow, TRUE); gtk_window_set_resizable(GTK_WINDOW(sTipWindow), TRUE); // needed to get colors + fonts etc correctly gtk_widget_set_name(sTipWindow, "gtk-tooltips"); gtk_window_set_type_hint(GTK_WINDOW(sTipWindow), GDK_WINDOW_TYPE_HINT_TOOLTIP); // set up the popup window as a transient of the widget. GtkWidget *toplevel_window; toplevel_window = gtk_widget_get_toplevel(GTK_WIDGET(mOwner->mOwningWidget)); if (!GTK_WINDOW(toplevel_window)) { NS_ERROR("no gtk window in hierarchy!\n"); return NS_ERROR_FAILURE; } gtk_window_set_transient_for(GTK_WINDOW(sTipWindow), GTK_WINDOW(toplevel_window)); // realize the widget gtk_widget_realize(sTipWindow); g_signal_connect(G_OBJECT(sTipWindow), "expose_event", G_CALLBACK(tooltips_paint_window), NULL); // set up the label for the tooltip GtkWidget *label = gtk_label_new(tipString); // wrap automatically gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_container_add(GTK_CONTAINER(sTipWindow), label); gtk_container_set_border_width(GTK_CONTAINER(sTipWindow), 4); // set the coords for the widget gtk_widget_set_uposition(sTipWindow, aXCoords + root_x, aYCoords + root_y); // and show it. gtk_widget_show_all(sTipWindow); NS_Free( (void*)tipString ); return NS_OK; }
bool OutlineWidget::viewportEvent(QEvent *event) { if (event->type() == QEvent::ToolTip) { QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event); QTreeWidgetItem* it = itemAt(helpEvent->pos()); if (it != 0) { OutlineTreeItem *item = (OutlineTreeItem*)it; if (item != NULL) { QString tipText(""); if ((item->type == 1) || (item->type == 3) || (item->type == 4)) { PageItem *pgItem = item->PageItemObject; switch (pgItem->itemType()) { case PageItem::ImageFrame: if (pgItem->asLatexFrame()) tipText = CommonStrings::itemType_LatexFrame; #ifdef HAVE_OSG else if (pgItem->asOSGFrame()) tipText = CommonStrings::itemType_OSGFrame; #endif else tipText = CommonStrings::itemType_ImageFrame; break; case PageItem::TextFrame: switch (pgItem->annotation().Type()) { case 2: tipText = CommonStrings::itemSubType_PDF_PushButton; break; case 3: tipText = CommonStrings::itemSubType_PDF_TextField; break; case 4: tipText = CommonStrings::itemSubType_PDF_CheckBox; break; case 5: tipText = CommonStrings::itemSubType_PDF_ComboBox; break; case 6: tipText = CommonStrings::itemSubType_PDF_ListBox; break; case 10: tipText = CommonStrings::itemSubType_PDF_TextAnnotation; break; case 11: tipText = CommonStrings::itemSubType_PDF_LinkAnnotation; break; default: tipText = CommonStrings::itemType_TextFrame; break; } break; case PageItem::Line: tipText = CommonStrings::itemType_Line; break; case PageItem::Polygon: tipText = CommonStrings::itemType_Polygon; break; case PageItem::PolyLine: tipText = CommonStrings::itemType_Polyline; break; case PageItem::PathText: tipText = CommonStrings::itemType_PathText; break; default: break; } QToolTip::showText(helpEvent->globalPos(), tipText, this); return true; } } } } return QTreeWidget::viewportEvent(event); }