home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 3
/
PDCD_3.iso
/
utilities
/
utilss
/
semtex
/
!SemTeX
/
Source
(
.txt
)
< prev
next >
Wrap
RISC OS BBC BASIC V Source
|
1994-12-17
|
29KB
|
1,255 lines
><SemTeX$Dir>.!RunImage
This application is FreeWare. (c) 1994 Dick Alstein
Appl$="SemTeX"
#ApplVersion$="1.00 (17-Dec-94)"
error
quit%=
5mask%=(1<<0)+(1<<4)+(1<<5)+(1<<7)+(1<<11)+(1<<12)
"Wimp_Poll",mask%,blk%
reason%
reason%
blk%!0=controlwin%
4
control_openpane(blk%!28,blk%!4,blk%!8)
blk%!28=controlpane%
$
"Wimp_OpenWindow",,blk%
blk%!0=controlwin%
4
control_openpane(blk%!28,blk%!4,blk%!8)
"
3 :
closewindow(blk%!0)
?
6 :
mouseclick(blk%!0,blk%!4,blk%!8,blk%!12,blk%!16)
7 :
startsavedialogue
*
8 :
"Wimp_ProcessKey",blk%!24
9 :
menuselect(blk%)
1
17,18 :
receive(blk%!4,blk%!8,blk%!16)
1
19 :
receiveack(blk%!4,blk%!8,blk%!16)
quit%
msg_exit
"Wimp_CloseDown"
errblk% &100
msglist% 64
msglist%!0=3
msglist%!4=5
msglist%!8=&502
msglist%!12=&400C1
msglist%!16=2
msglist%!20=4
msglist%!24=10
msglist%!28=0
"Wimp_Initialise",300,&4B534154,Appl$,msglist%
osversion%,thistask%
error
scrapblk% &100
scrapblk2% &100
blk% &700
indsize%=&400
indir% indsize%
indirend%=indir%+indsize%
ptrinfo% 24
7&ApplDir$=
readvarval("SemTeX$Dir")
msg_init
scrapblk%!0=-1
:!scrapblk%!4=0 : scrapblk%!8=0
;%scrapblk%!12=68 : scrapblk%!16=68
scrapblk%!20=&7000301A
$(scrapblk%+24)="!semtex"
"Wimp_CreateIcon",,scrapblk%
baricon%
"Wimp_OpenTemplate",,ApplDir$+".Templates"
@"infowin%=
loadtemplate("Info")
A%$(blk%!(92+7*32+20))=ApplVersion$
B%savewin%=
loadtemplate("SaveBox")
C savefname%=blk%!(92+0*32+20)
D(choiceswin%=
loadtemplate("Choices")
actionstr%(4)
F#actionstr%(1)=blk%!(92+6*32+20)
G#actionstr%(2)=blk%!(92+9*32+20)
H$actionstr%(3)=blk%!(92+12*32+20)
I$actionstr%(4)=blk%!(92+15*32+20)
J(controlwin%=
loadtemplate("Control")
K-controlpane%=
loadtemplate("ControlPane")
cpane_width%=blk%!12-blk%!4
M cpane_height%=blk%!16-blk%!8
N(convertwin%=
loadtemplate("Convert")
O#convertfname%=blk%!(92+0*32+20)
P$convertsprite%=blk%!(92+1*32+20)
Q%convertremtxt1%=blk%!(92+3*32+20)
R%convertremtxt2%=blk%!(92+4*32+20)
"Wimp_CloseTemplate"
readscreenvars
nrofactions%=5
action$(nrofactions%),action%(4)
action$(1)="Ignore"
action$(2)="Open Control"
action$(3)="Edit"
action$(4)="Run LaTeX"
action$(5)="Run TeX"
initmenus
]-historysize%=
msg_lookup0("LIST_SIZE"))
historysize%<1
complain(
msg_lookup0("IVLS"))
historysize%=16
docs% 256*historysize%
doc%(historysize%)
scrapblk%!0=controlwin%
scrapblk%!4=0
"Wimp_GetIconState",,scrapblk%
g control_line_x%=scrapblk%!16
h#control_line_y%=-(scrapblk%!12)
i control_line_f%=scrapblk%!24
j control_line_v%=scrapblk%!32
"Wimp_DeleteIcon",,scrapblk%
i%=1
historysize%
doc%(i%)=docs%+256*(i%-1)
$(doc%(i%))=""
nrofdocs%=0
currentdoc%=0
control_setextent
convertfnsize%=32
convertfn$(convertfnsize%)
nrofconvertfns%=0
choices_load
choices_set
choices_read
i%,j%
i%=1
j%=1
nrofactions%
~8
$(actionstr%(i%))=action$(j%)
action%(i%)=j%
choices_set
i%=1
, $(actionstr%(i%))=action$(action%(i%))
redrawicon(choiceswin%,3+3*i%)
choices_default
action%(1)=3
action%(2)=3
action%(3)=2
action%(4)=2
choices_load
(ApplDir$+".Choices")
f%=0
choices_default
#f% :
error :
choices_default :
#f%,action%(1),action%(2),action%(3),action%(4)
choices_save
(ApplDir$+".Choices")
f%<>0
#f% :
error :
#f%,action%(1),action%(2),action%(3),action%(4)
closewindow(handle%)
scrapblk%!0=handle%
"Wimp_CloseWindow",,scrapblk%
handle%=controlwin%
scrapblk%!0=controlpane%
"Wimp_CloseWindow",,scrapblk%
complain(text$)
dummy%
dummy%=
errbox(text$,16)
control_open
dx%,dy%,offs%
scrapblk%!0=controlwin%
"Wimp_GetWindowState",,scrapblk%
(scrapblk%!16-scrapblk%!8)>control_extent%
. scrapblk%!16=scrapblk%!8+control_extent%
dx%=0
dy%=0
open window 'on top of' iconbar icon (if not already open)
((scrapblk%!32
(1<<16))=0)
"Wimp_GetPointerInfo",,ptrinfo%
3 dx%=ptrinfo%!0-(scrapblk%!12+scrapblk%!4)
dy%=96-scrapblk%!8
scrapblk%!4=scrapblk%!4+dx%
scrapblk%!8=scrapblk%!8+dy%
!scrapblk%!12=scrapblk%!12+dx%
!scrapblk%!16=scrapblk%!16+dy%
ensure that selected line is visible
nrofdocs%>0
* offs%=-(control_line_y%*currentdoc%)
scrapblk%!24 < (offs%+control_line_y%)
* scrapblk%!24=offs%+control_line_y%
scrapblk%!24-(scrapblk%!16-scrapblk%!8-cpane_height%) > offs%
C scrapblk%!24=offs%+(scrapblk%!16-scrapblk%!8-cpane_height%)
scrapblk%!28=-1
control_openpane(scrapblk%!28,scrapblk%!4,scrapblk%!8)
scrapblk%!28=controlpane%
"Wimp_OpenWindow",,scrapblk%
control_openpane(scrapblk%!28,scrapblk%!4,scrapblk%!8)
control_openpane(behind%,pxmin%,pymin%)
dx%,dy%
scrapblk2%!0=controlpane%
"Wimp_GetWindowState",,scrapblk2%
dx%=0
dy%=0
scrapblk2%!4=pxmin%+dx%
scrapblk2%!8=pymin%+dy%
)scrapblk2%!12=pxmin%+cpane_width%+dx%
*scrapblk2%!16=pymin%+cpane_height%+dy%
scrapblk2%!28=behind%
"Wimp_OpenWindow",,scrapblk2%
control_add(file$)
nrofdocs%>0
selecticon(controlwin%,currentdoc%-1,0)
(i%<nrofdocs%)
($doc%(i%)<>file$)
i%+=1
$doc%(i%)=file$
currentdoc%=i%
nrofdocs%<historysize%
!
create new icon in list
nrofdocs%+=1
i%=nrofdocs%
scrapblk%!0=controlwin%
scrapblk%!4=0
) scrapblk%!8=-(control_line_y%*i%)
$ scrapblk%!12=control_line_x%
. scrapblk%!16=-(control_line_y%*(i%-1))
$ scrapblk%!20=control_line_f%
scrapblk%!24=doc%(i%)
$ scrapblk%!28=control_line_v%
scrapblk%!32=256
'
"Wimp_CreateIcon",,scrapblk%
control_setextent
shift lines in history
i%>1
$doc%(i%)=$doc%(i%-1)
%
redrawicon(controlwin%,i%-1)
i%-=1
$doc%(1)=file$
currentdoc%=1
redrawicon(controlwin%,0)
selecticon(controlwin%,currentdoc%-1,1)
control_remove(nr%)
shift lines in history
i%=nr%
i%<nrofdocs%
$doc%(i%)=$doc%(i%+1)
redrawicon(controlwin%,i%-1)
i%+=1
(currentdoc%>nr%)
(currentdoc%=nrofdocs%)
selecticon(controlwin%,currentdoc%-1,0)
currentdoc%-=1
selecticon(controlwin%,currentdoc%-1,1)
$doc%(nrofdocs%)=""
redrawicon(controlwin%,nrofdocs%-1)
scrapblk%!0=controlwin%
scrapblk%!4=nrofdocs%-1
"Wimp_DeleteIcon",,scrapblk%
nrofdocs%-=1
control_setextent
control_setextent
l%=nrofdocs%
l%<5
l%=5
scrapblk2%!0=0
+4scrapblk2%!4=-(control_line_y%*l%)-cpane_height%
, scrapblk2%!8=control_line_x%
scrapblk2%!12=0
"Wimp_SetExtent",controlwin%,scrapblk2%
/!control_extent%=-scrapblk2%!4
check if visible area is not beyond new work area
scrapblk%!0=controlwin%
"Wimp_GetWindowState",,scrapblk%
(scrapblk%!32
(1<<16))
(scrapblk%!16-scrapblk%!8)>control_extent%
50 scrapblk%!8=scrapblk%!16-control_extent%
6'
"Wimp_OpenWindow",,scrapblk%
7?
control_openpane(scrapblk%!28,scrapblk%!4,scrapblk%!8)
convert(todir$)
opts$,name$,leaf$,ext$,s%,cmd$
opts$=
msg_lookup0("COPT")
converttype%
A*
convert "FILE/EXT" to "file.ext"
(nrofconvertfns%>0)
C+ name$=convertfn$(nrofconvertfns%)
D) leaf$=
leafname(
locase(name$))
s%=
leaf$,"/")
ext$=
leaf$,s%+1)
leaf$=
leaf$,s%-1)
HB
"OS_File",8,todir$+"."+leaf$ :
make sure dir exists
I cmd$="Copy "+name$+" "
J3 cmd$+=todir$+"."+leaf$+"."+ext$+" "+opts$
K"
"Wimp_StartTask",cmd$
nrofconvertfns%-=1
M
O+
convert "file.ext" to "FILE/EXT"
(nrofconvertfns%>0)
Q+ name$=convertfn$(nrofconvertfns%)
ext$=
leafname(name$)
S,
truncate to 8 chars (=DOS style)
T/ leaf$=
leafname(
dirname(name$)),8)
U cmd$="Copy "+name$+" "
V3 cmd$+=todir$+"."+leaf$+"/"+ext$+" "+opts$
W"
"Wimp_StartTask",cmd$
nrofconvertfns%-=1
Y
convert_add(dir$,leaf$)
o%,r%
nrofconvertfns%=convertfnsize%
complain(
msg_lookup1("TMFC",
(convertfnsize%)))
converttype%
nrofconvertfns%+=1
e4 convertfn$(nrofconvertfns%)=dir$+"."+leaf$
f' $(convertsprite%)="directory"
leaf$="*"
i(
add all files in directory
o%=0
lD
"OS_GBPB",10,dir$,scrapblk%,1,o%,256,"*"
,,,r%,o%
m4
(r%>0)
((scrapblk%!16
1) <> 0)
n" nrofconvertfns%+=1
oG convertfn$(nrofconvertfns%)=dir$+"."+
str(scrapblk%+20)
q8
(o%=-1)
(nrofconvertfns%=convertfnsize%)
o%<>-1
s?
complain(
msg_lookup1("TMFC",
(convertfnsize%)))
nrofconvertfns%+=1
w