X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/584bede0618774ad7f62476c9adddeb9776fb737..e7ca6139d062c37cc7c056b6647097e999b714cd:/src/mac/stattext.cpp diff --git a/src/mac/stattext.cpp b/src/mac/stattext.cpp index 68e1453ba8..8f78cc60ff 100644 --- a/src/mac/stattext.cpp +++ b/src/mac/stattext.cpp @@ -23,10 +23,10 @@ #include #if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxStaticTextBase) +IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) #endif -#include +#include "wx/mac/uma.h" BEGIN_EVENT_TABLE(wxStaticText, wxStaticTextBase) EVT_PAINT(wxStaticText::OnPaint) @@ -151,7 +151,7 @@ void wxStaticText::OnDraw( wxDC &dc ) if( parent->IsKindOf( CLASSINFO( wxNotebook ) ) || parent->IsKindOf( CLASSINFO( wxTabCtrl ) )) { if ( ((wxControl*)parent)->GetMacControl() ) { - Rect rect = { -32767 , -32767 , 32767 , 32767 } ; + Rect rect = { -10000 , -10000 , 10000 , 10000 } ; // MacOS X was having a coord rollover if ( DrawThemeTabPane != (void*)kUnresolvedCFragSymbolAddress ) { DrawThemeTabPane ( &rect, kThemeStateActive); @@ -189,14 +189,17 @@ void wxStaticText::OnPaint( wxPaintEvent &event ) wxSize wxStaticText::DoGetBestSize() const { - int x , y ; - int widthTextMax = 0, widthLine, + int x,y ; + int widthTextMax = 0, widthLine, heightTextTotal = 0, heightLineDefault = 0, heightLine = 0; - + wxString curLine; - for ( const wxChar *pc = m_label; ; pc++ ) { - if ( *pc == wxT('\n') || *pc == wxT('\0') ) { - if ( !curLine ) { + for ( const wxChar *pc = m_label; ; pc++ ) + { + if ( *pc == wxT('\n') || *pc == wxT('\0') ) + { + if ( !curLine ) + { // we can't use GetTextExtent - it will return 0 for both width // and height and an empty line should count in height // calculation @@ -206,12 +209,17 @@ wxSize wxStaticText::DoGetBestSize() const GetTextExtent(_T("W"), NULL, &heightLineDefault); heightTextTotal += heightLineDefault; + + heightTextTotal++; // FIXME: why is this necessary? } - else { + else + { GetTextExtent(curLine, &widthLine, &heightLine); if ( widthLine > widthTextMax ) widthTextMax = widthLine; heightTextTotal += heightLine; + + heightTextTotal++; // FIXME: why is this necessary? } if ( *pc == wxT('\n') ) {