Have SetSizerProps internally handle the assignment of growable rows and cols.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -330,7 +330,8 @@ def GetSizerProps(self):
|
|||||||
def SetSizerProp(self, prop, value):
|
def SetSizerProp(self, prop, value):
|
||||||
|
|
||||||
lprop = prop.lower()
|
lprop = prop.lower()
|
||||||
item = self.GetParent().GetSizer().GetItem(self)
|
sizer = self.GetParent().GetSizer()
|
||||||
|
item = sizer.GetItem(self)
|
||||||
flag = item.GetFlag()
|
flag = item.GetFlag()
|
||||||
if lprop == "proportion":
|
if lprop == "proportion":
|
||||||
item.SetProportion(int(value))
|
item.SetProportion(int(value))
|
||||||
@@ -360,6 +361,27 @@ def SetSizerProp(self, prop, value):
|
|||||||
else:
|
else:
|
||||||
flag = flag | misc_flags[lprop]
|
flag = flag | misc_flags[lprop]
|
||||||
|
|
||||||
|
# auto-adjust growable rows/columns if expand or proportion is set
|
||||||
|
# on a sizer item in a FlexGridSizer
|
||||||
|
if lprop in ["expand", "proportion"] and isinstance(sizer, wx.FlexGridSizer):
|
||||||
|
cols = sizer.GetCols()
|
||||||
|
rows = sizer.GetRows()
|
||||||
|
# FIXME: I'd like to get the item index in the sizer instead, but
|
||||||
|
# doing sizer.GetChildren.index(item) always gives an error
|
||||||
|
itemnum = self.GetParent().GetChildren().index(self)
|
||||||
|
|
||||||
|
col = 0
|
||||||
|
row = 0
|
||||||
|
if cols == 0:
|
||||||
|
col, row = divmod( itemnum, rows )
|
||||||
|
else:
|
||||||
|
row, col = divmod( itemnum, cols )
|
||||||
|
|
||||||
|
if lprop == "expand":
|
||||||
|
sizer.AddGrowableCol(col)
|
||||||
|
elif lprop == "proportion" and int(value) != 0:
|
||||||
|
sizer.AddGrowableRow(row)
|
||||||
|
|
||||||
item.SetFlag(flag)
|
item.SetFlag(flag)
|
||||||
|
|
||||||
def SetSizerProps(self, props={}, **kwargs):
|
def SetSizerProps(self, props={}, **kwargs):
|
||||||
@@ -462,7 +484,7 @@ class SizedPanel(wx.PyPanel):
|
|||||||
elif type == "form":
|
elif type == "form":
|
||||||
#sizer = TableSizer(2, 0)
|
#sizer = TableSizer(2, 0)
|
||||||
sizer = wx.FlexGridSizer(0, 2, 0, 0)
|
sizer = wx.FlexGridSizer(0, 2, 0, 0)
|
||||||
sizer.AddGrowableCol(1)
|
#sizer.AddGrowableCol(1)
|
||||||
|
|
||||||
elif type == "table":
|
elif type == "table":
|
||||||
rows = cols = 0
|
rows = cols = 0
|
||||||
|
Reference in New Issue
Block a user