From: Robert Roebling Date: Wed, 28 Apr 1999 12:56:25 +0000 (+0000) Subject: background colour changes for listbox and combobox X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/72a16063d3c25a933e2ded1c3b906d082142686f background colour changes for listbox and combobox git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2299 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/combobox.cpp b/src/gtk/combobox.cpp index cb5a74135a..7c2a75604b 100644 --- a/src/gtk/combobox.cpp +++ b/src/gtk/combobox.cpp @@ -12,6 +12,7 @@ #endif #include "wx/combobox.h" +#include "wx/settings.h" #include @@ -145,7 +146,7 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value, gtk_signal_connect( GTK_OBJECT(GTK_COMBO(m_widget)->entry), "changed", GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this); - SetBackgroundColour( parent->GetBackgroundColour() ); + SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOW ) ); SetForegroundColour( parent->GetForegroundColour() ); SetFont( parent->GetFont() ); @@ -590,7 +591,7 @@ void wxComboBox::ApplyWidgetStyle() { SetWidgetStyle(); - gtk_widget_set_style( GTK_COMBO(m_widget)->button, m_widgetStyle ); +// gtk_widget_set_style( GTK_COMBO(m_widget)->button, m_widgetStyle ); gtk_widget_set_style( GTK_COMBO(m_widget)->entry, m_widgetStyle ); gtk_widget_set_style( GTK_COMBO(m_widget)->list, m_widgetStyle ); diff --git a/src/gtk/listbox.cpp b/src/gtk/listbox.cpp index e0fa8aca7e..406b583e7c 100644 --- a/src/gtk/listbox.cpp +++ b/src/gtk/listbox.cpp @@ -17,6 +17,7 @@ #include "wx/utils.h" #include "wx/intl.h" #include "wx/checklst.h" +#include "wx/settings.h" #if wxUSE_TOOLTIPS #include "wx/tooltip.h" @@ -287,7 +288,7 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id, PostCreation(); - SetBackgroundColour( parent->GetBackgroundColour() ); + SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOW ) ); SetForegroundColour( parent->GetForegroundColour() ); SetFont( parent->GetFont() ); diff --git a/src/gtk/settings.cpp b/src/gtk/settings.cpp index 2b774f2a8b..72b4c3e2a8 100644 --- a/src/gtk/settings.cpp +++ b/src/gtk/settings.cpp @@ -56,6 +56,7 @@ #define SHIFT (8*(sizeof(short int)-sizeof(char))) +wxColour *g_systemWinColour = (wxColour *) NULL; wxColour *g_systemBtnFaceColour = (wxColour *) NULL; wxColour *g_systemBtnShadowColour = (wxColour *) NULL; wxColour *g_systemBtnHighlightColour = (wxColour *) NULL; @@ -65,11 +66,12 @@ wxFont *g_systemFont = (wxFont *) NULL; void wxSystemSettings::Done() { - wxDELETE(g_systemBtnFaceColour); - wxDELETE(g_systemBtnShadowColour); - wxDELETE(g_systemBtnHighlightColour); - wxDELETE(g_systemHighlightColour); - wxDELETE(g_systemFont); + delete g_systemWinColour; + delete g_systemBtnFaceColour; + delete g_systemBtnShadowColour; + delete g_systemBtnHighlightColour; + delete g_systemHighlightColour; + delete g_systemFont; } wxColour wxSystemSettings::GetSystemColour( int index ) @@ -81,7 +83,6 @@ wxColour wxSystemSettings::GetSystemColour( int index ) case wxSYS_COLOUR_ACTIVECAPTION: case wxSYS_COLOUR_INACTIVECAPTION: case wxSYS_COLOUR_MENU: - case wxSYS_COLOUR_WINDOW: case wxSYS_COLOUR_WINDOWFRAME: case wxSYS_COLOUR_ACTIVEBORDER: case wxSYS_COLOUR_INACTIVEBORDER: @@ -97,6 +98,18 @@ wxColour wxSystemSettings::GetSystemColour( int index ) } return *g_systemBtnFaceColour; } + case wxSYS_COLOUR_WINDOW: + { + GtkStyle *style = gtk_widget_get_default_style(); + if (!g_systemWinColour) + { + g_systemWinColour = + new wxColour( style->base[0].red >> SHIFT, + style->base[0].green >> SHIFT, + style->base[0].blue >> SHIFT ); + } + return *g_systemWinColour; + } case wxSYS_COLOUR_GRAYTEXT: case wxSYS_COLOUR_BTNSHADOW: { diff --git a/src/gtk1/combobox.cpp b/src/gtk1/combobox.cpp index cb5a74135a..7c2a75604b 100644 --- a/src/gtk1/combobox.cpp +++ b/src/gtk1/combobox.cpp @@ -12,6 +12,7 @@ #endif #include "wx/combobox.h" +#include "wx/settings.h" #include @@ -145,7 +146,7 @@ bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value, gtk_signal_connect( GTK_OBJECT(GTK_COMBO(m_widget)->entry), "changed", GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this); - SetBackgroundColour( parent->GetBackgroundColour() ); + SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOW ) ); SetForegroundColour( parent->GetForegroundColour() ); SetFont( parent->GetFont() ); @@ -590,7 +591,7 @@ void wxComboBox::ApplyWidgetStyle() { SetWidgetStyle(); - gtk_widget_set_style( GTK_COMBO(m_widget)->button, m_widgetStyle ); +// gtk_widget_set_style( GTK_COMBO(m_widget)->button, m_widgetStyle ); gtk_widget_set_style( GTK_COMBO(m_widget)->entry, m_widgetStyle ); gtk_widget_set_style( GTK_COMBO(m_widget)->list, m_widgetStyle ); diff --git a/src/gtk1/listbox.cpp b/src/gtk1/listbox.cpp index e0fa8aca7e..406b583e7c 100644 --- a/src/gtk1/listbox.cpp +++ b/src/gtk1/listbox.cpp @@ -17,6 +17,7 @@ #include "wx/utils.h" #include "wx/intl.h" #include "wx/checklst.h" +#include "wx/settings.h" #if wxUSE_TOOLTIPS #include "wx/tooltip.h" @@ -287,7 +288,7 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id, PostCreation(); - SetBackgroundColour( parent->GetBackgroundColour() ); + SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOW ) ); SetForegroundColour( parent->GetForegroundColour() ); SetFont( parent->GetFont() ); diff --git a/src/gtk1/settings.cpp b/src/gtk1/settings.cpp index 2b774f2a8b..72b4c3e2a8 100644 --- a/src/gtk1/settings.cpp +++ b/src/gtk1/settings.cpp @@ -56,6 +56,7 @@ #define SHIFT (8*(sizeof(short int)-sizeof(char))) +wxColour *g_systemWinColour = (wxColour *) NULL; wxColour *g_systemBtnFaceColour = (wxColour *) NULL; wxColour *g_systemBtnShadowColour = (wxColour *) NULL; wxColour *g_systemBtnHighlightColour = (wxColour *) NULL; @@ -65,11 +66,12 @@ wxFont *g_systemFont = (wxFont *) NULL; void wxSystemSettings::Done() { - wxDELETE(g_systemBtnFaceColour); - wxDELETE(g_systemBtnShadowColour); - wxDELETE(g_systemBtnHighlightColour); - wxDELETE(g_systemHighlightColour); - wxDELETE(g_systemFont); + delete g_systemWinColour; + delete g_systemBtnFaceColour; + delete g_systemBtnShadowColour; + delete g_systemBtnHighlightColour; + delete g_systemHighlightColour; + delete g_systemFont; } wxColour wxSystemSettings::GetSystemColour( int index ) @@ -81,7 +83,6 @@ wxColour wxSystemSettings::GetSystemColour( int index ) case wxSYS_COLOUR_ACTIVECAPTION: case wxSYS_COLOUR_INACTIVECAPTION: case wxSYS_COLOUR_MENU: - case wxSYS_COLOUR_WINDOW: case wxSYS_COLOUR_WINDOWFRAME: case wxSYS_COLOUR_ACTIVEBORDER: case wxSYS_COLOUR_INACTIVEBORDER: @@ -97,6 +98,18 @@ wxColour wxSystemSettings::GetSystemColour( int index ) } return *g_systemBtnFaceColour; } + case wxSYS_COLOUR_WINDOW: + { + GtkStyle *style = gtk_widget_get_default_style(); + if (!g_systemWinColour) + { + g_systemWinColour = + new wxColour( style->base[0].red >> SHIFT, + style->base[0].green >> SHIFT, + style->base[0].blue >> SHIFT ); + } + return *g_systemWinColour; + } case wxSYS_COLOUR_GRAYTEXT: case wxSYS_COLOUR_BTNSHADOW: {