FLTK 1.4.0
Loading...
Searching...
No Matches
Fl_Menu_Item Struct Reference

The Fl_Menu_Item structure defines a single menu item that is used by the Fl_Menu_ class. More...

#include <Fl_Menu_Item.H>

Public Member Functions

void activate ()
 Allows a menu item to be picked.
 
int active () const
 Gets whether or not the item can be picked.
 
int activevisible () const
 Returns non 0 if FL_INACTIVE and FL_INVISIBLE are cleared, 0 otherwise.
 
int add (const char *, int shortcut, Fl_Callback *, void *=0, int=0)
 Adds a menu item.
 
int add (const char *a, const char *b, Fl_Callback *c, void *d=0, int e=0)
 See int add(const char*, int shortcut, Fl_Callback*, void*, int)
 
long argument () const
 Gets the user_data() argument that is sent to the callback function.
 
void argument (long v)
 Sets the user_data() argument that is sent to the callback function.
 
Fl_Callback_p callback () const
 Returns the callback function that is set for the menu item.
 
void callback (Fl_Callback *c)
 Sets the menu item's callback function.
 
void callback (Fl_Callback *c, void *p)
 Sets the menu item's callback function and userdata() argument.
 
void callback (Fl_Callback0 *c)
 Sets the menu item's callback function.
 
void callback (Fl_Callback1 *c, long p=0)
 Sets the menu item's callback function and userdata() argument.
 
void check ()
 Back compatibility only.
 
int checkbox () const
 Returns true if a checkbox will be drawn next to this item.
 
int checked () const
 Back compatibility only.
 
void clear ()
 Turns the check or radio item "off" for the menu item.
 
void deactivate ()
 Prevents a menu item from being picked.
 
void do_callback (Fl_Widget *o) const
 Calls the Fl_Menu_Item item's callback, and provides the Fl_Widget argument.
 
void do_callback (Fl_Widget *o, long arg) const
 Calls the Fl_Menu_Item item's callback, and provides the Fl_Widget argument.
 
void do_callback (Fl_Widget *o, void *arg) const
 Calls the Fl_Menu_Item item's callback, and provides the Fl_Widget argument.
 
void draw (int x, int y, int w, int h, const Fl_Menu_ *, int t=0) const
 Draws the menu item in bounding box x,y,w,h, optionally selects the item.
 
const Fl_Menu_Itemfind_shortcut (int *ip=0, const bool require_alt=false) const
 Search only the top level menu for a shortcut.
 
Fl_Menu_Itemfirst ()
 Returns the first menu item, same as next(0).
 
const Fl_Menu_Itemfirst () const
 Returns the first menu item, same as next(0).
 
void hide ()
 Hides an item in the menu.
 
void image (Fl_Image &image)
 Compatibility API for FLUID, same as image.label(this).
 
void image (Fl_Image *image)
 Compatibility API for FLUID, same as image->label(this).
 
void image_label (const Fl_Image *image)
 Sets the title (label()) to an icon or image.
 
int insert (int, const char *, int, Fl_Callback *, void *=0, int=0)
 Inserts an item at position index.
 
const char * label () const
 Returns the title (label) of the menu item.
 
void label (const char *a)
 Sets the title (label) of the menu item.
 
void label (Fl_Labeltype a, const char *b)
 Sets the title (label) and the label type of the menu item.
 
Fl_Color labelcolor () const
 Gets the menu item's label color.
 
void labelcolor (Fl_Color a)
 Sets the menu item's label color.
 
Fl_Font labelfont () const
 Gets the menu item's label font.
 
void labelfont (Fl_Font a)
 Sets the menu item's label font.
 
Fl_Fontsize labelsize () const
 Gets the label font pixel size/height.
 
void labelsize (Fl_Fontsize a)
 Sets the label font pixel size/height.
 
Fl_Labeltype labeltype () const
 Returns the menu item's labeltype.
 
void labeltype (Fl_Labeltype a)
 Sets the menu item's labeltype.
 
int measure (int *h, const Fl_Menu_ *) const
 Measures width of label, including effect of & characters.
 
void multi_label (const Fl_Multi_Label *ml)
 Sets the title (label()) and labeltype() to an Fl_Multi_Label.
 
