X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9714ffa0c4a0de3f5a2e268b667ca0064f72307a..d21d2e5adf7a5acf3b496a9c4e87eab220bd75d8:/src/mac/stattext.cpp diff --git a/src/mac/stattext.cpp b/src/mac/stattext.cpp index 783d231f9b..8f78cc60ff 100644 --- a/src/mac/stattext.cpp +++ b/src/mac/stattext.cpp @@ -26,9 +26,9 @@ IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) #endif -#include +#include "wx/mac/uma.h" -BEGIN_EVENT_TABLE(wxStaticText, wxControl) +BEGIN_EVENT_TABLE(wxStaticText, wxStaticTextBase) EVT_PAINT(wxStaticText::OnPaint) END_EVENT_TABLE() @@ -52,7 +52,7 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id, m_label = label ; bool ret = wxControl::Create( parent, id, pos, size, style , wxDefaultValidator , name ); - SetSizeOrDefault( size ) ; + SetBestSize( size ) ; return ret; } @@ -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') ) { @@ -235,7 +243,7 @@ void wxStaticText::SetLabel(const wxString& st ) SetTitle( st ) ; m_label = st ; if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) ) - SetSizeOrDefault() ; + SetSize( GetBestSize() ) ; Refresh() ; MacUpdateImmediately() ;