diff options
author | James Booth <boothj5@gmail.com> | 2016-10-12 00:14:55 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2016-10-12 00:14:55 +0100 |
commit | 97898ee082d314eb6d7f27a0b0d33027defc9a32 (patch) | |
tree | 4facff913f030a2a348cf8f0ac108637f12876bb /src/ui | |
parent | 7b31af30609e7045a1f6b39668d7abedfb1755da (diff) | |
download | profani-tty-97898ee082d314eb6d7f27a0b0d33027defc9a32.tar.gz |
Add win_printf_line
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/ui.h | 1 | ||||
-rw-r--r-- | src/ui/window.c | 21 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/ui/ui.h b/src/ui/ui.h index d7ea0e96..9ba7e65c 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -359,6 +359,7 @@ void win_refresh_without_subwin(ProfWin *window); void win_refresh_with_subwin(ProfWin *window); void win_printf(ProfWin *window, const char show_char, int pad_indent, GDateTime *timestamp, int flags, theme_item_t theme_item, const char *const from, const char *const message, ...); +void win_printf_line(ProfWin *window, theme_item_t theme_item, const char *const message, ...); char* win_get_title(ProfWin *window); void win_show_occupant(ProfWin *window, Occupant *occupant); void win_show_occupant_info(ProfWin *window, const char *const room, Occupant *occupant); diff --git a/src/ui/window.c b/src/ui/window.c index 81ecb3cd..133a3990 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -1030,7 +1030,26 @@ win_printf(ProfWin *window, const char show_char, int pad_indent, GDateTime *tim buffer_push(window->layout->buffer, show_char, pad_indent, timestamp, flags, theme_item, from, fmt_msg->str, NULL); _win_print(window, show_char, pad_indent, timestamp, flags, theme_item, from, fmt_msg->str, NULL); - // TODO: cross-reference.. this should be replaced by a real event-based system + inp_nonblocking(TRUE); + g_date_time_unref(timestamp); + + g_string_free(fmt_msg, TRUE); + va_end(arg); +} + +void +win_printf_line(ProfWin *window, theme_item_t theme_item, const char *const message, ...) +{ + GDateTime *timestamp = g_date_time_new_now_local(); + + va_list arg; + va_start(arg, message); + GString *fmt_msg = g_string_new(NULL); + g_string_vprintf(fmt_msg, message, arg); + + buffer_push(window->layout->buffer, '-', 0, timestamp, 0, theme_item, "", fmt_msg->str, NULL); + + _win_print(window, '-', 0, timestamp, 0, theme_item, "", fmt_msg->str, NULL); inp_nonblocking(TRUE); g_date_time_unref(timestamp); |