]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/settings.cpp
Create an autorelease pool to catch objects created during several special situations...
[wxWidgets.git] / src / osx / carbon / settings.cpp
index 58cecfb357174b30e14fb849aac5fbe6f4929e9e..bc6b13ad73785b2891be80f89aec4f910e808f9e 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/mac/carbon/settings.cpp
+// Name:        src/osx/carbon/settings.cpp
 // Purpose:     wxSettings
 // Author:      Stefan Csomor
 // Modified by:
@@ -18,7 +18,8 @@
     #include "wx/gdicmn.h"
 #endif
 
-#include "wx/mac/uma.h"
+#include "wx/osx/private.h"
+#include "wx/fontenum.h"
 
 // ----------------------------------------------------------------------------
 // wxSystemSettingsNative
 wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
 {
     wxColour resultColor;
+#if wxOSX_USE_COCOA_OR_CARBON
     ThemeBrush colorBrushID;
+#endif
 
     switch ( index )
     {
         case wxSYS_COLOUR_WINDOW:
-            resultColor = *wxWHITE ;
+#if wxOSX_USE_COCOA_OR_CARBON
+            resultColor = wxColour(wxMacCreateCGColorFromHITheme( 15 /* kThemeBrushDocumentWindowBackground */ )) ;
+#else
+            resultColor = *wxWHITE;
+#endif
             break ;
         case wxSYS_COLOUR_SCROLLBAR :
         case wxSYS_COLOUR_BACKGROUND:
@@ -48,7 +55,11 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
         case wxSYS_COLOUR_INACTIVEBORDER:
         case wxSYS_COLOUR_BTNFACE:
         case wxSYS_COLOUR_MENUBAR:
-            resultColor = wxColor( 0xDD, 0xDD, 0xDD );
+#if wxOSX_USE_COCOA_OR_CARBON
+            resultColor = wxColour(wxMacCreateCGColorFromHITheme( 3 /* kThemeBrushDialogBackgroundActive */));
+#else
+            resultColor = wxColour( 0xBE, 0xBE, 0xBE ) ;
+#endif
             break ;
 
         case wxSYS_COLOUR_LISTBOX :
@@ -56,7 +67,7 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
             break ;
 
         case wxSYS_COLOUR_BTNSHADOW:
-            resultColor = wxColor( 0xBE, 0xBE, 0xBE );
+            resultColor = wxColour( 0xBE, 0xBE, 0xBE );
             break ;
 
         case wxSYS_COLOUR_BTNTEXT:
@@ -65,18 +76,23 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
         case wxSYS_COLOUR_CAPTIONTEXT:
         case wxSYS_COLOUR_INFOTEXT:
         case wxSYS_COLOUR_INACTIVECAPTIONTEXT:
+        case wxSYS_COLOUR_LISTBOXTEXT:
             resultColor = *wxBLACK;
             break ;
 
         case wxSYS_COLOUR_HIGHLIGHT:
             {
+#if wxOSX_USE_COCOA_OR_CARBON
 #if 0
             // NB: enable this case as desired
                 colorBrushID = kThemeBrushAlternatePrimaryHighlightColor;
 #else
-                colorBrushID = kThemeBrushPrimaryHighlightColor;
+                colorBrushID = -3 /* kThemeBrushPrimaryHighlightColor */;
+#endif
+                resultColor = wxColour( wxMacCreateCGColorFromHITheme(colorBrushID) );
+#else
+                resultColor = wxColor( 0xCC, 0xCC, 0xFF );
 #endif
-                resultColor = wxColor( wxMacCreateCGColorFromHITheme(colorBrushID) );
             }
             break ;
 
@@ -94,17 +110,16 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
             break ;
 
         case wxSYS_COLOUR_HIGHLIGHTTEXT :
-#if 0 
-            // NB: enable this case as desired
-            resultColor = *wxWHITE ;
-#else
+#if wxOSX_USE_COCOA_OR_CARBON
             {
-                wxColour highlightcolor( wxMacCreateCGColorFromHITheme(kThemeBrushPrimaryHighlightColor) );
+                wxColour highlightcolor( wxMacCreateCGColorFromHITheme(-3 /* kThemeBrushPrimaryHighlightColor */) );
                 if ((highlightcolor.Red() + highlightcolor.Green()  + highlightcolor.Blue() ) == 0)
                     resultColor = *wxWHITE ;
                 else
                     resultColor = *wxBLACK ;
             }
+#else
+            resultColor = *wxWHITE ;
 #endif
             break ;
 
@@ -128,10 +143,12 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
         // case wxSYS_COLOUR_MAX:
         default:
             resultColor = *wxWHITE;
-            // wxCHECK_MSG( index >= wxSYS_COLOUR_MAX, false, _T("unknown system colour index") );
+            // wxCHECK_MSG( index >= wxSYS_COLOUR_MAX, false, wxT("unknown system colour index") );
             break ;
     }
 
+    //wxASSERT(resultColor.IsOk());
+
     return resultColor;
 }
 
@@ -141,20 +158,25 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
 
 wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
 {
+    wxFont font;
+
     switch (index)
     {
         case wxSYS_ANSI_VAR_FONT :
         case wxSYS_SYSTEM_FONT :
         case wxSYS_DEVICE_DEFAULT_FONT :
         case wxSYS_DEFAULT_GUI_FONT :
-            return *wxSMALL_FONT ;
+            font = *wxSMALL_FONT ;
             break ;
 
         default :
+            font = *wxNORMAL_FONT ;
             break ;
     }
 
-    return *wxNORMAL_FONT;
+    //wxASSERT(font.IsOk() && wxFontEnumerator::IsValidFacename(font.GetFaceName()));
+
+    return font;
 }
 
 // ----------------------------------------------------------------------------
@@ -227,12 +249,12 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index, wxWindow* WXUNUSED(w
         // TODO: case wxSYS_SHOW_SOUNDS:
 
         case wxSYS_DCLICK_MSEC:
-#ifdef __LP64__
-            // default on mac is 30 ticks, we shouldn't really use wxSYS_DCLICK_MSEC anyway 
+#if wxOSX_USE_CARBON
+            return (int)(GetDblTime() * 1000. / 60.);
+#else
+            // default on mac is 30 ticks, we shouldn't really use wxSYS_DCLICK_MSEC anyway
             // but rather rely on the 'click-count' by the system delivered in a mouse event
             return 500;
-#else
-            return (int)(GetDblTime() * 1000. / 60.);
 #endif
         default:
             // unsupported metric