]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/settings.cpp
Applied patch [ 642157 ] [MSW] HMENU resource leak from wxMenuBar
[wxWidgets.git] / src / gtk1 / settings.cpp
index 69209c00d38f96c2e621974c2c65266891045a73..736ed76abaf84cdf45b1439c44ec94f4734aa42e 100644 (file)
@@ -16,6 +16,7 @@
 #include "wx/debug.h"
 #include "wx/module.h"
 #include "wx/cmndata.h"
+#include "wx/fontutil.h"
 
 #include <gdk/gdk.h>
 #include <gdk/gdkprivate.h>
@@ -156,6 +157,7 @@ wxColour wxSystemSettingsNative::GetColour( wxSystemColour index )
         case wxSYS_COLOUR_ACTIVEBORDER:
         case wxSYS_COLOUR_INACTIVEBORDER:
         case wxSYS_COLOUR_BTNFACE:
+        case wxSYS_COLOUR_MENUBAR:
         case wxSYS_COLOUR_3DLIGHT:
             if (!g_systemBtnFaceColour)
             {
@@ -292,6 +294,17 @@ wxColour wxSystemSettingsNative::GetColour( wxSystemColour index )
 
         case wxSYS_COLOUR_APPWORKSPACE:
             return *wxWHITE;    // ?
+
+        case wxSYS_COLOUR_HOTLIGHT:
+        case wxSYS_COLOUR_GRADIENTACTIVECAPTION:
+        case wxSYS_COLOUR_GRADIENTINACTIVECAPTION:
+        case wxSYS_COLOUR_MENUHILIGHT:
+            // TODO
+            return *wxBLACK;
+
+        case wxSYS_COLOUR_MAX:
+        default:
+            wxFAIL_MSG( _T("unknown system colour index") );
   }
 
   return *wxWHITE;
@@ -314,8 +327,25 @@ wxFont wxSystemSettingsNative::GetFont( wxSystemFont index )
         {
             if (!g_systemFont)
             {
+#ifdef __WXGTK20__
+                GtkWidget *widget = gtk_button_new();
+                GtkStyle *def = gtk_rc_get_style( widget );
+                if (!def)
+                    def = gtk_widget_get_default_style();
+                if (def)
+                {
+                    wxNativeFontInfo info;
+                    info.description = def->font_desc;
+                    g_systemFont = new wxFont(info);
+                }
+                else
+                {
+                   g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL );
+                }
+                gtk_widget_destroy( widget );
+#else
                 g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL );
-
+#endif
             }
             return *g_systemFont;
         }
@@ -337,7 +367,9 @@ int wxSystemSettingsNative::GetMetric( wxSystemMetric index )
         // VZ: is there any way to get the cursor size with GDK?
         case wxSYS_CURSOR_X:   return 16;
         case wxSYS_CURSOR_Y:   return 16;
-
+        // MBN: ditto for icons
+        case wxSYS_ICON_X:     return 32;
+        case wxSYS_ICON_Y:     return 32;
         default:               
             wxFAIL_MSG( wxT("wxSystemSettings::GetMetric not fully implemented") );
             return 0;