use XmNrecomputeSize instead of manually resizing the label (and unmanaging/managing it in process resulting in flicker) (patch 1420899)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2006-02-05 23:20:26 +00:00
parent 2ce89389bf
commit 3fe5be6e01

View File

@ -60,6 +60,7 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id,
XmNalignment, ((style & wxALIGN_RIGHT) ? XmALIGNMENT_END :
((style & wxALIGN_CENTRE) ? XmALIGNMENT_CENTER :
XmALIGNMENT_BEGINNING)),
XmNrecomputeSize, ((style & wxST_NO_AUTORESIZE) ? TRUE : FALSE),
NULL);
m_mainWidget = borderWidget ? borderWidget : m_labelWidget;
@ -79,29 +80,10 @@ void wxStaticText::SetLabel(const wxString& label)
// This variable means we don't need so many casts later.
Widget widget = (Widget) m_labelWidget;
if (GetWindowStyle() & wxST_NO_AUTORESIZE)
{
XtUnmanageChild(widget);
Dimension width, height;
XtVaGetValues(widget, XmNwidth, &width, XmNheight, &height, NULL);
XtVaSetValues(widget,
XmNlabelString, label_str(),
XmNlabelType, XmSTRING,
NULL);
XtVaSetValues(widget,
XmNwidth, width,
XmNheight, height,
NULL);
XtManageChild(widget);
}
else
{
XtVaSetValues(widget,
XmNlabelString, label_str(),
XmNlabelType, XmSTRING,
NULL);
}
}
#endif // wxUSE_STATTEXT