Add base/screen conversion

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@4377 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 1999-06-08 19:18:49 +00:00
parent 39037c2c7f
commit 67beb8dac4
4 changed files with 24 additions and 1 deletions

View file

@ -1,3 +1,11 @@
1999-06-08 Adam Fedor <fedor@gnu.org>
* Headers/gnustep/gui/NSGraphicsContext.h (-convertBaseToScreen:):
New method. (-convertScreenToBase): Likewise.
* Source/NSGraphicsContext.m: Default implementation.
* Source/NSWindow.m (-convertBaseToScreen:): Use them.
(-convertScreenToBase): Likewise.
Sun Jun 6 20:40:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* Headers/AppKit/NSEvent.h: Added new event types and masks and tidied.

View file

@ -129,6 +129,10 @@ NSGraphicsContext *GSCurrentContext();
- (void) lockFocusView: (NSView*)aView inRect: (NSRect)rect;
- (void) unlockFocusView: (NSView*)aView needsFlush: (BOOL)flush;
/* Convert to/from base coordinates of root window */
- (NSPoint) convertBaseToScreen: (NSPoint)point;
- (NSPoint) convertScreenToBase: (NSPoint)point;
@end
#endif

View file

@ -263,6 +263,16 @@ struct NSWindow_struct
[focus_stack removeLastObject];
}
- (NSPoint) convertBaseToScreen: (NSPoint)point
{
return point;
}
- (NSPoint) convertScreenToBase: (NSPoint)point
{
return point;
}
@end
@implementation NSGraphicsContext (Private)

View file

@ -662,13 +662,14 @@ static Class responderClass;
screenPoint.x = frame.origin.x + basePoint.x;
screenPoint.y = frame.origin.y + basePoint.y;
return screenPoint;
return [GSCurrentContext() convertBaseToScreen: screenPoint];
}
- (NSPoint) convertScreenToBase: (NSPoint)screenPoint
{
NSPoint basePoint;
screenPoint = [GSCurrentContext() convertScreenToBase: screenPoint]
basePoint.x = screenPoint.x - frame.origin.x;
basePoint.y = screenPoint.y - frame.origin.y;