home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / commodity / devicelock / txt / dlrequester.mod < prev    next >
Text File  |  1995-02-27  |  3KB  |  126 lines

  1. MODULE DLrequester;
  2.  
  3. IMPORT 
  4.        d  := Dos,
  5.        DLs:= DLstrings,
  6.        e  := Exec,
  7.        I  := Intuition,
  8.        r  := ReqToolsNA,
  9.        u  := Utility,
  10.        sys:= SYSTEM;
  11.  
  12. TYPE tags = u.Tags5;
  13.  
  14. CONST
  15.   ReqTagsC = tags(r.ezReqTitle,NIL,
  16.                   r.glFlags,LONGSET{r.ezReqCenterText},
  17.                   r.Window,NIL,
  18.                   r.LockWindowTag,I.LTRUE,
  19.                   u.done,NIL);
  20.                  
  21. VAR
  22.   reqToolsAvail-: BOOLEAN;
  23.   me           -: d.ProcessPtr;
  24.   yourwin      *: I.WindowPtr;
  25.   noWarnings   *: BOOLEAN;
  26.   centernot    *: BOOLEAN;
  27.   oldwinPtr     : e.APTR;
  28.  
  29. (***************************************************************************
  30.    some often needed requester stuff
  31.  ***************************************************************************)
  32.  
  33. (*------ Requester with EasyRequest ---------------------------------------*)
  34.  
  35. PROCEDURE Request*(head,text,gadget: e.LSTRPTR; arg: e.APTR):LONGINT;
  36. VAR Req     : I.EasyStruct;
  37.     ReqTags : tags;
  38. BEGIN
  39.   IF reqToolsAvail THEN
  40.     ReqTags := ReqTagsC;
  41.     IF yourwin = NIL THEN
  42.       ReqTags[2].tag := u.done;
  43.     ELSE
  44.       ReqTags[2].data := yourwin;
  45.     END;
  46.     ReqTags[0].data := head;
  47.     IF centernot THEN ReqTags[1].tag := u.ignore END;
  48.     RETURN(r.EZRequest(text^, gadget^, NIL, ReqTags, arg));
  49.   ELSE
  50.     Req.structSize := SIZE(I.EasyStruct);
  51.     Req.flags := LONGSET{};
  52.     Req.title := head;
  53.     Req.textFormat := text;
  54.     Req.gadgetFormat := gadget;
  55.     RETURN(I.EasyRequest(NIL,sys.ADR(Req),NIL,arg));
  56.   END;
  57. END Request;
  58.  
  59. PROCEDURE RequestNotify*(head,text: e.LSTRPTR; arg: e.APTR);
  60. VAR  dummy : LONGINT;
  61. BEGIN
  62.   dummy := Request(head,text,DLs.GetString(DLs.GadOK),arg);
  63. END RequestNotify;
  64.  
  65. PROCEDURE RequestResponseBool*(head,text,gadget: e.LSTRPTR; arg: e.APTR):BOOLEAN;
  66. BEGIN
  67.   IF Request(head,text,gadget,arg)=0 THEN RETURN(FALSE)
  68.   ELSE RETURN(TRUE) END;
  69. END RequestResponseBool;
  70.  
  71. PROCEDURE RequestResponseNum*(head,text,gadget: e.LSTRPTR; arg: e.APTR):LONGINT;
  72. BEGIN
  73.   RETURN(Request(head,text,gadget,arg));
  74. END RequestResponseNum;
  75.  
  76. PROCEDURE RequestWarning*(text: e.LSTRPTR; arg: e.APTR);
  77. VAR ret : SHORTINT;
  78. BEGIN
  79.   IF noWarnings THEN RETURN END;
  80.   ret := SHORT(SHORT(Request(DLs.GetString(DLs.MsgWarning),
  81.                        text,
  82.                        DLs.GetString(DLs.GadProceedQuit),
  83.                        arg)));
  84.  
  85.   CASE ret OF 0 : HALT(5) | 
  86.               2 : noWarnings := TRUE |
  87.               ELSE END;
  88. END RequestWarning;
  89.  
  90. (*------ Quit Program with error message ----------------------------------*)
  91.  
  92. PROCEDURE BailOut*(error: ARRAY OF CHAR); (* $CopyArrays- *)
  93. BEGIN
  94.   RequestNotify(DLs.GetString(DLs.MsgError),sys.ADR(error),NIL);
  95.   HALT(20);
  96. END BailOut;
  97.  
  98. PROCEDURE FailOut*(error: ARRAY OF CHAR); (* $CopyArrays- *)
  99. BEGIN
  100.   RequestNotify(DLs.GetString(DLs.MsgError),DLs.GetString(DLs.MsgFailed),sys.ADR(error));
  101.   HALT(20);
  102. END FailOut;
  103.  
  104. (*------ Other ------------------------------------------------------------*)
  105.  
  106. PROCEDURE NoDosRequester*():d.ProcessPtr;
  107. BEGIN
  108.   me := (sys.VAL(d.ProcessPtr,e.FindTask(NIL)));
  109.   oldwinPtr := me.windowPtr;
  110.   me.windowPtr := -1;
  111.   RETURN(me);
  112. END NoDosRequester;
  113.  
  114. (***************************************************************************
  115.          M A I N
  116.  ***************************************************************************)
  117.  
  118. BEGIN
  119.   reqToolsAvail := r.req # NIL;
  120.  
  121.  
  122. CLOSE
  123.     IF oldwinPtr  # NIL THEN me.windowPtr := oldwinPtr  END;
  124.  
  125.  
  126. END DLrequester.