File indexing completed on 2024-05-12 04:20:36
0001 /* 0002 * SPDX-FileCopyrightText: 2001-2015 Klaralvdalens Datakonsult AB. All rights reserved. 0003 * 0004 * This file is part of the KD Chart library. 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #ifndef NULL_PAINT_DEVICE_H 0010 #define NULL_PAINT_DEVICE_H 0011 0012 #include <QPaintDevice> 0013 #include <QPaintEngine> 0014 0015 namespace KChart 0016 { 0017 class NullPaintEngine : public QPaintEngine 0018 { 0019 public: 0020 virtual bool begin(QPaintDevice * /*pdev*/) { return true; } 0021 virtual void drawEllipse(const QRectF & /*rect*/) { } 0022 virtual void drawEllipse(const QRect & /*rect*/) { } 0023 virtual void drawImage(const QRectF & /*rectangle*/, const QImage & /*image*/, const QRectF & /*sr*/, Qt::ImageConversionFlags /*flags*/) { } 0024 virtual void drawLines(const QLineF * /*lines*/, int /*lineCount*/) { } 0025 virtual void drawLines(const QLine * /*lines*/, int /*lineCount*/) { } 0026 virtual void drawPath(const QPainterPath & /*path*/) { } 0027 virtual void drawPixmap(const QRectF & /*r*/, const QPixmap & /*pm*/, const QRectF & /*sr*/) { } 0028 virtual void drawPoints(const QPointF * /*points*/, int /*pointCount*/) { } 0029 virtual void drawPoints(const QPoint * /*points*/, int /*pointCount*/) { } 0030 virtual void drawPolygon(const QPointF * /*points*/, int /*pointCount*/, PolygonDrawMode /*mode*/) { } 0031 virtual void drawPolygon(const QPoint * /*points*/, int /*pointCount*/, PolygonDrawMode /*mode*/) { } 0032 virtual void drawRects(const QRectF * /*rects*/, int /*rectCount*/) { } 0033 virtual void drawRects(const QRect * /*rects*/, int /*rectCount*/) { } 0034 virtual void drawTextItem(const QPointF & /*p*/, const QTextItem & /*textItem*/) { } 0035 virtual void drawTiledPixmap(const QRectF & /*rect*/, const QPixmap & /*pixmap*/, const QPointF & /*p*/) { } 0036 virtual bool end() { return true; } 0037 0038 virtual Type type() const { return QPaintEngine::User; } 0039 virtual void updateState(const QPaintEngineState & /*state*/) { } 0040 }; 0041 0042 class NullPaintDevice : public QPaintDevice 0043 { 0044 public: 0045 NullPaintDevice(const QSize& size) : m_size(size) { } 0046 ~NullPaintDevice() { } 0047 0048 int metric(PaintDeviceMetric metric) const 0049 { 0050 switch (metric) 0051 { 0052 case QPaintDevice::PdmWidth: 0053 return m_size.width(); 0054 case QPaintDevice::PdmHeight: 0055 return m_size.height(); 0056 case QPaintDevice::PdmWidthMM: 0057 return 1; 0058 case QPaintDevice::PdmHeightMM: 0059 return 1; 0060 case QPaintDevice::PdmNumColors: 0061 return int((uint)(-1)); 0062 case QPaintDevice::PdmDepth: 0063 return 1; 0064 case QPaintDevice::PdmDpiX: 0065 return 1; 0066 case QPaintDevice::PdmDpiY: 0067 return 1; 0068 case QPaintDevice::PdmPhysicalDpiX: 0069 return 1; 0070 case QPaintDevice::PdmPhysicalDpiY: 0071 return 1; 0072 case QPaintDevice::PdmDevicePixelRatio: 0073 return 1; 0074 } 0075 return 1; 0076 } 0077 0078 QPaintEngine* paintEngine() const 0079 { 0080 static NullPaintEngine nullPaintEngine; 0081 return &nullPaintEngine; 0082 } 0083 0084 private: 0085 QSize m_size; 0086 }; 0087 0088 } 0089 0090 #endif