ftp.nice.ch/pub/next/tools/editor/Ivy.1.6.s.tar.gz#/Ivy.1.6.s/MiniText.Delegate.m

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.