home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 55
/
Amiga_Dream_55.iso
/
RISCOS
/
APPS
/
SCI
/
MATH
/
SUMS.ZIP
/
!Sums
/
WWv2Data
< prev
Wrap
Text File
|
1998-02-25
|
10KB
|
461 lines
# WimpWorks Information File
# WimpWorks ⌐ Jaffa Software 1997. All rights reserved.
DEF TASKdetails
Name Sums
Purpose Creating worksheets
Author ⌐John Pettigrew
Licence FreeWare
Version 1.30
Compress True
Memory 0K
IconbarSide Right
IconbarPriority &00000000
IconbarSprite !sums
IconbarText
ENDTASK
DEF WEMinclude
DrawWEM
ENDWEM
DEF MENUiconMenu%
Sums
Info
LS(infoWindow%)
Addition
PROCsum(1)
Subtraction
PROCsum(2)
Multiplication
PROCsum(3)
Division
L
PROCsum(4)
Roots
PROCsum(5)
Fractions
L
PROCsum(6)
Quit
CLOSEDOWN
ENDMENU
DEF MENUfontmenu%
Fonts
Homerton
S(homerton%)
Trinity
S(trinity%)
ENDMENU
DEF MENUhomerton%
Fonts
Medium
font$="Homerton.Medium"
Italic
font$="Homerton.Medium.Oblique"
Bold
font$="Homerton.Bold"
ENDMENU
DEF MENUtrinity%
Fonts
Medium
font$="Trinity.Medium"
Italic
font$="Trinity.Medium.Italic"
Bold
font$="Trinity.Bold"
ENDMENU
DEF MENUsizemenu%
Size
8 pt
fontsize%=8
10 pt
fontsize%=10
12 pt
fontsize%=12
14 pt
fontsize%=14
18 pt
fontsize%=18
24 pt
fontsize%=24
ENDMENU
DEF SUBR_PROCstart
Event 0
Every -1
DEF PROCstart
SETSAVE("Sum","file_aff")
font$="Homerton.Medium"
fontsize%=12
previewfile%=0
plus%=FALSE:minus%=FALSE
mult%=FALSE:div%=FALSE
root%=FALSE:frac%=FALSE
ENDPROC
ENDSUBR
DEF SUBR_PROCiconbar_click
Event 3
Every -1
DEF PROCiconbar_click(button%)
IF button%=1 OR button%=4 THEN PROCsum(1)
ENDPROC
ENDSUBR
DEF SUBR_PROCwindow_click
Event 12
Every -1
DEF PROCwindow_click(window%, icon%, button%)
LOCAL x%,y%,wid%,hig%
IF LEFT$(font$,1)="H" THEN offset%=360 ELSE offset%=320
CASE window% OF
WHEN sums:
IF icon%=4 AND button%<>2 THEN
CASE READICON(sums,9) OF
WHEN "plus": plus%=TRUE
WHEN "minus": minus%=TRUE
WHEN "mult": mult%=TRUE
ENDCASE
OPENSAVE
ENDIF
IF icon%=10 AND button%<>2 THEN
PROCbuildsum
CASE READICON(sums,9) OF
WHEN "plus": PROCplus
WHEN "minus": PROCminus
WHEN "mult": PROCmult
ENDCASE
CLWIN(preview)
IF previewfile%<>0 THEN RELEASE(previewfile%)
previewfile%=DRAW_FILE
CENTREWIN(preview)
x%=400+(800*256-DRAW_WIDTH)DIV512
y%=-((300*256-DRAW_HEIGHT)DIV512)
DRAW(preview,x%,y%,100,100,previewfile%,DRAW_SIZE)
ENDIF
WHEN divide:
IF icon%=4 AND button%<>2 THEN
OPENSAVE
div%=TRUE
ENDIF
IF icon%=10 AND button%<>2 THEN
PROCdivide
CLWIN(preview)
IF previewfile%<>0 THEN RELEASE(previewfile%)
previewfile%=DRAW_FILE
CENTREWIN(preview)
x%=400+(800*256-DRAW_WIDTH)DIV512
y%=-((300*256-DRAW_HEIGHT)DIV512)
DRAW(preview,x%,y%,100,100,previewfile%,DRAW_SIZE)
ENDIF
WHEN root:
IF icon%=4 AND button%<>2 THEN
OPENSAVE
root%=TRUE
ENDIF
IF icon%=3 AND button%<>2 THEN
PROCroots
CLWIN(preview)
IF previewfile%<>0 THEN RELEASE(previewfile%)
previewfile%=DRAW_FILE
CENTREWIN(preview)
x%=400+(800*256-DRAW_WIDTH)DIV512
y%=-((300*256-DRAW_HEIGHT)DIV512)
DRAW(preview,x%,y%,100,100,previewfile%,DRAW_SIZE)
ENDIF
WHEN fractions:
IF icon%=4 AND button%<>2 THEN
OPENSAVE
frac%=TRUE
ENDIF
IF icon%=9 AND button%<>2 THEN
PROCfractions
CLWIN(preview)
IF previewfile%<>0 THEN RELEASE(previewfile%)
previewfile%=DRAW_FILE
CENTREWIN(preview)
x%=400+(800*256-DRAW_WIDTH)DIV512
y%=-((300*256-DRAW_HEIGHT)DIV512)
DRAW(preview,x%,y%,100,100,previewfile%,DRAW_SIZE)
ENDIF
ENDCASE
IF icon%=7 THEN OPENPOPUP(fontmenu%,window%,7)
IF icon%=8 THEN OPENPOPUP(sizemenu%,window%,8)
ENDPROC
ENDSUBR
DEF SUBR_FNkeypress
Event 7
Every -1
DEF FNkeypress(window%, icon%, key%)
IF key%=&00D THEN PROCwindow_click(window%,4,4)
=FALSE
ENDSUBR
DEF SUBR_FNsave
Event 8
Every -1
DEF FNsave(file$)
IF plus%=TRUE THEN
PROCbuildsum
PROCplus
ENDIF
IF minus%=TRUE THEN
PROCbuildsum
PROCminus
ENDIF
IF mult%=TRUE THEN
PROCbuildsum
PROCmult
ENDIF
IF div%=TRUE THEN PROCdivide
IF root%=TRUE THEN PROCroots
IF frac%=TRUE THEN PROCfractions
DRAW_SAVE(file$)
DRAW_EXIT
=TRUE
ENDSUBR
DEF SUBR_PROCbuildsum
Event -1
Every -1
DEF PROCbuildsum
LOCAL font%,top$,bot$,mid$,toplen%,midlen%,botlen%,len%
top$=READICON(sums,1)
mid$=READICON(sums,2)
bot$=READICON(sums,3)
toplen%=LEN(top$)
midlen%=LEN(mid$)
botlen%=LEN(bot$)
len%=toplen%
IF midlen%>len% THEN len%=midlen%
IF botlen%>len% THEN len%=botlen%
DRAW_INIT(1)
DRAW_FONT(font$,font%)
DRAW_TEXT(bot$,font%,fontsize%,black,white,(fontsize%+1)*640+(len%-botlen%)*fontsize%*offset%,0)
DRAW_TEXT(mid$,font%,fontsize%,black,white,(fontsize%+1)*640+(len%-midlen%)*fontsize%*offset%,(fontsize%+1)*640)
DRAW_TEXT(top$,font%,fontsize%,black,white,(fontsize%+1)*640+(len%-toplen%)*fontsize%*offset%,(fontsize%+1)*1280)
DRAW_STARTPATH(-1,black,160)
DRAW_MOVE((fontsize%+1)*640,(fontsize%-0.7)*640)
DRAW_LINE((fontsize%+1)*640+len%*fontsize%*offset%,(fontsize%-0.7)*640)
DRAW_ENDPATH
ENDPROC
ENDSUBR
DEF SUBR_PROCplus
Event -1
Every -1
DEF PROCplus
DRAW_STARTPATH(-1,black,320)
DRAW_MOVE(fontsize%*320,(fontsize%+1)*640)
DRAW_LINE(fontsize%*320,(fontsize%+1)*960)
DRAW_MOVE(fontsize%*160,(fontsize%+1)*800)
DRAW_LINE(fontsize%*480,(fontsize%+1)*800)
DRAW_ENDPATH
plus%=FALSE
ENDPROC
ENDSUBR
DEF SUBR_PROCminus
Event -1
Every -1
DEF PROCminus
DRAW_STARTPATH(-1,black,320)
DRAW_MOVE(fontsize%*160,(fontsize%+1)*800)
DRAW_LINE(fontsize%*480,(fontsize%+1)*800)
DRAW_ENDPATH
minus%=FALSE
ENDPROC
ENDSUBR
DEF SUBR_PROCmult
Event -1
Every -1
DEF PROCmult
DRAW_STARTPATH(-1,black,320)
DRAW_MOVE(fontsize%*160,(fontsize%+1)*640)
DRAW_LINE(fontsize%*480,(fontsize%+1)*960)
DRAW_MOVE(fontsize%*160,(fontsize%+1)*960)
DRAW_LINE(fontsize%*480,(fontsize%+1)*640)
DRAW_ENDPATH
mult%=FALSE
ENDPROC
ENDSUBR
DEF SUBR_PROCdivide
Event -1
Every -1
DEF PROCdivide
LOCAL left$,top$,bot$,leftlen%,toplen%,botlen%,len%,font%
left$=READICON(divide,1)
top$=READICON(divide,2)
bot$=READICON(divide,3)
leftlen%=LEN(left$)
toplen%=LEN(top$)
botlen%=LEN(bot$)
len%=toplen%
IF botlen%>len% THEN len%=botlen%
DRAW_INIT(1)
DRAW_FONT(font$,font%)
DRAW_TEXT(left$,font%,fontsize%,black,white,0,0)
DRAW_TEXT(top$,font%,fontsize%,black,white,(leftlen%+1+(len%-toplen%))*fontsize%*offset%,(fontsize%+1)*640)
DRAW_TEXT(bot$,font%,fontsize%,black,white,(leftlen%+1+(len%-botlen%))*fontsize%*offset%,0)
DRAW_STARTPATH(-1,black,160)
DRAW_MOVE((leftlen%+0.5)*fontsize%*offset%,0)
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)
DRAW_LINE((leftlen%+1+len%)*fontsize%*offset%,(fontsize%-0.7)*640)
DRAW_ENDPATH
div%=FALSE
ENDPROC
ENDSUBR
DEF SUBR_PROCroots
Event -1
Every -1
DEF PROCroots
LOCAL font%,mid$,bot$,smallsize%,midlen%,botlen%
smallsize%=fontsize%DIV2
mid$=READICON(root,1)
IF mid$="2" THEN mid$=""
midlen%=LEN(mid$)
bot$=READICON(root,2)
botlen%=LEN(bot$)
DRAW_INIT(1)
DRAW_FONT(font$,font%)
DRAW_TEXT(mid$,font%,smallsize%,black,white,0,fontsize%*320)
DRAW_TEXT(bot$,font%,fontsize%,black,white,(midlen%+1)*smallsize%*offset%,640)
DRAW_STARTPATH(-1,black,160)
DRAW_MOVE(midlen%*smallsize%*offset%,fontsize%*160)
DRAW_LINE((midlen%+0.5)*smallsize%*offset%,0)
DRAW_LINE((midlen%+1)*smallsize%*offset%,fontsize%*640)
DRAW_LINE((midlen%+1)*offset%*smallsize%+botlen%*offset%*fontsize%,fontsize%*640)
DRAW_ENDPATH
root%=FALSE
ENDPROC
ENDSUBR
DEF SUBR_PROCfractions
Event -1
Every -1
DEF PROCfractions
LOCAL big$,top$,bot$,biglen%,toplen%,botlen%,smalllen%,topoff%,botoff%,font%,smallsize%
smallsize%=fontsize%DIV2
big$=READICON(fractions,1)
top$=READICON(fractions,2)
bot$=READICON(fractions,3)
biglen%=LEN(big$)
toplen%=LEN(top$)
botlen%=LEN(bot$)
smalllen%=botlen%
IF toplen%>botlen% THEN smalllen%=toplen%
topoff%=(biglen%*fontsize%*offset%)+((smalllen%-toplen%)*smallsize%*offset%)
botoff%=(biglen%*fontsize%*offset%)+((smalllen%-botlen%)*smallsize%*offset%)
DRAW_INIT(1)
DRAW_FONT(font$,font%)
DRAW_TEXT(big$,font%,fontsize%,black,white,0,640)
DRAW_TEXT(top$,font%,smallsize%,black,white,topoff%,smallsize%*640)
DRAW_TEXT(bot$,font%,smallsize%,black,white,botoff%,0)
DRAW_STARTPATH(-1,black,160)
DRAW_MOVE(biglen%*fontsize%*offset%,(smallsize%-1.5)*640)
DRAW_LINE(biglen%*fontsize%*offset%+smalllen%*smallsize%*offset%,(smallsize%-1.5)*640)
DRAW_ENDPATH
frac%=FALSE
ENDPROC
ENDSUBR
DEF SUBR_PROCsum
Event -1
Every -1
DEF PROCsum(i%)
CASE i% OF
WHEN 1:
CLOSEWINDOW(fractions)
CLOSEWINDOW(root)
CLOSEWINDOW(divide)
SETICON(sums,9,"plus")
SETTITLE(sums,"Addition")
CENTREWIN(sums)
SETCARET(sums,1,-1)
WHEN 2:
CLOSEWINDOW(fractions)
CLOSEWINDOW(root)
CLOSEWINDOW(divide)
SETICON(sums,9,"minus")
SETTITLE(sums,"Subtraction")
CENTREWIN(sums)
SETCARET(sums,1,-1)
WHEN 3:
CLOSEWINDOW(fractions)
CLOSEWINDOW(root)
CLOSEWINDOW(divide)
SETICON(sums,9,"mult")
SETTITLE(sums,"Multiplication")
CENTREWIN(sums)
SETCARET(sums,1,-1)
WHEN 4:
CLOSEWINDOW(fractions)
CLOSEWINDOW(root)
CLOSEWINDOW(sums)
CENTREWIN(divide)
SETCARET(divide,1,-1)
WHEN 5:
CLOSEWINDOW(fractions)
CLOSEWINDOW(sums)
CLOSEWINDOW(divide)
CENTREWIN(root)
SETCARET(root,1,-1)
WHEN 6:
CLOSEWINDOW(sums)
CLOSEWINDOW(root)
CLOSEWINDOW(divide)
CENTREWIN(fractions)
SETCARET(fractions,1,-1)
ENDCASE
ENDPROC
ENDSUBR
DEF SUBR_PROCsetmenus
Event 9
Every -1
DEF PROCsetmenus(menu%, item%, text$)
IF menu%=trinity% OR menu%=homerton% THEN
SETICON(sums,5,font$)
SETICON(fractions,5,font$)
SETICON(root,5,font$)
SETICON(divide,5,font$)
ENDIF
IF menu%=sizemenu% THEN
SETICON(sums,6,STR$(fontsize%))
SETICON(fractions,6,STR$(fontsize%))
SETICON(root,6,STR$(fontsize%))
SETICON(divide,6,STR$(fontsize%))
ENDIF
ENDPROC
ENDSUBR