This is HGraphicView.h in view mode; [Download] [Up]
/* Hippo Graphic View by Paul Kunz June 1991 * a subclass of GraphicView in /NextDeveloper/Examples/Draw * to add or over-ride so that it can handle hippo Graphic objects * * Copyright (C) 1991 The Board of Trustees of * The Leland Stanford Junior University. All Rights Reserved. */ #define HGRAPHICVIEW_H_ID "$Id: HGraphicView.h,v 2.24.2.2 1994/02/08 20:28:45 rensing Exp $" #import <appkit/appkit.h> #import "Draw.subproj/GraphicView.h" #import "hippo.h" @class HDrawApp; @interface HGraphicView : GraphicView { id prefPanel; /* the Preferences Panel */ id prefForm; /* Preferences Panel Form */ id tupleList; /* List used for archiving & closing */ id cutList; /* List of Plot objects that display Cuts */ id rotateCursor; /* the cursor for grabbing graphs */ HDrawApp *hippoDraw; /* Instance of HippoDraw controler */ } /* The following methods over-ride the super class */ + initialize; /* * Registers the defaults */ + convert:(NXTypedStream *)ts to:(const char *)type using:(SEL)writer toPasteboard:pb; /* * over ride method from super class inorder to make this class * a scrapper */ - initFrame:(const NXRect *)frameRect; /* * Designated initializer for class. */ - (BOOL)validateCommand:menuCell; /* * Invoked with menuCell by autoupdate mechanism. Returns YES * if menuCell's action is valid for selected Graphic(s). */ - (BOOL) hasCutsSelected; /* * Returns YES if any of the selected Plots has a cut applied or * is a Plot displaying a cut. */ - addPages:(int) n; /* * add the specified number of pages to the document */ /* The following methods are extensions for Hippo */ - addPlotOfType:(graphtype_t) type; /* * Creates and adds a new Plot of specified type to the GraphicView, * selects it and returns the newly created plot. * The type corresponds to the hippo graphtype_t * * See also: -addPlotOfType:andSelect: */ - addPlot:plot andSelect:(BOOL) selFlag; /* * Adds a new Plot to the GraphicView. * If selFlag is YES then * also selects the newly created plot and brings front the * data selection inspector. * * See also: -addPlotOfType: */ - calcPlacement: (const NXSize *)theSize result:(NXPoint *)location; /* * given the rectangle, which defines the current size and position * of some set of objects, return the displacement needed to nicely * place the objects. */ - hTupleForFile:(const char *)filename index:(int) iValue; /* * Returns the HTuple object that contains the iValue-th ntuple in * file filename, or nil if none found. */ /*- addCut:plot;*/ /* * Adds the Plot plot to the Cut Plot list. Used with pasting a * cut plot. */ - cutList; /* * Returns a List object that contains Plot objects which support * displays of Cuts. */ - plotList; /* * Returns a List object that contains all Plot objects in the view. */ - (display *) displayList; /* * Returns list of Hippo display structures. */ - firstPlot; /* * Returns the Plot object is only one is selected or * returns the first Plot of a Overlay group, if only one is selected. */ - reDrawPlot; /* reDraws the plots. Temporary method until each plot modification * method is implemented as graphicPerform style method. */ - (BOOL)move:(NXEvent *)event; /* overrides Graphic View's move: to do interactive 3D tracking */ - graphicsPerformNOP: g; /* * caches extended bounds of single graphic g */ - graphicsPerform:(SEL)aSelector with:(void *)argument andDraw:(BOOL)flag inList:aList; /* * Sends message aSelector with argument argument to graphic objects * in List aList. If flag is YES, redraws the graphic. */ - graphicsPerform:(SEL)aSelector with:arg1 with:arg2; /* * Sends message aSelector with arguments arg1 and arg2. */ - graphicsPerform:(SEL)aSelector with:(void *)argument1 with:(void *)argument2 andDraw:(BOOL)flag; - copyPSToPasteboard:pboard; /* Copies only the PostScript code to the pasteboard */ - pasteFromPasteboard:(Pasteboard *)pboard andLink:(LinkType)doLink at:(const NXPoint *)center; /* * Overrides the GraphicView method (implemented in gvPasteboard) in * order to bind plots to ntuple if needed. */ - writePSToStream:(NXStream *)stream; /* * over-rides method in super class in order to bind displays */ - bindDisplays; /* * Binds all the displays to their ntuples. This method is called * opening a document after both the Plot object and ntuple file * have been read. */ - bindDisplaysInList:list; /* * Binds any displays contained in Plot objects in the list list * to their ntuples. This is a private method used for both * opening documents and pasting from the PasteBoard. */ - replace:oldTuple with:newTuple; /* * Receiving view replaces oldTuple with newTuple for plots in its view. */ - closeTupleFile:(const char *) filename; /* * Informs each Plot object in the view that references n-tuple * in the file filename, that the file is closed. */ - openTuple:pasteBoard userData:(const char *)args error:(char **)errorMsg; /* * Method for reading ascii n-tuple from pasteboard */ - calcDefaultPlotSize:(NXRect *) bbox; /* * Calculates the default plot size and returns it via * the argument. */ - (BOOL) hasPFunctions; /* * Responds YES if plot functions have been loaded */ - startArchivingTo:(const char *)directory; /* * Save the source file of any functions in the directory of the * document */ - (int) finishUnarchivingFrom:(const char *) directory; /* * Informs the current list of HTuples that unarchiving is about * finished so that they can attach an tuple column functions. * Returns 0 if successful, non-zero otherwise. */ - write:(NXTypedStream *)stream; /* * Writes the HGraphicView object to NXTypedStream stream. */ - read:(NXTypedStream *)stream; /* * Reads the HGraphicView object from the NXTypedStream stream. */ /* Following methods makes up for used method not implemented * in the NS 3.0 version of GraphicView. */ - graphicsPerformSingle:(SEL)aSelector with:(void *)argument on:(id) g; - loadImageFromStream:(NXStream *)stream at:(const NXPoint *)location allowAlpha:(BOOL)alphaOk; /* * Creates a new Image object using the PostScript or TIFF found in the * given stream and inserts it as the only item in the selection (i.e. * it deslects everything else). The new Graphic is centered at the * given point p, and the GraphicView is scrolled to make the Graphic * visible. */ - insertGraphicNoSelect:graphic; /* * Inserts the specified graphic into the glist and draws it. */ - copySelectionAsPS:(NXStream *)stream; - (BOOL) isAllowed; /* Checks if any selected graphic is a cutPlot. Returns * YES if cut: or delete: method can proceed */ @end /* Following methods handle Menu targets and keyboard events */ @interface HGraphicView(Menu) - addPage:sender; /* * extend the document by 1 page and move all the objects up. */ - deletePage:sender; /* * Deletes the last page if empty */ - addSaveWindow:sender; /* * add a save window to the document */ - alignAll:sender; /* * Aliases for -overlay: method. Kept temporarily for * backward compatiblity. */ - alignSize:sender; /* * Aliases for -overlay: method. Kept temporarily for * backward compatiblity. */ - alignXRange:sender; /* Forces all selected Plots to accept the X range of the first * selected plot */ - alignYRange:sender; /* Forces all selected Plots to accept the Y range of the first * selected plot if the first selected Plot is not a 1D plot. */ - alignXNumBins:sender; /* Forces all selected Plots to accept the number of bins on the X * axis of the first selected plot. */ - alignYNumBins:sender; /* Forces all selected Plots to accept the number of bins on the Y * axis of the first selected plot if that plot is not 1D plot. */ - cut:sender; /* * Cut selected Graphic objects, but check if any are Plot objects * displaying a cut. If so, prompt user first. */ - delete:sender; /* * Delete selected Graphic objects, but check if any are Plot objects * displaying a cut. If so, prompt user first. */ - overlay:sender; /* * Forms an Overlay Group from the selected Graphics. */ - unoverlay:sender; /* * Un-does an Overlay Group. */ - prefPanel:sender; /* * Brings up Preferences Panel */ - prefButton:sender; /* * Responds to either preference Panel button. */ @end /* * methods to handle a script. see file hgvScript.m */ @interface HGraphicView(Script) - executeScript:sender; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.