hwtk::menubutton

Create and manipulate menu widgets.

Format

hwtk::menubutton - pathName ?option value? …

Description

A hwtk::menubutton widget displays a textual label and/or image, and evaluates a command when pressed.

Standard Options

-clientdata
Database name: clientData
Database class: ClientData
Acts as a data storage for a widgets. User can store any data and this will not have any effect on widget property.
-compound
Database name: compound
Database class: Compound
Specifies if the widget should display text and bitmaps/images at the same time, and if so, where the bitmap/image should be placed relative to the text. Must be one of the values none, bottom, top, left, right, or center. For example, the (default) value none specifies that the bitmap or image should (if defined) be displayed instead of the text, the value left specifies that the bitmap or image should be displayed to the left of the text, and the value center specifies that the bitmap or image should be displayed on top of the text.
-cursor
Database name: cursor
Database class: Cursor
Specifies the mouse cursor to be used for the widget. See Tk_GetCursor and cursors(n) in the Tk reference manual for the legal values. If set to the empty string (the default), the cursor is inherited from the parent widget.
-help
Database name: help
Database class: Text
Specifies the text or help message that displays when the cursor moves over the widget.
-helpcommand
Database name: helpcommand
Database class: Command
Dynamic help which calls an assigned -helpcommand when the user moves the mouse on the widget. The text which is returned by the -helpcommand will be in turn be displayed on the tooltip.
-image
Database name: image
Database class: Image
Specifies an image to display in the widget, which must have been created with the image create command. Typically, if the image option is specified then it overrides other options that specify a bitmap or textual value to display in the widget, though this is controlled by the compound option; the image option may be reset to an empty string to re-enable a bitmap or text display.
-state
Database name: state
Database class: State
May be set to normal or disabled to control the disabled state bit.
-text
Database name: text
Database class: Text
Specifies a string to be displayed inside the widget. The way in which the string is displayed depends on the particular widget and may be determined by other options, such as anchor or justify.
-textvariable
Database name: textVariable
Database class: Variable
Specifies the name of a global variable. The value of the variable is a text string to be displayed inside the widget; if the variable value changes then the widget will automatically update itself to reflect the new value. The way in which the string is displayed in the widget depends on the particular widget and may be determined by other options, such as anchor or justify.
-underline
Database name: underline
Database class: Underline
Specifies the integer index of a character to underline in the widget. This option is used by the default bindings to implement keyboard traversal for menu buttons and menu entries. 0 corresponds to the first character of the text displayed in the widget, 1 to the next character, and so on.
-width
Database name: width
Database class: Width
Specifies the width of a widget.

Widget-Specific Options

-direction
Database name: direction
Database class: Direction
Specifies where the menu will appear, relative to the menubutton. Acceptable values are:
above
The menu will pop up above the menubutton; if this would result in the menu being offscreen, it will pop up below the menubutton.
below
The menu will pop up below the menubutton; if this would result in the menu being offscreen, it will pop up below the menubutton.
left
The menu will pop up to the left of the menubutton.
right
The menu will pop up to the right of the menubutton.
flush
The menu will pop up directly over the menubutton.
-displaystyle
Database name: displaystyle
Database class: displaystyle
Specifies the appearance of the menubutton. Acceptable values are: flat, normal, and toolbutton.
-gridlayout
Database name: gridlayout
Database class: Layout
Specifies whether or not the menu should be displayed as a grid, containing images only. Acceptable values are 1 (menu will be displayed as a grid) and 0 (menu will not be displayed as a grid). The default value is 0.
-menu
Database name: menu
Database class: Menu
The menu associated with the menubutton.
-updateonselect
Database name: updateOnSelect
Database class: UpdateOnSelect
Specifies whether or not the menubutton should be updated when a selection is made from the menu. A value of 1 designates that the button will be updated; a value of 0 designates that the button will not be updated.

Widget Command

