]> git.saurik.com Git - wxWidgets.git/commitdiff
changed port handling
authorStefan Csomor <csomor@advancedconcepts.ch>
Tue, 8 May 2001 16:08:09 +0000 (16:08 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Tue, 8 May 2001 16:08:09 +0000 (16:08 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

27 files changed:
include/wx/mac/dc.h
src/mac/aga.cpp
src/mac/carbon/aga.cpp
src/mac/carbon/control.cpp
src/mac/carbon/dc.cpp
src/mac/carbon/dcclient.cpp
src/mac/carbon/dcmemory.cpp
src/mac/carbon/dcprint.cpp
src/mac/carbon/dcscreen.cpp
src/mac/carbon/metafile.cpp
src/mac/carbon/textctrl.cpp
src/mac/carbon/toolbar.cpp
src/mac/carbon/tooltip.cpp
src/mac/carbon/uma.cpp
src/mac/carbon/window.cpp
src/mac/control.cpp
src/mac/dc.cpp
src/mac/dcclient.cpp
src/mac/dcmemory.cpp
src/mac/dcprint.cpp
src/mac/dcscreen.cpp
src/mac/metafile.cpp
src/mac/textctrl.cpp
src/mac/toolbar.cpp
src/mac/tooltip.cpp
src/mac/uma.cpp
src/mac/window.cpp

index e59e0164b9736159df27c2f7593204a22c947884..9bdbaaf9f170c5dc799e1b6cea5d0df571203f4f 100644 (file)
@@ -48,6 +48,15 @@ extern int wxPageNumber;
 // wxDC
 //-----------------------------------------------------------------------------
 
+class WXDLLEXPORT wxMacPortSetter
+{
+public :
+       wxMacPortSetter( wxDC* dc ) ;
+       ~wxMacPortSetter() ;
+private :
+       AGAPortHelper m_ph ;
+} ;
+
 class WXDLLEXPORT wxDC: public wxDCBase
 {
   DECLARE_DYNAMIC_CLASS(wxDC)
@@ -255,15 +264,9 @@ protected:
        mutable bool    m_macPenInstalled ;
        mutable bool    m_macBrushInstalled ;
        
-       mutable long    m_macPortId ;
-       GrafPtr                         m_macOrigPort ;
        Rect                                    m_macClipRect ;
        Point                                   m_macLocalOrigin ;
-       mutable AGAPortHelper   m_macPortHelper ;
-       void                                    MacSetupPort() const ;
-       void                                    MacVerifySetup() const { if ( m_macPortId != m_macCurrentPortId ) MacSetupPort() ; } 
-       static void                             MacInvalidateSetup() { m_macCurrentPortId++ ; }
-       static long m_macCurrentPortId ;
+       void                                    MacSetupPort( AGAPortHelper* ph ) const ;
 };
 
 #endif
index 1f3310aca5b289cd5c03ea8298da40ef2b2ee830..572caed82a5c41215c718e61a06dd9146efb8563 100644 (file)
@@ -2620,7 +2620,6 @@ AGAPortHelper::~AGAPortHelper()
                TextMode( mode );
                SetOrigin( 0 , 0 ) ;
                SetPort( port ) ;
-               wxDC::MacInvalidateSetup() ;
        }
 }
 
index 1f3310aca5b289cd5c03ea8298da40ef2b2ee830..572caed82a5c41215c718e61a06dd9146efb8563 100644 (file)
@@ -2620,7 +2620,6 @@ AGAPortHelper::~AGAPortHelper()
                TextMode( mode );
                SetOrigin( 0 , 0 ) ;
                SetPort( port ) ;
-               wxDC::MacInvalidateSetup() ;
        }
 }
 
index eb83a83ee005c16dfdead7029b36cb1609539e32..9f495d36efbd710171eb35f448c5edb7add4c4f2 100644 (file)
@@ -646,7 +646,6 @@ void wxControl::MacRedrawControl()
                                
                                UMADrawControl( m_macControl ) ;
                                UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ;
-                               wxDC::MacInvalidateSetup() ;
                        }
                }
        }
@@ -688,7 +687,6 @@ void wxControl::OnPaint(wxPaintEvent& event)
                                
                                UMADrawControl( m_macControl ) ;
                                UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ;
-                               wxDC::MacInvalidateSetup() ;
                        }
                }
        }
index fbeccc565b2322528f35db7098a1fe6723913363..1a21092f9495300fe10a3b4420a19e566ef65911 100644 (file)
@@ -36,8 +36,6 @@ IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject)
 #define mm2pt                  2.83464566929
 #define pt2mm                  0.352777777778
 
-long wxDC::m_macCurrentPortId = 1 ;
-
 //-----------------------------------------------------------------------------
 // wxDC
 //-----------------------------------------------------------------------------
