X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a693e6e0460b6b3c32e4b6f114a3ab7b7cd24ea..f6bcfd974ef26faf6f91a62cac09827e09463fd1:/utils/wxPython/lib/sizers/box.py?ds=inline diff --git a/utils/wxPython/lib/sizers/box.py b/utils/wxPython/lib/sizers/box.py deleted file mode 100644 index 64c9378565..0000000000 --- a/utils/wxPython/lib/sizers/box.py +++ /dev/null @@ -1,137 +0,0 @@ -#---------------------------------------------------------------------- -# Name: wxPython.lib.sizers.box -# Purpose: A sizer/layout managers for wxPython that places items in -# a stretchable box -# -# Author: Robin Dunn and Dirk Holtwick -# -# Created: 17-May-1999 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------- - -from sizer import wxSizer -from wxPython.wx import wxVERTICAL, wxHORIZONTAL - -#---------------------------------------------------------------------- - - -class wxBoxSizer(wxSizer): - """ - wxBoxSizer - - A Sizer that lays components out in a box, in the order they are - added to the layout manager, with a given orientation. The - orientation is specified in the constructor with either wxVERTICAL - or wxHORIZONTAL. - - The optional parameter to the Add method (for this sizer it's - called the stretch flag) can be used to flag one or more components - as stretchable, meaning that they will expand to fill available - space in the given orientation. The default is zero, or not - stretchable. - - If the stretch flag is non-zero then the widget will stretch. If - the sizer holds more than one item that is stretchable then they - share the available space. - - If the strech flag is greater than 1 then it serves as a weighting - factor. Widgets with a flag of 2 will get twice as much space as - widgets with 1, etc. - """ - def __init__(self, orientation, size = None): - wxSizer.__init__(self, size) - self.orientation = orientation - - - def CalcMin(self): - self.stretchable = 0 # number of stretchable items - self.minWidth = 0 # minimal size - self.minHeight = 0 - self.fixedWidth = 0 # size without stretched widgets - self.fixedHeight = 0 - - # iterate through children - for (isSizer, widget, width, height, stretch) in self.children: - weight = 1 - if stretch: - weight = stretch - - if isSizer: - # let sub-sizers recalc their required space - width, height = widget.CalcMin() - - # minimal size - if self.orientation == wxVERTICAL: - self.minHeight = self.minHeight + (height * weight) - self.minWidth = max(self.minWidth, width) - else: - self.minWidth = self.minWidth + (width * weight) - self.minHeight = max(self.minHeight, height) - - # stretchable items - if stretch: - self.stretchable = self.stretchable + weight - else: - if self.orientation == wxVERTICAL: - self.fixedHeight = self.fixedHeight + height - self.fixedWidth = max(self.fixedWidth, width) - else: - self.fixedWidth = self.fixedWidth + width - self.fixedHeight = max(self.fixedHeight, height) - - return self.minWidth, self.minHeight - - - - def RecalcSizes(self): - # get current dimensions, save for performance - myWidth = self.size.width - myHeight = self.size.height - - # relative recent positions & sizes - px = self.origin.x - py = self.origin.y - newWidth = 0 - newHeight = 0 - - # calculate space for one stretched item - if self.stretchable: - if self.orientation == wxHORIZONTAL: - delta = (myWidth - self.fixedWidth) / self.stretchable - extra = (myWidth - self.fixedWidth) % self.stretchable - else: - delta = (myHeight - self.fixedHeight) / self.stretchable - extra = (myHeight - self.fixedHeight) % self.stretchable - - # iterate children ... - for (isSizer, widget, width, height, stretch) in self.children: - weight = 1 - if stretch: - weight = stretch - - if isSizer: - width, height = widget.CalcMin() - - # ... vertical - if self.orientation == wxVERTICAL: - newHeight = height - if stretch: - newHeight = (delta * weight) + extra # first stretchable gets extra pixels - extra = 0 - widget.SetDimensions(px, py, myWidth, newHeight) - - # ... horizontal - elif self.orientation == wxHORIZONTAL: - newWidth = width - if stretch: - newWidth = (delta * weight) + extra # first stretchable gets extra pixels - extra = 0 - widget.SetDimensions(px, py, newWidth, myHeight) - - px = px + newWidth - py = py + newHeight - - -#----------------------------------------------------------------------