Object <- Viewable <- Box <- AddressPanel |
|
|
Entity Target Target |
| Field | Type | |
|---|---|---|
| Viewable: | superview: | Viewable |
| relativeOrigin: | Dot | |
| contentSize: | Dot | |
| viewFlags: | Flags | |
| labelStyle: | TextStyle | |
| color: | Unsigned | |
| altColor: | Unsigned | |
| shadow: | Shadow | |
| sound: | Playable | |
| HasBorder: | border: | Border |
| AddressPanel: | target: | FullContact |
| index: | Unsigned | |
| addresses: | ObjectList | |
| firstIndexNextPage: | Unsigned |
instance AddressPanel 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; target: nilObject; index: 0; addresses: nilObject; firstIndexNextPage: 0; end instance;
Define Class AddressPanel; inherits from Box; inherits interface from EditsTarget; inherits from HasScrolling; inherits from HasBuiltInScrollArrows; inherits from HasEntity; field target: FullContact, weak; // The contact that we're viewing. field index: Unsigned; // Current scroll position of panel. field addresses: ObjectList; // List of AddressInfo objects. // Used so we don't keep re-creating the same ones. field firstIndexNextPage: Unsigned; // Cached value containing last visible item in panel. // Used to make ArrowState call faster. overrides Target, SetTarget; operation BlinkLabelAt(index: Unsigned); // Scrolls so that label number <index> is visible, // then blinks it on and off a couple of times. // Called from searching mechanism. // Override rarely. overrides PageDown; overrides PageUp; overrides ScrollToTop; overrides ScrollToBottom; overrides ArrowState; overrides Draw; overrides DirtyData; attribute Entity: FullContact; overrides Stabilize, Swallow; overrides Tap, Press, MovePress; operation AddressWidth(): Signed, intrinsic; operation DrawAddresses(), intrinsic; operation MapDotToLabel(probe: Dot): AddressInfo, intrinsic; operation PanelSize(): Unsigned, intrinsic; intrinsic SpaceBetweenLabels(): Signed; intrinsic FirstAddressBorderTop(contentBox: Box): Micron; intrinsic FirstAddressSeparatorBottom(contentBox: Box): Micron; intrinsic IsChangeMode(): Boolean; // Routines vectored for patching. end class;