X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9c641c057ce32ffcb7120eae76d582376d19eede..ef2f095a5ff3c545e84d9afbfa9432f5fed7bcfe:/src/mac/carbon/control.cpp diff --git a/src/mac/carbon/control.cpp b/src/mac/carbon/control.cpp index f3973a3190..1f62d46592 100644 --- a/src/mac/carbon/control.cpp +++ b/src/mac/carbon/control.cpp @@ -332,6 +332,7 @@ void wxControl::MacPostControlCreate() SetSize(pos.x, pos.y, new_size.x, new_size.y); UMAShowControl( m_macControl ) ; + Refresh() ; } void wxControl::MacAdjustControlRect() @@ -386,7 +387,7 @@ void wxControl::MacAdjustControlRect() m_height += 2 * m_macVerticalBorder; } - wxMacDrawingHelper helper ( wxFindWinFromMacWindow( GetMacRootWindow() ) ) ; + wxMacDrawingHelper helper ( wxFindWinFromMacWindow( MacGetRootWindow() ) ) ; if ( helper.Ok() ) { UMASizeControl( m_macControl , m_width - 2 * m_macHorizontalBorder, m_height - 2 * m_macVerticalBorder ) ; @@ -411,14 +412,15 @@ void wxControl::MacSuperChangedPosition() int former_mac_y = contrlRect.top ; int mac_x = m_x ; int mac_y = m_y ; - GetParent()->MacClientToRootWindow( & mac_x , & mac_y ) ; + GetParent()->MacWindowToRootWindow( & mac_x , & mac_y ) ; - WindowRef rootwindow = GetMacRootWindow() ; + WindowRef rootwindow = MacGetRootWindow() ; wxWindow* wxrootwindow = wxFindWinFromMacWindow( rootwindow ) ; - ::SetThemeWindowBackground( rootwindow , kThemeBrushDialogBackgroundActive , false ) ; + wxMacDrawingHelper focus( wxrootwindow ) ; - if ( mac_x != former_mac_x || mac_y != former_mac_y ) + if ( mac_x + m_macHorizontalBorder != former_mac_x || + mac_y + m_macVerticalBorder != former_mac_y ) { { Rect inval = { former_mac_y , former_mac_x , former_mac_y + m_height , former_mac_x + m_width } ; @@ -430,13 +432,6 @@ void wxControl::MacSuperChangedPosition() InvalWindowRect( rootwindow , &inval ) ; } } - if ( wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) ) - { - } - else - { - ::SetThemeWindowBackground( rootwindow , kThemeBrushDocumentWindowBackground , false ) ; - } } wxWindow::MacSuperChangedPosition() ; @@ -444,36 +439,8 @@ void wxControl::MacSuperChangedPosition() void wxControl::MacSuperEnabled( bool enabled ) { -/* - if ( m_macControl ) - { - if ( UMAHasAppearance() ) - { - if ( !enabled ) - { - ::DeactivateControl( m_macControl ) ; - } - else - { - if ( m_macEnabled ) - ::ActivateControl( m_macControl ) ; - } - } - else - { - if ( !enabled ) - { - ::HiliteControl( m_macControl , 255 ) ; - } - else - { - if ( m_macEnabled ) - ::HiliteControl( m_macControl , 0 ) ; - } - } - } + Refresh(FALSE) ; wxWindow::MacSuperEnabled( enabled ) ; -*/ } void wxControl::MacSuperShown( bool show ) @@ -484,7 +451,7 @@ void wxControl::MacSuperShown( bool show ) { if ( m_macControlIsShown ) { - ::HideControl( m_macControl ) ; + ::UMAHideControl( m_macControl ) ; m_macControlIsShown = false ; } } @@ -547,12 +514,12 @@ void wxControl::DoSetSize(int x, int y, if (height == -1) new_height = size.y; } } - // AdjustForParentClientOrigin(new_x, new_y, sizeFlags); + AdjustForParentClientOrigin(new_x, new_y, sizeFlags); mac_x = new_x; mac_y = new_y; if(GetParent()) { - GetParent()->MacClientToRootWindow(&mac_x, &mac_y); + GetParent()->MacWindowToRootWindow(&mac_x, &mac_y); } GetControlBounds(m_macControl, &oldbounds); oldbounds.right = oldbounds.left + m_width; @@ -574,6 +541,8 @@ void wxControl::DoSetSize(int x, int y, if ( doMove || doResize ) { + Refresh() ; + // Ensure resize is within constraints if ((m_minWidth != -1) && (new_width < m_minWidth)) { new_width = m_minWidth; @@ -595,7 +564,7 @@ void wxControl::DoSetSize(int x, int y, UMAMoveControl(m_macControl, mac_x + m_macHorizontalBorder, mac_y + m_macVerticalBorder); - + wxMoveEvent event(wxPoint(m_x, m_y), m_windowId); event.SetEventObject(this); GetEventHandler()->ProcessEvent(event) ; @@ -615,23 +584,7 @@ void wxControl::DoSetSize(int x, int y, GetEventHandler()->ProcessEvent(event); } - // Set up port - WindowRef rootwindow = GetMacRootWindow() ; - wxWindow* wxrootwindow = wxFindWinFromMacWindow( rootwindow ) ; - wxMacDrawingHelper focus( wxrootwindow ); - - ::SetThemeWindowBackground( rootwindow , kThemeBrushDialogBackgroundActive , false ) ; - // Update window at old and new positions - SetRect(&newbounds, m_x, m_y, m_x + m_width, m_y + m_height); - InvalWindowRect( rootwindow , &oldbounds ); - InvalWindowRect( rootwindow , &newbounds ); - - MacRepositionScrollBars() ; - - if ( !wxrootwindow->IsKindOf( CLASSINFO( wxDialog ) ) ) - { - ::SetThemeWindowBackground( rootwindow, kThemeBrushDocumentWindowBackground, false ); - } + Refresh() ; } } @@ -646,7 +599,7 @@ bool wxControl::Show(bool show) { if ( m_macControlIsShown ) { - ::HideControl( m_macControl ) ; + ::UMAHideControl( m_macControl ) ; m_macControlIsShown = false ; } } @@ -679,21 +632,14 @@ bool wxControl::Enable(bool enable) void wxControl::Refresh(bool eraseBack, const wxRect *rect) { - if ( m_macControl ) - { - wxWindow::Refresh( eraseBack , rect ) ; - } - else - { wxWindow::Refresh( eraseBack , rect ) ; - } } void wxControl::MacRedrawControl() { if ( m_macControl ) { - WindowRef window = GetMacRootWindow() ; + WindowRef window = MacGetRootWindow() ; if ( window ) { wxWindow* win = wxFindWinFromMacWindow( window ) ; @@ -701,29 +647,8 @@ void wxControl::MacRedrawControl() { wxMacDrawingHelper help( win ) ; // the mac control manager always assumes to have the origin at 0,0 - SetOrigin( 0 , 0 ) ; - - wxWindow* parent = GetParent() ; - while ( parent ) - { - if( parent->MacGetWindowData() ) - { - ::SetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , kThemeBrushDialogBackgroundActive , false ) ; - break ; - } - - if( parent->IsKindOf( CLASSINFO( wxNotebook ) ) || parent->IsKindOf( CLASSINFO( wxTabCtrl ) )) - { - if ( ((wxControl*)parent)->m_macControl ) - SetUpControlBackground( ((wxControl*)parent)->m_macControl , -1 , true ) ; - break ; - } - - parent = parent->GetParent() ; - } - + wxDC::MacSetupBackgroundForCurrentPort( MacGetBackgroundBrush() ) ; UMADrawControl( m_macControl ) ; - ::SetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ; } } } @@ -733,7 +658,7 @@ void wxControl::OnPaint(wxPaintEvent& event) { if ( m_macControl ) { - WindowRef window = GetMacRootWindow() ; + WindowRef window = MacGetRootWindow() ; if ( window ) { wxWindow* win = wxFindWinFromMacWindow( window ) ; @@ -741,43 +666,19 @@ void wxControl::OnPaint(wxPaintEvent& event) { wxMacDrawingHelper help( win ) ; // the mac control manager always assumes to have the origin at 0,0 - SetOrigin( 0 , 0 ) ; - - wxWindow* parent = GetParent() ; - while ( parent ) - { - if( parent->MacGetWindowData() ) - { - ::SetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , kThemeBrushDialogBackgroundActive , false ) ; - break ; - } - - if( parent->IsKindOf( CLASSINFO( wxNotebook ) ) || parent->IsKindOf( CLASSINFO( wxTabCtrl ) )) - { - if ( ((wxControl*)parent)->m_macControl ) - SetUpControlBackground( ((wxControl*)parent)->m_macControl , -1 , true ) ; - break ; - } - - parent = parent->GetParent() ; - } - + wxDC::MacSetupBackgroundForCurrentPort( MacGetBackgroundBrush() ) ; UMADrawControl( m_macControl ) ; - ::SetThemeWindowBackground( win->MacGetWindowData()->m_macWindow , win->MacGetWindowData()->m_macWindowBackgroundTheme , false ) ; } } } else { - // wxWindow::OnPaint( event ) ; + event.Skip() ; } } void wxControl::OnEraseBackground(wxEraseEvent& event) { - // In general, you don't want to erase the background of a control, - // or you'll get a flicker. - // TODO: move this 'null' function into each control that - // might flicker. + wxWindow::OnEraseBackground( event ) ; } @@ -814,7 +715,7 @@ void wxControl::OnMouseEvent( wxMouseEvent &event ) ControlHandle control ; Point localwhere ; SInt16 controlpart ; - WindowRef window = GetMacRootWindow() ; + WindowRef window = MacGetRootWindow() ; localwhere.h = x ; localwhere.v = y ;