sys7.1-doc-wip/Interfaces/PInterfaces/Dialogs.p
2019-07-27 22:37:48 +08:00

271 lines
8.5 KiB
OpenEdge ABL

{************************************************************
Dialogs.p
Pascal Interface to the Dialog Manager
Copyright Apple Computer, Inc. 1985-1992
All rights reserved
Change History (most recent first):
<17> 12/8/92 JSM SoundProcPtr takes a short, just update the comment in this file
since everything is a ProcPtr here.
<16> 11/7/92 JDR Added the now publicly defined routines, StdFilterProc,
GetStdFilterProc, SetDialogDefaultItem, SetDialogCancelItem,
SetDialogTracksCursor.
<15> 6/26/92 DCL Miner Formatting Changes. Digging deep for things to do. Getting
the file ready for ETO 8.
<14> 4/6/92 DCL For New Inside Mac: Adding fancy new improved names for old
crusty routines. And getting rid of CouldDialog, FreeDialog,
CouldAlert, FreeAlert. #1025005
<13> 8/28/91 CH Updated interface headers for consistency.
<12> 7/24/91 JL Changed param name from theDITL to theHandle in AppendDITL to
match database. Updated copyright notice. Adjusted file to match
database.
<11> 6/25/91 JNG Add dialog manipulation routines from CTBUtilities.p
<10> 1/27/91 LN Checked in Database generate file from DSG.
<9> 12/3/90 RLC <ksm> Remove the private interfaces.
<8> 11/4/90 dba Added UpdateDialog (synonym for UpdtDialog).
<7> 10/10/90 JL Added Inline for SetDAFont
<6> 8/8/90 ngk Add types for procedure pointers
<5> 7/2/90 KSM Remove MarkWindowAsModal.
<4> 6/28/90 KSM Add more new calls.
<3> 6/8/90 KSM Add new DialogMgr dispatched routines.
To Do:
************************************************************}
{$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}
{$IFC UNDEFINED UsingEvents}
{$I $$Shell(PInterfaces)Events.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(soundNumber: INTEGER); }
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 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 UpdateDialog(theDialog: DialogPtr;updateRgn: RgnHandle);
INLINE $A978;
PROCEDURE UpdtDialog(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 GetDialogItem(theDialog: DialogPtr;itemNo: INTEGER;VAR itemType: INTEGER;
VAR item: Handle;VAR box: Rect);
INLINE $A98D;
PROCEDURE GetDItem(theDialog: DialogPtr;itemNo: INTEGER;VAR itemType: INTEGER;
VAR item: Handle;VAR box: Rect);
INLINE $A98D;
PROCEDURE SetDialogItem(theDialog: DialogPtr;itemNo: INTEGER;itemType: INTEGER;
item: Handle;box: Rect);
INLINE $A98E;
PROCEDURE SetDItem(theDialog: DialogPtr;itemNo: INTEGER;itemType: INTEGER;
item: Handle;box: Rect);
INLINE $A98E;
PROCEDURE HideDialogItem(theDialog: DialogPtr;itemNo: INTEGER);
INLINE $A827;
PROCEDURE HideDItem(theDialog: DialogPtr;itemNo: INTEGER);
INLINE $A827;
PROCEDURE ShowDialogItem(theDialog: DialogPtr;itemNo: INTEGER);
INLINE $A828;
PROCEDURE ShowDItem(theDialog: DialogPtr;itemNo: INTEGER);
INLINE $A828;
PROCEDURE SelectDialogItemText(theDialog: DialogPtr;itemNo: INTEGER;strtSel: INTEGER;
endSel: INTEGER);
INLINE $A97E;
PROCEDURE SelIText(theDialog: DialogPtr;itemNo: INTEGER;strtSel: INTEGER;
endSel: INTEGER);
INLINE $A97E;
PROCEDURE GetDialogItemText(item: Handle;VAR text: Str255);
INLINE $A990;
PROCEDURE GetIText(item: Handle;VAR text: Str255);
INLINE $A990;
PROCEDURE SetDialogItemText(item: Handle;text: Str255);
INLINE $A98F;
PROCEDURE SetIText(item: Handle;text: Str255);
INLINE $A98F;
FUNCTION FindDialogItem(theDialog: DialogPtr;thePt: Point): INTEGER;
INLINE $A984;
FUNCTION FindDItem(theDialog: DialogPtr;thePt: Point): INTEGER;
INLINE $A984;
FUNCTION NewColorDialog(dStorage: Ptr;boundsRect: Rect;title: Str255;visible: BOOLEAN;
procID: INTEGER;behind: WindowPtr;goAwayFlag: BOOLEAN;refCon: LONGINT;
items: Handle): DialogPtr;
INLINE $AA4B;
FUNCTION NewCDialog(dStorage: Ptr;boundsRect: Rect;title: Str255;visible: BOOLEAN;
procID: INTEGER;behind: WindowPtr;goAwayFlag: BOOLEAN;refCon: LONGINT;
items: Handle): DialogPtr;
INLINE $AA4B;
FUNCTION GetAlertStage: INTEGER;
INLINE $3EB8,$0A9A;
FUNCTION GetAlrtStage: INTEGER;
INLINE $3EB8,$0A9A;
PROCEDURE ResetAlertStage;
INLINE $4278,$0A9A;
PROCEDURE ResetAlrtStage;
INLINE $4278,$0A9A;
PROCEDURE DialogCut(theDialog: DialogPtr);
PROCEDURE DlgCut(theDialog: DialogPtr);
PROCEDURE DialogPaste(theDialog: DialogPtr);
PROCEDURE DlgPaste(theDialog: DialogPtr);
PROCEDURE DialogCopy(theDialog: DialogPtr);
PROCEDURE DlgCopy(theDialog: DialogPtr);
PROCEDURE DialogDelete(theDialog: DialogPtr);
PROCEDURE DlgDelete(theDialog: DialogPtr);
PROCEDURE SetDialogFont(fontNum: INTEGER);
INLINE $31DF,$0AFA;
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);
FUNCTION StdFilterProc(theDialog: DialogPtr;event: EventRecord;VAR itemHit: INTEGER): BOOLEAN;
FUNCTION GetStdFilterProc(VAR theProc: ProcPtr ): OSErr;
INLINE $303C,$0203,$AA68;
FUNCTION SetDialogDefaultItem(theDialog: DialogPtr; newItem: INTEGER): OSErr;
INLINE $303C,$0304,$AA68;
FUNCTION SetDialogCancelItem(theDialog: DialogPtr; newItem: INTEGER): OSErr;
INLINE $303C,$0305,$AA68;
FUNCTION SetDialogTracksCursor(theDialog: DialogPtr; tracks: Boolean):OSErr;
INLINE $303C,$0306,$AA68;
{$ENDC} { UsingDialogs }
{$IFC NOT UsingIncludes}
END.
{$ENDC}