This is HyperAccess.m in view mode; [Download] [Up]
// HyperAccess.m
// A HyperAccess object provides access to hyperinformation, using
// particular protocols and data format transformations.
// This actual class will not work itself: it just contains common code.
// History:
// 26 Sep 90 Written TBL
#include <stdio.h>
#include <appkit/appkit.h>
#import "HyperAccess.h"
#import "HyperManager.h"
#import "Anchor.h"
#import "HTUtils.h"
@implementation HyperAccess
// Methods used by the Interface Builder code to connect up the application:
- setTitleString:anObject
{
titleString = anObject;
return self;
}
- setAddressString:anObject
{
addressString = anObject;
return self;
}
- setOpenString:anObject
{
openString = anObject;
return self;
}
- setKeywords:anObject
{
keywords = anObject;
return self;
}
- setContentSearch:anObject
{
contentSearch = anObject;
return self;
}
- setManager:anObject;
{
manager = anObject;
[(HyperManager *)manager registerAccess:self];
return self;
}
// Methods to return the values of instance variables
- manager
{
return manager;
}
// Return the name of this access method
- (const char *)name
{
return "Generic";
}
// Actions:
// These are all dummies, because only subclasses of this class actually work.
- search:sender
{
return nil;
}
- searchRTF:sender
{
return nil;
}
- searchSGML:sender
{
return nil;
}
// Direct open buttons:
- open:sender
{
return nil;
}
- openRTF:sender
{
return nil;
}
- openSGML:sender
{
return nil;
}
- accessName:(const char *)name Diagnostic:(int)level
{
return nil; /* can't do that. */
}
// This will load an anchor which has a name
- loadAnchor: (Anchor *) anAnchor
{
return [self loadAnchor:anAnchor Diagnostic:0]; // If not otherwise implemented
}
- loadAnchor: (Anchor *)a Diagnostic:(int)diagnostic
{
return nil;
}
- saveNode:(HyperText *)aText
{
NXRunAlertPanel(NULL,
"You cannot overwrite this original document. You can use `save a copy in...'",
NULL,NULL,NULL);
printf(
"HyperAccess: You cannot save a hypertext document in this domain.\n");
return nil;
}
// Text Delegate methods
// ---------------------
// These default methods for an access allow editing, and change the cross
// in the window close button to a broken one if the text changes.
#ifdef TEXTISEMPTY
// Called whenever the text is changed
- text:thatText isEmpty:flag
{
if (TRACE) printf("Text %i changed, length=%i\n", thatText, [thatText textLength]);
return self;
}
#endif
- textDidChange:textObject
{
if (TRACE) printf("HM: text Did Change.\n");
[[textObject window] setDocEdited:YES]; /* Broken cross in close button */
return self;
}
- (BOOL)textWillChange:textObject
{
if (TRACE) printf("HM: text Will Change -- OK\n");
return NO; /* Ok - you may change (sic) */
}
// These delegate methods are special to HyperText:
- hyperTextDidBecomeMain: sender
{
return [manager hyperTextDidBecomeMain: sender]; /* Pass the buck */
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.