]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/utils.cpp
guard code for mac / quickdraw
[wxWidgets.git] / src / mac / carbon / utils.cpp
index 3b74155503fa6686b3b483fdd1b4488c22349704..cd21f9999a649cc405c99d0ead2b6e8fcc6dd8bf 100644 (file)
@@ -189,10 +189,12 @@ bool wxCheckForInterrupt(wxWindow *WXUNUSED(wnd))
 
 void wxGetMousePosition( int* x, int* y )
 {
+#if wxMAC_USE_QUICKDRAW
     Point pt;
     GetGlobalMouse(&pt);
     *x = pt.h;
     *y = pt.v;
+#endif
 };
 
 // Return true if we have a colour display
@@ -204,6 +206,7 @@ bool wxColourDisplay()
 // Returns depth of screen
 int wxDisplayDepth()
 {
+#if wxMAC_USE_QUICKDRAW
     int theDepth = (int) CGDisplayBitsPerPixel(CGMainDisplayID());
     Rect globRect;
     SetRect(&globRect, -32760, -32760, 32760, 32760);
@@ -214,6 +217,9 @@ int wxDisplayDepth()
         theDepth = (**(**theMaxDevice).gdPMap).pixelSize;
 
     return theDepth;
+#else
+    return 32;
+#endif
 }
 
 // Get size of display
@@ -243,6 +249,8 @@ void wxDisplaySizeMM(int *width, int *height)
 void wxClientDisplayRect(int *x, int *y, int *width, int *height)
 {
 #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+#if wxMAC_USE_QUICKDRAW
+
         HIRect bounds ;
         HIWindowGetAvailablePositioningBounds(kCGNullDirectDisplay,kHICoordSpace72DPIGlobal,
             &bounds);
@@ -254,6 +262,18 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height)
         *width = bounds.size.width;
     if ( height )
         *height = bounds.size.height;
+#else
+    int w, h;
+    wxDisplaySize(&w,&h); 
+    if ( x )
+        *x = 0;
+    if ( y )
+        *y = 24;
+    if ( width )
+        *width = w;
+    if ( height )
+        *height = h-24;
+#endif
 #else
     Rect r;
     GetAvailableWindowPositioningBounds( GetMainDevice() , &r );