@@ -76,47 +74,36 @@ wxDC::wxDC()
        m_macBrushInstalled = false ;
        m_macPenInstalled = false ;
        
-       m_macPortId = 0 ;
        m_macLocalOrigin.h = m_macLocalOrigin.v = 0 ;
        m_macClipRect.left = -32000 ;
        m_macClipRect.top = -32000 ;
        m_macClipRect.right = 32000 ;
        m_macClipRect.bottom = 32000 ;
-       ::GetPort( &m_macOrigPort ) ;
 
     m_pen = *wxBLACK_PEN;
     m_font = *wxNORMAL_FONT;
     m_brush = *wxWHITE_BRUSH;
 };
 
+wxMacPortSetter::wxMacPortSetter( wxDC* dc ) :
+       m_ph( dc->m_macPort ) 
+{
+       wxASSERT( dc->Ok() ) ;
+       
+       dc->MacSetupPort(&m_ph) ;
+}
+
+wxMacPortSetter::~wxMacPortSetter() 
+{
+}
+
 wxDC::~wxDC(void)
 {
-       if ( !m_macPortHelper.IsCleared() )
-       {
-       GrafPtr port ;
-       GetPort( &port ) ;
-       SetPort( m_macPortHelper.GetCurrentPort() ) ;
-       SetOrigin( 0 , 0 ) ;
-       SetPort( port ) ;
-       }
-       /*
-       if ( m_macPort )
-       {
-               ::SetPort( m_macPort ) ;
-               ::SetOrigin( 0 , 0 ) ;
-               ::ClipRect( &m_macPort->portRect ) ;
-               ::PenNormal() ;
-               ::SetPort( m_macOrigPort ) ;
-       }
-       */
-       ++m_macCurrentPortId ;
 };
 
