/*
 * (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.
 * ************************************************************************
 */


/*
 * WorldView.m
 * 
 * WorldView is a subclass of View.  It simply displays and clears a 
 * message in the view.  The one lesson this example shows is the 
 * modification of "drawSelf::" and the call to "display".  The method, 
 * "drawSelf::", should not be called directly.  Instead, "display" should 
 * be called.  The reason is because display message performs some 
 * necessary overhead such as bringing the View into focus by constructing 
 * a clipping path around its frame rectangle and making its coordinate 
 * system the current coordinate system for the application.  The display 
 * method then messages drawSelf::.  These steps are repeated for each of 
 * the View's subviews. 
 *
 * Note:  Any instance variables that need to be initialized before the 
 * first display should be done in the "new" or "newFrame:" method.  In 
 * this case, DrawHello is already a null value at its creation so no 
 * initialization has to be performed.
 */

#import "WorldView.h"
#import <dpsclient/wraps.h>

@implementation WorldView

- drawHello:sender
{
    DrawHello = YES;
    [self display];
    return self;
}

- clearHello:sender
{
    DrawHello = NO;
    [self display];
    return self;
}

/*  The first two lines clear the view,  The remaider display the message 
 * in the view. */
- drawSelf:(NXRect *) r: (int) count
{
	PSsetgray (NX_LTGRAY);
	PSrectfill(
	    bounds.origin.x, bounds.origin.y, 
	    bounds.size.width, bounds.size.height);

	if (DrawHello)
	 {
		PSsetgray (NX_BLACK);
		PSmoveto (50.0, 70.0);
		PSselectfont ("Times-Roman", 40.0);
		PSshow ("Hello World");
	}

	return self;
}

@end
