home *** CD-ROM | disk | FTP | other *** search
- ///////////////////////////////////////////////////////////////////////////////
- // FILENAME: eTComponent.h
- // SUMMARY: Interface for a generic external-data-container class.
- // SUPERCLASS: Object
- // INTERFACE: None
- // PROTOCOLS: <ComponentData,
- // ETFDSupport,ASCIISupport,HTMDSupport, LaTeXSupport>
- // AUTHOR: Rohit Khare and Tom Zavisca
- // COPYRIGHT: (c) 1994 California Institure of Technology, eText Project
- ///////////////////////////////////////////////////////////////////////////////
- // DESCRIPTION
- // This is an implementation of the <ComponentData> protocol that works
- // for UNIX files, i.e. data that is copied verbatim from data in the
- // in the filesystem. Subclasses can override default behavior to specify
- // conversions, sharing, and binding conventions for specific data types.
- ///////////////////////////////////////////////////////////////////////////////
- // HISTORY
- // 08/06/94: Added symbolic linking support.
- // 07/19/94: Rewritten/Reorganized as described in Actors/eTComponent.rtf
- // 07/10/94: Created. Final step in evolution towards model-view-controller.
- ///////////////////////////////////////////////////////////////////////////////
-
- // Note that this file #imports eTImageComponent.h & eTAudioComponent.h at end
- #import "eTextKernel.h"
-
- @interface eTComponent:Object <ComponentData, ETFDSupport, ASCIISupport, HTMDSupport, LaTeXSupport>
- {
- NXAtom componentName; //
- NXAtom currentPath; //
- BOOL shouldEdit; // rename to wantsEdit
- BOOL isDirty;
- BOOL isLinked;
- id etDoc;
- id icon;
- }
-
- - initInDoc:newDoc linked: (BOOL) linked;
- - readComponentFromPath:(NXAtom)newPath;
- - writeComponentToPath:(NXAtom)path inFormat:(int)theFormat;
- - linkComponentToPath:(NXAtom)path;
- - readComponentFromPboard:(Pasteboard *)thePB;
- - writeComponentToPboard: (Pasteboard *)thePB;
-
- - (const char *) componentName;
- - (const char *) currentPath;
- - etDoc;
- - icon;
- - touch;
- - (BOOL) isLinked;
- - (BOOL) isMutable; // this call checks fperms && isMutable
- - setShouldEdit:(BOOL) newState;
- - setLinked:(BOOL) newState; // this is only for use in conjunction with
- // a readComponent: (see eTImage/chooseImage:)
- - setDoc:newDoc;
- // "hidden" API extension.
- - writeHTML:(NXStream *)stream forView:view andClose:(BOOL)closeIt;
- - writeLaTeX:(NXStream *)stream forView:view andClose:(BOOL)closeIt;
- @end
-
- #import "eTImageComponent.h"
- #import "eTAudioComponent.h"
-