At 19:59 -0700 19/03/09, cocoa-dev-requ...@lists.apple.com wrote:
>From: John Reppy <j...@cs.uchicago.edu>
>Date: Thu, 19 Mar 2009 15:39:44 -0500
>Message-ID: <df94276e-b4ab-49c7-a425-7e7d2f220...@cs.uchicago.edu>
>
>I'm building a viewer for event logs that needs to support a wide range
>of scales (say from seconds/inch to nanoseconds/inch).  I've got a custom
>subclass of NSView for displaying this information, which I want to embed
>in an NSScrollView.  The problem that I'm faced with is that the floating-point
>coordinates used by Cocoa do not have enough precision at full magnification.
>
>I'm guessing that the best solution is to subclass NSScrollView to track the
>visible rectangle's origin using doubles, but I'm not sure which NSScrollView
>methods I should be overriding.  Also, do I need to override NSClipView too?
>Any pointers or suggestions would be appreciated.

In a similar situation, I didn't subclass NSScrollView. I subclassed NSView and 
inserted an NSScroller directly as its subview. I tracked the position with a 
64-bit variable which I converted to a range suitable for the NSScroller just 
for setting its thumb position and size. I set my view as the NSScroller's 
target to convert back to my 64-bit position.

In the subclass' -drawRect: method, I calculated the visible portion of the 
view, and simply drew that - no NSClipView required. For your case, you'd have 
an additional step involving the scale; be careful with loss of precision there.

Despite being somewhat more work to implement, this proved to be more efficient 
and also a good learning experience regarding the view drawing mechanism.

HTH,
-- 
Rainer Brockerhoff  <rai...@brockerhoff.net>
Belo Horizonte, Brazil
"In the affairs of others even fools are wise
 In their own business even sages err."
Weblog: http://www.brockerhoff.net/bb/viewtopic.php
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to