pathName configure ?option? ?value option value …?
Query or modify the configuration options of the widget. If one or more option-value 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. If option is specified with no value, then the command returns a list describing the named option: the elements of the list are the option name, database name, database class, default value, and current value. If no option is specified, returns a list describing all of the available options for pathName.
pathName cget option
Returns the current value of the configuration option given by option.
pathName identify element x y
Returns the name of the element under the point given by x and y, or an empty string if the point does not lie within any element. x and y are pixel coordinates relative to the widget. Some widgets accept other identify subcommands.
pathName instate statespec ?script?
Test the widget’s state. If script is not specified, returns 1 if the widget state matches statespec and 0 otherwise. If script is specified, equivalent to
if{[pathNameinstatestateSpec]}script
pathName state ?stateSpec?
Modify or inquire widget state. If stateSpec is present, sets the widget state: for each flag in stateSpec, sets the corresponding flag or clears it if prefixed by an exclamation point. Returns a new state spec indicating which flags were changed:
setchanges[pathNamestatespec]
pathNamestate$changes
will restore pathName to the original state. If stateSpec is not specified, returns a list of the currently-enabled state flags.
pathName clear
Clears the menu.
pathName item name ?arg arg …?
Adds an item to the menu button’s menu. Possible arguments are:
caption
The string to be displayed in the menu.
command
A Tcl command to be invoked when the menu item is selected.
accelerator
The keyboard shortcut for the menu item (“Ctrl + N”, “Alt + I”, etc.)
help
The string to be displayed as a tooltip, when the mouse hovers over the menu item.
image
An image to accompany the text of the menu item.
pathName itemcget tag ?are arg?
Returns the current value of a configuration option for the entry given by index. Option may have any of the values accepted by the item widget command.
pathName itemconfigure tag ?are arg?
Same as configure command. Items can be configured; supports only -state option of an item.
pathName itemdelete ?arg arg …?
Deletes one or more items from the menu.
pathName itemexists tag
Returns a value specifying whether or not the given item exists in the menu; returns 1 if the item exists, or 0 if it does not.
pathName itemlist
Returns a list of the items contained in the menu.
pathName select ?arg arg …?
Selects the specified menu item.

Example

hwtk::dialog .dlg -title "::hwtk::menubutton"
set w [.dlg recess]

hwtk::menubutton $w.t -text testing -image add-16.png -compound left
pack $w.t;

$w.t item new -caption "New" -command "puts New" -accelerator "Ctrl + N" -help New
$w.t item open -caption "Open" -command "puts Open" -accelerator "Ctrl + O" -help Open
$w.t item save -caption "Save" -command "puts Save" -accelerator "Ctrl + S" -image fileSaveModel-16.png -help Save
$w.t item saveas -caption "Save As" -command "puts SaveAs" -accelerator "Ctrl + A"
$w.t item separator
$w.t item import -caption "Import"
$w.t item model -caption "Model" -command "puts Model" -parent import -accelerator "Alt + I"
$w.t item solver -caption "Solver Deck" -parent import -command "puts \"Solver Deck\""
$w.t item abaqus -caption "Abaqus Deck" -parent solver -command "puts \"Abaqus Deck\""
$w.t item permas -caption "Permas Deck" -parent solver -command "puts \"Permas Deck\""
$w.t item separator -parent solver
$w.t item radioss -caption "Radioss Deck" -parent solver -command "puts \"Radioss Deck\""
$w.t item connectors -parent import -caption "Connectors" -command "puts \"Connectors\"" -image fileImportModel-16.png
$w.t item load -caption "Load"
$w.t item results -parent load -caption "Results" -command "puts Results"
$w.t item up -parent load -caption "User Profile" -command "puts \"User Profile\""
$w.t item run -caption "Run" -accelerator "Ctrl + r"
$w.t item script -parent script -caption "Script" -command "puts Script"
$w.t item separator
$w.t item export -caption "Export"
$w.t item emodel -parent export -caption "Model" -command "puts Model" -image fileExportModel-16.png
$w.t item separator
$w.t item exit -caption "Exit" -command "puts Exit" -accelerator "Alt + F4" -image closeReverse-16.png

.dlg post