64 lines
1.3 KiB
Python
Executable File
64 lines
1.3 KiB
Python
Executable File
# Tk backend -- unfinished
|
|
|
|
debug = 0
|
|
|
|
from fmt import *
|
|
|
|
class TkFormatter:
|
|
|
|
def __init__(self, text):
|
|
self.text = text # The text widget to draw in
|
|
self.nospace = 1
|
|
self.blanklines = 0
|
|
self.font = ''
|
|
|
|
# Methods called by htmllib.FormattingParser:
|
|
|
|
def setfont(self, font):
|
|
if 1 or debug: print "setfont(%s)" % `font`
|
|
self.font = font
|
|
|
|
def resetfont(self):
|
|
if debug: print "resetfont()"
|
|
self.font = ''
|
|
|
|
def flush(self):
|
|
if debug: print "flush()"
|
|
self.needvspace(1)
|
|
|
|
def setleftindent(self, n):
|
|
if debug: print "setleftindent(%d)" % n
|
|
|
|
def needvspace(self, n):
|
|
if debug: print "needvspace(%d)" % n
|
|
self.blanklines = max(n, self.blanklines)
|
|
self.nospace = 1
|
|
|
|
def addword(self, word, nspaces):
|
|
if debug: print "addword(%s, %d)" % (`word`, nspaces)
|
|
if self.nospace and not word:
|
|
return
|
|
if self.blanklines > 0:
|
|
word = '\n'*self.blanklines + word
|
|
self.blanklines = 0
|
|
self.nospace = 0
|
|
here = self.text.index('end')
|
|
self.text.insert('end', word + nspaces*' ')
|
|
if not self.font:
|
|
self.tag_remo
|
|
|
|
def setjust(self, c):
|
|
if debug: print "setjust(%s)" % `c`
|
|
|
|
def bgn_anchor(self):
|
|
if debug: print "bgn_anchor()"
|
|
|
|
def end_anchor(self):
|
|
if debug: print "end_anchor()"
|
|
|
|
def hrule(self):
|
|
if debug: print "hrule()"
|
|
self.flush()
|
|
self.addword('_'*60, 0)
|
|
self.flush()
|