Fixed bug when sizer if offset from 0,0. Also removed old commented out code

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2002-05-22 17:22:11 +00:00
parent b72aa48cde
commit 854a4cc38a

View File

@ -156,20 +156,19 @@ class RowColSizer(wxPySizer):
for i in range(len(self.rowHeights)):
height = self.rowHeights[i]
rpos[i] = px
px += height
rpos[i] = py
py += height
for i in range(len(self.colWidths)):
width = self.colWidths[i]
cpos[i] = py
py += width
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] )
#item.SetDimension( (cpos[c], rpos[r]), (width, height))
self.SetItemBounds( item, cpos[c], rpos[r], width, height )
@ -202,118 +201,3 @@ class RowColSizer(wxPySizer):
## #--------------------------------------------------
## def _add( self, size, opt, dim ):
## r,c,r2,c2 = dim
## if r2 > len(self.rows0):
## x = [self.row_h] * (r2-len(self.rows0))
## self.rows0.extend( x )
## self.rows1.extend( x )
## if c2 > len(self.cols0):
## x = [self.col_w] * (c2-len(self.cols0))
## self.cols0.extend( x )
## self.cols1.extend( x )
## if opt == 0: # fixed
## scale = (r2-r)
## for i in range(r,r2):
## self.rows1[i] = self.rows0[i] = max( self.rows0[i], size.y/scale )
## scale = (c2-c)
## for i in range(c,c2):
## self.cols1[i] = self.cols0[i] = max( self.cols0[i], size.x/scale )
## else:
## scale = (r2-r)
## for i in range(r,r2):
## self.rows0[i] = max( self.rows0[i], size.y/scale )
## self.rows1[i] = self.rows0[i] * opt
## scale = (c2-c)
## for i in range(c,c2):
## self.cols0[i] = max( self.cols0[i], size.x/scale )
## self.cols1[i] = self.cols0[i] * opt
## #--------------------------------------------------
## def CalcMin( self ):
## children = self.GetChildren()
## if not children:
## return wxSize(10, 10)
## self.rows0 = []
## self.cols0 = []
## self.rows1 = []
## self.cols1 = []
## for cell in children:
## self._add( cell.CalcMin(), cell.GetOption(), cell.GetUserData() )
## self.minWidth = reduce( operator.add, self.cols1 )
## self.minHeight = reduce( operator.add, self.rows1 )
## self.fixedWidth = reduce( operator.add, self.cols0 ) # size without stretched widgets
## self.fixedHeight = reduce( operator.add, self.rows0 )
## return wxSize( self.minWidth, self.minHeight )
## #--------------------------------------------------
## def RecalcSizes( self ):
## # get current dimensions, save for performance
## myWidth = self.GetSize().x
## myHeight = self.GetSize().y
## # relative recent positions
## px = self.GetPosition().x
## py = self.GetPosition().y
## # calculate space for one stretched item
## stretchC = 0
## for i in range(len(self.cols0)):
## if self.cols1[i] <> self.cols0[i]:
## stretchC = stretchC + self.cols1[i] / self.cols0[i]
## if myWidth > self.fixedWidth and stretchC:
## deltaw = (myWidth - self.fixedWidth) / stretchC
## extraw = (myWidth - self.fixedWidth) % stretchC
## else:
## deltaw = extraw = 0
## stretchR = 0
## for i in range(len(self.rows0)):
## if self.rows1[i] <> self.rows0[i]:
## stretchR = stretchR + self.rows1[i] / self.rows0[i]
## if myHeight > self.fixedHeight and stretchR:
## deltah = (myHeight - self.fixedHeight) / stretchR
## extrah = (myHeight - self.fixedHeight) % stretchR
## else:
## deltah = extrah = 0
## self.rpos = [0] * len( self.rows0 )
## self.cpos = [0] * len( self.cols0 )
## for i in range(len(self.rows0)):
## newHeight = self.rows0[i]
## if self.rows1[i] <> self.rows0[i]:
## weight = self.rows1[i] / self.rows0[i]
## # first stretchable gets extra pixels
## newHeight = newHeight + (deltah * weight) + extrah
## extrah = 0
## self.rpos[i] = py
## self.rows1[i] = newHeight
## py = py + newHeight
## for i in range(len(self.cols0)):
## newWidth = self.cols0[i]
## if self.cols1[i] <> self.cols0[i]:
## weight = self.cols1[i] / self.cols0[i]
## # first stretchable gets extra pixels
## newWidth = newWidth + (deltaw * weight) + extraw
## extraw = 0
## self.cpos[i] = px
## self.cols1[i] = newWidth
## px = px + newWidth
## # iterate children ...
## for cell in self.GetChildren():
## r,c,r2,c2 = cell.GetUserData()
## newWidth = reduce( operator.add, self.cols1[c:c2] )
## newHeight = reduce( operator.add, self.rows1[r:r2] )
## cell.SetDimension( (self.cpos[c], self.rpos[r]), (newWidth, newHeight) )