DOKK / manpages / debian 11 / allegro5-doc / ALLEGRO_MENU_INFO.3alleg5.en
ALLEGRO_MENU_INFO(3alleg5) ALLEGRO_MENU_INFO(3alleg5)

ALLEGRO_MENU_INFO - Allegro 5 API

#include <allegro5/allegro_native_dialog.h>
typedef struct ALLEGRO_MENU_INFO {
    

A structure that defines how to create a complete menu system. For standard menu items, the following format is used:


{ caption, id, flags, icon }

For special items, these macros are helpful:

ALLEGRO_START_OF_MENU(caption, id)
ALLEGRO_MENU_SEPARATOR
ALLEGRO_END_OF_MENU
    

A well-defined menu will begin with ALLEGRO_START_OF_MENU, contain one or more menu items, and end with ALLEGRO_END_OF_MENU. A menu may contain sub-menus. An example:

ALLEGRO_MENU_INFO menu_info[] = {

ALLEGRO_START_OF_MENU("&File", 1),
{ "&Open", 2, 0, NULL },
ALLEGRO_START_OF_MENU("Open &Recent...", 3),
{ "Recent 1", 4, 0, NULL },
{ "Recent 2", 5, 0, NULL },
ALLEGRO_END_OF_MENU,
ALLEGRO_MENU_SEPARATOR,
{ "E&xit", 6, 0, NULL },
ALLEGRO_END_OF_MENU,
ALLEGRO_START_OF_MENU("&Help", 7),
{"&About", 8, 0, NULL },
ALLEGRO_END_OF_MENU,
ALLEGRO_END_OF_MENU }; ALLEGRO_MENU *menu = al_build_menu(menu_info);

If you prefer, you can build the menu without the structure by using al_create_menu(3alleg5) and al_insert_menu_item(3alleg5).

al_build_menu(3alleg5)

Allegro reference manual