/////////////////////////////////////////////////////////////////////////////
-// 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
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
- #pragma implementation "stattext.h"
-#endif
-
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#if wxUSE_STATTEXT
+#include "wx/stattext.h"
+
#ifndef WX_PRECOMP
#include "wx/dcclient.h"
- #include "wx/stattext.h"
#include "wx/validate.h"
#endif
// implementation
// ============================================================================
-IMPLEMENT_ABSTRACT_CLASS(wxStaticText, wxControl)
-
// ----------------------------------------------------------------------------
// creation
// ----------------------------------------------------------------------------
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