#include WINDOW *create_newwin(int height, int width, int starty, int startx) { WINDOW *local_win; local_win = newwin(height, width, starty, startx); wborder(local_win, '|', '|', '-', '-', '+', '+', '+', '+'); // box(local_win,0,0); wrefresh(local_win); return local_win; } int main() { /* A_NORMAL Normal display (no highlight) A_STANDOUT Best highlighting mode of the terminal. A_UNDERLINE Underlining A_REVERSE Reverse video A_BLINK Blinking A_DIM Half bright A_BOLD Extra bright or bold A_PROTECT Protected mode A_INVIS Invisible or blank mode A_ALTCHARSET Alternate character set A_CHARTEXT Bit-mask to extract a character COLOR_PAIR(n) Color-pair number n */ int end, ch; int row,col; char msg[256]; WINDOW *w1; MEVENT event; initscr(); getmaxyx(stdscr,row,col); raw(); keypad(stdscr, TRUE); noecho(); start_color(); init_pair(1, COLOR_WHITE, COLOR_BLUE); mousemask(ALL_MOUSE_EVENTS, NULL); //http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/windows.html //w1 = create_newwin(row/2, col/2, row/4, col/4); w1 = create_newwin(10, 10, 10, 10); attron(COLOR_PAIR(1) | A_BOLD); mvprintw(row-2,0,"This screen has %d rows and %d columns\n",row,col); attroff(COLOR_PAIR(1) | A_BOLD); move(0,0); end=0; while (!end) { refresh(); ch=getch(); switch(ch) { case KEY_MOUSE: if(getmouse(&event) == OK) { /* When the user clicks left mouse button */ if(event.bstate & BUTTON1_PRESSED) { attrset(A_NORMAL); printw("mouse button1\n"); } } break; case KEY_F(2): attrset(A_NORMAL); printw("F2 key\n"); break; case 'q': end=1; break; case 'b': mvwchgat(w1,1,0,-1, A_REVERSE, 0, NULL); break; default: sprintf(msg, "%c key\n", ch); wattrset(w1,A_BOLD | A_UNDERLINE); wprintw(w1, msg); } } endwin(); return 0; }