]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/lib/rcsizer.py
move wxPython to new trunk
[wxWidgets.git] / wxPython / wx / lib / rcsizer.py
diff --git a/wxPython/wx/lib/rcsizer.py b/wxPython/wx/lib/rcsizer.py
deleted file mode 100644 (file)
index b262aee..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-#----------------------------------------------------------------------
-# Name:        wxPython.lib.rcsizer
-# Purpose:     RowColSizer:
-#
-# Author:      Robin Dunn, adapted from code by Niki Spahiev
-#
-# Created:     26-Feb-2002
-# RCS-ID:      $Id$
-# Copyright:   (c) 2002 by Total Control Software
-# Licence:     wxWindows license
-#----------------------------------------------------------------------
-# 12/10/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o 2.5 compatability update.
-# o There appears to be a prob with the wx.PySizer.GetSize() method.
-#
-# 12/23/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o wx.PySizer.GetSize() method working right now.
-#
-
-"""
-A pure-Python Sizer that lays out items in a grid similar to
-wx.FlexGridSizer but item position is not implicit but explicitly
-specified by row and col, and row/col spanning is supported.
-
-Adapted from code by Niki Spahiev.
-
-NOTE: There is now a C++ version of this class that has been wrapped
-as wx.GridBagSizer.  It is quicker and more capable so you are
-encouraged to switch.
-"""
-
-import  operator
-import  wx
-
-
-# After the lib and demo no longer uses this sizer enable this warning...
-
-## import  warnings
-## warningmsg = r"""\
-
-## #####################################################\
-## # THIS MODULE IS NOW DEPRECATED                      |
-## #                                                    |
-## # The core wx library now contains a similar class   |
-## # wrapped as wx.GridBagSizer.                        |
-## #####################################################/
-
-## """
-
-## warnings.warn(warningmsg, DeprecationWarning, stacklevel=2)
-
-#----------------------------------------------------------------------
-
-class RowColSizer(wx.PySizer):
-
-    # default sizes for cells with no item
-    col_w = 10
-    row_h = 22
-
-    def __init__(self):
-        wx.PySizer.__init__(self)
-        self.growableRows = []
-        self.growableCols = []
-
-
-    def AddGrowableRow(self, idx):
-        self.growableRows.append(idx)
-
-    def AddGrowableCol(self, idx):
-        self.growableCols.append(idx)
-
-
-
-    #--------------------------------------------------
-    def Add(self, item, option=0, flag=0, border=0,
-            # row, col and spanning can be specified individually...
-            row=-1, col=-1,       
-            rowspan=1, colspan=1,
-            # or as tuples (row,col) and (rowspan,colspan)
-            pos=None, size=None,  
-            ):
-
-        if pos is not None:
-            row, col = pos
-        if size is not None:
-            rowspan, colspan = size
-
-        assert row != -1, "Row must be specified"
-        assert col != -1, "Column must be specified"
-
-        # Do I really want to do this?  Probably not...
-        #if rowspan > 1 or colspan > 1:
-        #    flag = flag | wx.EXPAND
-
-        return wx.PySizer.Add(self, item, option, flag, border,
-                              userData=(row, col, row+rowspan, col+colspan))
-
-    #AddWindow = Add
-    #AddSizer  = Add
-
-    def AddSpacer(self, width, height, option=0, flag=0, border=0,
-                  row=-1, col=-1,
-                  rowspan=1, colspan=1,
-                  pos=None, size=None,
-                  ):
-        if pos is not None:
-            row, col = pos
-        if size is not None:
-            rowspan, colspan = size
-
-        assert row != -1, "Row must be specified"
-        assert col != -1, "Column must be specified"
-
-        return wx.PySizer.Add(self, (width, height), option, flag, border,
-                              userData=(row, col, row+rowspan, col+colspan))
-
-    #--------------------------------------------------
-    def _add( self, size, dim ):
-        r, c, r2, c2 = dim   # unpack coords and spanning
-
-        # are the widths and heights lists long enough?
-        if r2 > len(self.rowHeights):
-            x = [self.row_h] * (r2-len(self.rowHeights))
-            self.rowHeights.extend( x )
-        if c2 > len(self.colWidths):
-            x = [self.col_w] * (c2-len(self.colWidths))
-            self.colWidths.extend( x )
-
-        # set the widths and heights lists for this item
-        scale = (r2 - r)
-        for i in range(r, r2):
-            self.rowHeights[i] = max( self.rowHeights[i], size.height / scale )
-        scale = (c2 - c)
-        for i in range(c, c2):
-            self.colWidths[i] = max( self.colWidths[i], size.width / scale )
-
-
-    #--------------------------------------------------
-    def CalcMin( self ):
-        self.rowHeights = []
-        self.colWidths = []
-
-        items = self.GetChildren()
-        if not items:
-            return wx.Size(10, 10)
-
-        for item in items:
-            self._add( item.CalcMin(), item.GetUserData() )
-
-        size = wx.Size( reduce( operator.add, self.colWidths),
-                        reduce( operator.add, self.rowHeights) )
-        return size
-
-
-    #--------------------------------------------------
-    def RecalcSizes( self ):
-        # save current dimensions, etc.
-        curWidth, curHeight  = self.GetSize()
-        px, py = self.GetPosition()
-        minWidth, minHeight  = self.CalcMin()
-
-        # Check for growables
-        if self.growableRows and curHeight > minHeight:
-            delta = (curHeight - minHeight) / len(self.growableRows)
-            extra = (curHeight - minHeight) % len(self.growableRows)
-            for idx in self.growableRows:
-                self.rowHeights[idx] += delta
-            self.rowHeights[self.growableRows[0]] += extra
-
-        if self.growableCols and curWidth > minWidth:
-            delta = (curWidth - minWidth) / len(self.growableCols)
-            extra = (curWidth - minWidth) % len(self.growableCols)
-            for idx in self.growableCols:
-                self.colWidths[idx] += delta
-            self.colWidths[self.growableCols[0]] += extra
-
-        rpos = [0] * len(self.rowHeights)
-        cpos = [0] * len(self.colWidths)
-
-        for i in range(len(self.rowHeights)):
-            height = self.rowHeights[i]
-            rpos[i] = py
-            py += height
-
-        for i in range(len(self.colWidths)):
-            width = self.colWidths[i]
-            cpos[i] = px
-            px += width
-
-        # iterate children and set dimensions...
-        for item in self.GetChildren():
-            r, c, r2, c2 = item.GetUserData()
-            width = reduce( operator.add, self.colWidths[c:c2] )
-            height = reduce( operator.add, self.rowHeights[r:r2] )
-            self.SetItemBounds( item, cpos[c], rpos[r], width, height )
-
-
-    #--------------------------------------------------
-    def SetItemBounds(self, item, x, y, w, h):
-        # calculate the item's actual size and position within
-        # its grid cell
-        ipt = wx.Point(x, y)
-        isz = item.CalcMin()
-        flag = item.GetFlag()
-
-        if flag & wx.EXPAND or flag & wx.SHAPED:
-            isz = wx.Size(w, h)
-        else:
-            if flag & wx.ALIGN_CENTER_HORIZONTAL:
-                ipt.x = x + (w - isz.width) / 2
-            elif flag & wx.ALIGN_RIGHT:
-                ipt.x = x + (w - isz.width)
-
-            if flag & wx.ALIGN_CENTER_VERTICAL:
-                ipt.y = y + (h - isz.height) / 2
-            elif flag & wx.ALIGN_BOTTOM:
-                ipt.y = y + (h - isz.height)
-
-        item.SetDimension(ipt, isz)
-
-
-#----------------------------------------------------------------------
-#----------------------------------------------------------------------
-
-
-