This is MiniText.Delegate.m in view mode; [Download] [Up]
/* Treat some events, chiefly to save the text on exit,
Copyright (C) 1996, Felix H. Gatzemeier.
This file is part of Ivy.app, the minimal NeXTstep(TM) Editor..
Ivy.app 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 2, or (at your option)
any later version.
Ivy.app 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 Ivy.app; see the file COPYING. If not, write to
fxg@imib.rwth-aachen.de
or the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#import "MiniText.Delegate.h"
/* As a Window and an Application Delegate, MiniText tracks termination. */
@implementation MiniText (ApplicationDelegate)
/* ======================
= -appWillTerminate: =
====================== */
-appWillTerminate:sender
{
if([[NXApp keyWindow] isDocEdited])
{
if(NXRunAlertPanel("Document modified",
"Save it before quitting?", "Save", "Don't Save", NULL)
==NX_ALERTDEFAULT)
{
NXStream *ostream = NXMapFile(NXArgv[NXArgc-1], NX_WRITEONLY);
if(ostream != NULL)
{
[self writeText: ostream];
NXSaveToFile(ostream, NXArgv[NXArgc-1]);
NXCloseMemory(ostream, NX_TRUNCATEBUFFER);
}
}
}
return self;
}
- appDidInit:sender
{
[self setSel:0:0];
return self;
}
@end
@implementation MiniText (WindowDelegate)
/* ====================
= windowWillClose: =
==================== */
-windowWillClose:sender
{
[NXApp terminate:self];
return self; /* never gets here , but cc doesn't know. */
}
@end
/* As a Text Delegate, MiniText tracks document change. */
@implementation MiniText (TextDelegate)
/* ==================
= textDidChange: =
================== */
-textDidChange:sender
{
[sender setDelegate:nil]; /* Once set, we never reset docEdited. */
[[NXApp keyWindow] setDocEdited:YES];
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.