Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / amd64 / man / mann / menubutton.n
CommitLineData
920dae64
AT
1'\"
2'\" Copyright (c) 1990-1994 The Regents of the University of California.
3'\" Copyright (c) 1994-1997 Sun Microsystems, Inc.
4'\"
5'\" See the file "license.terms" for information on usage and redistribution
6'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
7'\"
8'\" RCS: @(#) $Id: menubutton.n,v 1.4.4.1 2004/10/28 10:19:29 dkf Exp $
9'\"
10'\" The definitions below are for supplemental macros used in Tcl/Tk
11'\" manual entries.
12'\"
13'\" .AP type name in/out ?indent?
14'\" Start paragraph describing an argument to a library procedure.
15'\" type is type of argument (int, etc.), in/out is either "in", "out",
16'\" or "in/out" to describe whether procedure reads or modifies arg,
17'\" and indent is equivalent to second arg of .IP (shouldn't ever be
18'\" needed; use .AS below instead)
19'\"
20'\" .AS ?type? ?name?
21'\" Give maximum sizes of arguments for setting tab stops. Type and
22'\" name are examples of largest possible arguments that will be passed
23'\" to .AP later. If args are omitted, default tab stops are used.
24'\"
25'\" .BS
26'\" Start box enclosure. From here until next .BE, everything will be
27'\" enclosed in one large box.
28'\"
29'\" .BE
30'\" End of box enclosure.
31'\"
32'\" .CS
33'\" Begin code excerpt.
34'\"
35'\" .CE
36'\" End code excerpt.
37'\"
38'\" .VS ?version? ?br?
39'\" Begin vertical sidebar, for use in marking newly-changed parts
40'\" of man pages. The first argument is ignored and used for recording
41'\" the version when the .VS was added, so that the sidebars can be
42'\" found and removed when they reach a certain age. If another argument
43'\" is present, then a line break is forced before starting the sidebar.
44'\"
45'\" .VE
46'\" End of vertical sidebar.
47'\"
48'\" .DS
49'\" Begin an indented unfilled display.
50'\"
51'\" .DE
52'\" End of indented unfilled display.
53'\"
54'\" .SO
55'\" Start of list of standard options for a Tk widget. The
56'\" options follow on successive lines, in four columns separated
57'\" by tabs.
58'\"
59'\" .SE
60'\" End of list of standard options for a Tk widget.
61'\"
62'\" .OP cmdName dbName dbClass
63'\" Start of description of a specific option. cmdName gives the
64'\" option's name as specified in the class command, dbName gives
65'\" the option's name in the option database, and dbClass gives
66'\" the option's class in the option database.
67'\"
68'\" .UL arg1 arg2
69'\" Print arg1 underlined, then print arg2 normally.
70'\"
71'\" RCS: @(#) $Id: man.macros,v 1.4 2000/08/25 06:18:32 ericm Exp $
72'\"
73'\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
74.if t .wh -1.3i ^B
75.nr ^l \n(.l
76.ad b
77'\" # Start an argument description
78.de AP
79.ie !"\\$4"" .TP \\$4
80.el \{\
81. ie !"\\$2"" .TP \\n()Cu
82. el .TP 15
83.\}
84.ta \\n()Au \\n()Bu
85.ie !"\\$3"" \{\
86\&\\$1 \\fI\\$2\\fP (\\$3)
87.\".b
88.\}
89.el \{\
90.br
91.ie !"\\$2"" \{\
92\&\\$1 \\fI\\$2\\fP
93.\}
94.el \{\
95\&\\fI\\$1\\fP
96.\}
97.\}
98..
99'\" # define tabbing values for .AP
100.de AS
101.nr )A 10n
102.if !"\\$1"" .nr )A \\w'\\$1'u+3n
103.nr )B \\n()Au+15n
104.\"
105.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
106.nr )C \\n()Bu+\\w'(in/out)'u+2n
107..
108.AS Tcl_Interp Tcl_CreateInterp in/out
109'\" # BS - start boxed text
110'\" # ^y = starting y location
111'\" # ^b = 1
112.de BS
113.br
114.mk ^y
115.nr ^b 1u
116.if n .nf
117.if n .ti 0
118.if n \l'\\n(.lu\(ul'
119.if n .fi
120..
121'\" # BE - end boxed text (draw box now)
122.de BE
123.nf
124.ti 0
125.mk ^t
126.ie n \l'\\n(^lu\(ul'
127.el \{\
128.\" Draw four-sided box normally, but don't draw top of
129.\" box if the box started on an earlier page.
130.ie !\\n(^b-1 \{\
131\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
132.\}
133.el \}\
134\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
135.\}
136.\}
137.fi
138.br
139.nr ^b 0
140..
141'\" # VS - start vertical sidebar
142'\" # ^Y = starting y location
143'\" # ^v = 1 (for troff; for nroff this doesn't matter)
144.de VS
145.if !"\\$2"" .br
146.mk ^Y
147.ie n 'mc \s12\(br\s0
148.el .nr ^v 1u
149..
150'\" # VE - end of vertical sidebar
151.de VE
152.ie n 'mc
153.el \{\
154.ev 2
155.nf
156.ti 0
157.mk ^t
158\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
159.sp -1
160.fi
161.ev
162.\}
163.nr ^v 0
164..
165'\" # Special macro to handle page bottom: finish off current
166'\" # box/sidebar if in box/sidebar mode, then invoked standard
167'\" # page bottom macro.
168.de ^B
169.ev 2
170'ti 0
171'nf
172.mk ^t
173.if \\n(^b \{\
174.\" Draw three-sided box if this is the box's first page,
175.\" draw two sides but no top otherwise.
176.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
177.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
178.\}
179.if \\n(^v \{\
180.nr ^x \\n(^tu+1v-\\n(^Yu
181\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
182.\}
183.bp
184'fi
185.ev
186.if \\n(^b \{\
187.mk ^y
188.nr ^b 2
189.\}
190.if \\n(^v \{\
191.mk ^Y
192.\}
193..
194'\" # DS - begin display
195.de DS
196.RS
197.nf
198.sp
199..
200'\" # DE - end display
201.de DE
202.fi
203.RE
204.sp
205..
206'\" # SO - start of list of standard options
207.de SO
208.SH "STANDARD OPTIONS"
209.LP
210.nf
211.ta 5.5c 11c
212.ft B
213..
214'\" # SE - end of list of standard options
215.de SE
216.fi
217.ft R
218.LP
219See the \\fBoptions\\fR manual entry for details on the standard options.
220..
221'\" # OP - start of full description for a single option
222.de OP
223.LP
224.nf
225.ta 4c
226Command-Line Name: \\fB\\$1\\fR
227Database Name: \\fB\\$2\\fR
228Database Class: \\fB\\$3\\fR
229.fi
230.IP
231..
232'\" # CS - begin code excerpt
233.de CS
234.RS
235.nf
236.ta .25i .5i .75i 1i
237..
238'\" # CE - end code excerpt
239.de CE
240.fi
241.RE
242..
243.de UL
244\\$1\l'|0\(ul'\\$2
245..
246.TH menubutton n 4.0 Tk "Tk Built-In Commands"
247.BS
248'\" Note: do not modify the .SH NAME line immediately below!
249.SH NAME
250menubutton \- Create and manipulate menubutton widgets
251.SH SYNOPSIS
252\fBmenubutton\fR \fIpathName \fR?\fIoptions\fR?
253.SO
254\-activebackground \-disabledforeground \-padx
255\-activeforeground \-font \-pady
256\-anchor \-foreground \-relief
257\-background \-highlightbackground \-takefocus
258\-bitmap \-highlightcolor \-text
259\-borderwidth \-highlightthickness \-textvariable
260\-cursor \-image \-underline
261\-compound \-justify \-wraplength
262.SE
263.SH "WIDGET-SPECIFIC OPTIONS"
264.OP \-direction direction Height
265Specifies where the menu is going to be popup up. \fBabove\fR tries to
266pop the menu above the menubutton. \fBbelow\fR tries to pop the menu
267below the menubutton. \fBleft\fR tries to pop the menu to the left of
268the menubutton. \fBright\fR tries to pop the menu to the right of the
269menu button. \fBflush\fR pops the menu directly over the menubutton.
270In the case of \fBabove\fR or \fBbelow\fR, the direction will be
271reversed if the menu would show offscreen.
272.OP \-height height Height
273Specifies a desired height for the menubutton.
274If an image or bitmap is being displayed in the menubutton then the value is in
275screen units (i.e. any of the forms acceptable to \fBTk_GetPixels\fR);
276for text it is in lines of text.
277If this option isn't specified, the menubutton's desired height is computed
278from the size of the image or bitmap or text being displayed in it.
279.OP \-indicatoron indicatorOn IndicatorOn
280The value must be a proper boolean value. If it is true then
281a small indicator rectangle will be displayed on the right side
282of the menubutton and the default menu bindings will treat this
283as an option menubutton. If false then no indicator will be
284displayed.
285.OP \-menu menu MenuName
286Specifies the path name of the menu associated with this menubutton.
287The menu must be a child of the menubutton.
288.OP \-state state State
289Specifies one of three states for the menubutton: \fBnormal\fR, \fBactive\fR,
290or \fBdisabled\fR. In normal state the menubutton is displayed using the
291\fBforeground\fR and \fBbackground\fR options. The active state is
292typically used when the pointer is over the menubutton. In active state
293the menubutton is displayed using the \fBactiveForeground\fR and
294\fBactiveBackground\fR options. Disabled state means that the menubutton
295should be insensitive: the default bindings will refuse to activate
296the widget and will ignore mouse button presses.
297In this state the \fBdisabledForeground\fR and
298\fBbackground\fR options determine how the button is displayed.
299.OP \-width width Width
300Specifies a desired width for the menubutton.
301If an image or bitmap is being displayed in the menubutton then the value is in
302screen units (i.e. any of the forms acceptable to \fBTk_GetPixels\fR);
303for text it is in characters.
304If this option isn't specified, the menubutton's desired width is computed
305from the size of the image or bitmap or text being displayed in it.
306.BE
307
308.SH INTRODUCTION
309.PP
310The \fBmenubutton\fR command creates a new window (given by the
311\fIpathName\fR argument) and makes it into a menubutton widget.
312Additional
313options, described above, may be specified on the command line
314or in the option database
315to configure aspects of the menubutton such as its colors, font,
316text, and initial relief. The \fBmenubutton\fR command returns its
317\fIpathName\fR argument. At the time this command is invoked,
318there must not exist a window named \fIpathName\fR, but
319\fIpathName\fR's parent must exist.
320.PP
321A menubutton is a widget that displays a textual string, bitmap, or image
322and is associated with a menu widget.
323If text is displayed, it must all be in a single font, but it
324can occupy multiple lines on the screen (if it contains newlines
325or if wrapping occurs because of the \fBwrapLength\fR option) and
326one of the characters may optionally be underlined using the
327\fBunderline\fR option. In normal usage, pressing
328mouse button 1 over the menubutton causes the associated menu to
329be posted just underneath the menubutton. If the mouse is moved over
330the menu before releasing the mouse button, the button release
331causes the underlying menu entry to be invoked. When the button
332is released, the menu is unposted.
333.PP
334Menubuttons are typically organized into groups called menu bars
335that allow scanning:
336if the mouse button is pressed over one menubutton (causing it
337to post its menu) and the mouse is moved over another menubutton
338in the same menu bar without releasing the mouse button, then the
339menu of the first menubutton is unposted and the menu of the
340new menubutton is posted instead.
341.PP
342There are several interactions between menubuttons and menus; see
343the \fBmenu\fR manual entry for information on various menu configurations,
344such as pulldown menus and option menus.
345
346.SH "WIDGET COMMAND"
347.PP
348The \fBmenubutton\fR command creates a new Tcl command whose
349name is \fIpathName\fR. This
350command may be used to invoke various
351operations on the widget. It has the following general form:
352.CS
353\fIpathName option \fR?\fIarg arg ...\fR?
354.CE
355\fIOption\fR and the \fIarg\fRs
356determine the exact behavior of the command. The following
357commands are possible for menubutton widgets:
358.TP
359\fIpathName \fBcget\fR \fIoption\fR
360Returns the current value of the configuration option given
361by \fIoption\fR.
362\fIOption\fR may have any of the values accepted by the \fBmenubutton\fR
363command.
364.TP
365\fIpathName \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR?
366Query or modify the configuration options of the widget.
367If no \fIoption\fR is specified, returns a list describing all of
368the available options for \fIpathName\fR (see \fBTk_ConfigureInfo\fR for
369information on the format of this list). If \fIoption\fR is specified
370with no \fIvalue\fR, then the command returns a list describing the
371one named option (this list will be identical to the corresponding
372sublist of the value returned if no \fIoption\fR is specified). If
373one or more \fIoption\-value\fR pairs are specified, then the command
374modifies the given widget option(s) to have the given value(s); in
375this case the command returns an empty string.
376\fIOption\fR may have any of the values accepted by the \fBmenubutton\fR
377command.
378
379.SH "DEFAULT BINDINGS"
380.PP
381Tk automatically creates class bindings for menubuttons that give them
382the following default behavior:
383.IP [1]
384A menubutton activates whenever the mouse passes over it and deactivates
385whenever the mouse leaves it.
386.IP [2]
387Pressing mouse button 1 over a menubutton posts the menubutton:
388its relief changes to raised and its associated menu is posted
389under the menubutton. If the mouse is dragged down into the menu
390with the button still down, and if the mouse button is then
391released over an entry in the menu, the menubutton is unposted
392and the menu entry is invoked.
393.IP [3]
394If button 1 is pressed over a menubutton and then released over that
395menubutton, the menubutton stays posted: you can still move the mouse
396over the menu and click button 1 on an entry to invoke it.
397Once a menu entry has been invoked, the menubutton unposts itself.
398.IP [4]
399If button 1 is pressed over a menubutton and then dragged over some
400other menubutton, the original menubutton unposts itself and the
401new menubutton posts.
402.IP [5]
403If button 1 is pressed over a menubutton and released outside
404any menubutton or menu, the menubutton unposts without invoking
405any menu entry.
406.IP [6]
407When a menubutton is posted, its associated menu claims the input
408focus to allow keyboard traversal of the menu and its submenus.
409See the \fBmenu\fR manual entry for details on these bindings.
410.IP [7]
411If the \fBunderline\fR option has been specified for a menubutton
412then keyboard traversal may be used to post the menubutton:
413Alt+\fIx\fR, where \fIx\fR is the underlined character (or its
414lower-case or upper-case equivalent), may be typed in any window
415under the menubutton's toplevel to post the menubutton.
416.IP [8]
417The F10 key may be typed in any window to post the first menubutton
418under its toplevel window that isn't disabled.
419.IP [9]
420If a menubutton has the input focus, the space and return keys
421post the menubutton.
422.PP
423If the menubutton's state is \fBdisabled\fR then none of the above
424actions occur: the menubutton is completely non-responsive.
425.PP
426The behavior of menubuttons can be changed by defining new bindings for
427individual widgets or by redefining the class bindings.
428
429.SH KEYWORDS
430menubutton, widget