10 #ifndef QWT_LAYOUT_METRICS_H
11 #define QWT_LAYOUT_METRICS_H
15 #include "qwt_polygon.h"
16 #include "qwt_global.h"
21 #if QT_VERSION < 0x040000
48 bool isIdentity()
const;
50 void setMetrics(
const QPaintDevice *layoutMetrics,
51 const QPaintDevice *deviceMetrics);
53 int layoutToDeviceX(
int x)
const;
54 int deviceToLayoutX(
int x)
const;
55 int screenToLayoutX(
int x)
const;
56 int layoutToScreenX(
int x)
const;
58 int layoutToDeviceY(
int y)
const;
59 int deviceToLayoutY(
int y)
const;
60 int screenToLayoutY(
int y)
const;
61 int layoutToScreenY(
int y)
const;
63 QPoint layoutToDevice(
const QPoint &,
const QPainter * = NULL)
const;
64 QPoint deviceToLayout(
const QPoint &,
const QPainter * = NULL)
const;
65 QPoint screenToLayout(
const QPoint &)
const;
66 QPoint layoutToScreen(
const QPoint &point)
const;
69 QSize layoutToDevice(
const QSize &)
const;
70 QSize deviceToLayout(
const QSize &)
const;
71 QSize screenToLayout(
const QSize &)
const;
72 QSize layoutToScreen(
const QSize &)
const;
74 QRect layoutToDevice(
const QRect &,
const QPainter * = NULL)
const;
75 QRect deviceToLayout(
const QRect &,
const QPainter * = NULL)
const;
76 QRect screenToLayout(
const QRect &)
const;
77 QRect layoutToScreen(
const QRect &)
const;
79 QwtPolygon layoutToDevice(
const QwtPolygon &,
80 const QPainter * = NULL)
const;
81 QwtPolygon deviceToLayout(
const QwtPolygon &,
82 const QPainter * = NULL)
const;
84 #if QT_VERSION < 0x040000
85 static QwtPolygon translate(
const QWMatrix &,
const QwtPolygon &);
86 static QRect translate(
const QWMatrix &,
const QRect &);
88 static QwtPolygon translate(
const QMatrix &,
const QwtPolygon &);
89 static QRect translate(
const QMatrix &,
const QRect &);
93 double d_screenToLayoutX;
94 double d_screenToLayoutY;
96 double d_deviceToLayoutX;
97 double d_deviceToLayoutY;
100 inline bool QwtMetricsMap::isIdentity()
const
102 return d_deviceToLayoutX == 1.0 && d_deviceToLayoutY == 1.0;
105 inline int QwtMetricsMap::layoutToDeviceX(
int x)
const
107 return qRound(x / d_deviceToLayoutX);
110 inline int QwtMetricsMap::deviceToLayoutX(
int x)
const
112 return qRound(x * d_deviceToLayoutX);
115 inline int QwtMetricsMap::screenToLayoutX(
int x)
const
117 return qRound(x * d_screenToLayoutX);
120 inline int QwtMetricsMap::layoutToScreenX(
int x)
const
122 return qRound(x / d_screenToLayoutX);
125 inline int QwtMetricsMap::layoutToDeviceY(
int y)
const
127 return qRound(y / d_deviceToLayoutY);
130 inline int QwtMetricsMap::deviceToLayoutY(
int y)
const
132 return qRound(y * d_deviceToLayoutY);
135 inline int QwtMetricsMap::screenToLayoutY(
int y)
const
137 return qRound(y * d_screenToLayoutY);
140 inline int QwtMetricsMap::layoutToScreenY(
int y)
const
142 return qRound(y / d_screenToLayoutY);
145 inline QSize QwtMetricsMap::layoutToDevice(
const QSize &size)
const
147 return QSize(layoutToDeviceX(size.width()),
148 layoutToDeviceY(size.height()));
151 inline QSize QwtMetricsMap::deviceToLayout(
const QSize &size)
const
153 return QSize(deviceToLayoutX(size.width()),
154 deviceToLayoutY(size.height()));
157 inline QSize QwtMetricsMap::screenToLayout(
const QSize &size)
const
159 return QSize(screenToLayoutX(size.width()),
160 screenToLayoutY(size.height()));
163 inline QSize QwtMetricsMap::layoutToScreen(
const QSize &size)
const
165 return QSize(layoutToScreenX(size.width()),
166 layoutToScreenY(size.height()));