diff options
author | James Booth <boothj5@gmail.com> | 2016-10-15 19:53:49 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2016-10-15 19:53:49 +0100 |
commit | ce5f07a012f163cc71e68ac605da50ad86b9338c (patch) | |
tree | 1f6934727448b2cf6ba5c8b03ea8ceb25c689e44 /src/ui/window.c | |
parent | 711c5b8e452f2ebc121474269812095153f27608 (diff) | |
download | profani-tty-ce5f07a012f163cc71e68ac605da50ad86b9338c.tar.gz |
Add win_append
Diffstat (limited to 'src/ui/window.c')
-rw-r--r-- | src/ui/window.c | 81 |
1 files changed, 50 insertions, 31 deletions
diff --git a/src/ui/window.c b/src/ui/window.c index c7016b6f..f0243578 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -683,10 +683,10 @@ win_show_occupant(ProfWin *window, Occupant *occupant) theme_item_t presence_colour = theme_main_presence_attrs(presence_str); win_print(window, presence_colour, '-', "%s", occupant->nick); - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", " is %s", presence_str); + win_append(window, presence_colour, " is %s", presence_str); if (occupant->status) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", occupant->status); + win_append(window, presence_colour, ", \"%s\"", occupant->status); } win_appendln(window, presence_colour, ""); @@ -709,7 +709,7 @@ win_show_contact(ProfWin *window, PContact contact) win_print(window, presence_colour, '-', "%s", barejid); } - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", " is %s", presence); + win_append(window, presence_colour, " is %s", presence); if (last_activity) { GDateTime *now = g_date_time_new_now_local(); @@ -723,15 +723,14 @@ win_show_contact(ProfWin *window, PContact contact) int seconds = span / G_TIME_SPAN_SECOND; if (hours > 0) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", idle %dh%dm%ds", hours, minutes, seconds); - } - else { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", idle %dm%ds", minutes, seconds); + win_append(window, presence_colour, ", idle %dh%dm%ds", hours, minutes, seconds); + } else { + win_append(window, presence_colour, ", idle %dm%ds", minutes, seconds); } } if (status) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", p_contact_status(contact)); + win_append(window, presence_colour, ", \"%s\"", p_contact_status(contact)); } win_appendln(window, presence_colour, ""); @@ -747,10 +746,10 @@ win_show_occupant_info(ProfWin *window, const char *const room, Occupant *occupa theme_item_t presence_colour = theme_main_presence_attrs(presence_str); win_print(window, presence_colour, '!', "%s", occupant->nick); - win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", " is %s", presence_str); + win_append(window, presence_colour, " is %s", presence_str); if (occupant->status) { - win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", occupant->status); + win_append(window, presence_colour, ", \"%s\"", occupant->status); } win_newline(window); @@ -772,19 +771,19 @@ win_show_occupant_info(ProfWin *window, const char *const room, Occupant *occupa DiscoIdentity *identity = caps->identity; win_print(window, THEME_DEFAULT, '!', " Identity: "); if (identity->name) { - win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", "%s", identity->name); + win_append(window, THEME_DEFAULT, "%s", identity->name); if (identity->category || identity->type) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", " "); + win_append(window, THEME_DEFAULT, " "); } } if (identity->type) { - win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", "%s", identity->type); + win_append(window, THEME_DEFAULT, "%s", identity->type); if (identity->category) { - win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", " "); + win_append(window, THEME_DEFAULT, " "); } } if (identity->category) { - win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", "%s", identity->category); + win_append(window, THEME_DEFAULT, "%s", identity->category); } win_newline(window); } @@ -795,7 +794,7 @@ win_show_occupant_info(ProfWin *window, const char *const room, Occupant *occupa win_print(window, THEME_DEFAULT, '!', " Software: %s", software_version->software); } if (software_version->software_version) { - win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", ", %s", software_version->software_version); + win_append(window, THEME_DEFAULT, ", %s", software_version->software_version); } if (software_version->software || software_version->software_version) { win_newline(window); @@ -804,7 +803,7 @@ win_show_occupant_info(ProfWin *window, const char *const room, Occupant *occupa win_print(window, THEME_DEFAULT, '!', " OS: %s", software_version->os); } if (software_version->os_version) { - win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", ", %s", software_version->os_version); + win_append(window, THEME_DEFAULT, ", %s", software_version->os_version); } if (software_version->os || software_version->os_version) { win_newline(window); @@ -831,7 +830,7 @@ win_show_info(ProfWin *window, PContact contact) win_println(window, THEME_DEFAULT, '-', ""); win_print(window, presence_colour, '-', "%s", barejid); if (name) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", " (%s)", name); + win_append(window, presence_colour, " (%s)", name); } win_appendln(window, THEME_DEFAULT, ":"); @@ -882,7 +881,7 @@ win_show_info(ProfWin *window, PContact contact) theme_item_t presence_colour = theme_main_presence_attrs(resource_presence); win_print(window, presence_colour, '-', " %s (%d), %s", resource->name, resource->priority, resource_presence); if (resource->status) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", resource->status); + win_append(window, presence_colour, ", \"%s\"", resource->status); } win_newline(window); @@ -896,19 +895,19 @@ win_show_info(ProfWin *window, PContact contact) DiscoIdentity *identity = caps->identity; win_print(window, THEME_DEFAULT, '-', " Identity: "); if (identity->name) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", "%s", identity->name); + win_append(window, THEME_DEFAULT, "%s", identity->name); if (identity->category || identity->type) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", " "); + win_append(window, THEME_DEFAULT, " "); } } if (identity->type) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", "%s", identity->type); + win_append(window, THEME_DEFAULT, "%s", identity->type); if (identity->category) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", " "); + win_append(window, THEME_DEFAULT, " "); } } if (identity->category) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", "%s", identity->category); + win_append(window, THEME_DEFAULT, "%s", identity->category); } win_newline(window); } @@ -919,7 +918,7 @@ win_show_info(ProfWin *window, PContact contact) win_print(window, THEME_DEFAULT, '-', " Software: %s", software_version->software); } if (software_version->software_version) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", ", %s", software_version->software_version); + win_append(window, THEME_DEFAULT, ", %s", software_version->software_version); } if (software_version->software || software_version->software_version) { win_newline(window); @@ -928,7 +927,7 @@ win_show_info(ProfWin *window, PContact contact) win_print(window, THEME_DEFAULT, '-', " OS: %s", software_version->os); } if (software_version->os_version) { - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", ", %s", software_version->os_version); + win_append(window, THEME_DEFAULT, ", %s", software_version->os_version); } if (software_version->os || software_version->os_version) { win_newline(window); @@ -962,9 +961,9 @@ win_show_status_string(ProfWin *window, const char *const from, win_print(window, presence_colour, '-', "%s %s", pre, from); if (show) - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", " is %s", show); + win_append(window, presence_colour, " is %s", show); else - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", " is %s", default_show); + win_append(window, presence_colour, " is %s", default_show); if (last_activity) { gchar *date_fmt = NULL; @@ -973,13 +972,13 @@ win_show_status_string(ProfWin *window, const char *const from, prefs_free_string(time_pref); assert(date_fmt != NULL); - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", last activity: %s", date_fmt); + win_append(window, presence_colour, ", last activity: %s", date_fmt); g_free(date_fmt); } if (status) - win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", status); + win_append(window, presence_colour, ", \"%s\"", status); win_appendln(window, presence_colour, ""); } @@ -1075,6 +1074,26 @@ win_println(ProfWin *window, theme_item_t theme_item, const char ch, const char } void +win_append(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, NO_EOL, theme_item, "", fmt_msg->str, NULL); + + _win_print(window, '-', 0, timestamp, NO_DATE | NO_EOL, theme_item, "", fmt_msg->str, NULL); + inp_nonblocking(TRUE); + g_date_time_unref(timestamp); + + g_string_free(fmt_msg, TRUE); + va_end(arg); +} + +void win_appendln(ProfWin *window, theme_item_t theme_item, const char *const message, ...) { GDateTime *timestamp = g_date_time_new_now_local(); @@ -1092,8 +1111,8 @@ win_appendln(ProfWin *window, theme_item_t theme_item, const char *const message g_string_free(fmt_msg, TRUE); va_end(arg); - } + void win_print_http_upload(ProfWin *window, const char *const message, char *url) { |