This should make the GTK statictext control wrap

and behave like the MSW. I'm still doing further
    tests.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 2005-04-16 13:34:36 +00:00
parent 52cb607ea9
commit 088ddc4e37
2 changed files with 14 additions and 12 deletions

View File

@ -85,9 +85,6 @@ bool wxStaticText::Create(wxWindow *parent,
static const float labelAlignments[] = { 0.0, 1.0, 0.5 }; static const float labelAlignments[] = { 0.0, 1.0, 0.5 };
gtk_misc_set_alignment(GTK_MISC(m_widget), labelAlignments[justify], 0.0); gtk_misc_set_alignment(GTK_MISC(m_widget), labelAlignments[justify], 0.0);
if (size.x == -1)
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
else
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE ); gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
m_parent->DoAddChild( this ); m_parent->DoAddChild( this );
@ -182,12 +179,14 @@ wxSize wxStaticText::DoGetBestSize() const
// Do not return any arbitrary default value... // Do not return any arbitrary default value...
wxASSERT_MSG( m_widget, wxT("wxStaticText::DoGetBestSize called before creation") ); wxASSERT_MSG( m_widget, wxT("wxStaticText::DoGetBestSize called before creation") );
int width = m_width;
#ifndef __WXGTK20__ #ifndef __WXGTK20__
// This resets the internal GTK1 size calculation, which
// otherwise would be cashed (incorrectly)
gtk_label_set_pattern( GTK_LABEL(m_widget), NULL ); gtk_label_set_pattern( GTK_LABEL(m_widget), NULL );
if (width < 3) width = -1;
#endif #endif
gtk_widget_set_usize( m_widget, width, -1 );
// GetBestSize is supposed to return unwrapped size
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
GtkRequisition req; GtkRequisition req;
req.width = -1; req.width = -1;
@ -195,6 +194,8 @@ wxSize wxStaticText::DoGetBestSize() const
(* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request ) (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request )
(m_widget, &req ); (m_widget, &req );
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
return wxSize (req.width, req.height); return wxSize (req.width, req.height);
} }

View File

@ -85,9 +85,6 @@ bool wxStaticText::Create(wxWindow *parent,
static const float labelAlignments[] = { 0.0, 1.0, 0.5 }; static const float labelAlignments[] = { 0.0, 1.0, 0.5 };
gtk_misc_set_alignment(GTK_MISC(m_widget), labelAlignments[justify], 0.0); gtk_misc_set_alignment(GTK_MISC(m_widget), labelAlignments[justify], 0.0);
if (size.x == -1)
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
else
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE ); gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
m_parent->DoAddChild( this ); m_parent->DoAddChild( this );
@ -182,12 +179,14 @@ wxSize wxStaticText::DoGetBestSize() const
// Do not return any arbitrary default value... // Do not return any arbitrary default value...
wxASSERT_MSG( m_widget, wxT("wxStaticText::DoGetBestSize called before creation") ); wxASSERT_MSG( m_widget, wxT("wxStaticText::DoGetBestSize called before creation") );
int width = m_width;
#ifndef __WXGTK20__ #ifndef __WXGTK20__
// This resets the internal GTK1 size calculation, which
// otherwise would be cashed (incorrectly)
gtk_label_set_pattern( GTK_LABEL(m_widget), NULL ); gtk_label_set_pattern( GTK_LABEL(m_widget), NULL );
if (width < 3) width = -1;
#endif #endif
gtk_widget_set_usize( m_widget, width, -1 );
// GetBestSize is supposed to return unwrapped size
gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
GtkRequisition req; GtkRequisition req;
req.width = -1; req.width = -1;
@ -195,6 +194,8 @@ wxSize wxStaticText::DoGetBestSize() const
(* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request ) (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request )
(m_widget, &req ); (m_widget, &req );
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
return wxSize (req.width, req.height); return wxSize (req.width, req.height);
} }