/////////////////////////////////////////////////////////////////////////////
-// Name: src/osx/carbon/stattext.cpp
+// Name: src/osx/stattext_osx.cpp
// Purpose: wxStaticText
// Author: Stefan Csomor
// Modified by:
// Created: 04/01/98
-// RCS-ID: $Id: stattext.cpp 54845 2008-07-30 14:52:41Z SC $
+// RCS-ID: $Id$
// Copyright: (c) Stefan Csomor
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
-IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl)
-
bool wxStaticText::Create( wxWindow *parent,
wxWindowID id,
const wxSize& size,
long style,
const wxString& name )
-{
- m_macIsUserPane = false;
-
+{
+ DontCreatePeer();
+
if ( !wxControl::Create( parent, id, pos, size, style, wxDefaultValidator, name ) )
return false;
- m_peer = wxWidgetImpl::CreateStaticText( this, parent, id, label, pos, size, style, GetExtraStyle() );
+ SetPeer(wxWidgetImpl::CreateStaticText( this, parent, id, label, pos, size, style, GetExtraStyle() ));
MacPostControlCreate( pos, size );
SetLabel(label);
+ if ( HasFlag(wxST_NO_AUTORESIZE) )
+ {
+ // Normally this is done in SetLabel() below but we avoid doing it when
+ // this style is used, so we need to explicitly do it in the ctor in
+ // this case or otherwise the control would retain its initial tiny size.
+ InvalidateBestSize();
+ SetInitialSize(size);
+ }
return true;
}
m_labelOrig = label;
// middle/end ellipsization is handled by the OS:
- if ( HasFlag(wxST_ELLIPSIZE_END) || HasFlag(wxST_ELLIPSIZE_MIDDLE)
+ if ( HasFlag(wxST_ELLIPSIZE_END) || HasFlag(wxST_ELLIPSIZE_MIDDLE)
#if wxOSX_USE_COCOA // Cocoa has all three modes
- || HasFlag(wxST_ELLIPSIZE_START)
+ || HasFlag(wxST_ELLIPSIZE_START)
#endif
)
{
- // remove markup
- wxString str(label);
- if (HasFlag(wxST_MARKUP))
- str = RemoveMarkup(label);
-
- // and leave ellipsization to the OS
- DoSetLabel(str);
+ // leave ellipsization to the OS
+ DoSetLabel(GetLabel());
}
else // not supported natively
{
- DoSetLabel(GetEllipsizedLabelWithoutMarkup());
+ DoSetLabel(GetEllipsizedLabel());
}
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) &&
void wxStaticText::DoSetLabel(const wxString& label)
{
- m_labelOrig = label;
m_label = RemoveMnemonics(label);
- m_peer->SetLabel(m_label , GetFont().GetEncoding() );
+ GetPeer()->SetLabel(m_label , GetFont().GetEncoding() );
}
+#if wxUSE_MARKUP && wxOSX_USE_COCOA
+
+bool wxStaticText::DoSetLabelMarkup(const wxString& markup)
+{
+ if ( !wxStaticTextBase::DoSetLabelMarkup(markup) )
+ return false;
+
+ GetPeer()->SetLabelMarkup(markup);
+
+ return true;
+}
+
+#endif // wxUSE_MARKUP && wxOSX_USE_COCOA
+
wxString wxStaticText::DoGetLabel() const
{
return m_label;