X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3870b2ff595ba4bb4f0397ace77ceeb9628e94d..b7d3a622aa58729f92941c2b6710c5481b16f19e:/src/univ/stattext.cpp diff --git a/src/univ/stattext.cpp b/src/univ/stattext.cpp index 589179cd9c..772a8e9b38 100644 --- a/src/univ/stattext.cpp +++ b/src/univ/stattext.cpp @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: univ/stattext.cpp +// Name: src/univ/stattext.cpp // Purpose: wxStaticText // Author: Vadim Zeitlin // Modified by: // Created: 14.08.00 // RCS-ID: $Id$ // Copyright: (c) 2000 SciTech Software, Inc. (www.scitechsoft.com) -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "univstattext.h" -#endif - #include "wx/wxprec.h" #ifdef __BORLANDC__ @@ -29,9 +25,10 @@ #if wxUSE_STATTEXT +#include "wx/stattext.h" + #ifndef WX_PRECOMP #include "wx/dcclient.h" - #include "wx/stattext.h" #include "wx/validate.h" #endif @@ -42,8 +39,6 @@ // implementation // ============================================================================ -IMPLEMENT_ABSTRACT_CLASS(wxStaticText, wxControl) - // ---------------------------------------------------------------------------- // creation // ---------------------------------------------------------------------------- @@ -57,41 +52,45 @@ bool wxStaticText::Create(wxWindow *parent, const wxString &name) { if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) ) - return FALSE; + return false; SetLabel(label); - SetBestSize(size); + SetInitialSize(size); - return TRUE; + 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