- public:
-
- void CalcBoundingBox( long x, long y );
- void ComputeScaleAndOrigin(void);
-
- long XDEV2LOG(long x) const
- {
- long new_x = x - m_deviceOriginX;
- if (new_x > 0)
- return (long)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
- else
- return (long)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
- }
- long XDEV2LOGREL(long x) const
- {
- if (x > 0)
- return (long)((double)(x) / m_scaleX + 0.5);
- else
- return (long)((double)(x) / m_scaleX - 0.5);
- }
- long YDEV2LOG(long y) const
- {
- long new_y = y - m_deviceOriginY;
- if (new_y > 0)
- return (long)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
- else
- return (long)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
- }
- long YDEV2LOGREL(long y) const
- {
- if (y > 0)
- return (long)((double)(y) / m_scaleY + 0.5);
- else
- return (long)((double)(y) / m_scaleY - 0.5);
- }
- long XLOG2DEV(long x) const
- {
- long new_x = x - m_logicalOriginX;
- if (new_x > 0)
- return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
- else
- return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
- }
- // Without device translation, for backing pixmap purposes
- long XLOG2DEV_2(long x) const
- {
- long new_x = x - m_logicalOriginX;
- if (new_x > 0)
- return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX;
- else
- return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX;
- }
- long XLOG2DEVREL(long x) const
- {
- if (x > 0)
- return (long)((double)(x) * m_scaleX + 0.5);
- else
- return (long)((double)(x) * m_scaleX - 0.5);
- }
- long YLOG2DEV(long y) const
- {
- long new_y = y - m_logicalOriginY;
- if (new_y > 0)
- return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
- else
- return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
- }
- // Without device translation, for backing pixmap purposes
- long YLOG2DEV_2(long y) const
- {
- long new_y = y - m_logicalOriginY;
- if (new_y > 0)
- return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY;
- else
- return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY;
- }
- long YLOG2DEVREL(long y) const
- {
- if (y > 0)
- return (long)((double)(y) * m_scaleY + 0.5);
- else
- return (long)((double)(y) * m_scaleY - 0.5);
- }
-
- public:
-
- bool m_ok;
- bool m_colour;
-
- // not sure, what these mean
- bool m_clipping; // Is clipping on right now ?
- bool m_optimize; // wxMSW only ?
- bool m_isInteractive; // For wxPostScriptDC
- wxString m_filename; // Ditto
-
- wxPen m_pen;
- wxBrush m_brush;
- wxBrush m_backgroundBrush;
- wxColour m_textForegroundColour;
- wxColour m_textBackgroundColour;
- wxFont m_font;
-
- int m_logicalFunction;
- int m_backgroundMode;
- int m_textAlignment; // gone in wxWin 2.0 ?
-
- int m_mappingMode;
-
- // not sure what for, but what is a mm on a screen you don't know the size of?
- double m_mm_to_pix_x,m_mm_to_pix_y;
-
- long m_internalDeviceOriginX,m_internalDeviceOriginY; // If un-scrolled is non-zero or
- // d.o. changes with scrolling.
- // Set using SetInternalDeviceOrigin().
-
- long m_externalDeviceOriginX,m_externalDeviceOriginY; // To be set by external classes
- // such as wxScrolledWindow
- // using SetDeviceOrigin()
-
- long m_deviceOriginX,m_deviceOriginY; // Sum of the two above.
-
- long m_logicalOriginX,m_logicalOriginY; // User defined.