- items = (ITEM **)calloc(9, sizeof(ITEM *));
-
- items[0] = new_item(opciones[0], "Alta,baja,consulta y modificacion de articulos.");
- items[1] = new_item(opciones[1], "Alta,baja,consulta y modificacion de facturas.");
- items[2] = new_item(opciones[2], "Ver registros/bloques de archivo Articulos.");
- items[3] = new_item(opciones[3], "Ver registros/bloques de archivo Facturas.");
- items[4] = new_item(opciones[4], "Ver registros/bloques de archivo Notas.");
- items[5] = new_item(opciones[5], "Ver estadisticas de ocupacion de archivos.");
- items[6] = new_item(opciones[6], "Tareas de mantenimiento de los archivos.");
- items[7] = new_item(opciones[7], "Salir del sistema.");
- items[8] = NULL;
-
- menu = new_menu((ITEM **)items);
- menu_win = newwin(14, COLS-2, 3, 1);
- keypad(menu_win, TRUE);
- set_menu_mark(menu, " > ");
- set_menu_win(menu, menu_win);
- set_menu_sub(menu, derwin(menu_win, 10, COLS-4, 3, 1));
-
- box(menu_win, 0, 0);
- mvwaddch(menu_win, 2, 0, ACS_LTEE);
- mvwhline(menu_win, 2, 1, ACS_HLINE, COLS-3);
- mvwaddch(menu_win, 2, COLS-3, ACS_RTEE);
- wattron(menu_win, COLOR_PAIR(COLOR_RED));
- mvwaddstr(menu_win, 1, 1, "Menu Principal");
- wattroff(menu_win, COLOR_PAIR(COLOR_RED));
- post_menu(menu);
- wrefresh(menu_win);
-
- curs_set(0);
- opcion = -1;
- salir = 0;
- while((!salir) && (c = getch())) {
- switch(c) {
- case KEY_DOWN:
- menu_driver(menu, REQ_DOWN_ITEM);
- break;
- case KEY_UP:
- menu_driver(menu, REQ_UP_ITEM);
- break;
- case 13:
- case 10:
- {
- ITEM *cur;
- int i;
-
- cur = current_item(menu);
- for(i=0; i<7; ++i) {
- if (strcmp(item_name(cur), opciones[i]) == 0)
- opcion = i;
- }
- pos_menu_cursor(menu);
- salir = 1;
- }
- }
- wrefresh(menu_win);
- }
- curs_set(1);
-
- unpost_menu(menu);
- werase(menu_win);
- wrefresh(menu_win);
- delwin(menu_win);
- free_item(items[0]);
- free_item(items[1]);
- free_item(items[2]);
- free_item(items[3]);
- free_item(items[4]);
- free_item(items[5]);
- free_item(items[6]);
- free_menu(menu);
- free(items);
-
- return opcion;