]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/settings.cpp
Minor wxYield() change.
[wxWidgets.git] / src / gtk1 / settings.cpp
index 61810194c31a4186f63401ae35652b5d0ba2d339..ca5965f55df08e43b1cbd2a4bf6ba388afc34fcf 100644 (file)
@@ -15,8 +15,8 @@
 #include "wx/settings.h"
 #include "wx/debug.h"
 
-#include "gdk/gdk.h"
-#include "gtk/gtk.h"
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
 
 /*
 #define wxSYS_COLOUR_SCROLLBAR         0
@@ -76,65 +76,84 @@ void wxSystemSettings::Done()
 
 wxColour wxSystemSettings::GetSystemColour( int index )
 {
-  switch (index)
-  {
-    case wxSYS_COLOUR_SCROLLBAR:
-    case wxSYS_COLOUR_BACKGROUND:
-    case wxSYS_COLOUR_ACTIVECAPTION:
-    case wxSYS_COLOUR_INACTIVECAPTION:
-    case wxSYS_COLOUR_MENU:
-    case wxSYS_COLOUR_WINDOWFRAME:
-    case wxSYS_COLOUR_ACTIVEBORDER:
-    case wxSYS_COLOUR_INACTIVEBORDER:
-    case wxSYS_COLOUR_BTNFACE:
-    {
-      if (!g_systemBtnFaceColour)
-      {
-        g_systemBtnFaceColour = 
-         new wxColour( 0xd6d6 >> SHIFT,
-                       0xd6d6 >> SHIFT,
-                       0xd6d6 >> SHIFT );
-      }
-      return *g_systemBtnFaceColour;
-    }
-    case wxSYS_COLOUR_WINDOW:
-    {
-      return *wxWHITE;
-    }
-    case wxSYS_COLOUR_GRAYTEXT:
-    case wxSYS_COLOUR_BTNSHADOW:
-    {
-      if (!g_systemBtnShadowColour)
-      {
-        g_systemBtnShadowColour = 
-         new wxColour( 0x7530 >> SHIFT,
-                       0x7530 >> SHIFT,
-                       0x7530 >> SHIFT );
-      }
-      return *g_systemBtnShadowColour;
-    }
-    case wxSYS_COLOUR_BTNHIGHLIGHT:
-    {
-      if (!g_systemBtnHighlightColour)
-      {
-        g_systemBtnHighlightColour = 
-         new wxColour( 0xea60 >> SHIFT,
-                       0xea60 >> SHIFT,
-                       0xea60 >> SHIFT );
-      }
-      return *g_systemBtnHighlightColour;
-    }
-    case wxSYS_COLOUR_HIGHLIGHT:
+    switch (index)
     {
-      if (!g_systemHighlightColour)
-      {
-        g_systemHighlightColour = 
-         new wxColour( 0      >> SHIFT,
-                       0      >> SHIFT,
-                       0x9c40 >> SHIFT );
-      }
-      return *g_systemHighlightColour;
-    }
+        case wxSYS_COLOUR_SCROLLBAR:
+        case wxSYS_COLOUR_BACKGROUND:
+        case wxSYS_COLOUR_ACTIVECAPTION:
+        case wxSYS_COLOUR_INACTIVECAPTION:
+        case wxSYS_COLOUR_MENU:
+        case wxSYS_COLOUR_WINDOWFRAME:
+        case wxSYS_COLOUR_ACTIVEBORDER:
+        case wxSYS_COLOUR_INACTIVEBORDER:
+        case wxSYS_COLOUR_BTNFACE:
+        {
+            if (!g_systemBtnFaceColour)
+            {
+                g_systemBtnFaceColour = 
+                       new wxColour( 0xd6d6 >> SHIFT,
+                                     0xd6d6 >> SHIFT,
+                                             0xd6d6 >> SHIFT );
+            }
+            return *g_systemBtnFaceColour;
+        }
+        case wxSYS_COLOUR_WINDOW:
+        {
+            return *wxWHITE;
+        }
+        case wxSYS_COLOUR_GRAYTEXT:
+        case wxSYS_COLOUR_BTNSHADOW:
+        {
+            if (!g_systemBtnShadowColour)
+            {
+                g_systemBtnShadowColour = 
+                       new wxColour( 0x7530 >> SHIFT,
+                                     0x7530 >> SHIFT,
+                                             0x7530 >> SHIFT );
+            }
+            return *g_systemBtnShadowColour;
+        }
+        case wxSYS_COLOUR_BTNHIGHLIGHT:
+        {
+            if (!g_systemBtnHighlightColour)
+            {
+                g_systemBtnHighlightColour = 
+                       new wxColour( 0xea60 >> SHIFT,
+                                     0xea60 >> SHIFT,
+                                             0xea60 >> SHIFT );
+            }
+            return *g_systemBtnHighlightColour;
+        }
+        case wxSYS_COLOUR_HIGHLIGHT:
+        {
+            if (!g_systemHighlightColour)
+            {
+                GtkWidget *widget = gtk_button_new();
+                GtkStyle *def = gtk_rc_get_style( widget );
+                if (!def)
+                    def = gtk_widget_get_default_style();
+                if (def)
+                {
+                    int red = def->bg[GTK_STATE_SELECTED].red;
+                    int green = def->bg[GTK_STATE_SELECTED].green;
+                    int blue = def->bg[GTK_STATE_SELECTED].blue;
+                    g_systemHighlightColour = 
+                           new wxColour( red    >> SHIFT,
+                                         green  >> SHIFT,
+                                                 blue   >> SHIFT );
+                }
+                else
+                {
+                    g_systemHighlightColour = 
+                           new wxColour( 0      >> SHIFT,
+                                         0      >> SHIFT,
+                                                 0x9c40 >> SHIFT );
+                }
+                gtk_widget_destroy( widget );
+
+            }
+            return *g_systemHighlightColour;
+        }
     case wxSYS_COLOUR_MENUTEXT:
     case wxSYS_COLOUR_WINDOWTEXT:
     case wxSYS_COLOUR_CAPTIONTEXT: