diff options
Diffstat (limited to 'src/gui/image/qpixmap_qws.cpp')
-rw-r--r-- | src/gui/image/qpixmap_qws.cpp | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/src/gui/image/qpixmap_qws.cpp b/src/gui/image/qpixmap_qws.cpp deleted file mode 100644 index 3c1907089d..0000000000 --- a/src/gui/image/qpixmap_qws.cpp +++ /dev/null @@ -1,160 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <qpixmap.h> -#include <qapplication.h> -#include <qwidget.h> -#include <qdesktopwidget.h> -#include <qscreen_qws.h> -#include <qwsdisplay_qws.h> -#include <private/qdrawhelper_p.h> -#include <private/qpixmap_raster_p.h> - - -QT_BEGIN_NAMESPACE - -QPixmap QPixmap::grabWindow(WId window, int x, int y, int w, int h) -{ - QWidget *widget = QWidget::find(window); - if (!widget) - return QPixmap(); - - QRect grabRect = widget->frameGeometry(); - if (!widget->isWindow()) - grabRect.translate(widget->parentWidget()->mapToGlobal(QPoint())); - if (w < 0) - w = widget->width() - x; - if (h < 0) - h = widget->height() - y; - grabRect &= QRect(x, y, w, h).translated(widget->mapToGlobal(QPoint())); - - QScreen *screen = qt_screen; - QDesktopWidget *desktop = QApplication::desktop(); - if (!desktop) - return QPixmap(); - if (desktop->numScreens() > 1) { - const int screenNo = desktop->screenNumber(widget); - if (screenNo != -1) - screen = qt_screen->subScreens().at(screenNo); - grabRect = grabRect.translated(-screen->region().boundingRect().topLeft()); - } - - if (screen->pixelFormat() == QImage::Format_Invalid) { - qWarning("QPixmap::grabWindow(): Unable to copy pixels from framebuffer"); - return QPixmap(); - } - - if (screen->isTransformed()) { - const QSize screenSize(screen->width(), screen->height()); - grabRect = screen->mapToDevice(grabRect, screenSize); - } - - QWSDisplay::grab(false); - QPixmap pixmap; - QImage img(screen->base(), - screen->deviceWidth(), screen->deviceHeight(), - screen->linestep(), screen->pixelFormat()); - img = img.copy(grabRect); - QWSDisplay::ungrab(); - - if (screen->isTransformed()) { - QMatrix matrix; - switch (screen->transformOrientation()) { - case 1: matrix.rotate(90); break; - case 2: matrix.rotate(180); break; - case 3: matrix.rotate(270); break; - default: break; - } - img = img.transformed(matrix); - } - - if (screen->pixelType() == QScreen::BGRPixel) - img = img.rgbSwapped(); - - return QPixmap::fromImage(img); -} - -QRgb* QPixmap::clut() const -{ - if (data && data->classId() == QPixmapData::RasterClass) { - const QRasterPixmapData *d = static_cast<const QRasterPixmapData*>(data.data()); - return d->image.colorTable().data(); - } - - return 0; -} - -int QPixmap::numCols() const -{ - return colorCount(); -} - -int QPixmap::colorCount() const -{ - if (data && data->classId() == QPixmapData::RasterClass) { - const QRasterPixmapData *d = static_cast<const QRasterPixmapData*>(data.data()); - return d->image.colorCount(); - } - - return 0; -} - -const uchar* QPixmap::qwsBits() const -{ - if (data && data->classId() == QPixmapData::RasterClass) { - const QRasterPixmapData *d = static_cast<const QRasterPixmapData*>(data.data()); - return d->image.bits(); - } - - return 0; -} - -int QPixmap::qwsBytesPerLine() const -{ - if (data && data->classId() == QPixmapData::RasterClass) { - const QRasterPixmapData *d = static_cast<const QRasterPixmapData*>(data.data()); - return d->image.bytesPerLine(); - } - - return 0; -} - -QT_END_NAMESPACE |