Re: Converting to Window Coordinates
Re: Converting to Window Coordinates
- Subject: Re: Converting to Window Coordinates
- From: Dave <email@hidden>
- Date: Tue, 21 Apr 2015 17:46:45 +0100
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@hidden> 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: cocoa-dev-bounces+lrucker=email@hidden [cocoa-dev-bounces+lrucker=email@hidden] on behalf of Dave [email@hidden]
> 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@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
_______________________________________________
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