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:
parent
b72aa48cde
commit
854a4cc38a
@ -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) )
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user