Object <- Viewable <- Box <- Door |
|
|
AdjustSize ApplyText CalcLabelBox CalcOpaqueBox CanAcceptCoupon DefaultReceiverForSelf Draw DrawOpenHighlight |
|
Highlighted Image RelativeOrigin |
| Field | Type | |
|---|---|---|
| Viewable: | superview: | Viewable |
| relativeOrigin: | Dot | |
| contentSize: | Dot | |
| viewFlags: | Flags | |
| labelStyle: | TextStyle | |
| color: | Unsigned | |
| altColor: | Unsigned | |
| shadow: | Shadow | |
| sound: | Playable | |
| HasBorder: | border: | Border |
| HasDestination: | destination: | Viewable |
| HasLock: | lock: | Lock |
| HasDoorway: | image: | Image |
| authoringModeOnly: | Boolean | |
| Door: | knobCenter: | Dot |
| knobImage: | Image |
instance Door tag; relativeOrigin: <0.0,0.0>; contentSize: <0.0,0.0>; viewFlags: 0x00000000; labelStyle: nilObject; color: 0; altColor: 0; shadow: nilObject; sound: nilObject; border: nilObject; destination: nilObject; lock: nilObject; image: nilObject; authoringModeOnly: false; knobCenter: <0.0,0.0>; knobImage: nilObject; end instance;
Define Class Door; inherits from Box, HasDoorway; field knobCenter: Dot; field knobImage: Image; overrides AdjustSize; // adjusts the size based on the width of the name. also adjusts the size of the enclosing corridor. overrides ApplyText; // accepts coupons with the proper trigger words on them overrides CalcOpaqueBox; // accounts for the fact that the bottom part of the border is cut off. overrides CanAcceptCoupon; // rejects shadow coupons, accepts image coupons, and accepts text coupons only in authoring mode. // for all others, returns inherited. overrides CalcLabelBox; // shifts label downward to make space for image. overrides Draw; // draws the door. overrides SetHighlighted; // recalculates the label location. overrides SetImage; // recalculates label location. overrides SetRelativeOrigin; // since CalcOpaqueBox is overridden, changing the origin may change the bounds overrides DefaultReceiverForSelf; // returns iHallway. intrinsic DrawOpenHighlight(bounds: Box; openDistance: Micron; openOutward: Boolean); // Draws the dark area to the right of the doorway that gives it that "open door" look. end class;