about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2018-03-07 20:58:07 +0000
committerJames Booth <boothj5@gmail.com>2018-03-07 20:58:07 +0000
commitfcdddf11c099aaff5b23d928438453e9e786a48b (patch)
treeeb99fdae41ac0df325dad3e5839836b1ca58650d
parentd152c48d6ff77460585ba65078b23de454754d9d (diff)
downloadprofani-tty-fcdddf11c099aaff5b23d928438453e9e786a48b.tar.gz
Draw empty status bar
-rw-r--r--src/ui/statusbar.c737
1 files changed, 381 insertions, 356 deletions
diff --git a/src/ui/statusbar.c b/src/ui/statusbar.c
index a88834e3..2096aa42 100644
--- a/src/ui/statusbar.c
+++ b/src/ui/statusbar.c
@@ -53,59 +53,73 @@
 
 #define TIME_CHECK 60000000
 
-static WINDOW *status_bar;
-static char *message = NULL;
-//                          1  2  3  4  5  6  7  8  9  0  >
-static char _active[34] = "[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]";
-static char *bracket = "- -";
-static int is_active[12];
-static GHashTable *remaining_active;
-static int is_new[12];
-static GHashTable *remaining_new;
-static GTimeZone *tz;
-static GDateTime *last_time;
-static int current;
-
-static void _update_win_statuses(void);
-static void _mark_new(int num);
-static void _mark_active(int num);
-static void _mark_inactive(int num);
+typedef struct _status_bar_t {
+    char *time;
+    char *message;
+    GList *tabs;
+} StatusBar;
+
+static StatusBar *statusbar;
+static WINDOW *statusbar_win;
+//static char *message = NULL;
+////                          1  2  3  4  5  6  7  8  9  0  >
+//static char _active[34] = "[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]";
+//static char *bracket = "- -";
+//static int is_active[12];
+//static GHashTable *remaining_active;
+//static int is_new[12];
+//static GHashTable *remaining_new;
+//static GTimeZone *tz;
+//static GDateTime *last_time;
+//static int current;
+
+//static void _update_win_statuses(void);
+//static void _mark_new(int num);
+//static void _mark_active(int num);
+//static void _mark_inactive(int num);
 static void _status_bar_draw(void);
 
 void
 create_status_bar(void)
 {
-    int i;
-    int cols = getmaxx(stdscr);
-
-    is_active[1] = TRUE;
-    is_new[1] = FALSE;
-    for (i = 2; i < 12; i++) {
-        is_active[i] = FALSE;
-        is_new[i] = FALSE;
-    }
-    remaining_active = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, NULL);
-    remaining_new = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, NULL);
-    current = 1;
-
-    int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);
-
+    statusbar = malloc(sizeof(StatusBar));
     int row = screen_statusbar_row();
-    status_bar = newwin(1, cols, row, 0);
-    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);
-
-    tz = g_time_zone_new_local();
-
-    if (last_time) {
-        g_date_time_unref(last_time);
-    }
-    last_time = g_date_time_new_now(tz);
-
+    int cols = getmaxx(stdscr);
+    statusbar_win = newwin(1, cols, row, 0);
+    wbkgd(statusbar_win, theme_attrs(THEME_STATUS_TEXT));
     _status_bar_draw();
+
+//    int i;
+//    int cols = getmaxx(stdscr);
+//
+//    is_active[1] = TRUE;
+//    is_new[1] = FALSE;
+//    for (i = 2; i < 12; i++) {
+//        is_active[i] = FALSE;
+//        is_new[i] = FALSE;
+//    }
+//    remaining_active = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, NULL);
+//    remaining_new = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, NULL);
+//    current = 1;
+//
+//    int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);
+//
+//    int row = screen_statusbar_row();
+//    status_bar = newwin(1, cols, row, 0);
+//    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);
+//
+//    tz = g_time_zone_new_local();
+//
+//    if (last_time) {
+//        g_date_time_unref(last_time);
+//    }
+//    last_time = g_date_time_new_now(tz);
+//
+//    _status_bar_draw();
 }
 
 void
