La librería xsmenu de xsEasyC proporciona funciones para crear Menus y Ventanas de Captura-Mensaje, para aplicaciones de Consola. Esta librería hace uso de la librería conio; para lo cual al realizar la compilación del archivo; se debe de agregar el uso de esta librería, tal y como se muestra en el siguiente ejemplo:
gcc menuHorizontal.c -lxseasyc -lconio -o menuHorizontal
El comando anterior compilará el archivo menuHorizontal.c (incluido en los ejemplos) y utilizará la librería xsEasyC y la librería conio; para generar el ejecutable menuHorizontal.exe.
Las Funciones que incluye la librería son las siguientes:
- menuHorizontal
Función para crear un Menú Horizontal en la Pantalla.
Esta función utiliza 5 parámetros:
Opcion menu[]. Este valor es un Vector de Cadenas el cual contiene las Opciones del Menú a mostrar.
Entero opciones. Este valor se utiliza para indicar cuantas opciones desplegará el Menú. Debe de coincidir con las opciones del Vector.
Entero activa. Este valor se utiliza para indicar cual de las opciones estará activa al desplegar el Menú.
Entero renglon. Este valor indica el renglón en donde aparecerá el Menú.
Entero columna. Este valor indica la columna a partir de la cual se desplegarán las opciones del Menú.
Ejemplo:
// Declara el vector de opciones
Opcion menu[5];
// Indica las opciones
cadenaAsignar(menu[0],"Aceptar");
cadenaAsignar(menu[1],"Cancelar");
cadenaAsignar(menu[2],"Buscar");
cadenaAsignar(menu[3],"Codificacion");
cadenaAsignar(menu[4],"Herramientas");
// Variable para la opcion Seleccionada
Entero opcion;
// Llama al Menu
opcion = menuHorizontal(menu,5,2,10,40);
CL;
El Ejemplo anterior muestra un Menú de 5 Opciones, indicando que la número 2 será la inicialmente activa. El Menú es desplegado en el renglón 10; iniciando el despliegue de las opciones en la columna 40. El usuario puede seleccionar las opciones utilizando las flechas de movimiento del cursor y al presionar ENTER la función devuelve el número de la opción seleccionada.
- menuVertical
Función para crear un Menú Vertical en la Pantalla.
Esta función utiliza 5 parámetros:
Opcion menu[]. Este valor es un Vector de Cadenas el cual contiene las Opciones del Menú a mostrar.
Entero opciones. Este valor se utiliza para indicar cuantas opciones desplegará el Menú. Debe de coincidir con las opciones del Vector.
Entero activa. Este valor se utiliza para indicar cual de las opciones estará activa al desplegar el Menú.
Entero renglon. Este valor indica el renglón en donde inicia el despliegue de las opciones del Menú.
Entero columna. Este valor indica la columna en donde se despliegan las opciones del Menú.
Ejemplo:
// Declara el vector de opciones
Opcion menu[5];
// Indica las opciones
cadenaAsignar(menu[0],"Aceptar ");
cadenaAsignar(menu[1],"Cancelar ");
cadenaAsignar(menu[2],"Buscar ");
cadenaAsignar(menu[3],"Codificacion");
cadenaAsignar(menu[4],"Herramientas");
// Variable para la opcion Seleccionada
Entero opcion;
// Llama al Menu
opcion = menuVertical(menu,5,1,10,5);
CL;
// Mensaje
imprimirEntero(opcion,"La opcion seleccionada es:%d",SIN_CAMBIO_LINEA);
El Ejemplo anterior muestra un Menú de 5 Opciones, indicando que la número 1 será la inicialmente activa. El Menú es desplegado desde el renglón 10; y en la Columna 5. Al igual que con el Menú Horizontal, el usuario puede seleccionar las opciones utilizando las flechas de movimiento del cursor y al presionar ENTER la función devuelve el número de la opción seleccionada.
- ventanaCaptura
Función para crear una Ventana de Captura de Datos.
Esta función utiliza 5 parámetros:
Caracter *titulo. Este valor es para indicar el Título que será desplegado en la Ventana.
Cadena mensajes[]. Este valor es un Vector de Cadenas, el cual contiene los mensajes que será desplegado en la Ventana.
Entero lineas. Este valor se utiliza para indicar cual lineas contiene el Mensaje; debe de corresponder con el Vector de mensajes.
Entero ancho. Este valor indica el ancho en columnas que tendrá la Ventana de Captura.
Caracter *captura. Este valor es en donde se depositará lo que el usuario capture.
Ejemplo:
// Construyo el Vector de Mensaje
Cadena mensajes[3];
// Captura los Mensajes
cadenaAsignar(mensajes[0],"Capture el mensaje a Enviar");
cadenaAsignar(mensajes[1],"50 caracteres disponibles");
cadenaAsignar(mensajes[2],"Al finalizar presione Enter");
// Variable para la captura
Cadena captura;
// Ventana de Captura
ventanaCaptura("Sistema V3.0",mensajes,3,50,captura);
El Ejemplo anterior muestra un Ventana de Captura con un ancho de 50 columnas, en la cual aparece un Mensaje en 3 líneas, y donde el usuario puede capturar una respuesta específica. La Ventana de Captura aparece centrada en la pantalla, de acuerdo a las líneas del Mensaje y al ancho de la Ventana.
- ventanaMensaje
Función para crear una Ventana de Mensaje.
Esta función utiliza 5 parámetros:
Caracter *titulo. Este valor es para indicar el Título que será desplegado en la Ventana.
Cadena mensajes[]. Este valor es un Vector de Cadenas, el cual contiene los mensajes que será desplegado en la Ventana.
Entero lineas. Este valor se utiliza para indicar cual lineas contiene el Mensaje; debe de corresponder con el Vector de mensajes.
Entero ancho. Este valor indica el ancho en columnas que tendrá la Ventana de Captura.
Entero botones. Este valor es para indicar cuales botones serán presentados. Las opciones disponibles son: BOTON_ACEPTAR, BOTON_ACEPTAR_CANCELAR, BOTON_REINTENTAR_CANCELAR, BOTON_SI_NO, BOTON_SI_NO_CANCELAR y BOTON_ANULAR_REINTENTAR_IGNORAR.
Ejemplo:
// Construyo el Vector de Mensaje
Cadena mensajes[3];
// Define los mensajes a desplegar
cadenaAsignar(mensajes[0],"El Sistema ha Detectado un Error");
cadenaAsignar(mensajes[1],"No ha sido posible abrir el archivo");
cadenaAsignar(mensajes[2],"Deseas continuar de cualquier forma?");
// Mensaje
ventanaMensaje("Sistema V3.0",mensajes,3,50,BOTON_REINTENTAR_CANCELAR);
El Ejemplo anterior muestra un Ventana con un Mensaje de 3 líneas y un ancho de 50 columnas, y se despliegan 2 botones para que el usuario seleccione el botón que desee; el botón de Reintentar y el botón de Cancelar. La Ventana de Mensaje aparece centrada en la pantalla de acuerdo a las líneas desplegadas y al ancho de la Ventana de Mensaje.La función devolverá el botón que el usuario haya seleccionado.