// implementation
// ============================================================================
-IMPLEMENT_ABSTRACT_CLASS(wxStaticText, wxControl)
-
// ----------------------------------------------------------------------------
// creation
// ----------------------------------------------------------------------------
return false;
SetLabel(label);
- SetBestSize(size);
+ SetInitialSize(size);
return true;
}
// ----------------------------------------------------------------------------
-// size management
+// drawing
// ----------------------------------------------------------------------------
-void wxStaticText::SetLabel(const wxString& label)
+void wxStaticText::DoDraw(wxControlRenderer *renderer)
{
- wxControl::SetLabel(label);
+ renderer->DrawLabel();
}
-wxSize wxStaticText::DoGetBestClientSize() const
+void wxStaticText::SetLabel(const wxString& str)
{
- wxStaticText *self = wxConstCast(this, wxStaticText);
- wxClientDC dc(self);
- dc.SetFont(GetFont());
- wxCoord width, height;
- dc.GetMultiLineTextExtent(GetLabel(), &width, &height);
+ // save original label
+ m_labelOrig = str;
- return wxSize(width, height);
+ // draw as real label the abbreviated version of it
+ DoSetLabel(GetEllipsizedLabel());
}
-// ----------------------------------------------------------------------------
-// drawing
-// ----------------------------------------------------------------------------
+void wxStaticText::DoSetLabel(const wxString& str)
+{
+ UnivDoSetLabel(str);
+}
-void wxStaticText::DoDraw(wxControlRenderer *renderer)
+wxString wxStaticText::DoGetLabel() const
{
- renderer->DrawLabel();
+ return wxControl::GetLabel();
}
+/*
+ FIXME: UpdateLabel() should be called on size events to allow correct
+ dynamic ellipsizing of the label
+*/
+
#endif // wxUSE_STATTEXT