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/archive%40mail-archive.com This email sent to arch...@mail-archive.com