-void wxDC::MacSetupPort() const
+void wxDC::MacSetupPort(AGAPortHelper* help) const
 {
-       AGAPortHelper* help = (AGAPortHelper*) &m_macPortHelper ;
        help->Setup( m_macPort ) ;
-       m_macPortId = ++m_macCurrentPortId ;
        ::SetOrigin(-m_macLocalOrigin.h, -m_macLocalOrigin.v);
        ::ClipRect(&m_macClipRect);
 
@@ -131,7 +118,7 @@ void wxDC::DoDrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, bool useMask
        
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   long xx1 = XLOG2DEV(x); 
   long yy1 = YLOG2DEV(y);
@@ -200,7 +187,7 @@ void wxDC::DoDrawIcon( const wxIcon &icon, wxCoord x, wxCoord y )
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   long xx1 = XLOG2DEV(x); 
   long yy1 = YLOG2DEV(y);
@@ -219,7 +206,7 @@ void wxDC::DoDrawIcon( const wxIcon &icon, wxCoord x, wxCoord y )
 
 void wxDC::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
 {
-       MacVerifySetup() ;
+       wxMacPortSetter helper(this) ;
        if( m_clipping )
        {
                m_clipX1 = wxMax( m_clipX1 , x ) ;
@@ -252,7 +239,7 @@ void wxDC::DoSetClippingRegionAsRegion( const wxRegion &region  )
 {
     wxCHECK_RET( Ok(), wxT("invalid window dc") );
 
-       MacVerifySetup() ;
+       wxMacPortSetter helper(this) ;
     if (region.Empty())
     {
         DestroyClippingRegion();
@@ -266,7 +253,7 @@ void wxDC::DoSetClippingRegionAsRegion( const wxRegion &region  )
 
 void wxDC::DestroyClippingRegion(void)
 {
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   m_clipping = FALSE;
 //     Rect clip = { -32000 , -32000 , 32000 , 32000 } ;
        ::ClipRect(&m_macClipRect);
@@ -436,7 +423,7 @@ void  wxDC::SetFont( const wxFont &font )
   if (!Ok()) 
        return;
        
-  MacVerifySetup() ;
+//  wxMacPortSetter helper(this) ;
   
   m_font = font;
   m_macFontInstalled = false ;
@@ -447,7 +434,7 @@ void  wxDC::SetPen( const wxPen &pen )
   if (!Ok()  ) 
        return;
 
-  MacVerifySetup() ;
+//  wxMacPortSetter helper(this) ;
 
        if ( m_pen == pen )
                return ;
@@ -464,7 +451,7 @@ void  wxDC::SetBrush( const wxBrush &brush )
 {
   if (!Ok() ) 
        return;
-  MacVerifySetup() ;
+//  wxMacPortSetter helper(this) ;
   
   if (m_brush == brush) 
        return;
@@ -477,7 +464,7 @@ void  wxDC::SetBackground( const wxBrush &brush )
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+//  wxMacPortSetter helper(this) ;
   
   if (m_backgroundBrush == brush) 
        return;
@@ -515,7 +502,7 @@ void  wxDC::DoDrawLine( wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2 )
   if (!Ok()) 
        return;
        
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   if (m_pen.GetStyle() != wxTRANSPARENT)
   {
@@ -551,7 +538,7 @@ void  wxDC::DoDrawPoint( wxCoord x, wxCoord y )
   if (!Ok()) 
        return;
        
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   if (m_pen.GetStyle() != wxTRANSPARENT) 
   {
@@ -569,7 +556,7 @@ void  wxDC::DoDrawLines(int n, wxPoint points[],
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   if (m_pen.GetStyle() == wxTRANSPARENT) 
        return;
@@ -596,7 +583,7 @@ void  wxDC::DoDrawPolygon(int n, wxPoint points[],
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   PolyHandle polygon = OpenPoly() ;
   long x1, x2 , y1 , y2 ;
@@ -630,7 +617,7 @@ void  wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
        
        long xx = XLOG2DEV(x);
        long yy = YLOG2DEV(y);
@@ -675,7 +662,7 @@ void  wxDC::DoDrawRoundedRectangle(wxCoord x, wxCoord y,
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
        
   if (radius < 0.0) 
        radius = - radius * ((width < height) ? width : height);
@@ -721,7 +708,7 @@ void  wxDC::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
 
        long xx = XLOG2DEV(x);
        long yy = YLOG2DEV(y);
@@ -772,7 +759,7 @@ bool  wxDC::DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
                         wxDC *source, wxCoord xsrc, wxCoord ysrc, int logical_func , bool useMask )
 {
   if (!Ok()) return FALSE;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
 
        CGrafPtr                        sourcePort = (CGrafPtr) source->m_macPort ;
        PixMapHandle    bmappixels =  GetGWorldPixMap( sourcePort ) ; 
@@ -843,7 +830,7 @@ void  wxDC::DoDrawText(const wxString& strtext, wxCoord x, wxCoord y)
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
 
        long xx = XLOG2DEV(x);
        long yy = YLOG2DEV(y);
@@ -923,7 +910,7 @@ void  wxDC::DoGetTextExtent( const wxString &string, wxCoord *width, wxCoord *he
   if (!Ok()) 
        return;
  
-   MacVerifySetup() ;
+   wxMacPortSetter helper(this) ;
 
        wxFont formerFont = m_font ; 
        
@@ -1005,7 +992,7 @@ wxCoord   wxDC::GetCharWidth(void) const
   if (!Ok()) 
        return 1;
  
-   MacVerifySetup() ;
+   wxMacPortSetter helper(this) ;
 
        MacInstallFont() ;
 
@@ -1020,7 +1007,7 @@ wxCoord   wxDC::GetCharHeight(void) const
   if (!Ok()) 
        return 1;
  
-   MacVerifySetup() ;
+   wxMacPortSetter helper(this) ;
 
        MacInstallFont() ;
 
@@ -1034,7 +1021,7 @@ void  wxDC::Clear(void)
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
        Rect rect = { -32767 , -32767 , 32767 , 32767 } ;
        
        if (m_backgroundBrush.GetStyle() != wxTRANSPARENT) 
@@ -1048,10 +1035,9 @@ void wxDC::MacInstallFont() const
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
 
-       if ( m_macFontInstalled )
-               return ;
+//     if ( m_macFontInstalled )
+//             return ;
        Pattern blackColor ;
        
        wxFontRefData * font = (wxFontRefData*) m_font.GetRefData() ;
@@ -1170,12 +1156,11 @@ void wxDC::MacInstallPen() const
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
 
        Pattern  blackColor;
 
-       if ( m_macPenInstalled )
-               return ;
+//     if ( m_macPenInstalled )
+//             return ;
 
        RGBColor forecolor = m_pen.GetColour().GetPixel();
        RGBColor backcolor = m_backgroundBrush.GetColour().GetPixel();
@@ -1257,10 +1242,10 @@ void wxDC::MacInstallBrush() const
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+
        Pattern  blackColor, whiteColor ;
-       if ( m_macBrushInstalled )
-               return ;
+//     if ( m_macBrushInstalled )
+//             return ;
 
        // foreground
 
index ef0d666568f3f42306a092aa8b75402e79a73cf3..19d325a772483446f72f586ba7b61d7b0fd521f8 100644 (file)
@@ -59,7 +59,6 @@ wxWindowDC::wxWindowDC(wxWindow *the_canvas)
        m_maxX = size.x  ;
        m_maxY = size.y ; 
 
-       MacSetupPort() ;
        m_ok = TRUE ;
   SetBackground(wxBrush(the_canvas->GetBackgroundColour(), wxSOLID));
 }
@@ -83,7 +82,6 @@ wxClientDC::wxClientDC(wxWindow *window)
        
        window->MacGetPortClientParams(&m_macLocalOrigin, &m_macClipRect , &windowref , &rootwindow );
        m_macPort = UMAGetWindowPort( windowref ) ;
-       MacSetupPort() ;
        m_minY = m_minX =  0;
        wxSize size = window->GetSize() ;
        m_maxX = size.x  ;
@@ -113,7 +111,6 @@ wxPaintDC::wxPaintDC(wxWindow *window)
        window->MacGetPortClientParams(&m_macLocalOrigin, &m_macClipRect , &windowref , &rootwindow );
 
        m_macPort = UMAGetWindowPort( windowref ) ;
-       MacSetupPort() ;
        m_ok = TRUE ;
        wxCoord x , y ,w , h ;
        window->GetUpdateRegion().GetBox( x , y , w , h ) ;
index fba8a5891e24ba4f2a40227576a018d896a0534d..3f1d4c83fff5f2706b78ee3ebad63658b544423f 100644 (file)
@@ -68,7 +68,6 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap )
                        {
                                m_macMask = mask->GetMaskBitmap() ;
                        }
-                       MacSetupPort() ;
                        m_ok = TRUE ;
                        // SetBackground(wxBrush(*wxWHITE, wxSOLID));
                }
index 9b9fee2e9729ad05d3e13e7a838bc098d95effe6..1467c4970fb88afaf96f74bfc16e45c8e3e219de 100644 (file)
@@ -125,7 +125,6 @@ wxPrinterDC::~wxPrinterDC(void)
                ::UMAPrClose() ;
 //       ::SetPort( macPrintFormerPort ) ;
                ::SetPort( LMGetWMgrPort() ) ;
-               m_macPortHelper.Clear() ;
        }
 #else
        if ( m_ok ) 
index c47126248e7ab604fd8899f72bedb5a242004294..1b83a9348a20fc8191f079a6f540f02738af884d 100644 (file)
@@ -28,7 +28,6 @@ wxScreenDC::wxScreenDC()
 #else
        m_macPort = LMGetWMgrPort() ;
 #endif
-       MacSetupPort() ;
        m_ok = TRUE ;
        BitMap screenBits;
        GetQDGlobalsScreenBits( &screenBits );
index fc6c64b825e3a284dfa572c6b0c6d921cd4041f7..6a0a3a9eab2cd3685517be9737f27a1be7cdd03f 100644 (file)
@@ -115,23 +115,11 @@ bool wxMetaFile::Play(wxDC *dc)
        if (!dc->Ok() )
                return FALSE;
                
-       dc->MacVerifySetup() ;
-       
        {
+               wxMacPortSetter helper( dc ) ;
                PicHandle pict = GetHMETAFILE() ;
                DrawPicture( pict , &(**pict).picFrame ) ;
        }
-/*
-    if (!m_refData)
-        return FALSE;
-
-    dc->BeginDrawing();
-
-    if (dc->GetHDC() && M_METAFILEDATA->m_metafile)
-        PlayMetaFile((HDC) dc->GetHDC(), (HMETAFILE) M_METAFILEDATA->m_metafile);
-
-    dc->EndDrawing();
-*/
     return TRUE;
 }
 
index 0806570a55ad99d97b6c2fedc7f84a6ec413648a..9ff3b8163768cd92a6e51a692673fac401c94142 100644 (file)
@@ -194,7 +194,6 @@ void wxTextCtrl::SetValue(const wxString& st)
                        
                        UMADrawControl( m_macControl ) ;
                        UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ;
-                       wxDC::MacInvalidateSetup() ;
                }
        }
 }
@@ -283,7 +282,6 @@ void wxTextCtrl::Paste()
                                
                                UMADrawControl( m_macControl ) ;
                                UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ;
-                               wxDC::MacInvalidateSetup() ;
                        }
                }
        }
index 4dad035badfa562718defc8dc8daffc3901b15eb..0fa951bdf2be487bb25c82ca1fa69134cf0a7278 100644 (file)
@@ -550,7 +550,6 @@ void wxToolBar::OnPaint(wxPaintEvent& event)
                        }
                }
                UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ;