Fl_Menu_Itemnext (int i=1)
 Advances a pointer by n items through a menu array, skipping the contents of submenus and invisible items.
 
const Fl_Menu_Itemnext (int=1) const
 Advance a pointer by n items through a menu array, skipping the contents of submenus and invisible items.
 
const Fl_Menu_Itempopup (int X, int Y, const char *title=0, const Fl_Menu_Item *picked=0, const Fl_Menu_ *=0) const
 This method is called by widgets that want to display menus.
 
const Fl_Menu_Itempulldown (int X, int Y, int W, int H, const Fl_Menu_Item *picked=0, const Fl_Menu_ *=0, const Fl_Menu_Item *title=0, int menubar=0) const
 Pulldown() is similar to popup(), but a rectangle is provided to position the menu.
 
int radio () const
 Returns true if this item is a radio item.
 
void set ()
 Turns the check or radio item "on" for the menu item.
 
void setonly (Fl_Menu_Item const *first=NULL)
 Turns the radio item "on" for the menu item and turns "off" adjacent radio items set.
 
int shortcut () const
 Gets what key combination shortcut will trigger the menu item.
 
void shortcut (int s)
 Sets exactly what key combination will trigger the menu item.
 
void show ()
 Makes an item visible in the menu.
 
int size () const
 Size of the menu starting from this menu item.
 
int submenu () const
 Returns true if either FL_SUBMENU or FL_SUBMENU_POINTER is on in the flags.
 
const Fl_Menu_Itemtest_shortcut () const
 This is designed to be called by a widgets handle() method in response to a FL_SHORTCUT event.
 
void uncheck ()
 Back compatibility only.
 
void * user_data () const
 Gets the user_data() argument that is sent to the callback function.
 
void user_data (void *v)
 Sets the user_data() argument that is sent to the callback function.
 
int value () const
 Returns the current value of the check or radio item.
 
void value (int v)
 Sets the current value of the check or radio item.
 
int visible () const
 Gets the visibility of an item.
 

Public Attributes

Fl_Callbackcallback_
 menu item callback
 
int flags
 menu item flags like FL_MENU_TOGGLE, FL_MENU_RADIO
 
Fl_Color labelcolor_
 menu item text color
 
Fl_Font labelfont_
 which font for this menu item text
 
Fl_Fontsize labelsize_
 size of menu item text
 
uchar labeltype_
 how the menu item text looks like
 
int shortcut_
 menu item shortcut
 
const char * text
 menu item text, returned by label()
 
void * user_data_
 menu item user_data for the menu's callback
 

Detailed Description

The Fl_Menu_Item structure defines a single menu item that is used by the Fl_Menu_ class.

