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()));