Example #1
0
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();
}
Example #2
0
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);
    }
}
Example #3
0
void
ui_refresh(void)
{
    _ui_draw_win_title();
    title_bar_refresh();
    status_bar_refresh();
    inp_put_back();
}
Example #4
0
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();
}
Example #5
0
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();
}
Example #6
0
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;
    }
}
Example #7
0
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();
}
Example #8
0
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);
}
Example #9
0
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();
}
Example #10
0
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();
}