SDK Multiplataforma en C logo

SDK Multiplataforma en C

Menu

❮ Anterior
Siguiente ❯

Funciones

Menu*menu_create (void)
voidmenu_destroy (...)
voidmenu_launch (...)
voidmenu_hide (...)
voidmenu_item (...)
voidmenu_off_items (...)
MenuItem*menu_get_item (...)
uint32_tmenu_size (...)

Un Menu es un tipo de control que integra una serie de opciones, también llamadas items o MenuItems. Cada una de ellas consta de un texto corto, opcionalmente un icono y opcionalmente también un atajo de teclado, como por ejemplo el clásico Ctrl+C/Ctrl+V para copiar y pegar. Adicionalmente, un item puede albergar un submenu conformando una jerarquía con diferentes niveles de profundidad. En Products tienes una aplicación de ejemplo que utiliza menús.

Hay que destruir explícitamente cualquier menú que creemos en la aplicación, al igual que ocurre con las ventanas.
Al destruir un menú se realiza, implícitamente, la destrucción de todos sus elementos.

Generalmente, disponemos de dos formas de lanzar o mostrar menú. Por un lado, las barras de menú (Figura 1), que son ancladas a una ventana, aunque hay sistemas operativos (como macOS) que muestran la barra de menú en la parte superior de la pantalla. Por otro lado, los menú popup o contextuales (Figura 2) que se muestran en cualquier momento de la ejecución como una ventana superpuesta, normalmente cuando se hace clic derecho sobre algún elemento de la interfaz.

Captura de la barra de menú de una aplicación de escritorio.
Figura 1: Barra de menú en Windows, macOS y Linux.
Captura de pantalla donde se muestra un menu popup lanzado con el botón derecho del ratón.
Figura 2: Menú contextual lanzado en tiempo de ejecución.

El concepto de menú, al igual que el de ventana, existe desde el origen de las interfaces gráficas. El primer ordenador en incorporarlas fue el Xerox Alto que apareció en 1973 y su sucesor comercial el Xerox Star. Conceptos aún muy vivos a día de hoy como: Menú, Ventana, Icono, Escritorio, o Ratón ya estaban presentes en estos equipos que sirvieron de inspiración a Steve Jobs en la creación del Apple Lisa (Figura 3), precursor del Machintosh e inspirador de Microsoft Windows.

Captura del entorno de escritorio del Apple Lisa.
Figura 3: El Apple Lisa fue uno de los primeros sistemas en incorporar menús como parte de la interfaz gráfica.
❮ Anterior
Siguiente ❯

menu_create ()

Crea un nuevo menú.

Menu*
menu_create(void);

Retorna

El menú recién creado.


menu_destroy ()

Destruye un menú y toda su jerarquía.

void
menu_destroy(Menu **menu);
menu

El menú. Será puesto a NULL tras la destrucción.


menu_launch ()

Lanza un menú como secundario o PopUp.

void
menu_launch(Menu *menu,
            const V2Df position);
menu

El menú.

position

Coordenadas de la esquina superior izquierda.


menu_hide ()

Oculta un menú como secundario o PopUp.

void
menu_hide(Menu *menu);
menu

El menú.


menu_item ()

Añade un item al menú.

void
menu_item(Menu *menu,
          MenuItem *item);
menu

El menú.

item

El item a añadir.


menu_off_items ()

Establece el estado ekGUI_OFF para todos los items del menú.

void
menu_off_items(Menu *menu);
menu

El menú.


menu_get_item ()

Obtiene un item del menú.

MenuItem*
menu_get_item(Menu *menu,
              const uint32_t index);
menu

El menú.

index

El índice del item.

Retorna

El item.


menu_size ()

Obtiene el número de items.

uint32_t
menu_size(const Menu *menu);
menu

El menú.

Retorna

Número de items.

❮ Anterior
Siguiente ❯