X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec873c943d71f0d5f13e3398557071448cda6c23..a4027e74873007e3430af3bd77019bcab76f6c04:/wxPython/demo/LayoutAnchors.py diff --git a/wxPython/demo/LayoutAnchors.py b/wxPython/demo/LayoutAnchors.py deleted file mode 100644 index 153450e016..0000000000 --- a/wxPython/demo/LayoutAnchors.py +++ /dev/null @@ -1,257 +0,0 @@ - -import wx -import wx.lib.anchors as anchors - -#---------------------------------------------------------------------- - -# Nifty little trick here; apply wx.NewId() to generate a series of -# IDs used later on in the app. - -[ ID_ANCHORSDEMOFRAMEANCHOREDPANEL, - ID_ANCHORSDEMOFRAMEHELPSTATICTEXT, - ID_ANCHORSDEMOFRAMEMAINPANEL, - ID_ANCHORSDEMOFRAMEBACKGROUNDPANEL, - ID_ANCHORSDEMOFRAMERIGHTCHECKBOX, - ID_ANCHORSDEMOFRAMEOKBUTTON, - ID_ANCHORSDEMOFRAMETOPCHECKBOX, - ID_ANCHORSDEMOFRAMEBOTTOMCHECKBOX, - ID_ANCHORSDEMOFRAME, - ID_ANCHORSDEMOFRAMELEFTCHECKBOX, - ] = map(lambda _init_ctrls: wx.NewId(), range(10)) - -# A small note here: while only certain parts of this frame are actually demonstrating -# the capabilities of the LayoutAnchors feature, all the controls are within the same -# frame; therefore, all controls and windows within the frame must use LayoutAnchors. -# You can't mix LayoutAnchors and sizers. -class AnchorsDemoFrame(wx.Frame): - def _init_utils(self): - pass - - def _init_ctrls(self, prnt): - wx.Frame.__init__( - self, size=(328, 187), id=ID_ANCHORSDEMOFRAME, - title='LayoutAnchors Demonstration', parent=prnt, - name='AnchorsDemoFrame', - style = wx.DEFAULT_FRAME_STYLE | wx.CLIP_CHILDREN, pos=(261, 123) - ) - - self._init_utils() - - self.mainPanel = wx.Panel( - size=(320, 160), parent=self, - id=ID_ANCHORSDEMOFRAMEMAINPANEL, name='panel1', - style=wx.TAB_TRAVERSAL | wx.CLIP_CHILDREN - | wx.FULL_REPAINT_ON_RESIZE, - pos=(0, 0) - ) - - self.mainPanel.SetAutoLayout(True) - - self.okButton = wx.Button( - label='OK', id=ID_ANCHORSDEMOFRAMEOKBUTTON, - parent=self.mainPanel, name='okButton', - size=(72, 24), style=0, pos=(240, 128) - ) - - self.okButton.SetConstraints( - anchors.LayoutAnchors(self.okButton, False, False, True, True) - ) - - self.Bind( - wx.EVT_BUTTON, self.OnOkButtonButton, id=ID_ANCHORSDEMOFRAMEOKBUTTON - ) - - self.backgroundPanel = wx.Panel( - size=(304, 80), parent=self.mainPanel, - id=ID_ANCHORSDEMOFRAMEBACKGROUNDPANEL, - name='backgroundPanel', - style=wx.SIMPLE_BORDER | wx.CLIP_CHILDREN, - pos = (8, 40) - ) - - self.backgroundPanel.SetBackgroundColour(wx.Colour(255, 255, 255)) - self.backgroundPanel.SetConstraints( - anchors.LayoutAnchors(self.backgroundPanel, True, True, True, True) - ) - - self.anchoredPanel = wx.Panel( - size=(88, 48), id=ID_ANCHORSDEMOFRAMEANCHOREDPANEL, - parent=self.backgroundPanel, name='anchoredPanel', - style=wx.SIMPLE_BORDER, pos=(104, 16) - ) - - self.anchoredPanel.SetBackgroundColour(wx.Colour(0, 0, 222)) - self.anchoredPanel.SetConstraints( - anchors.LayoutAnchors(self.anchoredPanel, False, False, False, False) - ) - - self.leftCheckBox = wx.CheckBox( - label='Left', id=ID_ANCHORSDEMOFRAMELEFTCHECKBOX, - parent=self.mainPanel, name='leftCheckBox', - style=0, pos=(8, 8) - ) - - self.leftCheckBox.SetConstraints( - anchors.LayoutAnchors(self.leftCheckBox, False, True, False, False) - ) - - self.Bind( - wx.EVT_CHECKBOX, self.OnCheckboxCheckbox, source=self.leftCheckBox, - id=ID_ANCHORSDEMOFRAMELEFTCHECKBOX - ) - - self.topCheckBox = wx.CheckBox( - label='Top', id=ID_ANCHORSDEMOFRAMETOPCHECKBOX, - parent=self.mainPanel, name='topCheckBox', - style=0, pos=(88, 8) - ) - - self.topCheckBox.SetConstraints( - anchors.LayoutAnchors(self.topCheckBox, False, True, False, False) - ) - - self.Bind( - wx.EVT_CHECKBOX, self.OnCheckboxCheckbox, source=self.topCheckBox, - id=ID_ANCHORSDEMOFRAMETOPCHECKBOX - ) - - self.rightCheckBox = wx.CheckBox( - label='Right', id=ID_ANCHORSDEMOFRAMERIGHTCHECKBOX, - parent=self.mainPanel, name='rightCheckBox', - style=0, pos=(168, 8) - ) - - self.rightCheckBox.SetConstraints( - anchors.LayoutAnchors(self.rightCheckBox, False, True, False, False) - ) - - self.Bind( - wx.EVT_CHECKBOX, self.OnCheckboxCheckbox, source=self.rightCheckBox, - id=ID_ANCHORSDEMOFRAMERIGHTCHECKBOX - ) - - self.bottomCheckBox = wx.CheckBox( - label='Bottom', id=ID_ANCHORSDEMOFRAMEBOTTOMCHECKBOX, - parent=self.mainPanel, name='bottomCheckBox', - style=0, pos=(248, 8) - ) - - self.bottomCheckBox.SetConstraints( - anchors.LayoutAnchors(self.bottomCheckBox, False, True, False, False) - ) - - self.Bind( - wx.EVT_CHECKBOX, self.OnCheckboxCheckbox, source=self.bottomCheckBox, - id=ID_ANCHORSDEMOFRAMEBOTTOMCHECKBOX - ) - - self.helpStaticText = wx.StaticText( - label='Select anchor options above, then resize window to see the effect', - id=ID_ANCHORSDEMOFRAMEHELPSTATICTEXT, - parent=self.mainPanel, name='helpStaticText', - size=(224, 24), style=wx.ST_NO_AUTORESIZE, - pos=(8, 128) - ) - - self.helpStaticText.SetConstraints( - anchors.LayoutAnchors(self.helpStaticText, True, False, True, True) - ) - - def __init__(self, parent): - self._init_ctrls(parent) - - # Based on the values of the above checkboxes, we will adjust the layout constraints - # on the sample window whenever one of the checkboxes changes state. - def OnCheckboxCheckbox(self, event): - self.anchoredPanel.SetConstraints( - anchors.LayoutAnchors(self.anchoredPanel, - self.leftCheckBox.GetValue(), self.topCheckBox.GetValue(), - self.rightCheckBox.GetValue(), self.bottomCheckBox.GetValue() - ) - ) - - def OnOkButtonButton(self, event): - self.Close() - -#--------------------------------------------------------------------------- - -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 LayoutAnchors sample", (50,50)) - self.Bind(wx.EVT_BUTTON, self.OnButton, b) - - - def OnButton(self, evt): - win = AnchorsDemoFrame(self) - win.Show(True) - - -#--------------------------------------------------------------------------- - - -def runTest(frame, nb, log): - win = TestPanel(nb, log) - return win - -#---------------------------------------------------------------------- - - -overview = """
-- Anchored sides maintain the distance from the edge of the - control to the same edge of the parent. - When neither side is selected, the control keeps the same - relative position to both sides. -
- The current position and size of the control and it's parent - is used when setting up the constraints. To change the size or - position of an already anchored control, set the constraints to - None, reposition or resize and reapply the anchors. -
- Examples: -
- Let's anchor the right and bottom edge of a control and - resize it's parent. -
-
- ctrl.SetConstraints(LayoutAnchors(ctrl, left=0, top=0, right=1, bottom=1)) - - +=========+ +===================+ - | +-----+ | | | - | | * | -> | | - | +--*--+ | | +-----+ | - +---------+ | | * | - | +--*--+ | - +-------------------+ - * = anchored edge --
- When anchored on both sides the control will stretch horizontally. -
-
- ctrl.SetConstraints(LayoutAnchors(ctrl, 1, 0, 1, 1)) - - +=========+ +===================+ - | +-----+ | | | - | * * | -> | | - | +--*--+ | | +---------------+ | - +---------+ | * ctrl * | - | +-------*-------+ | - +-------------------+ - * = anchored edge -- -""" - - - -if __name__ == '__main__': - import sys,os - import run - run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:]) -