X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec873c943d71f0d5f13e3398557071448cda6c23..a4027e74873007e3430af3bd77019bcab76f6c04:/wxPython/demo/GridBagSizer.py diff --git a/wxPython/demo/GridBagSizer.py b/wxPython/demo/GridBagSizer.py deleted file mode 100644 index 25ef8cdb00..0000000000 --- a/wxPython/demo/GridBagSizer.py +++ /dev/null @@ -1,168 +0,0 @@ - -import wx # This module uses the new wx namespace - -#---------------------------------------------------------------------- -gbsDescription = """\ -The wx.GridBagSizer is similar to the wx.FlexGridSizer except the items are explicitly positioned -in a virtual cell of the layout grid, and column or row spanning is allowed. For example, this -static text is positioned at (0,0) and it spans 7 columns. -""" - - -class TestFrame(wx.Frame): - def __init__(self): - wx.Frame.__init__(self, None, -1, "wx.GridBagSizer") - p = wx.Panel(self, -1, style = wx.TAB_TRAVERSAL - | wx.CLIP_CHILDREN - | wx.FULL_REPAINT_ON_RESIZE - ) - p.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) - - gbs = self.gbs = wx.GridBagSizer(5, 5) - - gbs.Add( wx.StaticText(p, -1, gbsDescription), - (0,0), (1,7), wx.ALIGN_CENTER | wx.ALL, 5) - - gbs.Add( wx.TextCtrl(p, -1, "pos(1,0)"), (1,0) ) - gbs.Add( wx.TextCtrl(p, -1, "pos(1,1)"), (1,1) ) - gbs.Add( wx.TextCtrl(p, -1, "pos(2,0)"), (2,0) ) - gbs.Add( wx.TextCtrl(p, -1, "pos(2,1)"), (2,1) ) - - gbs.Add( wx.TextCtrl(p, -1, "pos(3,2), span(1,2)\nthis row and col are growable", style=wx.TE_MULTILINE), - (3,2), (1,2), flag=wx.EXPAND ) - - gbs.Add( wx.TextCtrl(p, -1, "pos(4,3), span(3,1)", style=wx.TE_MULTILINE), - (4,3), (3,1), wx.EXPAND) - - gbs.Add( wx.TextCtrl(p, -1, "pos(5,4)"), (5,4), flag=wx.EXPAND ) - gbs.Add( wx.TextCtrl(p, -1, "pos(6,5)"), (6,5), flag=wx.EXPAND ) - gbs.Add( wx.TextCtrl(p, -1, "pos(7,6)"), (7,6) ) - - moveBtn1 = wx.Button(p, -1, "Move this to (3,6)") - moveBtn2 = wx.Button(p, -1, "Move this to (3,6)"); - gbs.Add( moveBtn1, (10,2) ) - gbs.Add( moveBtn2, (10,3) ) - - hideBtn = wx.Button(p, -1, "Hide this item -->") - gbs.Add(hideBtn, (12, 3)) - - hideTxt = wx.TextCtrl(p, -1, "pos(12,4), size(150, -1)", size = (150,-1)) - gbs.Add( hideTxt, (12,4) ) - - showBtn = wx.Button(p, -1, "<-- Show it again") - gbs.Add(showBtn, (12, 5)) - showBtn.Disable() - self.hideBtn = hideBtn - self.showBtn = showBtn - self.hideTxt = hideTxt - - self.Bind(wx.EVT_BUTTON, self.OnHideButton, hideBtn) - self.Bind(wx.EVT_BUTTON, self.OnShowButton, showBtn) - self.Bind(wx.EVT_BUTTON, self.OnMoveButton, moveBtn1) - self.Bind(wx.EVT_BUTTON, self.OnMoveButton, moveBtn2) - - # Add a spacer at the end to ensure some extra space at the bottom - gbs.Add((10,10), (14,7)) - - gbs.AddGrowableRow(3) - gbs.AddGrowableCol(2) - - p.SetSizerAndFit(gbs) - self.SetClientSize(p.GetSize()) - - - def OnHideButton(self, evt): - self.gbs.Hide(self.hideTxt) - self.hideBtn.Disable() - self.showBtn.Enable() - self.gbs.Layout() - - - def OnShowButton(self, evt): - self.gbs.Show(self.hideTxt) - self.hideBtn.Enable() - self.showBtn.Disable() - self.gbs.Layout() - - - def OnMoveButton(self, evt): - btn = evt.GetEventObject() - curPos = self.gbs.GetItemPosition(btn) - - # if it's already at the "other" spot then move it back - if curPos == (3,6): - self.gbs.SetItemPosition(btn, self.lastPos) - btn.SetLabel("Move this to (3,6)") - else: - if self.gbs.CheckForIntersectionPos( (3,6), (1,1) ): - wx.MessageBox("""\ -wx.GridBagSizer will not allow items to be in the same cell as -another item, so this operation will fail. You will also get an -assert when compiled in debug mode.""", - "Warning", wx.OK | wx.ICON_INFORMATION) - - try: - if self.gbs.SetItemPosition(btn, (3,6)): - self.lastPos = curPos - btn.SetLabel("Move it back") - except wx.PyAssertionError: - pass - - self.gbs.Layout() - - - def OnLeftDown(self, evt): - pt = evt.GetPosition() - item = self.gbs.FindItemAtPoint(pt) - if item is None: - print "no item at", `pt` - else: - print "item found: ", `item.GetPos()`, "--", `item.GetSpan()` - - -#--------------------------------------------------------------------------- - -class TestPanel(wx.Panel): - def __init__(self, parent, log): - self.log = log - wx.Panel.__init__(self, parent, -1) - - b = wx.Button(self, -1, "Show the GridBagSizer sample", (50,50)) - self.Bind(wx.EVT_BUTTON, self.OnButton, b) - - - def OnButton(self, evt): - win = TestFrame() - win.Show(True) - - - -#--------------------------------------------------------------------------- - - -def runTest(frame, nb, log): - win = TestPanel(nb, log) - return win - - -#---------------------------------------------------------------------- - - - -overview = """
-