This is ClockApp.m in view mode; [Download] [Up]
/*
* (C) 1990 by Adobe Systems Incorporated. All rights reserved.
*
* This file may be freely copied and redistributed as long as:
* 1) This entire notice continues to be included in the file,
* 2) If the file has been modified in any way, a notice of such
* modification is conspicuously indicated.
*
* PostScript, Display PostScript, and Adobe are registered trademarks of
* Adobe Systems Incorporated.
*
* ************************************************************************
* THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO CHANGE WITHOUT
* NOTICE, AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ADOBE SYSTEMS
* INCORPORATED. ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY OR
* LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO WARRANTY OF ANY
* KIND (EXPRESS, IMPLIED OR STATUTORY) WITH RESPECT TO THIS INFORMATION,
* AND EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR PARTICULAR PURPOSES AND NONINFINGEMENT OF THIRD PARTY RIGHTS.
* ************************************************************************
*/
/*
* ClockApp.m
*
* This class creates the window that the clock goes in and then
* installs a ClockView object as the content view. The clock is
* initialized by drawing the clock face, sending the user paths for
* the hands down to the server and defining the gstates.
*/
#import "ClockApp.h"
#import "ClockView.h"
#import <appkit/Application.h>
#import <appkit/Control.h>
#import <appkit/Window.h>
@implementation ClockApp
/*
* Create a window, install a ClockView object as the content view and
* initialize the clock.
*/
+ new
{
NXRect aRect;
self = [super new];
NXSetRect(&aRect, 250.0, 400.0, 400.0, 375.0);
windowId = [Window newContent:&aRect
style:NX_TITLEDSTYLE
backing:NX_BUFFERED
buttonMask:NX_RESIZEBUTTONMASK
defer:NO];
[windowId setTitle:"Clock"];
viewId = [ClockView new];
[[windowId setContentView:viewId] free];
[viewId drawFace];
[viewId defineUPaths];
[viewId defineGStates];
[windowId display];
[windowId makeKeyAndOrderFront:self];
return self;
}
/* The view is freed when the window is freed. */
- free
{
[windowId free];
return [super free];
}
/* Set the target and actions for the buttons. */
- setGstateButton:anObject
{
[[anObject setTarget:viewId] setAction:@selector(toggleGstate:)];
return self;
}
- setUpathButton:anObject
{
[[anObject setTarget:viewId] setAction:@selector(toggleUpath:)];
return self;
}
/* Pass the id for the time display field to the ClockView object. */
- setDisplayTime:anObject
{
[viewId setDisplayTime:anObject];
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.