mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-25 09:30:50 +00:00
182 lines
5.1 KiB
OpenEdge ABL
182 lines
5.1 KiB
OpenEdge ABL
{
|
|
File: Layers.p
|
|
|
|
Contains: The Layers unit is a unit shell.
|
|
|
|
Written by: Ed Tecot
|
|
Pascal unit translated from Layers.h by Kevin S. MacDonell
|
|
The whole thing redone by Randy Carr
|
|
|
|
Copyright: © 1989-1992 by Apple Computer, Inc., all rights reserved.
|
|
|
|
Change History (most recent first):
|
|
|
|
<11> 7/28/92 DCL Moved applicationFloatKind & systemFloatKind constants out of
|
|
the public eye and into the private Layers header file. At the
|
|
request of TechPubs, and with moral support from Dean, Greg and
|
|
Kenny.
|
|
<10> 8/28/91 JSM Cleanup header.
|
|
<9> 1/3/91 VL (RLC) Add a new public routine RedrawAll.
|
|
<8> 9/7/90 DFH Changed SetLayerLock to GetDeskPort
|
|
<7> 7/23/90 EMT Changed IsLayerLocked to WindowType.
|
|
<5> 3/16/90 DC Added interface for CheckWindow
|
|
<4> 3/15/90 ngk Update Pascal interface to match C headers.
|
|
<3> 3/7/90 DC Changed names of some window positioning constants
|
|
<1> 2/21/90 HJR Moved from Interfaces:PInterfaces to Internal:Pascal
|
|
<2> 2/20/90 DC Added PositionWIndow, AutoPositionWindow, GetWindowState,
|
|
SetWindowState
|
|
<1.3> 10/16/89 ngk Oops! AutoIncluded too much
|
|
<1.2> 10/16/89 ngk Changed it from unit file to an MPW interface file
|
|
<1.1> 6/14/89 KSM Removed compiler flag for tear off menus
|
|
<1.0> 6/1/89 KSM Pascal interface to the new Layer Manager.
|
|
|
|
}
|
|
|
|
{$IFC UNDEFINED UsingIncludes}
|
|
{$SETC UsingIncludes := 0}
|
|
{$ENDC}
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
UNIT Layers;
|
|
INTERFACE
|
|
{$ENDC}
|
|
|
|
{$IFC UNDEFINED UsingLayers}
|
|
{$SETC UsingLayers := 1}
|
|
|
|
{$I+}
|
|
{$SETC LayersIncludes := UsingIncludes}
|
|
{$SETC UsingIncludes := 1}
|
|
{$IFC UNDEFINED UsingMemory}
|
|
{$I Memory.p}
|
|
{$ENDC}
|
|
{$IFC UNDEFINED UsingWindows}
|
|
{$I Windows.p}
|
|
{$ENDC}
|
|
{$SETC UsingIncludes := LayersIncludes}
|
|
|
|
CONST
|
|
|
|
applicationFloatKind = 6; { floating window created by applications }
|
|
systemFloatKind = 7; { floating window belongs to text services }
|
|
|
|
TYPE
|
|
LocationControlValues = (lcMainScreen, lcParentWindowScreen, lcParentWindow);
|
|
|
|
HorizontalControlValues = (hcNoHorizontalControl, hcCenter);
|
|
|
|
VerticalControlValues = (vcNoVerticalControl, vcDocumentCenter, vcAlertCenter, vcStagger);
|
|
|
|
CheckControlValues = (ccFrame, ccDragBar, ccContent);
|
|
|
|
LayerPtr = GrafPtr;
|
|
LayerPeek = ^LayerRecord;
|
|
LayerRecord = RECORD
|
|
port: GrafPort;
|
|
windowKind: INTEGER;
|
|
visible: BOOLEAN;
|
|
reserved1: BOOLEAN;
|
|
neverActive: BOOLEAN;
|
|
reserved2: BOOLEAN;
|
|
strucRgn: RgnHandle;
|
|
contRgn: RgnHandle;
|
|
updateRgn: RgnHandle;
|
|
reserved3: LONGINT;
|
|
parent: LayerPeek;
|
|
auxWinHead: AuxWinHandle;
|
|
reserved4: INTEGER;
|
|
auxCtlHead: AuxCtlHandle;
|
|
nextWindow: WindowPeek;
|
|
subWindows: WindowPeek;
|
|
refCon: LONGINT;
|
|
END;
|
|
|
|
WindowActionProcPtr = ProcPtr; { Action(window: WindowPeek; parent: LayerPeek; callBackPtr: Ptr); }
|
|
|
|
|
|
|
|
FUNCTION NewLayer(VAR lStorage: LayerPtr; visible, neverActive: BOOLEAN; behind: WindowPtr; refCon: LONGINT): OsErr;
|
|
INLINE $7001,$A829;
|
|
|
|
FUNCTION IsLayer( window: WindowPtr ): BOOLEAN;
|
|
INLINE $7002,$A829;
|
|
|
|
FUNCTION GetCurLayer: LayerPtr;
|
|
INLINE $7003,$A829;
|
|
|
|
PROCEDURE SetCurLayer( layer: LayerPtr );
|
|
INLINE $7004,$A829;
|
|
|
|
FUNCTION SwapCurLayer( layer: LayerPtr ): LayerPtr;
|
|
INLINE $7005,$A829;
|
|
|
|
FUNCTION GetSubWindows( layer: LayerPtr ): WindowPeek;
|
|
INLINE $7006,$A829;
|
|
|
|
FUNCTION FindLayer(pt: Point; VAR window: WindowPtr): OSErr;
|
|
INLINE $7007,$A829;
|
|
|
|
PROCEDURE PositionWindow(whichWindow: WindowPtr; referenceRect: Rect;
|
|
findScreen: BOOLEAN;
|
|
horizontalControl: HorizontalControlValues;
|
|
verticalControl: VerticalControlValues);
|
|
INLINE $7008,$A829;
|
|
|
|
PROCEDURE AutoPositionWindow(whichWindow: WindowPtr; where: LocationControlValues;
|
|
horizontalControl: HorizontalControlValues;
|
|
verticalControl: VerticalControlValues);
|
|
INLINE $7009,$A829;
|
|
|
|
FUNCTION GetWindowState(whichWindow: WindowPtr; windState: Handle;
|
|
VAR infoSize: Size): OSErr;
|
|
INLINE $700A,$A829;
|
|
|
|
FUNCTION SetWindowState(whichWindow: WindowPtr; windState: Handle): OSErr;
|
|
INLINE $700B,$A829;
|
|
|
|
FUNCTION CheckWindow(whichWindow: WindowPtr;
|
|
checkControl: CheckControlValues;
|
|
entirelyOnScreen: BOOLEAN): BOOLEAN;
|
|
INLINE $700C,$A829;
|
|
|
|
PROCEDURE RedrawAll;
|
|
INLINE $700D,$A829;
|
|
|
|
{ Beginning of private Layer interfaces }
|
|
|
|
FUNCTION InitLayers: OSErr;
|
|
INLINE $7000,$A829;
|
|
|
|
FUNCTION GetRootLayer: LayerPtr;
|
|
INLINE $70FF,$A829;
|
|
|
|
FUNCTION ActiveWindow: WindowPtr;
|
|
INLINE $70FE,$A829;
|
|
|
|
PROCEDURE FrontWindowIn(layer: LayerPtr);
|
|
INLINE $70FD,$A829;
|
|
|
|
FUNCTION CheckUpdateIn(VAR event: EventRecord; layer: LayerPtr): LayerPtr;
|
|
INLINE $70FC,$A829;
|
|
|
|
FUNCTION GetDeskPort(VAR port: GrafPtr): OSErr;
|
|
INLINE $70FB,$A829;
|
|
|
|
FUNCTION WindowType(window: WindowPtr): INTEGER;
|
|
INLINE $70FA,$A829;
|
|
|
|
FUNCTION GetParent(window: WindowPtr): LayerPeek;
|
|
INLINE $70F9,$A829;
|
|
|
|
FUNCTION EachWindow(start,stop: WindowPeek; parent: LayerPeek;
|
|
action: WindowActionProcPtr; callBackPtr: Ptr): LayerPeek;
|
|
INLINE $70F8,$A829;
|
|
|
|
{$ENDC} { UsingLayers }
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
END.
|
|
{$ENDC}
|
|
|
|
|