struct Fl_Menu_Item {
const char* text; // label()
int shortcut_;
void* user_data_;
int flags;
};
enum { // values for flags:
FL_MENU_INACTIVE = 1, // Deactivate menu item (gray out)
FL_MENU_TOGGLE = 2, // Item is a checkbox toggle (shows checkbox for on/off state)
FL_MENU_VALUE = 4, // The on/off state for checkbox/radio buttons (if set, state is 'on')
FL_MENU_RADIO = 8, // Item is a radio button (one checkbox of many can be on)
FL_MENU_INVISIBLE = 0x10, // Item will not show up (shortcut will work)
FL_SUBMENU_POINTER = 0x20, // Indicates user_data() is a pointer to another menu array
FL_SUBMENU = 0x40, // This item is a submenu to other items
FL_MENU_DIVIDER = 0x80, // Creates divider line below this item. Also ends a group of radio buttons.
FL_MENU_HORIZONTAL = 0x100, // ??? -- reserved, internal (do not use)
FL_MENU_RESERVED = 0xffffff00 // These bits are reserved for internal or future usage (do not use)
};
@ FL_MENU_RADIO
Item is a radio button (one checkbox of many can be on)
Definition Fl_Menu_Item.H:32
@ FL_SUBMENU
Item is a submenu to other items.
Definition Fl_Menu_Item.H:35
@ FL_MENU_DIVIDER
Creates divider line below this item. Also ends a group of radio buttons.
Definition Fl_Menu_Item.H:36
@ FL_MENU_TOGGLE
Item is a checkbox toggle (shows checkbox for on/off state)
Definition Fl_Menu_Item.H:30
@ FL_SUBMENU_POINTER
Indicates user_data() is a pointer to another menu array.
Definition Fl_Menu_Item.H:34
@ FL_MENU_VALUE
The on/off state for checkbox/radio buttons (if set, state is 'on')
Definition Fl_Menu_Item.H:31
@ FL_MENU_INVISIBLE
Item will not show up (shortcut will work)
Definition Fl_Menu_Item.H:33
@ FL_MENU_INACTIVE
Deactivate menu item (gray out)
Definition Fl_Menu_Item.H:29
@ FL_MENU_HORIZONTAL
??? – reserved, internal (do not use)
Definition Fl_Menu_Item.H:37
@ FL_MENU_RESERVED
These bits are reserved for internal or future usage (do not use)
Definition Fl_Menu_Item.H:38
void() Fl_Callback(Fl_Widget *, void *)
Default callback type definition for all fltk widgets (by far the most used)
Definition Fl_Widget.H:33
unsigned char uchar
unsigned char
Definition fl_types.h:30
The Fl_Menu_Item structure defines a single menu item that is used by the Fl_Menu_ class.
Definition Fl_Menu_Item.H:115
Fl_Callback * callback_
menu item callback
Definition Fl_Menu_Item.H:118
const char * text
menu item text, returned by label()
Definition Fl_Menu_Item.H:116
Fl_Fontsize labelsize_
size of menu item text
Definition Fl_Menu_Item.H:123
Fl_Color labelcolor_
menu item text color
Definition Fl_Menu_Item.H:124
int shortcut_
menu item shortcut
Definition Fl_Menu_Item.H:117
void * user_data_
menu item user_data for the menu's callback
Definition Fl_Menu_Item.H:119
int flags
menu item flags like FL_MENU_TOGGLE, FL_MENU_RADIO
Definition Fl_Menu_Item.H:120
uchar labeltype_
how the menu item text looks like
Definition Fl_Menu_Item.H:121
Fl_Font labelfont_
which font for this menu item text
Definition Fl_Menu_Item.H:122

Typically menu items are statically defined; for example:

{"&alpha", FL_ALT+'a', the_cb, (void*)1},
{"&beta", FL_ALT+'b', the_cb, (void*)2},
{"gamma", FL_ALT+'c', the_cb, (void*)3, FL_MENU_DIVIDER},
{"&strange", 0, strange_cb},
{"&charm", 0, charm_cb},
{"&truth", 0, truth_cb},
{"b&eauty", 0, beauty_cb},
{"sub&menu", 0, 0, 0, FL_SUBMENU},
{"one"},
{"two"},
{"three"},
{0},
{"inactive", FL_ALT+'i', 0, 0, FL_MENU_INACTIVE|FL_MENU_DIVIDER},
{"invisible",FL_ALT+'i', 0, 0, FL_MENU_INVISIBLE},
{"check", FL_ALT+'i', 0, 0, FL_MENU_TOGGLE|FL_MENU_VALUE},
{"box", FL_ALT+'i', 0, 0, FL_MENU_TOGGLE},
{0}};
#define FL_ALT
One of the alt keys is down.
Definition Enumerations.H:570
const Fl_Menu_Item * popup(int X, int Y, const char *title=0, const Fl_Menu_Item *picked=0, const Fl_Menu_ *=0) const
This method is called by widgets that want to display menus.
Definition Fl_Menu.cxx:1150

produces:

A submenu title is identified by the bit FL_SUBMENU in the flags field, and ends with a label() that is NULL. You can nest menus to any depth. A pointer to the first item in the submenu can be treated as an Fl_Menu array itself. It is also possible to make separate submenu arrays with FL_SUBMENU_POINTER flags.

You should use the method functions to access structure members and not access them directly to avoid compatibility problems with future releases of FLTK.

Note
Adding menu items with insert(), add(), or any of its overloaded variants copies the entire menu to internal storage. Using the memory of a static menu array after that would access unused (but not released) memory and thus have no effect.

Member Function Documentation

◆ add()

int Fl_Menu_Item::add ( const char *  mytext,
int  sc,
Fl_Callback cb,
void *  data = 0,
int  myflags = 0 
)

