From 0eaa1d68c29cd273971be9d60008045e470c2d46 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Tue, 8 May 2001 16:08:09 +0000 Subject: [PATCH] changed port handling git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/mac/dc.h | 17 ++++--- src/mac/aga.cpp | 1 - src/mac/carbon/aga.cpp | 1 - src/mac/carbon/control.cpp | 2 - src/mac/carbon/dc.cpp | 99 ++++++++++++++++--------------------- src/mac/carbon/dcclient.cpp | 3 -- src/mac/carbon/dcmemory.cpp | 1 - src/mac/carbon/dcprint.cpp | 1 - src/mac/carbon/dcscreen.cpp | 1 - src/mac/carbon/metafile.cpp | 14 +----- src/mac/carbon/textctrl.cpp | 2 - src/mac/carbon/toolbar.cpp | 1 - src/mac/carbon/tooltip.cpp | 5 +- src/mac/carbon/uma.cpp | 2 - src/mac/carbon/window.cpp | 1 - src/mac/control.cpp | 2 - src/mac/dc.cpp | 99 ++++++++++++++++--------------------- src/mac/dcclient.cpp | 3 -- src/mac/dcmemory.cpp | 1 - src/mac/dcprint.cpp | 1 - src/mac/dcscreen.cpp | 1 - src/mac/metafile.cpp | 14 +----- src/mac/textctrl.cpp | 2 - src/mac/toolbar.cpp | 1 - src/mac/tooltip.cpp | 5 +- src/mac/uma.cpp | 2 - src/mac/window.cpp | 1 - 27 files changed, 98 insertions(+), 185 deletions(-) diff --git a/include/wx/mac/dc.h b/include/wx/mac/dc.h index e59e0164b9..9bdbaaf9f1 100644 --- a/include/wx/mac/dc.h +++ b/include/wx/mac/dc.h @@ -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 diff --git a/src/mac/aga.cpp b/src/mac/aga.cpp index 1f3310aca5..572caed82a 100644 --- a/src/mac/aga.cpp +++ b/src/mac/aga.cpp @@ -2620,7 +2620,6 @@ AGAPortHelper::~AGAPortHelper() TextMode( mode ); SetOrigin( 0 , 0 ) ; SetPort( port ) ; - wxDC::MacInvalidateSetup() ; } } diff --git a/src/mac/carbon/aga.cpp b/src/mac/carbon/aga.cpp index 1f3310aca5..572caed82a 100644 --- a/src/mac/carbon/aga.cpp +++ b/src/mac/carbon/aga.cpp @@ -2620,7 +2620,6 @@ AGAPortHelper::~AGAPortHelper() TextMode( mode ); SetOrigin( 0 , 0 ) ; SetPort( port ) ; - wxDC::MacInvalidateSetup() ; } } diff --git a/src/mac/carbon/control.cpp b/src/mac/carbon/control.cpp index eb83a83ee0..9f495d36ef 100644 --- a/src/mac/carbon/control.cpp +++ b/src/mac/carbon/control.cpp @@ -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() ; } } } diff --git a/src/mac/carbon/dc.cpp b/src/mac/carbon/dc.cpp index fbeccc565b..1a21092f94 100644 --- a/src/mac/carbon/dc.cpp +++ b/src/mac/carbon/dc.cpp @@ -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 ®ion ) { wxCHECK_RET( Ok(), wxT("invalid window dc") ); - MacVerifySetup() ; + wxMacPortSetter helper(this) ; if (region.Empty()) { DestroyClippingRegion(); @@ -266,7 +253,7 @@ void wxDC::DoSetClippingRegionAsRegion( const wxRegion ®ion ) 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 diff --git a/src/mac/carbon/dcclient.cpp b/src/mac/carbon/dcclient.cpp index ef0d666568..19d325a772 100644 --- a/src/mac/carbon/dcclient.cpp +++ b/src/mac/carbon/dcclient.cpp @@ -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 ) ; diff --git a/src/mac/carbon/dcmemory.cpp b/src/mac/carbon/dcmemory.cpp index fba8a5891e..3f1d4c83ff 100644 --- a/src/mac/carbon/dcmemory.cpp +++ b/src/mac/carbon/dcmemory.cpp @@ -68,7 +68,6 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) { m_macMask = mask->GetMaskBitmap() ; } - MacSetupPort() ; m_ok = TRUE ; // SetBackground(wxBrush(*wxWHITE, wxSOLID)); } diff --git a/src/mac/carbon/dcprint.cpp b/src/mac/carbon/dcprint.cpp index 9b9fee2e97..1467c4970f 100644 --- a/src/mac/carbon/dcprint.cpp +++ b/src/mac/carbon/dcprint.cpp @@ -125,7 +125,6 @@ wxPrinterDC::~wxPrinterDC(void) ::UMAPrClose() ; // ::SetPort( macPrintFormerPort ) ; ::SetPort( LMGetWMgrPort() ) ; - m_macPortHelper.Clear() ; } #else if ( m_ok ) diff --git a/src/mac/carbon/dcscreen.cpp b/src/mac/carbon/dcscreen.cpp index c47126248e..1b83a9348a 100644 --- a/src/mac/carbon/dcscreen.cpp +++ b/src/mac/carbon/dcscreen.cpp @@ -28,7 +28,6 @@ wxScreenDC::wxScreenDC() #else m_macPort = LMGetWMgrPort() ; #endif - MacSetupPort() ; m_ok = TRUE ; BitMap screenBits; GetQDGlobalsScreenBits( &screenBits ); diff --git a/src/mac/carbon/metafile.cpp b/src/mac/carbon/metafile.cpp index fc6c64b825..6a0a3a9eab 100644 --- a/src/mac/carbon/metafile.cpp +++ b/src/mac/carbon/metafile.cpp @@ -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; } diff --git a/src/mac/carbon/textctrl.cpp b/src/mac/carbon/textctrl.cpp index 0806570a55..9ff3b81637 100644 --- a/src/mac/carbon/textctrl.cpp +++ b/src/mac/carbon/textctrl.cpp @@ -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() ; } } } diff --git a/src/mac/carbon/toolbar.cpp b/src/mac/carbon/toolbar.cpp index 4dad035bad..0fa951bdf2 100644 --- a/src/mac/carbon/toolbar.cpp +++ b/src/mac/carbon/toolbar.cpp @@ -550,7 +550,6 @@ void wxToolBar::OnPaint(wxPaintEvent& event) } } UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ; - wxDC::MacInvalidateSetup() ; } } diff --git a/src/mac/carbon/tooltip.cpp b/src/mac/carbon/tooltip.cpp index eb92ed996e..84e5da8d8a 100644 --- a/src/mac/carbon/tooltip.cpp +++ b/src/mac/carbon/tooltip.cpp @@ -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() ; } } diff --git a/src/mac/carbon/uma.cpp b/src/mac/carbon/uma.cpp index 13d4e27883..19a5053645 100644 --- a/src/mac/carbon/uma.cpp +++ b/src/mac/carbon/uma.cpp @@ -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 ) diff --git a/src/mac/carbon/window.cpp b/src/mac/carbon/window.cpp index 7d4ce35592..b3b459a0d3 100644 --- a/src/mac/carbon/window.cpp +++ b/src/mac/carbon/window.cpp @@ -2353,7 +2353,6 @@ wxMacDrawingHelper::~wxMacDrawingHelper() Rect portRect ; GetPortBounds( m_currentPort , &portRect ) ; ClipRect( &portRect ) ; - wxDC::MacInvalidateSetup() ; } if ( m_formerPort != m_currentPort ) diff --git a/src/mac/control.cpp b/src/mac/control.cpp index eb83a83ee0..9f495d36ef 100644 --- a/src/mac/control.cpp +++ b/src/mac/control.cpp @@ -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() ; } } } diff --git a/src/mac/dc.cpp b/src/mac/dc.cpp index fbeccc565b..1a21092f94 100644 --- a/src/mac/dc.cpp +++ b/src/mac/dc.cpp @@ -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 ®ion ) { wxCHECK_RET( Ok(), wxT("invalid window dc") ); - MacVerifySetup() ; + wxMacPortSetter helper(this) ; if (region.Empty()) { DestroyClippingRegion(); @@ -266,7 +253,7 @@ void wxDC::DoSetClippingRegionAsRegion( const wxRegion ®ion ) 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 diff --git a/src/mac/dcclient.cpp b/src/mac/dcclient.cpp index ef0d666568..19d325a772 100644 --- a/src/mac/dcclient.cpp +++ b/src/mac/dcclient.cpp @@ -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 ) ; diff --git a/src/mac/dcmemory.cpp b/src/mac/dcmemory.cpp index fba8a5891e..3f1d4c83ff 100644 --- a/src/mac/dcmemory.cpp +++ b/src/mac/dcmemory.cpp @@ -68,7 +68,6 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) { m_macMask = mask->GetMaskBitmap() ; } - MacSetupPort() ; m_ok = TRUE ; // SetBackground(wxBrush(*wxWHITE, wxSOLID)); } diff --git a/src/mac/dcprint.cpp b/src/mac/dcprint.cpp index 9b9fee2e97..1467c4970f 100644 --- a/src/mac/dcprint.cpp +++ b/src/mac/dcprint.cpp @@ -125,7 +125,6 @@ wxPrinterDC::~wxPrinterDC(void) ::UMAPrClose() ; // ::SetPort( macPrintFormerPort ) ; ::SetPort( LMGetWMgrPort() ) ; - m_macPortHelper.Clear() ; } #else if ( m_ok ) diff --git a/src/mac/dcscreen.cpp b/src/mac/dcscreen.cpp index c47126248e..1b83a9348a 100644 --- a/src/mac/dcscreen.cpp +++ b/src/mac/dcscreen.cpp @@ -28,7 +28,6 @@ wxScreenDC::wxScreenDC() #else m_macPort = LMGetWMgrPort() ; #endif - MacSetupPort() ; m_ok = TRUE ; BitMap screenBits; GetQDGlobalsScreenBits( &screenBits ); diff --git a/src/mac/metafile.cpp b/src/mac/metafile.cpp index fc6c64b825..6a0a3a9eab 100644 --- a/src/mac/metafile.cpp +++ b/src/mac/metafile.cpp @@ -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; } diff --git a/src/mac/textctrl.cpp b/src/mac/textctrl.cpp index 0806570a55..9ff3b81637 100644 --- a/src/mac/textctrl.cpp +++ b/src/mac/textctrl.cpp @@ -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() ; } } } diff --git a/src/mac/toolbar.cpp b/src/mac/toolbar.cpp index 4dad035bad..0fa951bdf2 100644 --- a/src/mac/toolbar.cpp +++ b/src/mac/toolbar.cpp @@ -550,7 +550,6 @@ void wxToolBar::OnPaint(wxPaintEvent& event) } } UMASetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ; - wxDC::MacInvalidateSetup() ; } } diff --git a/src/mac/tooltip.cpp b/src/mac/tooltip.cpp index eb92ed996e..84e5da8d8a 100644 --- a/src/mac/tooltip.cpp +++ b/src/mac/tooltip.cpp @@ -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() ; } } diff --git a/src/mac/uma.cpp b/src/mac/uma.cpp index 13d4e27883..19a5053645 100644 --- a/src/mac/uma.cpp +++ b/src/mac/uma.cpp @@ -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 ) diff --git a/src/mac/window.cpp b/src/mac/window.cpp index 7d4ce35592..b3b459a0d3 100644 --- a/src/mac/window.cpp +++ b/src/mac/window.cpp @@ -2353,7 +2353,6 @@ wxMacDrawingHelper::~wxMacDrawingHelper() Rect portRect ; GetPortBounds( m_currentPort , &portRect ) ; ClipRect( &portRect ) ; - wxDC::MacInvalidateSetup() ; } if ( m_formerPort != m_currentPort ) -- 2.45.2