Applied SetForegorund colour patch for GTK2.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2004-03-29 18:07:31 +00:00
parent 963907fa8f
commit 174b10af34
4 changed files with 48 additions and 0 deletions

View File

@@ -148,9 +148,23 @@ wxString wxStaticText::GetLabel() const
void wxStaticText::SetLabel( const wxString &label )
{
// Build the colorized version of the label
wxString colorlabel = label;
// If the color has been set, create a markup string to pass to the label setter
if (m_foregroundColour.Ok())
{
colorlabel.Printf(_T("<span foreground=\"#%02x%02x%02x\">%s</span>"), m_foregroundColour.Red(),
m_foregroundColour.Green(), m_foregroundColour.Blue(), label.c_str());
}
wxControl::SetLabel(label);
// markup only allowed under GTK2
#ifdef __WXGTK20__
gtk_label_set_markup( GTK_LABEL(m_widget), wxGTK_CONV( colorlabel ) );
#else
gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
#endif
// adjust the label size to the new label unless disabled
if (!HasFlag(wxST_NO_AUTORESIZE))
@@ -192,4 +206,13 @@ wxSize wxStaticText::DoGetBestSize() const
return wxSize(req.width, req.height);
}
bool wxStaticText::SetForegroundColour(const wxColour& colour)
{
// First, we call the base class member
wxControl::SetForegroundColour(colour);
// Then, to force the color change, we set the label with the current label
SetLabel(GetLabel());
return true;
}
#endif // wxUSE_STATTEXT