]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed bug in PS clipping (non-virtual SetClippingRegion was overloaded)
authorVáclav Slavík <vslavik@fastmail.fm>
Sat, 16 Oct 1999 15:37:35 +0000 (15:37 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sat, 16 Oct 1999 15:37:35 +0000 (15:37 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/generic/dcpsg.h
src/generic/dcpsg.cpp

index fba5f2cb57d1cc3b14ab8c9712a2a9fc63e9c4a3..b12584fd2d1d91911980e6009318c868a1d6eb7a 100644 (file)
@@ -94,8 +94,7 @@ public:
   void SetLogicalFunction( int function );
   void SetBackground( const wxBrush& brush );
 
-  void SetClippingRegion(long x, long y, long width, long height);
-  void SetClippingRegion( const wxRegion &region );
+  void DoSetClippingRegion(long x, long y, long width, long height);
   void DestroyClippingRegion();
 
   void DoSetClippingRegionAsRegion( const wxRegion &WXUNUSED(clip) ) {}
index a02303a67076a76bd164c3ad0b45ce076764f152..6770319ffda123d33f4f6a8bb0cd49b3b0697839 100644 (file)
@@ -387,13 +387,13 @@ bool wxPostScriptDC::PrinterDialog(wxWindow *parent)
     return m_ok;
 }
 
-void wxPostScriptDC::SetClippingRegion (long x, long y, long w, long h)
+void wxPostScriptDC::DoSetClippingRegion (long x, long y, long w, long h)
 {
     wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
 
-    if (m_clipping) return;
+    if (m_clipping) DestroyClippingRegion();
 
-    wxDC::SetClippingRegion( x, y, w, h );
+    wxDC::DoSetClippingRegion(x, y, w, h);
 
     m_clipping = TRUE;
     fprintf( m_pstream, 
@@ -409,22 +409,18 @@ void wxPostScriptDC::SetClippingRegion (long x, long y, long w, long h)
            XLOG2DEV(x),   YLOG2DEV(y+h) );
 }
 
-void wxPostScriptDC::SetClippingRegion( const wxRegion &WXUNUSED(region) )
-{
-    wxFAIL_MSG( wxT("wxPostScriptDC::SetClippingRegion not implemented.") );
-}
 
 void wxPostScriptDC::DestroyClippingRegion()
 {
     wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
 
-    wxDC::DestroyClippingRegion();
-
     if (m_clipping)
     {
         m_clipping = FALSE;
        fprintf( m_pstream, "grestore\n" );
     }
+    
+    wxDC::DestroyClippingRegion();
 }
 
 void wxPostScriptDC::Clear()