Replace wxST_MARKUP style with wxControl::SetLabelMarkup().
This is an incompatible change which removes the wxStaticText-specific wxST_MARKUP style and adds wxControl::SetLabelMarkup() replacing it. It doesn't actually change anything yet but it simplifies wxStaticText code a lot by getting rid of many markup-related functions in it which had to behave differently depending on whether wxST_MARKUP was used or not and also paves way for adding markup support for the other controls in the future. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67055 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -195,49 +195,6 @@ void wxStaticTextBase::Wrap(int width)
|
||||
wrapper.WrapLabel(this, width);
|
||||
}
|
||||
|
||||
wxString wxStaticTextBase::GetLabelText() const
|
||||
{
|
||||
wxString ret(GetLabel());
|
||||
|
||||
if (HasFlag(wxST_MARKUP))
|
||||
ret = RemoveMarkup(ret);
|
||||
return RemoveMnemonics(ret);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
wxString ret = RemoveMarkup(label);
|
||||
// always remove the markup (this function is static
|
||||
// and cannot check for wxST_MARKUP presence/absence)
|
||||
|
||||
return RemoveMnemonics(ret);
|
||||
}
|
||||
|
||||
/* static */
|
||||
wxString wxStaticTextBase::RemoveMarkup(const wxString& text)
|
||||
{
|
||||
return wxMarkupParser::Strip(text);
|
||||
}
|
||||
|
||||
/* static */
|
||||
wxString wxStaticTextBase::EscapeMarkup(const wxString& text)
|
||||
{
|
||||
return wxMarkupParser::Quote(text);
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxStaticTextBase - generic implementation for wxST_ELLIPSIZE_* support
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -247,7 +204,7 @@ void wxStaticTextBase::UpdateLabel()
|
||||
if (!IsEllipsized())
|
||||
return;
|
||||
|
||||
wxString newlabel = GetEllipsizedLabelWithoutMarkup();
|
||||
wxString newlabel = GetEllipsizedLabel();
|
||||
|
||||
// we need to touch the "real" label (i.e. the text set inside the control,
|
||||
// using port-specific functions) instead of the string returned by GetLabel().
|
||||
@@ -260,18 +217,7 @@ void wxStaticTextBase::UpdateLabel()
|
||||
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
|
||||
wxString wxStaticTextBase::GetEllipsizedLabel() const
|
||||
{
|
||||
// this function should be used only by ports which do not support
|
||||
// ellipsis in static texts: we first remove markup (which cannot
|
||||
@@ -279,11 +225,6 @@ wxString wxStaticTextBase::GetEllipsizedLabelWithoutMarkup() const
|
||||
|
||||
wxString ret(m_labelOrig);
|
||||
|
||||
// the order of the following two blocks is important!
|
||||
|
||||
if (HasFlag(wxST_MARKUP))
|
||||
ret = RemoveMarkup(ret);
|
||||
|
||||
if (IsEllipsized())
|
||||
ret = Ellipsize(ret);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user