... <- Canvas <- PixelMap <- IndirectPixelMap <- MacintoshWindow <- MacintoshScreenWindow |
|
|
AdjustWindowRect Init |
|
CanvasSize Depth HeightResizable WindowRect |
| Field | Type | |
|---|---|---|
| PixelMap: | portPixels: | Pixels |
| portBounds: | PixelBox | |
| portPower: | UnsignedShort | |
| portRow: | UnsignedShort | |
| portDepth: | Unsigned | |
| portRes: | PixelDot | |
| portResHRound: | SignedShort | |
| portResVRound: | SignedShort | |
| portOrigin: | Dot | |
| portDither: | PixelDot | |
| MacintoshWindow: | echoWindow: | Pointer |
| MacintoshScreenWindow: | buffer: | MacintoshWindow |
| dragBuffer: | MacintoshWindow | |
| buffer: | PixelMap | |
| dragBuffer: | PixelMap | |
| heightResizable: | Boolean |
instance MacintoshScreenWindow tag; portPixels: nilObject; portBounds: <0,0,0,0>; portPower: 0; portRow: 0; portDepth: 0; portRes: <0,0>; portResHRound: 0; portResVRound: 0; portOrigin: <0.0,0.0>; portDither: <0,0>; echoWindow: nil; buffer: nilObject; dragBuffer: nilObject; buffer: nilObject; dragBuffer: nilObject; heightResizable: false; end instance;
Define Class MacintoshScreenWindow; inherits from MacintoshWindow; #ifdef DEBUG field buffer: MacintoshWindow; field dragBuffer: MacintoshWindow; #else field buffer: PixelMap; field dragBuffer: PixelMap; #endif #ifdef RESIZABLE_SCREEN field heightResizable: Boolean, getter; #endif overrides Init; // allocates buffer and drag buffer as well as screen attribute Depth: Unsigned; // changing depth changes buffers to match #ifdef RESIZABLE_SCREEN attribute HeightResizable: Boolean; // boolean that determines whether you see a grow box in the window overrides SetWindowRect; // change screen size, size of buffer, and size of drag buffer, too overrides SetCanvasSize; // override to put off changing the size of the window until // the next AdjustWindowRect call operation AdjustWindowRect(); // call to make size of window match canvas size // only does something if SetCanvasSize has been called #endif end class;