home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Database / CBK-MT31.DMS / in.adf / arexx.lha / ARexx / showfile.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1996-11-11  |  2.6 KB  |  76 lines

  1. /* This AREXX program is used to show an external file using multiview of OS3 
  2.    The rexx file is called from the Database program Twist with the arguments
  3.  
  4.    showfilename multiviewportname pubscreenname
  5.  
  6.    SHOWFILENAME:      The name of the file to show. ::CLIP is used if the clipboard must be shown.
  7.    MULTIVIEWPORTNAME: The name of the Multiview AREXX port. Each "external file object" in
  8.                       a databases record form addresses a different port so more than one instance
  9.                       of Multiview may be started from Twist
  10.    PUBSCREENNAME:     The name of the screen Twist is running on (Workbench, Twist or another 
  11.                       public screen)
  12.  
  13.    If Multiview is not available Display is used
  14.  
  15.    Copyright (C) 1994 Mermaid Group
  16. */
  17. signal on NOVALUE
  18.  
  19. PARSE ARG showfilename,multiviewportname,pubscreenname 
  20. multiviewportname = upper(multiviewportname)
  21.  
  22. IF (length(multiviewportname)>16) THEN multiviewportname = right(multiviewportname, 16)
  23.  
  24. /* get kickstart version from previous call to this script */
  25. ksvs = getclip("TwistMWVS")
  26. IF ksvs == "" THEN
  27. DO
  28.    /* use the shell command to find if the OS version supports DataType and Multiview */
  29.    ADDRESS COMMAND "version >T:version_string"
  30.    CALL OPEN 'input','T:version_string','R'
  31.    vsline = readln('input')
  32.    CALL CLOSE 'input'
  33.    ADDRESS COMMAND 'delete quiet T:version_string'
  34.    PARSE VAR vsline . d1 d2 ",".
  35.    IF (d1 = "version") THEN ksvs = d2
  36.    ELSE ksvs = d1
  37.    x = setclip("TwistMWVS", ksvs)
  38. END
  39.  
  40. IF ksvs < 40 THEN multiviewportname = "MULTIVIEW.1"
  41.  
  42. IF ~ SHOW('p', multiviewportname) THEN
  43. DO
  44.    /* Multiview with the named port is not currently existing so create it */
  45.    IF showfilename = "-c" THEN filetext = "CLIPBOARD"
  46.    ELSE filetext = "FILE " showfilename
  47.  
  48.    IF ksvs >= 39 THEN
  49.    DO
  50.       IF ksvs >= 40 THEN
  51.       DO
  52.          ADDRESS COMMAND "run >NIL: sys:utilities/multiview " filetext " PORTNAME " multiviewportname " PUBSCREEN " pubscreenname
  53.       END
  54.       ELSE
  55.       DO
  56.          /* The Multiview vs 3.0 on C4000 and C1200 does not know the PORTNAME option - thus only one file can be shown at a time */
  57.          ADDRESS COMMAND "run >NIL: sys:utilities/multiview " filetext " PUBSCREEN " pubscreenname
  58.       END
  59.    END
  60.    ELSE address command "sys:utilities/display " showfilename " opt t=3"
  61. END
  62. ELSE
  63. DO
  64.    /* Multiview with the named port is already running. send it a AREXX command to show this file */
  65.    ADDRESS VALUE multiviewportname
  66.    IF showfilename = "-c" THEN OPEN CLIPBOARD
  67.    ELSE OPEN NAME showfilename
  68.    WINDOWTOFRONT
  69. END
  70.  
  71. EXIT
  72.  
  73. NOVALUE:
  74. SAY "no value error in line" sigl
  75. EXIT
  76.