X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0208334d5d57849d7e46b9997cd8ef39daf39d2d..c127177f8dc31dbe99764852b8dbcc047d3ad826:/src/gtk/settings.cpp?ds=inline diff --git a/src/gtk/settings.cpp b/src/gtk/settings.cpp index 94f2e686f4..72b4c3e2a8 100644 --- a/src/gtk/settings.cpp +++ b/src/gtk/settings.cpp @@ -13,6 +13,10 @@ #endif #include "wx/settings.h" +#include "wx/debug.h" + +#include "gdk/gdk.h" +#include "gtk/gtk.h" /* #define wxSYS_COLOUR_SCROLLBAR 0 @@ -52,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; @@ -59,12 +64,14 @@ wxColour *g_systemHighlightColour = (wxColour *) NULL; wxFont *g_systemFont = (wxFont *) NULL; -void wxSystemSettings::Done() { - wxDELETE(g_systemBtnFaceColour); - wxDELETE(g_systemBtnShadowColour); - wxDELETE(g_systemBtnHighlightColour); - wxDELETE(g_systemHighlightColour); - wxDELETE(g_systemFont); +void wxSystemSettings::Done() +{ + delete g_systemWinColour; + delete g_systemBtnFaceColour; + delete g_systemBtnShadowColour; + delete g_systemBtnHighlightColour; + delete g_systemHighlightColour; + delete g_systemFont; } wxColour wxSystemSettings::GetSystemColour( int index ) @@ -76,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: @@ -92,6 +98,19 @@ 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: { GtkStyle *style = gtk_widget_get_default_style(); @@ -104,7 +123,6 @@ wxColour wxSystemSettings::GetSystemColour( int index ) } return *g_systemBtnShadowColour; } - case wxSYS_COLOUR_GRAYTEXT: case wxSYS_COLOUR_BTNHIGHLIGHT: { GtkStyle *style = gtk_widget_get_default_style(); @@ -133,6 +151,7 @@ wxColour wxSystemSettings::GetSystemColour( int index ) case wxSYS_COLOUR_WINDOWTEXT: case wxSYS_COLOUR_CAPTIONTEXT: case wxSYS_COLOUR_INACTIVECAPTIONTEXT: + case wxSYS_COLOUR_BTNTEXT: case wxSYS_COLOUR_INFOTEXT: { return *wxBLACK; @@ -152,36 +171,39 @@ wxColour wxSystemSettings::GetSystemColour( int index ) wxFont wxSystemSettings::GetSystemFont( int index ) { - switch (index) - { - case wxSYS_OEM_FIXED_FONT: - case wxSYS_ANSI_FIXED_FONT: - case wxSYS_SYSTEM_FIXED_FONT: + switch (index) { - return *wxNORMAL_FONT; + case wxSYS_OEM_FIXED_FONT: + case wxSYS_ANSI_FIXED_FONT: + case wxSYS_SYSTEM_FIXED_FONT: + { + return *wxNORMAL_FONT; + } + case wxSYS_ANSI_VAR_FONT: + case wxSYS_SYSTEM_FONT: + case wxSYS_DEVICE_DEFAULT_FONT: + case wxSYS_DEFAULT_GUI_FONT: + { + if (!g_systemFont) + g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ); + return *g_systemFont; + } } - case wxSYS_ANSI_VAR_FONT: - case wxSYS_SYSTEM_FONT: - case wxSYS_DEVICE_DEFAULT_FONT: - case wxSYS_DEFAULT_GUI_FONT: - { - if (!g_systemFont) - g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ); - return *g_systemFont; - } - } - return wxNullFont; + return wxNullFont; } int wxSystemSettings::GetSystemMetric( int index ) { - switch (index) - { - case wxSYS_SCREEN_X: - return gdk_screen_width(); - case wxSYS_SCREEN_Y: - return gdk_screen_height(); - } - return 0; + switch (index) + { + case wxSYS_SCREEN_X: return gdk_screen_width(); + case wxSYS_SCREEN_Y: return gdk_screen_height(); + case wxSYS_HSCROLL_Y: return 15; + case wxSYS_VSCROLL_X: return 15; + } + + wxCHECK_MSG( index, 0, _T("wxSystemSettings::GetSystemMetric not fully implemented") ); + + return 0; }