Mercurial > cpython-lru_cache-weakref
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 |
| rev | line source |
|---|---|
| 64 | 1 # HVSplit contains generic code for HSplit and VSplit. |
| 2 # HSplit and VSplit are specializations to either dimension. | |
| 3 | |
| 125 | 4 # XXX This does not yet stretch/shrink children if there is too much |
| 5 # XXX or too little space in the split dimension. | |
| 6 # XXX (NB There is no interface to ask children for stretch preferences.) | |
| 7 | |
| 64 | 8 from Split import Split |
| 9 | |
| 531 | 10 class HVSplit(Split): |
| 64 | 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 | 14 self = Split.create(self, parent) |
| 15 self.hv = hv | |
| 16 return self | |
| 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 | 19 hv, vh = self.hv, 1 - self.hv |
| 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 | 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 | 26 if csize[vh] > size[vh]: size[vh] = csize[vh] |
| 27 size[hv] = size[hv] + csize[hv] | |
| 28 return size[0], size[1] | |
| 29 # | |
| 30 def getbounds(self): | |
| 31 return self.bounds | |
| 32 # | |
| 33 def setbounds(self, bounds): | |
| 34 self.bounds = bounds | |
| 35 hv, vh = self.hv, 1 - self.hv | |
| 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 | 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 | 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 | 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 | 51 origin[hv] = corner[hv] |
| 52 # XXX stretch | |
| 53 # XXX too-small | |
| 54 # | |
| 55 | |
| 531 | 56 class HSplit(HVSplit): |
| 64 | 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 | 59 |
| 531 | 60 class VSplit(HVSplit): |
| 64 | 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) |