@@ -457,6 +477,8 @@ OSStatus wxMacCarbonEvent::SetParameter(EventParamName inName, EventParamType in
 // Control Access Support
 // ----------------------------------------------------------------------------
 
+#if wxMAC_USE_QUICKDRAW
+
 IMPLEMENT_DYNAMIC_CLASS( wxMacControl , wxObject )
 
 wxMacControl::wxMacControl() 
@@ -687,7 +709,7 @@ void wxMacControl::SetFont( const wxFont & font , const wxColour& foreground , l
 #endif
 }
 
-void wxMacControl::SetBackground( const wxBrush &WXUNUSED(brush) )
+void wxMacControl::SetBackgroundColour( const wxColour &WXUNUSED(col) )
 {
     // TODO
     // setting up a color proc is not recommended anymore
@@ -735,11 +757,7 @@ void wxMacControl::SetVisibility( bool visible , bool redraw )
 
 bool wxMacControl::IsEnabled() const
 {
-#if TARGET_API_MAC_OSX
     return IsControlEnabled( m_controlRef );
-#else
-    return IsControlActive( m_controlRef );
-#endif
 }
 
 bool wxMacControl::IsActive() const
@@ -852,15 +870,10 @@ OSStatus wxMacControl::GetRegion( ControlPartCode partCode , RgnHandle region )
 
 OSStatus wxMacControl::SetZOrder( bool above , wxMacControl* other )
 {
-#if TARGET_API_MAC_OSX
     return HIViewSetZOrder( m_controlRef,above ? kHIViewZOrderAbove : kHIViewZOrderBelow,
        (other != NULL) ? other->m_controlRef : NULL);
-#else
-    return 0;
-#endif
 }
 
-#if TARGET_API_MAC_OSX
 // SetNeedsDisplay would not invalidate the children
 static void InvalidateControlAndChildren( HIViewRef control )
 {
@@ -883,13 +896,10 @@ static void InvalidateControlAndChildren( HIViewRef control )
         InvalidateControlAndChildren( child );
     }
 }
-#endif
 
 void wxMacControl::InvalidateWithChildren()
 {
-#if TARGET_API_MAC_OSX
     InvalidateControlAndChildren( m_controlRef );
-#endif
 }
 
 void wxMacControl::ScrollRect( wxRect *r , int dx , int dy )
@@ -997,11 +1007,7 @@ wxMacDataBrowserControl::wxMacDataBrowserControl( wxWindow* peer,
     if ( gDataBrowserItemNotificationUPP == NULL )
     {
         gDataBrowserItemNotificationUPP =
-#if TARGET_API_MAC_OSX
             (DataBrowserItemNotificationUPP) NewDataBrowserItemNotificationWithItemUPP(DataBrowserItemNotificationProc);
-#else
-            NewDataBrowserItemNotificationUPP(DataBrowserItemNotificationProc);
-#endif
     }
 
     DataBrowserCallbacks callbacks;
@@ -1891,41 +1897,12 @@ OSStatus wxMacControl::SetTabEnabled( SInt16 tabNo , bool enable )
     return ::SetTabEnabled( m_controlRef , tabNo , enable );
 }
 
+#endif
+
 //
 // Quartz Support
 //
 
-// snippets from Sketch Sample from Apple :
-
-#define kGenericRGBProfilePathStr "/System/Library/ColorSync/Profiles/Generic RGB Profile.icc"
-
-/*
-    This function locates, opens, and returns the profile reference for the calibrated
-    Generic RGB color space. It is up to the caller to call CMCloseProfile when done
-    with the profile reference this function returns.
-*/
-CMProfileRef wxMacOpenGenericProfile()
-{
-    static CMProfileRef cachedRGBProfileRef = NULL;
-
-    // we only create the profile reference once
-    if (cachedRGBProfileRef == NULL)
-    {
-        CMProfileLocation loc;
-
-        loc.locType = cmPathBasedProfile;
-        strcpy(loc.u.pathLoc.path, kGenericRGBProfilePathStr);
-
-        verify_noerr( CMOpenProfile(&cachedRGBProfileRef, &loc) );
-    }
-
-    // clone the profile reference so that the caller has their own reference, not our cached one
-    if (cachedRGBProfileRef)
-        CMCloneProfileRef(cachedRGBProfileRef);
-
-    return cachedRGBProfileRef;
-}
-
 /*
     Return the generic RGB color space. This is a 'get' function and the caller should
     not release the returned value unless the caller retains it first. Usually callers
@@ -1948,6 +1925,13 @@ CGColorSpaceRef wxMacGetGenericRGBColorSpace()
     return genericRGBColorSpace;
 }
 
+CGColorRef wxMacCreateCGColorFromHITheme( ThemeBrush brush ) 
+{
+    CGColorRef color ;
+    HIThemeBrushCreateCGColor( brush, &color );
+    return color;
+}
+
 #ifndef __LP64__
 
 wxMacPortSaver::wxMacPortSaver( GrafPtr port )
@@ -1962,6 +1946,8 @@ wxMacPortSaver::~wxMacPortSaver()
 }
 #endif
 
+#if wxMAC_USE_QUICKDRAW
+
 void wxMacGlobalToLocal( WindowRef window , Point*pt )
 {
     HIPoint p = CGPointMake( pt->h, pt->v );
@@ -1983,5 +1969,6 @@ void wxMacLocalToGlobal( WindowRef window , Point*pt )
     pt->h = p.x;
     pt->v = p.y;
 }
+#endif
 
 #endif // wxUSE_GUI