
{
Created: Thursday, September 12, 1991 at 2:47 PM
 Dialogs.p
 Pascal Interface to the Macintosh Libraries

  Copyright Apple Computer, Inc.  1985-1991
  All rights reserved
}


{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}

{$IFC NOT UsingIncludes}
 UNIT Dialogs;
 INTERFACE
{$ENDC}

{$IFC UNDEFINED UsingDialogs}
{$SETC UsingDialogs := 1}

{$I+}
{$SETC DialogsIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED UsingWindows}
{$I $$Shell(PInterfaces)Windows.p}
{$ENDC}
{$IFC UNDEFINED UsingTextEdit}
{$I $$Shell(PInterfaces)TextEdit.p}
{$ENDC}
{$SETC UsingIncludes := DialogsIncludes}

CONST
ctrlItem = 4;
btnCtrl = 0;
chkCtrl = 1;
radCtrl = 2;
resCtrl = 3;
statText = 8;
editText = 16;
iconItem = 32;
picItem = 64;
userItem = 0;
itemDisable = 128;
ok = 1;
cancel = 2;
stopIcon = 0;
noteIcon = 1;
cautionIcon = 2;

TYPE
{ Dialog Item List Manipulation Constants }
DITLMethod = INTEGER;

CONST
overlayDITL = 0;
appendDITLRight = 1;
appendDITLBottom = 2;

TYPE
StageList = PACKED RECORD
 boldItm4: 0..1;				{default button item number - 1}
 boxDrwn4: BOOLEAN;				{true if alert box to be drawn}
 sound4: 0..3;					{sound number}
 boldItm3: 0..1;
 boxDrwn3: BOOLEAN;
 sound3: 0..3;
 boldItm2: 0..1;
 boxDrwn2: BOOLEAN;
 sound2: 0..3;
 boldItm1: 0..1;
 boxDrwn1: BOOLEAN;
 sound1: 0..3;
 END;


DialogPtr = WindowPtr;
ResumeProcPtr = ProcPtr;		{ PROCEDURE Resume; }
SoundProcPtr = ProcPtr;			{ PROCEDURE DoSound; }
ModalFilterProcPtr = ProcPtr;	{ FUNCTION Filter(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER): BOOLEAN; }

DialogPeek = ^DialogRecord;
DialogRecord = RECORD
 window: WindowRecord;
 items: Handle;
 textH: TEHandle;
 editField: INTEGER;
 editOpen: INTEGER;
 aDefItem: INTEGER;
 END;

DialogTPtr = ^DialogTemplate;
DialogTHndl = ^DialogTPtr;
DialogTemplate = RECORD
 boundsRect: Rect;
 procID: INTEGER;
 visible: BOOLEAN;
 filler1: BOOLEAN;
 goAwayFlag: BOOLEAN;
 filler2: BOOLEAN;
 refCon: LONGINT;
 itemsID: INTEGER;
 title: Str255;
 END;

AlertTPtr = ^AlertTemplate;
AlertTHndl = ^AlertTPtr;
AlertTemplate = RECORD
 boundsRect: Rect;
 itemsID: INTEGER;
 stages: StageList;
 END;


PROCEDURE InitDialogs(resumeProc: ResumeProcPtr);
 INLINE $A97B;
PROCEDURE ErrorSound(soundProc: SoundProcPtr);
 INLINE $A98C;
FUNCTION NewDialog(wStorage: Ptr;boundsRect: Rect;title: Str255;visible: BOOLEAN;
 procID: INTEGER;behind: WindowPtr;goAwayFlag: BOOLEAN;refCon: LONGINT;
 itmLstHndl: Handle): DialogPtr;
 INLINE $A97D;
FUNCTION GetNewDialog(dialogID: INTEGER;dStorage: Ptr;behind: WindowPtr): DialogPtr;
 INLINE $A97C;
PROCEDURE CloseDialog(theDialog: DialogPtr);
 INLINE $A982;
PROCEDURE DisposDialog(theDialog: DialogPtr);
 INLINE $A983;
PROCEDURE DisposeDialog(theDialog: DialogPtr);
 INLINE $A983;
PROCEDURE CouldDialog(dialogID: INTEGER);
 INLINE $A979;
