
	writer_create:
		# initialization code
		col=1,row=1,left=1,right=80
		fontname$="cgtimes"
		fontsize=12
		fontbold=0
		fontitalic=0
		exit
	
	writer_delete:
		# this is where clean up code would go
		exit

		
	writer_setposition:
		enter setcol,setrow
		col=setcol
		row=setrow
		exit
		
	writer_setmargin: 
		enter setleft,setright
		left=setleft
		right=setright
		if col<left then col=left
		if col>right then col=right
		exit
		
	writer_print:
		enter text$,font$,size,bold,italic,err=*next
		if font$>"" fontname$=font$
		if size>0 fontsize=size
		if tcb(20)>3 fontbold=bold
		if tcb(20)>4 fontitalic=italic
		
		lineheight=inchtorows(fontsize/72)
		
		cmd$=""
		
		strtoarr(text$,words$[]," ")
		word1=lbound(words$[])
		word2=ubound(words$[])
		if word2>=0 then:
			for i=word1 to word2
				word$=words$[i]
				width=textwidth(word$,fontname$,fontsize,fontbold+(2*fontitalic))
				if col+width>right then:
					col=left
					row+=lineheight
				end if
				cmd$+="text "+str(col)+","+str(row)+","
				cmd$+=quo+sub(word$,quo,"\"+quo)+quo
				cmd$+=","+fontname$+","+str(fontsize)
				if fontbold then cmd$+=",bold"
				if fontitalic then cmd$+=",italic"
				cmd$+=$0a$
			next i
		end if
		if cmd$>"" then exec(cmd$); lastexec$=cmd$
		col+=width+textwidth(" ",fontname$,fontsize,fontbold+(2*fontitalic))
		exit		



	def class "writer" 

		local fontname$,fontsize,fontbold,fontitalic
		
		property col set err
		property row set err
		property left set err
		property right set err
		property lastexec$ set err
		
		function setposition(setcol,setrow)writer_setposition
		function setmargin(setleft,setright)writer_setmargin
		function printtext(text$)writer_print
		function printtext(text$,font$)writer_print
		function printtext(text$,font$,size)writer_print
		function printtext(text$,font$,size,bold)writer_print
		function printtext(text$,font$,size,bold,italic)writer_print

	end def

