set GtkRcStyle::text to fg colour too to allow changing the text colour in single line wxTextCtrl

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-03-11 02:19:55 +00:00
parent d836b8bcf2
commit 532ae0f6ff
2 changed files with 28 additions and 18 deletions

View File

@@ -47,6 +47,7 @@ wxGTK:
- wxTopLevelWindow::GetSize() returns the size including the WM decorations.
- wxTopLevelWindow::GetClientSize() returns 0x0 when the window is minimized.
- Added support for colour cursors (Pascal Monasse).
- Setting foreground colour of single line wxTextCtrl now works
wxMSW:

View File

@@ -3869,45 +3869,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;
}