summaryrefslogtreecommitdiffstats
path: root/Lib/stdwin/Abstract.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1990-11-05 19:44:36 (GMT)
committerGuido van Rossum <guido@python.org>1990-11-05 19:44:36 (GMT)
commit2e4496710494391b12a8553f652494c035bae340 (patch)
tree45d17cfebddc961fb1316c7a4514d10e62e05e1d /Lib/stdwin/Abstract.py
parent0c89ec778d684a13a656b6b3462ae7dfd2837148 (diff)
downloadcpython-2e4496710494391b12a8553f652494c035bae340.zip
cpython-2e4496710494391b12a8553f652494c035bae340.tar.gz
cpython-2e4496710494391b12a8553f652494c035bae340.tar.bz2
Initial revision
Diffstat (limited to 'Lib/stdwin/Abstract.py')
-rwxr-xr-xLib/stdwin/Abstract.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/Lib/stdwin/Abstract.py b/Lib/stdwin/Abstract.py
new file mode 100755
index 0000000..d601527
--- /dev/null
+++ b/Lib/stdwin/Abstract.py
@@ -0,0 +1,53 @@
+# Abstract classes for parents and children.
+# Do not use as base class -- this is for documentation only.
+# Note that the tree must be built top down.
+
+class AbstractParent():
+ #
+ # Upcalls from child to parent
+ #
+ def addchild(self, child): unimpl()
+ def delchild(self, child): unimpl()
+ #
+ def need_mouse(self, child): unimpl()
+ def no_mouse(self, child): unimpl()
+ #
+ def need_timer(self, child): unimpl()
+ def no_timer(self, child): unimpl()
+ #
+ # XXX need_kbd, no_kbd; focus???
+ #
+ def begindrawing(self): return unimpl()
+ def beginmeasuring(self): return unimpl()
+ #
+ def change(self, area): unimpl()
+ def scroll(self, (area, (dh, dv))): unimpl()
+ def settimer(self, itimer): unimpl()
+
+class AbstractChild():
+ #
+ # Downcalls from parent to child
+ #
+ def destroy(self): unimpl()
+ #
+ def minsize(self, m): return unimpl()
+ def getbounds(self): return unimpl()
+ def setbounds(self, bounds): unimpl()
+ def draw(self, (d, area)): unimpl()
+ #
+ # Downcalls only made after certain upcalls
+ #
+ def mouse_down(self, detail): unimpl()
+ def mouse_move(self, detail): unimpl()
+ def mouse_up(self, detail): unimpl()
+ #
+ def timer(self): unimpl()
+
+# A "Split" is a child that manages one or more children.
+# (This terminology is due to DEC SRC, except for CSplits.)
+# A child of a split may be another split, a button, a slider, etc.
+# Certain upcalls and downcalls can be handled transparently, but
+# for others (e.g., all geometry related calls) this is not possible.
+
+class AbstractSplit() = AbstractChild(), AbstractParent():
+ pass