Hi Again,

Yes, I wondered about multiple monitors but it seems to work ok, I’ve got 3 
monitors hooked up and it works regardless of where they are, probably because 
[NSScreen screens] objectAtIndex:0]  is the screen with the main menu and all 
windows are relative to that?

The content view and the window view have the same rectangle, so that works 
too, although maybe I ought to change is as you’ve suggested?

Yes, the coordinates are from the Mouse.

All the Best
Dave

> On 21 Apr 2015, at 18:12, Lee Ann Rucker <[email protected]> wrote:
> 
> Your screen flipping code is a good start, but it's not going to work with 
> multiple monitors. That's why knowing where it comes from would be helpful - 
> for instance, if it's the current mouse point, there are definitely better 
> ways to do this.
> 
> Another thing you've missed: converting to myContentView's coordinate space 
> from the window's space, with [myContentView convertPoint:myWindowPoint 
> fromView:nil] - "If aView is nil, this method instead converts from window 
> base coordinates"
> 
> And if it doesn't find a subview, it will return myContentView so you'll need 
> a check for that. "if (myCocoaControlView == myContentView)" will work fine.
> ________________________________________
> From: [email protected] 
> [[email protected]] on behalf of Dave 
> [[email protected]]
> Sent: Tuesday, April 21, 2015 9:46 AM
> To: Cocoa Developers
> Subject: Re: Converting to Window Coordinates
> 
> Hi Lee Ann,
> 
> I was pretty sure the theGlobalPoint is Top, Left relative, but wasn't sure 
> how to convert it, I tried a few things and this seems to work:
> 
> myContentView = myPhantomWindow.contentView;
> 
> myGlobalPoint.x = theGlobalPoint.x;
> myGlobalPoint.y = NSMaxY([[[NSScreen screens] objectAtIndex:0] frame]) - 
> theGlobalPoint.y;              //Flip
> 
> myWorkRect.origin = myGlobalPoint;
> myWorkRect.size = NSMakeSize(1,1);
> myWorkRect = [self.window convertRectFromScreen:myWorkRect];
> myWindowPoint = myWorkRect.origin;
> 
> myCocoaControlView = [myContentView hitTest:myWindowPoint];
> if (myCocoaControlView != nil)
>        {
> 
>        LogIfDave(@"FoundView: %@ ",NSStringFromClass([myCocoaControlView 
> class]));
>        }
> 
> I don’t want it too report having found the Point in the Content View, what’s 
> the best way to handle this? I could compare the view returned to 
> window.contentView or I could
> 
> 
> 
> Thanks a lot
> Dave
> 
> 
>> On 21 Apr 2015, at 17:06, Lee Ann Rucker <[email protected]> wrote:
>> 
>> How are you getting your global point? There are non-Cocoa parts of the OS 
>> that do use top-left instead of bottom-left origins, so those will need 
>> converting.
>> ________________________________________
>> From: [email protected] 
>> [[email protected]] on behalf of Dave 
>> [[email protected]]
>> Sent: Tuesday, April 21, 2015 8:53 AM
>> To: Cocoa Developers
>> Subject: Converting to Window Coordinates
>> 
>> I meant add this:
>> 
>> Global: {183.45703125, 92.41015625}
>> Window: {183.45703125, -619.58984375}
>> 
>> These are the values I get when I run the code. From looking at Y it looks 
>> like I need to flip the Y Coordinate, but I’m not sure where/how to do this?
>> 
>> TheY = 92 on the Global Point represents a point near the top of the Screen.
>> 
>> Cheers
>> Dave
>> 
>> 
>> Hi All,
>> 
>> I have the following code in a Window Controller.
>> 
>> myWorkRect.origin = theGlobalPoint;
>> myWorkRect.size = NSMakeSize(1,1);
>> myWorkRect = [self.window convertRectFromScreen:myWorkRect];
>> myWindowPoint = myWorkRect.origin;
>> 
>> myCocoaControlView = [myContentView hitTest: myWindowPoint];
>> 
>> I have a Point in Global (Screen) space and I want to check if that point is 
>> inside a view of the associated window. I had hoped the code above would do 
>> the trick but it seems not.
>> 
>> The Global point is within a View in the Window, and when this code gets 
>> called hitTest always returned the Frame View (not the deepest View that 
>> intersects the point) as the documentation says, just to see what would 
>> happen, I overrode hitTest in the Content View and now it returns nil.
>> 
>> What am I do doing wrong?
>> 
>> Thanks a lot for any help,
>> All the Best
>> Dave
>> 
>> 
>> 
>> _______________________________________________
>> 
>> Cocoa-dev mailing list ([email protected])
>> 
>> 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/lrucker%40vmware.com
>> 
>> This email sent to [email protected]
> 
> 
> _______________________________________________
> 
> Cocoa-dev mailing list ([email protected])
> 
> 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/lrucker%40vmware.com
> 
> This email sent to [email protected]


_______________________________________________

Cocoa-dev mailing list ([email protected])

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 [email protected]

Reply via email to