summaryrefslogtreecommitdiffstats
path: root/Lib/lib-stdwin/BoxParent.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1991-08-16 13:02:04 (GMT)
committerGuido van Rossum <guido@python.org>1991-08-16 13:02:04 (GMT)
commite6afe6a46840dde13b1f9d7847a289fd18be723a (patch)
tree74cdb0df3f0e018b9ab2752b3609e19c22a5ff4c /Lib/lib-stdwin/BoxParent.py
parent8cf301e757a75d30b9e9fdde0452c66f4d0cb6db (diff)
downloadcpython-e6afe6a46840dde13b1f9d7847a289fd18be723a.zip
cpython-e6afe6a46840dde13b1f9d7847a289fd18be723a.tar.gz
cpython-e6afe6a46840dde13b1f9d7847a289fd18be723a.tar.bz2
Initial revision
Diffstat (limited to 'Lib/lib-stdwin/BoxParent.py')
-rw-r--r--Lib/lib-stdwin/BoxParent.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/Lib/lib-stdwin/BoxParent.py b/Lib/lib-stdwin/BoxParent.py
new file mode 100644
index 0000000..7a0723a
--- /dev/null
+++ b/Lib/lib-stdwin/BoxParent.py
@@ -0,0 +1,41 @@
+from TransParent import TransParent
+
+class BoxParent() = TransParent():
+ #
+ def create(self, (parent, (dh, dv))):
+ self = TransParent.create(self, parent)
+ self.dh = dh
+ self.dv = dv
+ return self
+ #
+ def getminsize(self, (m, (width, height))):
+ width = max(0, width - 2*self.dh)
+ height = max(0, height - 2*self.dv)
+ width, height = self.child.getminsize(m, (width, height))
+ return width + 2*self.dh, height + 2*self.dv
+ #
+ def setbounds(self, bounds):
+ (left, top), (right, bottom) = bounds
+ self.bounds = bounds
+ left = min(right, left + self.dh)
+ top = min(bottom, top + self.dv)
+ right = max(left, right - self.dh)
+ bottom = max(top, bottom - self.dv)
+ self.innerbounds = (left, top), (right, bottom)
+ self.child.setbounds(self.innerbounds)
+ #
+ def getbounds(self):
+ return self.bounds
+ #
+ def draw(self, args):
+ d, area = args
+ (left, top), (right, bottom) = self.bounds
+ left = left + 1
+ top = top + 1
+ right = right - 1
+ bottom = bottom - 1
+ d.box((left, top), (right, bottom))
+ TransParent.draw(self, args) # XXX clip to innerbounds?
+ #
+ # XXX should scroll clip to innerbounds???
+ # XXX currently the only user restricts itself to child's bounds