Paso 8: menús
Para hacer el sistema más portable, construí su funcionalidad en una única función que toma un puñado de argumentos. Esta función será dibujar el menú y permite al usuario seleccionar una opción. La función devuelve el índice de la opción seleccionada. Para hacer el código reutilizable, todo texto de menú se carga desde una matriz.
Este es el prototipo de función:
char print_menu (char menu_text [] [22], char menu_length, starting_position char, int title_color, int title_bgcolor, int entry_color, int entry_bgcolor, int highlight_color, int highlight_bgcolor);
menu_text - una matriz de caracteres X-por-22. Cada fila es una línea de menú (la primera línea es el título).
menu_length - el número de líneas de la matriz, no incluyendo la línea de título
starting_position - el índice de la entrada en (el primer índice es 1 que la línea de título es técnico índice 0 pero no se puede seleccionar)
title_color - el color del texto del título
title_bgcolor - el color de fondo del título
entry_color - el color del texto de entrada
entry_bgcolor - el color de fondo de entrada
highlight_color - el color del texto de entrada resaltada
highlight_bgcolor - el color de fondo de la entrada destacada
Nota: Todos los colores son valores de 16 bits en formato 0x0RGB
El código no es publicado porque es largo, es para descargar al final de este Instructable.