This is RemoteView.m in view mode; [Download] [Up]
/* * Puppeteer 1.1 * * Copyright (c) 1994 Primitive Software Ltd. All rights reserved. * * Author: Dave Griffiths <dave@prim.demon.co.uk> */ #import "RemoteView.h" #import "Puppeteer.h" #import "WindowInfo.h" #import "Controller.h" extern id puppet; @implementation RemoteView - restoreCursor:(NXEvent *)theEvent /* * Restore the mouse position. */ { NXPoint point; point = theEvent->location; [self convertPoint:&point fromView:NULL]; [self lockFocus]; PSsetmouse(point.x, point.y); NXPing(); [self unlockFocus]; return self; } - mouseDownOrDragged:(NXEvent *)theEvent { NXPoint point = theEvent->location; int selectedWindow = [[NXApp delegate] selectedWindow]; [self convertPoint:&point fromView:NULL]; [puppet postMouseEvent:theEvent->type window:selectedWindow flags:theEvent->flags x:point.x y:point.y click:theEvent->data.mouse.click]; [puppet ping]; [self restoreCursor:theEvent]; return self; } - mouseDown:(NXEvent *)theEvent { NXPoint point = theEvent->location; NXRect wframe; int winNum; if ([[NXApp delegate] printMouseClicks]) { [self convertPoint:&point fromView:NULL]; [puppetWindow getFrame:&wframe]; winNum = [puppetWindow localWindowNumber]; printf("Puppeteer: mouse down in window %d (w = %f, h = %f) at x = %f, y = %f\n", winNum, wframe.size.width, wframe.size.height, point.x, point.y); } [window addToEventMask:NX_MOUSEDRAGGEDMASK]; [puppet postActivate:YES]; [self mouseDownOrDragged:theEvent]; return [super mouseDown:theEvent]; } - mouseDragged:(NXEvent *)theEvent { [self mouseDownOrDragged:theEvent]; return [super mouseDragged:theEvent]; } - mouseUp:(NXEvent *)theEvent { NXPoint point = theEvent->location; int selectedWindow = [[NXApp delegate] selectedWindow]; NXRect wframe; int winNum; [self convertPoint:&point fromView:NULL]; if ([[NXApp delegate] printMouseClicks]) { [puppetWindow getFrame:&wframe]; winNum = [puppetWindow localWindowNumber]; printf("Puppeteer: mouse up in window %d (w = %f, h = %f) at x = %f, y = %f\n", winNum, wframe.size.width, wframe.size.height, point.x, point.y); } [puppet postMouseEvent:theEvent->type window:selectedWindow flags:theEvent->flags x:point.x y:point.y click:theEvent->data.mouse.click]; [puppet postActivate:NO]; [puppet ping]; [puppetWindow copyWindowToImage:image]; [NXApp activateSelf:YES]; [self display]; [[NXApp delegate] reloadPopupList]; [self restoreCursor:theEvent]; return [super mouseUp:theEvent]; } - setWindow:theWindow { puppetWindow = theWindow; [self setImage:[puppetWindow windowImage]]; return self; } - setImage:theImage { NXSize theSize; image = theImage; [image getSize:&theSize]; [self sizeTo:theSize.width:theSize.height]; [self display]; return self; } - drawSelf:(const NXRect *)rects :(int)count { [image composite:NX_COPY toPoint:&(bounds.origin)]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.