X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fdb2f6a2c0ef13c7df825be5b73a0e71248871e5..e86aa7a62cc8be79ffaeb0d07b70161cb9ea2c74:/src/osx/utils_osx.cpp?ds=sidebyside

diff --git a/src/osx/utils_osx.cpp b/src/osx/utils_osx.cpp
index e1765e81d1..438f7ddbf0 100644
--- a/src/osx/utils_osx.cpp
+++ b/src/osx/utils_osx.cpp
@@ -35,21 +35,13 @@
 
 // #include "MoreFilesX.h"
 
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
-    #include <AudioToolbox/AudioServices.h>
-#endif
+#include <AudioToolbox/AudioServices.h>
 
 #include "wx/osx/private.h"
 #include "wx/osx/private/timer.h"
 
 #include "wx/evtloop.h"
 
-#if defined(__MWERKS__) && wxUSE_UNICODE
-#if __MWERKS__ < 0x4100
-    #include <wtime.h>
-#endif
-#endif
-
 // Check whether this window wants to process messages, e.g. Stop button
 // in long calculations.
 bool wxCheckForInterrupt(wxWindow *WXUNUSED(wnd))
@@ -96,6 +88,7 @@ int wxDisplayDepth()
             theDepth = 32; // some reasonable default
 
         CFRelease(encoding);
+        CGDisplayModeRelease(currentMode);
     }
     else
 #endif
@@ -253,9 +246,26 @@ CGColorSpaceRef wxMacGetGenericRGBColorSpace()
 
 CGColorRef wxMacCreateCGColorFromHITheme( ThemeBrush brush )
 {
-    CGColorRef color ;
-    HIThemeBrushCreateCGColor( brush, &color );
-    return color;
+    const int maxcachedbrush = 58+5; // negative indices are for metabrushes, cache down to -5)
+    int brushindex = brush+5;
+    if ( brushindex < 0 || brushindex > maxcachedbrush )
+    {
+        CGColorRef color ;
+        HIThemeBrushCreateCGColor( brush, &color );
+        return color;
+    }
+    else
+    {
+        static bool inited = false;
+        static CGColorRef themecolors[maxcachedbrush+1];
+        if ( !inited )
+        {
+            for ( int i = 0 ; i <= maxcachedbrush ; ++i )
+                HIThemeBrushCreateCGColor( i-5, &themecolors[i] );
+            inited = true;
+        }
+        return CGColorRetain(themecolors[brushindex ]);
+    }
 }
 
 //---------------------------------------------------------------------------