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:
@@ -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
|
||||||
// --------------
|
// --------------
|
||||||
|
@@ -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
|
||||||
// --------------
|
// --------------
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user