This is InteractionWin.m in view mode; [Download] [Up]
/* Copyright 1991 Gustavus Adolphus College. All rights reserved.
*
* Schematik was developed by Gustavus Adolphus College (GAC) with
* support from NeXT Computer, Inc. Permission to copy this software,
* to redistribute it, and to use it for any purpose is granted,
* subject to the following restrictions and understandings.
*
* 1. Any copy made of this software must include this copyright
* notice in full.
*
* 2. Users of this software agree to make their best efforts (a) to
* return to the GAC Mathematics and Computer Science Department any
* improvements or extensions that they make, so that these may be
* included in future releases; and (b) to inform GAC of noteworthy
* uses of this software.
*
* 3. All materials developed as a consequence of the use of this
* software shall duly acknowledge such use, in accordance with the
* usual standards of acknowledging credit in academic research.
*
* 4. GAC makes no express or implied warranty or representation of
* any kind with respect to this software, including any warranty
* that the operation of this software will be error-free. ANY
* IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
* PURPOSE IS HEREBY DISCLAIMED. GAC is under no obligation to
* provide any services, by way of maintenance, update, or otherwise.
*
* 5. In conjunction with products arising from the use of this
* material, there shall be no use of the name of Gustavus Adolphus
* College nor of any adaptation thereof in any advertising,
* promotional, or sales literature without prior written consent
* from GAC in each case.
*/
#import "InteractionWin.h"
#import "../defines.h"
#import DocText_h
#import PrefAgent_h
#import Main_h
#import <appkit/Menu.h>
#import <appkit/ScrollView.h>
#import <appkit/TextFieldCell.h>
#import <mach.h>
extern void *malloc(size_t);
extern void free(void *);
extern size_t strlen(const char *);
#define NIBFILE "Interaction.nib"
#define INTERZONENAME "InterWin"
#define MINIWINDOWICON "Interaction"
#define MINWINDOWHEIGHT 103
#define MINWINDOWWIDTH 450
@implementation InteractionWin
+ new
{
NXRect r;
NXZone *zone = NXCreateZone(vm_page_size, vm_page_size, YES);
DEBUG_FUNC1(DEBUGLEVEL);
DEBUG_ASSERT(zone!=NULL)
self = LoadNIB(NIBFILE, self, zone);
DEBUG_ASSERT(self!=nil)
docZone = zone;
NXNameZone(docZone, INTERZONENAME);
[self _newAuxiliary];
[[PrefAgent new] getInterFrame:&r];
[self placeWindow:&r];
[self setTitle:INTERWINDOWTITLE];
DEBUG_ASSERT(([self title]!=NULL)&&(*[self title]))
[self setMiniwindowIcon:MINIWINDOWICON];
DEBUG_ASSERT(([self miniwindowIcon]!=NULL)&&(*[self miniwindowIcon]))
[levelText setStringValue:LEVELTITLE];
DEBUG_ASSERT(([levelText stringValue]!=NULL)&&(*[levelText stringValue]))
return self;
}
- setTitleAsFilename:(const char *)aString
{
char *temp;
[super setTitleAsFilename:aString];
temp = malloc(strlen([super title])+strlen(INTERWINDOWTITLE)+4);
sprintf(temp, "%s (%s)", INTERWINDOWTITLE, [super title]);
[super setTitle:temp];
free(temp);
return self;
}
- setLevel:(int)anInt
{
DEBUG_FUNC1(DEBUGLEVEL);
return [levelField setIntValue:anInt];
}
- setPrompt:(const char *)aString
{
DEBUG_FUNC1(DEBUGLEVEL);
return [promptField setStringValue:aString];
}
@end
@implementation InteractionWin (Delegate)
- textDidGetKeys:sender isEmpty:(BOOL)flag
{
DEBUG_FUNC1(DEBUGLEVEL);
return [super setDocEdited:YES];
}
- textWillConvert:sender fromFont:from toFont:to
{
DEBUG_FUNC1(DEBUGLEVEL);
[[PrefAgent new] setInterFont:to];
return to;
}
- windowDidMove:sender
{
NXRect r;
DEBUG_FUNC1(DEBUGLEVEL);
[super getFrame:&r];
return [[PrefAgent new] setInterFrame:&r];
}
- windowDidResize:sender
{
NXRect r;
DEBUG_FUNC1(DEBUGLEVEL);
[super getFrame:&r];
return [[PrefAgent new] setInterFrame:&r];
}
- windowDidBecomeMain:sender
{
DEBUG_FUNC1(DEBUGLEVEL);
DisableMenuItem(FindMenuCell2(MENU_DOCUMENT, MENU_DOCUMENT_Close));
DisableMenuItem(FindMenuCell2(MENU_WINDOWS, MENU_WINDOWS_Close));
if (![[PrefAgent new] evaluateAll])
DisableMenuItem(FindMenuCell2(MENU_ACTIONS, MENU_ACTIONS_EvalAll));
return self;
}
- windowDidResignMain:sender
{
DEBUG_FUNC1(DEBUGLEVEL);
EnableMenuItem(FindMenuCell2(MENU_DOCUMENT, MENU_DOCUMENT_Close));
EnableMenuItem(FindMenuCell2(MENU_WINDOWS, MENU_WINDOWS_Close));
EnableMenuItem(FindMenuCell2(MENU_ACTIONS, MENU_ACTIONS_EvalAll));
return self;
}
- windowWillResize:sender toSize:(NXSize *)frameSize
{
DEBUG_FUNC1(DEBUGLEVEL);
if (frameSize->width<MINWINDOWWIDTH)
frameSize->width = MINWINDOWWIDTH;
if (frameSize->height<MINWINDOWHEIGHT)
frameSize->height = MINWINDOWHEIGHT;
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.