aboutsummaryrefslogtreecommitdiff
path: root/lib/WindowParent.py
diff options
context:
space:
mode:
authorSkip Montanaro <[email protected]>2021-02-16 20:14:16 -0600
committerSkip Montanaro <[email protected]>2021-02-16 20:14:16 -0600
commitc2587c76f1b416cdbecb979e54941933246bf856 (patch)
treebb61ee9128075ce22af4eafa232f13c2e5a07896 /lib/WindowParent.py
parentd90761a005b24018ae237bf551515772a1de656f (diff)
downloadpython-0.9.1-patched-QoL-c2587c76f1b416cdbecb979e54941933246bf856.tar.xz
python-0.9.1-patched-QoL-c2587c76f1b416cdbecb979e54941933246bf856.zip
starting over
Diffstat (limited to 'lib/WindowParent.py')
-rw-r--r--lib/WindowParent.py180
1 files changed, 90 insertions, 90 deletions
diff --git a/lib/WindowParent.py b/lib/WindowParent.py
index 1e18930..5c72984 100644
--- a/lib/WindowParent.py
+++ b/lib/WindowParent.py
@@ -7,95 +7,95 @@ from stdwinevents import *
from TransParent import ManageOneChild
-Error = 'WindowParent.Error' # Exception
+Error = 'WindowParent.Error' # Exception
class WindowParent() = ManageOneChild():
- #
- def create(self, (title, size)):
- self.title = title
- self.size = size # (width, height)
- self._reset()
- return self
- #
- def _reset(self):
- self.child = 0
- self.win = 0
- self.itimer = 0
- self.do_mouse = 0
- self.do_timer = 0
- #
- def destroy(self):
- if self.child: self.child.destroy()
- self._reset()
- #
- def need_mouse(self, child): self.do_mouse = 1
- def no_mouse(self, child): self.do_mouse = 0
- #
- def need_timer(self, child): self.do_timer = 1
- def no_timer(self, child): self.do_timer = 0
- #
- def realize(self):
- if self.win:
- raise Error, 'realize(): called twice'
- if not self.child:
- raise Error, 'realize(): no child'
- size = self.child.minsize(self.beginmeasuring())
- self.size = max(self.size[0], size[0]), \
- max(self.size[1], size[1])
- #stdwin.setdefwinsize(self.size)
- # XXX Compensate stdwin bug:
- stdwin.setdefwinsize(self.size[0]+4, self.size[1]+2)
- self.win = stdwin.open(self.title)
- if self.itimer:
- self.win.settimer(self.itimer)
- bounds = (0, 0), self.win.getwinsize()
- self.child.setbounds(bounds)
- #
- def beginmeasuring(self):
- # Return something with which a child can measure text
- if self.win:
- return self.win.begindrawing()
- else:
- return stdwin
- #
- def begindrawing(self):
- if self.win:
- return self.win.begindrawing()
- else:
- raise Error, 'begindrawing(): not realized yet'
- #
- def change(self, area):
- if self.win:
- self.win.change(area)
- #
- def scroll(self, args):
- if self.win:
- self.win.scroll(args)
- #
- def settimer(self, itimer):
- if self.win:
- self.win.settimer(itimer)
- else:
- self.itimer = itimer
- #
- # Only call dispatch if we have a child
- #
- def dispatch(self, (type, win, detail)):
- if win <> self.win:
- return
- elif type = WE_DRAW:
- d = self.win.begindrawing()
- self.child.draw(d, detail)
- elif type = WE_MOUSE_DOWN:
- if self.do_mouse: self.child.mouse_down(detail)
- elif type = WE_MOUSE_MOVE:
- if self.do_mouse: self.child.mouse_move(detail)
- elif type = WE_MOUSE_UP:
- if self.do_mouse: self.child.mouse_up(detail)
- elif type = WE_TIMER:
- if self.do_timer: self.child.timer()
- elif type = WE_SIZE:
- self.win.change((0, 0), (10000, 10000)) # XXX
- bounds = (0, 0), self.win.getwinsize()
- self.child.setbounds(bounds)
- #
+ #
+ def create(self, (title, size)):
+ self.title = title
+ self.size = size # (width, height)
+ self._reset()
+ return self
+ #
+ def _reset(self):
+ self.child = 0
+ self.win = 0
+ self.itimer = 0
+ self.do_mouse = 0
+ self.do_timer = 0
+ #
+ def destroy(self):
+ if self.child: self.child.destroy()
+ self._reset()
+ #
+ def need_mouse(self, child): self.do_mouse = 1
+ def no_mouse(self, child): self.do_mouse = 0
+ #
+ def need_timer(self, child): self.do_timer = 1
+ def no_timer(self, child): self.do_timer = 0
+ #
+ def realize(self):
+ if self.win:
+ raise Error, 'realize(): called twice'
+ if not self.child:
+ raise Error, 'realize(): no child'
+ size = self.child.minsize(self.beginmeasuring())
+ self.size = max(self.size[0], size[0]), \
+ max(self.size[1], size[1])
+ #stdwin.setdefwinsize(self.size)
+ # XXX Compensate stdwin bug:
+ stdwin.setdefwinsize(self.size[0]+4, self.size[1]+2)
+ self.win = stdwin.open(self.title)
+ if self.itimer:
+ self.win.settimer(self.itimer)
+ bounds = (0, 0), self.win.getwinsize()
+ self.child.setbounds(bounds)
+ #
+ def beginmeasuring(self):
+ # Return something with which a child can measure text
+ if self.win:
+ return self.win.begindrawing()
+ else:
+ return stdwin
+ #
+ def begindrawing(self):
+ if self.win:
+ return self.win.begindrawing()
+ else:
+ raise Error, 'begindrawing(): not realized yet'
+ #
+ def change(self, area):
+ if self.win:
+ self.win.change(area)
+ #
+ def scroll(self, args):
+ if self.win:
+ self.win.scroll(args)
+ #
+ def settimer(self, itimer):
+ if self.win:
+ self.win.settimer(itimer)
+ else:
+ self.itimer = itimer
+ #
+ # Only call dispatch if we have a child
+ #
+ def dispatch(self, (type, win, detail)):
+ if win <> self.win:
+ return
+ elif type = WE_DRAW:
+ d = self.win.begindrawing()
+ self.child.draw(d, detail)
+ elif type = WE_MOUSE_DOWN:
+ if self.do_mouse: self.child.mouse_down(detail)
+ elif type = WE_MOUSE_MOVE:
+ if self.do_mouse: self.child.mouse_move(detail)
+ elif type = WE_MOUSE_UP:
+ if self.do_mouse: self.child.mouse_up(detail)
+ elif type = WE_TIMER:
+ if self.do_timer: self.child.timer()
+ elif type = WE_SIZE:
+ self.win.change((0, 0), (10000, 10000)) # XXX
+ bounds = (0, 0), self.win.getwinsize()
+ self.child.setbounds(bounds)
+ #