Class Fox::FXMenuButton

In: | FXMenuButton.rb
Parent: | FXLabel

An FXMenuButton posts a popup menu when clicked. There are many ways to control the placement where the popup will appear; first, the popup may be placed on either of the four sides relative to the menu button; this is controlled by the flags `MENUBUTTON_DOWN`, etc. Next, there are several attachment modes; the popup's left/bottom edge may attach to the menu button's left/top edge, or the popup's right/top edge may attach to the menu button's right/bottom edge, or both. Also, the popup may appear centered relative to the menu button. Finally, a small offset may be specified to displace the location of the popup by a few pixels so as to account for borders and so on. Normally, the menu button shows an arrow pointing to the direction where the popup is set to appear; this can be turned off by passing the option `MENUBUTTON_NOARROWS`.

# Events

The following messages are sent by FXMenuButton to its target:

`SEL_KEYPRESS`: | sent when a key goes down; the message data is an FXEvent instance.
`SEL_KEYRELEASE`: | sent when a key goes up; the message data is an FXEvent instance.
`SEL_LEFTBUTTONPRESS`: | sent when the left mouse button goes down; the message data is an FXEvent instance.
`SEL_LEFTBUTTONRELEASE`: | sent when the left mouse button goes up; the message data is an FXEvent instance.

# Menu button options

`MENUBUTTON_AUTOGRAY`: | Automatically gray out when no target
`MENUBUTTON_AUTOHIDE`: | Automatically hide when no target
`MENUBUTTON_TOOLBAR`: | Toolbar style
`MENUBUTTON_DOWN`: | Popup window appears below menu button
`MENUBUTTON_UP`: | Popup window appears above menu button
`MENUBUTTON_LEFT`: | Popup window to the left of the menu button
`MENUBUTTON_RIGHT`: | Popup window to the right of the menu button
`MENUBUTTON_NOARROWS`: | Do not show arrows
`MENUBUTTON_ATTACH_LEFT`: | Popup attaches to the left side of the menu button
`MENUBUTTON_ATTACH_TOP`: | Popup attaches to the top of the menu button
`MENUBUTTON_ATTACH_RIGHT`: | Popup attaches to the right side of the menu button
`MENUBUTTON_ATTACH_BOTTOM`: | Popup attaches to the bottom of the menu button
`MENUBUTTON_ATTACH_CENTER`: | Popup attaches to the center of the menu button
`MENUBUTTON_ATTACH_BOTH`: | Popup attaches to both sides of the menu button

Methods

new

Attributes

attachment | [RW] | Attachment [Integer]
buttonStyle | [RW] | Menu button style [Integer]
menu | [RW] | The popup menu [FXPopup]
popupStyle | [RW] | Popup style [Integer]
xOffset | [RW] | X-offset where menu pops up relative to button [Integer]
yOffset | [RW] | Y-offset where menu pops up relative to button [Integer]

Public Class methods

new(parent, text, icon=nil, popupMenu=nil, opts=JUSTIFY_NORMAL|ICON_BEFORE_TEXT|MENUBUTTON_DOWN, x=0, y=0, width=0, height=0, padLeft=DEFAULT_SPACING, padRight=DEFAULT_SPACING, padTop=DEFAULT_SPACING, padBottom=DEFAULT_SPACING) {|theMenuButton| ...}

Constructor