Adds a menu item.

The text is split at '/' characters to automatically produce submenus (actually a totally unnecessary feature as you can now add submenu titles directly by setting FL_SUBMENU in the flags).

Returns
the index into the menu() array, where the entry was added
See also
Fl_Menu_Item::insert(int, const char*, int, Fl_Callback*, void*, int)

◆ argument() [1/2]

long Fl_Menu_Item::argument ( ) const
inline

Gets the user_data() argument that is sent to the callback function.

For convenience you can also define the callback as taking a long argument. This method casts the stored userdata() argument to long and returns it as a long value.

◆ argument() [2/2]

void Fl_Menu_Item::argument ( long  v)
inline

Sets the user_data() argument that is sent to the callback function.

For convenience you can also define the callback as taking a long argument. This method casts the given argument v to void* and stores it in the menu item's userdata() member. This may not be portable to some machines.

◆ callback() [1/5]

Fl_Callback_p Fl_Menu_Item::callback ( ) const
inline

Returns the callback function that is set for the menu item.

Each item has space for a callback function and an argument for that function. Due to back compatibility, the Fl_Menu_Item itself is not passed to the callback, instead you have to get it by calling ((Fl_Menu_*)w)->mvalue() where w is the widget argument.

◆ callback() [2/5]

void Fl_Menu_Item::callback ( Fl_Callback c)
inline

Sets the menu item's callback function.

This method does not set the userdata() argument.

See also
Fl_Callback_p Fl_MenuItem::callback() const

◆ callback() [3/5]

void Fl_Menu_Item::callback ( Fl_Callback c,
void *  p 
)
inline

Sets the menu item's callback function and userdata() argument.

See also
Fl_Callback_p Fl_MenuItem::callback() const

◆ callback() [4/5]

void Fl_Menu_Item::callback ( Fl_Callback0 c)
inline

Sets the menu item's callback function.

This method does not set the userdata() argument.

See also
Fl_Callback_p Fl_MenuItem::callback() const

◆ callback() [5/5]

void Fl_Menu_Item::callback ( Fl_Callback1 c,
long  p = 0 
)
inline

Sets the menu item's callback function and userdata() argument.

The argument is cast to void* and stored as the userdata() for the menu item's callback function.

See also
Fl_Callback_p Fl_MenuItem::callback() const

◆ check()

void Fl_Menu_Item::check ( )
inline

Back compatibility only.

Deprecated:
Please use Fl_Menu_Item::set() instead. This method will be removed in FLTK 1.5.0 or later.
See also
set()

◆ checkbox()

int Fl_Menu_Item::checkbox ( ) const
inline

Returns true if a checkbox will be drawn next to this item.

This is true if FL_MENU_TOGGLE or FL_MENU_RADIO is set in the flags.

◆ checked()

int Fl_Menu_Item::checked ( ) const
inline

Back compatibility only.

Deprecated:
Please use Fl_Menu_Item::value() instead. This method will be removed in FLTK 1.5.0 or later.
See also
value()

◆ deactivate()

void Fl_Menu_Item::deactivate ( )
inline

Prevents a menu item from being picked.

Note that this will also cause the menu item to appear grayed-out.

◆ do_callback() [1/3]

void Fl_Menu_Item::do_callback ( Fl_Widget o) const
inline

Calls the Fl_Menu_Item item's callback, and provides the Fl_Widget argument.

The callback is called with the stored user_data() as its second argument. You must first check that callback() is non-zero before calling this.

◆ do_callback() [2/3]

void Fl_Menu_Item::do_callback ( Fl_Widget o,
long  arg 
) const
inline

Calls the Fl_Menu_Item item's callback, and provides the Fl_Widget argument.

This call overrides the callback's second argument with the given value arg. long arg is cast to void* when calling the callback. You must first check that callback() is non-zero before calling this.

◆ do_callback() [3/3]

void Fl_Menu_Item::do_callback ( Fl_Widget o,
void *  arg 
) const
inline

Calls the Fl_Menu_Item item's callback, and provides the Fl_Widget argument.

This call overrides the callback's second argument with the given value arg. You must first check that callback() is non-zero before calling this.

◆ find_shortcut()

