From 088ddc4e370d808a2f7e923b671856c303dfa45c Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sat, 16 Apr 2005 13:34:36 +0000 Subject: [PATCH] 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 --- src/gtk/stattext.cpp | 13 +++++++------ src/gtk1/stattext.cpp | 13 +++++++------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/gtk/stattext.cpp b/src/gtk/stattext.cpp index da7039c8ed..316d7b2888 100644 --- a/src/gtk/stattext.cpp +++ b/src/gtk/stattext.cpp @@ -85,9 +85,6 @@ bool wxStaticText::Create(wxWindow *parent, static const float labelAlignments[] = { 0.0, 1.0, 0.5 }; 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 ); m_parent->DoAddChild( this ); @@ -182,12 +179,14 @@ wxSize wxStaticText::DoGetBestSize() const // Do not return any arbitrary default value... wxASSERT_MSG( m_widget, wxT("wxStaticText::DoGetBestSize called before creation") ); - int width = m_width; #ifndef __WXGTK20__ + // This resets the internal GTK1 size calculation, which + // otherwise would be cashed (incorrectly) gtk_label_set_pattern( GTK_LABEL(m_widget), NULL ); - if (width < 3) width = -1; #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; req.width = -1; @@ -195,6 +194,8 @@ wxSize wxStaticText::DoGetBestSize() const (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request ) (m_widget, &req ); + gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE ); + return wxSize (req.width, req.height); } diff --git a/src/gtk1/stattext.cpp b/src/gtk1/stattext.cpp index da7039c8ed..316d7b2888 100644 --- a/src/gtk1/stattext.cpp +++ b/src/gtk1/stattext.cpp @@ -85,9 +85,6 @@ bool wxStaticText::Create(wxWindow *parent, static const float labelAlignments[] = { 0.0, 1.0, 0.5 }; 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 ); m_parent->DoAddChild( this ); @@ -182,12 +179,14 @@ wxSize wxStaticText::DoGetBestSize() const // Do not return any arbitrary default value... wxASSERT_MSG( m_widget, wxT("wxStaticText::DoGetBestSize called before creation") ); - int width = m_width; #ifndef __WXGTK20__ + // This resets the internal GTK1 size calculation, which + // otherwise would be cashed (incorrectly) gtk_label_set_pattern( GTK_LABEL(m_widget), NULL ); - if (width < 3) width = -1; #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; req.width = -1; @@ -195,6 +194,8 @@ wxSize wxStaticText::DoGetBestSize() const (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request ) (m_widget, &req ); + gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE ); + return wxSize (req.width, req.height); }