Lots of updates for Sizers:

* Add wxStaticBoxSizer
* Add the AddMany and other convenience methods from Classic
* properly handle the userData args for the sizer methods too
* some refactoring
* Add unittests

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@69624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2011-10-31 23:53:58 +00:00
parent c3dd6b1245
commit 987e39ae45
2 changed files with 171 additions and 24 deletions

59
unittests/test_sizer.py Normal file
View File

@@ -0,0 +1,59 @@
import imp_unittest, unittest
import wtc
import wx
#---------------------------------------------------------------------------
class sizer_Tests(wtc.WidgetTestCase):
def test_sizerBox(self):
bs = wx.BoxSizer()
def test_sizerStatBox(self):
sbs1 = wx.StaticBoxSizer(wx.StaticBox(self.frame, label='label'), wx.VERTICAL)
sbs2 = wx.StaticBoxSizer(wx.HORIZONTAL, self.frame, 'label')
def test_sizerGrid(self):
gs1 = wx.GridSizer(4, 5, 6)
gs2 = wx.GridSizer(4, (5,6))
gs3 = wx.GridSizer(cols=4, hgap=5, vgap=6)
def test_sizerFlexGrid(self):
fgs1 = wx.FlexGridSizer(4, 5, 6)
fgs2 = wx.FlexGridSizer(4, (5,6))
fgs3 = wx.FlexGridSizer(cols=4, hgap=5, vgap=6)
def test_sizer2(self):
s = wx.BoxSizer(wx.VERTICAL)
s.Add(wx.Panel(self.frame))
s2 = wx.BoxSizer()
s.Add(s2)
self.frame.SetSizer(s)
def test_sizerUserData(self):
bs = wx.BoxSizer()
si = bs.Add(wx.Panel(self.frame), userData="MyData")
self.assertTrue(si.GetUserData() == "MyData")
def test_sizerFlags(self):
bs = wx.BoxSizer()
bs.Add(wx.Panel(self.frame),
wx.SizerFlags(2).Border(wx.ALL, 5).Align(wx.ALIGN_RIGHT))
def test_sizerAddMany(self):
bs = wx.BoxSizer()
bs.AddMany([ wx.Panel(self.frame), # item w/o tuple
(5,10), # spacer
(wx.Panel(self.frame), 1, wx.ALL, 5), # item in tuple w/ other args
])
items = bs.GetChildren()
self.assertTrue(len(items) == 3)
self.assertTrue(items[0].IsWindow())
self.assertTrue(items[1].IsSpacer())
self.assertTrue(items[2].Border == 5)
#---------------------------------------------------------------------------
if __name__ == '__main__':
unittest.main()