--- /dev/null
+from wxPython.wx import *
+#from Lib.Gui.PlainWidgets import *
+
+class TestLayoutConstraints(wxPanel):
+ def __init__(self, parent):
+ wxPanel.__init__(self, parent, -1)
+ #
+ nb = wxNotebook(self, -1)
+ page = wxPanel(nb, -1)
+ page.SetBackgroundColour(wxBLUE)
+ button = wxButton(page, -1, 'press me')
+ #
+ nb.AddPage(page, 'testpage')
+ #
+ lc = wxLayoutConstraints()
+ lc.top.PercentOf(parent, wxBottom, 0)
+ lc.bottom.PercentOf(parent, wxBottom, 100)
+ lc.left.PercentOf(parent, wxRight, 0)
+ lc.right.PercentOf(parent, wxRight, 100)
+ self.SetConstraints(lc)
+ self.SetAutoLayout(true)
+ #
+ lc = wxLayoutConstraints()
+ lc.top.PercentOf(self, wxBottom, 0)
+ lc.bottom.PercentOf(self, wxBottom, 100)
+ lc.left.PercentOf(self, wxRight, 0)
+ lc.right.PercentOf(self, wxRight, 100)
+ nb.SetConstraints(lc)
+# nb.SetAutoLayout(true)
+ #
+# lc = wxLayoutConstraints()
+# lc.top.PercentOf(nb, wxBottom, 0)
+# lc.bottom.PercentOf(nb, wxBottom, 100)
+# lc.left.PercentOf(nb, wxRight, 0)
+# lc.right.PercentOf(nb, wxRight, 100)
+# page.SetConstraints(lc)
+ page.SetAutoLayout(true)
+
+ # this should center "button" on "page":
+ lc = wxLayoutConstraints()
+ lc.centreY.PercentOf(page, wxBottom, 50)
+ lc.centreX.PercentOf(page, wxRight, 50)
+ lc.width.AsIs()
+ lc.height.AsIs()
+ button.SetConstraints(lc)
+# button.SetAutoLayout(true)
+ #
+ button.Layout()
+ page.Layout()
+ nb.Layout()
+ self.Layout()
+
+
+if __name__ == "__main__":
+ class MyFrame(wxFrame):
+ def __init__(self, *argT, **optionD):
+ apply(wxFrame.__init__, (self,) + argT, optionD)
+ self.SetAutoLayout(true)
+ TestLayoutConstraints(self)
+
+ class MyApp(wxApp):
+ def OnInit(self):
+ frame = MyFrame(None, -1, "TestLayoutConstraints",
+ size=wxSize(400,300))
+ frame.Show(true)
+ return true
+
+ app = MyApp()
+ app.MainLoop()