#$Id: wrd2html.py,v 1.2 1997/01/13 10:38:13 connolly Exp $

import psionWord
from psionData import debug

class T(psionWord.T):
    def __init__(self):
	self.stack = []

    def title(self, t):
	self.start('html')
	self.start('head')
	self.start('title')
	self.text(t)
	self.end()
	self.end()
	self.start('body')

    def start(self, gi):
	print '<' + gi + '>'
	self.stack.append(gi)

    def end(self):
	gi = self.stack[-1]
	print '</' + gi + '>'
	self.stack[-1:] = []

    def text(self, d):
	print d #@@ escape stuff

    def setStyle(self, offset, qty, sty, emph):
	data = self.data[offset:offset+qty]

	if sty == 'HA':
	    self.getIn('h1', 2)
	elif sty == 'HB':
	    self.getIn('h2', 2)
	elif sty == 'BL':
	    self.getIn('ul', 2)
	    self.getIn('li', 3)

	    if len(data) >1 and data[1] == '\011': # remove bullet, tab
		data = data[2:]

	elif sty == 'BT':
	    self.getIn('p', 2)

	if data:
	    if(data[-1] == '\000'):
		self.text(data[:-1])
		self.end() #@@hmmm...
	    else:
		self.text(data)

    def getIn(self, gi, n):
	try:
	    self.stack.index(gi)
	except ValueError:
	    while(len(self.stack)>n):
		self.end()

	    self.start(gi)

# test harness

def test():
    import sys

    d = T()
    d.title('@@XXX')
    d.load(sys.stdin)

if __name__ == '__main__': test()
