static void _status_bar_draw(void) { if (last_time) { g_date_time_unref(last_time); } last_time = g_date_time_new_now_local(); int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET); char *time_pref = prefs_get_string(PREF_TIME_STATUSBAR); if (g_strcmp0(time_pref, "off") != 0) { gchar *date_fmt = g_date_time_format(last_time, time_pref); assert(date_fmt != NULL); size_t len = strlen(date_fmt); wattron(status_bar, bracket_attrs); mvwaddch(status_bar, 0, 1, '['); wattroff(status_bar, bracket_attrs); mvwprintw(status_bar, 0, 2, date_fmt); wattron(status_bar, bracket_attrs); mvwaddch(status_bar, 0, 2 + len, ']'); wattroff(status_bar, bracket_attrs); g_free(date_fmt); } prefs_free_string(time_pref); _update_win_statuses(); wnoutrefresh(status_bar); inp_put_back(); }
void ui_update(void) { ProfWin *current = wins_get_current(); if (current->layout->paged == 0) { win_move_to_end(current); } win_update_virtual(current); if (prefs_get_boolean(PREF_WINTITLE_SHOW)) { _ui_draw_term_title(); } title_bar_update_virtual(); status_bar_update_virtual(); inp_put_back(); doupdate(); if (perform_resize) { signal(SIGWINCH, SIG_IGN); ui_resize(); perform_resize = FALSE; signal(SIGWINCH, ui_sigwinch_handler); } }
void ui_refresh(void) { _ui_draw_win_title(); title_bar_refresh(); status_bar_refresh(); inp_put_back(); }
static void _create_title_bar(void) { int cols = getmaxx(stdscr); win = newwin(1, cols, 0, 0); wbkgd(win, COLOUR_TITLE_TEXT); title_bar_console(); title_bar_set_presence(CONTACT_OFFLINE); wnoutrefresh(win); inp_put_back(); }
void create_title_bar(void) { int cols = getmaxx(stdscr); int row = screen_titlebar_row(); win = newwin(1, cols, row, 0); wbkgd(win, theme_attrs(THEME_TITLE_TEXT)); title_bar_console(); title_bar_set_presence(CONTACT_OFFLINE); title_bar_set_tls(FALSE); title_bar_set_connected(FALSE); wnoutrefresh(win); inp_put_back(); }
void status_bar_refresh(void) { char new_time[80]; get_time(new_time); if (strcmp(new_time, curr_time) != 0) { dirty = TRUE; strcpy(curr_time, new_time); } if (dirty) { _status_bar_update_time(); wrefresh(status_bar); inp_put_back(); dirty = FALSE; } }
static void _status_bar_draw(void) { if (last_time) { g_date_time_unref(last_time); } last_time = g_date_time_new_now_local(); int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET); char *time_pref = prefs_get_string(PREF_TIME_STATUSBAR); if (g_strcmp0(time_pref, "minutes") == 0) { gchar *date_fmt = g_date_time_format(last_time, "%H:%M"); assert(date_fmt != NULL); wattron(status_bar, bracket_attrs); mvwaddch(status_bar, 0, 1, '['); wattroff(status_bar, bracket_attrs); mvwprintw(status_bar, 0, 2, date_fmt); wattron(status_bar, bracket_attrs); mvwaddch(status_bar, 0, 7, ']'); wattroff(status_bar, bracket_attrs); g_free(date_fmt); } else if (g_strcmp0(time_pref, "seconds") == 0) { gchar *date_fmt = g_date_time_format(last_time, "%H:%M:%S"); assert(date_fmt != NULL); wattron(status_bar, bracket_attrs); mvwaddch(status_bar, 0, 1, '['); wattroff(status_bar, bracket_attrs); mvwprintw(status_bar, 0, 2, date_fmt); wattron(status_bar, bracket_attrs); mvwaddch(status_bar, 0, 10, ']'); wattroff(status_bar, bracket_attrs); g_free(date_fmt); } _update_win_statuses(); wnoutrefresh(status_bar); inp_put_back(); }
static void _status_bar_refresh(void) { GDateTime *now_time = g_date_time_new_now_local(); GTimeSpan elapsed = g_date_time_difference(now_time, last_time); if (elapsed >= 60000000) { dirty = TRUE; if (last_time != NULL) g_date_time_unref(last_time); last_time = g_date_time_new_now_local(); } if (dirty) { _status_bar_update_time(); _update_win_statuses(); wrefresh(status_bar); inp_put_back(); dirty = FALSE; } g_date_time_unref(now_time); }
static void _title_bar_draw(void) { ProfWin *current = wins_get_current(); werase(win); wmove(win, 0, 0); int i; for (i = 0; i < 45; i++) { waddch(win, ' '); } char *title = win_get_title(current); mvwprintw(win, 0, 0, " %s", title); free(title); if (current && current->type == WIN_CHAT) { ProfChatWin *chatwin = (ProfChatWin*) current; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); _show_contact_presence(chatwin); _show_privacy(chatwin); if (typing) { wprintw(win, " (typing...)"); } } else if (current && current->type == WIN_MUC) { ProfMucWin *mucwin = (ProfMucWin*) current; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); _show_muc_privacy(mucwin); } _show_self_presence(); wnoutrefresh(win); inp_put_back(); }
static void _title_bar_draw(void) { werase(win); // show title wmove(win, 0, 0); int i; for (i = 0; i < 45; i++) waddch(win, ' '); mvwprintw(win, 0, 0, " %s", current_title); #ifdef HAVE_LIBOTR // show privacy if (current_recipient != NULL) { char *recipient_jid = roster_barejid_from_name(current_recipient); ProfWin *current = wins_get_by_recipient(recipient_jid); if (current != NULL) { if (current->type == WIN_CHAT) { if (!current->is_otr) { if (prefs_get_boolean(PREF_OTR_WARN)) { wprintw(win, " "); wattron(win, COLOUR_TITLE_BRACKET); wprintw(win, "["); wattroff(win, COLOUR_TITLE_BRACKET); wattron(win, COLOUR_TITLE_UNENCRYPTED); wprintw(win, "unencrypted"); wattroff(win, COLOUR_TITLE_UNENCRYPTED); wattron(win, COLOUR_TITLE_BRACKET); wprintw(win, "]"); wattroff(win, COLOUR_TITLE_BRACKET); } } else { wprintw(win, " "); wattron(win, COLOUR_TITLE_BRACKET); wprintw(win, "["); wattroff(win, COLOUR_TITLE_BRACKET); wattron(win, COLOUR_TITLE_ENCRYPTED); wprintw(win, "OTR"); wattroff(win, COLOUR_TITLE_ENCRYPTED); wattron(win, COLOUR_TITLE_BRACKET); wprintw(win, "]"); wattroff(win, COLOUR_TITLE_BRACKET); if (current->is_trusted) { wprintw(win, " "); wattron(win, COLOUR_TITLE_BRACKET); wprintw(win, "["); wattroff(win, COLOUR_TITLE_BRACKET); wattron(win, COLOUR_TITLE_TRUSTED); wprintw(win, "trusted"); wattroff(win, COLOUR_TITLE_TRUSTED); wattron(win, COLOUR_TITLE_BRACKET); wprintw(win, "]"); wattroff(win, COLOUR_TITLE_BRACKET); } else { wprintw(win, " "); wattron(win, COLOUR_TITLE_BRACKET); wprintw(win, "["); wattroff(win, COLOUR_TITLE_BRACKET); wattron(win, COLOUR_TITLE_UNTRUSTED); wprintw(win, "untrusted"); wattroff(win, COLOUR_TITLE_UNTRUSTED); wattron(win, COLOUR_TITLE_BRACKET); wprintw(win, "]"); wattroff(win, COLOUR_TITLE_BRACKET); } } } } } #endif // show contact typing if (typing) { wprintw(win, " (typing...)"); } // show presence int cols = getmaxx(stdscr); wattron(win, COLOUR_TITLE_BRACKET); mvwaddch(win, 0, cols - 14, '['); wattroff(win, COLOUR_TITLE_BRACKET); switch (current_presence) { case CONTACT_ONLINE: mvwprintw(win, 0, cols - 13, " ...online "); break; case CONTACT_AWAY: mvwprintw(win, 0, cols - 13, " .....away "); break; case CONTACT_DND: mvwprintw(win, 0, cols - 13, " ......dnd "); break; case CONTACT_CHAT: mvwprintw(win, 0, cols - 13, " .....chat "); break; case CONTACT_XA: mvwprintw(win, 0, cols - 13, " .......xa "); break; case CONTACT_OFFLINE: mvwprintw(win, 0, cols - 13, " ..offline "); break; } wattron(win, COLOUR_TITLE_BRACKET); mvwaddch(win, 0, cols - 2, ']'); wattroff(win, COLOUR_TITLE_BRACKET); wnoutrefresh(win); inp_put_back(); }