Re: NSImageView and ZoomFactors
Re: NSImageView and ZoomFactors
- Subject: Re: NSImageView and ZoomFactors
- From: Brian Postow <email@hidden>
- Date: Thu, 19 Aug 2010 10:16:56 -0400
On Aug 18, 2010, at 7:07 PM, Quincey Morris wrote:
> On Aug 18, 2010, at 15:01, Brian Postow wrote:
>
>> The two things that IKImageView gave me that I'm having trouble making NSImageView do a similar thing are 1) zooming and 2) the mouse-tools.
>>
>> 1) I can see how to use scaleUnitSquareToSize to zoom, but that doesn't tell me the CURRENT zoom, so that if I want to, say zoom into 1-1 mode (one image pixel = one screen pixel assuming 72DPI screen) or I want to know how zoomed in I currently am, I can't seem to figure this out...
>
> You'll likely do much better to track the current *desired* display scale, and make the image conform to that, rather than vice versa. Even if you want to have a "zoom to fit" function or mode, there's still a desired display factor derived from the ratio of the size of the image vs the size of the space you have to display it in.
>
so, are you suggesting that I manually control the "zoom-to-fit" functionality, and change the size of the image as the window changes size myself so I can keep track of the "desired display scale"? or is there some other way of getting that?
>> 2) I don't see how to change the mouse cursor, or make a select box, or implement the grab tool... can someone point me at some sample code for this?
>
> For changing the mouse cursor, NSTrackingArea/cursorUpdate: is the best bet. Selection boxes are just a matter of drawing in a view placed above your image view OR (probably simpler once you get into this) not using NSImageView at all, but a custom view that's responsible for drawing both the image and the selection box. Or possibly you can use CALayers, but the custom view is probably easier for this.
>
> The grabber tool is harder, because you need to implement autoscroll, which turns out to be a lot kinkier than it seems like it ought to be.
>
I was afraid of that
>> Also, and this WASN'T easy on IKImageView, but with a lot of help, I got it to work, but is there a trick to getting the scrollView to function? Currently, I zoom in, and it doesn't make the scroll bars appear.
>>
>> I made the view by creating an NSScrollView, and then changing the content view of the scrollview to be NSImageView...
>
> If you really did that, don't. The actual "content" of the scroll view is its document view, not its content view. The content view is the view that clips the document view, and you shouldn't mess with that unnecessarily.
>
So, the content view should go INSIDE the document view? I should have 3 views? a scrollview, a document view and an NSImageView?
Brian Postow
Senior Software Engineer
Acordex Imaging Systems
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden