home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / disk / backup_utils / kwikbackup / source.lha / source / KwikBackUp.mod < prev    next >
Text File  |  1989-09-24  |  5KB  |  161 lines

  1. (*---------------------------------------------------------------------------
  2.     :Program.    KwikBackUp
  3.     :Author.     Fridtjof Siebert
  4.     :Address.    Nobileweg 67, D-7-Stgt-40
  5.     :Shortcut.   [fbs]
  6.     :Version.    1.0
  7.     :Date.       15-Dez-88
  8.     :Copyright.  ShareWare, send me $10 if you want to use this.
  9.     :Language.   Modula-II
  10.     :Translator. M2Amiga v3.1d
  11.     :Contents.   Fast and secure HD-BackUp utility.
  12.     :Remark.     Uses the Archive-Flag.
  13. ---------------------------------------------------------------------------*)
  14.  
  15. MODULE KwikBackUp;
  16.  
  17. FROM SYSTEM    IMPORT ADR;
  18.  
  19. FROM Dos       IMPORT Delay;
  20.  
  21. FROM Exec      IMPORT WaitPort, GetMsg, ReplyMsg;
  22.  
  23. FROM Graphics  IMPORT SetAPen, SetDrMd, jam1, jam2, DrawModes, DrawModeSet,
  24.                       RectFill, SetBPen;
  25.  
  26. FROM Intuition IMPORT IntuiMessagePtr, IntuiMessage, GadgetPtr, GadgetFlags,
  27.                       GadgetFlagSet, IDCMPFlags, IDCMPFlagSet, OnGadget,
  28.                       RemoveGadget, AddGadget, RefreshGadgets;
  29.  
  30. FROM HDDisplay IMPORT OpenDisplay, HDRequest, ReqResults, gadgets, Redraw,
  31.                       Window, Gadgets, DriveName, Type, RP;
  32.  
  33. FROM BackUp    IMPORT BackUp, Restore;
  34.  
  35. VAR
  36.   MyMsgPtr: IntuiMessagePtr;
  37.   MyMsg: IntuiMessage;
  38.   gdg: GadgetPtr;
  39.   Drive: CARDINAL;
  40.   GdgCnt: gadgets;
  41.  
  42. (*------  Redraw SaveAll & RegardArch Gadgets:  ------*)
  43.  
  44. PROCEDURE RedrawSaveAll(SaveAll: BOOLEAN);
  45.  
  46. BEGIN
  47.   IF SaveAll THEN
  48.     INCL(Gadgets[SaveAllGadg].flags,selected);
  49.     WITH Gadgets[RegardArchivedGadg] DO
  50.       flags := flags - GadgetFlagSet{selected};
  51.     END;
  52.   ELSE
  53.     INCL(Gadgets[RegardArchivedGadg].flags,selected);
  54.     WITH Gadgets[SaveAllGadg] DO
  55.       flags := flags - GadgetFlagSet{selected};
  56.     END;
  57.   END;
  58.   SetAPen(RP,0); SetDrMd(RP,jam1);
  59.   RectFill(RP,320,118,459,133);
  60.   RectFill(RP,476,118,615,133);
  61.   SetAPen(RP,1);
  62.   Type(514,128,"Save All");
  63.   Type(330,128,"Regard Archived");
  64.   SetAPen(RP,3); SetDrMd(RP,DrawModeSet{complement});
  65.   IF SaveAll THEN
  66.     RectFill(RP,476,118,615,133);
  67.   ELSE
  68.     RectFill(RP,320,118,459,133);
  69.   END;
  70. END RedrawSaveAll;
  71.  
  72. (*------  MAIN:  ------*)
  73.  
  74. BEGIN
  75.  
  76. (*------  Init:  ------*)
  77.  
  78.   Drive := 0;
  79.   OpenDisplay();
  80.  
  81. (*------  Main Loop:  ------*)
  82.  
  83.   LOOP
  84.     WaitPort(Window^.userPort);
  85.     MyMsgPtr := GetMsg(Window^.userPort);
  86.     IF MyMsgPtr#NIL THEN
  87.       MyMsg := MyMsgPtr^;
  88.       ReplyMsg(MyMsgPtr);
  89.       IF MyMsg.class=IDCMPFlagSet{gadgetDown} THEN
  90.         gdg := MyMsg.iAddress;
  91.         CASE gadgets(gdg^.gadgetID) OF
  92.         HDGadg: |
  93.         BackUpGadg:
  94.           INCL(Gadgets[BackUpGadg].flags,selected);
  95.           WITH Gadgets[RestoreGadg] DO
  96.             flags := flags - GadgetFlagSet{selected};
  97.           END;
  98.           OnGadget(ADR(Gadgets[BackUpGadg]),Window,NIL); |
  99.         RestoreGadg:
  100.           INCL(Gadgets[RestoreGadg].flags,selected);
  101.           WITH Gadgets[BackUpGadg] DO
  102.             flags := flags - GadgetFlagSet{selected};
  103.           END;
  104.           OnGadget(ADR(Gadgets[BackUpGadg]),Window,NIL); |
  105.         DiskGadg:
  106.           IF Drive=3 THEN
  107.             Drive := 0;
  108.           ELSE
  109.             INC(Drive);
  110.           END;
  111.           DriveName[2] := CHAR(ORD("0")+Drive);
  112.           SetAPen(RP,2); SetBPen(RP,1); SetDrMd(RP,jam2);
  113.           Type(396,59,DriveName); |
  114.         SaveAllGadg:
  115.           RedrawSaveAll(TRUE); |
  116.         RegardArchivedGadg:
  117.           RedrawSaveAll(FALSE); |
  118.         SetArchivedGadg: |
  119.         StartGadg:
  120.           FOR GdgCnt:=MIN(gadgets) TO MAX(gadgets) DO
  121.             IF GdgCnt#StartGadg THEN
  122.               IF RemoveGadget(Window,ADR(Gadgets[GdgCnt]))=0 THEN END;
  123.             END;
  124.           END;
  125.           SetAPen(RP,0); SetDrMd(RP,jam1);
  126.           RectFill(RP,8,118,147,133);
  127.           SetAPen(RP,1);
  128.           Type(58,128,"ABORT");
  129.           IF selected IN Gadgets[BackUpGadg].flags THEN
  130.             BackUp(Drive);
  131.           ELSE
  132.             Restore(Drive);
  133.           END;
  134.           WITH Gadgets[StartGadg] DO
  135.             flags := flags - GadgetFlagSet{selected};
  136.           END;
  137.           SetAPen(RP,0); SetDrMd(RP,jam1);
  138.           RectFill(RP,8,118,147,133);
  139.           SetAPen(RP,1);
  140.           Type(58,128,"Start");
  141.           LOOP
  142.             MyMsgPtr := GetMsg(Window^.userPort);
  143.             IF MyMsgPtr=NIL THEN EXIT END;
  144.             ReplyMsg(MyMsgPtr);
  145.           END;
  146.           FOR GdgCnt:=MIN(gadgets) TO MAX(gadgets) DO
  147.             IF GdgCnt#StartGadg THEN
  148.               IF AddGadget(Window,ADR(Gadgets[GdgCnt]),-1)=0 THEN END;
  149.             END;
  150.           END; |
  151.         END;
  152.       ELSIF MyMsg.class=IDCMPFlagSet{closeWindow} THEN
  153.         EXIT;
  154.       END;
  155.     END;
  156.   END;
  157.  
  158. (*------  Exit:  ------*)
  159.  
  160. END KwikBackUp.
  161.