// implementation
// ============================================================================
-IMPLEMENT_ABSTRACT_CLASS(wxStaticText, wxControl)
+IMPLEMENT_ABSTRACT_CLASS(wxStaticText, wxGenericStaticText)
// ----------------------------------------------------------------------------
// creation
}
// ----------------------------------------------------------------------------
-// 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 result of GetEllipsizedLabelWithoutMarkup:
+ DoSetLabel(GetEllipsizedLabelWithoutMarkup());
}
-// ----------------------------------------------------------------------------
-// drawing
-// ----------------------------------------------------------------------------
-
-void wxStaticText::DoDraw(wxControlRenderer *renderer)
+void wxStaticText::DoSetLabel(const wxString& str)
{
- if ( UseBgCol() )
- {
- wxDC& dc = renderer->GetDC();
- dc.SetBrush(GetBackgroundColour());
- dc.SetPen(*wxTRANSPARENT_PEN);
- dc.DrawRectangle(renderer->GetRect());
- }
+ UnivDoSetLabel(str);
+}
- renderer->DrawLabel();
+wxString wxStaticText::DoGetLabel() const
+{
+ return wxControl::GetLabel();
}
+/*
+ FIXME: UpdateLabel() should be called on size events to allow correct
+ dynamic ellipsizing of the label
+*/
+
#endif // wxUSE_STATTEXT