]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Added keyboard, alternate drawing, realize and getwindow interfaces.
authorGuido van Rossum <guido@python.org>
Sun, 7 Apr 1991 13:33:39 +0000 (13:33 +0000)
committerGuido van Rossum <guido@python.org>
Sun, 7 Apr 1991 13:33:39 +0000 (13:33 +0000)
Lib/lib-stdwin/Split.py
Lib/stdwin/Split.py

index 63f5d5ff3296dbbd9434a926995305b0b3ae546b..ef0f2fcb17dd6f36bf2c8908622510b23493efa6 100644 (file)
@@ -18,7 +18,9 @@ class Split():
                self.parent = parent
                self.children = []
                self.mouse_interest = []
+               self.keybd_interest = []
                self.timer_interest = []
+               self.altdraw_interest = []
                self.mouse_focus = 0
                return self
        #
@@ -30,18 +32,28 @@ class Split():
                        child.destroy()
                del self.children[:]
                del self.mouse_interest[:]
+               del self.keybd_interest[:]
                del self.timer_interest[:]
+               del self.altdraw_interest[:]
                self.mouse_focus = None
        #
-       def minsize(self, m): return unimpl()
+       def minsize(self, m): return unimpl()   # Should ask children
        def getbounds(self): return unimpl()
-       def setbounds(self, bounds): unimpl()
+       def setbounds(self, bounds): unimpl()   # Should tell children
+       #
+       def realize(self):
+               for child in self.children:
+                       child.realize()
        #
        def draw(self, d_detail):
                # (Could avoid calls to children outside the area)
                for child in self.children:
                        child.draw(d_detail)
        #
+       def altdraw(self, detail):
+               for child in self.altdraw_interest:
+                       child.altdraw(detail)
+       #
        # Downcalls only made after certain upcalls
        #
        def mouse_down(self, detail):
@@ -60,6 +72,10 @@ class Split():
                        self.mouse_focus.mouse_up(detail)
                        self.mouse_focus = 0
        #
+       def keybd(self, type_detail):
+               for child in self.keybd_interest:
+                       child.keybd(type_detail)
+       #
        def timer(self):
                for child in self.timer_interest:
                        child.timer()
@@ -76,8 +92,12 @@ class Split():
                remove(child, self.children)
                if child in self.mouse_interest:
                        remove(child, self.mouse_interest)
+               if child in self.keybd_interest:
+                       remove(child, self.keybd_interest)
                if child in self.timer_interest:
                        remove(child, self.timer_interest)
+               if child in self.altdraw_interest:
+                       remove(child, self.altdraw_interest)
                if child = self.mouse_focus:
                        self.mouse_focus = 0
        #
@@ -91,6 +111,16 @@ class Split():
                        if not self.mouse_interest:
                                self.parent.no_mouse(self)
        #
+       def need_keybd(self, child):
+               if child not in self.keybd_interest:
+                       self.keybd_interest.append(child)
+                       self.parent.need_keybd(self)
+       def no_keybd(self, child):
+               if child in self.keybd_interest:
+                       remove(child, self.keybd_interest)
+                       if not self.keybd_interest:
+                               self.parent.no_keybd(self)
+       #
        def need_timer(self, child):
                if child not in self.timer_interest:
                        self.timer_interest.append(child)
@@ -101,12 +131,24 @@ class Split():
                        if not self.timer_interest:
                                self.parent.no_timer(self)
        #
+       def need_altdraw(self, child):
+               if child not in self.altdraw_interest:
+                       self.altdraw_interest.append(child)
+                       self.parent.need_altdraw(self)
+       def no_altdraw(self, child):
+               if child in self.altdraw_interest:
+                       remove(child, self.altdraw_interest)
+                       if not self.altdraw_interest:
+                               self.parent.no_altdraw(self)
+       #
        # The rest are transparent:
        #
        def begindrawing(self):
                return self.parent.begindrawing()
        def beginmeasuring(self):
                return self.parent.beginmeasuring()
