summaryrefslogtreecommitdiff
path: root/Lib/stdwin/CSplit.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-09-09 03:39:21 +0000
committerGuido van Rossum <guido@python.org>1997-09-09 03:39:21 +0000
commitd7500fcbb4d0257f3bcd0c87d17ee61f3b1545e8 (patch)
treedb4a6e4835e04851df721eb4595d7172d8e05c34 /Lib/stdwin/CSplit.py
parent045e688f6fc06c87cc93f84e42fb4767a04ba559 (diff)
downloadcpython-git-d7500fcbb4d0257f3bcd0c87d17ee61f3b1545e8.tar.gz
These directories renamed: tkinter -> lib-tk, stdwin -> lib-stdwin.
Diffstat (limited to 'Lib/stdwin/CSplit.py')
-rwxr-xr-xLib/stdwin/CSplit.py69
1 files changed, 0 insertions, 69 deletions
diff --git a/Lib/stdwin/CSplit.py b/Lib/stdwin/CSplit.py
deleted file mode 100755
index 90d51119c3..0000000000
--- a/Lib/stdwin/CSplit.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# A CSplit is a Clock-shaped split: the children are grouped in a circle.
-# The numbering is a little different from a real clock: the 12 o'clock
-# position is called 0, not 12. This is a little easier since Python
-# usually counts from zero. (BTW, there needn't be exactly 12 children.)
-
-
-from math import pi, sin, cos
-from Split import Split
-
-class CSplit(Split):
- #
- def getminsize(self, m, (width, height)):
- # Since things look best if the children are spaced evenly
- # along the circle (and often all children have the same
- # size anyway) we compute the max child size and assume
- # this is each child's size.
- for child in self.children:
- wi, he = child.getminsize(m, (0, 0))
- width = max(width, wi)
- height = max(height, he)
- # In approximation, the diameter of the circle we need is
- # (diameter of box) * (#children) / pi.
- # We approximate pi by 3 (so we slightly overestimate
- # our minimal size requirements -- not so bad).
- # Because the boxes stick out of the circle we add the
- # box size to each dimension.
- # Because we really deal with ellipses, do everything
- # separate in each dimension.
- n = len(self.children)
- return width + (width*n + 2)/3, height + (height*n + 2)/3
- #
- def getbounds(self):
- return self.bounds
- #
- def setbounds(self, bounds):
- self.bounds = bounds
- # Place the children. This involves some math.
- # Compute center positions for children as if they were
- # ellipses with a diameter about 1/N times the
- # circumference of the big ellipse.
- # (There is some rounding involved to make it look
- # reasonable for small and large N alike.)
- # XXX One day Python will have automatic conversions...
- n = len(self.children)
- fn = float(n)
- if n == 0: return
- (left, top), (right, bottom) = bounds
- width, height = right-left, bottom-top
- child_width, child_height = width*3/(n+4), height*3/(n+4)
- half_width, half_height = \
- float(width-child_width)/2.0, \
- float(height-child_height)/2.0
- center_h, center_v = center = (left+right)/2, (top+bottom)/2
- fch, fcv = float(center_h), float(center_v)
- alpha = 2.0 * pi / fn
- for i in range(n):
- child = self.children[i]
- fi = float(i)
- fh, fv = \
- fch + half_width*sin(fi*alpha), \
- fcv - half_height*cos(fi*alpha)
- left, top = \
- int(fh) - child_width/2, \
- int(fv) - child_height/2
- right, bottom = \
- left + child_width, \
- top + child_height
- child.setbounds(((left, top), (right, bottom)))
- #