Just a comment about the UI… I find this behavior horribly counter-intuitive. I always end up zooming when I mean to pan.
On 2012-04-01, at 11:28 AM, Nick wrote: > Hello > > I am trying to implement a zooming of a content view (actually it is a > PDFView page) using a mouse scrolling wheel. > What I want to have in the end - is to have the final content view > zoomed in or out in a way that the point, where the mouse was located, > does not move during this zooming operation (this point would be some > kind of an anchor around which the rest of the content view should be > zoomed). Here is an example of this: http://maps.google.com > > I've managed to make the view zoom in and out using a view's center > point as such an anchor (this is an example i found on the internet): > > float zoomFactor = 1.3; > > -(void)zoomIn > { > NSRect visible = [scrollView documentVisibleRect]; > NSRect newrect = NSInsetRect(visible, NSWidth(visible)*(1 - > 1/zoomFactor)/2.0, NSHeight(visible)*(1 - 1/zoomFactor)/2.0); > NSRect frame = [scrollView.documentView frame]; > > [scrollView.documentView > scaleUnitSquareToSize:NSMakeSize(zoomFactor, zoomFactor)]; > [scrollView.documentView setFrame:NSMakeRect(0, 0, > frame.size.width * zoomFactor, frame.size.height * zoomFactor)]; > > [[scrollView documentView] scrollPoint:newrect.origin]; > } > > -(void)zoomOut > { > NSRect visible = [scrollView documentVisibleRect]; > NSRect newrect = NSOffsetRect(visible, > -NSWidth(visible)*(zoomFactor - 1)/2.0, -NSHeight(visible)*(zoomFactor > - 1)/2.0); > > NSRect frame = [scrollView.documentView frame]; > > [scrollView.documentView > scaleUnitSquareToSize:NSMakeSize(1/zoomFactor, 1/zoomFactor)]; > [scrollView.documentView setFrame:NSMakeRect(0, 0, > frame.size.width / zoomFactor, frame.size.height / zoomFactor)]; > > [[scrollView documentView] scrollPoint:newrect.origin]; > } > > However, I can't figure out how to make zooming like google maps does, > preserving that mouse "anchor" point's location. Could you give me a > hint? > > Thank you > _______________________________________________ > > 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: > https://lists.apple.com/mailman/options/cocoa-dev/dave.fernandes%40utoronto.ca > > This email sent to dave.fernan...@utoronto.ca _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com