File: SashLayout.py

package info (click to toggle)
boa-constructor 0.4.4cvs20050714-4
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 10,080 kB
  • ctags: 9,175
  • sloc: python: 56,189; sh: 545; makefile: 40
file content (128 lines) | stat: -rw-r--r-- 5,921 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#Boa:Frame:Frame1

import wx

def create(parent):
    return Frame1(parent)

[wxID_FRAME1, wxID_FRAME1PANEL1, wxID_FRAME1SASHLAYOUTWINDOW1, 
 wxID_FRAME1SASHLAYOUTWINDOW2, wxID_FRAME1SASHLAYOUTWINDOW3, 
 wxID_FRAME1SASHLAYOUTWINDOW4, wxID_FRAME1STATICTEXT1, wxID_FRAME1TEXTCTRL1, 
 wxID_FRAME1TEXTCTRL2, 
] = [wx.NewId() for _init_ctrls in range(9)]

class Frame1(wx.Frame):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_FRAME1, name='Frame1', parent=prnt,
              pos=wx.Point(327, 136), size=wx.Size(518, 376),
              style=wx.DEFAULT_FRAME_STYLE, title='Sash layout')
        self.SetClientSize(wx.Size(510, 349))
        self.Bind(wx.EVT_SIZE, self.OnWxframe1Size)

        self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1', parent=self,
              pos=wx.Point(248, 50), size=wx.Size(262, 234),
              style=wx.TAB_TRAVERSAL)

        self.sashLayoutWindow1 = wx.SashLayoutWindow(id=wxID_FRAME1SASHLAYOUTWINDOW1,
              name='sashLayoutWindow1', parent=self, pos=wx.Point(0, 0),
              size=wx.Size(510, 50), style=wx.CLIP_CHILDREN | wx.SW_3D)
        self.sashLayoutWindow1.SetBackgroundColour(wx.Colour(255, 0, 0))
        self.sashLayoutWindow1.SetOrientation(wx.LAYOUT_HORIZONTAL)
        self.sashLayoutWindow1.SetAlignment(wx.LAYOUT_TOP)
        self.sashLayoutWindow1.SetSashVisible(wx.SASH_BOTTOM, True)
        self.sashLayoutWindow1.SetDefaultSize(wx.Size(510, 50))
        self.sashLayoutWindow1.Bind(wx.EVT_SASH_DRAGGED,
              self.OnSashlayoutwindow1SashDragged,
              id=wxID_FRAME1SASHLAYOUTWINDOW1)

        self.sashLayoutWindow4 = wx.SashLayoutWindow(id=wxID_FRAME1SASHLAYOUTWINDOW4,
              name='sashLayoutWindow4', parent=self, pos=wx.Point(0, 284),
              size=wx.Size(510, 65), style=wx.CLIP_CHILDREN | wx.SW_3D)
        self.sashLayoutWindow4.SetBackgroundColour(wx.Colour(0, 0, 255))
        self.sashLayoutWindow4.SetAlignment(wx.LAYOUT_BOTTOM)
        self.sashLayoutWindow4.SetSashVisible(wx.SASH_TOP, True)
        self.sashLayoutWindow4.SetOrientation(wx.LAYOUT_HORIZONTAL)
        self.sashLayoutWindow4.SetDefaultSize(wx.Size(308, 65))
        self.sashLayoutWindow4.SetExtraBorderSize(10)
        self.sashLayoutWindow4.Bind(wx.EVT_SASH_DRAGGED,
              self.OnSashlayoutwindow4SashDragged,
              id=wxID_FRAME1SASHLAYOUTWINDOW4)

        self.sashLayoutWindow2 = wx.SashLayoutWindow(id=wxID_FRAME1SASHLAYOUTWINDOW2,
              name='sashLayoutWindow2', parent=self, pos=wx.Point(0, 50),
              size=wx.Size(112, 234), style=wx.CLIP_CHILDREN | wx.SW_3D)
        self.sashLayoutWindow2.SetBackgroundColour(wx.Colour(128, 255, 0))
        self.sashLayoutWindow2.SetExtraBorderSize(20)
        self.sashLayoutWindow2.SetAlignment(wx.LAYOUT_LEFT)
        self.sashLayoutWindow2.SetOrientation(wx.LAYOUT_VERTICAL)
        self.sashLayoutWindow2.SetSashVisible(wx.SASH_RIGHT, True)
        self.sashLayoutWindow2.SetDefaultSize(wx.Size(112, 113))
        self.sashLayoutWindow2.Bind(wx.EVT_SASH_DRAGGED,
              self.OnSashlayoutwindow2SashDragged,
              id=wxID_FRAME1SASHLAYOUTWINDOW2)

        self.sashLayoutWindow3 = wx.SashLayoutWindow(id=wxID_FRAME1SASHLAYOUTWINDOW3,
              name='sashLayoutWindow3', parent=self, pos=wx.Point(112, 50),
              size=wx.Size(136, 234), style=wx.CLIP_CHILDREN | wx.SW_3D)
        self.sashLayoutWindow3.SetBackgroundColour(wx.Colour(0, 255, 255))
        self.sashLayoutWindow3.SetAlignment(wx.LAYOUT_LEFT)
        self.sashLayoutWindow3.SetOrientation(wx.LAYOUT_VERTICAL)
        self.sashLayoutWindow3.SetSashVisible(wx.SASH_RIGHT, True)
        self.sashLayoutWindow3.SetDefaultSize(wx.Size(136, 234))
        self.sashLayoutWindow3.Bind(wx.EVT_SASH_DRAGGED,
              self.OnSashlayoutwindow3SashDragged,
              id=wxID_FRAME1SASHLAYOUTWINDOW3)

        self.textCtrl1 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL1, name='textCtrl1',
              parent=self.sashLayoutWindow2, pos=wx.Point(20, 20),
              size=wx.Size(69, 194), style=0, value='textCtrl1')

        self.staticText1 = wx.StaticText(id=wxID_FRAME1STATICTEXT1,
              label='staticText1', name='staticText1', parent=self.panel1,
              pos=wx.Point(16, 16), size=wx.Size(52, 13), style=0)

        self.textCtrl2 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL2, name='textCtrl2',
              parent=self.sashLayoutWindow4, pos=wx.Point(10, 13),
              size=wx.Size(490, 42), style=0, value='textCtrl2')

    def __init__(self, parent):
        self._init_ctrls(parent)

    def checkStatusRange(self, event):
        return event.GetDragStatus() != wx.SASH_STATUS_OUT_OF_RANGE

    def doLayout(self):
        wx.LayoutAlgorithm().LayoutWindow(self, self.panel1)
        self.panel1.Refresh()

    def OnWxframe1Size(self, event):
        self.doLayout()

    def OnSashlayoutwindow1SashDragged(self, event):
        if self.checkStatusRange(event):
            self.sashLayoutWindow1.SetDefaultSize(wx.Size(1000, event.GetDragRect().height))
            self.doLayout()

    def OnSashlayoutwindow2SashDragged(self, event):
        if self.checkStatusRange(event):
            self.sashLayoutWindow2.SetDefaultSize(wx.Size(event.GetDragRect().width, 1000))
            self.doLayout()

    def OnSashlayoutwindow3SashDragged(self, event):
        if self.checkStatusRange(event):
            self.sashLayoutWindow3.SetDefaultSize(wx.Size(event.GetDragRect().width, 1000))
            self.doLayout()

    def OnSashlayoutwindow4SashDragged(self, event):
        if self.checkStatusRange(event):
            self.sashLayoutWindow4.SetDefaultSize(wx.Size(1000, event.GetDragRect().height))
            self.doLayout()


if __name__ == '__main__':
    app = wx.PySimpleApp()
    wx.InitAllImageHandlers()
    frame = create(None)
    frame.Show()
    app.MainLoop()