home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * (a) (C) 1990 by Adobe Systems Incorporated. All rights reserved.
- *
- * (b) If this Sample Code is distributed as part of the Display PostScript
- * System Software Development Kit from Adobe Systems Incorporated,
- * then this copy is designated as Development Software and its use is
- * subject to the terms of the License Agreement attached to such Kit.
- *
- * (c) If this Sample Code is distributed independently, then the following
- * terms apply:
- *
- * (d) This file may be freely copied and redistributed as long as:
- * 1) Parts (a), (d), (e) and (f) continue to be included in the file,
- * 2) If the file has been modified in any way, a notice of such
- * modification is conspicuously indicated.
- *
- * (e) PostScript, Display PostScript, and Adobe are registered trademarks of
- * Adobe Systems Incorporated.
- *
- * (f) 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 NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS.
- */
-
- /*
- * PatternApp.m
- *
- * This subclass of the application class performs the global
- * setup needed for the Pattern application. The drawing
- * window is created.
- *
- * Version: 2.0
- * Author: Ken Fromm
- * History:
- * 03-07-91 Added this comment.
- */
-
- #import "PatternApp.h"
- #import "DocView.h"
- #import "DrawingView.h"
-
- #import <objc/List.h>
- #import <objc/hashtable.h>
- #import <appkit/Button.h>
- #import <appkit/Matrix.h>
- #import <appkit/ScrollView.h>
- #import <appkit/Window.h>
- #import <appkit/nextstd.h>
- #import <sys/param.h>
- #import <string.h>
-
- static NXRect windowRect = {150, 184, 550, 600};
- static NXRect drawingRect = {0, 0, 540, 590};
-
- /*
- * Reflects the drawing mode as indicated by the radio buttons
- * on the Drawing Options panel in the interface.
- */
- short DrawingStatus;
-
- @implementation PatternApp
-
- /*
- * Create the drawing window and place a scrollview as the content view.
- * A DrawingView instance is placed as the DocView of the ScrollView.
- */
- - createWindow:(NXRect *) winRect
- {
- id docView, scrollView;
-
- NXRect tempRect;
-
- windowId = [Window newContent:winRect
- style:NX_TITLEDSTYLE
- backing:NX_BUFFERED
- buttonMask:NX_RESIZEBUTTONMASK
- defer:NO];
- [windowId setTitle:"Patterns"];
-
- [Window getContentRect:&tempRect forFrameRect:winRect style:NX_TITLEDSTYLE];
-
- scrollView = [ScrollView newFrame:&tempRect];
- [scrollView setBorderType:SCROLLVIEW_BORDER];
- [scrollView setHorizScrollerRequired:YES];
- [scrollView setVertScrollerRequired:YES];
-
- drawingviewId = [[[DrawingView newFrame:&drawingRect] setClipping:NO] allocateGState];
- docView = [[[[DocView new] setClipping:NO] allocateGState] setScale:1.0];
-
- [[docView setDrawView:drawingviewId] free];
- [[scrollView setDocView:docView] free];
- [[windowId setContentView:scrollView] free];
-
- [drawingviewId initPatterns];
-
- /*
- * Important in 2.0 because it eliminates a problem in 2.0 that shifts the halftonephase
- * over by 1 extra pixel, causing a noticable aberration in a halftone during a scroll.
- */
- [[[docView superview] setFlipped:NO] allocateGState];
- [docView placeDrawView];
-
- [windowId makeFirstResponder:drawingviewId];
- [windowId setDelegate:self];
-
- [windowId display];
- [windowId makeKeyAndOrderFront:self];
-
- return self;
- }
-
- /* The window will free the its subviews. */
- - free
- {
- [windowId free];
-
- return [super free];
- }
-
- - countMatrix
- {
- return countMatrix;
- }
-
- - graphicsMatrix
- {
- return graphicsMatrix;
- }
-
- - patternMatrix
- {
- return patternMatrix;
- }
-
- - timingMatrix
- {
- return timingMatrix;
- }
-
- - typeMatrix
- {
- return typeMatrix;
- }
-
- - lockMatrix
- {
- return lockMatrix;
- }
-
- - zoomMatrix
- {
- return zoomMatrix;
- }
-
- - patternBox
- {
- return patternBox;
- }
-
- - drawingView
- {
- return drawingviewId;
- }
-
- - docView
- {
- return [drawingviewId superview];
- }
-
- - appDidInit:sender
- {
- [self createWindow:&windowRect];
-
- return self;
- }
-
- /*
- * Resizes the doc view and repositions the drawing view inside the doc view.
- */
- - windowDidResize:sender
- {
- [[self docView] placeDrawView];
-
- return self;
- }
-
- @end
-