This is ShowIconApp.m in view mode; [Download] [Up]
/* ----------------------------------------------------------------------------------- */
/* ShowIconPath.m -- Copyright (c) 1990 Charlie Lindahl <lindahl@evax.arl.utexas.edu> */
/* */
/* This program is free software; you can redistribute it and/or modify it under the */
/* terms of the GNU General Public License as published by the Free Software */
/* Foundation; either version 1, or (at your option) any later option. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT ANY */
/* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A */
/* PARTICULAR PURPOSE. See the GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License along with this */
/* this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, */
/* Cambridge, MA 02139, USA, or send electronic mail to the author. */
/* ------------------------------------------------------------------------------------ */
/* */
/* ------------------------------------------------------------------------------------ */
/* Credit is due to Ed Hill <edhill@shumun.weeg.uiowa.edu>, author of FrontEnd, */
/* a Macintosh to NeXT sound conversion program. His was the code I started with */
/* to figure out the details of the icon dragging code. */
/* ------------------------------------------------------------------------------------ */
/******************************************************************
*
* Various .h files:
*
* ShowIconApp.h : Generated by IB
* appkit/appkit.h : Needed for standard appKit stuff
* appkit/publicWraps.h : Needed for Speaker/Listener stuff
* appkit/nextstd.h : Needed for NX_MALLOC defs
* string.h : Needed for string functions
*
******************************************************************/
#import "ShowIconApp.h"
#import <appkit/appkit.h>
#import <appkit/publicWraps.h>
#import <appkit/nextstd.h>
#import <string.h>
@implementation ShowIconApp
- setIconTextField:anObject
{
IconTextField = anObject;
return self;
}
- setMainWindow:anObject
{
MainWindow = anObject;
return self;
}
- setIconButton:anObject
{
IconButton = anObject;
return self;
}
/************************************************************************
* The following method takes over after the application has
* been started by the workspace manager.
* It is setting up the window to display an icon which is dragged
* within it.
************************************************************************/
- appDidInit:sender
{
id theListener;
id theSpeaker;
unsigned int windowNum;
theSpeaker = [NXApp appSpeaker];
NXConvertWinNumToGlobal([MainWindow windowNum], &windowNum);
theListener = [NXApp appListener];
[theListener setDelegate:self];
[theListener privatePort];
[theListener addPort];
[theSpeaker setSendPort: NXPortFromName(NX_WORKSPACEREQUEST, NULL)];
[theSpeaker registerWindow: windowNum toPort:[theListener listenPort]];
NX_FREE( iconPath );
NX_MALLOC( iconPath, char, strlen( "" ) + 1 );
strcpy( iconPath, "" );
return self;
}
/************************************************************************
* The following method is invoked when an icon is dragged within
* the main window of this application.
************************************************************************/
- (int)iconEntered:(int)windowNum
at:(double)x
:(double)y
iconWindow:(int)iconWindowNum
iconX:(double)iconX
iconY:(double)iconY
iconWidth:(double)iconWidth
iconHeight:(double)iconHeight
pathList:(const char *)pathList
{
NX_FREE( iconPath );
NX_MALLOC( iconPath, char, strlen( pathList ) + 1 );
strcpy( iconPath, pathList );
[IconTextField setStringValue:iconPath];
return 0;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.