On 18/10/2011, at 5:59 AM, John Pannell wrote:

> Hi Nick-
> 
> There is some composition of views needed to make this work.  Within 
> GCDrawKit, find the GCZoomView class… make your custom view a subview of this 
> (to adopt all of its zoomy goodness).  Then, make your custom drawing view 
> the documentView of an NSScrollView.
> 
> You'll now need to wire up some controls in the UI (i.e. some menu items or 
> buttons) to call the various zooming methods that your view has now inherited 
> from GCZoomView.  Once you're wired up correctly, everything will "just work" 
> - the scroll view will respond to the size changes of your document, and your 
> drawing will now scale up and down per the user's use of the controls you've 
> provided.
> 
> It is a really nice bit of code (thanks Graham!)


Thanks ; you're welcome :)

GCZoomView is independent of DrawKit, and can be downloaded and deployed 
separately:  http://apptree.net/gczoomview.htm

There may be small differences between this and the version you get in DK 
however - DK's copy is possibly slightly more up to date.


> The problem is i don't know how would it be right to implement Zooming
> (similar to how graphics editors do it - by allowing the user to
> select some area of the view with a selection rectangle, and, after
> the mouseUp event happens, zoom in or out the view that is contained
> within an NSScrollView.

GCZoomView will help you do this, but it doesn't implement the mouse dragging 
part, you'll have to do that yourself in order to define the rectangle, then 
you can use [GCZoomView zoomViewToRect:] to adjust the zoom scale and scroll to 
that rectangle. The zooming does not change the coordinate system of the view 
itself, the view content is not aware of the zoom unless you deliberately code 
it to be so.

--Graham_______________________________________________

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