@@ -118,368 +132,379 @@ void
 status_bar_resize(void)
 {
     int cols = getmaxx(stdscr);
-
-    werase(status_bar);
-
-    int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);
-
+    werase(statusbar_win);
     int row = screen_statusbar_row();
-    mvwin(status_bar, row, 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();
-
+    mvwin(statusbar_win, row, 0);
+    wresize(statusbar_win, 1, cols);
+    wbkgd(statusbar_win, theme_attrs(THEME_STATUS_TEXT));
     _status_bar_draw();
+
+//    int cols = getmaxx(stdscr);
+//
+//    werase(status_bar);
+//
+//    int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);
+//
+//    int row = screen_statusbar_row();
+//    mvwin(status_bar, row, 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();
 }
 
 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();
+//    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();
 }
 
 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();
+//    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();
 }
 
 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();
+//    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();
 }
 
 void
 status_bar_active(const int win)
 {
-    int true_win = win;
-    if (true_win == 0) {
-        true_win = 10;
-    }
-
-    // extra windows
-    if (true_win > 10) {
-        g_hash_table_add(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);
-
-        // only active windows
-        } else {
-            is_active[11] = TRUE;
-            is_new[11] = FALSE;
-            _mark_active(11);
-        }
-
-    // visible window indicators
-    } else {
-        is_active[true_win] = TRUE;
-        is_new[true_win] = FALSE;
-        _mark_active(true_win);
-    }
-
-    _status_bar_draw();
+//    int true_win = win;
+//    if (true_win == 0) {
+//        true_win = 10;
+//    }
+//
+//    // extra windows
+//    if (true_win > 10) {
+//        g_hash_table_add(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);
+//
+//        // only active windows
+//        } else {
+//            is_active[11] = TRUE;
+//            is_new[11] = FALSE;
+//            _mark_active(11);
+//        }
+//
+//    // visible window indicators
+//    } else {
+//        is_active[true_win] = TRUE;
+//        is_new[true_win] = FALSE;
+//        _mark_active(true_win);
+//    }
+//
+//    _status_bar_draw();
 }
 
 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();
+//    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();
 }
 
 void
 status_bar_get_password(void)
 {
-    status_bar_print_message("Enter password:");
-
-    _status_bar_draw();
+//    status_bar_print_message("Enter password:");
+//
+//    _status_bar_draw();
 }
 
 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();
+//    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();
 }
 
 void
 status_bar_clear(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();
+//    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();
 }
 
 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();
-}
-
-static void
-_update_win_statuses(void)
-{
-    int i;
-    for(i = 1; i < 12; i++) {
-        if (is_new[i]) {
-            _mark_new(i);
-        }
-        else if (is_active[i]) {
-            _mark_active(i);
-        }
-        else {
-            _mark_inactive(i);
-        }
-    }
+//    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();
 }
 
