Tim Peeler on Fri, 7 Jan 2000 17:47:21 -0500 (EST)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[PLUG] Ncurses


This has got me stumped.  I'm trying to write a program in ncurses and so far
I'm doing fairly well (for my first attempt at programming).  The problem I'm
having is with refreshing the main windows right after the program loads.  I
explicitly call wnoutrefresh and doupdate just before my input for loop, but
the screen doesn't refresh until I press a key.  I use getch() in my input for
loop, and if I disable the getch() the windows will update properly right after
the program loads.

int main(int argc, char **argv)
{
   // Load resource file, process args, setup display,
   // if there's errors display them, if it's fatal exit nicely.
   exit_error(load_resource_file(resource_file));
   exit_error(process_command_line_args(argc, argv));
   exit_error(setup_display_env());
   // explicitly refresh the windows!!!!!
   // setup_display_env already setup the TopMenuWindow and HelpWindow
   // along with several other windows (hidden) now I just need to update the
   // display
   wnoutrefresh(TopMenuWindow);
   wnoutrefresh(HelpWindow);
   doupdate();
   for(;;){
      // main_for_loop calls getch() to process keypresses
      main_for_loop();
   }
   end_program(0);
}                                                                               

int main_for_loop()
{
   short c;
 
   // get keyboard commands, if it isn't listed here then
   // pass the key off to the command processor
   if(c=getch()){
      switch(c){
       case KEY_F(8) :
         end_program(0);
         break;
       case KEY_F(MAIN_MENU) :
         // menus
         touchwin(TopMenuWindow);   // TopMenuWindow already has data in it,
         wrefresh(TopMenuWindow);    // just need to touch the window so it'll
         display_menu(MAIN_MENU);  // redisplay and post properly.
         break;                                                                 
<snip>

If anyone has a clue as to why this is happening, please let me know.  Also, if
anyone has any good pointers to a comprehensive ncurses book please let me know.

Thanks,
Tim

_______________________________________________
PLUG maillist  -  PLUG@lists.nothinbut.net
http://lists.nothinbut.net/mail/listinfo/plug