home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Graphics / PerfectPaint / rexx / box / Funny_Border.rx < prev   
Text File  |  1999-12-09  |  3KB  |  182 lines

  1. /* Box arexx test */
  2.  
  3.     options results
  4.   parse ARG Port x1 y1 x2 y2 b
  5.     ADDRESS value Port
  6.  
  7.     ADDRESS COMMAND
  8.     type=0
  9.     if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/Funny_Border') THEN DO
  10.         IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/Funny_Border', "R") then DO
  11.             type = READLN('lfile')
  12.             CALL CLOSE('lfile')
  13.         END
  14.     END
  15.  
  16.     ADDRESS value Port
  17.  
  18.     pp_DialogInit 250 60 "*Funny*Border*" 1
  19.         pp_Cycle 0 100 8 100 16 "Type" 1 "1|2|3|4|Light|Shade" type
  20.     pp_Dialog
  21.     rc=result
  22.     if rc=0 then
  23.         do
  24.             EXIT
  25.         end        
  26.  
  27.     pp_GetDialog 0
  28.     type=result
  29.  
  30.     CALL SavePrefs('Funny_Border',type)
  31.     ADDRESS value Port
  32.  
  33.     pp_updateundo
  34.  
  35. if type=0 then DO
  36.     xb=trunc(((abs(x1-x2)+1)*10)/100);yb=trunc(((abs(y1-y2)+1)*10)/100)
  37.     ab=xb
  38.     if xb>yb then
  39.     do
  40.     ab=yb
  41.     end
  42.     pp_startpoly
  43.     pp_addpoly x1 y1+ab
  44.     pp_addpoly x1+ab y1
  45.     pp_addpoly x2-ab y1
  46.     pp_addpoly x2 y1+ab
  47.     pp_addpoly x2 y2-ab
  48.     pp_addpoly x2-ab y2
  49.     pp_addpoly x1+ab y2
  50.     pp_addpoly x1 y2-ab
  51.     pp_addpoly x1 y1+ab
  52.     pp_endpoly
  53. END
  54.  
  55. if type=1 then DO
  56.     xb=trunc(((abs(x1-x2)+1)*10)/100)
  57.     yb=trunc(((abs(y1-y2)+1)*10)/100)
  58.     ab=xb
  59.     if xb>yb then
  60.     do
  61.         ab=yb
  62.     end
  63.     pp_line x1+ab y1 x2-ab y1
  64.     pp_line x2 y1+ab x2 y2-ab
  65.     pp_line x2-ab y2 x1+ab y2
  66.     pp_line x1 y2-ab x1 y1+ab
  67.   
  68.     pp_spline x1 y1+ab x1+ab y1 x1 y1
  69.     pp_spline x2-ab y1 x2 y1+ab x2 y1
  70.     pp_spline x2 y2-ab x2-ab y2 x2 y2
  71.     pp_spline x1+ab y2 x1 y2-ab x1 y2
  72. END
  73.  
  74. if type=2 then DO
  75.     xb=trunc(((abs(x1-x2)+1)*10)/100)
  76.     yb=trunc(((abs(y1-y2)+1)*10)/100)
  77.     ab=xb
  78.     if xb>yb then
  79.     do
  80.         ab=yb
  81.     end
  82.     ab2=trunc(ab/3)
  83.  
  84.     pp_line x1+ab y1 x2-ab y1
  85.     pp_line x2 y1+ab x2 y2-ab
  86.     pp_line x2-ab y2 x1+ab y2
  87.     pp_line x1 y2-ab x1 y1+ab  
  88.  
  89.     pp_spline x1 y1+ab x1+ab y1 x1+ab2 y1+ab2
  90.     pp_spline x2-ab y1 x2 y1+ab x2-ab2 y1+ab2
  91.     pp_spline x2 y2-ab x2-ab y2 x2-ab2 y2-ab2
  92.     pp_spline x1+ab y2 x1 y2-ab x1+ab2 y2-ab2
  93. END
  94.  
  95. if type=3 then DO
  96.     xb=trunc(((abs(x1-x2)+1)*20)/100)
  97.     yb=trunc(((abs(y1-y2)+1)*20)/100)
  98.     ab=xb
  99.     if xb>yb then
  100.     do
  101.         ab=yb
  102.     end
  103.     ac=trunc(ab/2)
  104.     pp_STARTpoly
  105.     pp_ADDpoly x1 y1
  106.     pp_ADDpoly x1+ac y1
  107.     pp_ADDpoly x1+ac y1+ab
  108.     pp_ADDpoly x1 y1+ab
  109.     pp_ADDpoly x1 y2-ab
  110.     pp_ADDpoly x1+ac y2-ab
  111.     pp_ADDpoly x1+ac y2
  112.     pp_ADDpoly x1 y2
  113.     pp_ADDpoly x1 y2-ac
  114.     pp_ADDpoly x1+ab y2-ac
  115.     pp_ADDpoly x1+ab y2
  116.     pp_ADDpoly x2-ab y2
  117.     pp_ADDpoly x2-ab y2-ac
  118.     pp_ADDpoly x2 y2-ac
  119.     pp_ADDpoly x2 y2
  120.     pp_ADDpoly x2-ac y2
  121.     pp_ADDpoly x2-ac y2-ab
  122.     pp_ADDpoly x2 y2-ab
  123.     pp_ADDpoly x2 y1+ab
  124.     pp_ADDpoly x2-ac y1+ab
  125.     pp_ADDpoly x2-ac y1
  126.     pp_ADDpoly x2 y1
  127.     pp_ADDpoly x2 y1+ac
  128.     pp_ADDpoly x2-ab y1+ac
  129.     pp_ADDpoly x2-ab y1
  130.     pp_ADDpoly x1+ab y1
  131.     pp_ADDpoly x1+ab y1+ac
  132.     pp_ADDpoly x1 y1+ac
  133.     pp_ADDpoly x1 y1
  134.     pp_ENDpoly
  135. END
  136.  
  137. if type=4 then DO
  138.     pp_PenType 0
  139.     PP_EffectOn
  140.     j=0
  141.     do i=90 to 10 by -10
  142.         pp_Light i
  143.         pp_Box x1+j y1+j x2-j y2-j
  144.         j=j+1
  145.     end
  146.     pp_EffectOff
  147. END
  148.  
  149. if type=5 then DO
  150.     pp_PenType 0
  151.     PP_EffectOn
  152.     j=0
  153.     do i=90 to 10 by -10
  154.         pp_Shade i
  155.         pp_Box x1+j y1+j x2-j y2-j
  156.         j=j+1
  157.     end
  158.     pp_EffectOff
  159. END
  160.  
  161. EXIT
  162.  
  163. SavePrefs: PROCEDURE
  164.     
  165.     Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)
  166.  
  167.     if EXISTS(Prefname) THEN DO
  168.         ADDRESS COMMAND
  169.         'delete >nil: '||Prefname
  170.     END
  171.  
  172.     IF OPEN('pfile',PrefName,'W') THEN DO
  173.  
  174.     do i=2 to ARG()
  175.         CALL WRITELN('pfile',ARG(i))
  176.     end
  177.  
  178.     CALL CLOSE('pfile')
  179.  
  180. RETURN
  181.  
  182.