diff options
author | James Booth <boothj5@gmail.com> | 2012-11-26 00:01:34 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2012-11-26 00:01:34 +0000 |
commit | e131afdb125f9c7fbf19ad6a0ebeee65ff38d3ba (patch) | |
tree | e2407a0477383cebcce8118c58753f91b7c6a9fd | |
parent | 4aee534725241e3d2daccaee4b271b4ade115f18 (diff) | |
download | profani-tty-e131afdb125f9c7fbf19ad6a0ebeee65ff38d3ba.tar.gz |
windows tidy up
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/command.c | 42 | ||||
-rw-r--r-- | src/profanity.c | 12 | ||||
-rw-r--r-- | src/ui.h | 29 | ||||
-rw-r--r-- | src/windows.c | 126 |
5 files changed, 103 insertions, 108 deletions
diff --git a/configure.ac b/configure.ac index 6b83f0a7..4e239831 100644 --- a/configure.ac +++ b/configure.ac @@ -57,7 +57,7 @@ PKG_CHECK_MODULES([DEPS], [openssl glib-2.0 libcurl]) PKG_CHECK_MODULES([NOTIFY], [libnotify], [], [AC_MSG_NOTICE([libnotify module not found])]) -AM_CFLAGS="-Wall " +AM_CFLAGS="-Wall -Werror" LIBS="$LIBS $DEPS_LIBS $NOTIFY_LIBS" AM_CPPFLAGS="$DEPS_CFLAGS $NOTIFY_CFLAGS" diff --git a/src/command.c b/src/command.c index c463c1ee..9acbb8fe 100644 --- a/src/command.c +++ b/src/command.c @@ -744,7 +744,7 @@ cmd_execute(const char * const command, const char * const inp) gchar **args = cmd->parser(inp, cmd->min_args, cmd->max_args); if (args == NULL) { cons_show("Usage: %s", cmd->help.usage); - if (win_in_chat()) { + if (win_current_is_chat()) { char usage[strlen(cmd->help.usage) + 8]; sprintf(usage, "Usage: %s", cmd->help.usage); win_show(usage); @@ -763,21 +763,21 @@ cmd_execute(const char * const command, const char * const inp) gboolean cmd_execute_default(const char * const inp) { - if (win_in_groupchat()) { + if (win_current_is_groupchat()) { jabber_conn_status_t status = jabber_get_connection_status(); if (status != JABBER_CONNECTED) { win_show("You are not currently connected."); } else { - char *recipient = win_get_recipient(); + char *recipient = win_current_get_recipient(); jabber_send_groupchat(inp, recipient); free(recipient); } - } else if (win_in_chat() || win_in_private_chat()) { + } else if (win_current_is_chat() || win_current_is_private()) { jabber_conn_status_t status = jabber_get_connection_status(); if (status != JABBER_CONNECTED) { win_show("You are not currently connected."); } else { - char *recipient = win_get_recipient(); + char *recipient = win_current_get_recipient(); jabber_send(inp, recipient); if (prefs_get_chlog()) { @@ -966,7 +966,7 @@ _cmd_sub(gchar **args, struct cmd_help_t help) if (jid != NULL) { jid = strdup(jid); } else { - jid = win_get_recipient(); + jid = win_current_get_recipient(); } bare_jid = strtok(jid, "/"); @@ -1019,7 +1019,7 @@ _cmd_quit(gchar **args, struct cmd_help_t help) static gboolean _cmd_wins(gchar **args, struct cmd_help_t help) { - win_show_wins(); + cons_show_wins(); return TRUE; } @@ -1116,7 +1116,7 @@ static gboolean _cmd_theme(gchar **args, struct cmd_help_t help) { if (theme_change(args[0])) { - win_load_colours(); + ui_load_colours(); prefs_set_theme(args[0]); cons_show("Loaded theme: %s", args[0]); } else { @@ -1150,8 +1150,8 @@ _cmd_who(gchar **args, struct cmd_help_t help) // valid arg } else { - if (win_in_groupchat()) { - char *room = win_get_recipient(); + if (win_current_is_groupchat()) { + char *room = win_current_get_recipient(); win_show_room_roster(room); } else { GSList *list = get_contact_list(); @@ -1317,12 +1317,12 @@ _cmd_nick(gchar **args, struct cmd_help_t help) cons_show("You are not currently connected."); return TRUE; } - if (!win_in_groupchat()) { + if (!win_current_is_groupchat()) { cons_show("You can only change your nickname in a chat room window."); return TRUE; } - char *room = win_get_recipient(); + char *room = win_current_get_recipient(); char *nick = args[0]; jabber_change_room_nick(room, nick); @@ -1338,15 +1338,15 @@ _cmd_tiny(gchar **args, struct cmd_help_t help) GString *error = g_string_new("/tiny, badly formed URL: "); g_string_append(error, url); cons_bad_show(error->str); - if (win_in_chat()) { + if (win_current_is_chat()) { win_bad_show(error->str); } g_string_free(error, TRUE); - } else if (win_in_chat()) { + } else if (win_current_is_chat()) { char *tiny = tinyurl_get(url); if (tiny != NULL) { - char *recipient = win_get_recipient(); + char *recipient = win_current_get_recipient(); jabber_send(tiny, recipient); if (prefs_get_chlog()) { @@ -1370,14 +1370,14 @@ _cmd_tiny(gchar **args, struct cmd_help_t help) static gboolean _cmd_close(gchar **args, struct cmd_help_t help) { - if (win_in_groupchat()) { - char *room_jid = win_get_recipient(); + if (win_current_is_groupchat()) { + char *room_jid = win_current_get_recipient(); jabber_leave_chat_room(room_jid); - win_close_win(); - } else if (win_in_chat() || win_in_private_chat()) { + win_current_close(); + } else if (win_current_is_chat() || win_current_is_private()) { if (prefs_get_states()) { - char *recipient = win_get_recipient(); + char *recipient = win_current_get_recipient(); // send <gone/> chat state before closing if (chat_session_get_recipient_supports(recipient)) { @@ -1387,7 +1387,7 @@ _cmd_close(gchar **args, struct cmd_help_t help) } } - win_close_win(); + win_current_close(); } else { cons_show("Cannot close console window."); diff --git a/src/profanity.c b/src/profanity.c index 8af64643..f7fbc635 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -73,17 +73,17 @@ prof_run(const int disable_tls, char *log_level) // 0 means to not remind if (remind_period > 0 && elapsed >= remind_period) { - win_remind(); + notify_remind(); g_timer_start(timer); } win_handle_special_keys(&ch); if (ch == KEY_RESIZE) { - gui_resize(ch, inp, size); + ui_resize(ch, inp, size); } - gui_refresh(); + ui_refresh(); jabber_process_events(); inp_get_char(&ch, inp, &size); @@ -99,7 +99,7 @@ prof_run(const int disable_tls, char *log_level) void prof_handle_typing(char *from) { - win_show_typing(from); + ui_show_typing(from); win_page_off(); } @@ -442,7 +442,7 @@ _init(const int disable_tls, char *log_level) chat_log_init(); prefs_load(); theme_load(prefs_get_theme()); - gui_init(); + ui_init(); jabber_init(disable_tls); cmd_init(); log_info("Initialising contact list"); @@ -455,7 +455,7 @@ _shutdown(void) { jabber_disconnect(); contact_list_clear(); - gui_close(); + ui_close(); chat_log_close(); prefs_close(); theme_close(); diff --git a/src/ui.h b/src/ui.h index bab4d47c..d51a8e5c 100644 --- a/src/ui.h +++ b/src/ui.h @@ -58,11 +58,13 @@ struct prof_win { }; // gui startup and shutdown, resize -void gui_init(void); -void gui_refresh(void); -void gui_close(void); -void gui_resize(const int ch, const char * const input, +void ui_init(void); +void ui_load_colours(void); +void ui_refresh(void); +void ui_close(void); +void ui_resize(const int ch, const char * const input, const int size); +void ui_show_typing(const char * const from); // create windows void create_title_bar(void); @@ -79,11 +81,13 @@ void title_bar_set_recipient(char *from); void title_bar_set_typing(gboolean is_typing); void title_bar_draw(void); -// main window actions -void win_close_win(void); -int win_in_chat(void); -char *win_get_recipient(void); -void win_show_typing(const char * const from); +// current window actions +void win_current_close(void); +int win_current_is_chat(void); +int win_current_is_groupchat(void); +int win_current_is_private(void); +char* win_current_get_recipient(void); + void win_show_gone(const char * const from); void win_show_incomming_msg(const char * const from, const char * const message, GTimeVal *tv_stamp, gboolean priv); @@ -100,14 +104,12 @@ void win_contact_offline(const char * const from, const char * const show, void win_disconnected(void); void win_show(const char * const msg); void win_bad_show(const char * const msg); -void win_remind(void); void win_activity(void); void win_no_activity(void); void win_switch_if_active(const int i); void win_join_chat(const char * const room, const char * const nick); void win_show_room_roster(const char * const room); -int win_in_groupchat(void); void win_show_room_history(const char * const room_jid, const char * const nick, GTimeVal tv_stamp, const char * const message); void win_show_room_message(const char * const room_jid, const char * const nick, @@ -120,14 +122,11 @@ void win_show_room_member_offline(const char * const room, const char * const ni void win_show_room_member_online(const char * const room, const char * const nick, const char * const show, const char * const status); void win_show_status(const char * const contact); -void win_show_wins(void); -int win_in_private_chat(void); void win_show_room_member_nick_change(const char * const room, const char * const old_nick, const char * const nick); void win_show_room_nick_change(const char * const room, const char * const nick); void win_show_room_member_presence(const char * const room, const char * const nick, const char * const show, const char * const status); -void win_load_colours(void); // console window actions void cons_about(void); @@ -145,6 +144,7 @@ void cons_bad_show(const char * const cmd, ...); void cons_highlight_show(const char * const cmd); void cons_show_contacts(GSList * list); void cons_check_version(gboolean not_available_msg); +void cons_show_wins(void); // status bar actions void status_bar_refresh(void); @@ -169,4 +169,5 @@ void inp_get_password(char *passwd); void inp_replace_input(char *input, const char * const new_input, int *size); int inp_get_next_char(void); +void notify_remind(void); #endif diff --git a/src/windows.c b/src/windows.c index b705d9c4..7906704a 100644 --- a/src/windows.c +++ b/src/windows.c @@ -101,24 +101,20 @@ static void _win_notify_typing(const char * const from); #endif void -gui_init(void) +ui_init(void) { log_info("Initialising UI"); initscr(); raw(); keypad(stdscr, TRUE); - #ifdef PLATFORM_CYGWIN mousemask(BUTTON5_PRESSED | BUTTON4_PRESSED, NULL); #else mousemask(BUTTON2_PRESSED | BUTTON4_PRESSED, NULL); #endif mouseinterval(5); - - win_load_colours(); - + ui_load_colours(); refresh(); - create_title_bar(); create_status_bar(); status_bar_active(0); @@ -129,17 +125,7 @@ gui_init(void) } void -win_load_colours(void) -{ - if (has_colors()) { - use_default_colors(); - start_color(); - theme_init_colours(); - } -} - -void -gui_refresh(void) +ui_refresh(void) { title_bar_refresh(); status_bar_refresh(); @@ -153,7 +139,7 @@ gui_refresh(void) } void -gui_close(void) +ui_close(void) { #ifdef HAVE_LIBNOTIFY if (notify_is_initted()) { @@ -164,7 +150,7 @@ gui_close(void) } void -gui_resize(const int ch, const char * const input, const int size) +ui_resize(const int ch, const char * const input, const int size) { log_info("Resizing UI"); title_bar_resize(); @@ -175,7 +161,48 @@ gui_resize(const int ch, const char * const input, const int size) } void -win_close_win(void) +ui_load_colours(void) +{ + if (has_colors()) { + use_default_colors(); + start_color(); + theme_init_colours(); + } +} + +void +ui_show_typing(const char * const from) +{ + int win_index = _find_prof_win_index(from); + + if (prefs_get_intype()) { + // no chat window for user + if (win_index == NUM_WINS) { + _cons_show_typing(from); + + // have chat window but not currently in it + } else if (win_index != current_index) { + _cons_show_typing(from); + dirty = TRUE; + + // in chat window with user + } else { + title_bar_set_typing(TRUE); + title_bar_draw(); + + status_bar_active(win_index); + dirty = TRUE; + } + } + +#ifdef HAVE_LIBNOTIFY + if (prefs_get_notify_typing()) + _win_notify_typing(from); +#endif +} + +void +win_current_close(void) { window_free(current); windows[current_index] = NULL; @@ -192,25 +219,31 @@ win_close_win(void) } int -win_in_chat(void) +win_current_is_chat(void) { return (current->type == WIN_CHAT); } int -win_in_groupchat(void) +win_current_is_groupchat(void) { return (current->type == WIN_MUC); } int -win_in_private_chat(void) +win_current_is_private(void) { return (current->type == WIN_PRIVATE); } +char * +win_current_get_recipient(void) +{ + return strdup(current->from); +} + void -win_show_wins(void) +cons_show_wins(void) { int i = 0; int count = 0; @@ -279,47 +312,8 @@ win_show_wins(void) } } -char * -win_get_recipient(void) -{ - char *recipient = (char *) malloc(sizeof(char) * (strlen(current->from) + 1)); - strcpy(recipient, current->from); - return recipient; -} - -void -win_show_typing(const char * const from) -{ - int win_index = _find_prof_win_index(from); - - if (prefs_get_intype()) { - // no chat window for user - if (win_index == NUM_WINS) { - _cons_show_typing(from); - - // have chat window but not currently in it - } else if (win_index != current_index) { - _cons_show_typing(from); - dirty = TRUE; - - // in chat window with user - } else { - title_bar_set_typing(TRUE); - title_bar_draw(); - - status_bar_active(win_index); - dirty = TRUE; - } - } - -#ifdef HAVE_LIBNOTIFY - if (prefs_get_notify_typing()) - _win_notify_typing(from); -#endif -} - void -win_remind(void) +notify_remind(void) { #ifdef HAVE_LIBNOTIFY gint unread = _win_get_unread(); @@ -332,8 +326,8 @@ win_remind(void) void win_activity(void) { - if (win_in_chat()) { - char *recipient = win_get_recipient(); + if (win_current_is_chat()) { + char *recipient = win_current_get_recipient(); chat_session_set_composing(recipient); if (!chat_session_get_sent(recipient) || chat_session_is_paused(recipient)) { |