+       def getwindow(self):
+               return self.parent.getwindow()
        #
        def change(self, area):
                self.parent.change(area)
index 63f5d5ff3296dbbd9434a926995305b0b3ae546b..ef0f2fcb17dd6f36bf2c8908622510b23493efa6 100755 (executable)
@@ -18,7 +18,9 @@ class Split():
                self.parent = parent
                self.children = []
                self.mouse_interest = []
+               self.keybd_interest = []
                self.timer_interest = []
+               self.altdraw_interest = []
                self.mouse_focus = 0
                return self
        #
@@ -30,18 +32,28 @@ class Split():
                        child.destroy()
                del self.children[:]
                del self.mouse_interest[:]
+               del self.keybd_interest[:]
                del self.timer_interest[:]
+               del self.altdraw_interest[:]
                self.mouse_focus = None
        #
-       def minsize(self, m): return unimpl()
+       def minsize(self, m): return unimpl()   # Should ask children
        def getbounds(self): return unimpl()
-       def setbounds(self, bounds): unimpl()
+       def setbounds(self, bounds): unimpl()   # Should tell children
+       #
+       def realize(self):
+               for child in self.children:
+                       child.realize()
        #
        def draw(self, d_detail):
                # (Could avoid calls to children outside the area)
                for child in self.children:
                        child.draw(d_detail)
        #
+       def altdraw(self, detail):
+               for child in self.altdraw_interest:
+                       child.altdraw(detail)
+       #
        # Downcalls only made after certain upcalls
        #
        def mouse_down(self, detail):
@@ -60,6 +72,10 @@ class Split():
                        self.mouse_focus.mouse_up(detail)
                        self.mouse_focus = 0
        #
+       def keybd(self, type_detail):
+               for child in self.keybd_interest:
+                       child.keybd(type_detail)
+       #
        def timer(self):
                for child in self.timer_interest:
                        child.timer()
@@ -76,8 +92,12 @@ class Split():
                remove(child, self.children)
                if child in self.mouse_interest:
                        remove(child, self.mouse_interest)
+               if child in self.keybd_interest:
+                       remove(child, self.keybd_interest)
                if child in self.timer_interest:
                        remove(child, self.timer_interest)
+               if child in self.altdraw_interest:
+                       remove(child, self.altdraw_interest)
                if child = self.mouse_focus:
                        self.mouse_focus = 0
        #
@@ -91,6 +111,16 @@ class Split():
                        if not self.mouse_interest:
                                self.parent.no_mouse(self)
        #
+       def need_keybd(self, child):
+               if child not in self.keybd_interest:
+                       self.keybd_interest.append(child)
+                       self.parent.need_keybd(self)
+       def no_keybd(self, child):
+               if child in self.keybd_interest:
+                       remove(child, self.keybd_interest)
+                       if not self.keybd_interest:
+                               self.parent.no_keybd(self)
+       #
        def need_timer(self, child):
                if child not in self.timer_interest:
                        self.timer_interest.append(child)
@@ -101,12 +131,24 @@ class Split():
                        if not self.timer_interest:
                                self.parent.no_timer(self)
        #
+       def need_altdraw(self, child):
+               if child not in self.altdraw_interest:
+                       self.altdraw_interest.append(child)
+                       self.parent.need_altdraw(self)
+       def no_altdraw(self, child):
+               if child in self.altdraw_interest:
+                       remove(child, self.altdraw_interest)
+                       if not self.altdraw_interest:
+                               self.parent.no_altdraw(self)
+       #
        # The rest are transparent:
        #
        def begindrawing(self):
                return self.parent.begindrawing()
        def beginmeasuring(self):
                return self.parent.beginmeasuring()
+       def getwindow(self):
+               return self.parent.getwindow()
        #
        def change(self, area):
                self.parent.change(area)