| /**************************************************************************** |
| ** |
| ** Copyright (C) 2016 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the documentation of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:FDL$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU Free Documentation License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Free |
| ** Documentation License version 1.3 as published by the Free Software |
| ** Foundation and appearing in the file included in the packaging of |
| ** this file. Please review the following information to ensure |
| ** the GNU Free Documentation License version 1.3 requirements |
| ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| /*! |
| \class QPaintDevice |
| \brief The QPaintDevice class is the base class of objects that |
| can be painted on with QPainter. |
| |
| \ingroup painting |
| \inmodule QtGui |
| |
| A paint device is an abstraction of a two-dimensional space that |
| can be drawn on using a QPainter. Its default coordinate system has |
| its origin located at the top-left position. X increases to the |
| right and Y increases downwards. The unit is one pixel. |
| |
| The drawing capabilities of QPaintDevice are currently implemented |
| by the QWidget, QImage, QPixmap, QGLPixelBuffer, QPicture, and |
| QPrinter subclasses. |
| |
| To implement support for a new backend, you must derive from |
| QPaintDevice and reimplement the virtual paintEngine() function to |
| tell QPainter which paint engine should be used to draw on this |
| particular device. Note that you also must create a corresponding |
| paint engine to be able to draw on the device, i.e derive from |
| QPaintEngine and reimplement its virtual functions. |
| |
| \warning Qt requires that a QGuiApplication object exists before |
| any paint devices can be created. Paint devices access window |
| system resources, and these resources are not initialized before |
| an application object is created. |
| |
| The QPaintDevice class provides several functions returning the |
| various device metrics: The depth() function returns its bit depth |
| (number of bit planes). The height() function returns its height |
| in default coordinate system units (e.g. pixels for QPixmap and |
| QWidget) while heightMM() returns the height of the device in |
| millimeters. Similiarily, the width() and widthMM() functions |
| return the width of the device in default coordinate system units |
| and in millimeters, respectively. Alternatively, the protected |
| metric() function can be used to retrieve the metric information |
| by specifying the desired PaintDeviceMetric as argument. |
| |
| The logicalDpiX() and logicalDpiY() functions return the |
| horizontal and vertical resolution of the device in dots per |
| inch. The physicalDpiX() and physicalDpiY() functions also return |
| the resolution of the device in dots per inch, but note that if |
| the logical and physical resolution differ, the corresponding |
| QPaintEngine must handle the mapping. Finally, the colorCount() |
| function returns the number of different colors available for the |
| paint device. |
| |
| \sa QPaintEngine, QPainter, {Coordinate System}, {Paint System} |
| */ |
| |
| /*! |
| \enum QPaintDevice::PaintDeviceMetric |
| |
| Describes the various metrics of a paint device. |
| |
| \value PdmWidth The width of the paint device in default |
| coordinate system units (e.g. pixels for QPixmap and QWidget). See |
| also width(). |
| |
| \value PdmHeight The height of the paint device in default |
| coordinate system units (e.g. pixels for QPixmap and QWidget). See |
| also height(). |
| |
| \value PdmWidthMM The width of the paint device in millimeters. See |
| also widthMM(). |
| |
| \value PdmHeightMM The height of the paint device in millimeters. See |
| also heightMM(). |
| |
| \value PdmNumColors The number of different colors available for |
| the paint device. See also colorCount(). |
| |
| \value PdmDepth The bit depth (number of bit planes) of the paint |
| device. See also depth(). |
| |
| \value PdmDpiX The horizontal resolution of the device in dots per |
| inch. See also logicalDpiX(). |
| |
| \value PdmDpiY The vertical resolution of the device in dots per inch. See |
| also logicalDpiY(). |
| |
| \value PdmPhysicalDpiX The horizontal resolution of the device in |
| dots per inch. See also physicalDpiX(). |
| |
| \value PdmPhysicalDpiY The vertical resolution of the device in |
| dots per inch. See also physicalDpiY(). |
| |
| \value PdmDevicePixelRatio The device pixel ratio for device. Common |
| values are 1 for normal-dpi displays and 2 for high-dpi "retina" |
| displays. |
| |
| \value PdmDevicePixelRatioScaled The scaled device pixel ratio for the device. |
| This is identical to PdmDevicePixelRatio, except that the value is scaled by a |
| constant factor in order to support paint devices with fractional scale factors. |
| The constant scaling factor used is devicePixelRatioFScale(). This enum value |
| has been introduced in Qt 5.6. |
| |
| \sa metric(), devicePixelRatioF() |
| */ |
| |
| /*! |
| \fn QPaintDevice::QPaintDevice() |
| |
| Constructs a paint device. This constructor can be invoked only from |
| subclasses of QPaintDevice. |
| */ |
| |
| /*! |
| \fn QPaintDevice::~QPaintDevice() |
| |
| Destroys the paint device and frees window system resources. |
| */ |
| |
| /*! |
| \fn int QPaintDevice::devType() const |
| |
| \internal |
| |
| Returns the device type identifier, which is QInternal::Widget |
| if the device is a QWidget, QInternal::Pixmap if it's a |
| QPixmap, QInternal::Printer if it's a QPrinter, |
| QInternal::Picture if it's a QPicture, or |
| QInternal::UnknownDevice in other cases. |
| */ |
| |
| /*! |
| \fn bool QPaintDevice::paintingActive() const |
| |
| Returns \c true if the device is currently being painted on, i.e. someone has |
| called QPainter::begin() but not yet called QPainter::end() for |
| this device; otherwise returns \c false. |
| |
| \sa QPainter::isActive() |
| */ |
| |
| /*! |
| \fn QPaintEngine *QPaintDevice::paintEngine() const |
| |
| Returns a pointer to the paint engine used for drawing on the |
| device. |
| */ |
| |
| /*! |
| \fn int QPaintDevice::metric(PaintDeviceMetric metric) const |
| |
| Returns the metric information for the given paint device \a metric. |
| |
| \sa PaintDeviceMetric |
| */ |
| |
| /*! |
| \fn int QPaintDevice::width() const |
| |
| Returns the width of the paint device in default coordinate system |
| units (e.g. pixels for QPixmap and QWidget). |
| |
| \sa widthMM() |
| */ |
| |
| /*! |
| \fn int QPaintDevice::height() const |
| |
| Returns the height of the paint device in default coordinate |
| system units (e.g. pixels for QPixmap and QWidget). |
| |
| \sa heightMM() |
| */ |
| |
| /*! |
| \fn int QPaintDevice::widthMM() const |
| |
| Returns the width of the paint device in millimeters. Due to platform |
| limitations it may not be possible to use this function to determine |
| the actual physical size of a widget on the screen. |
| |
| \sa width() |
| */ |
| |
| /*! |
| \fn int QPaintDevice::heightMM() const |
| |
| Returns the height of the paint device in millimeters. Due to platform |
| limitations it may not be possible to use this function to determine |
| the actual physical size of a widget on the screen. |
| |
| \sa height() |
| */ |
| |
| /*! |
| \fn int QPaintDevice::colorCount() const |
| |
| Returns the number of different colors available for the paint |
| device. If the number of colors available is too great to be |
| represented by the int data type, then INT_MAX will be returned |
| instead. |
| */ |
| |
| /*! |
| \fn int QPaintDevice::depth() const |
| |
| Returns the bit depth (number of bit planes) of the paint device. |
| */ |
| |
| /*! |
| \fn int QPaintDevice::logicalDpiX() const |
| |
| Returns the horizontal resolution of the device in dots per inch, |
| which is used when computing font sizes. For X11, this is usually |
| the same as could be computed from widthMM(). |
| |
| Note that if the logicalDpiX() doesn't equal the physicalDpiX(), |
| the corresponding QPaintEngine must handle the resolution mapping. |
| |
| \sa logicalDpiY(), physicalDpiX() |
| */ |
| |
| /*! |
| \fn int QPaintDevice::logicalDpiY() const |
| |
| Returns the vertical resolution of the device in dots per inch, |
| which is used when computing font sizes. For X11, this is usually |
| the same as could be computed from heightMM(). |
| |
| Note that if the logicalDpiY() doesn't equal the physicalDpiY(), |
| the corresponding QPaintEngine must handle the resolution mapping. |
| |
| \sa logicalDpiX(), physicalDpiY() |
| */ |
| |
| /*! |
| \fn int QPaintDevice::physicalDpiX() const |
| |
| Returns the horizontal resolution of the device in dots per inch. |
| For example, when printing, this resolution refers to the physical |
| printer's resolution. The logical DPI on the other hand, refers to |
| the resolution used by the actual paint engine. |
| |
| Note that if the physicalDpiX() doesn't equal the logicalDpiX(), |
| the corresponding QPaintEngine must handle the resolution mapping. |
| |
| \sa physicalDpiY(), logicalDpiX() |
| */ |
| |
| /*! |
| \fn int QPaintDevice::physicalDpiY() const |
| |
| Returns the horizontal resolution of the device in dots per inch. |
| For example, when printing, this resolution refers to the physical |
| printer's resolution. The logical DPI on the other hand, refers to |
| the resolution used by the actual paint engine. |
| |
| Note that if the physicalDpiY() doesn't equal the logicalDpiY(), |
| the corresponding QPaintEngine must handle the resolution mapping. |
| |
| \sa physicalDpiX(), logicalDpiY() |
| */ |
| |
| /*! |
| \fn int QPaintDevice::devicePixelRatio() const |
| |
| Returns the device pixel ratio for device. |
| |
| Common values are 1 for normal-dpi displays and 2 for high-dpi |
| "retina" displays. |
| */ |
| |
| /*! |
| \fn qreal QPaintDevice::devicePixelRatioF() const |
| |
| Returns the device pixel ratio for the device as a floating point number. |
| |
| \since 5.6 |
| */ |
| |
| /*! |
| \fn qreal QPaintDevice::devicePixelRatioFScale() |
| |
| \internal |
| |
| Returns the scaling factor used for \c PdmDevicePixelRatioScaled. Classes |
| that are not QPaintDevice subclasses are implementing metric(), and need to |
| access this constant. Since it's a qreal, it cannot be an enum, and an inline |
| function is more efficient than a static member variable. |
| |
| \since 5.6 |
| */ |