199 lines
8.7 KiB
Plaintext
199 lines
8.7 KiB
Plaintext
'\"
|
|
'\" Copyright (c) 1990-1994 The Regents of the University of California.
|
|
'\" Copyright (c) 1994-1997 Sun Microsystems, Inc.
|
|
'\"
|
|
'\" See the file "license.terms" for information on usage and redistribution
|
|
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|
'\"
|
|
'\" SCCS: @(#) menubutton.n 1.35 97/05/20 20:32:02
|
|
'\"
|
|
.so STk-man.macros
|
|
.TH menubutton n 4.0 STk "Tk Built-In Commands"
|
|
.BS
|
|
'\" Note: do not modify the .SH NAME line immediately below!
|
|
.SH NAME
|
|
menubutton \- Create and manipulate menubutton widgets
|
|
.SH SYNOPSIS
|
|
(\fBmenubutton\fI \fIwidget\-name \fR?\fIoptions\fR?)
|
|
.SO
|
|
:activebackground :cursor :highlightthickness :takefocus
|
|
:activeforeground :disabledforeground :image :text
|
|
:anchor :font :justify :textvariable
|
|
:background :foreground :padx :underline
|
|
:bitmap :highlightbackground :pady :wraplength
|
|
:borderwidth :highlightcolor :relief
|
|
.SE
|
|
.SH "WIDGET-SPECIFIC OPTIONS"
|
|
.VS
|
|
.OP :direction direction Height direction
|
|
Specifies where the menu is going to be popup up. \fBabove\fR tries to
|
|
pop the menu above the menubutton. \fBbelow\fR tries to pop the menu
|
|
below the menubutton. \fBleft\fR tries to pop the menu to the left of
|
|
the menubutton. \fBright\fR tries to pop the menu to the right of the
|
|
menu button. \fBflush\fR pops the menu directly over the menubutton.
|
|
.OP :environment environment Environment environment
|
|
Specifies the environment in which the \fB:textvariable\fR must be taken.
|
|
By default, the value of this option is the STk global environment.
|
|
.VE
|
|
.OP :height height Height height
|
|
Specifies a desired height for the menubutton.
|
|
If an image or bitmap is being displayed in the menubutton then the value is in
|
|
screen units (i.e. any of the forms acceptable to \fBTk_GetPixels\fR);
|
|
for text it is in lines of text.
|
|
If this option isn't specified, the menubutton's desired height is computed
|
|
from the size of the image or bitmap or text being displayed in it.
|
|
.OP :indicatoron indicatorOn IndicatorOn indicator-on
|
|
The value must be a proper boolean value. If it is true then
|
|
a small indicator rectangle will be displayed on the right side
|
|
of the menubutton and the default menu bindings will treat this
|
|
as an option menubutton. If false then no indicator will be
|
|
displayed.
|
|
.OP :menu menu MenuName menu-name
|
|
Specifies the path name of the menu associated with this menubutton.
|
|
The menu must be a child of the menubutton.
|
|
.OP :state state State state
|
|
Specifies one of three states for the menubutton: \fBnormal\fR, \fBactive\fR,
|
|
or \fBdisabled\fR. In normal state the menubutton is displayed using the
|
|
\fBforeground\fR and \fBbackground\fR options. The active state is
|
|
typically used when the pointer is over the menubutton. In active state
|
|
the menubutton is displayed using the \fBactiveForeground\fR and
|
|
\fBactiveBackground\fR options. Disabled state means that the menubutton
|
|
should be insensitive: the default bindings will refuse to activate
|
|
the widget and will ignore mouse button presses.
|
|
In this state the \fBdisabledForeground\fR and
|
|
\fBbackground\fR options determine how the button is displayed.
|
|
.OP :width width Width width
|
|
Specifies a desired width for the menubutton.
|
|
If an image or bitmap is being displayed in the menubutton then the value is in
|
|
screen units (i.e. any of the forms acceptable to \fBTk_GetPixels\fR);
|
|
for text it is in characters.
|
|
If this option isn't specified, the menubutton's desired width is computed
|
|
from the size of the image or bitmap or text being displayed in it.
|
|
.BE
|
|
|
|
.SH INTRODUCTION
|
|
.PP
|
|
The \fBmenubutton\fR command creates a new window (given by the
|
|
\fIwidget\-name\fR argument) and makes it into a menubutton widget.
|
|
Additional
|
|
options, described above, may be specified on the command line
|
|
or in the option database
|
|
to configure aspects of the menubutton such as its colors, font,
|
|
text, and initial relief. The \fBmenubutton\fR command returns its
|
|
\fIwidget\-name\fR argument. At the time this command is invoked,
|
|
there must not exist a window named \fIwidget\-name\fR, but
|
|
\fIwidget\-name\fR's parent must exist.
|
|
.PP
|
|
A menubutton is a widget that displays a
|
|
textual string, bitmap, or image
|
|
and is associated with a menu widget.
|
|
If text is displayed, it must all be in a single font, but it
|
|
can occupy multiple lines on the screen (if it contains newlines
|
|
or if wrapping occurs because of the \fBwrapLength\fR option) and
|
|
one of the characters may optionally be underlined using the
|
|
\fBunderline\fR option.
|
|
In normal usage, pressing
|
|
mouse button 1 over the menubutton causes the associated menu to
|
|
be posted just underneath the menubutton. If the mouse is moved over
|
|
the menu before releasing the mouse button, the button release
|
|
causes the underlying menu entry to be invoked. When the button
|
|
is released, the menu is unposted.
|
|
.PP
|
|
Menubuttons are typically organized into groups called menu bars
|
|
that allow scanning:
|
|
if the mouse button is pressed over one menubutton (causing it
|
|
to post its menu) and the mouse is moved over another menubutton
|
|
in the same menu bar without releasing the mouse button, then the
|
|
menu of the first menubutton is unposted and the menu of the
|
|
new menubutton is posted instead.
|
|
.PP
|
|
There are several interactions between menubuttons and menus; see
|
|
the \fBmenu\fR manual entry for information on various menu configurations,
|
|
such as pulldown menus and option menus.
|
|
|
|
.SH "WIDGET COMMAND"
|
|
.PP
|
|
The \fBmenubutton\fR command creates a new STk command whose
|
|
name is \fIwidget\-name\fR. This
|
|
command may be used to invoke various
|
|
operations on the widget. It has the following general form:
|
|
.CS
|
|
(\fIwidget\-name option \fR?\fIarg arg ...\fR?)
|
|
.CE
|
|
\fIOption\fR and the \fIarg\fRs
|
|
determine the exact behavior of the command. The following
|
|
commands are possible for menubutton widgets:
|
|
.TP
|
|
(\fIwidget\-name '\fBcget\fR \fIoption\fR)
|
|
Returns the current value of the configuration option given
|
|
by \fIoption\fR.
|
|
\fIOption\fR may have any of the values accepted by the \fBmenubutton\fR
|
|
command.
|
|
.TP
|
|
(\fIwidget\-name '\fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR?)
|
|
Query or modify the configuration options of the widget.
|
|
If no \fIoption\fR is specified, returns a list describing all of
|
|
the available options for \fIwidget\-name\fR (see \fBTk_ConfigureInfo\fR for
|
|
information on the format of this list). If \fIoption\fR is specified
|
|
with no \fIvalue\fR, then the command returns a list describing the
|
|
one named option (this list will be identical to the corresponding
|
|
sublist of the value returned if no \fIoption\fR is specified). If
|
|
one or more \fIoption\-value\fR pairs are specified, then the command
|
|
modifies the given widget option(s) to have the given value(s); in
|
|
this case the command returns an empty string.
|
|
\fIOption\fR may have any of the values accepted by the \fBmenubutton\fR
|
|
command.
|
|
|
|
.SH "DEFAULT BINDINGS"
|
|
.PP
|
|
Tk automatically creates class bindings for menubuttons that give them
|
|
the following default behavior:
|
|
.IP [1]
|
|
A menubutton activates whenever the mouse passes over it and deactivates
|
|
whenever the mouse leaves it.
|
|
.IP [2]
|
|
Pressing mouse button 1 over a menubutton posts the menubutton:
|
|
its relief changes to raised and its associated menu is posted
|
|
under the menubutton. If the mouse is dragged down into the menu
|
|
with the button still down, and if the mouse button is then
|
|
released over an entry in the menu, the menubutton is unposted
|
|
and the menu entry is invoked.
|
|
.IP [3]
|
|
If button 1 is pressed over a menubutton and then released over that
|
|
menubutton, the menubutton stays posted: you can still move the mouse
|
|
over the menu and click button 1 on an entry to invoke it.
|
|
Once a menu entry has been invoked, the menubutton unposts itself.
|
|
.IP [4]
|
|
If button 1 is pressed over a menubutton and then dragged over some
|
|
other menubutton, the original menubutton unposts itself and the
|
|
new menubutton posts.
|
|
.IP [5]
|
|
If button 1 is pressed over a menubutton and released outside
|
|
any menubutton or menu, the menubutton unposts without invoking
|
|
any menu entry.
|
|
.IP [6]
|
|
When a menubutton is posted, its associated menu claims the input
|
|
focus to allow keyboard traversal of the menu and its submenus.
|
|
See the \fBmenu\fR manual entry for details on these bindings.
|
|
.IP [7]
|
|
If the \fBunderline\fR option has been specified for a menubutton
|
|
then keyboard traversal may be used to post the menubutton:
|
|
Alt+\fIx\fR, where \fIx\fR is the underlined character (or its
|
|
lower-case or upper-case equivalent), may be typed in any window
|
|
under the menubutton's toplevel to post the menubutton.
|
|
.IP [8]
|
|
The F10 key may be typed in any window to post the first menubutton
|
|
under its toplevel window that isn't disabled.
|
|
.IP [9]
|
|
If a menubutton has the input focus, the space and return keys
|
|
post the menubutton.
|
|
.PP
|
|
If the menubutton's state is \fBdisabled\fR then none of the above
|
|
actions occur: the menubutton is completely non-responsive.
|
|
.PP
|
|
The behavior of menubuttons can be changed by defining new bindings for
|
|
individual widgets or by redefining the class bindings.
|
|
|
|
.SH SEE ALSO
|
|
menu option-menu
|