This is InfoAnimator.m in view mode; [Download] [Up]
//*****************************************************************************
//
// InfoAnimator.m
//
// Controls Info panel animation
//
// by Felipe A. Rodriguez
//
// This code is supplied "as is" the author 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 <appkit/appkit.h>
#import "InfoAnimator.h"
#import "GKdefs.h"
@interface InfoAnimator (Private)
static void InfoAnimate(); // called by timed entry events
static DPSTimedEntry aniTimeTag;
@end
@implementation InfoAnimator
//*****************************************************************************
//
// register timed entry
//
//*****************************************************************************
- startAnimTimer
{
if(!aniTimeTag)
aniTimeTag = DPSAddTimedEntry( // register function Animate
0.08, // to be called every period of
(DPSTimedEntryProc)InfoAnimate, // arg0
(id)self,
NX_BASETHRESHOLD);
[versionStrView setStringValue:NXGetDefaultValue([NXApp appName],VERSION)];
[[sView window] center];
[[sView window] makeKeyAndOrderFront:self];
return self;
}
//*****************************************************************************
//
// animate target of timed entry
//
//*****************************************************************************
- _animate
{
return [sView display];
}
//*****************************************************************************
//
// remove the timed entry when connection is made or we exit
//
//*****************************************************************************
- removeTimedEntry
{
if(aniTimeTag)
DPSRemoveTimedEntry(aniTimeTag);
aniTimeTag = 0;
return self;
}
//********************** Window delegate method *******************************
//*****************************************************************************
//
// called whenever the user closes our window.
//
//*****************************************************************************
- windowWillClose:sender
{
return [self removeTimedEntry];
}
@end
@implementation InfoAnimator (Private)
//*****************************************************************************
//
// This fucntion is registered by DPSaddtimedentry.
// It is subsequently called every period t as registered
// in arg 0 of DPSaddtimedentry.
//
//*****************************************************************************
static void InfoAnimate(DPSTimedEntry time_tag, double now, id self)
{
[self _animate];
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.