home *** CD-ROM | disk | FTP | other *** search
- (*************************************************************************
-
- $RCSfile: EADialogs.mod $
- Description: Implements a GUI for OCPrefs using EAGUI.library.
-
- Created by: fjc (Frank Copeland)
- $Revision: 1.1 $
- $Author: fjc $
- $Date: 1995/06/04 23:20:25 $
-
- Copyright © 1995, Frank Copeland
- This module forms part of the OC program
- See OCPrefs.doc for conditions of use and distribution
-
- Log entries are at the end of the file.
-
- *************************************************************************)
-
- <* STANDARD- *> <* MAIN- *>
-
- MODULE EADialogs;
-
- IMPORT
- SYS := SYSTEM, s := Sets, e := Exec, u := Utility, i := Intuition,
- gt := GadTools, ea := EAGUI, spt := EASupport, Events,
- ip := IntuiPointer;
-
- (* ---------------------------------- *)
-
- TYPE
-
- EADialog * = POINTER TO EADialogRec;
- EADialogRec * = RECORD (Events.GadToolsPortRec)
- winObj - : ea.OPTR;
- win - : i.WindowPtr;
- gadList - : i.GadgetPtr;
- visualInfo - : gt.VisualInfo;
- drawInfo - : i.DrawInfoPtr;
- title * : e.LSTRPTR;
- flags * : s.SET32;
- IDCMP * : s.SET32;
- busyReq : i.RequesterPtr;
- END; (* EADialogRec *)
-
-
- (* ---------------------------------- *)
- PROCEDURE (dlg : EADialog) SetupWindow* ( win : i.WindowPtr );
-
- BEGIN (* SetupWindow *)
- dlg.AttachPort (win.userPort);
- spt.DoRender ( dlg.win, dlg.winObj, dlg.gadList,
- dlg.drawInfo, dlg.visualInfo )
- END SetupWindow;
-
- (* ---------------------------------- *)
- PROCEDURE (dlg : EADialog) CleanupWindow* ( win : i.WindowPtr );
-
- VAR ignore : LONGINT;
-
- BEGIN (* CleanupWindow *)
- ignore := i.RemoveGList ( dlg.win, dlg.gadList, -1 );
- ea.FreeGadgetList ( dlg.winObj, dlg.gadList );
- dlg.gadList := NIL;
- dlg.DetachPort
- END CleanupWindow;
-
- (* ---------------------------------- *)
- PROCEDURE (dlg : EADialog) HandleRefreshWindow*
- ( msg : i.IntuiMessagePtr )
- : INTEGER;
-
- BEGIN (* HandleRefreshWindow *)
- gt.ReplyIMsg (msg);
- gt.BeginRefresh (dlg.win);
- gt.EndRefresh (dlg.win, i.LTRUE);
- RETURN Events.Continue
- END HandleRefreshWindow;
-
- (* ---------------------------------- *)
- PROCEDURE (dlg : EADialog) HandleCloseWindow*
- ( msg : i.IntuiMessagePtr )
- : INTEGER;
-
- BEGIN (* HandleCloseWindow *)
- gt.ReplyIMsg (msg);
- RETURN Events.Stop
- END HandleCloseWindow;
-
- (* ---------------------------------- *)
- PROCEDURE (dlg : EADialog) InitObjects* () : BOOLEAN;
-
- <*$ < ReturnChk- *>
- BEGIN
- HALT (99);
- END InitObjects;
- <*$ > *>
-
- (* ---------------------------------- *)
- PROCEDURE (dlg : EADialog) OpenWindow* () : BOOLEAN;
-
- VAR
- w, h, bl, br, bt, bb, ignore : LONGINT;
- wPtr, hPtr, blPtr, brPtr, btPtr, bbPtr : SYS.ADDRESS;
-
- BEGIN (* OpenWindow *)
- (* obtain the minimum dimensions of every object in the tree *)
- ea.GetMinSizes (dlg.winObj);
-
- (* get some attributes *)
- wPtr := SYS.ADR (w); hPtr := SYS.ADR (h);
- blPtr := SYS.ADR (bl); brPtr := SYS.ADR (br);
- btPtr := SYS.ADR (bt); bbPtr := SYS.ADR (bb);
-
- ignore := ea.GetAttrs ( dlg.winObj,
- ea.MinWidth, wPtr,
- ea.MinHeight, hPtr,
- ea.BorderLeft, blPtr,
- ea.BorderRight, brPtr,
- ea.BorderTop, btPtr,
- ea.BorderBottom, bbPtr,
- u.done );
-
- (* open the window *)
- dlg.win := i.OpenWindowTagsA ( NIL,
- i.waTitle, dlg.title,
- i.waFlags, dlg.flags,
- i.waIDCMP, dlg.IDCMP,
- i.waInnerHeight, h + bt + bb,
- i.waInnerWidth, (w + bl + br),
- u.done );
-
- RETURN (dlg.win # NIL)
- END OpenWindow;
-
- (* ---------------------------------- *)
- PROCEDURE (dlg : EADialog) Block*;
-
- BEGIN (* Block *)
- IF dlg.busyReq = NIL THEN
- NEW (dlg.busyReq);
- IF dlg.busyReq # NIL THEN
- ip.Busy (dlg.win);
- i.InitRequester (dlg.busyReq^);
- IF ~i.Request (dlg.busyReq, dlg.win) THEN
- SYS.DISPOSE (dlg.busyReq);
- dlg.busyReq := NIL
- END
- END
- END
- END Block;
-
- (* ---------------------------------- *)
- PROCEDURE (dlg : EADialog) UnBlock*;
-
- BEGIN (* UnBlock *)
- IF dlg.busyReq # NIL THEN
- i.EndRequest (dlg.busyReq, dlg.win);
- ip.Normal (dlg.win);
- SYS.DISPOSE (dlg.busyReq);
- dlg.busyReq := NIL
- END
- END UnBlock;
-
- (* ---------------------------------- *)
- PROCEDURE (dlg : EADialog) Open*
- ( visualInfo : gt.VisualInfo;
- drawInfo : i.DrawInfoPtr )
- : BOOLEAN;
-
- BEGIN (* Open *)
- dlg.visualInfo := visualInfo;
- dlg.drawInfo := drawInfo;
- IF dlg.InitObjects() THEN
- IF dlg.OpenWindow() THEN
- dlg.SetupWindow (dlg.win);
- RETURN TRUE
- END;
- END;
- RETURN FALSE
- END Open;
-
- (* ---------------------------------- *)
- PROCEDURE (dlg : EADialog) Close*;
-
- BEGIN (* Close *)
- dlg.UnBlock;
- dlg.CleanupWindow (dlg.win);
- i.CloseWindow (dlg.win); dlg.win := NIL;
- ea.DisposeObject (dlg.winObj); dlg.winObj := NIL
- END Close;
-
- END EADialogs.
-
- (*************************************************************************
-
- $Log: EADialogs.mod $
- # Revision 1.1 1995/06/04 23:20:25 fjc
- # - Release 1.6
- #
- *************************************************************************)
-