home *** CD-ROM | disk | FTP | other *** search
/ Dream 55 / Amiga_Dream_55.iso / RISCOS / APPS / SCI / MATH / SUMS.ZIP / !Sums / WWv2Data < prev   
Text File  |  1998-02-25  |  10KB  |  461 lines

  1. # WimpWorks Information File
  2. # WimpWorks ⌐ Jaffa Software 1997. All rights reserved.
  3.  
  4. DEF TASKdetails
  5.     Name        Sums
  6.     Purpose        Creating worksheets
  7.     Author        ⌐John Pettigrew
  8.     Licence        FreeWare
  9.     Version        1.30
  10.     Compress    True
  11.     Memory        0K
  12.     IconbarSide    Right
  13.     IconbarPriority    &00000000
  14.     IconbarSprite    !sums
  15.     IconbarText    
  16. ENDTASK
  17.  
  18. DEF WEMinclude
  19.     DrawWEM
  20. ENDWEM
  21.  
  22. DEF MENUiconMenu%
  23.     Sums
  24.     Info
  25.         LS(infoWindow%)
  26.         
  27.     Addition
  28.         
  29.         PROCsum(1)
  30.     Subtraction
  31.         
  32.         PROCsum(2)
  33.     Multiplication
  34.         
  35.         PROCsum(3)
  36.     Division
  37.         L
  38.         PROCsum(4)
  39.     Roots
  40.         
  41.         PROCsum(5)
  42.     Fractions
  43.         L
  44.         PROCsum(6)
  45.     Quit
  46.         
  47.         CLOSEDOWN
  48. ENDMENU
  49.  
  50. DEF MENUfontmenu%
  51.     Fonts
  52.     Homerton
  53.         S(homerton%)
  54.         
  55.     Trinity
  56.         S(trinity%)
  57.         
  58. ENDMENU
  59.  
  60. DEF MENUhomerton%
  61.     Fonts
  62.     Medium
  63.         
  64.         font$="Homerton.Medium"
  65.     Italic
  66.         
  67.         font$="Homerton.Medium.Oblique"
  68.     Bold
  69.         
  70.         font$="Homerton.Bold"
  71. ENDMENU
  72.  
  73. DEF MENUtrinity%
  74.     Fonts
  75.     Medium
  76.         
  77.         font$="Trinity.Medium"
  78.     Italic
  79.         
  80.         font$="Trinity.Medium.Italic"
  81.     Bold
  82.         
  83.         font$="Trinity.Bold"
  84. ENDMENU
  85.  
  86. DEF MENUsizemenu%
  87.     Size
  88.     8 pt
  89.         
  90.         fontsize%=8
  91.     10 pt
  92.         
  93.         fontsize%=10
  94.     12 pt
  95.         
  96.         fontsize%=12
  97.     14 pt
  98.         
  99.         fontsize%=14
  100.     18 pt
  101.         
  102.         fontsize%=18
  103.     24 pt
  104.         
  105.         fontsize%=24
  106. ENDMENU
  107.  
  108. DEF SUBR_PROCstart
  109.     Event    0
  110.     Every    -1
  111. DEF PROCstart
  112.   SETSAVE("Sum","file_aff")
  113.   font$="Homerton.Medium"
  114.   fontsize%=12
  115.   previewfile%=0
  116.   plus%=FALSE:minus%=FALSE
  117.   mult%=FALSE:div%=FALSE
  118.   root%=FALSE:frac%=FALSE
  119. ENDPROC
  120. ENDSUBR
  121.  
  122. DEF SUBR_PROCiconbar_click
  123.     Event    3
  124.     Every    -1
  125. DEF PROCiconbar_click(button%)
  126.  IF button%=1 OR button%=4 THEN PROCsum(1)
  127. ENDPROC
  128. ENDSUBR
  129.  
  130. DEF SUBR_PROCwindow_click
  131.     Event    12
  132.     Every    -1
  133. DEF PROCwindow_click(window%, icon%, button%)
  134.  LOCAL x%,y%,wid%,hig%
  135.  IF LEFT$(font$,1)="H" THEN offset%=360 ELSE offset%=320
  136.   CASE window% OF
  137.   WHEN sums:
  138.    IF icon%=4 AND button%<>2 THEN
  139.     CASE READICON(sums,9) OF
  140.      WHEN "plus": plus%=TRUE
  141.      WHEN "minus": minus%=TRUE
  142.      WHEN "mult": mult%=TRUE
  143.     ENDCASE
  144.     OPENSAVE
  145.    ENDIF
  146.    IF icon%=10 AND button%<>2 THEN
  147.     PROCbuildsum
  148.     CASE READICON(sums,9) OF
  149.      WHEN "plus": PROCplus
  150.      WHEN "minus": PROCminus
  151.      WHEN "mult": PROCmult
  152.     ENDCASE
  153.     CLWIN(preview)
  154.     IF previewfile%<>0 THEN RELEASE(previewfile%)
  155.     previewfile%=DRAW_FILE
  156.     CENTREWIN(preview)
  157.     x%=400+(800*256-DRAW_WIDTH)DIV512
  158.     y%=-((300*256-DRAW_HEIGHT)DIV512)
  159.     DRAW(preview,x%,y%,100,100,previewfile%,DRAW_SIZE)
  160.    ENDIF
  161.   WHEN divide:
  162.    IF icon%=4 AND button%<>2 THEN 
  163.     OPENSAVE
  164.     div%=TRUE
  165.    ENDIF
  166.    IF icon%=10 AND button%<>2 THEN 
  167.     PROCdivide
  168.     CLWIN(preview)
  169.     IF previewfile%<>0 THEN RELEASE(previewfile%)
  170.     previewfile%=DRAW_FILE
  171.     CENTREWIN(preview)
  172.     x%=400+(800*256-DRAW_WIDTH)DIV512
  173.     y%=-((300*256-DRAW_HEIGHT)DIV512)
  174.     DRAW(preview,x%,y%,100,100,previewfile%,DRAW_SIZE)
  175.    ENDIF
  176.   WHEN root:
  177.    IF icon%=4 AND button%<>2 THEN 
  178.     OPENSAVE
  179.     root%=TRUE
  180.    ENDIF
  181.    IF icon%=3 AND button%<>2 THEN 
  182.     PROCroots
  183.     CLWIN(preview)
  184.     IF previewfile%<>0 THEN RELEASE(previewfile%)
  185.     previewfile%=DRAW_FILE
  186.     CENTREWIN(preview)
  187.     x%=400+(800*256-DRAW_WIDTH)DIV512
  188.     y%=-((300*256-DRAW_HEIGHT)DIV512)
  189.     DRAW(preview,x%,y%,100,100,previewfile%,DRAW_SIZE)
  190.    ENDIF
  191.   WHEN fractions:
  192.    IF icon%=4 AND button%<>2 THEN 
  193.     OPENSAVE
  194.     frac%=TRUE
  195.    ENDIF
  196.    IF icon%=9 AND button%<>2 THEN 
  197.     PROCfractions
  198.     CLWIN(preview)
  199.     IF previewfile%<>0 THEN RELEASE(previewfile%)
  200.     previewfile%=DRAW_FILE
  201.     CENTREWIN(preview)
  202.     x%=400+(800*256-DRAW_WIDTH)DIV512
  203.     y%=-((300*256-DRAW_HEIGHT)DIV512)
  204.     DRAW(preview,x%,y%,100,100,previewfile%,DRAW_SIZE)
  205.    ENDIF
  206.   ENDCASE
  207.   IF icon%=7 THEN OPENPOPUP(fontmenu%,window%,7)
  208.   IF icon%=8 THEN OPENPOPUP(sizemenu%,window%,8)
  209. ENDPROC
  210. ENDSUBR
  211.  
  212. DEF SUBR_FNkeypress
  213.     Event    7
  214.     Every    -1
  215. DEF FNkeypress(window%, icon%, key%)
  216.   IF key%=&00D THEN PROCwindow_click(window%,4,4)
  217. =FALSE
  218. ENDSUBR
  219.  
  220. DEF SUBR_FNsave
  221.     Event    8
  222.     Every    -1
  223. DEF FNsave(file$)
  224.  IF plus%=TRUE THEN
  225.   PROCbuildsum
  226.   PROCplus
  227.  ENDIF
  228.  IF minus%=TRUE THEN
  229.   PROCbuildsum
  230.   PROCminus
  231.  ENDIF
  232.  IF mult%=TRUE THEN
  233.   PROCbuildsum
  234.   PROCmult
  235.  ENDIF
  236.  IF div%=TRUE THEN PROCdivide
  237.  IF root%=TRUE THEN PROCroots
  238.  IF frac%=TRUE THEN PROCfractions
  239.  DRAW_SAVE(file$)
  240.  DRAW_EXIT
  241. =TRUE
  242. ENDSUBR
  243.  
  244. DEF SUBR_PROCbuildsum
  245.     Event    -1
  246.     Every    -1
  247. DEF PROCbuildsum
  248.   LOCAL font%,top$,bot$,mid$,toplen%,midlen%,botlen%,len%
  249.   top$=READICON(sums,1)
  250.   mid$=READICON(sums,2)
  251.   bot$=READICON(sums,3)
  252.   toplen%=LEN(top$)
  253.   midlen%=LEN(mid$)
  254.   botlen%=LEN(bot$)
  255.   len%=toplen%
  256.   IF midlen%>len% THEN len%=midlen%
  257.   IF botlen%>len% THEN len%=botlen%
  258.   DRAW_INIT(1)
  259.   DRAW_FONT(font$,font%)
  260.   DRAW_TEXT(bot$,font%,fontsize%,black,white,(fontsize%+1)*640+(len%-botlen%)*fontsize%*offset%,0)
  261.   DRAW_TEXT(mid$,font%,fontsize%,black,white,(fontsize%+1)*640+(len%-midlen%)*fontsize%*offset%,(fontsize%+1)*640)
  262.   DRAW_TEXT(top$,font%,fontsize%,black,white,(fontsize%+1)*640+(len%-toplen%)*fontsize%*offset%,(fontsize%+1)*1280)
  263.   DRAW_STARTPATH(-1,black,160)
  264.   DRAW_MOVE((fontsize%+1)*640,(fontsize%-0.7)*640)
  265.   DRAW_LINE((fontsize%+1)*640+len%*fontsize%*offset%,(fontsize%-0.7)*640)
  266.   DRAW_ENDPATH
  267. ENDPROC
  268. ENDSUBR
  269.  
  270. DEF SUBR_PROCplus
  271.     Event    -1
  272.     Every    -1
  273. DEF PROCplus
  274.   DRAW_STARTPATH(-1,black,320)
  275.   DRAW_MOVE(fontsize%*320,(fontsize%+1)*640)
  276.   DRAW_LINE(fontsize%*320,(fontsize%+1)*960)
  277.   DRAW_MOVE(fontsize%*160,(fontsize%+1)*800)
  278.   DRAW_LINE(fontsize%*480,(fontsize%+1)*800)
  279.   DRAW_ENDPATH
  280.   plus%=FALSE
  281. ENDPROC
  282. ENDSUBR
  283.  
  284. DEF SUBR_PROCminus
  285.     Event    -1
  286.     Every    -1
  287. DEF PROCminus
  288.   DRAW_STARTPATH(-1,black,320)
  289.   DRAW_MOVE(fontsize%*160,(fontsize%+1)*800)
  290.   DRAW_LINE(fontsize%*480,(fontsize%+1)*800)
  291.   DRAW_ENDPATH
  292.   minus%=FALSE
  293. ENDPROC
  294. ENDSUBR
  295.  
  296. DEF SUBR_PROCmult
  297.     Event    -1
  298.     Every    -1
  299. DEF PROCmult
  300.   DRAW_STARTPATH(-1,black,320)
  301.   DRAW_MOVE(fontsize%*160,(fontsize%+1)*640)
  302.   DRAW_LINE(fontsize%*480,(fontsize%+1)*960)
  303.   DRAW_MOVE(fontsize%*160,(fontsize%+1)*960)
  304.   DRAW_LINE(fontsize%*480,(fontsize%+1)*640)
  305.   DRAW_ENDPATH
  306.   mult%=FALSE
  307. ENDPROC
  308. ENDSUBR
  309.  
  310. DEF SUBR_PROCdivide
  311.     Event    -1
  312.     Every    -1
  313. DEF PROCdivide
  314.   LOCAL left$,top$,bot$,leftlen%,toplen%,botlen%,len%,font%
  315.   left$=READICON(divide,1)
  316.   top$=READICON(divide,2)
  317.   bot$=READICON(divide,3)
  318.   leftlen%=LEN(left$)
  319.   toplen%=LEN(top$)
  320.   botlen%=LEN(bot$)
  321.   len%=toplen%
  322.   IF botlen%>len% THEN len%=botlen%
  323.   DRAW_INIT(1)
  324.   DRAW_FONT(font$,font%)
  325.   DRAW_TEXT(left$,font%,fontsize%,black,white,0,0)
  326.   DRAW_TEXT(top$,font%,fontsize%,black,white,(leftlen%+1+(len%-toplen%))*fontsize%*offset%,(fontsize%+1)*640)
  327.   DRAW_TEXT(bot$,font%,fontsize%,black,white,(leftlen%+1+(len%-botlen%))*fontsize%*offset%,0)
  328.   DRAW_STARTPATH(-1,black,160)
  329.   DRAW_MOVE((leftlen%+0.5)*fontsize%*offset%,0)
  330.   DRAW_CURVE((leftlen%+0.5)*fontsize%*offset%,(fontsize%-0.7)*640,(leftlen%+0.8)*fontsize%*offset%,(fontsize%-0.7)*213,(leftlen%+0.8)*fontsize%*offset%,(fontsize%-0.7)*426)
  331.   DRAW_LINE((leftlen%+1+len%)*fontsize%*offset%,(fontsize%-0.7)*640)
  332.   DRAW_ENDPATH
  333.   div%=FALSE
  334. ENDPROC
  335. ENDSUBR
  336.  
  337. DEF SUBR_PROCroots
  338.     Event    -1
  339.     Every    -1
  340. DEF PROCroots
  341.   LOCAL font%,mid$,bot$,smallsize%,midlen%,botlen%
  342.   smallsize%=fontsize%DIV2
  343.   mid$=READICON(root,1)
  344.   IF mid$="2" THEN mid$=""
  345.   midlen%=LEN(mid$)
  346.   bot$=READICON(root,2)
  347.   botlen%=LEN(bot$)
  348.   DRAW_INIT(1)
  349.   DRAW_FONT(font$,font%)
  350.   DRAW_TEXT(mid$,font%,smallsize%,black,white,0,fontsize%*320)
  351.   DRAW_TEXT(bot$,font%,fontsize%,black,white,(midlen%+1)*smallsize%*offset%,640)
  352.   DRAW_STARTPATH(-1,black,160)
  353.   DRAW_MOVE(midlen%*smallsize%*offset%,fontsize%*160)
  354.   DRAW_LINE((midlen%+0.5)*smallsize%*offset%,0)
  355.   DRAW_LINE((midlen%+1)*smallsize%*offset%,fontsize%*640)
  356.   DRAW_LINE((midlen%+1)*offset%*smallsize%+botlen%*offset%*fontsize%,fontsize%*640)
  357.   DRAW_ENDPATH
  358.   root%=FALSE
  359. ENDPROC
  360. ENDSUBR
  361.  
  362. DEF SUBR_PROCfractions
  363.     Event    -1
  364.     Every    -1
  365. DEF PROCfractions
  366.   LOCAL big$,top$,bot$,biglen%,toplen%,botlen%,smalllen%,topoff%,botoff%,font%,smallsize%
  367.   smallsize%=fontsize%DIV2
  368.   big$=READICON(fractions,1)
  369.   top$=READICON(fractions,2)
  370.   bot$=READICON(fractions,3)
  371.   biglen%=LEN(big$)
  372.   toplen%=LEN(top$)
  373.   botlen%=LEN(bot$)
  374.   smalllen%=botlen%
  375.   IF toplen%>botlen% THEN smalllen%=toplen%
  376.   topoff%=(biglen%*fontsize%*offset%)+((smalllen%-toplen%)*smallsize%*offset%)
  377.   botoff%=(biglen%*fontsize%*offset%)+((smalllen%-botlen%)*smallsize%*offset%)
  378.   DRAW_INIT(1)
  379.   DRAW_FONT(font$,font%)
  380.   DRAW_TEXT(big$,font%,fontsize%,black,white,0,640)
  381.   DRAW_TEXT(top$,font%,smallsize%,black,white,topoff%,smallsize%*640)
  382.   DRAW_TEXT(bot$,font%,smallsize%,black,white,botoff%,0)
  383.   DRAW_STARTPATH(-1,black,160)
  384.   DRAW_MOVE(biglen%*fontsize%*offset%,(smallsize%-1.5)*640)
  385.   DRAW_LINE(biglen%*fontsize%*offset%+smalllen%*smallsize%*offset%,(smallsize%-1.5)*640)
  386.   DRAW_ENDPATH
  387.   frac%=FALSE
  388. ENDPROC
  389. ENDSUBR
  390.  
  391. DEF SUBR_PROCsum
  392.     Event    -1
  393.     Every    -1
  394. DEF PROCsum(i%)
  395.   CASE i% OF
  396.   WHEN 1:
  397.    CLOSEWINDOW(fractions)
  398.    CLOSEWINDOW(root)
  399.    CLOSEWINDOW(divide)
  400.    SETICON(sums,9,"plus")
  401.    SETTITLE(sums,"Addition")
  402.    CENTREWIN(sums)
  403.    SETCARET(sums,1,-1)
  404.   WHEN 2:
  405.    CLOSEWINDOW(fractions)
  406.    CLOSEWINDOW(root)
  407.    CLOSEWINDOW(divide)
  408.    SETICON(sums,9,"minus")
  409.    SETTITLE(sums,"Subtraction")
  410.    CENTREWIN(sums)
  411.    SETCARET(sums,1,-1)
  412.   WHEN 3:
  413.    CLOSEWINDOW(fractions)
  414.    CLOSEWINDOW(root)
  415.    CLOSEWINDOW(divide)
  416.    SETICON(sums,9,"mult")
  417.    SETTITLE(sums,"Multiplication")
  418.    CENTREWIN(sums)
  419.    SETCARET(sums,1,-1)
  420.   WHEN 4:
  421.    CLOSEWINDOW(fractions)
  422.    CLOSEWINDOW(root)
  423.    CLOSEWINDOW(sums)
  424.    CENTREWIN(divide)
  425.    SETCARET(divide,1,-1)
  426.   WHEN 5:
  427.    CLOSEWINDOW(fractions)
  428.    CLOSEWINDOW(sums)
  429.    CLOSEWINDOW(divide)
  430.    CENTREWIN(root)
  431.    SETCARET(root,1,-1)
  432.   WHEN 6:
  433.    CLOSEWINDOW(sums)
  434.    CLOSEWINDOW(root)
  435.    CLOSEWINDOW(divide)
  436.    CENTREWIN(fractions)
  437.    SETCARET(fractions,1,-1)
  438.   ENDCASE
  439. ENDPROC
  440. ENDSUBR
  441.  
  442. DEF SUBR_PROCsetmenus
  443.     Event    9
  444.     Every    -1
  445. DEF PROCsetmenus(menu%, item%, text$)
  446.   IF menu%=trinity% OR menu%=homerton% THEN
  447.    SETICON(sums,5,font$)
  448.    SETICON(fractions,5,font$)
  449.    SETICON(root,5,font$)
  450.    SETICON(divide,5,font$)
  451.   ENDIF
  452.   IF menu%=sizemenu% THEN
  453.    SETICON(sums,6,STR$(fontsize%))
  454.    SETICON(fractions,6,STR$(fontsize%))
  455.    SETICON(root,6,STR$(fontsize%))
  456.    SETICON(divide,6,STR$(fontsize%))
  457.   ENDIF
  458. ENDPROC
  459. ENDSUBR
  460.  
  461.