make setting the foreground colour of wxTextCtrl in wxGTK work [backport of 1.685 from HEAD]

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@46568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-06-20 21:30:16 +00:00
parent 065ada7625
commit 1cf8287602
2 changed files with 28 additions and 18 deletions

View File

@@ -111,6 +111,7 @@ wxMSW:
wxGTK:
- Setting foreground colour of single line wxTextCtrl now works
- More work on setting defaults in GNOME print dialogs.
- Also made landscape printing work as per wxMSW.
- Add support for clipping in GNOME print backend.

View File

@@ -3874,45 +3874,54 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
pango_font_description_copy( m_font.GetNativeFontInfo()->description );
}
int flagsNormal = 0,
flagsPrelight = 0,
flagsActive = 0,
flagsInsensitive = 0;
if ( m_foregroundColour.Ok() )
{
const GdkColor *fg = m_foregroundColour.GetColor();
style->fg[GTK_STATE_NORMAL] = *fg;
style->color_flags[GTK_STATE_NORMAL] = GTK_RC_FG;
style->fg[GTK_STATE_NORMAL] =
style->text[GTK_STATE_NORMAL] = *fg;
flagsNormal |= GTK_RC_FG | GTK_RC_TEXT;
style->fg[GTK_STATE_PRELIGHT] = *fg;
style->color_flags[GTK_STATE_PRELIGHT] = GTK_RC_FG;
style->fg[GTK_STATE_PRELIGHT] =
style->text[GTK_STATE_PRELIGHT] = *fg;
flagsPrelight |= GTK_RC_FG | GTK_RC_TEXT;
style->fg[GTK_STATE_ACTIVE] = *fg;
style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_FG;
style->fg[GTK_STATE_ACTIVE] =
style->text[GTK_STATE_ACTIVE] = *fg;
flagsActive |= GTK_RC_FG | GTK_RC_TEXT;
}
if ( m_backgroundColour.Ok() )
{
const GdkColor *bg = m_backgroundColour.GetColor();
style->bg[GTK_STATE_NORMAL] = *bg;
style->bg[GTK_STATE_NORMAL] =
style->base[GTK_STATE_NORMAL] = *bg;
style->color_flags[GTK_STATE_NORMAL] = (GtkRcFlags)
(style->color_flags[GTK_STATE_NORMAL] | GTK_RC_BG | GTK_RC_BASE);
flagsNormal |= GTK_RC_BG | GTK_RC_BASE;
style->bg[GTK_STATE_PRELIGHT] = *bg;
style->bg[GTK_STATE_PRELIGHT] =
style->base[GTK_STATE_PRELIGHT] = *bg;
style->color_flags[GTK_STATE_PRELIGHT] = (GtkRcFlags)
(style->color_flags[GTK_STATE_PRELIGHT] | GTK_RC_BG | GTK_RC_BASE);
flagsPrelight |= GTK_RC_BG | GTK_RC_BASE;
style->bg[GTK_STATE_ACTIVE] = *bg;
style->bg[GTK_STATE_ACTIVE] =
style->base[GTK_STATE_ACTIVE] = *bg;
style->color_flags[GTK_STATE_ACTIVE] = (GtkRcFlags)
(style->color_flags[GTK_STATE_ACTIVE] | GTK_RC_BG | GTK_RC_BASE);
flagsActive |= GTK_RC_BG | GTK_RC_BASE;
style->bg[GTK_STATE_INSENSITIVE] = *bg;
style->bg[GTK_STATE_INSENSITIVE] =
style->base[GTK_STATE_INSENSITIVE] = *bg;
style->color_flags[GTK_STATE_INSENSITIVE] = (GtkRcFlags)
(style->color_flags[GTK_STATE_INSENSITIVE] | GTK_RC_BG | GTK_RC_BASE);
flagsInsensitive |= GTK_RC_BG | GTK_RC_BASE;
}
style->color_flags[GTK_STATE_NORMAL] = (GtkRcFlags)flagsNormal;
style->color_flags[GTK_STATE_PRELIGHT] = (GtkRcFlags)flagsPrelight;
style->color_flags[GTK_STATE_ACTIVE] = (GtkRcFlags)flagsActive;
style->color_flags[GTK_STATE_INSENSITIVE] = (GtkRcFlags)flagsInsensitive;
return style;
}