Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "menu.h"
- #include "form.h"
- #include "curses.h"
- #include "stdlib.h"
- #include "signal.h"
- static void finish(int sig);
- /* student struct */
- struct student_struct
- {
- int ID;
- char *name;
- float p1, p2, f;
- };
- typedef struct student_struct student;
- void addstu(WINDOW *viewwin, student *class);
- int main(int argc, char *argv[])
- {
- signal(SIGINT, finish);
- WINDOW *viewwin;
- student *class;
- int width, height;
- /* initialize curses */
- initscr();
- keypad(stdscr, TRUE);
- cbreak();
- noecho();
- /* create windows */
- getmaxyx(stdscr, height, width);
- viewwin = newwin(height - (height/10 + 2), (width/2) - 1, (height/10) + 1, (width/2) + 1);
- box(viewwin, 0, 0);
- wattron(viewwin, A_REVERSE);
- mvwprintw(viewwin, 1, 1, "%s", "View");
- mvwhline(viewwin, 2, 1, ACS_HLINE, (width/2) - 3);
- wattroff(viewwin, A_REVERSE);
- wrefresh(viewwin);
- addstu(viewwin, class);
- finish(0);
- }
- void addstu(WINDOW *viewwin, student *class)
- {
- //WINDOW *viewsub;
- FIELD *info[5];
- FORM *adding;
- keypad(viewwin, TRUE);
- //keypad(viewsub, TRUE);
- int height, width, c;
- getmaxyx(viewwin, height, width);
- //viewsub = derwin(viewwin, height - 6, width - 4, 4, 2);
- /* initialize the fields */
- info[0] = new_field(1, 15, 1, 1, 0, 0);
- info[1] = new_field(1, 15, 2, 1, 0, 0);
- info[4] = NULL;
- /* set field options */
- set_field_back(info[0], A_UNDERLINE);
- set_field_back(info[1], A_UNDERLINE);
- /* create the form */
- adding = new_form(info);
- /* set main window and subwindow for the form */
- set_form_win(adding, viewwin);
- //set_form_sub(adding, viewsub);
- set_form_sub(adding, derwin(viewwin, height - 6, width - 4, 5, 2));
- /* format window */
- box(viewwin, 0, 0);
- wattron(viewwin, A_REVERSE);
- mvwprintw(viewwin, 1, 1, "%s", "Inserte la información del alumno");
- mvwhline(viewwin, 2, 1, ACS_HLINE, width - 2);
- wattroff(viewwin, A_REVERSE);
- //mvwprintw(viewwin, 0, 1, "%s", "Nombre:");
- /* post form */
- post_form(adding);
- touchwin(viewwin);
- wrefresh(viewwin);
- while((c = wgetch(viewwin)) != KEY_F(5))
- {
- switch(c)
- {
- case KEY_DOWN:
- form_driver(adding, REQ_NEXT_FIELD);
- form_driver(adding, REQ_END_LINE);
- break;
- case KEY_UP:
- form_driver(adding, REQ_PREV_FIELD);
- form_driver(adding, REQ_END_LINE);
- break;
- default:
- form_driver(adding, c);
- break;
- }
- }
- /* unpost form and free memory */
- unpost_form(adding);
- free_form(adding);
- free_field(info[0]);
- free_field(info[1]);
- }
- static void finish(int sig)
- {
- endwin();
- /* do the non-curses wrap up here */
- exit(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement