X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/52479aefae169d5c85cd0e07d159db0b8dd0a965..f08b7bec7f042cc8df4be88504f50961dae36697:/include/wx/mac/classic/dc.h diff --git a/include/wx/mac/classic/dc.h b/include/wx/mac/classic/dc.h index 5fc2601e55..5faf2add09 100644 --- a/include/wx/mac/classic/dc.h +++ b/include/wx/mac/classic/dc.h @@ -12,10 +12,6 @@ #ifndef _WX_DC_H_ #define _WX_DC_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "dc.h" -#endif - #include "wx/pen.h" #include "wx/brush.h" #include "wx/icon.h" @@ -41,8 +37,6 @@ // global variables //----------------------------------------------------------------------------- -extern int wxPageNumber; - class wxMacPortStateHelper ; //----------------------------------------------------------------------------- // wxDC @@ -56,17 +50,17 @@ class WXDLLEXPORT wxDC: public wxDCBase public: wxDC(); - ~wxDC(); - + virtual ~wxDC(); + // implement base class pure virtuals // ---------------------------------- virtual void Clear(); - virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return TRUE; } + virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return true; } virtual void EndDoc(void) {}; - + virtual void StartPage(void) {}; virtual void EndPage(void) {}; @@ -105,85 +99,51 @@ class WXDLLEXPORT wxDC: public wxDCBase virtual void SetTextForeground(const wxColour& colour) ; virtual void SetTextBackground(const wxColour& colour) ; - void ComputeScaleAndOrigin(void); + virtual void ComputeScaleAndOrigin(); + public: - - + wxCoord XDEV2LOG(wxCoord x) const { - long new_x = x - m_deviceOriginX ; - if (new_x > 0) - return (wxCoord)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX; - else - return (wxCoord)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX; + return wxRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX; } wxCoord XDEV2LOGREL(wxCoord x) const - { - if (x > 0) - return (wxCoord)((double)(x) / m_scaleX + 0.5); - else - return (wxCoord)((double)(x) / m_scaleX - 0.5); + { + return wxRound((double)(x) / m_scaleX); } wxCoord YDEV2LOG(wxCoord y) const { - long new_y = y - m_deviceOriginY ; - if (new_y > 0) - return (wxCoord)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY; - else - return (wxCoord)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY; + return wxRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY; } wxCoord YDEV2LOGREL(wxCoord y) const - { - if (y > 0) - return (wxCoord)((double)(y) / m_scaleY + 0.5); - else - return (wxCoord)((double)(y) / m_scaleY - 0.5); + { + return wxRound((double)(y) / m_scaleY); } wxCoord XLOG2DEV(wxCoord x) const - { - long new_x = x - m_logicalOriginX; - if (new_x > 0) - return (wxCoord)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX ; - else - return (wxCoord)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX ; + { + return wxRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX; } wxCoord XLOG2DEVREL(wxCoord x) const - { - if (x > 0) - return (wxCoord)((double)(x) * m_scaleX + 0.5); - else - return (wxCoord)((double)(x) * m_scaleX - 0.5); + { + return wxRound((double)(x) * m_scaleX); } wxCoord YLOG2DEV(wxCoord y) const { - long new_y = y - m_logicalOriginY ; - if (new_y > 0) - return (wxCoord)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY ; - else - return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY ; + return wxRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY; } wxCoord YLOG2DEVREL(wxCoord y) const - { - if (y > 0) - return (wxCoord)((double)(y) * m_scaleY + 0.5); - else - return (wxCoord)((double)(y) * m_scaleY - 0.5); + { + return wxRound((double)(y) * m_scaleY); } + wxCoord XLOG2DEVMAC(wxCoord x) const - { - long new_x = x - m_logicalOriginX; - if (new_x > 0) - return (wxCoord)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX + m_macLocalOrigin.x ; - else - return (wxCoord)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX + m_macLocalOrigin.x ; + { + return wxRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX + m_macLocalOrigin.x; } + wxCoord YLOG2DEVMAC(wxCoord y) const { - long new_y = y - m_logicalOriginY ; - if (new_y > 0) - return (wxCoord)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY + m_macLocalOrigin.y ; - else - return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY + m_macLocalOrigin.y ; + return wxRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY + m_macLocalOrigin.y; } WXHRGN MacGetCurrentClipRgn() { return m_macCurrentClipRgn ; } @@ -202,7 +162,7 @@ protected: virtual void DoDrawArc(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, wxCoord xc, wxCoord yc); - + virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, double sa, double ea); @@ -216,7 +176,7 @@ protected: virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y); virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, - bool useMask = FALSE); + bool useMask = false); virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y); virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y, @@ -224,18 +184,13 @@ protected: virtual bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, wxDC *source, wxCoord xsrc, wxCoord ysrc, - int rop = wxCOPY, bool useMask = FALSE, wxCoord xsrcMask = -1, wxCoord ysrcMask = -1); + int rop = wxCOPY, bool useMask = false, wxCoord xsrcMask = -1, wxCoord ysrcMask = -1); // this is gnarly - we can't even call this function DoSetClippingRegion() // because of virtual function hiding virtual void DoSetClippingRegionAsRegion(const wxRegion& region); virtual void DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height); - virtual void DoGetClippingRegion(wxCoord *x, wxCoord *y, - wxCoord *width, wxCoord *height) - { - GetClippingBox(x, y, width, height); - } virtual void DoGetSizeMM(int* width, int* height) const; @@ -248,23 +203,23 @@ protected: protected: //begin wxmac // Variables used for scaling - double m_mm_to_pix_x,m_mm_to_pix_y; + double m_mm_to_pix_x,m_mm_to_pix_y; // not yet used - bool m_needComputeScaleX,m_needComputeScaleY; + bool m_needComputeScaleX,m_needComputeScaleY; // If un-scrolled is non-zero or d.o. changes with scrolling. // Set using SetInternalDeviceOrigin(). long m_internalDeviceOriginX,m_internalDeviceOriginY; // To be set by external classes such as wxScrolledWindow // using SetDeviceOrigin() long m_externalDeviceOriginX,m_externalDeviceOriginY; - + // Begin implementation for Mac public: - + WXHDC m_macPort ; WXHBITMAP m_macMask ; - // in order to preserve the const inheritance of the virtual functions, we have to + // in order to preserve the const inheritance of the virtual functions, we have to // use mutable variables starting from CWPro 5 void MacInstallFont() const ;