#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/log.h"
- #include "wx/tooltip.h"
#include "wx/window.h"
#endif //WX_PRECOMP
+#include "wx/tooltip.h"
#include "wx/cocoa/autorelease.h"
#include "wx/cocoa/string.h"
#import <AppKit/NSClipView.h>
#import <Foundation/NSException.h>
-#include <objc/objc-runtime.h>
-
// Turn this on to paint green over the dummy views for debugging
#undef WXCOCOA_FILL_DUMMY_VIEW
#import <AppKit/NSBezierPath.h>
#endif //def WXCOCOA_FILL_DUMMY_VIEW
+// A category for methods that are only present in Panther's SDK
+@interface NSView(wxNSViewPrePantherCompatibility)
+- (void)getRectsBeingDrawn:(const NSRect **)rects count:(int *)count;
+@end
+
// ========================================================================
// wxWindowCocoaHider
// ========================================================================
const NSRect *rects = ▭ // The bounding box of the region
int countRects = 1;
// Try replacing the larger rectangle with a list of smaller ones:
-NS_DURING
- //getRectsBeingDrawn:count: is a optimization that is only available on
- //Panthar (10.3) and higher. Check to see if it supports it -
- if ( [GetNSView() respondsToSelector:@selector(getRectsBeingDrawn:count:)] ) objc_msgSend(GetNSView(),@selector(getRectsBeingDrawn:count:),&rects,&countRects);
-NS_HANDLER
-NS_ENDHANDLER
+ if ([GetNSView() respondsToSelector:@selector(getRectsBeingDrawn:count:)])
+ [GetNSView() getRectsBeingDrawn:&rects count:&countRects];
m_updateRegion = wxRegion(rects,countRects);
wxPaintEvent event(m_windowId);