-               wxDC::MacInvalidateSetup() ;
        }
 }
 
index eb92ed996e03588510a1d2124dadba118b320a64..84e5da8d8aa3018433e44fc663b7ea46c3d4e8bc 100644 (file)
@@ -295,9 +295,7 @@ void wxMacToolTip::Draw()
                }
                                        
                ::DrawText( text , laststop , i - laststop ) ;
-               ::TextMode( srcOr ) ;
-               wxDC::MacInvalidateSetup() ;
-               
+               ::TextMode( srcOr ) ;           
        //      DrawText( m_label , 0 , m_label.Length() ) ;
        }
 }
@@ -331,7 +329,6 @@ void wxMacToolTip::Clear()
                DrawPicture(m_backpict, &m_rect);
                KillPicture(m_backpict);
                m_backpict = NULL ;
-               wxDC::MacInvalidateSetup() ;
        }
 }
 
index 13d4e27883df0d9a5d86c35ef7fa638130295eac..19a50536458b87a925c47b4ab50a6c7f15f320f8 100644 (file)
@@ -835,7 +835,6 @@ OSErr UMASetKeyboardFocus                           (WindowPtr                              inWindow,
        }
 #endif
        SetPort( port ) ;
-       wxDC::MacInvalidateSetup() ;
        return err ;
 }
 
