Kyle Burton on Fri, 7 Jan 2000 17:52:50 -0500 (EST)


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

Re: [PLUG] Ncurses


O'Reilly has a good book on Nucrses...

This is a horrible way of going about it, but, you can ungetc() on stdin:
/* */
#include <stdio.h>

int main(int argc,char**argv)
{
  ungetc('X',stdin);
  printf("got: %c\n",getc(stdin));
  printf("got: %c\n",getc(stdin));
  printf("got: %c\n",getc(stdin));
  return 0;
}
/* */

I'll see if I can dig up anything else...

k

------------------------------------------------------------------------------
A witty saying proves nothing. 
    -- Voltaire 
mortis@voicenet.com                            http://www.voicenet.com/~mortis
------------------------------------------------------------------------------

On Fri, 7 Jan 2000, Tim Peeler wrote:

> 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
> 


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