PopupMenu Class Reference

Inherits Menu.

List of all members.

Public Types

enum  {
  NORMAL, POPUP1, POPUP2, POPUP12,
  POPUP3, POPUP13, POPUP23, POPUP123
}

Public Member Functions

int handle (int)
int popup ()
 PopupMenu (int, int, int, int, const char *=0)

Static Public Attributes

NamedStyledefault_style

Protected Member Functions

void draw ()


Detailed Description

This subclass pops up a menu in response to a user click. The menu is popped up positioned so that the mouse is pointing at the last-selected item, even if it in a nested submenu (To turn off this behaivor do value(-1) after each item is selected)

menu_button.gif

Normally any mouse button will pop up a menu and it is lined up above the button, or below it when there is no previous selected value as shown in the picture.

However a PopupMenu can also have type() set to POPUP1, POPUP2, POPUP12, POPUP3, POPUP13, POPUP23, or POPUP123. It then becomes invisible and ignores all mouse buttons other than the ones named in the popup type. You can then resize it to cover another widget (or many widgets) so that pressing that button pops up the menu.

The menu will also pop up in response to shortcuts indicated by the shortcut() or by putting '&x' in the label().

Typing the Widget::shortcut() of any menu items will cause it to be picked. The callback will be done but there will be no visible effect to the widget.


Member Function Documentation

void PopupMenu::draw void   )  [protected, virtual]
 

The little down-arrow indicator can be replaced by setting a new glyph() function and making it draw whatever you want. If you don't want any glyph at all it is probably easiest to subclass and replace draw() with your own function.

Reimplemented from Group.

int PopupMenu::popup  ) 
 

Wrapper for Menu::popup(). For NORMAL PopupMenu this places the menu over the widget. For POPUP ones it uses the mouse position and sets the "title" to the label() if it is not null.


The documentation for this class was generated from the following files:
Sun Jan 7 00:55:18 2007. FLTK ©2006 Bill Spitzak and others.
Permission is granted to reproduce this manual or any portion for any purpose, provided this copyright and permission notice are preserved.