summaryrefslogtreecommitdiffstats
path: root/src/gui/image/qpixmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/image/qpixmap.h')
-rw-r--r--src/gui/image/qpixmap.h160
1 files changed, 34 insertions, 126 deletions
diff --git a/src/gui/image/qpixmap.h b/src/gui/image/qpixmap.h
index 3012080abb..5d300d1f76 100644
--- a/src/gui/image/qpixmap.h
+++ b/src/gui/image/qpixmap.h
@@ -52,11 +52,6 @@
QT_BEGIN_HEADER
-#if defined(Q_OS_SYMBIAN)
-class CFbsBitmap;
-class RSgImage;
-#endif
-
QT_BEGIN_NAMESPACE
QT_MODULE(Gui)
@@ -66,13 +61,13 @@ class QImageReader;
class QColor;
class QVariant;
class QX11Info;
-class QPixmapData;
+class QPlatformPixmap;
class Q_GUI_EXPORT QPixmap : public QPaintDevice
{
public:
QPixmap();
- explicit QPixmap(QPixmapData *data);
+ explicit QPixmap(QPlatformPixmap *data);
QPixmap(int w, int h);
QPixmap(const QSize &);
QPixmap(const QString& fileName, const char *format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor);
@@ -103,32 +98,25 @@ public:
static int defaultDepth();
void fill(const QColor &fillColor = Qt::white);
- void fill(const QWidget *widget, const QPoint &ofs);
- inline void fill(const QWidget *widget, int xofs, int yofs) { fill(widget, QPoint(xofs, yofs)); }
+ void fill(const QPaintDevice *device, const QPoint &ofs);
+ inline void fill(const QPaintDevice *device, int xofs, int yofs) { fill(device, QPoint(xofs, yofs)); }
QBitmap mask() const;
void setMask(const QBitmap &);
-#ifdef QT_DEPRECATED
- QT_DEPRECATED QPixmap alphaChannel() const;
- QT_DEPRECATED void setAlphaChannel(const QPixmap &);
-#endif
-
bool hasAlpha() const;
bool hasAlphaChannel() const;
#ifndef QT_NO_IMAGE_HEURISTIC_MASK
QBitmap createHeuristicMask(bool clipTight = true) const;
#endif
- QBitmap createMaskFromColor(const QColor &maskColor) const; // ### Qt 5: remove
- QBitmap createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode) const;
+ QBitmap createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode = Qt::MaskInColor) const;
static QPixmap grabWindow(WId, int x=0, int y=0, int w=-1, int h=-1);
- static QPixmap grabWidget(QWidget *widget, const QRect &rect);
- static inline QPixmap grabWidget(QWidget *widget, int x=0, int y=0, int w=-1, int h=-1)
+ static QPixmap grabWidget(QObject *widget, const QRect &rect);
+ static inline QPixmap grabWidget(QObject *widget, int x=0, int y=0, int w=-1, int h=-1)
{ return grabWidget(widget, QRect(x, y, w, h)); }
-
inline QPixmap scaled(int w, int h, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio,
Qt::TransformationMode mode = Qt::FastTransformation) const
{ return scaled(QSize(w, h), aspectMode, mode); }
@@ -153,32 +141,6 @@ public:
bool convertFromImage(const QImage &img, Qt::ImageConversionFlags flags = Qt::AutoColor);
-#if defined(Q_WS_WIN)
- enum HBitmapFormat {
- NoAlpha,
- PremultipliedAlpha,
- Alpha
- };
-
- HBITMAP toWinHBITMAP(HBitmapFormat format = NoAlpha) const;
- HICON toWinHICON() const;
-
- static QPixmap fromWinHBITMAP(HBITMAP hbitmap, HBitmapFormat format = NoAlpha);
- static QPixmap fromWinHICON(HICON hicon);
-#endif
-
-#if defined(Q_WS_MAC)
- CGImageRef toMacCGImageRef() const;
- static QPixmap fromMacCGImageRef(CGImageRef image);
-#endif
-
-#if defined(Q_OS_SYMBIAN)
- CFbsBitmap *toSymbianCFbsBitmap() const;
- static QPixmap fromSymbianCFbsBitmap(CFbsBitmap *bitmap);
- RSgImage* toSymbianRSgImage() const;
- static QPixmap fromSymbianRSgImage(RSgImage *sgImage);
-#endif
-
inline QPixmap copy(int x, int y, int width, int height) const;
QPixmap copy(const QRect &rect = QRect()) const;
@@ -195,105 +157,43 @@ public:
bool isQBitmap() const;
-#if defined(Q_WS_QWS)
- const uchar *qwsBits() const;
- int qwsBytesPerLine() const;
- QRgb *clut() const;
-#ifdef QT_DEPRECATED
- QT_DEPRECATED int numCols() const;
-#endif
- int colorCount() const;
-#elif defined(Q_WS_MAC)
- Qt::HANDLE macQDHandle() const;
- Qt::HANDLE macQDAlphaHandle() const;
- Qt::HANDLE macCGHandle() const;
-#elif defined(Q_WS_X11)
- enum ShareMode { ImplicitlyShared, ExplicitlyShared };
-
- static QPixmap fromX11Pixmap(Qt::HANDLE pixmap, ShareMode mode = ImplicitlyShared);
- static int x11SetDefaultScreen(int screen);
- void x11SetScreen(int screen);
- const QX11Info &x11Info() const;
- Qt::HANDLE x11PictureHandle() const;
-#endif
-
-#if defined(Q_WS_X11) || defined(Q_WS_QWS)
- Qt::HANDLE handle() const;
-#endif
-
QPaintEngine *paintEngine() const;
inline bool operator!() const { return isNull(); }
+#if QT_DEPRECATED_SINCE(5, 0)
+ QT_DEPRECATED inline QPixmap alphaChannel() const;
+ QT_DEPRECATED inline void setAlphaChannel(const QPixmap &);
+#endif
+
protected:
int metric(PaintDeviceMetric) const;
-#ifdef QT3_SUPPORT
-public:
- enum ColorMode { Auto, Color, Mono };
- QT3_SUPPORT_CONSTRUCTOR QPixmap(const QString& fileName, const char *format, ColorMode mode);
- QT3_SUPPORT bool load(const QString& fileName, const char *format, ColorMode mode);
- QT3_SUPPORT bool loadFromData(const uchar *buf, uint len, const char* format, ColorMode mode);
- QT3_SUPPORT_CONSTRUCTOR QPixmap(const QImage& image);
- QT3_SUPPORT QPixmap &operator=(const QImage &);
- inline QT3_SUPPORT QImage convertToImage() const { return toImage(); }
- QT3_SUPPORT bool convertFromImage(const QImage &, ColorMode mode);
- inline QT3_SUPPORT operator QImage() const { return toImage(); }
- inline QT3_SUPPORT QPixmap xForm(const QMatrix &matrix) const { return transformed(QTransform(matrix)); }
- inline QT3_SUPPORT bool selfMask() const { return false; }
-private:
- void resize_helper(const QSize &s);
-public:
- inline QT3_SUPPORT void resize(const QSize &s) { resize_helper(s); }
- inline QT3_SUPPORT void resize(int width, int height) { resize_helper(QSize(width, height)); }
-#endif
-
private:
- QExplicitlySharedDataPointer<QPixmapData> data;
+ QExplicitlySharedDataPointer<QPlatformPixmap> data;
bool doImageIO(QImageWriter *io, int quality) const;
- // ### Qt5: remove the following three lines
- enum Type { PixmapType, BitmapType }; // must match QPixmapData::PixelType
- QPixmap(const QSize &s, Type);
- void init(int, int, Type = PixmapType);
-
QPixmap(const QSize &s, int type);
- void init(int, int, int);
+ void doInit(int, int, int);
void deref();
-#if defined(Q_WS_WIN)
- void initAlphaPixmap(uchar *bytes, int length, struct tagBITMAPINFO *bmi);
-#endif
Q_DUMMY_COMPARISON_OPERATOR(QPixmap)
-#ifdef Q_WS_MAC
- friend CGContextRef qt_mac_cg_context(const QPaintDevice*);
- friend CGImageRef qt_mac_create_imagemask(const QPixmap&, const QRectF&);
- friend IconRef qt_mac_create_iconref(const QPixmap&);
- friend quint32 *qt_mac_pixmap_get_base(const QPixmap*);
- friend int qt_mac_pixmap_get_bytes_per_line(const QPixmap*);
-#endif
- friend class QPixmapData;
- friend class QX11PixmapData;
- friend class QMacPixmapData;
- friend class QS60PixmapData;
+ friend class QPlatformPixmap;
friend class QBitmap;
friend class QPaintDevice;
friend class QPainter;
- friend class QGLWidget;
- friend class QX11PaintEngine;
- friend class QCoreGraphicsPaintEngine;
+ friend class QOpenGLWidget;
friend class QWidgetPrivate;
friend class QRasterBuffer;
#if !defined(QT_NO_DATASTREAM)
friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QPixmap &);
#endif
- friend Q_GUI_EXPORT qint64 qt_pixmap_id(const QPixmap &pixmap);
public:
- QPixmapData* pixmapData() const;
+ QPlatformPixmap* handle() const;
public:
- typedef QExplicitlySharedDataPointer<QPixmapData> DataPtr;
+ typedef QExplicitlySharedDataPointer<QPlatformPixmap> DataPtr;
inline DataPtr &data_ptr() { return data; }
};
@@ -315,6 +215,22 @@ inline bool QPixmap::loadFromData(const QByteArray &buf, const char *format,
return loadFromData(reinterpret_cast<const uchar *>(buf.constData()), buf.size(), format, flags);
}
+#if QT_DEPRECATED_SINCE(5, 0)
+inline QPixmap QPixmap::alphaChannel() const
+{
+ return toImage().alphaChannel();
+}
+
+inline void QPixmap::setAlphaChannel(const QPixmap &p)
+{
+ detach();
+ QImage image = data->toImage();
+ image.setAlphaChannel(p.toImage());
+ data->fromImage(image);
+
+}
+#endif
+
/*****************************************************************************
QPixmap stream functions
*****************************************************************************/
@@ -324,14 +240,6 @@ Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QPixmap &);
Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QPixmap &);
#endif
-/*****************************************************************************
- QPixmap (and QImage) helper functions
-*****************************************************************************/
-#ifdef QT3_SUPPORT
-QT3_SUPPORT Q_GUI_EXPORT void copyBlt(QPixmap *dst, int dx, int dy, const QPixmap *src,
- int sx=0, int sy=0, int sw=-1, int sh=-1);
-#endif // QT3_SUPPORT
-
QT_END_NAMESPACE
QT_END_HEADER