Menu
Funciones
Menu* | menu_create (void) |
void | menu_destroy (...) |
void | menu_launch (...) |
void | menu_hide (...) |
void | menu_item (...) |
void | menu_off_items (...) |
MenuItem* | menu_get_item (...) |
uint32_t | menu_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.
- Utiliza menu_create para crear un menú.
- Utiliza menu_destroy para destruir un menú.
- Utiliza menu_item para añadir una opción.
- Utiliza menu_launch para lanzar un menú popup.
- Utiliza osapp_menubar para establecer la barra de menú de la aplicación.
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.
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.
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 |
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.