Qt 4.8
qprintengine_mac_p.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 #ifndef QPRINTENGINE_MAC_P_H
43 #define QPRINTENGINE_MAC_P_H
44 
45 //
46 // W A R N I N G
47 // -------------
48 //
49 // This file is not part of the Qt API. It exists purely as an
50 // implementation detail. This header file may change from version to
51 // version without notice, or even be removed.
52 //
53 // We mean it.
54 //
55 
56 #ifndef QT_NO_PRINTER
57 
58 #include "QtGui/qprinter.h"
59 #include "QtGui/qprintengine.h"
60 #include "private/qpaintengine_mac_p.h"
61 #include "private/qpainter_p.h"
62 
63 #ifdef __OBJC__
64 @class NSPrintInfo;
65 #else
66 typedef void NSPrintInfo;
67 #endif
68 
70 
71 class QPrinterPrivate;
74 {
76 public:
78 
79  Qt::HANDLE handle() const;
80 
81  bool begin(QPaintDevice *dev);
82  bool end();
83  virtual QPaintEngine::Type type() const { return QPaintEngine::MacPrinter; }
84 
85  QPaintEngine *paintEngine() const;
86 
87  void setProperty(PrintEnginePropertyKey key, const QVariant &value);
89 
91 
92  bool newPage();
93  bool abort();
95 
96  //forwarded functions
97 
98  void updateState(const QPaintEngineState &state);
99 
100  virtual void drawLines(const QLineF *lines, int lineCount);
101  virtual void drawRects(const QRectF *r, int num);
102  virtual void drawPoints(const QPointF *p, int pointCount);
103  virtual void drawEllipse(const QRectF &r);
104  virtual void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode);
105  virtual void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr);
106  virtual void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr, Qt::ImageConversionFlags flags);
107  virtual void drawTextItem(const QPointF &p, const QTextItem &ti);
108  virtual void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s);
109  virtual void drawPath(const QPainterPath &);
110 
111 private:
112  friend class QPrintDialog;
113  friend class QPageSetupDialog;
114 };
115 
117 {
119 public:
124  PMPageFormat format;
125  PMPrintSettings settings;
126  PMPrintSession session;
127  PMResolution resolution;
129  bool fullPage;
140  PMPaper customPaper;
141  QMacPrintEnginePrivate() : mode(QPrinter::ScreenResolution), state(QPrinter::Idle),
142  orient(QPrinter::Portrait), printInfo(0), format(0), settings(0),
143  session(0), paintEngine(0), suppressStatus(false),
144  hasCustomPaperSize(false), hasCustomPageMargins(false) {}
146  void initialize();
147  void releaseSession();
148  bool newPage_helper();
149  void setPaperSize(QPrinter::PaperSize ps);
151  QList<QVariant> supportedResolutions() const;
152  inline bool isPrintSessionInitialized() const
153  {
154 #ifndef QT_MAC_USE_COCOA
155  return session != 0;
156 #else
157  return printInfo != 0;
158 #endif
159  }
160  bool shouldSuppressStatus() const;
161 };
162 
164 
165 #endif // QT_NO_PRINTER
166 
167 #endif // QPRINTENGINE_WIN_P_H
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92
PaperSize paperSize(QPrinter::PaperSize paperSize)
Definition: qpdf.cpp:905
double qreal
Definition: qglobal.h:1193
PrinterState
Definition: qprinter.h:119
#define QT_END_NAMESPACE
This macro expands to.
Definition: qglobal.h:90
The QPainterPath class provides a container for painting operations, enabling graphical shapes to be ...
Definition: qpainterpath.h:67
QPaintEngineState * state
Definition: qpaintengine.h:239
PrinterMode
This enum describes the mode the printer should work in.
Definition: qprinter.h:70
void setProperty(PrintEnginePropertyKey key, const QVariant &value)
Sets the print engine&#39;s property specified by key to the given value.
The QPointF class defines a point in the plane using floating point precision.
Definition: qpoint.h:214
bool begin(QPaintDevice *dev)
Reimplement this function to initialise your paint engine when painting is to start on the paint devi...
virtual void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode)
Reimplement this virtual function to draw the polygon defined by the pointCount first points in point...
Orientation
This enum type (not to be confused with Orientation) is used to specify each page&#39;s orientation...
Definition: qprinter.h:78
QHash< QMacPrintEngine::PrintEnginePropertyKey, QVariant > valueCache
The QString class provides a Unicode character string.
Definition: qstring.h:83
void updateState(const QPaintEngineState &state)
Reimplement this function to update the state of a paint engine.
QPrinter::PrinterState printerState() const
Returns the current state of the printer being used by the print engine.
virtual void drawPoints(const QPointF *p, int pointCount)
Draws the first pointCount points in the buffer points.
The QSizeF class defines the size of a two-dimensional object using floating point precision...
Definition: qsize.h:202
QPaintEngine * paintEngine() const
The QLineF class provides a two-dimensional vector using floating point precision.
Definition: qline.h:212
bool isPrintSessionInitialized() const
virtual void drawRects(const QRectF *r, int num)
Draws the first rectCount rectangles in the buffer rects.
The QPrintDialog class provides a dialog for specifying the printer&#39;s configuration.
Definition: qprintdialog.h:81
The QPageSetupDialog class provides a configuration dialog for the page-related options on a printer...
void NSPrintInfo
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition: qglobal.h:89
The QRectF class defines a rectangle in the plane using floating point precision. ...
Definition: qrect.h:511
The QPrintEngine class defines an interface for how QPrinter interacts with a given printing subsyste...
Definition: qprintengine.h:56
virtual QPaintEngine::Type type() const
Reimplement this function to return the paint engine Type.
QVariant property(PrintEnginePropertyKey key) const
Returns the print engine&#39;s property specified by key.
The QPrinter class is a paint device that paints on a printer.
Definition: qprinter.h:66
The QImage class provides a hardware-independent image representation that allows direct access to th...
Definition: qimage.h:87
virtual void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s)
Reimplement this function to draw the pixmap in the given rect, starting at the given p...
virtual void drawLines(const QLineF *lines, int lineCount)
The default implementation splits the list of lines in lines into lineCount separate calls to drawPat...
void * HANDLE
Definition: qnamespace.h:1671
QPrinter::PrinterMode mode
virtual void drawPath(const QPainterPath &)
The default implementation ignores the path and does nothing.
virtual void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr, Qt::ImageConversionFlags flags)
Reimplement this function to draw the part of the image specified by the sr rectangle in the given re...
The QPaintEngine class provides an abstract definition of how QPainter draws to a given device on a g...
Definition: qpaintengine.h:90
QPrinter::PrinterState state
virtual void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr)
Reimplement this function to draw the part of the pm specified by the sr rectangle in the given r...
bool end()
Reimplement this function to finish painting on the current paint device.
#define Q_DECLARE_PUBLIC(Class)
Definition: qglobal.h:2477
Qt::HANDLE handle() const
PaperSize
This enum type specifies what paper size QPrinter should use.
Definition: qprinter.h:91
int key
QMacPrintEngine(QPrinter::PrinterMode mode)
int metric(QPaintDevice::PaintDeviceMetric) const
Returns the metric for the given id.
The QPixmap class is an off-screen image representation that can be used as a paint device...
Definition: qpixmap.h:71
The QPaintEngineState class provides information about the active paint engine&#39;s current state...
Definition: qpaintengine.h:289
bool abort()
Instructs the print engine to abort the printing process.
#define Q_DECLARE_PRIVATE(Class)
Definition: qglobal.h:2467
The QTextItem class provides all the information required to draw text in a custom paint engine...
Definition: qpaintengine.h:68
QPrinter::Orientation orient
bool newPage()
Instructs the print engine to start a new page.
virtual void drawEllipse(const QRectF &r)
Reimplement this function to draw the largest ellipse that can be contained within rectangle rect...
virtual void drawTextItem(const QPointF &p, const QTextItem &ti)
This function draws the text item textItem at position p.
PrintEnginePropertyKey
This enum is used to communicate properties between the print engine and QPrinter.
Definition: qprintengine.h:60