This is IPostButton.m in view mode; [Download] [Up]
/*$Copyright: * Copyright (C) 1992.5.22. Recruit Co.,Ltd. * Institute for Supercomputing Research * All rights reserved. * NewsBase by ISR, Kazuto MIYAI, Gary ARAKAKI, Katsunori SUZUKI, Kok-meng Lue * * You may freely copy, distribute and reuse the code in this program under * following conditions. * - to include this notice in the source code, if it is to be distributed * with source code. * - to add the file named "COPYING" within the code, which shall include * GNU GENERAL PUBLIC LICENSE(*). * - to display an acknowledgement in binary code as follows: "This product * includes software developed by Recruit Co.,Ltd., ISR." * - to display a notice which shall state that the users may freely copy, * distribute and reuse the code in this program under GNU GENERAL PUBLIC * LICENSE(*) * - to indicate the way to access the copy of GNU GENERAL PUBLIC LICENSE(*) * * (*)GNU GENERAL PUBLIC LICENSE is stored in the file named COPYING * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. $*/ #import "IPostButton.h" #import "IReceiveSpeaker.h" #import "IReceiveListener.h" #import "Localization.h" #import <appkit/NXImage.h> #import <appkit/Panel.h> #import <dpsclient/psops.h> #define LoStr(key) doLocalString(NULL,key,NULL) #define MIMEDOCICON "mimeDocIcon" @implementation IPostButton - initFrame:(NXRect *)frameRect { [super initFrame:frameRect]; [self setIcon:MIMEDOCICON]; [self setBordered:YES]; return self; } - mouseDown:(NXEvent *)theEvent { port_t port; int returnCode; NXPoint hitPoint, mousePoint; unsigned int gwinNum; // compute frame origin point to convert to base screen coord. mousePoint = theEvent->location; [window convertBaseToScreen:&mousePoint]; // compute offset of mouse down point hitPoint = theEvent->location; [self convertPoint:&hitPoint fromView:nil]; if([self isFlipped] == YES) { hitPoint.y = frame.size.height - hitPoint.y; } NXConvertWinNumToGlobal([window windowNum], &gwinNum); port = NXPortFromName("NewsBase", NULL); [[NXApp appSpeaker] setSendPort:port]; if ((returnCode = [[NXApp appSpeaker] makeMimeIconWindowAtpointX:(int)mousePoint.x pointY:(int)mousePoint.y offsetX:(int)hitPoint.x offsetY:(int)hitPoint.y sourceWindow:(int)gwinNum]) != 0) { NXRunAlertPanel([self name],LoStr("cannot contact NewsBase"), LoStr("OK"),NULL,NULL); } return(self); } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.