X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/214b94848a50b224aa3b2101b21149ae82e3706f..05d8deda209e232835c7de64b821f569c9711df8:/src/mac/carbon/toolbar.cpp diff --git a/src/mac/carbon/toolbar.cpp b/src/mac/carbon/toolbar.cpp index 9a6f08cd1f..7cfd6a9594 100644 --- a/src/mac/carbon/toolbar.cpp +++ b/src/mac/carbon/toolbar.cpp @@ -9,14 +9,15 @@ // Licence: The wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "toolbar.h" #endif -#include "wx/wx.h" +#include "wx/wxprec.h" #if wxUSE_TOOLBAR +#include "wx/wx.h" #include "wx/toolbar.h" #include "wx/notebook.h" #include "wx/tabctrl.h" @@ -211,7 +212,7 @@ void wxToolBarTool::SetPosition(const wxPoint& position) GetControlBounds( m_controlHandle , &contrlRect ) ; int former_mac_x = contrlRect.left ; int former_mac_y = contrlRect.top ; - wxSize sz = GetToolBar()->GetToolSize() ; + GetToolBar()->GetToolSize() ; if ( mac_x != former_mac_x || mac_y != former_mac_y ) { @@ -259,6 +260,8 @@ wxToolBarTool::wxToolBarTool(wxToolBar *tbar, CreateBevelButtonControl( window , &toolrect , CFSTR("") , kControlBevelButtonNormalBevel , behaviour , &info , 0 , 0 , 0 , &m_controlHandle ) ; + wxMacReleaseBitmapButton( &info ) ; + InstallControlEventHandler( (ControlRef) m_controlHandle, GetwxMacToolBarToolEventHandlerUPP(), GetEventTypeCount(eventList), eventList, this,NULL); @@ -401,9 +404,10 @@ bool wxToolBar::Realize() // if not set yet, only one row SetRows(1); } + m_minWidth = maxWidth; maxWidth = tw ; maxHeight += m_yMargin + kwxMacToolBarTopMargin; - m_maxHeight = maxHeight ; + m_minHeight = m_maxHeight = maxHeight ; } else { @@ -412,9 +416,10 @@ bool wxToolBar::Realize() // if not set yet, have one column SetRows(GetToolsCount()); } + m_minHeight = maxHeight; maxHeight = th ; maxWidth += m_xMargin + kwxMacToolBarLeftMargin; - m_maxWidth = maxWidth ; + m_minWidth = m_maxWidth = maxWidth ; } SetSize( maxWidth, maxHeight ); @@ -481,17 +486,11 @@ wxString wxToolBar::MacGetToolTipString( wxPoint &pt ) void wxToolBar::DoEnableTool(wxToolBarToolBase *t, bool enable) { - if (!IsShown()) - return ; - ((wxToolBarTool*)t)->DoEnable( enable ) ; } void wxToolBar::DoToggleTool(wxToolBarToolBase *t, bool toggle) { - if (!IsShown()) - return ; - wxToolBarTool *tool = (wxToolBarTool *)t; if ( tool->IsButton() ) { @@ -558,6 +557,8 @@ bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool) void wxToolBar::OnPaint(wxPaintEvent& event) { wxPaintDC dc(this) ; +#if wxMAC_USE_CORE_GRAPHICS +#else wxMacPortSetter helper(&dc) ; int w, h ; GetSize( &w , &h ) ; @@ -578,33 +579,35 @@ void wxToolBar::OnPaint(wxPaintEvent& event) { #if TARGET_API_MAC_OSX #if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_2 - if ( UMAGetSystemVersion() >= 0x1030 ) - { - HIRect hiToolbarrect = CGRectMake( dc.YLOG2DEVMAC(0) , dc.XLOG2DEVMAC(0) , - dc.YLOG2DEVREL(h) , dc.XLOG2DEVREL(w) ); - CGContextRef cgContext ; - Rect bounds ; - GetPortBounds( (CGrafPtr) dc.m_macPort , &bounds ) ; - QDBeginCGContext( (CGrafPtr) dc.m_macPort , &cgContext ) ; - CGContextTranslateCTM( cgContext , 0 , bounds.bottom - bounds.top ) ; - CGContextScaleCTM( cgContext , 1 , -1 ) ; + if ( UMAGetSystemVersion() >= 0x1030 ) + { + HIRect hiToolbarrect = CGRectMake( dc.YLOG2DEVMAC(0) , dc.XLOG2DEVMAC(0) , + dc.YLOG2DEVREL(h) , dc.XLOG2DEVREL(w) ); + CGContextRef cgContext ; + Rect bounds ; + GetPortBounds( (CGrafPtr) dc.m_macPort , &bounds ) ; + QDBeginCGContext( (CGrafPtr) dc.m_macPort , &cgContext ) ; + CGContextTranslateCTM( cgContext , 0 , bounds.bottom - bounds.top ) ; + CGContextScaleCTM( cgContext , 1 , -1 ) ; + { + HIThemeBackgroundDrawInfo drawInfo ; + drawInfo.version = 0 ; + drawInfo.state = kThemeStateActive ; + drawInfo.kind = kThemeBackgroundMetal ; + HIThemeApplyBackground( &hiToolbarrect, &drawInfo , cgContext,kHIThemeOrientationNormal) ; + } + QDEndCGContext( (CGrafPtr) dc.m_macPort , &cgContext ) ; + } + else +#endif { - HIThemeBackgroundDrawInfo drawInfo ; - drawInfo.version = 0 ; - drawInfo.state = kThemeStateActive ; - drawInfo.kind = kThemeBackgroundMetal ; - HIThemeApplyBackground( &hiToolbarrect, &drawInfo , cgContext,kHIThemeOrientationNormal) ; + UMADrawThemePlacard( &toolbarrect , IsEnabled() ? kThemeStateActive : kThemeStateInactive) ; } - QDEndCGContext( (CGrafPtr) dc.m_macPort , &cgContext ) ; - } - else #endif - { - UMADrawThemePlacard( &toolbarrect , IsEnabled() ? kThemeStateActive : kThemeStateInactive) ; } #endif - } + event.Skip() ; }