---
name: "ALLEGRO_MENU_INFO"
section: "3"
platform: "linux"
package: "allegro"
version: "5.2.11.3-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ALLEGRO_MENU_INFO"
---

# ALLEGRO\_MENU\_INFO(3)

Allegro 5 API

## NAME

ALLEGRO\_MENU\_INFO - Allegro 5 API

## SYNOPSIS

-

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

## DESCRIPTION

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(3)](/al_create_menu/3.md) and [al\_insert\_menu\_item(3)](/al_insert_menu_item/3.md).

## SEE ALSO

[al\_build\_menu(3)](/al_build_menu/3.md)
