void ContentWindowGraphicsItem::drawFullscreenButton_( QPainter* painter )
{
    float buttonWidth, buttonHeight;
    getButtonDimensions(buttonWidth, buttonHeight);

    QRectF fullscreenRect(coordinates_.x(), coordinates_.y() + coordinates_.height() - buttonHeight, buttonWidth, buttonHeight);
    QPen pen;
    pen.setColor(QColor(128,128,128));
    painter->setPen(pen);
    painter->drawRect(fullscreenRect);
}
Пример #2
0
void QDirectFbWindow::createDirectFBWindow()
{
    Q_ASSERT(!m_dfbWindow.data());

    DFBDisplayLayerConfig layerConfig;
    IDirectFBDisplayLayer *layer;

    layer = toDfbScreen(window())->dfbLayer();
    layer->GetConfiguration(layer, &layerConfig);

    DFBWindowDescription description;
    memset(&description,0,sizeof(DFBWindowDescription));

    if (window()->type() == Qt::Desktop) {
        QRect fullscreenRect(QPoint(), screen()->availableGeometry().size());
        window()->setGeometry(fullscreenRect);

        DFBResult result = layer->CreateWindow(layer, &description, m_dfbWindow.outPtr());
        if (result != DFB_OK)
            DirectFBError("QDirectFbWindow: failed to create window", result);

    } else {
        description.flags = DFBWindowDescriptionFlags(DWDESC_WIDTH|DWDESC_HEIGHT|DWDESC_POSX|DWDESC_POSY|DWDESC_SURFACE_CAPS
                                                      |DWDESC_OPTIONS
                                                      |DWDESC_CAPS);
        description.width = qMax(1, window()->width());
        description.height = qMax(1, window()->height());
        description.posx = window()->x();
        description.posy = window()->y();

        if (layerConfig.surface_caps & DSCAPS_PREMULTIPLIED)
            description.surface_caps = DSCAPS_PREMULTIPLIED;
        description.pixelformat = layerConfig.pixelformat;

        description.options = DFBWindowOptions(DWOP_ALPHACHANNEL);
        description.caps = DFBWindowCapabilities(DWCAPS_DOUBLEBUFFER|DWCAPS_ALPHACHANNEL);


        DFBResult result = layer->CreateWindow(layer, &description, m_dfbWindow.outPtr());
        if (result != DFB_OK)
            DirectFBError("QDirectFbWindow: failed to create window", result);

        m_dfbWindow->SetOpacity(m_dfbWindow.data(), 0xff);
        m_inputHandler->addWindow(m_dfbWindow.data(), window());
    }
}