-static void
-_mark_new(int num)
-{
-    int active_pos = 1 + ((num-1) * 3);
-    int cols = getmaxx(stdscr);
-    int status_attrs = theme_attrs(THEME_STATUS_NEW);
-    wattron(status_bar, status_attrs);
-    wattron(status_bar, A_BLINK);
-    if (num == 10) {
-        mvwprintw(status_bar, 0, cols - 34 + active_pos, "0");
-    } else if (num > 10) {
-        mvwprintw(status_bar, 0, cols - 34 + active_pos, ">");
-    } else {
-        mvwprintw(status_bar, 0, cols - 34 + active_pos, "%d", num);
-    }
-    wattroff(status_bar, status_attrs);
-    wattroff(status_bar, A_BLINK);
-}
-
-static void
-_mark_active(int num)
-{
-    int active_pos = 1 + ((num-1) * 3);
-    int cols = getmaxx(stdscr);
-    int status_attrs = theme_attrs(THEME_STATUS_ACTIVE);
-    wattron(status_bar, status_attrs);
-    if (num == 10) {
-        mvwprintw(status_bar, 0, cols - 34 + active_pos, "0");
-    } else if (num > 10) {
-        mvwprintw(status_bar, 0, cols - 34 + active_pos, ">");
-    } else {
-        mvwprintw(status_bar, 0, cols - 34 + active_pos, "%d", num);
-    }
-    wattroff(status_bar, status_attrs);
-}
-
-static void
-_mark_inactive(int num)
-{
-    int active_pos = 1 + ((num-1) * 3);
-    int cols = getmaxx(stdscr);
-    mvwaddch(status_bar, 0, cols - 34 + active_pos, ' ');
-}
+//static void
+//_update_win_statuses(void)
+//{
+//    int i;
+//    for(i = 1; i < 12; i++) {
+//        if (is_new[i]) {
+//            _mark_new(i);
+//        }
+//        else if (is_active[i]) {
+//            _mark_active(i);
+//        }
+//        else {
+//            _mark_inactive(i);
+//        }
+//    }
+//}
+
+//static void
+//_mark_new(int num)
+//{
+//    int active_pos = 1 + ((num-1) * 3);
+//    int cols = getmaxx(stdscr);
+//    int status_attrs = theme_attrs(THEME_STATUS_NEW);
+//    wattron(status_bar, status_attrs);
+//    wattron(status_bar, A_BLINK);
+//    if (num == 10) {
+//        mvwprintw(status_bar, 0, cols - 34 + active_pos, "0");
+//    } else if (num > 10) {
+//        mvwprintw(status_bar, 0, cols - 34 + active_pos, ">");
+//    } else {
+//        mvwprintw(status_bar, 0, cols - 34 + active_pos, "%d", num);
+//    }
+//    wattroff(status_bar, status_attrs);
+//    wattroff(status_bar, A_BLINK);
+//}
+
+//static void
+//_mark_active(int num)
+//{
+//    int active_pos = 1 + ((num-1) * 3);
+//    int cols = getmaxx(stdscr);
+//    int status_attrs = theme_attrs(THEME_STATUS_ACTIVE);
+//    wattron(status_bar, status_attrs);
+//    if (num == 10) {
+//        mvwprintw(status_bar, 0, cols - 34 + active_pos, "0");
+//    } else if (num > 10) {
+//        mvwprintw(status_bar, 0, cols - 34 + active_pos, ">");
+//    } else {
+//        mvwprintw(status_bar, 0, cols - 34 + active_pos, "%d", num);
+//    }
+//    wattroff(status_bar, status_attrs);
+//}
+
+//static void
+//_mark_inactive(int num)
+//{
+//    int active_pos = 1 + ((num-1) * 3);
+//    int cols = getmaxx(stdscr);
+//    mvwaddch(status_bar, 0, cols - 34 + active_pos, ' ');
+//}
 
 static void
 _status_bar_draw(void)
 {
-    if (last_time) {
-        g_date_time_unref(last_time);
-    }
-    last_time = g_date_time_new_now(tz);
-
-    int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);
-    int time_attrs = theme_attrs(THEME_STATUS_TIME);
-
-    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);
-        wattron(status_bar, time_attrs);
-        mvwprintw(status_bar, 0, 2, date_fmt);
-        wattroff(status_bar, time_attrs);
-        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);
+    wnoutrefresh(statusbar_win);
     inp_put_back();
+
+//    if (last_time) {
+//        g_date_time_unref(last_time);
+//    }
+//    last_time = g_date_time_new_now(tz);
+//
+//    int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);
+//    int time_attrs = theme_attrs(THEME_STATUS_TIME);
+//
+//    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);
+//        wattron(status_bar, time_attrs);
+//        mvwprintw(status_bar, 0, 2, date_fmt);
+//        wattroff(status_bar, time_attrs);
+//        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();
 }