home *** CD-ROM | disk | FTP | other *** search
- /* QuickLaunch v0.0 by $#%!
- Needs textfile named "s:quicklaunch.config" to know what to run.
- format: odd lines = names, even = path of utils. be sure
- to add exactly one last <return> */
-
- DEF window:LONG, gl:LONG, port:LONG, outf:LONG, type:LONG
- DEF gad:LONG, lbuf=250:ARRAY, nrgad:LONG, rast:LONG, ok:LONG
- DEF gbuf=2000:ARRAY, con:LONG
-
- PROC init()
- window:=OpenW(205,16,230,nrgad*14+48,$240,$100E,'QuickLaunch',NIL,1,gl)
- IF window=FALSE
- EXIT 20
- ELSE
- port:=MLONG(window+86)
- rast:=MLONG(window+50)
- outf:=TRUE
- con:=NIL
- VOID SetAPen(rast,2)
- VOID message('Ready for takeoff ... ')
- ENDIF
- ENDPROC
-
- PROC main()
- VOID makegadgets()
- ok:=readfile()
- IF ok?FALSE
- VOID init()
- REPEAT
- VOID wait4message()
- IF type=2
- VOID dogadgets(gad)
- ENDIF
- UNTIL type=1
- VOID CloseW(window)
- IF con?NIL
- VOID Close(con)
- ENDIF
- ELSE
- WRITE 'Couldn\at read config file correctly!\n'
- ENDIF
- ENDPROC
-
- PROC wait4message()
- LOCAL class:LONG, mes:LONG, object:LONG
- start:
- mes:=GetMsg(port)
- IF mes?FALSE
- class:=MLONG(mes+20)
- object:=MLONG(mes+28)
- VOID ReplyMsg(mes)
- IF class=$200
- type:=1
- ELSEIF class=$40
- type:=2
- gad:=MLONG(object+40)
- ELSE
- type:=0
- ENDIF
- ELSE
- VOID Wait(-1)
- GOTO start
- ENDIF
- ENDPROC
-
- PROC makegadgets()
- gl:=Gadget(gbuf,NIL,1,3,10,14,100,'Output')
- VOID Gadget(gbuf+120,gl,2,0,120,14,100,'About')
- ENDPROC
-
- PROC readfile()
- LOCAL handle:LONG, buf=10000:ARRAY, len:LONG, a:LONG, adr:LONG
- LOCAL flen:LONG, namestr=50:STRING, m:LONG
- VOID StrCopy(namestr,'S:QuickLaunch.Config',TRUE)
- flen:=FileLenght(namestr)
- IF flen<10000
- handle:=Open(namestr,1005)
- IF handle?FALSE
- len:=Read(handle,buf,flen)
- VOID Close(handle)
- IF len<1
- handle:=FALSE
- ELSE
- adr:=buf
- nrgad:=0
- FOR a,0,len
- m:=MCHAR(buf+a)
- IF m=10
- MCHAR buf+a,0
- IF adr=0
- adr:=buf+a+1
- ELSE
- INC 1,nrgad
- VOID Gadget(nrgad*120+120+gbuf,gl,buf+a+1,0,10,nrgad*14+30,210,adr)
- adr:=0
- IF nrgad=12
- GOTO ready
- ENDIF
- ENDIF
- ENDIF
- ENDFOR
- ENDIF
- ENDIF
- ELSE
- handle:=FALSE
- ENDIF
- ready:
- ENDPROC handle
-
- PROC dogadgets(gadget)
- LOCAL gadget:LONG
- IF gadget<10
- IF gadget=1
- outf:=Not(outf)
- ELSE
- VOID message('Written in DEX by $#%! ')
- ENDIF
- ELSE
- IF outf=TRUE
- IF stdout=NIL
- IF con=NIL
- con:=Open('CON:0/11/640/100/QuickLaunchOutput',1006)
- IF con?NIL
- stdout:=con
- ENDIF
- ENDIF
- ENDIF
- ENDIF
- VOID message('Launching ... ')
- VOID Execute(gadget,0,stdout)
- VOID message('Done. ')
- ENDIF
- ENDPROC
-
- PROC message(string)
- LOCAL string:LONG, len:LONG
- len:=StrLen(string)
- VOID Move(rast,10,37)
- VOID Text(rast,string,len)
- ENDPROC
-