]> git.saurik.com Git - wxWidgets.git/commitdiff
Cleaned up getRectsBeingDrawn:count: related code.
authorDavid Elliott <dfe@tgwbd.org>
Fri, 22 Oct 2004 16:07:31 +0000 (16:07 +0000)
committerDavid Elliott <dfe@tgwbd.org>
Fri, 22 Oct 2004 16:07:31 +0000 (16:07 +0000)
* Removed the exception handler; it's not needed anymore (thanks Ryan).
* Split the if statement and then case into two lines instead of one.
* Took some of the suggestions from the cocoa-dev mailing list:
- Changed code to use normal messaging syntax.
- Provided a category interface to silence the compiler warning on 10.2.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30067 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/cocoa/window.mm

index 630b14bd65db677568432cf11dbd69a5378f1de9..417301f392156fc72760584676797c94ae60594f 100644 (file)
 #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
 // ========================================================================
@@ -356,12 +361,8 @@ bool wxWindowCocoa::Cocoa_drawRect(const NSRect &rect)
     const NSRect *rects = &rect; // 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);