home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rexxwps.zip / wps_tstf.cmd < prev   
OS/2 REXX Batch file  |  1995-10-07  |  5KB  |  94 lines

  1. /* Program name:  WPS_TSTF.CMD  Title: Figure 8              */
  2. /* REXX Report              Issue: Summer '95, page 42-51    */
  3. /* Article title: The Workplace Shell: Objects to the Core   */
  4. /* Author: Rony G. Flatscher                                 */
  5. /* Description: utilizing REXX to communicate with the       */
  6. /*              Workplace Shell                              */
  7. /* Program requirements: OS/2 Warp                           */
  8. /*                                                           */
  9.  
  10.  
  11. /* WPS_TSTF.CMD: test folders, shadows and moving objects           */
  12.  
  13. /******* create four folders on the desktop to play with ************/
  14. DO i = 1 TO 4
  15.    objectid = "<RGF Testfolder_" || i || ">" /* unique objectid     */
  16.    title    = "Testfolder #" i
  17.    folder.i = objectid                       /* save for later use  */
  18.    y_pos = 100 - i*20                        /* placement on y-axis */
  19.    setup = "ICONPOS=5," || y_pos || ";" ||,  /* icon placement      */
  20.            "ICONVIEWPOS=15," || y_pos   ||,  /* initial folder dim: */
  21.                         ",35,20;"       ||,  /* relative to icon    */
  22.            "OBJECTID=" || objectid || ";"    /* assign objectid     */
  23.  
  24.    ok = SysCreateObject(,           /* create object                */
  25.          "WPFolder",,               /* Object type: WPS-Folder      */
  26.          title,,                    /* Title                        */
  27.          "<WP_DESKTOP>",,           /* create on desktop            */
  28.          setup,,                    /* setup-string                 */
  29.          "F")                       /* fail, if object exists       */
  30.  
  31.    SAY "creating:" objectid "-" worked(ok)
  32. END
  33. folder.0 = 4                        /* indicate 4 elements in array */
  34. SAY                                 /* display empty line           */
  35.  
  36. /******* change state-data to open folder in icon view **************/
  37. "@PAUSE"
  38. DO i = 1 TO 3                       /* open first three folders     */
  39.    setup = "OPEN=ICON;"             /* open them using icon view    */
  40.    ok = SysSetObjectData(folder.i, setup)
  41.    SAY "setup object data ["setup"] for" folder.i  "-" worked(ok)
  42. END
  43.  
  44. /******* create shadow of OS/2 Configuration Folder *****************/
  45. shadObjID = "<RGF Testshadow_1>"        /* OBJECITD of shadow       */
  46. folder.5  = shadObjID                   /* memorize                 */
  47. folder.0  = 5                           /* now we have 5 elements   */
  48. setup = "SHADOWID=<WP_CONFIG>;" ||,     /* shadow OS2-config folder */
  49.         "OBJECTID=" || shadObjID || ";" /* OBJECTID of shadow       */
  50.  
  51. ok = SysCreateObject(,                  /* create object            */
  52.       "WPShadow",,                      /* Object type: WPS-Shadow  */
  53.       title,,                           /* Title                    */
  54.       folder.1,,                        /* put into folder # 1      */
  55.       setup,,                           /* setup-string             */
  56.       "F")                              /* fail, if object exists   */
  57. SAY "creating shadow for" folder.5  "-" worked(ok)
  58. SAY                                     /* display empty line       */
  59.  
  60. /******* move Testfolder # 4 between the first three folders ********/
  61. location1 = 1                         /* shadow in folder #1        */
  62. location2 = 0                         /* folder #4 on desktop       */
  63.  
  64. DO FOREVER
  65.    SAY "Press enter to animate (enter 'exit' to end):"
  66.    PARSE UPPER PULL input             /* get input from user        */
  67.    IF LEFT(input, 1) = "E" THEN LEAVE /* just check first letter    */
  68.  
  69.    location1 = (location1 //  3) + 1  /* next folder for shadow     */
  70.    location2 = (location2 //  3) + 1  /* next folder for folder # 4 */
  71.  
  72.    ok = SysMoveObject(shadObjID, folder.location1)   /* move shadow */
  73.    SAY "moving shadow" shadObjID "to" folder.location1 "-" worked(ok)
  74.    ok = SysMoveObject(folder.4, folder.location2)    /* move folder */
  75.    SAY "moving folder" folder.4 "to" folder.location2 "-" worked(ok)
  76.    SAY                                /* display empty line         */
  77. END
  78.  
  79. /******* delete test folders ? (delete, if first letter is "Y" ******/
  80. SAY "Delete test folders ? (Yes/No)"
  81. PARSE UPPER PULL input
  82. IF LEFT(input, 1) = "Y" THEN         /* delete test folders ?       */
  83. DO i = folder.0 TO 1 BY -1           /* delete, start with # 3      */
  84.    ok = SysDestroyObject(folder.i)
  85.    SAY "destroying (deleting):" folder.i "-" worked(ok)
  86. END
  87.  
  88. EXIT
  89.  
  90. /* procedure to indicate successful/not successful                  */
  91. WORKED: PROCEDURE
  92.    IF ARG(1) THEN RETURN "successful."
  93.              ELSE RETURN "*** NOT succesful ***"
  94.