X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b905d6cc083a38d46ae48712f5221236247a39ce..f53c8638250a66a3721eff864fbc89ab6e9dfd35:/src/mac/carbon/statbox.cpp diff --git a/src/mac/carbon/statbox.cpp b/src/mac/carbon/statbox.cpp index cc29e9b267..9080cab4f1 100644 --- a/src/mac/carbon/statbox.cpp +++ b/src/mac/carbon/statbox.cpp @@ -9,10 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "statbox.h" -#endif - #include "wx/wxprec.h" #if wxUSE_STATBOX @@ -20,38 +16,64 @@ #include "wx/statbox.h" #include "wx/mac/uma.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl) -#endif - -/* - * Static box - */ - -bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) + + +bool wxStaticBox::Create( wxWindow *parent, + wxWindowID id, + const wxString& label, + const wxPoint& pos, + const wxSize& size, + long style, + const wxString& name ) { - m_macIsUserPane = FALSE ; - - if ( !wxControl::Create(parent, id, pos, size, - style, wxDefaultValidator, name) ) + m_macIsUserPane = false; + + if ( !wxControl::Create( parent, id, pos, size, style, wxDefaultValidator, name ) ) return false; - m_label = label ; + m_labelOrig = m_label = label; + + Rect bounds = wxMacGetBoundsForControl( this, pos, size ); + + m_peer = new wxMacControl( this ); + OSStatus err = CreateGroupBoxControl( + MAC_WXHWND(parent->MacGetTopLevelWindowRef()), &bounds, CFSTR(""), + true /*primary*/, m_peer->GetControlRefAddr() ); + verify_noerr( err ); + + MacPostControlCreate( pos, size ); - Rect bounds = wxMacGetBoundsForControl( this , pos , size ) ; - - m_peer = new wxMacControl(this) ; - verify_noerr(CreateGroupBoxControl(MAC_WXHWND(parent->MacGetTopLevelWindowRef()),&bounds, CFSTR("") , - true /*primary*/ , m_peer->GetControlRefAddr() ) ) ; + return true; +} + +void wxStaticBox::GetBordersForSizer(int *borderTop, int *borderOther) const +{ + static int extraTop = -1; // Uninitted + static int other = 5; + + if ( extraTop == -1 ) + { + // The minimal border used for the top. + // Later on, the staticbox's font height is added to this. + extraTop = 0; - MacPostControlCreate(pos,size) ; - - return TRUE; + if ( UMAGetSystemVersion() >= 0x1030 ) // Panther + { + // As indicated by the HIG, Panther needs an extra border of 11 + // pixels (otherwise overlapping occurs at the top). The "other" + // border has to be 11. + extraTop = 11; + other = 11; + } + } + + *borderTop = extraTop; + if ( !m_label.empty() ) + *borderTop += GetCharHeight(); + + *borderOther = other; } -#endif \ No newline at end of file +#endif // wxUSE_STATBOX +