#pragma hdrstop
#endif
+#include "wx/textwrapper.h"
#include "wx/private/stattext.h"
#ifndef WX_PRECOMP
lineStart = p;
}
- if ( p == text.end() || *p == _T('\n') )
+ if ( p == text.end() || *p == wxT('\n') )
{
DoOutputLine(line);
}
else // not EOL
{
- if ( *p == _T(' ') )
+ if ( *p == wxT(' ') )
lastSpace = p;
line += *p;
virtual void OnNewLine()
{
- m_text += _T('\n');
+ m_text += wxT('\n');
}
private:
return RemoveMnemonics(ret);
}
-/*static*/
+void wxStaticTextBase::SetLabelText(const wxString& text)
+{
+ wxString str = text;
+
+ if (HasFlag(wxST_MARKUP))
+ str = EscapeMarkup(str); // escapes markup and the & characters (which are also mnemonics)
+ else
+ str = EscapeMnemonics(text); // escape only the mnemonics
+ SetLabel(str);
+}
+
+/* static */
wxString wxStaticTextBase::GetLabelText(const wxString& label)
{
- // remove markup
wxString ret = RemoveMarkup(label);
+ // always remove the markup (this function is static
+ // and cannot check for wxST_MARKUP presence/absence)
+
return RemoveMnemonics(ret);
}
-/*static*/
+/* static */
wxString wxStaticTextBase::RemoveMarkup(const wxString& text)
{
// strip out of "text" the markup for platforms which don't support it natively
DoSetLabel(newlabel);
}
+wxString wxStaticTextBase::GetLabelWithoutMarkup() const
+{
+ wxString ret(m_labelOrig);
+
+ if (HasFlag(wxST_MARKUP))
+ ret = RemoveMarkup(ret);
+
+ // unlike GetLabelText() we don't remove the mnemonics here!
+ return ret;
+}
+
wxString wxStaticTextBase::GetEllipsizedLabelWithoutMarkup() const
{
// this function should be used only by ports which do not support
dc.SetFont(GetFont());
wxEllipsizeMode mode;
- if (HasFlag(wxST_ELLIPSIZE_START)) mode = wxELLIPSIZE_START;
- else if (HasFlag(wxST_ELLIPSIZE_MIDDLE)) mode = wxELLIPSIZE_MIDDLE;
- else if (HasFlag(wxST_ELLIPSIZE_END)) mode = wxELLIPSIZE_END;
+ if ( HasFlag(wxST_ELLIPSIZE_START) )
+ mode = wxELLIPSIZE_START;
+ else if ( HasFlag(wxST_ELLIPSIZE_MIDDLE) )
+ mode = wxELLIPSIZE_MIDDLE;
+ else if ( HasFlag(wxST_ELLIPSIZE_END) )
+ mode = wxELLIPSIZE_END;
+ else
+ {
+ wxFAIL_MSG( "should only be called if have one of wxST_ELLIPSIZE_XXX" );
+
+ return label;
+ }
return wxControl::Ellipsize(label, dc, mode, sz.GetWidth());
}