home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 9 / FreshFishVol9-CD2.bin / bbs / util / zedrexx-1.0c.lha / ZedREXX / REXX / Sneaker.zrx < prev    next >
Text File  |  1994-08-18  |  8KB  |  282 lines

  1. /* Sneaker.zrx
  2.  * Written by David N. Junod
  3.  *
  4.  * This is an incomplete program used to help make sneaker networks a
  5.  * little more efficient.
  6.  *
  7.  */
  8.  
  9. OPTIONS RESULTS
  10. SIGNAL ON HALT
  11.  
  12. /* For Demo Purposes... */
  13. Info("S:",info.)
  14. IF info.DiskState="WRITE_PROTECTED"    THEN PersistVol="ENV"
  15.                     ELSE PersistVol="S"
  16.  
  17. SrcWild="#?.(c|h|asm|i)"
  18.  
  19. /******************************/
  20. /* User Interface Description */
  21. /******************************/
  22.  
  23.     /* Application Data */
  24.     'zInterface Sneaker Hotkey="ctrl f1" FrontScreen PersistFile='||PersistVol||':Sneaker.zdb'
  25.     'zImage Magnify Width=11 Height=9 Depth=1 Data="3E006300C180C180C18063003EC000E00060"'
  26.  
  27.     /* Main Window */
  28.     'zWindow Main Label="Sneaker (Hotkey=Ctrl-F1)" Open Centered Vertical CloseEvent ChildMaxWidth'
  29.         'zMenu Project'
  30.         'zObject Button AboutM Label="About..." Key="?" Cause="zDoMethod About Open"'
  31.         'zObject Line'
  32.         'zObject Button Hide Label="&Hide" Cause="zDoMethod Sneaker Deactivate"'
  33.         'zObject Button Quit Label="&Quit" SelectEvent'
  34.         'zEndMenu'
  35.         'zMenu Settings'
  36.         'zObject Button SetM Label="&Prefs..." Cause="zDoMethod Settings Open"'
  37.         'zEndMenu'
  38.  
  39.         'zGroup Horizontal'
  40.         'zObject Button Freshen Label="&Freshen..." SelectEvent'
  41.         'zObject Button Show Label="&Show" SelectEvent'
  42.         'zObject Button SetB Label="&Prefs..." Cause="zDoMethod Settings Open"'
  43.         'zEndGroup'
  44.         'zObject Line'
  45.         /* I shouldn't have to do the FILL switch in the next two objects, but for some
  46.          * reason the software is requiring it! */
  47.         'zObject ListView Names NumColumns=20 NumLines=10 Order=Ascend ReadOnly Fill'
  48.         'zObject Line'
  49.         'zObject TextDisplay Status Fill'
  50.     'zEndWindow'
  51.  
  52.     /* About Window */
  53.     'zWindow About Label="About Sneaker" ChildMaxWidth Centered NoClose'
  54.         'zGroup Horizontal Alignment=Center'
  55.         'zFill'
  56.         'zGroup Vertical'
  57.             'zObject StdI Image Which=Information'
  58.         'zEndGroup'
  59.         'zGroup Vertical ChildMaxWidth'
  60.             'zObject TextDisplay A0 Justification=Center Value="Sneaker 0.00001 (2-Aug-94)" NoBorder'
  61.             'zObject TextDisplay A1 Justification=Center Value="Copyright © 1994 ITS, Inc." NoBorder'
  62.             'zObject TextDisplay A2 Justification=Center Value="Written by David N. Junod" NoBorder'
  63.         'zEndGroup'
  64.         'zEndGroup'
  65.         'zObject Line'
  66.         'zGroup Horizontal Justification=Center'
  67.         'zObject Button AOK Label="&OK" Cause="zDoMethod About Close"'
  68.         'zEndGroup'
  69.     'zEndWindow'
  70.  
  71.     /* Warning Window */
  72.     'zWindow Warning Label="Sneaker Warning" ChildMaxWidth Centered NoClose Blocking'
  73.         'zGroup Horizontal Alignment=Center'
  74.         'zFill'
  75.         'zGroup Vertical'
  76.             'zObject StdI Image Which=Exclamation'
  77.         'zEndGroup'
  78.         'zGroup Vertical ChildMaxWidth'
  79.             'zObject TextDisplay W0 Justification=Center NoBorder Value="Freshen will set the archive"'
  80.             'zObject TextDisplay W1 Justification=Center NoBorder Value="bit for all files that match"'
  81.             'zObject TextDisplay W2 Justification=Center NoBorder Value=""'
  82.         'zEndGroup'
  83.         'zEndGroup'
  84.         'zObject Line'
  85.         'zGroup Horizontal'
  86.         'zObject Button WOK Label="&OK" SelectEvent'
  87.         'zObject Button WCancel Label="&Cancel" Cause="zDoMethod Warning Close"'
  88.         'zEndGroup'
  89.     'zEndWindow'
  90.  
  91.     /* Settings Window */
  92.     'zWindow Settings Label="Sneaker Settings" Vertical ChildMaxWidth Centered NoClose'
  93.         'zGroup Vertical Alignment=Right'
  94.                 'zGroup Horizontal ChildMaxHeight NoMargX'
  95.                     'zObject TextEntry TrnDir Persist DropEvent Label="Floppy:" MaxChars=64 NumColumns=32 Value="DF0:" ChangeEvent'
  96.                     'zObject ButtonG TrnDirS Glyph=Magnify UpEvent'
  97.                 'zEndGroup'
  98.                 'zGroup Horizontal ChildMaxHeight NoMargX'
  99.                     'zObject TextEntry SrcDir Persist DropEvent Label="Source:" MaxChars=255 NumColumns=32 Value="M:"'
  100.                     'zObject ButtonG SrcDirS Glyph=Magnify UpEvent'
  101.                 'zEndGroup'
  102.                 'zGroup Horizontal ChildMaxHeight NoMargX'
  103.                     'zObject TextEntry Prog Persist DropEvent Label="Executable:" MaxChars=255 NumColumns=32 Value="M:Game"'
  104.                     'zObject ButtonG ProgS Glyph=Magnify UpEvent'
  105.                 'zEndGroup'
  106.         'zEndGroup'
  107.         'zObject Line'
  108.         'zGroup Horizontal'
  109.         'zObject Button SSave Label="&Save" SelectEvent'
  110.         'zObject Button SCancel Label="&Cancel" SelectEvent'
  111.         'zEndGroup'
  112.     'zEndWindow'
  113.  
  114.     'zEndInterface'
  115.  
  116. /* Turn everything on */
  117. 'zDoMethod Sneaker Activate'
  118.  
  119. /**************/
  120. /* Event Loop */
  121. /**************/
  122.  
  123. DO FOREVER
  124.  
  125.     /* Wait for something to happen */
  126.     'zWaitForEvent stem.'
  127.  
  128.     /* Do something with the event */
  129.     INTERPRET "zRC="RESULT"()"
  130. END
  131.  
  132. /**************/
  133. /**************/
  134. /**************/
  135.  
  136. Halt:
  137. Quit_Select:
  138. Sneaker_Quit:
  139.     EXIT
  140.  
  141. Error:
  142.     IF RC=20 THEN DO
  143.     SAY "Must be run within zrx"
  144.     EXIT
  145.     END
  146.     SAY "Error" RC "at line" SIGL " (errnum="zErrNum")"
  147.     EXIT
  148.  
  149. Main_Close:
  150.     'zDoMethod Sneaker Deactivate'
  151.     Return 0
  152.  
  153. /*******************/
  154. /* SETTINGS WINDOW */
  155. /*******************/
  156.  
  157. TrnDir_Drop:
  158.     /* This should somehow figure out the floppy unit!! */
  159.     Parse var stem.value first '|' last
  160.     'zSetAttr TrnDir Value' first
  161.     Return 0
  162.  
  163. TrnDir_Change:
  164. /*
  165.     'zGetAttr TrnDir Value'
  166.     TempDriveName=RESULT
  167.     SAY Info(TempDriveName,info.)
  168.     SAY info.Name info.UnitNumber info.DiskType
  169.  */
  170.     Return 0
  171.  
  172. TrnDirS_Change:
  173.     'zGetAttr TrnDir Value'
  174.     'zRequest Directory Label "Select Transfer Drive" Value "'result'"'
  175.     'zSetAttr TrnDir Value' RESULT
  176.     Return 0
  177.  
  178. SrcDir_Drop:
  179.     Parse var stem.value first '|' last
  180.     'zSetAttr SrcDir Value' first
  181.     Return 0
  182.  
  183. SrcDirS_Change:
  184.     'zGetAttr SrcDir Value'
  185.     'zRequest Directory Label "Select Source Drawer" Value "'result'"'
  186.     'zSetAttr SrcDir Value' result
  187.     Return 0
  188.  
  189. Prog_Drop:
  190.     Parse var stem.value first '|' last
  191.     'zSetAttr Prog Value' first
  192.     Return 0
  193.  
  194. ProgS_Change:
  195.     'zGetAttr Prog Value'
  196.     ProgName=RESULT
  197.     IF LENGTH(ProgName)=0 THEN DO
  198.     'zGetAttr SrcDir Value'
  199.     ProgName=RESULT
  200.     END
  201.     'zRequest File Label "Select Executable" Value "'ProgName'" ShowPattern Pattern="~(#?.#?)"'
  202.     'zSetAttr Prog Value' result
  203.     Return 0
  204.  
  205. SSave_Select:
  206.     'zDoMethod Settings Save'
  207.     'zDoMethod Settings Close'
  208.     Return 0
  209.  
  210. SCancel_Select:
  211.     'zDoMethod Settings Restore'
  212.     'zDoMethod Settings Close'
  213.     Return 0
  214.  
  215. /***************/
  216. /* MAIN WINDOW */
  217. /***************/
  218. Freshen_Select:
  219.     'zGetAttr SrcDir Value'
  220.     'zSetAttr W2 Value' AddPart(RESULT,SrcWild)
  221.     'zDoMethod Warning Open'
  222.     Return 0
  223.  
  224. WOK_Select:
  225.     'zDoMethod Warning Close'
  226.  
  227.     /* Lock the display so that nothing can happen */
  228.     'zDoMethod Sneaker Lock'
  229.  
  230.     'zGetAttr SrcDir Value'
  231.     SrcDirectory=RESULT
  232.  
  233.     statMsg="Setting archive bit in directory" SrcDirectory
  234.     'zSetAttr Status Value='statMsg
  235.  
  236.     /* What command do you want to hear */
  237.     cmd="protect" AddPart(SrcDirectory,SrcWild) "+a quiet"
  238.     address command cmd
  239.  
  240.     /* Clear the list view */
  241.     'zSetAttr Names Items=""'
  242.  
  243.     /* Unlock the display */
  244.     'zSetAttr Status Value="Files freshened"'
  245.     'zDoMethod Sneaker Unlock'
  246.     Return 0
  247.  
  248. Show_Select:
  249.     /* Lock the display so that nothing can happen */
  250.     'zDoMethod Sneaker Lock'
  251.  
  252.     /* Clear the list view */
  253.     'zSetAttr Names Items=""'
  254.  
  255.     /* Build the search string & show what's going on */
  256.     'zGetAttr SrcDir Value'
  257.     SrcDirectory=RESULT
  258.     statMsg="Scanning Directory" SrcDirectory
  259.     'zSetAttr Status Value='statMsg
  260.     SrcDirectory=AddPart(SrcDirectory,SrcWild)
  261.  
  262.     /* Get the directory */
  263.     CALL ExAll(SrcDirectory,dirstem.)
  264.  
  265.     /* Place the results of the directory search into the listview */
  266.     cnt=0
  267.     DO i = 0 TO (dirstem.count - 1)
  268.     IF SUBSTR(dirstem.i.protection,4,1)="-" THEN DO
  269.         'zDoMethod Names Add' dirstem.i.filename
  270.         cnt = cnt + 1
  271.         END
  272.     END
  273.  
  274.     /* Provide some feedback on how many files we found */
  275.     IF cnt=1    THEN statMsg="Found 1 file"
  276.         ELSE statMsg="Found" cnt "files"
  277.     'zSetAttr Status Value='statMsg
  278.  
  279.     /* Unlock the display */
  280.     'zDoMethod Sneaker Unlock'
  281.     Return 0
  282.