Cleaned up getRectsBeingDrawn:count: related code.

* 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
This commit is contained in:
David Elliott
2004-10-22 16:07:31 +00:00
parent 9d1e4703d3
commit 5dc471408f

View File

@@ -35,6 +35,11 @@
#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);