@@ -1379,7 +1378,6 @@ void UMAHighlightAndActivateWindow( WindowRef inWindowRef , bool inActivate )
                                UMADeactivateControl( control ) ;
                }       
                SetPort( port ) ;
-               wxDC::MacInvalidateSetup() ;
        }
 }
 OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState ) 
index 7d4ce35592b19dd8b207b59ff5002e8097c89ac9..b3b459a0d38fd0a9a003d456bac4bed766077580 100644 (file)
@@ -2353,7 +2353,6 @@ wxMacDrawingHelper::~wxMacDrawingHelper()
                Rect portRect ;
                GetPortBounds( m_currentPort , &portRect ) ;
                ClipRect( &portRect ) ;
-               wxDC::MacInvalidateSetup() ;    
        }
                
        if ( m_formerPort != m_currentPort )
index eb83a83ee005c16dfdead7029b36cb1609539e32..9f495d36efbd710171eb35f448c5edb7add4c4f2 100644 (file)
@@ -646,7 +646,6 @@ void wxControl::MacRedrawControl()
                                
                                UMADrawControl( m_macControl ) ;
                                UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ;
-                               wxDC::MacInvalidateSetup() ;
                        }
                }
        }
@@ -688,7 +687,6 @@ void wxControl::OnPaint(wxPaintEvent& event)
                                
                                UMADrawControl( m_macControl ) ;
                                UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ;
-                               wxDC::MacInvalidateSetup() ;
                        }
                }
        }
index fbeccc565b2322528f35db7098a1fe6723913363..1a21092f9495300fe10a3b4420a19e566ef65911 100644 (file)
@@ -36,8 +36,6 @@ IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject)
 #define mm2pt                  2.83464566929
 #define pt2mm                  0.352777777778
 
-long wxDC::m_macCurrentPortId = 1 ;
-
 //-----------------------------------------------------------------------------
 // wxDC
 //-----------------------------------------------------------------------------
@@ -76,47 +74,36 @@ wxDC::wxDC()
        m_macBrushInstalled = false ;
        m_macPenInstalled = false ;
        
-       m_macPortId = 0 ;
        m_macLocalOrigin.h = m_macLocalOrigin.v = 0 ;
        m_macClipRect.left = -32000 ;
        m_macClipRect.top = -32000 ;
        m_macClipRect.right = 32000 ;
        m_macClipRect.bottom = 32000 ;
-       ::GetPort( &m_macOrigPort ) ;
 
     m_pen = *wxBLACK_PEN;
     m_font = *wxNORMAL_FONT;
     m_brush = *wxWHITE_BRUSH;
 };
 
+wxMacPortSetter::wxMacPortSetter( wxDC* dc ) :
+       m_ph( dc->m_macPort ) 
+{
+       wxASSERT( dc->Ok() ) ;
+       
+       dc->MacSetupPort(&m_ph) ;
+}
+
+wxMacPortSetter::~wxMacPortSetter() 
+{
+}
+
 wxDC::~wxDC(void)
 {
-       if ( !m_macPortHelper.IsCleared() )
-       {
-       GrafPtr port ;
-       GetPort( &port ) ;
-       SetPort( m_macPortHelper.GetCurrentPort() ) ;
-       SetOrigin( 0 , 0 ) ;
-       SetPort( port ) ;
-       }
-       /*
-       if ( m_macPort )
-       {
-               ::SetPort( m_macPort ) ;
-               ::SetOrigin( 0 , 0 ) ;
-               ::ClipRect( &m_macPort->portRect ) ;
-               ::PenNormal() ;
-               ::SetPort( m_macOrigPort ) ;
-       }
-       */
-       ++m_macCurrentPortId ;
 };
 
