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)):
|
for i in range(len(self.rowHeights)):
|
||||||
height = self.rowHeights[i]
|
height = self.rowHeights[i]
|
||||||
rpos[i] = px
|
rpos[i] = py
|
||||||
px += height
|
py += height
|
||||||
|
|
||||||
for i in range(len(self.colWidths)):
|
for i in range(len(self.colWidths)):
|
||||||
width = self.colWidths[i]
|
width = self.colWidths[i]
|
||||||
cpos[i] = py
|
cpos[i] = px
|
||||||
py += width
|
px += width
|
||||||
|
|
||||||
# iterate children and set dimensions...
|
# iterate children and set dimensions...
|
||||||
for item in self.GetChildren():
|
for item in self.GetChildren():
|
||||||
r, c, r2, c2 = item.GetUserData()
|
r, c, r2, c2 = item.GetUserData()
|
||||||
width = reduce( operator.add, self.colWidths[c:c2] )
|
width = reduce( operator.add, self.colWidths[c:c2] )
|
||||||
height = reduce( operator.add, self.rowHeights[r:r2] )
|
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 )
|
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