class Fl_Menu_Button : public Fl_Menu_

This is a button that when pushed pops up a menu (or hierarchy of menus) defined by an array of Fl_Menu objects.

The behavior is different if the object is visible() or not. Normally any button will pop up a menu and it is lined up below the button as shown in the picture. If however you do a hide(), then the button only responds to the right mouse button, and the menu is aligned with wherever the mouse cursor is. This allows you to make a popup menu by making an invisible menu button that covers the whole window and is the top/last object.

The menu will also pop up in response to shortcuts indicated by putting a '&' character in the label(). See Fl_Button for a description of this.

Typing the shortcut() of any of the menu items will cause callbacks exactly the same as when you pick the item with the mouse. The '&' character in menu item names are only looked at when the menu is popped up, however.

When the user picks an item off the menu, the item's callback is done with the menu_button as the Fl_Object* argument. If the item does not have a callback the menu_button's callback is done instead.

Fl_Menu_Button(int,int,int,int,const char * = 0);

The constructor sets menu() to null. See Fl_Menu_ for the methods to set or change the menu!

Fl_Boxtype down_box() const ;
void down_box(Fl_Boxtype);

Get or set the box to draw while the menu is popped up. The default value of 0 causes FL to pick a matching down version of box(). To make it not change, set this equal to box().

uchar down_color() const ;
void down_color(uchar);

Get or set the color to draw the box while the menu is popped up. By default this is gray. This is actually an alias for color2().