int main (int argc, char *argv[]) { size_t tweet_len, n; mode = MODE_GUI; if (argc > 1) parse_options (argc, argv); rcinit (); int rc = read_config (); /* create GUI */ if (mode == MODE_GUI) { draw_main_window (); } else printf ("mode != gui\n"); if (options->from_stdin == 1) { tweet_len = getline (&options->tweet_text, &n, stdin); printf ("You tweeted: \"%s\" (%d)\n", options->tweet_text, tweet_len); } return EXIT_SUCCESS; } /* end of main */
static void resize_screen_locked(WINDOW *w){ /*int rows,cols; getmaxyx(w,rows,cols);*/ draw_main_window(w); }
/* * Redraws all visible windows */ bool Display::draw() { /* FIXME: check if drawing is needed */ draw_topbar(); draw_titlebar(); draw_main_window(); draw_position_readout(); /* FIXME: what about statusbar? */ return true; }
static WINDOW * ncurses_setup(void){ struct ncurses_input_marshal *nim; const char *errstr = NULL; WINDOW *w = NULL; fprintf(stderr,"Entering ncurses mode...\n"); if(initscr() == NULL){ fprintf(stderr,"Couldn't initialize ncurses\n"); return NULL; } if(cbreak() != OK){ errstr = "Couldn't disable input buffering\n"; goto err; } if(noecho() != OK){ errstr = "Couldn't disable input echoing\n"; goto err; } if(intrflush(stdscr,TRUE) != OK){ errstr = "Couldn't set flush-on-interrupt\n"; goto err; } if(scrollok(stdscr,FALSE) != OK){ errstr = "Couldn't disable scrolling\n"; goto err; } if(nonl() != OK){ errstr = "Couldn't disable nl translation\n"; goto err; } if(start_color() != OK){ errstr = "Couldn't initialize ncurses color\n"; goto err; } if(use_default_colors()){ errstr = "Couldn't initialize ncurses colordefs\n"; goto err; } w = stdscr; keypad(stdscr,TRUE); if(nodelay(stdscr,FALSE) != OK){ errstr = "Couldn't set blocking input\n"; goto err; } if(preserve_colors() != OK){ errstr = "Couldn't preserve initial colors\n"; goto err; } if(setup_extended_colors() != OK){ errstr = "Couldn't initialize extended colors\n"; assert(init_pair(BORDER_COLOR,COLOR_GREEN,-1) == OK); assert(init_pair(HEADER_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(FOOTER_COLOR,COLOR_YELLOW,-1) == OK); assert(init_pair(DBORDER_COLOR,COLOR_WHITE,-1) == OK); assert(init_pair(DHEADING_COLOR,COLOR_WHITE,-1) == OK); assert(init_pair(UBORDER_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(UHEADING_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(PBORDER_COLOR,COLOR_YELLOW,-1) == OK); assert(init_pair(PHEADING_COLOR,COLOR_RED,-1) == OK); assert(init_pair(BULKTEXT_COLOR,COLOR_WHITE,-1) == OK); assert(init_pair(BULKTEXT_ALTROW_COLOR,COLOR_WHITE,-1) == OK); assert(init_pair(IFACE_COLOR,COLOR_WHITE,-1) == OK); assert(init_pair(LCAST_COLOR,COLOR_CYAN,-1) == OK); // will use A_BOLD via OUR_BOLD assert(init_pair(UCAST_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(MCAST_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(BCAST_COLOR,COLOR_MAGENTA,-1) == OK); assert(init_pair(LSELECTED_COLOR,-1,COLOR_CYAN) == OK); assert(init_pair(USELECTED_COLOR,-1,COLOR_CYAN) == OK); assert(init_pair(MSELECTED_COLOR,-1,COLOR_BLUE) == OK); assert(init_pair(BSELECTED_COLOR,-1,COLOR_MAGENTA) == OK); assert(init_pair(LCAST_L3_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(UCAST_L3_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(MCAST_L3_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(BCAST_L3_COLOR,COLOR_MAGENTA,-1) == OK); assert(init_pair(LCAST_RES_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(UCAST_RES_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(MCAST_RES_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(BCAST_RES_COLOR,COLOR_MAGENTA,-1) == OK); assert(init_pair(LCAST_ALTROW_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(UCAST_ALTROW_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(MCAST_ALTROW_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(BCAST_ALTROW_COLOR,COLOR_MAGENTA,-1) == OK); assert(init_pair(LCAST_ALTROW_L3_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(UCAST_ALTROW_L3_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(MCAST_ALTROW_L3_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(BCAST_ALTROW_L3_COLOR,COLOR_MAGENTA,-1) == OK); assert(init_pair(LCAST_ALTROW_RES_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(UCAST_ALTROW_RES_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(MCAST_ALTROW_RES_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(BCAST_ALTROW_RES_COLOR,COLOR_MAGENTA,-1) == OK); assert(init_pair(SUBDISPLAY_COLOR,COLOR_WHITE,-1) == OK); }else{ assert(init_pair(BORDER_COLOR,COLOR_ALUMINIUM,-1) == OK); assert(init_pair(HEADER_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(FOOTER_COLOR,COLOR_YELLOW,-1) == OK); assert(init_pair(DBORDER_COLOR,COLOR_ALUMINIUM,-1) == OK); assert(init_pair(DHEADING_COLOR,COLOR_WHITE,-1) == OK); assert(init_pair(UBORDER_COLOR,COLOR_CYAN,-1) == OK); assert(init_pair(UHEADING_COLOR,COLOR_ORANGE,-1) == OK); assert(init_pair(PBORDER_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(PHEADING_COLOR,COLOR_RED,-1) == OK); assert(init_pair(BULKTEXT_COLOR,COLOR_WHITE,-1) == OK); assert(init_pair(BULKTEXT_ALTROW_COLOR,COLOR_WHITE,COLOR_PALEALUMINIUM) == OK); assert(init_pair(IFACE_COLOR,COLOR_WHITE,-1) == OK); assert(init_pair(LCAST_COLOR,COLOR_CHAMELEON,-1) == OK); assert(init_pair(UCAST_COLOR,COLOR_BLUE,-1) == OK); assert(init_pair(MCAST_COLOR,COLOR_SKYBLUE,-1) == OK); assert(init_pair(BCAST_COLOR,COLOR_VIOLET,-1) == OK); assert(init_pair(LSELECTED_COLOR,-1,COLOR_CHAMELEON) == OK); assert(init_pair(USELECTED_COLOR,-1,COLOR_BLUE) == OK); assert(init_pair(MSELECTED_COLOR,-1,COLOR_SKYBLUE) == OK); assert(init_pair(BSELECTED_COLOR,-1,COLOR_VIOLET) == OK); assert(init_pair(LCAST_L3_COLOR,COLOR_CHAMELEON_75,-1) == OK); assert(init_pair(UCAST_L3_COLOR,COLOR_BLUE_75,-1) == OK); assert(init_pair(MCAST_L3_COLOR,COLOR_SKYBLUE_75,-1) == OK); assert(init_pair(BCAST_L3_COLOR,COLOR_VIOLET_75,-1) == OK); assert(init_pair(LCAST_RES_COLOR,COLOR_CHAMELEON_50,-1) == OK); assert(init_pair(UCAST_RES_COLOR,COLOR_BLUE_50,-1) == OK); assert(init_pair(MCAST_RES_COLOR,COLOR_SKYBLUE_50,-1) == OK); assert(init_pair(BCAST_RES_COLOR,COLOR_VIOLET_50,-1) == OK); assert(init_pair(LCAST_ALTROW_COLOR,COLOR_CHAMELEON,COLOR_PALECYAN) == OK); assert(init_pair(UCAST_ALTROW_COLOR,COLOR_BLUE,COLOR_PALECYAN) == OK); assert(init_pair(MCAST_ALTROW_COLOR,COLOR_SKYBLUE,COLOR_PALECYAN) == OK); assert(init_pair(BCAST_ALTROW_COLOR,COLOR_VIOLET,COLOR_PALECYAN) == OK); assert(init_pair(LCAST_ALTROW_L3_COLOR,COLOR_CHAMELEON_75,COLOR_PALECYAN) == OK); assert(init_pair(UCAST_ALTROW_L3_COLOR,COLOR_BLUE_75,COLOR_PALECYAN) == OK); assert(init_pair(MCAST_ALTROW_L3_COLOR,COLOR_SKYBLUE_75,COLOR_PALECYAN) == OK); assert(init_pair(BCAST_ALTROW_L3_COLOR,COLOR_VIOLET_75,COLOR_PALECYAN) == OK); assert(init_pair(LCAST_ALTROW_RES_COLOR,COLOR_CHAMELEON_50,COLOR_PALECYAN) == OK); assert(init_pair(UCAST_ALTROW_RES_COLOR,COLOR_BLUE_50,COLOR_PALECYAN) == OK); assert(init_pair(MCAST_ALTROW_RES_COLOR,COLOR_SKYBLUE_50,COLOR_PALECYAN) == OK); assert(init_pair(BCAST_ALTROW_RES_COLOR,COLOR_VIOLET_50,COLOR_PALECYAN) == OK); assert(init_pair(SUBDISPLAY_COLOR,COLOR_BRIGHTWHITE,-1) == OK); } if(curs_set(0) == ERR){ errstr = "Couldn't disable cursor\n"; goto err; } if(setup_statusbar(COLS)){ errstr = "Couldn't setup status bar\n"; goto err; } if(draw_main_window(w)){ errstr = "Couldn't use ncurses\n"; goto err; } if((nim = malloc(sizeof(*nim))) == NULL){ goto err; } nim->w = w; nim->maintid = pthread_self(); // Panels aren't yet being used, so we need call refresh() to // paint the main window. refresh(); if(pthread_create(&inputtid,NULL,ncurses_input_thread,nim)){ errstr = "Couldn't create UI thread\n"; free(nim); goto err; } // FIXME install SIGWINCH() handler...? return w; err: mandatory_cleanup(&w); fprintf(stderr,"%s",errstr); return NULL; }
void initialize_text_gui() { init_window(); draw_main_window(); }