X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ced2fad6f29487fb7db44b7f1876e889535865bc..b5a9b87e1620e52f1f13d2619b4677f2b365c93f:/src/osx/window_osx.cpp?ds=sidebyside diff --git a/src/osx/window_osx.cpp b/src/osx/window_osx.cpp index 5ba3fcaf50..42c94ae660 100644 --- a/src/osx/window_osx.cpp +++ b/src/osx/window_osx.cpp @@ -67,9 +67,11 @@ #include "wx/osx/uma.h" #else #include "wx/osx/private.h" +#if wxOSX_USE_COCOA // bring in themeing #include #endif +#endif #define MAC_SCROLLBAR_SIZE 15 #define MAC_SMALL_SCROLLBAR_SIZE 11 @@ -242,7 +244,11 @@ bool wxWindowMac::Create(wxWindowMac *parent, #ifndef __WXUNIVERSAL__ // Don't give scrollbars to wxControls unless they ask for them - if ( (! IsKindOf(CLASSINFO(wxControl)) && ! IsKindOf(CLASSINFO(wxStatusBar))) + if ( (! IsKindOf(CLASSINFO(wxControl)) +#if wxUSE_STATUSBAR + && ! IsKindOf(CLASSINFO(wxStatusBar)) +#endif + ) || (IsKindOf(CLASSINFO(wxControl)) && ((style & wxHSCROLL) || (style & wxVSCROLL)))) { MacCreateScrollBars( style ) ; @@ -257,10 +263,12 @@ bool wxWindowMac::Create(wxWindowMac *parent, void wxWindowMac::MacChildAdded() { +#if wxUSE_SCROLLBAR if ( m_vScrollBar ) m_vScrollBar->Raise() ; if ( m_hScrollBar ) m_hScrollBar->Raise() ; +#endif } void wxWindowMac::MacPostControlCreate(const wxPoint& WXUNUSED(pos), const wxSize& size) @@ -325,7 +333,7 @@ void wxWindowMac::DoSetWindowVariant( wxWindowVariant variant ) break ; default: - wxFAIL_MSG(_T("unexpected window variant")); + wxFAIL_MSG(wxT("unexpected window variant")); break ; } m_peer->SetData(kControlEntireControl, kControlSizeTag, &size ) ; @@ -354,7 +362,7 @@ void wxWindowMac::DoSetWindowVariant( wxWindowVariant variant ) break ; default: - wxFAIL_MSG(_T("unexpected window variant")); + wxFAIL_MSG(wxT("unexpected window variant")); break ; } @@ -667,13 +675,14 @@ void wxWindowMac::DoGetClientSize( int *x, int *y ) const int left, top; m_peer->GetContentArea( left, top, ww, hh ); - +#if wxUSE_SCROLLBAR if (m_hScrollBar && m_hScrollBar->IsShown() ) hh -= m_hScrollBar->GetSize().y ; if (m_vScrollBar && m_vScrollBar->IsShown() ) ww -= m_vScrollBar->GetSize().x ; +#endif if (x) *x = ww; if (y) @@ -889,16 +898,21 @@ wxSize wxWindowMac::DoGetBestSize() const r.width = r.height = 16 ; - if ( IsKindOf( CLASSINFO( wxScrollBar ) ) ) + if ( 0 ) + { + } +#if wxUSE_SCROLLBAR + else if ( IsKindOf( CLASSINFO( wxScrollBar ) ) ) { r.height = 16 ; } - #if wxUSE_SPINBTN +#endif +#if wxUSE_SPINBTN else if ( IsKindOf( CLASSINFO( wxSpinButton ) ) ) { r.height = 24 ; } - #endif +#endif else { // return wxWindowBase::DoGetBestSize() ; @@ -1019,9 +1033,14 @@ void wxWindowMac::DoSetClientSize(int clientwidth, int clientheight) void wxWindowMac::SetLabel(const wxString& title) { + if ( title == m_label ) + return; + m_label = title ; - if ( m_peer && m_peer->IsOk() && !(IsKindOf( CLASSINFO(wxButton) ) && GetId() == wxID_HELP) ) + InvalidateBestSize(); + + if ( m_peer && m_peer->IsOk() ) m_peer->SetLabel( wxStripMenuCodes(m_label, wxStrip_Mnemonics), GetFont().GetEncoding() ) ; // do not trigger refreshes upon invisible and possible partly created objects @@ -1182,6 +1201,7 @@ void wxWindowMac::WarpPointer(int WXUNUSED(x_pos), int WXUNUSED(y_pos)) int wxWindowMac::GetScrollPos(int orient) const { +#if wxUSE_SCROLLBAR if ( orient == wxHORIZONTAL ) { if ( m_hScrollBar ) @@ -1192,7 +1212,7 @@ int wxWindowMac::GetScrollPos(int orient) const if ( m_vScrollBar ) return m_vScrollBar->GetThumbPosition() ; } - +#endif return 0; } @@ -1200,6 +1220,7 @@ int wxWindowMac::GetScrollPos(int orient) const // of positions that we can scroll. int wxWindowMac::GetScrollRange(int orient) const { +#if wxUSE_SCROLLBAR if ( orient == wxHORIZONTAL ) { if ( m_hScrollBar ) @@ -1210,12 +1231,13 @@ int wxWindowMac::GetScrollRange(int orient) const if ( m_vScrollBar ) return m_vScrollBar->GetRange() ; } - +#endif return 0; } int wxWindowMac::GetScrollThumb(int orient) const { +#if wxUSE_SCROLLBAR if ( orient == wxHORIZONTAL ) { if ( m_hScrollBar ) @@ -1226,12 +1248,13 @@ int wxWindowMac::GetScrollThumb(int orient) const if ( m_vScrollBar ) return m_vScrollBar->GetThumbSize() ; } - +#endif return 0; } void wxWindowMac::SetScrollPos(int orient, int pos, bool WXUNUSED(refresh)) { +#if wxUSE_SCROLLBAR if ( orient == wxHORIZONTAL ) { if ( m_hScrollBar ) @@ -1242,6 +1265,7 @@ void wxWindowMac::SetScrollPos(int orient, int pos, bool WXUNUSED(refresh)) if ( m_vScrollBar ) m_vScrollBar->SetThumbPosition( pos ) ; } +#endif } void @@ -1275,6 +1299,7 @@ void wxWindowMac::MacPaintGrowBox() if ( IsTopLevel() ) return ; +#if wxUSE_SCROLLBAR if ( MacHasScrollBarCorner() ) { CGContextRef cgContext = (CGContextRef) MacGetCGContextRef() ; @@ -1303,6 +1328,7 @@ void wxWindowMac::MacPaintGrowBox() CGContextFillRect( cgContext, cgrect ); CGContextRestoreGState( cgContext ); } +#endif } void wxWindowMac::MacPaintBorders( int WXUNUSED(leftOrigin) , int WXUNUSED(rightOrigin) ) @@ -1363,16 +1389,18 @@ void wxWindowMac::MacPaintBorders( int WXUNUSED(leftOrigin) , int WXUNUSED(right void wxWindowMac::RemoveChild( wxWindowBase *child ) { +#if wxUSE_SCROLLBAR if ( child == m_hScrollBar ) m_hScrollBar = NULL ; if ( child == m_vScrollBar ) m_vScrollBar = NULL ; - +#endif wxWindowBase::RemoveChild( child ) ; } void wxWindowMac::DoUpdateScrollbarVisibility() { +#if wxUSE_SCROLLBAR bool triggerSizeEvent = false; if ( m_hScrollBar ) @@ -1404,18 +1432,21 @@ void wxWindowMac::DoUpdateScrollbarVisibility() event.SetEventObject(this); HandleWindowEvent(event); } +#endif } // New function that will replace some of the above. void wxWindowMac::SetScrollbar(int orient, int pos, int thumb, int range, bool refresh) { +#if wxUSE_SCROLLBAR if ( orient == wxHORIZONTAL && m_hScrollBar ) m_hScrollBar->SetScrollbar(pos, thumb, range, thumb, refresh); else if ( orient == wxVERTICAL && m_vScrollBar ) m_vScrollBar->SetScrollbar(pos, thumb, range, thumb, refresh); DoUpdateScrollbarVisibility(); +#endif } // Does a physical scroll @@ -1444,10 +1475,12 @@ void wxWindowMac::ScrollWindow(int dx, int dy, const wxRect *rect) child = node->GetData(); if (child == NULL) continue; +#if wxUSE_SCROLLBAR if (child == m_vScrollBar) continue; if (child == m_hScrollBar) continue; +#endif if (child->IsTopLevel()) continue; @@ -1468,6 +1501,7 @@ void wxWindowMac::ScrollWindow(int dx, int dy, const wxRect *rect) void wxWindowMac::MacOnScroll( wxScrollEvent &event ) { +#if wxUSE_SCROLLBAR if ( event.GetEventObject() == m_vScrollBar || event.GetEventObject() == m_hScrollBar ) { wxScrollWinEvent wevent; @@ -1494,6 +1528,7 @@ void wxWindowMac::MacOnScroll( wxScrollEvent &event ) HandleWindowEvent(wevent); } +#endif } wxWindow *wxWindowBase::DoFindFocus() @@ -1778,7 +1813,7 @@ bool wxWindowMac::MacDoRedraw( long time ) break; } - if ( UseBgCol() && MacGetTopLevelWindow() ) + if ( UseBgCol() ) { dc.SetBackground(GetBackgroundColour()); dc.Clear(); @@ -1831,10 +1866,12 @@ void wxWindowMac::MacPaintChildrenBorders() child = node->GetData(); if (child == NULL) continue; +#if wxUSE_SCROLLBAR if (child == m_vScrollBar) continue; if (child == m_hScrollBar) continue; +#endif if (child->IsTopLevel()) continue; if (!child->IsShown()) @@ -1867,6 +1904,7 @@ WXWindow wxWindowMac::MacGetTopLevelWindowRef() const bool wxWindowMac::MacHasScrollBarCorner() const { +#if wxUSE_SCROLLBAR /* Returns whether the scroll bars in a wxScrolledWindow should be * shortened. Scroll bars should be shortened if either: * @@ -1927,10 +1965,14 @@ bool wxWindowMac::MacHasScrollBarCorner() const // No parent frame found return false ; } +#else + return false; +#endif } void wxWindowMac::MacCreateScrollBars( long style ) { +#if wxUSE_SCROLLBAR wxASSERT_MSG( m_vScrollBar == NULL && m_hScrollBar == NULL , wxT("attempt to create window twice") ) ; if ( style & ( wxVSCROLL | wxHSCROLL ) ) @@ -1967,17 +2009,23 @@ void wxWindowMac::MacCreateScrollBars( long style ) // because the create does not take into account the client area origin // we might have a real position shift MacRepositionScrollBars() ; +#endif } bool wxWindowMac::MacIsChildOfClientArea( const wxWindow* child ) const { - bool result = ((child == NULL) || ((child != m_hScrollBar) && (child != m_vScrollBar))); + bool result = ((child == NULL) +#if wxUSE_SCROLLBAR + || ((child != m_hScrollBar) && (child != m_vScrollBar)) +#endif + ); return result ; } void wxWindowMac::MacRepositionScrollBars() { +#if wxUSE_SCROLLBAR if ( !m_hScrollBar && !m_vScrollBar ) return ; @@ -2000,6 +2048,7 @@ void wxWindowMac::MacRepositionScrollBars() m_vScrollBar->SetSize( vPoint.x , vPoint.y, vSize.x, vSize.y , wxSIZE_ALLOW_MINUS_ONE ); if ( m_hScrollBar ) m_hScrollBar->SetSize( hPoint.x , hPoint.y, hSize.x, hSize.y, wxSIZE_ALLOW_MINUS_ONE ); +#endif } bool wxWindowMac::AcceptsFocus() const