supermario/base/SuperMarioProj.1994-02-09/Internal/Pascal/Layers.p
2019-06-29 23:17:50 +08:00

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}