-void wxDC::MacSetupPort() const
+void wxDC::MacSetupPort(AGAPortHelper* help) const
 {
-       AGAPortHelper* help = (AGAPortHelper*) &m_macPortHelper ;
        help->Setup( m_macPort ) ;
-       m_macPortId = ++m_macCurrentPortId ;
        ::SetOrigin(-m_macLocalOrigin.h, -m_macLocalOrigin.v);
        ::ClipRect(&m_macClipRect);
 
@@ -131,7 +118,7 @@ void wxDC::DoDrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, bool useMask
        
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   long xx1 = XLOG2DEV(x); 
   long yy1 = YLOG2DEV(y);
@@ -200,7 +187,7 @@ void wxDC::DoDrawIcon( const wxIcon &icon, wxCoord x, wxCoord y )
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   long xx1 = XLOG2DEV(x); 
   long yy1 = YLOG2DEV(y);
@@ -219,7 +206,7 @@ void wxDC::DoDrawIcon( const wxIcon &icon, wxCoord x, wxCoord y )
 
 void wxDC::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
 {
-       MacVerifySetup() ;
+       wxMacPortSetter helper(this) ;
        if( m_clipping )
        {
                m_clipX1 = wxMax( m_clipX1 , x ) ;
@@ -252,7 +239,7 @@ void wxDC::DoSetClippingRegionAsRegion( const wxRegion &region  )
 {
     wxCHECK_RET( Ok(), wxT("invalid window dc") );
 
-       MacVerifySetup() ;
+       wxMacPortSetter helper(this) ;
     if (region.Empty())
     {
         DestroyClippingRegion();
@@ -266,7 +253,7 @@ void wxDC::DoSetClippingRegionAsRegion( const wxRegion &region  )
 
 void wxDC::DestroyClippingRegion(void)
 {
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   m_clipping = FALSE;
 //     Rect clip = { -32000 , -32000 , 32000 , 32000 } ;
        ::ClipRect(&m_macClipRect);
@@ -436,7 +423,7 @@ void  wxDC::SetFont( const wxFont &font )
   if (!Ok()) 
        return;
        
-  MacVerifySetup() ;
+//  wxMacPortSetter helper(this) ;
   
   m_font = font;
   m_macFontInstalled = false ;
@@ -447,7 +434,7 @@ void  wxDC::SetPen( const wxPen &pen )
   if (!Ok()  ) 
        return;
 
-  MacVerifySetup() ;
+//  wxMacPortSetter helper(this) ;
 
        if ( m_pen == pen )
                return ;
@@ -464,7 +451,7 @@ void  wxDC::SetBrush( const wxBrush &brush )
 {
   if (!Ok() ) 
        return;
-  MacVerifySetup() ;
+//  wxMacPortSetter helper(this) ;
   
   if (m_brush == brush) 
        return;
@@ -477,7 +464,7 @@ void  wxDC::SetBackground( const wxBrush &brush )
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+//  wxMacPortSetter helper(this) ;
   
   if (m_backgroundBrush == brush) 
        return;
@@ -515,7 +502,7 @@ void  wxDC::DoDrawLine( wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2 )
   if (!Ok()) 
        return;
        
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   if (m_pen.GetStyle() != wxTRANSPARENT)
   {
@@ -551,7 +538,7 @@ void  wxDC::DoDrawPoint( wxCoord x, wxCoord y )
   if (!Ok()) 
        return;
        
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   if (m_pen.GetStyle() != wxTRANSPARENT) 
   {
@@ -569,7 +556,7 @@ void  wxDC::DoDrawLines(int n, wxPoint points[],
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   if (m_pen.GetStyle() == wxTRANSPARENT) 
        return;
@@ -596,7 +583,7 @@ void  wxDC::DoDrawPolygon(int n, wxPoint points[],
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
   
   PolyHandle polygon = OpenPoly() ;
   long x1, x2 , y1 , y2 ;
@@ -630,7 +617,7 @@ void  wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
        
        long xx = XLOG2DEV(x);
        long yy = YLOG2DEV(y);
@@ -675,7 +662,7 @@ void  wxDC::DoDrawRoundedRectangle(wxCoord x, wxCoord y,
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
        
   if (radius < 0.0) 
        radius = - radius * ((width < height) ? width : height);
@@ -721,7 +708,7 @@ void  wxDC::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
 
        long xx = XLOG2DEV(x);
        long yy = YLOG2DEV(y);
@@ -772,7 +759,7 @@ bool  wxDC::DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
                         wxDC *source, wxCoord xsrc, wxCoord ysrc, int logical_func , bool useMask )
 {
   if (!Ok()) return FALSE;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
 
        CGrafPtr                        sourcePort = (CGrafPtr) source->m_macPort ;
        PixMapHandle    bmappixels =  GetGWorldPixMap( sourcePort ) ; 
@@ -843,7 +830,7 @@ void  wxDC::DoDrawText(const wxString& strtext, wxCoord x, wxCoord y)
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
 
        long xx = XLOG2DEV(x);
        long yy = YLOG2DEV(y);
@@ -923,7 +910,7 @@ void  wxDC::DoGetTextExtent( const wxString &string, wxCoord *width, wxCoord *he
   if (!Ok()) 
        return;
  
-   MacVerifySetup() ;
+   wxMacPortSetter helper(this) ;
 
        wxFont formerFont = m_font ; 
        
@@ -1005,7 +992,7 @@ wxCoord   wxDC::GetCharWidth(void) const
   if (!Ok()) 
        return 1;
  
-   MacVerifySetup() ;
+   wxMacPortSetter helper(this) ;
 
        MacInstallFont() ;
 
@@ -1020,7 +1007,7 @@ wxCoord   wxDC::GetCharHeight(void) const
   if (!Ok()) 
        return 1;
  
-   MacVerifySetup() ;
+   wxMacPortSetter helper(this) ;
 
        MacInstallFont() ;
 
@@ -1034,7 +1021,7 @@ void  wxDC::Clear(void)
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+  wxMacPortSetter helper(this) ;
        Rect rect = { -32767 , -32767 , 32767 , 32767 } ;
        
        if (m_backgroundBrush.GetStyle() != wxTRANSPARENT) 
@@ -1048,10 +1035,9 @@ void wxDC::MacInstallFont() const
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
 
-       if ( m_macFontInstalled )
-               return ;
+//     if ( m_macFontInstalled )
+//             return ;
        Pattern blackColor ;
        
        wxFontRefData * font = (wxFontRefData*) m_font.GetRefData() ;
@@ -1170,12 +1156,11 @@ void wxDC::MacInstallPen() const
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
 
        Pattern  blackColor;
 
-       if ( m_macPenInstalled )
-               return ;
+//     if ( m_macPenInstalled )
+//             return ;
 
        RGBColor forecolor = m_pen.GetColour().GetPixel();
        RGBColor backcolor = m_backgroundBrush.GetColour().GetPixel();
@@ -1257,10 +1242,10 @@ void wxDC::MacInstallBrush() const
 {
   if (!Ok()) 
        return;
-  MacVerifySetup() ;
+
        Pattern  blackColor, whiteColor ;
-       if ( m_macBrushInstalled )
-               return ;
+//     if ( m_macBrushInstalled )
+//             return ;
 
        // foreground
 
index ef0d666568f3f42306a092aa8b75402e79a73cf3..19d325a772483446f72f586ba7b61d7b0fd521f8 100644 (file)
@@ -59,7 +59,6 @@ wxWindowDC::wxWindowDC(wxWindow *the_canvas)
        m_maxX = size.x  ;
        m_maxY = size.y ; 
 
-       MacSetupPort() ;
        m_ok = TRUE ;
   SetBackground(wxBrush(the_canvas->GetBackgroundColour(), wxSOLID));
 }
@@ -83,7 +82,6 @@ wxClientDC::wxClientDC(wxWindow *window)
        
        window->MacGetPortClientParams(&m_macLocalOrigin, &m_macClipRect , &windowref , &rootwindow );
        m_macPort = UMAGetWindowPort( windowref ) ;
-       MacSetupPort() ;
        m_minY = m_minX =  0;
        wxSize size = window->GetSize() ;
        m_maxX = size.x  ;
@@ -113,7 +111,6 @@ wxPaintDC::wxPaintDC(wxWindow *window)
        window->MacGetPortClientParams(&m_macLocalOrigin, &m_macClipRect , &windowref , &rootwindow );
 
        m_macPort = UMAGetWindowPort( windowref ) ;
-       MacSetupPort() ;
        m_ok = TRUE ;
        wxCoord x , y ,w , h ;
        window->GetUpdateRegion().GetBox( x , y , w , h ) ;
index fba8a5891e24ba4f2a40227576a018d896a0534d..3f1d4c83fff5f2706b78ee3ebad63658b544423f 100644 (file)
@@ -68,7 +68,6 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap )
                        {
                                m_macMask = mask->GetMaskBitmap() ;
                        }
-                       MacSetupPort() ;
                        m_ok = TRUE ;
                        // SetBackground(wxBrush(*wxWHITE, wxSOLID));
                }
index 9b9fee2e9729ad05d3e13e7a838bc098d95effe6..1467c4970fb88afaf96f74bfc16e45c8e3e219de 100644 (file)
@@ -125,7 +125,6 @@ wxPrinterDC::~wxPrinterDC(void)
                ::UMAPrClose() ;
 //       ::SetPort( macPrintFormerPort ) ;
                ::SetPort( LMGetWMgrPort() ) ;
-               m_macPortHelper.Clear() ;
        }
 #else
        if ( m_ok ) 
index c47126248e7ab604fd8899f72bedb5a242004294..1b83a9348a20fc8191f079a6f540f02738af884d 100644 (file)
@@ -28,7 +28,6 @@ wxScreenDC::wxScreenDC()
 #else
        m_macPort = LMGetWMgrPort() ;
 #endif
-       MacSetupPort() ;
        m_ok = TRUE ;
        BitMap screenBits;
        GetQDGlobalsScreenBits( &screenBits );
index fc6c64b825e3a284dfa572c6b0c6d921cd4041f7..6a0a3a9eab2cd3685517be9737f27a1be7cdd03f 100644 (file)
@@ -115,23 +115,11 @@ bool wxMetaFile::Play(wxDC *dc)
        if (!dc->Ok() )
                return FALSE;
                
-       dc->MacVerifySetup() ;
-       
        {
+               wxMacPortSetter helper( dc ) ;
                PicHandle pict = GetHMETAFILE() ;
                DrawPicture( pict , &(**pict).picFrame ) ;
        }
-/*
-    if (!m_refData)
-        return FALSE;
-
-    dc->BeginDrawing();
-
-    if (dc->GetHDC() && M_METAFILEDATA->m_metafile)
-        PlayMetaFile((HDC) dc->GetHDC(), (HMETAFILE) M_METAFILEDATA->m_metafile);
-
-    dc->EndDrawing();
-*/
     return TRUE;
 }
 
index 0806570a55ad99d97b6c2fedc7f84a6ec413648a..9ff3b8163768cd92a6e51a692673fac401c94142 100644 (file)
@@ -194,7 +194,6 @@ void wxTextCtrl::SetValue(const wxString& st)
                        
                        UMADrawControl( m_macControl ) ;
                        UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ;
-                       wxDC::MacInvalidateSetup() ;
                }
        }
 }
@@ -283,7 +282,6 @@ void wxTextCtrl::Paste()
                                
                                UMADrawControl( m_macControl ) ;
                                UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ;
-                               wxDC::MacInvalidateSetup() ;
                        }
                }
        }
index 4dad035badfa562718defc8dc8daffc3901b15eb..0fa951bdf2be487bb25c82ca1fa69134cf0a7278 100644 (file)
@@ -550,7 +550,6 @@ void wxToolBar::OnPaint(wxPaintEvent& event)
                        }
                }
                UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ;
-               wxDC::MacInvalidateSetup() ;
        }
 }
 