PROCEDURE FreeDialog(dialogID: INTEGER);
 INLINE $A97A;
PROCEDURE ParamText(param0: Str255;param1: Str255;param2: Str255;param3: Str255);
 INLINE $A98B;
PROCEDURE ModalDialog(filterProc: ModalFilterProcPtr;VAR itemHit: INTEGER);
 INLINE $A991;
FUNCTION IsDialogEvent(theEvent: EventRecord): BOOLEAN;
 INLINE $A97F;
FUNCTION DialogSelect(theEvent: EventRecord;VAR theDialog: DialogPtr;VAR itemHit: INTEGER): BOOLEAN;
 INLINE $A980;
PROCEDURE DrawDialog(theDialog: DialogPtr);
 INLINE $A981;
PROCEDURE UpdtDialog(theDialog: DialogPtr;updateRgn: RgnHandle);
 INLINE $A978;
PROCEDURE UpdateDialog(theDialog: DialogPtr;updateRgn: RgnHandle);
 INLINE $A978;
FUNCTION Alert(alertID: INTEGER;filterProc: ModalFilterProcPtr): INTEGER;
 INLINE $A985;
FUNCTION StopAlert(alertID: INTEGER;filterProc: ModalFilterProcPtr): INTEGER;
 INLINE $A986;
FUNCTION NoteAlert(alertID: INTEGER;filterProc: ModalFilterProcPtr): INTEGER;
 INLINE $A987;
FUNCTION CautionAlert(alertID: INTEGER;filterProc: ModalFilterProcPtr): INTEGER;
 INLINE $A988;
PROCEDURE CouldAlert(alertID: INTEGER);
 INLINE $A989;
PROCEDURE FreeAlert(alertID: INTEGER);
 INLINE $A98A;
PROCEDURE GetDItem(theDialog: DialogPtr;itemNo: INTEGER;VAR itemType: INTEGER;
 VAR item: Handle;VAR box: Rect);
 INLINE $A98D;
PROCEDURE SetDItem(theDialog: DialogPtr;itemNo: INTEGER;itemType: INTEGER;
 item: Handle;box: Rect);
 INLINE $A98E;
PROCEDURE HideDItem(theDialog: DialogPtr;itemNo: INTEGER);
 INLINE $A827;
PROCEDURE ShowDItem(theDialog: DialogPtr;itemNo: INTEGER);
 INLINE $A828;
PROCEDURE SelIText(theDialog: DialogPtr;itemNo: INTEGER;strtSel: INTEGER;
 endSel: INTEGER);
 INLINE $A97E;
PROCEDURE GetIText(item: Handle;VAR text: Str255);
 INLINE $A990;
PROCEDURE SetIText(item: Handle;text: Str255);
 INLINE $A98F;
FUNCTION FindDItem(theDialog: DialogPtr;thePt: Point): INTEGER;
 INLINE $A984;
FUNCTION NewCDialog(dStorage: Ptr;boundsRect: Rect;title: Str255;visible: BOOLEAN;
 procID: INTEGER;behind: WindowPtr;goAwayFlag: BOOLEAN;refCon: LONGINT;
 items: Handle): DialogPtr;
 INLINE $AA4B;
FUNCTION GetAlrtStage: INTEGER;
 INLINE $3EB8,$0A9A;
PROCEDURE ResetAlrtStage;
 INLINE $4278,$0A9A;
PROCEDURE DlgCut(theDialog: DialogPtr);
PROCEDURE DlgPaste(theDialog: DialogPtr);
PROCEDURE DlgCopy(theDialog: DialogPtr);
PROCEDURE DlgDelete(theDialog: DialogPtr);
PROCEDURE SetDAFont(fontNum: INTEGER);
 INLINE $31DF,$0AFA;

PROCEDURE AppendDITL(theDialog: DialogPtr;theHandle: Handle;method: DITLMethod);
FUNCTION CountDITL(theDialog: DialogPtr): INTEGER;
PROCEDURE ShortenDITL(theDialog: DialogPtr;numberItems: INTEGER);


{$ENDC} { UsingDialogs }

{$IFC NOT UsingIncludes}
 END.
{$ENDC}

