Esempio n. 1
0
void
status_bar_set_all_inactive(void)
{
    int i = 0;
    for (i = 0; i < 12; i++) {
        is_active[i] = FALSE;
        is_new[i] = FALSE;
        _mark_inactive(i);
    }

    g_hash_table_remove_all(remaining_active);
    g_hash_table_remove_all(remaining_new);

    _status_bar_draw();
}
Esempio n. 2
0
void
status_bar_resize(void)
{
    int rows, cols;
    getmaxyx(stdscr, rows, cols);

    werase(status_bar);

    int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);

    mvwin(status_bar, rows-2, 0);
    wresize(status_bar, 1, cols);
    wbkgd(status_bar, theme_attrs(THEME_STATUS_TEXT));
    wattron(status_bar, bracket_attrs);
    mvwprintw(status_bar, 0, cols - 34, _active);
    mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket);
    wattroff(status_bar, bracket_attrs);

    if (message) {
        char *time_pref = prefs_get_string(PREF_TIME_STATUSBAR);

        gchar *date_fmt = NULL;
        if (g_strcmp0(time_pref, "off") == 0) {
            date_fmt = g_strdup("");
        } else {
            date_fmt = g_date_time_format(last_time, time_pref);
        }
        assert(date_fmt != NULL);
        size_t len = strlen(date_fmt);
        g_free(date_fmt);
        if (g_strcmp0(time_pref, "off") != 0) {
            /* 01234567890123456
             *  [HH:MM]  message */
            mvwprintw(status_bar, 0, 5 + len, message);
        } else {
            mvwprintw(status_bar, 0, 1, message);
        }
        prefs_free_string(time_pref);
    }
    if (last_time) {
        g_date_time_unref(last_time);
    }
    last_time = g_date_time_new_now_local();

    _status_bar_draw();
}
Esempio n. 3
0
void
status_bar_current(int i)
{
    if (i == 0) {
        current = 10;
    } else if (i > 10) {
        current = 11;
    } else {
        current = i;
    }
    int cols = getmaxx(stdscr);
    int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);
    wattron(status_bar, bracket_attrs);
    mvwprintw(status_bar, 0, cols - 34, _active);
    mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket);
    wattroff(status_bar, bracket_attrs);

    _status_bar_draw();
}
Esempio n. 4
0
void
status_bar_clear_message(void)
{
    if (message) {
        free(message);
        message = NULL;
    }

    werase(status_bar);

    int cols = getmaxx(stdscr);
    int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);

    wattron(status_bar, bracket_attrs);
    mvwprintw(status_bar, 0, cols - 34, _active);
    mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket);
    wattroff(status_bar, bracket_attrs);

    _status_bar_draw();
}
Esempio n. 5
0
void
status_bar_inactive(const int win)
{
    int true_win = win;
    if (true_win == 0) {
        true_win = 10;
    }

    // extra windows
    if (true_win > 10) {
        g_hash_table_remove(remaining_active, GINT_TO_POINTER(true_win));
        g_hash_table_remove(remaining_new, GINT_TO_POINTER(true_win));

        // still have new windows
        if (g_hash_table_size(remaining_new) != 0) {
            is_active[11] = TRUE;
            is_new[11] = TRUE;
            _mark_new(11);

        // still have active windows
        } else if (g_hash_table_size(remaining_active) != 0) {
            is_active[11] = TRUE;
            is_new[11] = FALSE;
            _mark_active(11);

        // no active or new windows
        } else {
            is_active[11] = FALSE;
            is_new[11] = FALSE;
            _mark_inactive(11);
        }

    // visible window indicators
    } else {
        is_active[true_win] = FALSE;
        is_new[true_win] = FALSE;
        _mark_inactive(true_win);
    }

    _status_bar_draw();
}
Esempio n. 6
0
void
status_bar_print_message(const char * const msg)
{
    werase(status_bar);

    if (message) {
        free(message);
    }
    message = strdup(msg);

    char *time_pref = prefs_get_string(PREF_TIME_STATUSBAR);
    gchar *date_fmt = NULL;
    if (g_strcmp0(time_pref, "off") == 0) {
        date_fmt = g_strdup("");
    } else {
        date_fmt = g_date_time_format(last_time, time_pref);
    }

    assert(date_fmt != NULL);
    size_t len = strlen(date_fmt);
    g_free(date_fmt);
    if (g_strcmp0(time_pref, "off") != 0) {
        mvwprintw(status_bar, 0, 5 + len, message);
    } else {
        mvwprintw(status_bar, 0, 1, message);
    }
    prefs_free_string(time_pref);

    int cols = getmaxx(stdscr);
    int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);

    wattron(status_bar, bracket_attrs);
    mvwprintw(status_bar, 0, cols - 34, _active);
    mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket);
    wattroff(status_bar, bracket_attrs);

    _status_bar_draw();
}
Esempio n. 7
0
void
status_bar_new(const int win)
{
    int true_win = win;
    if (true_win == 0) {
        true_win = 10;
    }

    if (true_win > 10) {
        g_hash_table_add(remaining_active, GINT_TO_POINTER(true_win));
        g_hash_table_add(remaining_new, GINT_TO_POINTER(true_win));

        is_active[11] = TRUE;
        is_new[11] = TRUE;
        _mark_new(11);

    } else {
        is_active[true_win] = TRUE;
        is_new[true_win] = TRUE;
        _mark_new(true_win);
    }

    _status_bar_draw();
}
Esempio n. 8
0
void
status_bar_update_virtual(void)
{
    _status_bar_draw();
}