ttt[256]:STRING,req:PTR TO filerequester,tt1[256]:ARRAY OF CHAR
ENUM ER_NONE,
ER_SCREEN,
ER_VISUAL,
ER_CONTEXT,
ER_MENUS,
ER_GADGET,
ER_WINDOW,
ER_NOGT,
ER_NODF,
ER_FONT,
ER_NOUTIL,
ER_NOCFG,
ER_NORQ
CONST GA_COMMSTRING=0,
GA_LOADCOMMAND=1,
GA_CORNERLINES=2,
GA_SAVE=3,
GA_CANCEL=4
PROC computefont(width,height)
DEF msg:PTR TO mn
DEF tf:PTR TO textfont
DEF nde:PTR TO ln
DEF gfx:PTR TO gfxbase
Forbid()
gfx:=gfxbase
tf:=gfx.defaultfont
msg:=tf.mn
nde:=msg.ln
winfont.name:=nde.name
winfont.ysize:=fonty:=tf.ysize
winfont.style:=tf.style
winfont.flags:=tf.flags
fontx:=tf.xsize
Permit()
IF (width<>0 AND height<>0)
IF ((cx(width)+offx+screen.wborright)>screen.width) OR ((cy(height)+offy+screen.wborbottom)>screen.height)
winfont.name:='topaz.font'
winfont.ysize:=8
fontx:=fonty:=winfont.ysize
ENDIF
ENDIF
ENDPROC
PROC cx(value)
RETURN ((fontx*value)+4/8)
ENDPROC
PROC cy(value)
RETURN ((fonty*value)+4/8)
ENDPROC
PROC openlibs() HANDLE
IF (gadtoolsbase:=OpenLibrary('gadtools.library',37))=NIL THEN Raise(ER_NOGT)
IF (diskfontbase:=OpenLibrary('diskfont.library',37))=NIL THEN Raise(ER_NODF)
IF (reqtoolsbase:=OpenLibrary('reqtools.library',37))=NIL THEN Raise(ER_NORQ)
Raise(ER_NONE)
EXCEPT
RETURN exception
ENDPROC
PROC closelibs()
IF gadtoolsbase THEN CloseLibrary(gadtoolsbase)
IF diskfontbase THEN CloseLibrary(diskfontbase)
IF reqtoolsbase THEN CloseLibrary(reqtoolsbase)
ENDPROC
PROC setupscreen() HANDLE
DEF font
winfont:=scrfont:=['topaz.font',8,0,1]:textattr
IF (font:=OpenDiskFont(winfont))=NIL THEN Raise(ER_FONT)
IF (screen:=LockPubScreen('Workbench'))=NIL THEN Raise(ER_SCREEN)
IF (visual:=GetVisualInfoA(screen,NIL))=NIL THEN Raise(ER_VISUAL)
rp:=screen.rastport
offx:=screen.wborleft
offy:=screen.wbortop+rp.txheight+1
IF font THEN CloseFont(font)
computefont(NIL,NIL)
Raise(ER_NONE)
EXCEPT
RETURN exception
ENDPROC
PROC setdownscreen()
IF visual THEN FreeVisualInfo(visual)
IF screen THEN UnlockPubScreen(NIL,screen)
ENDPROC
PROC init_project0_wnd() HANDLE
computefont(327,43)
IF (project0_glist:=CreateContext({project0_glist}))=NIL THEN Raise(ER_CONTEXT)
IF (commstring:=CreateGadgetA(STRING_KIND,project0_glist,[offx+cx(3),offy+cy(15),cx(269),cy(13),'',winfont,0,0,visual,0]:newgadget,[GTST_MAXCHARS,256,TAG_DONE]))=NIL THEN Raise(ER_GADGET)
IF (loadcommand:=CreateGadgetA(BUTTON_KIND,commstring,[offx+cx(275),offy+cy(15),cx(50),cy(13),'Load',winfont,1,16,visual,NIL]:newgadget,[TAG_DONE]))=NIL THEN Raise(ER_GADGET)
IF (cornerlines:=CreateGadgetA(CYCLE_KIND,loadcommand,[offx+cx(3),offy+cy(1),cx(322),cy(13),'Corner & Lines',winfont,2,1,visual,NIL]:newgadget,[GTCY_LABELS,['Left upper corner','Right upper corner','Right down corner','Left down corner','Left middle line','Right middle line','Info','Help',NIL],TAG_DONE]))=NIL THEN Raise(ER_GADGET)
IF (save:=CreateGadgetA(BUTTON_KIND,cornerlines,[offx+cx(3),offy+cy(29),cx(158),cy(13),'Save + Hide',winfont,3,16,visual,NIL]:newgadget,[TAG_DONE]))=NIL THEN Raise(ER_GADGET)
IF (cancel:=CreateGadgetA(BUTTON_KIND,save,[offx+cx(164),offy+cy(29),cx(161),cy(13),'Cancel',winfont,4,16,visual,NIL]:newgadget,[TAG_DONE]))=NIL THEN Raise(ER_GADGET)