diff options
author | Michael Vetter <jubalh@iodoru.org> | 2019-04-23 13:50:58 +0200 |
---|---|---|
committer | Michael Vetter <jubalh@iodoru.org> | 2019-04-23 14:13:03 +0200 |
commit | 566022786d458802223340dffc450529637775ca (patch) | |
tree | b32c7ab1f26ba60835e53a805ee34580b9ccb4ed /src/ui | |
parent | 82ddd8857846b2bdfe4cc14ebe6ea8edc4f710b2 (diff) | |
download | profani-tty-566022786d458802223340dffc450529637775ca.tar.gz |
Add occupants header char
`/occupants header char` now sets a character that is displayed before the role (moderator, visitor..) in a room. Similar to `/roster header char` is displaying a char for the roster. Regards https://github.com/boothj5/profanity/issues/690
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/console.c | 6 | ||||
-rw-r--r-- | src/ui/occupantswin.c | 35 |
2 files changed, 37 insertions, 4 deletions
diff --git a/src/ui/console.c b/src/ui/console.c index 39bb02e9..cdf602b2 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -1237,6 +1237,12 @@ cons_occupants_setting(void) int size = prefs_get_occupants_size(); cons_show("Occupants size (/occupants) : %d", size); + + char header_ch = prefs_get_occupants_header_char(); + if (header_ch) + cons_show("Occupants header char (/occupants) : %c", header_ch); + else + cons_show("Occupants header char (/occupants) : none"); } void diff --git a/src/ui/occupantswin.c b/src/ui/occupantswin.c index 46b44b78..b924ea7c 100644 --- a/src/ui/occupantswin.c +++ b/src/ui/occupantswin.c @@ -90,10 +90,22 @@ occupantswin_occupants(const char *const roomjid) werase(layout->subwin); + GString *prefix = g_string_new(" "); + + char ch = prefs_get_occupants_header_char(); + if (ch) { + g_string_append_printf(prefix, "%c", ch); + } + if (prefs_get_boolean(PREF_MUC_PRIVILEGES)) { + + GString *role = g_string_new(prefix->str); + g_string_append(role, "Moderators"); + wattron(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER)); - win_sub_print(layout->subwin, " -Moderators", TRUE, FALSE, 0); + win_sub_print(layout->subwin, role->str, TRUE, FALSE, 0); wattroff(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER)); + g_string_free(role, TRUE); GList *roster_curr = occupants; while (roster_curr) { Occupant *occupant = roster_curr->data; @@ -103,9 +115,13 @@ occupantswin_occupants(const char *const roomjid) roster_curr = g_list_next(roster_curr); } + role = g_string_new(prefix->str); + g_string_append(role, "Participants"); + wattron(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER)); - win_sub_print(layout->subwin, " -Participants", TRUE, FALSE, 0); + win_sub_print(layout->subwin, role->str, TRUE, FALSE, 0); wattroff(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER)); + g_string_free(role, TRUE); roster_curr = occupants; while (roster_curr) { Occupant *occupant = roster_curr->data; @@ -115,9 +131,13 @@ occupantswin_occupants(const char *const roomjid) roster_curr = g_list_next(roster_curr); } + role = g_string_new(prefix->str); + g_string_append(role, "Visitors"); + wattron(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER)); - win_sub_print(layout->subwin, " -Visitors", TRUE, FALSE, 0); + win_sub_print(layout->subwin, role->str, TRUE, FALSE, 0); wattroff(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER)); + g_string_free(role, TRUE); roster_curr = occupants; while (roster_curr) { Occupant *occupant = roster_curr->data; @@ -127,9 +147,14 @@ occupantswin_occupants(const char *const roomjid) roster_curr = g_list_next(roster_curr); } } else { + GString *role = g_string_new(prefix->str); + g_string_append(role, "Occupants\n"); + wattron(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER)); - win_sub_print(layout->subwin, " -Occupants\n", TRUE, FALSE, 0); + win_sub_print(layout->subwin, role->str, TRUE, FALSE, 0); wattroff(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER)); + g_string_free(role, TRUE); + GList *roster_curr = occupants; while (roster_curr) { Occupant *occupant = roster_curr->data; @@ -137,6 +162,8 @@ occupantswin_occupants(const char *const roomjid) roster_curr = g_list_next(roster_curr); } } + + g_string_free(prefix, TRUE); } g_list_free(occupants); |