const Fl_Menu_Item * Fl_Menu_Item::find_shortcut ( int *  ip = 0,
const bool  require_alt = false 
) const

Search only the top level menu for a shortcut.

Either &x in the label or the shortcut fields are used.

This tests the current event, which must be an FL_KEYBOARD or FL_SHORTCUT, against a shortcut value.

Parameters
ipreturns the index of the item, if ip is not NULL.
require_altif true: match only if Alt key is pressed.
Returns
found Fl_Menu_Item or NULL

◆ image() [1/2]

void Fl_Menu_Item::image ( Fl_Image image)
inline

Compatibility API for FLUID, same as image.label(this).

Note
This method is intended for internal use by fluid and may not do what you expect.

◆ image() [2/2]

void Fl_Menu_Item::image ( Fl_Image image)
inline

Compatibility API for FLUID, same as image->label(this).

Note
This method is intended for internal use by fluid and may not do what you expect.

◆ image_label()

void Fl_Menu_Item::image_label ( const Fl_Image image)
inline

Sets the title (label()) to an icon or image.

This sets the labeltype() to _FL_IMAGE_LABEL (note the leading underscore).

See also
const char* Fl_Menu_Item::label() const
Since
1.4.0

◆ insert()

int Fl_Menu_Item::insert ( int  index,
const char *  mytext,
int  sc,
Fl_Callback cb,
void *  data = 0,
int  myflags = 0 
)

Inserts an item at position index.

If index is -1, the item is added the same way as Fl_Menu_Item::add().

If 'mytext' contains any un-escaped front slashes (/), it's assumed a menu pathname is being specified, and the value of index will be ignored.

In all other aspects, the behavior of insert() is the same as add().

Parameters
[in]indexinsert new items here
[in]mytextnew label string, details see above
[in]sckeyboard shortcut for new item
[in]cbcallback function for new item
[in]datauser data for new item
[in]myflagsmenu flags as described in Fl_Menu_Item
Returns
the index into the menu() array, where the entry was added

◆ label() [1/3]

const char * Fl_Menu_Item::label ( ) const
inline

Returns the title (label) of the menu item.

A NULL here indicates the end of the menu (or of a submenu). A '&' in the item will print an underscore under the next letter, and if the menu is popped up that letter will be a "shortcut" to pick that item. To get a real '&' put two in a row.

The returned value depends on the labeltype() that has been used to store the label.

Returns
A pointer to the label cast to (const char *)
Return values
(a)A pointer to text (const char *)
(b)A pointer to an image (Fl_Image *)
(c)A pointer to a "multi label" (Fl_Multi_Label *)
NULLEnd of menu or submenu
See also
Fl_Menu_Item::label(const char *)
Fl_Menu_Item::label(Fl_Labeltype, const char *)
Fl_Menu_Item::image_label(const Fl_Image *)
Fl_Menu_Item::multi_label(const Fl_Multi_Label *)
Fl_Multi_Label::label(Fl_Menu_Item *)

◆ label() [2/3]

void Fl_Menu_Item::label ( const char *  a)
inline

Sets the title (label) of the menu item.

Note
This does not change the labeltype() for backwards compatibility. Take care to assign the correct labeltype() if you assign different label types to the same menu item sequentially.

The default labeltype() is FL_NORMAL_LABEL.

See also
label(Fl_Labeltype, const char*)
const char* Fl_Menu_Item::label() const

◆ label() [3/3]

void Fl_Menu_Item::label ( Fl_Labeltype  a,
const char *  b 
)
inline

Sets the title (label) and the label type of the menu item.

The default Fl_Labeltype when using Fl_Menu_Item::label(const char* a) is FL_NORMAL_LABEL but you can set any other label type, for instance FL_EMBOSSED_LABEL.

Special labeltypes are:

  • FL_ICON_LABEL: draws the icon (Fl_Image) associated with the text
  • FL_IMAGE_LABEL: draws the image (Fl_Image) associated with the text
  • FL_MULTI_LABEL: draws multiple parts side by side, see Fl_Multi_Label
See also
const char* Fl_Menu_Item::label() const

◆ labelcolor() [1/2]

Fl_Color Fl_Menu_Item::labelcolor ( ) const
inline

Gets the menu item's label color.

