about summary refs log tree commit diff stats
path: root/src/ui/statusbar.c
diff options
context:
space:
mode:
authorWill Song <incertia9474@gmail.com>2015-05-29 19:53:37 -0500
committerWill Song <incertia9474@gmail.com>2015-05-29 19:53:37 -0500
commit9463c6719036957c8468e1363a48afbfe751fd3e (patch)
treeaed6ccd050fc182a0d4d111bef6f743d28a42a73 /src/ui/statusbar.c
parent7f436d614b11d72893d856f1c3d817ab34b0b9eb (diff)
parent304e08a9c0bfa27ed84dc1ff0a2e2d32b36529f8 (diff)
downloadprofani-tty-9463c6719036957c8468e1363a48afbfe751fd3e.tar.gz
fix conflicts
Diffstat (limited to 'src/ui/statusbar.c')
-rw-r--r--src/ui/statusbar.c74
1 files changed, 52 insertions, 22 deletions
diff --git a/src/ui/statusbar.c b/src/ui/statusbar.c
index 2ef20913..581e63df 100644
--- a/src/ui/statusbar.c
+++ b/src/ui/statusbar.c
@@ -1,7 +1,7 @@
 /*
  * statusbar.c
  *
- * Copyright (C) 2012 - 2014 James Booth <boothj5@gmail.com>
+ * Copyright (C) 2012 - 2015 James Booth <boothj5@gmail.com>
  *
  * This file is part of Profanity.
  *
@@ -48,6 +48,7 @@
 #include "ui/ui.h"
 #include "ui/statusbar.h"
 #include "ui/inputwin.h"
+#include "config/preferences.h"
 
 #define TIME_CHECK 60000000
 
@@ -94,7 +95,7 @@ create_status_bar(void)
     mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket);
     wattroff(status_bar, bracket_attrs);
 
-    if (last_time != NULL) {
+    if (last_time) {
         g_date_time_unref(last_time);
     }
     last_time = g_date_time_new_now_local();
@@ -126,10 +127,17 @@ status_bar_resize(void)
     mvwprintw(status_bar, 0, cols - 34 + ((current - 1) * 3), bracket);
     wattroff(status_bar, bracket_attrs);
 
-    if (message != NULL) {
-        mvwprintw(status_bar, 0, 10, message);
+    if (message) {
+        char *time_pref = prefs_get_string(PREF_TIME_STATUSBAR);
+        if (g_strcmp0(time_pref, "minutes") == 0) {
+            mvwprintw(status_bar, 0, 10, message);
+        } else if (g_strcmp0(time_pref, "seconds") == 0) {
+            mvwprintw(status_bar, 0, 13, message);
+        } else {
+            mvwprintw(status_bar, 0, 1, message);
+        }
     }
-    if (last_time != NULL) {
+    if (last_time) {
         g_date_time_unref(last_time);
     }
     last_time = g_date_time_new_now_local();
@@ -192,7 +200,7 @@ status_bar_inactive(const int win)
             is_new[11] = TRUE;
             _mark_new(11);
 
-        // still have active winsows
+        // still have active windows
         } else if (g_hash_table_size(remaining_active) != 0) {
             is_active[11] = TRUE;
             is_new[11] = FALSE;
@@ -241,7 +249,7 @@ status_bar_active(const int win)
             _mark_active(11);
         }
 
-    // visible winsow indicators
+    // visible window indicators
     } else {
         is_active[true_win] = TRUE;
         is_new[true_win] = FALSE;
@@ -289,11 +297,19 @@ status_bar_print_message(const char * const msg)
 {
     werase(status_bar);
 
-    if (message != NULL) {
+    if (message) {
         free(message);
     }
     message = strdup(msg);
-    mvwprintw(status_bar, 0, 10, message);
+
+    char *time_pref = prefs_get_string(PREF_TIME_STATUSBAR);
+    if (g_strcmp0(time_pref, "minutes") == 0) {
+        mvwprintw(status_bar, 0, 10, message);
+    } else if (g_strcmp0(time_pref, "seconds") == 0) {
+        mvwprintw(status_bar, 0, 13, message);
+    } else {
+        mvwprintw(status_bar, 0, 1, message);
+    }
 
     int cols = getmaxx(stdscr);
     int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);
@@ -309,7 +325,7 @@ status_bar_print_message(const char * const msg)
 void
 status_bar_clear(void)
 {
-    if (message != NULL) {
+    if (message) {
         free(message);
         message = NULL;
     }
@@ -330,7 +346,7 @@ status_bar_clear(void)
 void
 status_bar_clear_message(void)
 {
-    if (message != NULL) {
+    if (message) {
         free(message);
         message = NULL;
     }
@@ -412,23 +428,37 @@ _mark_inactive(int num)
 static void
 _status_bar_draw(void)
 {
-    if (last_time != NULL) {
+    if (last_time) {
         g_date_time_unref(last_time);
     }
     last_time = g_date_time_new_now_local();
-    gchar *date_fmt = g_date_time_format(last_time, "%H:%M");
-    assert(date_fmt != NULL);
 
     int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);
 
-    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);
+    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);