summaryrefslogtreecommitdiffstats
path: root/Demo/cwilib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1993-11-01 14:48:37 (GMT)
committerGuido van Rossum <guido@python.org>1993-11-01 14:48:37 (GMT)
commitb71f879bafc280157710e0d496f131e6e6175a18 (patch)
tree552fed6abe9c53356fe4f0ff4c3188546fa14c65 /Demo/cwilib
parent615194a3526ce2cd50a255113470ba24e3fca0b9 (diff)
downloadcpython-b71f879bafc280157710e0d496f131e6e6175a18.zip
cpython-b71f879bafc280157710e0d496f131e6e6175a18.tar.gz
cpython-b71f879bafc280157710e0d496f131e6e6175a18.tar.bz2
Changed redraw policy.
Diffstat (limited to 'Demo/cwilib')
-rwxr-xr-xDemo/cwilib/vt100win.py38
1 files changed, 24 insertions, 14 deletions
diff --git a/Demo/cwilib/vt100win.py b/Demo/cwilib/vt100win.py
index dcaf17b..122e5f9 100755
--- a/Demo/cwilib/vt100win.py
+++ b/Demo/cwilib/vt100win.py
@@ -9,16 +9,18 @@ class VT100win(VT100):
def __init__(self):
VT100.__init__(self)
self.window = None
-## self.last_x = -1
-## self.last_y = -1
+ self.last_x = -1
+ self.last_y = -1
def __del__(self):
self.close()
def open(self, title):
stdwin.setfont('7x14')
- self.docwidth = self.width * stdwin.textwidth('m')
- self.docheight = self.height * stdwin.lineheight()
+ self.charwidth = stdwin.textwidth('m')
+ 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.setdefscrollbars(0, 0)
self.window = stdwin.open(title)
@@ -31,7 +33,8 @@ class VT100win(VT100):
def show(self):
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):
d = self.window.begindrawing()
@@ -39,8 +42,8 @@ class VT100win(VT100):
red = stdwin.fetchcolor('red')
d.cliprect(detail)
d.erase(detail)
- lh = d.lineheight()
- cw = d.textwidth('m')
+ lh = self.lineheight
+ cw = self.charwidth
for y in range(self.height):
d.text((0, y*lh), self.lines[y].tostring())
if self.attrs[y] <> self.blankattr:
@@ -56,13 +59,20 @@ class VT100win(VT100):
d.setfgcolor(fg)
d.close()
-## def move_to(self, x, y):
-## VT100.move_to(self, x, y)
-## if self.y != self.last_y:
-## self.show()
-## self.last_x = self.x
-## self.last_y = y
+ def move_to(self, x, y):
+ VT100.move_to(self, x, y)
+ if not self.window: return
+ if self.y != self.last_y:
+ self.window.change((0, self.last_y * self.lineheight),
+ (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):
VT100.send(self, str)
- self.show()
+## self.show()
+