This color is passed to the labeltype routine, and is typically the color of the label text. This defaults to FL_BLACK. If this color is not black fltk will not use overlay bitplanes to draw the menu - this is so that images put in the menu draw correctly.

◆ labelcolor() [2/2]

void Fl_Menu_Item::labelcolor ( Fl_Color  a)
inline

Sets the menu item's label color.

See also
Fl_Color Fl_Menu_Item::labelcolor() const

◆ labelfont() [1/2]

Fl_Font Fl_Menu_Item::labelfont ( ) const
inline

Gets the menu item's label font.

Fonts are identified by small 8-bit indexes into a table. See the enumeration list for predefined fonts. The default value is a Helvetica font. The function Fl::set_font() can define new fonts.

◆ labelfont() [2/2]

void Fl_Menu_Item::labelfont ( Fl_Font  a)
inline

Sets the menu item's label font.

Fonts are identified by small 8-bit indexes into a table. See the enumeration list for predefined fonts. The default value is a Helvetica font. The function Fl::set_font() can define new fonts.

◆ labeltype() [1/2]

Fl_Labeltype Fl_Menu_Item::labeltype ( ) const
inline

Returns the menu item's labeltype.

A labeltype identifies a routine that draws the label of the widget. This can be used for special effects such as emboss, or to use the label() pointer as another form of data such as a bitmap. The value FL_NORMAL_LABEL prints the label as text.

◆ labeltype() [2/2]

void Fl_Menu_Item::labeltype ( Fl_Labeltype  a)
inline

Sets the menu item's labeltype.

A labeltype identifies a routine that draws the label of the widget. This can be used for special effects such as emboss, or to use the label() pointer as another form of data such as a bitmap. The value FL_NORMAL_LABEL prints the label as text.

◆ measure()

int Fl_Menu_Item::measure ( int *  hp,
const Fl_Menu_ m 
) const

Measures width of label, including effect of & characters.

Optionally, can get height if hp is not NULL.

◆ multi_label()

void Fl_Menu_Item::multi_label ( const Fl_Multi_Label ml)
inline

Sets the title (label()) and labeltype() to an Fl_Multi_Label.

This sets the labeltype() to _FL_MULTI_LABEL (note the leading underscore).

See also
const char* Fl_Menu_Item::label() const
Since
1.4.0

◆ next() [1/2]

Fl_Menu_Item * Fl_Menu_Item::next ( int  i = 1)
inline

Advances a pointer by n items through a menu array, skipping the contents of submenus and invisible items.

There are two calls so that you can advance through const and non-const data.

◆ next() [2/2]

const Fl_Menu_Item * Fl_Menu_Item::next ( int  n = 1) const

Advance a pointer by n items through a menu array, skipping the contents of submenus and invisible items.

There are two calls so that you can advance through const and non-const data.

◆ popup()

const Fl_Menu_Item * Fl_Menu_Item::popup ( int  X,
int  Y,
const char *  title = 0,
const Fl_Menu_Item picked = 0,
const Fl_Menu_ menu_button = 0 
) const

This method is called by widgets that want to display menus.

The menu stays up until the user picks an item or dismisses it. The selected item (or NULL if none) is returned. This does not do the callbacks or change the state of check or radio items.

The menu is positioned so the cursor is centered over the item picked. This will work even if picked is in a submenu. If picked is zero or not in the menu item table the menu is positioned with the cursor in the top-left corner.

Parameters
[in]X,Ythe position of the mouse cursor, relative to the window that got the most recent event (usually you can pass Fl::event_x() and Fl::event_y() unchanged here).
[in]titlea character string title for the menu. If non-zero a small box appears above the menu with the title in it.
[in]pickedif this pointer is not NULL, the popup menu will appear so that the picked menu is under the mouse pointer.
[in]menu_buttonis a pointer to an Fl_Menu_ from which the color and boxtypes for the menu are pulled. If NULL then defaults are used.
Returns
a pointer to the menu item selected by the user, or NULL

◆ pulldown()

const Fl_Menu_Item * Fl_Menu_Item::pulldown ( int  X,
int  Y,
int  W,
int  H,
const Fl_Menu_Item initial_item = 0,
const Fl_Menu_ pbutton = 0,
const Fl_Menu_Item title = 0,
int  menubar = 0 
) const

