VirtualBox

Ignore:
Timestamp:
Oct 18, 2023 2:01:20 PM (16 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
159572
Message:

FE/Qt: bugref:10535. Implementing overlay function. Not active.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/globals
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.cpp

    r101382 r101500  
    722722    }
    723723
     724    //overlayArchitectureTextOnPixmap("A64", pixmap);
    724725    /* Return pixmap: */
    725726    return pixmap;
    726727}
     728
     729void UIIconPoolGeneral::overlayArchitectureTextOnPixmap(const QString &strArch, QPixmap &pixmap) const
     730{
     731#if 0
     732    /* First create a pixmap and draw a background and text on it: */
     733    QFontMetrics fontMetrics = qApp->fontMetrics();
     734    QRect rect(0, 0, fontMetrics.boundingRect(strArch).width(), fontMetrics.boundingRect(strArch).height());
     735    QPixmap textPixmap(rect.size());
     736
     737    QPainter painter(&textPixmap);
     738    QFont font = qApp->font();
     739    font.setBold(true);
     740    painter.setFont(font);
     741    painter.setRenderHint(QPainter::Antialiasing);
     742    painter.setRenderHint(QPainter::SmoothPixmapTransform);
     743    painter.setRenderHint(QPainter::TextAntialiasing);
     744    painter.setPen(QPen(Qt::black, 1));
     745    painter.setBrush(QColor(255, 255, 255, 80));
     746    painter.drawRect(rect);
     747    painter.drawText(rect, Qt::AlignHCenter | Qt::AlignVCenter, strArch);
     748
     749    /* Now draw that^^ pixmap onto our original pixmap:*/
     750    QPainter originalPixmapPainter(&pixmap);
     751    originalPixmapPainter.setRenderHint(QPainter::Antialiasing);
     752    originalPixmapPainter.setRenderHint(QPainter::SmoothPixmapTransform);
     753    QRect targetRect(QPoint(0, 0), QSize(0.34 * pixmap.rect().width(), 0.3 * pixmap.rect().height()));
     754    originalPixmapPainter.drawPixmap(targetRect, textPixmap, textPixmap.rect());
     755#endif
     756#if 1
     757    QFont font = qApp->font();
     758    /* Set font' size wrt. @p pixmap height: */
     759    font.setPixelSize(0.3 * pixmap.rect().height());
     760    font.setBold(true);
     761    QPainter painter(&pixmap);
     762    painter.setFont(font);
     763    /* Make a rectangle just a bit larger than text's bounding rect. to have some spacing around the text: */
     764    int w = 1.2 * painter.fontMetrics().boundingRect(strArch).size().width();
     765    int h = 1.0 * painter.fontMetrics().boundingRect(strArch).size().height();
     766    QRect textRect(QPoint(0, 0), QSize(w, h));
     767    painter.setRenderHint(QPainter::Antialiasing);
     768    painter.setRenderHint(QPainter::SmoothPixmapTransform);
     769    painter.setRenderHint(QPainter::TextAntialiasing);
     770    painter.setPen(QPen(Qt::black, 1));
     771    painter.setBrush(QColor(255, 255, 255, 200));
     772    painter.drawRect(textRect);
     773    painter.drawText(textRect, Qt::AlignHCenter | Qt::AlignVCenter, strArch);
     774#endif
     775}
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIIconPool.h

    r98103 r101500  
    164164    /** Destructs general icon-pool. */
    165165    virtual ~UIIconPoolGeneral() /* override final */;
     166    /** Overlay text @p strArch on top of @p pixmap. */
     167    void overlayArchitectureTextOnPixmap(const QString &strArch, QPixmap &pixmap) const;
    166168
    167169    /** Holds the singleton instance. */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette