This is SwapLaterView.m in view mode; [Download] [Up]
//************************************************************************
//
// SwapLaterView.m.
//
// Subclass of SwapView which allows a control in the view heirarchy
// to trigger swapping. Unlike is ancestor class swapping is not
// performed immediately but scheduled to occur later.
//
//
// This code is supplied "as is" the author's makes no warranty as to its
// suitability for any purpose. This code is free and may be distributed
// in accordance with the terms of the:
//
// GNU GENERAL PUBLIC LICENSE
// Version 2, June 1991
// copyright (C) 1989, 1991 Free Software Foundation, Inc.
// 675 Mass Ave, Cambridge, MA 02139, USA
//
//************************************************************************
#import "SwapLaterView.h"
@implementation SwapLaterView
//*****************************************************************************
//
// swaps views in and out of inspector's swapview
//
//*****************************************************************************
- swapIt
{
if([self whatPanel])
{ // make sure this is a new view to swap in
if(lastInspector != inspector)
{
if(lastInspector) // swap Later
[self perform:@selector(swapLater) with:self afterDelay:0
cancelPrevious:YES];
else
{
[self addSubview:[inspector contentView]];
lastInspector = inspector; // remember panel it came from
[self display];
}
}
}
else
{ // no inspector so clean up the background
[self lockFocus];
PSsetgray(backgroundGray); // use the backgroundGray
NXRectFill(&bounds);
[self unlockFocus];
lastInspector = (id)NULL; // now the last inspector is NULL
NXPing(); // let the window server cetch up... (yawn...)
}
return self;
}
//*****************************************************************************
//
// delayed swapping of views in the view heirarchy
//
//*****************************************************************************
- swapLater
{
[self replaceSubview:[lastInspector contentView]
with:[inspector contentView]];
lastInspector = inspector; // remember the panel it came from
[self display];
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.