about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <jamesbooth2000@hotmail.com>2012-06-04 08:47:54 -0700
committerJames Booth <jamesbooth2000@hotmail.com>2012-06-04 08:47:54 -0700
commitdf1e8327f945a3bd0d5a957a0fd9e971baeabd72 (patch)
treeb376283213eafffe6193b37e9e7274df02e22b84
parent70310bb5afb7a008bdd4069d85ee62921cdf4ac5 (diff)
parent26b6db5b78b01e50eaee048472d5d33d5a468c3c (diff)
downloadprofani-tty-df1e8327f945a3bd0d5a957a0fd9e971baeabd72.tar.gz
Merge pull request #25 from dotoole/master
-rw-r--r--command.c18
-rw-r--r--preferences.c11
-rw-r--r--preferences.h2
-rw-r--r--windows.c22
4 files changed, 52 insertions, 1 deletions
diff --git a/command.c b/command.c
index 743ec5ae..f9b70e1f 100644
--- a/command.c
+++ b/command.c
@@ -44,6 +44,7 @@ static gboolean _cmd_msg(const char * const inp);
 static gboolean _cmd_close(const char * const inp);
 static gboolean _cmd_set_beep(const char * const inp);
 static gboolean _cmd_set_flash(const char * const inp);
+static gboolean _cmd_set_showsplash(const char * const inp);
 static gboolean _cmd_away(const char * const inp);
 static gboolean _cmd_online(const char * const inp);
 static gboolean _cmd_dnd(const char * const inp);
@@ -107,6 +108,8 @@ static gboolean _handle_command(const char * const command, const char * const i
         result = _cmd_set_beep(inp);
     } else if (strcmp(command, "/flash") == 0) {
         result = _cmd_set_flash(inp);
+    } else if (strcmp(command, "/showsplash") == 0) {
+        result = _cmd_set_showsplash(inp);
     } else if (strcmp(command, "/away") == 0) {
         result = _cmd_away(inp);
     } else if (strcmp(command, "/online") == 0) {
@@ -267,6 +270,21 @@ static gboolean _cmd_set_flash(const char * const inp)
     return TRUE;
 }
 
+static gboolean _cmd_set_showsplash(const char * const inp)
+{
+    if (strcmp(inp, "/showsplash on") == 0) {
+        cons_show("Splash screen enabled.");
+        prefs_set_showsplash(TRUE);
+    } else if (strcmp(inp, "/showsplash off") == 0) {
+        cons_show("Splash screen disabled.");
+        prefs_set_showsplash(FALSE);
+    } else {
+        cons_show("Usage: /showsplash <on/off>");
+    }
+
+    return TRUE;
+}
+
 static gboolean _cmd_away(const char * const inp)
 {
     _update_presence(PRESENCE_AWAY, "away", inp);
diff --git a/preferences.c b/preferences.c
index c5710a1e..46e511eb 100644
--- a/preferences.c
+++ b/preferences.c
@@ -129,6 +129,17 @@ void prefs_add_login(const char *jid)
     }
 }
 
+gboolean prefs_get_showsplash(void)
+{
+    return g_key_file_get_boolean(prefs, "ui", "showsplash", NULL);
+}
+
+void prefs_set_showsplash(gboolean value)
+{
+    g_key_file_set_boolean(prefs, "ui", "showsplash", value);
+    _save_prefs();
+}
+
 static void _save_prefs(void)
 {
     gsize g_data_size;
diff --git a/preferences.h b/preferences.h
index 8f2cfadc..2785a32e 100644
--- a/preferences.h
+++ b/preferences.h
@@ -35,5 +35,7 @@ void prefs_set_beep(gboolean value);
 gboolean prefs_get_flash(void);
 void prefs_set_flash(gboolean value);
 void prefs_add_login(const char *jid);
+gboolean prefs_get_showsplash(void);
+void prefs_set_showsplash(gboolean value);
 
 #endif
diff --git a/windows.c b/windows.c
index 8fe91a2f..935d66b4 100644
--- a/windows.c
+++ b/windows.c
@@ -51,6 +51,7 @@ static int dirty;
 static int max_cols = 0;
 
 static void _create_windows(void);
+static void _print_splash_logo(WINDOW *win);
 static int _find_prof_win_index(const char * const contact);
 static int _new_prof_win(const char * const contact);
 static void _current_window_refresh(void);
@@ -277,6 +278,7 @@ void cons_help(void)
     cons_show("");
     cons_show("/beep <on/off>       : Enable/disable sound notification");
     cons_show("/flash <on/off>      : Enable/disable screen flash notification");
+    cons_show("/showsplash <on/off> : Enable/disable splash logo on startup");
     cons_show("");
     cons_show("Status changes (msg is optional):");
     cons_show("");
@@ -395,7 +397,11 @@ static void _create_windows(void)
     
     wattrset(_cons_win, A_BOLD);
     _win_show_time(_cons_win);
-    wprintw(_cons_win, "Welcome to Profanity.\n");
+    if (prefs_get_showsplash()) {
+        _print_splash_logo(_cons_win);
+    } else {
+        wprintw(_cons_win, "Welcome to Profanity.\n");
+    }
     prefresh(_cons_win, 0, 0, 1, 0, rows-3, cols-1);
 
     dirty = TRUE;
@@ -414,6 +420,20 @@ static void _create_windows(void)
     }    
 }
 
+static void _print_splash_logo(WINDOW *win)
+{
+    wprintw(win, "Welcome to\n");
+    wattron(win, COLOR_PAIR(5));
+    wprintw(win, "                   ___            _           \n");
+    wprintw(win, "                  / __)          (_)_         \n");
+    wprintw(win, " ____   ____ ___ | |__ ____ ____  _| |_ _   _ \n");
+    wprintw(win, "|  _ \\ / ___) _ \\|  __) _  |  _ \\| |  _) | | |\n");
+    wprintw(win, "| | | | |  | |_| | | ( ( | | | | | | |_| |_| |\n");
+    wprintw(win, "| ||_/|_|   \\___/|_|  \\_||_|_| |_|_|\\___)__  |\n");
+    wprintw(win, "|_|                                    (____/ \n");
+    wattroff(win, COLOR_PAIR(5));
+}
+
 static int _find_prof_win_index(const char * const contact)
 {
     // find the chat window for recipient