int owl_variable_colorztext_set(owl_variable *v, bool newval) { int ret = owl_variable_bool_set_default(v, newval); /* flush the format cache so that we see the update, but only if we're done initializing BarnOwl */ if (owl_global_get_msglist(&g) != NULL) owl_messagelist_invalidate_formats(owl_global_get_msglist(&g)); if (owl_global_get_mainwin(&g) != NULL) { owl_function_calculate_topmsg(OWL_DIRECTION_DOWNWARDS); owl_mainwin_redisplay(owl_global_get_mainwin(&g)); } return ret; }
/* * Process any new messages we have waiting in the message queue. */ static gboolean owl_process_messages_dispatch(GSource *source, GSourceFunc callback, gpointer user_data) { int newmsgs=0; int followlast = owl_global_should_followlast(&g); owl_message *m; /* Grab incoming messages. */ while (owl_global_messagequeue_pending(&g)) { m = owl_global_messagequeue_popmsg(&g); if (owl_process_message(m)) newmsgs = 1; } if (newmsgs) { /* follow the last message if we're supposed to */ if (followlast) owl_function_lastmsg_noredisplay(); /* do the newmsgproc thing */ owl_function_do_newmsgproc(); /* redisplay if necessary */ /* this should be optimized to not run if the new messages won't be displayed */ owl_mainwin_redisplay(owl_global_get_mainwin(&g)); } return TRUE; }
/* * Process any new messages we have waiting in the message queue. * Returns 1 if any messages were added to the message list, and 0 otherwise. */ int owl_process_messages(owl_ps_action *d, void *p) { int newmsgs=0; int followlast = owl_global_should_followlast(&g); owl_message *m; /* Grab incoming messages. */ while (owl_global_messagequeue_pending(&g)) { m = owl_global_messagequeue_popmsg(&g); if (owl_process_message(m)) newmsgs = 1; } if (newmsgs) { /* follow the last message if we're supposed to */ if (followlast) owl_function_lastmsg_noredisplay(); /* do the newmsgproc thing */ owl_function_do_newmsgproc(); /* redisplay if necessary */ /* this should be optimized to not run if the new messages won't be displayed */ owl_mainwin_redisplay(owl_global_get_mainwin(&g)); } return newmsgs; }
int owl_popwin_close(owl_popwin *pw) { delwin(pw->popwin); delwin(pw->borderwin); pw->active=0; owl_global_set_needrefresh(&g); owl_mainwin_redisplay(owl_global_get_mainwin(&g)); owl_function_full_redisplay(&g); return(0); }
void owl_global_set_search_re(owl_global *g, const owl_regex *re) { if (owl_regex_is_set(&g->search_re)) { owl_regex_cleanup(&g->search_re); owl_regex_init(&g->search_re); } if (re != NULL) owl_regex_copy(re, &g->search_re); /* TODO: Emit a signal so we don't depend on the viewwin and mainwin */ if (owl_global_get_viewwin(g)) owl_viewwin_dirty(owl_global_get_viewwin(g)); owl_mainwin_redisplay(owl_global_get_mainwin(g)); }
void owl_global_set_rightshift(owl_global *g, int i) { g->rightshift = i; owl_mainwin_redisplay(owl_global_get_mainwin(g)); }
static void sepbar_redraw(owl_window *w, WINDOW *sepwin, void *user_data) { const owl_messagelist *ml; const owl_view *v; int x, y, i; const char *foo, *appendtosepbar; ml=owl_global_get_msglist(&g); v=owl_global_get_current_view(&g); werase(sepwin); wattron(sepwin, A_REVERSE); if (owl_global_is_fancylines(&g)) { whline(sepwin, ACS_HLINE, owl_global_get_cols(&g)); } else { whline(sepwin, '-', owl_global_get_cols(&g)); } if (owl_global_is_sepbar_disable(&g)) { getyx(sepwin, y, x); wmove(sepwin, y, owl_global_get_cols(&g)-1); return; } wmove(sepwin, 0, 2); if (owl_messagelist_get_size(ml) == 0) waddstr(sepwin, " (-/-) "); else wprintw(sepwin, " (%i/%i/%i) ", owl_global_get_curmsg(&g) + 1, owl_view_get_size(v), owl_messagelist_get_size(ml)); foo=owl_view_get_filtname(v); if (strcmp(foo, owl_global_get_view_home(&g))) wattroff(sepwin, A_REVERSE); wprintw(sepwin, " %s ", owl_view_get_filtname(v)); if (strcmp(foo, owl_global_get_view_home(&g))) wattron(sepwin, A_REVERSE); if (owl_mainwin_is_curmsg_truncated(owl_global_get_mainwin(&g))) { getyx(sepwin, y, x); wmove(sepwin, y, x+2); wattron(sepwin, A_BOLD); waddstr(sepwin, " <truncated> "); wattroff(sepwin, A_BOLD); } i=owl_mainwin_get_last_msg(owl_global_get_mainwin(&g)); if ((i != -1) && (i < owl_view_get_size(v)-1)) { getyx(sepwin, y, x); wmove(sepwin, y, x+2); wattron(sepwin, A_BOLD); waddstr(sepwin, " <more> "); wattroff(sepwin, A_BOLD); } if (owl_global_get_rightshift(&g)>0) { getyx(sepwin, y, x); wmove(sepwin, y, x+2); wprintw(sepwin, " right: %i ", owl_global_get_rightshift(&g)); } if (owl_global_is_zaway(&g) || owl_global_is_aaway(&g)) { getyx(sepwin, y, x); wmove(sepwin, y, x+2); wattron(sepwin, A_BOLD); wattroff(sepwin, A_REVERSE); if (owl_global_is_zaway(&g) && owl_global_is_aaway(&g)) { waddstr(sepwin, " AWAY "); } else if (owl_global_is_zaway(&g)) { waddstr(sepwin, " Z-AWAY "); } else if (owl_global_is_aaway(&g)) { waddstr(sepwin, " A-AWAY "); } wattron(sepwin, A_REVERSE); wattroff(sepwin, A_BOLD); } if (owl_global_get_curmsg_vert_offset(&g)) { getyx(sepwin, y, x); wmove(sepwin, y, x+2); wattron(sepwin, A_BOLD); wattroff(sepwin, A_REVERSE); waddstr(sepwin, " SCROLL "); wattron(sepwin, A_REVERSE); wattroff(sepwin, A_BOLD); } appendtosepbar = owl_global_get_appendtosepbar(&g); if (appendtosepbar && *appendtosepbar) { getyx(sepwin, y, x); wmove(sepwin, y, x+2); waddstr(sepwin, " "); waddstr(sepwin, owl_global_get_appendtosepbar(&g)); waddstr(sepwin, " "); } getyx(sepwin, y, x); wmove(sepwin, y, owl_global_get_cols(&g)-1); wattroff(sepwin, A_BOLD); wattroff(sepwin, A_REVERSE); }