]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/dc.cpp
??
[wxWidgets.git] / src / mac / dc.cpp
index e021274157dd889050aae4946cd8a80b0fd1a2a3..0043d823fb3b8a3669e995e309da2d8c7006225a 100644 (file)
@@ -15,9 +15,7 @@
 
 #include "wx/dc.h"
 
 
 #include "wx/dc.h"
 
-#if !USE_SHARED_LIBRARY
 IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject)
 IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject)
-#endif
 
 //-----------------------------------------------------------------------------
 // constants
 
 //-----------------------------------------------------------------------------
 // constants
@@ -277,7 +275,7 @@ void wxDC::DrawSpline( int n, wxPoint points[] )
   DrawSpline( &list );
 };
 
   DrawSpline( &list );
 };
 
-void wxDC::SetClippingRegion( long x, long y, long width, long height )
+void wxDC::SetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
 {
   MacVerifySetup() ;
        if( m_clipping )
 {
   MacVerifySetup() ;
        if( m_clipping )
@@ -300,7 +298,7 @@ void wxDC::SetClippingRegion( long x, long y, long width, long height )
        long x1 = XLOG2DEV(m_clipX1);
        long y1 = YLOG2DEV(m_clipY1);
        long x2 = XLOG2DEV(m_clipX2);
        long x1 = XLOG2DEV(m_clipX1);
        long y1 = YLOG2DEV(m_clipY1);
        long x2 = XLOG2DEV(m_clipX2);
-       long y2 = XLOG2DEV(m_clipY2);
+       long y2 = YLOG2DEV(m_clipY2);
        
        Rect clip = { y1 , x1 , y2 , x2 } ;
        
        
        Rect clip = { y1 , x1 , y2 , x2 } ;
        
@@ -308,6 +306,11 @@ void wxDC::SetClippingRegion( long x, long y, long width, long height )
 
 };
 
 
 };
 
+void wxDC::SetClippingRegion(const wxRect& rect)
+{ 
+       SetClippingRegion(rect.x, rect.y, rect.width, rect.height); 
+}
+
 void wxDC::DestroyClippingRegion(void)
 {
   MacVerifySetup() ;
 void wxDC::DestroyClippingRegion(void)
 {
   MacVerifySetup() ;
@@ -316,6 +319,19 @@ void wxDC::DestroyClippingRegion(void)
        ::ClipRect(&m_macClipRect);
 };
 
        ::ClipRect(&m_macClipRect);
 };
 
+void wxDC::GetClippingBox( wxCoord *x, wxCoord *y, wxCoord *width, wxCoord *height ) const
+{
+  if (m_clipping)
+  {
+    if (x) *x = m_clipX1;
+    if (y) *y = m_clipY1;
+    if (width) *width = (m_clipX2 - m_clipX1);
+    if (height) *height = (m_clipY2 - m_clipY1);
+  }
+  else
+   *x = *y = *width = *height = 0;
+};
+
 void wxDC::GetClippingBox( long *x, long *y, long *width, long *height ) const
 {
   if (m_clipping)
 void wxDC::GetClippingBox( long *x, long *y, long *width, long *height ) const
 {
   if (m_clipping)
@@ -329,6 +345,14 @@ void wxDC::GetClippingBox( long *x, long *y, long *width, long *height ) const
    *x = *y = *width = *height = 0;
 };
 
    *x = *y = *width = *height = 0;
 };
 
+void wxDC::GetClippingBox(wxRect& rect) const
+{
+  // Necessary to use intermediate variables for 16-bit compilation
+  wxCoord x, y, w, h;
+  GetClippingBox(&x, &y, &w, &h);
+  rect.x = x; rect.y = y; rect.width = w; rect.height = h;
+}
+    
 void wxDC::GetSize( int* width, int* height ) const
 {
   *width = m_maxX-m_minX;
 void wxDC::GetSize( int* width, int* height ) const
 {
   *width = m_maxX-m_minX;
@@ -1245,7 +1269,7 @@ void  wxDC::GetTextExtent( const wxString &string, long *width, long *height,
        }
 }
 
        }
 }
 
-long   wxDC::GetCharWidth(void)
+wxCoord   wxDC::GetCharWidth(void) const
 {
   if (!Ok()) 
        return 1;
 {
   if (!Ok()) 
        return 1;
@@ -1260,7 +1284,7 @@ long   wxDC::GetCharWidth(void)
        return (fi.descent + fi.ascent) / 2 ;
 }
 
        return (fi.descent + fi.ascent) / 2 ;
 }
 
-long   wxDC::GetCharHeight(void)
+wxCoord   wxDC::GetCharHeight(void) const
 {
   if (!Ok()) 
        return 1;
 {
   if (!Ok()) 
        return 1;