Pulldown() is similar to popup(), but a rectangle is provided to position the menu.

The menu is made at least W wide, and the picked item initial_item is centered over the rectangle (like Fl_Choice uses).

If initial_item is NULL or not found, the menu is aligned just below the rectangle (like a pulldown menu).

The title and menubar arguments are used internally by the Fl_Menu_Bar widget.

◆ radio()

int Fl_Menu_Item::radio ( ) const
inline

Returns true if this item is a radio item.

When a radio button is selected all "adjacent" radio buttons are turned off. A set of radio items is delimited by an item that has radio() false, or by an item with FL_MENU_DIVIDER turned on.

◆ set()

void Fl_Menu_Item::set ( )
inline

Turns the check or radio item "on" for the menu item.

Note that this does not turn off any adjacent radio items like setonly() does.

◆ setonly()

void Fl_Menu_Item::setonly ( Fl_Menu_Item const *  first = NULL)

Turns the radio item "on" for the menu item and turns "off" adjacent radio items set.

Note
This method is dangerous if radio items are first in the menu. Make sure that first is set ciorrectly or use Fl_Menu_::setonly(Fl_Menu_Item*) instead.
Parameters
[in]firststart of menu array or NULL (default) if the radio group is not the first item

◆ shortcut()

void Fl_Menu_Item::shortcut ( int  s)
inline

Sets exactly what key combination will trigger the menu item.

The value is a logical 'or' of a key and a set of shift flags, for instance FL_ALT+'a' or FL_ALT+FL_F+10 or just 'a'. A value of zero disables the shortcut.

The key can be any value returned by Fl::event_key(), but will usually be an ASCII letter. Use a lower-case letter unless you require the shift key to be held down.

The shift flags can be any set of values accepted by Fl::event_state(). If the bit is on that shift key must be pushed. Meta, Alt, Ctrl, and Shift must be off if they are not in the shift flags (zero for the other bits indicates a "don't care" setting).

◆ size()

int Fl_Menu_Item::size ( ) const

Size of the menu starting from this menu item.

This method counts all menu items starting with this menu item, including all menu items in the same (sub)menu level, all nested submenus, and the terminating empty (0) menu item.

It does not count menu items referred to by FL_SUBMENU_POINTER menu items (except the single menu item with FL_SUBMENU_POINTER).

All menu items counted are consecutive in memory (one array).

Example:

schemechoice = new Fl_Choice(X+125,Y,140,25,"FLTK Scheme");
schemechoice->add("none");
schemechoice->add("plastic");
schemechoice->add("gtk+");
schemechoice->add("gleam");
printf("schemechoice->menu()->size() = %d\n", schemechoice->menu()->size());
A button that is used to pop up a menu.
Definition Fl_Choice.H:104

Output:

schemechoice->menu()->size() = 5

◆ submenu()

int Fl_Menu_Item::submenu ( ) const
inline

Returns true if either FL_SUBMENU or FL_SUBMENU_POINTER is on in the flags.

FL_SUBMENU indicates an embedded submenu that goes from the next item through the next one with a NULL label(). FL_SUBMENU_POINTER indicates that user_data() is a pointer to another menu array.

◆ test_shortcut()

const Fl_Menu_Item * Fl_Menu_Item::test_shortcut ( ) const

This is designed to be called by a widgets handle() method in response to a FL_SHORTCUT event.

If the current event matches one of the items shortcut, that item is returned. If the keystroke does not match any shortcuts then NULL is returned. This only matches the shortcut() fields, not the letters in the title preceeded by '

◆ uncheck()

void Fl_Menu_Item::uncheck ( )
inline

Back compatibility only.

Deprecated:
Please use Fl_Menu_Item::clear() instead. This method will be removed in FLTK 1.5.0 or later.
See also
clear()

◆ value()

int Fl_Menu_Item::value ( ) const
inline

Returns the current value of the check or radio item.

This is zero (0) if the menu item is not checked and non-zero otherwise.

Since
1.4.0 this method returns 1 if the item is checked but you should not rely on a particular value, only zero or non-zero.
Note
The returned value for a checked menu item was FL_MENU_VALUE (4) before FLTK 1.4.0.

The documentation for this struct was generated from the following files: