diff options
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/core.c | 16 | ||||
-rw-r--r-- | src/ui/ui.h | 2 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/ui/core.c b/src/ui/core.c index e96d5fff..48999319 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -220,6 +220,21 @@ _ui_duck_exists(void) } static void +_ui_handle_stanza(const char * const msg) +{ + ProfWin *console = wins_get_console(); + if (g_str_has_prefix(msg, "SENT:")) { + win_vprint_line(console, '!', COLOUR_ONLINE, "<- %s", &msg[6]); + } else if (g_str_has_prefix(msg, "RECV:")) { + win_vprint_line(console, '!', COLOUR_AWAY, "-> %s", &msg[6]); + } + win_update_virtual(console); + if (wins_is_current(console)) { + ui_current_page_off(); + } +} + +static void _ui_contact_typing(const char * const barejid) { ProfWin *window = wins_get_by_recipient(barejid); @@ -1923,4 +1938,5 @@ ui_init_module(void) ui_input_nonblocking = _ui_input_nonblocking; ui_replace_input = _ui_replace_input; ui_invalid_command_usage = _ui_invalid_command_usage; + ui_handle_stanza = _ui_handle_stanza; } diff --git a/src/ui/ui.h b/src/ui/ui.h index e1cbc28f..43f2d5ed 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -92,6 +92,8 @@ gboolean (*ui_win_exists)(int index); int (*ui_win_unread)(int index); char * (*ui_ask_password)(void); +void (*ui_handle_stanza)(const char * const msg); + // ui events void (*ui_contact_typing)(const char * const from); void (*ui_incoming_msg)(const char * const from, const char * const message, |