wxEVT_SCROLLWIN_TOP - wxEVT_SCROLL_TOP;
}
+#ifdef __WXGTK20__
+// Escapes string so that it is valid Pango markup XML string:
+wxString wxEscapeStringForPangoMarkup(const wxString& str);
+#endif
+
#endif // _WX_GTK_PRIVATE_H_
wxEVT_SCROLLWIN_TOP - wxEVT_SCROLL_TOP;
}
+#ifdef __WXGTK20__
+// Escapes string so that it is valid Pango markup XML string:
+wxString wxEscapeStringForPangoMarkup(const wxString& str);
+#endif
+
#endif // _WX_GTK_PRIVATE_H_
#ifdef __WXGTK20__
// Build the colorized version of the label (markup only allowed
// under GTK2):
- wxString colorlabel = label;
- // If the color has been set, create a markup string to pass to
- // the label setter
if (m_foregroundColour.Ok())
{
+ // If the color has been set, create a markup string to pass to
+ // the label setter
+ wxString colorlabel;
colorlabel.Printf(_T("<span foreground=\"#%02x%02x%02x\">%s</span>"),
m_foregroundColour.Red(), m_foregroundColour.Green(),
- m_foregroundColour.Blue(), label.c_str());
+ m_foregroundColour.Blue(),
+ wxEscapeStringForPangoMarkup(label).c_str());
+ gtk_label_set_markup( GTK_LABEL(m_widget), wxGTK_CONV( colorlabel ) );
}
-
- gtk_label_set_markup( GTK_LABEL(m_widget), wxGTK_CONV( colorlabel ) );
+ else
#else
- gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
+ gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
#endif
// adjust the label size to the new label unless disabled
}
#endif
+#ifdef __WXGTK20__
+// Escapes string so that it is valid Pango markup XML string:
+wxString wxEscapeStringForPangoMarkup(const wxString& str)
+{
+ size_t len = str.length();
+ wxString out;
+ out.Alloc(len);
+ for (size_t i = 0; i < len; i++)
+ {
+ wxChar c = str[i];
+ switch (c)
+ {
+ case _T('&'):
+ out << _T("&");
+ break;
+ case _T('<'):
+ out << _T("<");
+ break;
+ case _T('>'):
+ out << _T(">");
+ break;
+ case _T('\''):
+ out << _T("'");
+ break;
+ case _T('"'):
+ out << _T(""");
+ break;
+ default:
+ out << c;
+ break;
+ }
+ }
+ return out;
+}
+#endif
+
+
// ----------------------------------------------------------------------------
// display characterstics
// ----------------------------------------------------------------------------
#ifdef __WXGTK20__
// Build the colorized version of the label (markup only allowed
// under GTK2):
- wxString colorlabel = label;
- // If the color has been set, create a markup string to pass to
- // the label setter
if (m_foregroundColour.Ok())
{
+ // If the color has been set, create a markup string to pass to
+ // the label setter
+ wxString colorlabel;
colorlabel.Printf(_T("<span foreground=\"#%02x%02x%02x\">%s</span>"),
m_foregroundColour.Red(), m_foregroundColour.Green(),
- m_foregroundColour.Blue(), label.c_str());
+ m_foregroundColour.Blue(),
+ wxEscapeStringForPangoMarkup(label).c_str());
+ gtk_label_set_markup( GTK_LABEL(m_widget), wxGTK_CONV( colorlabel ) );
}
-
- gtk_label_set_markup( GTK_LABEL(m_widget), wxGTK_CONV( colorlabel ) );
+ else
#else
- gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
+ gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
#endif
// adjust the label size to the new label unless disabled
}
#endif
+#ifdef __WXGTK20__
+// Escapes string so that it is valid Pango markup XML string:
+wxString wxEscapeStringForPangoMarkup(const wxString& str)
+{
+ size_t len = str.length();
+ wxString out;
+ out.Alloc(len);
+ for (size_t i = 0; i < len; i++)
+ {
+ wxChar c = str[i];
+ switch (c)
+ {
+ case _T('&'):
+ out << _T("&");
+ break;
+ case _T('<'):
+ out << _T("<");
+ break;
+ case _T('>'):
+ out << _T(">");
+ break;
+ case _T('\''):
+ out << _T("'");
+ break;
+ case _T('"'):
+ out << _T(""");
+ break;
+ default:
+ out << c;
+ break;
+ }
+ }
+ return out;
+}
+#endif
+
+
// ----------------------------------------------------------------------------
// display characterstics
// ----------------------------------------------------------------------------