X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cd9bcf8a6e004961023f957b51c5032f1156b0c4..072db400deed678005905202e734b97b4ed74738:/src/mac/carbon/toolbar.cpp diff --git a/src/mac/carbon/toolbar.cpp b/src/mac/carbon/toolbar.cpp index bcf2beb000..66bed14b79 100644 --- a/src/mac/carbon/toolbar.cpp +++ b/src/mac/carbon/toolbar.cpp @@ -168,13 +168,19 @@ bool wxToolBar::Realize() Point localOrigin ; Rect clipRect ; - WindowRef window ; + WindowRef window = (WindowRef) MacGetRootWindow() ; wxWindow *win ; - GetParent()->MacGetPortParams( &localOrigin , &clipRect , &window , &win ) ; + int lx , ly ; + lx = ly = 0 ; + MacWindowToRootWindow( &lx , &ly ) ; + localOrigin.v = ly ; + localOrigin.h = lx ; + +// GetParent()->MacGetPortParams( &localOrigin , &clipRect , &window , &win ) ; - Rect toolbarrect = { m_y + localOrigin.v , m_x + localOrigin.h , - m_y + m_height + localOrigin.v , m_x + m_width + localOrigin.h} ; + Rect toolbarrect = { localOrigin.v ,localOrigin.h , + m_height + localOrigin.v , m_width + localOrigin.h} ; ControlFontStyleRec controlstyle ; controlstyle.flags = kControlUseFontMask ; @@ -209,20 +215,20 @@ bool wxToolBar::Realize() if ( bmap->m_bitmapType == kMacBitmapTypePict ) { info.contentType = kControlContentPictHandle ; - info.u.picture = bmap->m_hPict ; + info.u.picture = MAC_WXHMETAFILE(bmap->m_hPict) ; } else if ( bmap->m_bitmapType == kMacBitmapTypeGrafWorld ) { if ( tool->GetBitmap1().GetMask() ) { info.contentType = kControlContentCIconHandle ; - info.u.cIconHandle = wxMacCreateCIcon( bmap->m_hBitmap , tool->GetBitmap1().GetMask()->GetMaskBitmap() , + info.u.cIconHandle = wxMacCreateCIcon( MAC_WXHBITMAP(bmap->m_hBitmap) , MAC_WXHBITMAP(tool->GetBitmap1().GetMask()->GetMaskBitmap()) , 8 , 16 ) ; } else { info.contentType = kControlContentCIconHandle ; - info.u.cIconHandle = wxMacCreateCIcon( bmap->m_hBitmap , NULL , + info.u.cIconHandle = wxMacCreateCIcon( MAC_WXHBITMAP(bmap->m_hBitmap) , NULL , 8 , 16 ) ; } } @@ -264,7 +270,7 @@ bool wxToolBar::Realize() /* ::SetControlFontStyle( m_macToolHandle , &controlstyle ) ; */ - ControlHandle container = GetParent()->MacGetContainerForEmbedding() ; + ControlHandle container = (ControlHandle) GetParent()->MacGetContainerForEmbedding() ; wxASSERT_MSG( container != NULL , "No valid mac container control" ) ; ::EmbedControl( m_macToolHandle , container ) ; @@ -340,7 +346,7 @@ wxSize wxToolBar::GetToolSize() const return wxSize(m_defaultWidth + 4, m_defaultHeight + 4); } -void wxToolBar::MacHandleControlClick( ControlHandle control , SInt16 controlpart ) +void wxToolBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart ) { int index = 0 ; for ( index = 0 ; index < m_macToolHandles.Count() ; ++index ) @@ -350,7 +356,7 @@ void wxToolBar::MacHandleControlClick( ControlHandle control , SInt16 controlpar wxToolBarTool *tool = (wxToolBarTool *)m_tools.Nth( index )->Data(); if ( tool->CanBeToggled() ) { - tool->Toggle( GetControlValue( control ) ) ; + tool->Toggle( GetControlValue( (ControlHandle) control ) ) ; } OnLeftClick( tool->GetId() , tool -> IsToggled() ) ; break ; @@ -378,11 +384,16 @@ void wxToolBar::MacSuperChangedPosition() Rect clipRect ; WindowRef window ; wxWindow *win ; + int lx , ly ; + lx = ly = 0 ; + MacWindowToRootWindow( &lx , &ly ) ; + localOrigin.v = ly ; + localOrigin.h = lx ; - GetParent()->MacGetPortParams( &localOrigin , &clipRect , &window , &win ) ; +// GetParent()->MacGetPortParams( &localOrigin , &clipRect , &window , &win ) ; - Rect toolbarrect = { m_y + localOrigin.v , m_x + localOrigin.h , - m_y + m_height + localOrigin.v , m_x + m_width + localOrigin.h} ; + Rect toolbarrect = { localOrigin.v ,localOrigin.h , + m_height + localOrigin.v , m_width + localOrigin.h} ; ControlFontStyleRec controlstyle ; controlstyle.flags = kControlUseFontMask ; @@ -399,10 +410,7 @@ void wxToolBar::MacSuperChangedPosition() int maxHeight = 0 ; int toolcount = 0 ; { - WindowRef rootwindow = MacGetRootWindow() ; - wxWindow* wxrootwindow = wxFindWinFromMacWindow( rootwindow ) ; - ::SetThemeWindowBackground( rootwindow , kThemeBrushDialogBackgroundActive , false ) ; - wxMacDrawingHelper focus( wxrootwindow ) ; + WindowRef rootwindow = (WindowRef) MacGetRootWindow() ; while (node) { wxToolBarTool *tool = (wxToolBarTool *)node->Data(); @@ -453,13 +461,6 @@ void wxToolBar::MacSuperChangedPosition() node = node->Next(); } - if ( wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) ) - { - } - else - { - ::SetThemeWindowBackground( rootwindow , kThemeBrushDocumentWindowBackground , false ) ; - } } if ( GetWindowStyleFlag() & wxTB_HORIZONTAL ) @@ -578,53 +579,21 @@ bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool) void wxToolBar::OnPaint(wxPaintEvent& event) { - Point localOrigin ; - Rect clipRect ; - WindowRef window ; - wxWindow *win ; - - GetParent()->MacGetPortParams( &localOrigin , &clipRect , &window , &win ) ; - if ( window && win ) + wxPaintDC dc(this) ; + wxMacPortSetter helper(&dc) ; + + Rect toolbarrect = { dc.YLOG2DEVMAC(0) , dc.XLOG2DEVMAC(0) , + dc.YLOG2DEVMAC(m_height) , dc.XLOG2DEVMAC(m_width) } ; + UMADrawThemePlacard( &toolbarrect , IsEnabled() ? kThemeStateActive : kThemeStateInactive) ; { - wxMacDrawingHelper help( win ) ; - // the mac control manager always assumes to have the origin at 0,0 - SetOrigin( 0 , 0 ) ; - - bool hasTabBehind = false ; - wxWindow* parent = GetParent() ; - while ( parent ) + int index = 0 ; + for ( index = 0 ; index < m_macToolHandles.Count() ; ++index ) { - if( parent->IsTopLevel() ) + if ( m_macToolHandles[index] ) { -// ::SetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , kThemeBrushDialogBackgroundActive , false ) ; - break ; - } - - if( parent->IsKindOf( CLASSINFO( wxNotebook ) ) || parent->IsKindOf( CLASSINFO( wxTabCtrl ) )) - { - if ( ((wxControl*)parent)->GetMacControl() ) - SetUpControlBackground( ((wxControl*)parent)->GetMacControl() , -1 , true ) ; - break ; - } - - parent = parent->GetParent() ; - } - - Rect toolbarrect = { m_y + localOrigin.v , m_x + localOrigin.h , - m_y + localOrigin.v + m_height , m_x + localOrigin.h + m_width } ; - - UMADrawThemePlacard( &toolbarrect , IsEnabled() ? kThemeStateActive : kThemeStateInactive) ; - { - int index = 0 ; - for ( index = 0 ; index < m_macToolHandles.Count() ; ++index ) - { - if ( m_macToolHandles[index] ) - { - UMADrawControl( (ControlHandle) m_macToolHandles[index] ) ; - } + UMADrawControl( (ControlHandle) m_macToolHandles[index] ) ; } } -// ::SetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ; } } @@ -642,7 +611,7 @@ void wxToolBar::OnMouse( wxMouseEvent &event ) Point localwhere ; GrafPtr port ; SInt16 controlpart ; - WindowRef window = MacGetRootWindow() ; + WindowRef window = (WindowRef) MacGetRootWindow() ; localwhere.h = x ; localwhere.v = y ;