1 title = 'Pmw.PanedWidget demonstration'
3 # Import Pmw from this directory tree.
5 sys.path[:0] = ['../../..']
11 def __init__(self, parent):
13 # Create a main PanedWidget with a few panes.
14 self.pw = Pmw.PanedWidget(parent,
17 hull_relief = 'sunken',
20 for self.numPanes in range(4):
21 if self.numPanes == 1:
23 pane = self.pw.add(name, min = .1, max = .1)
25 name = 'Pane ' + str(self.numPanes)
26 pane = self.pw.add(name, min = .1, size = .25)
27 label = Tkinter.Label(pane, text = name)
28 label.pack(side = 'left', expand = 1)
29 button = Tkinter.Button(pane, text = 'Delete',
30 command = lambda s=self, n=name: s.deletePane(n))
31 button.pack(side = 'left', expand = 1)
32 # TODO: add buttons to invoke self.moveOneUp and self.moveOneUp.
34 self.pw.pack(expand = 1, fill='both')
36 buttonBox = Pmw.ButtonBox(parent)
37 buttonBox.pack(fill = 'x')
38 buttonBox.add('Add pane', command = self.addPane)
39 buttonBox.add('Move pane', command = self.move)
45 numPanes = len(self.pw.panes())
47 print 'No panes to move!'
50 if self.moveSrc >= numPanes:
51 self.moveSrc = numPanes - 1
52 if self.moveNewPos >= numPanes:
53 self.moveNewPos = numPanes - 1
54 print 'Moving pane', self.moveSrc, 'to new position', self.moveNewPos
55 self.pw.move(self.moveSrc, self.moveNewPos)
57 self.moveSrc, self.moveNewPos = self.moveNewPos, self.moveSrc
59 if self.moveNewPos == numPanes - 1:
61 if self.moveSrc == numPanes - 1:
64 self.moveSrc = self.moveSrc + 1
66 self.moveNewPos = self.moveNewPos + 1
67 self.moveBack = not self.moveBack
70 self.numPanes = self.numPanes + 1
71 name = 'Pane ' + str(self.numPanes)
73 pane = self.pw.add(name, min = .1, size = .25)
74 label = Tkinter.Label(pane, text = name)
75 label.pack(side = 'left', expand = 1)
76 button = Tkinter.Button(pane, text = 'Delete',
77 command = lambda s=self, n=name: s.deletePane(n))
78 button.pack(side = 'left', expand = 1)
79 self.pw.updatelayout()
81 def deletePane(self, name):
82 print 'Deleting', name
84 self.pw.updatelayout()
86 def moveOneUp(self, name):
87 self.pw.move(name, name, -1)
89 def moveOneDown(self, name):
90 self.pw.move(name, name, 1)
92 ######################################################################
94 # Create demo in root window for testing.
95 if __name__ == '__main__':
100 exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy)
101 exitButton.pack(side = 'bottom')