Okay, I'm going to get a linux box soon, I swear. However, in the mean time I'm still experimenting with curses. However the web seems short on example programs, so I've fiddled with the documentation and came up with a program that works. however, using PDCurses there have been certain things that don't uite match the documentation that I had to do. I expected it to look something like this:
and instead I needed to tweak it and came up with:Code:#include <curses.h> int main () { int input; MEVENT mouseinput; initscr(); raw (); nodelay(stdscr,1); noecho(); curs_set(0); nonl(); keypad(stdscr,1); mousemask (ALL_MOUSE_EVENTS, NULL); mvprintw (0,30, "Press q to quit"); refresh(); do { // A nasty 100% resource hogging loop, I know. Sorry about that. input = wgetch(stdscr); if (input == KEY_MOUSE) { getmouse (&mouseinput); mvprintw (11, 30, " x = %d y = %d ", mouseinput.x, mouseinput.y); mvaddch (mouseinput.y, mouseinput.x, 'X'); refresh (); } } while (input != 'q'); endwin (); }
So would anyone be willing to help me out here. Do these programs work in a linux environment and what tweaking was necessary to make it work. If it's too difficult to write mouse handling code that's cross-platform compatible I'll just have to forget about it.Code:#include <curses.h> int main () { int input; MEVENT mouseinput; initscr(); raw (); nodelay(stdscr,1); noecho(); curs_set(0); nonl(); keypad(stdscr,1); mousemask (ALL_MOUSE_EVENTS, NULL); mvprintw (0,30, "Press q to quit"); refresh(); do { // A nasty 100% resource hogging loop, I know. Sorry about that. input = wgetch(stdscr); nc_getmouse (&mouseinput); // nc_ is for NCurses compatability, I guess. mvprintw (11, 30, " x = %d y = %d ", mouseinput.x, mouseinput.y); // Aparently moving the mouse isn't a KEY_MOUSE event if (input == KEY_MOUSE) { // KEY_MOUSE is only clicks, so an X will be drawn mvaddch (mouseinput.y, mouseinput.x, 'X'); } // No refresh? Nope, works without it. Shouldn't, but it does. } while (input != 'q'); endwin (); }



LinkBack URL
About LinkBacks


