Commit f802e14a authored by Guido van Rossum's avatar Guido van Rossum

Changed redraw policy.

parent 2c84fa99
...@@ -9,16 +9,18 @@ class VT100win(VT100): ...@@ -9,16 +9,18 @@ class VT100win(VT100):
def __init__(self): def __init__(self):
VT100.__init__(self) VT100.__init__(self)
self.window = None self.window = None
## self.last_x = -1 self.last_x = -1
## self.last_y = -1 self.last_y = -1
def __del__(self): def __del__(self):
self.close() self.close()
def open(self, title): def open(self, title):
stdwin.setfont('7x14') stdwin.setfont('7x14')
self.docwidth = self.width * stdwin.textwidth('m') self.charwidth = stdwin.textwidth('m')
self.docheight = self.height * stdwin.lineheight() self.lineheight = stdwin.lineheight()
self.docwidth = self.width * self.charwidth
self.docheight = self.height * self.lineheight
stdwin.setdefwinsize(self.docwidth + 2, self.docheight + 2) stdwin.setdefwinsize(self.docwidth + 2, self.docheight + 2)
stdwin.setdefscrollbars(0, 0) stdwin.setdefscrollbars(0, 0)
self.window = stdwin.open(title) self.window = stdwin.open(title)
...@@ -31,7 +33,8 @@ class VT100win(VT100): ...@@ -31,7 +33,8 @@ class VT100win(VT100):
def show(self): def show(self):
if not self.window: return if not self.window: return
self.draw(((-10, -10), (self.docwidth+10, self.docheight+10))) self.window.change(((-10, -10),
(self.docwidth+10, self.docheight+10)))
def draw(self, detail): def draw(self, detail):
d = self.window.begindrawing() d = self.window.begindrawing()
...@@ -39,8 +42,8 @@ class VT100win(VT100): ...@@ -39,8 +42,8 @@ class VT100win(VT100):
red = stdwin.fetchcolor('red') red = stdwin.fetchcolor('red')
d.cliprect(detail) d.cliprect(detail)
d.erase(detail) d.erase(detail)
lh = d.lineheight() lh = self.lineheight
cw = d.textwidth('m') cw = self.charwidth
for y in range(self.height): for y in range(self.height):
d.text((0, y*lh), self.lines[y].tostring()) d.text((0, y*lh), self.lines[y].tostring())
if self.attrs[y] <> self.blankattr: if self.attrs[y] <> self.blankattr:
...@@ -56,13 +59,20 @@ class VT100win(VT100): ...@@ -56,13 +59,20 @@ class VT100win(VT100):
d.setfgcolor(fg) d.setfgcolor(fg)
d.close() d.close()
## def move_to(self, x, y): def move_to(self, x, y):
## VT100.move_to(self, x, y) VT100.move_to(self, x, y)
## if self.y != self.last_y: if not self.window: return
## self.show() if self.y != self.last_y:
## self.last_x = self.x self.window.change((0, self.last_y * self.lineheight),
## self.last_y = y (self.width*self.charwidth,
(self.last_y+1) * self.lineheight))
self.last_x = self.x
self.last_y = y
self.window.change((0, self.y * self.lineheight),
(self.width*self.charwidth,
(self.y+1) * self.lineheight))
def send(self, str): def send(self, str):
VT100.send(self, str) VT100.send(self, str)
self.show() ## self.show()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment