/*
 $VER: ProDraw.dopus5 2.0 (27.5.98)
 Written by Jan-Erik Karlsson
 Send docs/texts to ProDraw from DirectoryOpus
 Call as:
 <AREXX>DOpus5:ARexx/ProDraw.dopus5 {Qp} {f!}
*/

/* Change this to the path where PPaint is located (Don't remove the brackets) */
PDPath = 'Work2:Dtp/ProDraw'
PDProg = 'Work2:Dtp/ProDraw/PDraw -s1 -i1'

options results
PARSE ARG portname2 '"'picfile'"' .
IF portname2 == '' THEN DO
  portname2 = "DOPUS.1"
END
portname2 = strip(portname2, "B",' ')
portname2 = strip(portname2, "B", '"')

IF ~SHOW('L','rexxsupport.library') THEN DO
  addlib('rexxsupport.library',0,-30)
END
IF ~SHOW('L','datatypes.library') THEN DO
  addlib('datatypes.library',0,-30)
END

IF picfile ~= '' THEN DO
  picfile = strip(picfile,"B",' ')
  picfile = strip(picfile,"B",'"')
  filename2 = picfile
  rc = max(lastpos(':',picfile),lastpos('/',picfile))+1
  file1= substr(picfile,rc)
  picpath=strip(left(picfile,rc-1),'T','/')
  picfile = file1
END

lf='0a'x /* Thanks to Edmund Vermeulen for that sneaky code :) */

IF Show("P",portname2) THEN DO
 address value portname2
END
ELSE DO
 exit
END

dopus version
if(result ~= 'RESULT') then do
  vers=translate(result,'.',' ')
  if(vers==5.8) then vers = 5.8000
end
else vers = 'RESULT'
IF (vers == 'RESULT' | vers < 5.1218 ) THEN DO
  dopus request '"This script requires DOpus v5.5 or greater." OK'
 exit
END

pic = picfile
popup=1

dopus progress name info info2 title abort
handler = result
dopus progress handler title 'ProDraw loader by Jan-Erik Karlsson 99'
dopus progress handler info2 'Checking filetype'
dopus progress handler name pic

filename2 = filename2

CALL ExamineDT(filename2,dtstem., STEM)
picftype = dtstem.DataType
picGroup = dtstem.GroupID
picGroup2 = dtstem.GroupIDName

IF length(picftype )>= 7 THEN DO
  picftype2 = left(picftype,6)
  picftype2 = strip(picftype2, "B",' ')
END
ELSE DO
  picftype2 = picftype
END

dopus progress handler info 'FileGroup: 'picGroup2' FileType: 'picftype
dopus progress handler info2 'Looking for ProDraw...'

if Show("P","PDRAWAREXX") then DO
  call CHECKPD
END
Else Do
  dopus front
  call dorequest('"ProDraw does not seem to be loaded.'lf'Should I load ProDraw?" _Yes|_No')
  if returnflag==1 then DO
    call LOADPD
  END
  else do
    dopus progress handler info 'FileGroup: 'picGroup2' FileType: 'picftype
    dopus progress handler info2 'Aborting...'
    call EXIT_ME
  END
  call EXIT_ME
END

CHECKPD:
  PortName="PDRAWAREXX"
  address value PortName
  options failat 3000
	call SENDPD
END

LOADPD:
  IF picGroup == 'pict' THEN DO
    dopus progress handler info 'FileGroup: 'picGroup2' FileType: 'picftype
    dopus progress handler info2 'Launching ProDraw...'
    address command "RUN >NIL: "PDProg
		i=0
    DO UNTIL PortName=='PDRAWAREXX'
      address command "Wait 1 secs" /* This is needed for some strange reason */
      IF show('p','PDRAWAREXX') THEN PortName='PDRAWAREXX'
      ELSE PortName= ''
    END
    dopus progress handler info 'FileGroup: 'picGroup2' FileType: 'picftype
    dopus progress handler info2 'ProDraw Loaded...'
		address command "Wait 5 secs"
    call SENDPD
  END
  ELSE call EXIT_ME
END

SENDPD:
  options failat 2
  address value portname2
  dopus progress handler info 'FileGroup: 'picGroup2' FileType: 'picftype
  dopus progress handler info2 'Loading file...'
	dopus back
  address value PortName
  IF picGroup == 'pict' THEN DO
		IF picftype2 == 'CLIP' THEN DO
	    loadclips filename2
			drawclip
		END
		IF picftype2 == 'Folio' THEN DO
			loaddocument filename2
		END
  END
  address value portname2
  call EXIT_ME
END

EXIT_ME:
  dopus progress handler info 'FileGroup: 'picGroup2' FileType: 'picftype
  dopus progress handler info2 'All Done...'
  dopus progress handler off
  exit
END

dorequest:
   parse arg reqargs
   dopus request reqargs
   returnflag = rc
   return