index eb92ed996e03588510a1d2124dadba118b320a64..84e5da8d8aa3018433e44fc663b7ea46c3d4e8bc 100644 (file)
@@ -295,9 +295,7 @@ void wxMacToolTip::Draw()
                }
                                        
                ::DrawText( text , laststop , i - laststop ) ;
-               ::TextMode( srcOr ) ;
-               wxDC::MacInvalidateSetup() ;
-               
+               ::TextMode( srcOr ) ;           
        //      DrawText( m_label , 0 , m_label.Length() ) ;
        }
 }
@@ -331,7 +329,6 @@ void wxMacToolTip::Clear()
                DrawPicture(m_backpict, &m_rect);
                KillPicture(m_backpict);
                m_backpict = NULL ;
-               wxDC::MacInvalidateSetup() ;
        }
 }
 
index 13d4e27883df0d9a5d86c35ef7fa638130295eac..19a50536458b87a925c47b4ab50a6c7f15f320f8 100644 (file)
@@ -835,7 +835,6 @@ OSErr UMASetKeyboardFocus                           (WindowPtr                              inWindow,
        }
 #endif
        SetPort( port ) ;
-       wxDC::MacInvalidateSetup() ;
        return err ;
 }
 
@@ -1379,7 +1378,6 @@ void UMAHighlightAndActivateWindow( WindowRef inWindowRef , bool inActivate )
                                UMADeactivateControl( control ) ;
                }       
                SetPort( port ) ;
-               wxDC::MacInvalidateSetup() ;
        }
 }
 OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState ) 
index 7d4ce35592b19dd8b207b59ff5002e8097c89ac9..b3b459a0d38fd0a9a003d456bac4bed766077580 100644 (file)
@@ -2353,7 +2353,6 @@ wxMacDrawingHelper::~wxMacDrawingHelper()
                Rect portRect ;
                GetPortBounds( m_currentPort , &portRect ) ;
                ClipRect( &portRect ) ;
-               wxDC::MacInvalidateSetup() ;    
        }
                
        if ( m_formerPort != m_currentPort )