Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / amd64 / lib / python2.4 / site-packages / Pmw / Pmw_1_2 / doc / ButtonBox.html
CommitLineData
920dae64
AT
1
2 <html>
3 <head>
4 <meta name="description" content="Pmw - a toolkit for building high-level compound widgets in Python">
5 <meta name="content" content="python, megawidget, mega widget, compound widget, gui, tkinter">
6 <title>Pmw.ButtonBox reference manual</title>
7 </head>
8
9 <body bgcolor="#ffffff" text="#000000" link="#0000ee"
10 vlink="551a8b" alink="ff0000">
11
12 <h1 ALIGN="CENTER">Pmw.ButtonBox</h1>
13
14<center><IMG SRC=ButtonBox.gif ALT="" WIDTH=297 HEIGHT=65></center>
15<dl>
16<dt> <h3>Name</h3></dt><dd>
17<p>Pmw.ButtonBox() -
18 manager megawidget for buttons
19</p>
20
21
22</dd>
23<dt> <h3>Inherits</h3></dt><dd>
24<a href="MegaWidget.html">Pmw.MegaWidget</a><br>
25</dd>
26<dt> <h3>Description</h3></dt><dd>
27<p>
28 A button box is a container megawidget which manages a number of
29 buttons. One of these buttons may be specified as the default and
30 it will be displayed with the platform specific appearance for a
31 default button. The buttons may be laid out either horizontally
32 or vertically.</p>
33
34<p></p>
35
36
37</dd>
38<dt> <h3>Options</h3></dt><dd>
39Options for this megawidget and its base
40classes are described below.<p></p>
41<a name=option.labelmargin></a>
42<dl><dt> <strong>labelmargin
43</strong></dt><dd>
44Initialisation option. If the <strong>labelpos</strong> option is not <strong>None</strong>, this specifies the
45 distance between the <strong>label</strong> component and the rest of the
46 megawidget. The default is <strong>0</strong>.</p>
47
48
49</dd></dl>
50<a name=option.labelpos></a>
51<dl><dt> <strong>labelpos
52</strong></dt><dd>
53Initialisation option. Specifies where to place the <strong>label</strong> component. If not
54 <strong>None</strong>, it should be a concatenation of one or two of the
55 letters <strong>'n'</strong>, <strong>'s'</strong>, <strong>'e'</strong> and <strong>'w'</strong>. The first letter
56 specifies on which side of the megawidget to place the label.
57 If a second letter is specified, it indicates where on that
58 side to place the label. For example, if <strong>labelpos</strong> is <strong>'w'</strong>,
59 the label is placed in the center of the left hand side; if
60 it is <strong>'wn'</strong>, the label is placed at the top of the left
61 hand side; if it is <strong>'ws'</strong>, the label is placed at the
62 bottom of the left hand side.</p>
63<p> If <strong>None</strong>, a label component is not created. The default is <strong>None</strong>.</p>
64
65
66
67</dd></dl>
68<a name=option.orient></a>
69<dl><dt> <strong>orient
70</strong></dt><dd>
71Initialisation option. Specifies the orientation of the button box. This may be
72 <strong>'horizontal'</strong> or <strong>'vertical'</strong>. The default is <strong>'horizontal'</strong>.</p>
73
74
75</dd></dl>
76<a name=option.padx></a>
77<dl><dt> <strong>padx
78</strong></dt><dd>
79Initialisation option. Specifies a padding distance to leave between each button in the x
80 direction and also between the buttons and the outer edge of the
81 button box. The default is <strong>3</strong>.</p>
82
83
84</dd></dl>
85<a name=option.pady></a>
86<dl><dt> <strong>pady
87</strong></dt><dd>
88Initialisation option. Specifies a padding distance to leave between each button in the y
89 direction and also between the buttons and the outer edge of the
90 button box. The default is <strong>3</strong>.</p>
91
92
93</dd></dl>
94</dd>
95<dt> <h3>Components</h3></dt><dd>
96Components created by this megawidget and its base
97classes are described below.<p></p>
98<a name=component.frame></a>
99<dl><dt> <strong>frame
100</strong></dt><dd>
101If the <strong>label</strong> component has been created (that is, the <strong>labelpos</strong>
102 option is not <strong>None</strong>), the <strong>frame</strong> component is created to act as
103 the container of the buttons created by the <code>add()</code> and
104 <code>insert()</code> methods. If there is no <strong>label</strong> component, then no
105 <strong>frame</strong> component is created and the <strong>hull</strong> component acts as the
106 container. By default, this component is a Tkinter.Frame.</p>
107
108
109</dd></dl>
110<a name=component.hull></a>
111<dl><dt> <strong>hull
112</strong></dt><dd>
113This acts as the body for the entire megawidget. Other components
114 are created as children of the hull to further specialise this
115 class. By default, this component is a Tkinter.Frame.</p>
116
117
118</dd></dl>
119<a name=component.label></a>
120<dl><dt> <strong>label
121</strong></dt><dd>
122If the <strong>labelpos</strong> option is not <strong>None</strong>, this component is
123 created as a text label for the megawidget. See the
124 <strong>labelpos</strong> option for details. Note that to set, for example,
125 the <strong>text</strong> option of the label, you need to use the <strong>label_text</strong>
126 component option. By default, this component is a Tkinter.Label.</p>
127
128
129</dd></dl>
130</dd>
131<dt> <h3>Dynamic components</h3></dt><dd>
132<p>
133 Button components are created dynamically by the <code>add()</code> and
134 <code>insert()</code> methods. By default, the buttons are of type
135 Tkinter.Button and are created with a component group of
136 <strong>Button</strong>.</p>
137<p> </p>
138
139
140
141</dd>
142<a name=methods></a>
143<dt> <h3>Methods</h3></dt><dd>
144Only methods specific to this megawidget are described below.
145For a description of its inherited methods, see the
146manual for its base class
147<strong><a href="MegaWidget.html#methods">Pmw.MegaWidget</a></strong>.
148<p></p>
149<a name=method.add></a>
150<dl><dt> <strong>add</strong>(<em>componentName</em>, **<em>kw</em>)</dt><dd>
151Add a button to the end of the button box as a component named
152 <em>componentName</em>. Any keyword arguments present will be passed to the
153 constructor when creating the button. If the <strong>text</strong> keyword
154 argument is not given, the <strong>text</strong> option of the button defaults to
155 <em>componentName</em>. The method returns the component widget.</p>
156
157
158</dd></dl>
159<a name=method.alignbuttons></a>
160<dl><dt> <strong>alignbuttons</strong>(<em>when</em> = <strong>'later'</strong>)</dt><dd>
161Set the widths of all the buttons to be the same as the width of
162 the widest button. If <em>when</em> is <strong>'later'</strong>, this will occur when the
163 interpreter next becomes idle, otherwise the resizing will occur
164 immediately.</p>
165
166
167</dd></dl>
168<a name=method.button></a>
169<dl><dt> <strong>button</strong>(<em>buttonIndex</em>)</dt><dd>
170Return the button specified by <em>buttonIndex</em>, which may have any
171 of the forms accepted by the <code>index()</code> method.</p>
172
173
174</dd></dl>
175<a name=method.delete></a>
176<dl><dt> <strong>delete</strong>(<em>index</em>)</dt><dd>
177Delete the button given by <em>index</em> from the button box. <em>index</em>
178 may have any of the forms accepted by the <code>index()</code> method.</p>
179
180
181</dd></dl>
182<a name=method.index></a>
183<dl><dt> <strong>index</strong>(<em>index</em>, <em>forInsert</em> = <strong>0</strong>)</dt><dd>
184Return the numerical index of the button corresponding to <em>index</em>.
185 This may be specified in any of the following forms:</p>
186<dl><dt><em>name</em></dt><dd>Specifies the button named <em>name</em>.<p></p>
187
188</dd>
189<dt><em>number</em></dt><dd>Specifies the button numerically, where <strong>0</strong> corresponds to
190 the left (or top) button.<p></p>
191
192</dd>
193<dt><strong>Pmw.END</strong></dt><dd>Specifies the right (or bottom) button.<p></p>
194
195</dd>
196<dt><strong>Pmw.DEFAULT</strong></dt><dd>Specifies the current default button.<p></p>
197
198</dd></dl>
199<p> If <em>forInsert</em> is true, <strong>Pmw.END</strong> returns the number of buttons rather
200 than the index of the last button.</p>
201
202
203
204</dd></dl>
205<a name=method.insert></a>
206<dl><dt> <strong>insert</strong>(<em>componentName</em>, <em>beforeComponent</em> = <strong>0</strong>, **<em>kw</em>)</dt><dd>
207Add a button to the button box as a component named
208 <em>componentName</em>. The button is added just before the button
209 specified by <em>beforeComponent</em>, which may have any of the forms
210 accepted by the <code>index()</code> method. Any keyword arguments present
211 will be passed to the constructor when creating the button. If
212 the <strong>text</strong> keyword argument is not given, the <strong>text</strong> option of the
213 button defaults to <em>componentName</em>. To add a button to the end of
214 the button box, use <code>add()</code>. The method returns the component
215 widget.</p>
216
217
218</dd></dl>
219<a name=method.invoke></a>
220<dl><dt> <strong>invoke</strong>(<em>index</em> = <strong>Pmw.DEFAULT</strong>, <em>noFlash</em> = <strong>0</strong>)</dt><dd>
221Invoke the callback command associated with the button specified
222 by <em>index</em> and return the value returned by the callback.
223 Unless <em>noFlash</em> is true, flash the button to
224 indicate to the user that something happened.
225 <em>index</em> may have any of the forms accepted by the <code>index()</code> method.</p>
226
227
228</dd></dl>
229<a name=method.numbuttons></a>
230<dl><dt> <strong>numbuttons</strong>()</dt><dd>
231Return the number of buttons in the button box.</p>
232
233
234</dd></dl>
235<a name=method.setdefault></a>
236<dl><dt> <strong>setdefault</strong>(<em>index</em>)</dt><dd>
237Set the default button to the button given by <em>index</em>. This
238 causes the specified button to be displayed with the platform
239 specific appearance for a default button. If <em>index</em> is <strong>None</strong>,
240 there will be no default button. <em>index</em> may have any of the
241 forms accepted by the <code>index()</code> method.</p>
242
243
244</dd></dl>
245</dd>
246<dt> <h3>Example</h3></dt><dd>
247The image at the top of this manual is a snapshot
248of the window (or part of the window) produced
249by the following code.<p></p>
250<pre>
251class Demo:
252 def __init__(self, parent):
253 # Create and pack the ButtonBox.
254 self.buttonBox = Pmw.ButtonBox(parent,
255 labelpos = 'nw',
256 label_text = 'ButtonBox:',
257 frame_borderwidth = 2,
258 frame_relief = 'groove')
259 self.buttonBox.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
260
261 # Add some buttons to the ButtonBox.
262 self.buttonBox.add('OK', command = self.ok)
263 self.buttonBox.add('Apply', command = self.apply)
264 self.buttonBox.add('Cancel', command = self.cancel)
265
266 # Set the default button (the one executed when &lt;Return&gt; is hit).
267 self.buttonBox.setdefault('OK')
268 parent.bind('&lt;Return&gt;', self._processReturnKey)
269 parent.focus_set()
270
271 # Make all the buttons the same width.
272 self.buttonBox.alignbuttons()
273
274 def _processReturnKey(self, event):
275 self.buttonBox.invoke()
276
277 def ok(self):
278 print 'You clicked on OK'
279
280 def apply(self):
281 print 'You clicked on Apply'
282
283 def cancel(self):
284 print 'You clicked on Cancel'
285
286</pre>
287</dd>
288</dl>
289
290 <center><P ALIGN="CENTER">
291 <IMG SRC = blue_line.gif ALT = "" WIDTH=320 HEIGHT=5>
292 </p></center>
293
294
295 <font size=-1>
296 <center><P ALIGN="CENTER">
297 Pmw 1.2 -
298 5 Aug 2003
299 - <a href="index.html">Home</a>
300 <br>Manual page last reviewed: 24 May 1998
301 </p></center>
302 </font>
303
304 </body>
305 </html>
306