Object <- Viewable <- Stamp <- Proxy <- ContentProxy |
|
|
CanFormatToStandardPaper Copying CreateContainer Finalize MailOnTelecard Render RenderPageCount |
|
Stationery |
| Field | Type | |
|---|---|---|
| Viewable: | superview: | Viewable |
| relativeOrigin: | Dot | |
| contentSize: | Dot | |
| viewFlags: | Flags | |
| labelStyle: | TextStyle | |
| color: | Unsigned | |
| altColor: | Unsigned | |
| shadow: | Shadow | |
| sound: | Playable | |
| Stamp: | image: | Image |
| ContentProxy: | target: | Object |
| ownsTarget: | Boolean | |
| drawBorder: | Boolean |
instance ContentProxy tag; relativeOrigin: <0.0,0.0>; contentSize: <0.0,0.0>; viewFlags: 0x00000000; labelStyle: nilObject; color: 0; altColor: 0; shadow: nilObject; sound: nilObject; image: nilObject; target: nilObject; ownsTarget: false; drawBorder: false; end instance;
Define Class ContentProxy; // instances of this class represent a selection of scene content // (one card, range of dates, etc) inherits from Proxy; field target: Object, weak, getter, setter; // object, usually viewable, for which this object is a stand-in field ownsTarget: Boolean; // also destroy Target when destroying ContentProxy field drawBorder: Boolean; // draw border around viewable when faxing or printing // sending attribute Stationery: Stationery; // getter returns iDefaultStationery; // setter does nothing; // override sometimes to use different stationery when mailing a content proxy; operation CreateContainer(nearThis: Object): Viewable; // called by system to get a viewable to send or beam; // if target is a card, returns copy of target in system persistent cluster; // if target is a stack subclass, returns folder in system persistent cluster whose // list is a StackOfCards (not subclass) that contains copies of all cards in target; // if target is a non-stack object list, returns folder in system persisten cluster whose // list is a copy of target; // if target is a storage box, returns result of CreateContainer on storage box // imaging overrides Render; // called by system when user chooses to fax or print this content; // first prints cover page if any (no border, portrait mode); // sets 2-pixel border on print job if drawBorder field is set, otherwise sets border to 0; // if target is an object list, calls RenderIntoPage on each entry; // else calls RenderIntoPage on target; // override sometimes to set up print job differently, or to distinguish faxing and printing overrides RenderPageCount; // to deal with getting the right page count for stacks overrides CanFormatToStandardPaper; // to handle stacks overrides MailOnTelecard; // if system is not yet personalized, reminds user to personalize first; // else creates a mini card at desk from self's stationery that points to object created // by CreateContainer(self), and zooms it up for the user to finish or send; // override again to create message to send that represents self's content some // other way if content cannot be represented by a Card subclass overrides Copying; // if ownsTarget field is not set, just calls inherited method; // if target is an ObjectList, sets new target to a new object list with same contents; // if target is anything else, sets new target to a copy of target near self overrides Finalize; // if ownsTarget field is not set, just calls inherited method; // if target is an ObjectList, also calls Clear then Destroy on target; // if target is anything else, also calls Destroy on target end class;