home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 2000 April & May / AMIGA_2000_04.iso / amiga-magazin / visualengineer / ve-full.lha / arexx / Signature.rexx < prev    next >
OS/2 REXX Batch file  |  1999-08-01  |  7KB  |  321 lines

  1. /*
  2.  
  3.    v1.03 Signature
  4.  
  5.    Marko Seppänen
  6.    marko.seppanen@wwnet.fi
  7.  
  8. */
  9.  
  10.  
  11. address IMAGEENGINEER
  12.  
  13. Options results
  14. signal on error            /* Setup a place for errors to go */
  15.  
  16.  
  17. GET PRIMARY
  18. pic=result
  19. GET SECONDARY
  20. sec=result
  21.  
  22. if pic~=="" then do
  23.  
  24.   PROJECT_INFO pic WIDTH
  25.   picwidth=result
  26.   PROJECT_INFO pic HEIGHT
  27.   picheight=result
  28.  
  29.   if pic==sec then samepic=1
  30.  
  31. end
  32. else nopic="1"
  33.  
  34.  
  35.  
  36.  
  37.  
  38. /* SECONDARY SELECTED */
  39.  
  40.  
  41. if sec~=="" & samepic~=="1" then do
  42.  
  43.   if exists("ie:prefs/vesignature.cfg") == "1" then
  44.     do
  45.       call open("temp","ie:prefs/vesignature.cfg","R")
  46.       values=readln("temp")
  47.       parse var values ok method halign valign hoffset voffset .
  48.       call close("temp")
  49.     end
  50.   else
  51.     do
  52.       method=1
  53.       halign=2
  54.       valign=2
  55.       hoffset="-10"
  56.       voffset="-10"
  57.     end
  58.  
  59.   'FORM "Signature" "Use|Cancel"',
  60.   'CYCLE,"Method","Alpha|Max|Min|Mix50|Mix50Genlock|Multiply",'method'',
  61.   'CYCLE,"Horizontal align","Left|Center|Right",'halign'',
  62.   'CYCLE,"Vertical align","Top|Middle|Bottom",'valign'',
  63.   'INTEGER,"Horizontal offset",-100,100,'hoffset',SLIDER',
  64.   'INTEGER,"Vertical offset",-100,100,'voffset',SLIDER'
  65.  
  66.   values=result
  67.   parse var values ok method halign valign hoffset voffset .
  68.  
  69.   if ok = 0 then exit
  70.  
  71.   call open("temp","ie:prefs/vesignature.cfg","W")
  72.   res=writeln("temp",values)
  73.   call close("temp")
  74.  
  75.  
  76.   PROJECT_INFO sec WIDTH
  77.   secpicwidth=result
  78.   PROJECT_INFO sec HEIGHT
  79.   secpicheight=result
  80.  
  81.   if halign=="0" then xplace=0
  82.   if halign=="1" then xplace=(picwidth/2)-(secpicwidth/2)
  83.   if halign=="2" then xplace=picwidth-secpicwidth
  84.  
  85.   if valign=="0" then yplace=0
  86.   if valign=="1" then yplace=(picheight/2)-(secpicheight/2)
  87.   if valign=="2" then yplace=picheight-secpicheight
  88.  
  89.  
  90.   MARK sec PRIMARY
  91.   MARK sec ALPHA
  92.   MARK pic SECONDARY
  93.  
  94.  
  95.   if method == "0" then cmethod="ALPHA"
  96.   if method == "1" then cmethod="MAX"
  97.   if method == "2" then cmethod="MIN"
  98.   if method == "3" then cmethod="MIX 50"
  99.   if method == "4" then cmethod="MIX 50 GENLOCK"
  100.   if method == "5" then cmethod="MULTIPLY"
  101.  
  102.   COMPOSITE xplace+hoffset yplace+voffset cmethod
  103.   final=result
  104.  
  105. end
  106.  
  107.  
  108.  
  109.  
  110.  
  111. /* NO SECONDARY SELECTED */
  112.  
  113.  
  114. if sec=="" | samepic=="1" | nopic=="1" then do
  115.  
  116.   if exists("ie:prefs/vesignaturereq.cfg") == "1" then
  117.     do
  118.       call open("temp","ie:prefs/vesignaturereq.cfg","R")
  119.       values=readln("temp")
  120.       parse var values ok method halign valign hoffset voffset signature .
  121.       call close("temp")
  122.     end
  123.   else
  124.     do
  125.       method=1
  126.       halign=2
  127.       valign=2
  128.       hoffset="-10"
  129.       voffset="-10"
  130.       signature="<signature>"
  131.     end
  132.  
  133.   'FORM "Signature" "Use|Multifile|Cancel"',
  134.   'CYCLE,"Method","Alpha|Max|Min|Mix50|Mix50Genlock|Multiply",'method'',
  135.   'CYCLE,"Horizontal align","Left|Center|Right",'halign'',
  136.   'CYCLE,"Vertical align","Top|Middle|Bottom",'valign'',
  137.   'INTEGER,"Horizontal offset",-100,100,'hoffset',SLIDER',
  138.   'INTEGER,"Vertical offset",-100,100,'voffset',SLIDER',
  139.   'FILE,"Signaturefile",'signature''
  140.  
  141.  
  142.   values=result
  143.   parse var values ok method halign valign hoffset voffset signature .
  144.  
  145.   if ok = 0 then exit
  146.  
  147.   call open("temp","ie:prefs/vesignaturereq.cfg","W")
  148.   res=writeln("temp",values)
  149.   call close("temp")
  150.  
  151.  
  152.   if exists(strip(signature,B,'"')) == "0" then do
  153.  
  154.     'REQUEST "Please choose an existing signature." "Sorry"'
  155.     exit
  156.  
  157.   end
  158.  
  159.  
  160.   if ok=="1" then do
  161.  
  162.     if pic=="" then exit
  163.  
  164.     OPEN signature COLOUR
  165.     signa=result
  166.     MARK signa PRIMARY
  167.     MARK signa ALPHA
  168.     MARK pic SECONDARY
  169.  
  170.     PROJECT_INFO signa WIDTH
  171.     signapicwidth=result
  172.     PROJECT_INFO signa HEIGHT
  173.     signapicheight=result
  174.  
  175.     if halign=="0" then xplace=0
  176.     if halign=="1" then xplace=(picwidth/2)-(signapicwidth/2)
  177.     if halign=="2" then xplace=picwidth-signapicwidth
  178.  
  179.     if valign=="0" then yplace=0
  180.     if valign=="1" then yplace=(picheight/2)-(signapicheight/2)
  181.     if valign=="2" then yplace=picheight-signapicheight
  182.  
  183.     MARK signa PRIMARY
  184.     MARK pic SECONDARY
  185.  
  186.     if method == "0" then cmethod="ALPHA"
  187.     if method == "1" then cmethod="MAX"
  188.     if method == "2" then cmethod="MIN"
  189.     if method == "3" then cmethod="MIX 50"
  190.     if method == "4" then cmethod="MIX 50 GENLOCK"
  191.     if method == "5" then cmethod="MULTIPLY"
  192.  
  193.     COMPOSITE xplace+hoffset yplace+voffset cmethod
  194.     final=result
  195.  
  196.     CLOSE signa
  197.  
  198.   end
  199.  
  200.  
  201.  
  202.   if ok=="2" then do
  203.  
  204.     if exists("ie:prefs/vesignaturedefaultdir.cfg") == "1" then do
  205.  
  206.       call open("def","ie:prefs/vesignaturedefaultdir.cfg","R")
  207.       defdir=readln("def")
  208.       call close("def")
  209.  
  210.     end
  211.     else defdir="ram:"
  212.  
  213.     filelist="xxx"
  214.  
  215.     'GET_FILES "Choose some pictures..." "Ok"' defdir
  216.     filelist=result
  217.     if RC=5 then exit
  218.  
  219.     if filelist=="xxx" then do
  220.       'REQUEST "This thing works much better, if you select some files." "Sorry"'
  221.       exit
  222.     end
  223.  
  224.     parse var filelist deffile ';' nul
  225.  
  226.     lastp=lastpos("/",deffile)
  227.     defdir=delstr(deffile,lastp)
  228.     endpart=right(defdir,1)
  229.     if endpart~=":" & endpart~="/" then defdir=defdir||"/"
  230.  
  231.     call open("def","ie:prefs/vesignaturedefaultdir.cfg","W")
  232.     call writeln("def",defdir)
  233.     call close("def")
  234.  
  235.  
  236.     OPEN signature COLOUR
  237.     signa=result
  238.     MARK signa PRIMARY
  239.     MARK signa ALPHA
  240.  
  241.     PROJECT_INFO signa WIDTH
  242.     signapicwidth=result
  243.     PROJECT_INFO signa HEIGHT
  244.     signapicheight=result
  245.  
  246.  
  247.  
  248.  
  249. /* PROCESS 'EM! */
  250.  
  251.     do while filelist~=""
  252.  
  253.       parse var filelist xpic ';' filelist
  254.  
  255.       OPEN "'"xpic"'" COLOUR
  256.       picture=result
  257.  
  258.       PROJECT_SET picture ZOOM "1:4"
  259.  
  260.       MARK picture SECONDARY
  261.  
  262.  
  263.       PROJECT_INFO picture WIDTH
  264.       picturewidth=result
  265.       PROJECT_INFO picture HEIGHT
  266.       pictureheight=result
  267.  
  268.       if halign=="0" then xplace=0
  269.       if halign=="1" then xplace=(picturewidth/2)-(signapicwidth/2)
  270.       if halign=="2" then xplace=picturewidth-signapicwidth
  271.  
  272.       if valign=="0" then yplace=0
  273.       if valign=="1" then yplace=(pictureheight/2)-(signapicheight/2)
  274.       if valign=="2" then yplace=pictureheight-signapicheight
  275.  
  276.  
  277.       if method == "0" then cmethod="ALPHA"
  278.       if method == "1" then cmethod="MAX"
  279.       if method == "2" then cmethod="MIN"
  280.       if method == "3" then cmethod="MIX 50"
  281.       if method == "4" then cmethod="MIX 50 GENLOCK"
  282.       if method == "5" then cmethod="MULTIPLY"
  283.  
  284.       COMPOSITE xplace+hoffset yplace+voffset cmethod
  285.       final=result
  286.  
  287.       CLOSE picture
  288.  
  289.     end
  290.  
  291.     CLOSE signa
  292.  
  293.   end
  294.  
  295. end
  296.  
  297.  
  298.  
  299. if sec~=="" then MARK sec SECONDARY
  300.  
  301.  
  302. exit
  303.  
  304. /*******************************************************************/
  305. /* This is where control goes when an error code is returned by IE */
  306. /* It puts up a message saying what happened and on which line     */
  307. /*******************************************************************/
  308. error:
  309. if RC=5 then do            /* Did the user just cancel us? */
  310.     IE_TO_FRONT
  311.     LAST_ERROR
  312.     'REQUEST "'||RESULT||'"'
  313.     exit
  314. end
  315. else do
  316.     IE_TO_FRONT
  317.     LAST_ERROR
  318.     'REQUEST "Error detected!!!'||D2C(10)||'Image Engineer error message is as follows'||D2C(10)||result||D2C(10)||'Script failed on line '||SIGL||'"' 'Doh!'
  319.     exit
  320. end
  321.