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

@@ -58,6 +58,7 @@ public:
void SetLabel( const wxString &label ); void SetLabel( const wxString &label );
bool SetFont( const wxFont &font ); bool SetFont( const wxFont &font );
bool SetForegroundColour( const wxColour& colour );
// implementation // implementation
// -------------- // --------------

View File

@@ -58,6 +58,7 @@ public:
void SetLabel( const wxString &label ); void SetLabel( const wxString &label );
bool SetFont( const wxFont &font ); bool SetFont( const wxFont &font );
bool SetForegroundColour( const wxColour& colour );
// implementation // implementation
// -------------- // --------------

View File

@@ -148,9 +148,23 @@ wxString wxStaticText::GetLabel() const
void wxStaticText::SetLabel( const wxString &label ) 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); 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 ) ); gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
#endif
// adjust the label size to the new label unless disabled // adjust the label size to the new label unless disabled
if (!HasFlag(wxST_NO_AUTORESIZE)) if (!HasFlag(wxST_NO_AUTORESIZE))
@@ -192,4 +206,13 @@ wxSize wxStaticText::DoGetBestSize() const
return wxSize(req.width, req.height); 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 #endif // wxUSE_STATTEXT

View File

@@ -148,9 +148,23 @@ wxString wxStaticText::GetLabel() const
void wxStaticText::SetLabel( const wxString &label ) 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); 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 ) ); gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
#endif
// adjust the label size to the new label unless disabled // adjust the label size to the new label unless disabled
if (!HasFlag(wxST_NO_AUTORESIZE)) if (!HasFlag(wxST_NO_AUTORESIZE))
@@ -192,4 +206,13 @@ wxSize wxStaticText::DoGetBestSize() const
return wxSize(req.width, req.height); 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 #endif // wxUSE_STATTEXT