annotate Lib/lib-stdwin/HVSplit.py @ 5817:48b94de85bf3 legacy-trunk

Extensive changes by AMK.
author Guido van Rossum <guido@python.org>
date Thu, 17 Jul 1997 16:29:42 +0000
parents f9bbb01388d5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 # HVSplit contains generic code for HSplit and VSplit.
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2 # HSplit and VSplit are specializations to either dimension.
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
3
125
f71d6a096b02 Added XXX remarks.
Guido van Rossum <guido@python.org>
parents: 64
diff changeset
4 # XXX This does not yet stretch/shrink children if there is too much
f71d6a096b02 Added XXX remarks.
Guido van Rossum <guido@python.org>
parents: 64
diff changeset
5 # XXX or too little space in the split dimension.
f71d6a096b02 Added XXX remarks.
Guido van Rossum <guido@python.org>
parents: 64
diff changeset
6 # XXX (NB There is no interface to ask children for stretch preferences.)
f71d6a096b02 Added XXX remarks.
Guido van Rossum <guido@python.org>
parents: 64
diff changeset
7
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 from Split import Split
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
9
531
8331076cfe15 New class syntax.
Guido van Rossum <guido@python.org>
parents: 350
diff changeset
10 class HVSplit(Split):
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 #
1110
1d06b1499eb9 * Got entirely rid of path.py.
Guido van Rossum <guido@python.org>
parents: 531
diff changeset
12 def create(self, parent, hv):
350
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
13 # hv is 0 for HSplit, 1 for VSplit
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 self = Split.create(self, parent)
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 self.hv = hv
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 return self
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 #
1110
1d06b1499eb9 * Got entirely rid of path.py.
Guido van Rossum <guido@python.org>
parents: 531
diff changeset
18 def getminsize(self, m, sugg_size):
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 hv, vh = self.hv, 1 - self.hv
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 size = [0, 0]
350
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
21 sugg_size = [sugg_size[0], sugg_size[1]]
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
22 sugg_size[hv] = 0
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
23 sugg_size = sugg_size[0], sugg_size[1] # Make a tuple
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 for c in self.children:
350
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
25 csize = c.getminsize(m, sugg_size)
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
26 if csize[vh] > size[vh]: size[vh] = csize[vh]
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 size[hv] = size[hv] + csize[hv]
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 return size[0], size[1]
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 #
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 def getbounds(self):
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 return self.bounds
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
32 #
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 def setbounds(self, bounds):
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
34 self.bounds = bounds
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 hv, vh = self.hv, 1 - self.hv
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 mf = self.parent.beginmeasuring
350
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
37 begin, end = bounds
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
38 sugg_size = end[0] - begin[0], end[1] - begin[1]
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
39 size = self.getminsize(mf(), sugg_size)
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
40 origin = [begin[0], begin[1]]
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
41 sugg_size = [sugg_size[0], sugg_size[1]] # Make a list
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
42 sugg_size[hv] = 0
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
43 sugg_size = sugg_size[0], sugg_size[1] # Make a tuple
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 for c in self.children:
350
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
45 size = c.getminsize(mf(), sugg_size)
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 corner = [0, 0]
350
3dfaa093d96e minsize --> getminsize; new implementation of getminsize
Guido van Rossum <guido@python.org>
parents: 125
diff changeset
47 corner[vh] = end[vh]
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 corner[hv] = origin[hv] + size[hv]
1110
1d06b1499eb9 * Got entirely rid of path.py.
Guido van Rossum <guido@python.org>
parents: 531
diff changeset
49 c.setbounds(((origin[0], origin[1]), \
1d06b1499eb9 * Got entirely rid of path.py.
Guido van Rossum <guido@python.org>
parents: 531
diff changeset
50 (corner[0], corner[1])))
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 origin[hv] = corner[hv]
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
52 # XXX stretch
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 # XXX too-small
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
54 #
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
55
531
8331076cfe15 New class syntax.
Guido van Rossum <guido@python.org>
parents: 350
diff changeset
56 class HSplit(HVSplit):
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
57 def create(self, parent):
1178
f9bbb01388d5 * More changes due to stricter argument passing rules
Guido van Rossum <guido@python.org>
parents: 1110
diff changeset
58 return HVSplit.create(self, parent, 0)
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
59
531
8331076cfe15 New class syntax.
Guido van Rossum <guido@python.org>
parents: 350
diff changeset
60 class VSplit(HVSplit):
64
a22df52d7749 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
61 def create(self, parent):
1178
f9bbb01388d5 * More changes due to stricter argument passing rules
Guido van Rossum <guido@python.org>
parents: 1110
diff changeset
62 return HVSplit.create(self, parent, 1)