1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-06-23 21:45:30 +00:00

Tidied title bar draw

This commit is contained in:
James Booth 2014-12-02 20:05:52 +00:00
parent e756daf2be
commit aae88753a3

View File

@ -169,36 +169,33 @@ title_bar_set_typing(gboolean is_typing)
static void static void
_title_bar_draw(void) _title_bar_draw(void)
{ {
werase(win); ProfWin *current = wins_get_current();
// show title werase(win);
wmove(win, 0, 0); wmove(win, 0, 0);
int i; int i;
for (i = 0; i < 45; i++) for (i = 0; i < 45; i++) {
waddch(win, ' '); waddch(win, ' ');
}
mvwprintw(win, 0, 0, " %s", current_title); mvwprintw(win, 0, 0, " %s", current_title);
if (prefs_get_boolean(PREF_PRESENCE)) { if (current && current->type == WIN_CHAT) {
_show_contact_presence(); if (prefs_get_boolean(PREF_PRESENCE)) {
} _show_contact_presence();
}
#ifdef HAVE_LIBOTR #ifdef HAVE_LIBOTR
_show_privacy(); _show_privacy();
#endif #endif
if (typing) {
// show indicator for unsaved forms wprintw(win, " (typing...)");
ProfWin *current = wins_get_current(); }
if ((current != NULL ) && (current->type == WIN_MUC_CONFIG)) { } else if (current && current->type == WIN_MUC_CONFIG) {
if ((current->form != NULL) && (current->form->modified)) { if (current->form && current->form->modified) {
wprintw(win, " *"); wprintw(win, " *");
} }
} }
// show contact typing
if (typing) {
wprintw(win, " (typing...)");
}
_show_self_presence(); _show_self_presence();
wnoutrefresh(win); wnoutrefresh(win);
@ -268,58 +265,56 @@ _show_privacy(void)
int bracket_attrs = theme_attrs(THEME_TITLE_BRACKET); int bracket_attrs = theme_attrs(THEME_TITLE_BRACKET);
ProfWin *current = wins_get_current(); ProfWin *current = wins_get_current();
if (current && current->type == WIN_CHAT) { if (!current->is_otr) {
if (!current->is_otr) { if (prefs_get_boolean(PREF_OTR_WARN)) {
if (prefs_get_boolean(PREF_OTR_WARN)) { int unencrypted_attrs = theme_attrs(THEME_TITLE_UNENCRYPTED);
int unencrypted_attrs = theme_attrs(THEME_TITLE_UNENCRYPTED);
wprintw(win, " ");
wattron(win, bracket_attrs);
wprintw(win, "[");
wattroff(win, bracket_attrs);
wattron(win, unencrypted_attrs);
wprintw(win, "unencrypted");
wattroff(win, unencrypted_attrs);
wattron(win, bracket_attrs);
wprintw(win, "]");
wattroff(win, bracket_attrs);
}
} else {
int encrypted_attrs = theme_attrs(THEME_TITLE_ENCRYPTED);
wprintw(win, " "); wprintw(win, " ");
wattron(win, bracket_attrs); wattron(win, bracket_attrs);
wprintw(win, "["); wprintw(win, "[");
wattroff(win, bracket_attrs); wattroff(win, bracket_attrs);
wattron(win, encrypted_attrs); wattron(win, unencrypted_attrs);
wprintw(win, "OTR"); wprintw(win, "unencrypted");
wattroff(win, encrypted_attrs); wattroff(win, unencrypted_attrs);
wattron(win, bracket_attrs);
wprintw(win, "]");
wattroff(win, bracket_attrs);
}
} else {
int encrypted_attrs = theme_attrs(THEME_TITLE_ENCRYPTED);
wprintw(win, " ");
wattron(win, bracket_attrs);
wprintw(win, "[");
wattroff(win, bracket_attrs);
wattron(win, encrypted_attrs);
wprintw(win, "OTR");
wattroff(win, encrypted_attrs);
wattron(win, bracket_attrs);
wprintw(win, "]");
wattroff(win, bracket_attrs);
if (current->is_trusted) {
int trusted_attrs = theme_attrs(THEME_TITLE_TRUSTED);
wprintw(win, " ");
wattron(win, bracket_attrs);
wprintw(win, "[");
wattroff(win, bracket_attrs);
wattron(win, trusted_attrs);
wprintw(win, "trusted");
wattroff(win, trusted_attrs);
wattron(win, bracket_attrs);
wprintw(win, "]");
wattroff(win, bracket_attrs);
} else {
int untrusted_attrs = theme_attrs(THEME_TITLE_UNTRUSTED);
wprintw(win, " ");
wattron(win, bracket_attrs);
wprintw(win, "[");
wattroff(win, bracket_attrs);
wattron(win, untrusted_attrs);
wprintw(win, "untrusted");
wattroff(win, untrusted_attrs);
wattron(win, bracket_attrs); wattron(win, bracket_attrs);
wprintw(win, "]"); wprintw(win, "]");
wattroff(win, bracket_attrs); wattroff(win, bracket_attrs);
if (current->is_trusted) {
int trusted_attrs = theme_attrs(THEME_TITLE_TRUSTED);
wprintw(win, " ");
wattron(win, bracket_attrs);
wprintw(win, "[");
wattroff(win, bracket_attrs);
wattron(win, trusted_attrs);
wprintw(win, "trusted");
wattroff(win, trusted_attrs);
wattron(win, bracket_attrs);
wprintw(win, "]");
wattroff(win, bracket_attrs);
} else {
int untrusted_attrs = theme_attrs(THEME_TITLE_UNTRUSTED);
wprintw(win, " ");
wattron(win, bracket_attrs);
wprintw(win, "[");
wattroff(win, bracket_attrs);
wattron(win, untrusted_attrs);
wprintw(win, "untrusted");
wattroff(win, untrusted_attrs);
wattron(win, bracket_attrs);
wprintw(win, "]");
wattroff(win, bracket_attrs);
}
} }
} }
} }
@ -330,41 +325,38 @@ _show_contact_presence(void)
{ {
int bracket_attrs = theme_attrs(THEME_TITLE_BRACKET); int bracket_attrs = theme_attrs(THEME_TITLE_BRACKET);
ProfWin *current = wins_get_current(); theme_item_t presence_colour = THEME_TITLE_OFFLINE;
if (current && current->type == WIN_CHAT) { const char *presence = "offline";
theme_item_t presence_colour = THEME_TITLE_OFFLINE;
const char *presence = "offline";
char *barejid = roster_barejid_from_name(current_recipient); char *barejid = roster_barejid_from_name(current_recipient);
if (barejid) { if (barejid) {
PContact contact = roster_get_contact(barejid); PContact contact = roster_get_contact(barejid);
if (contact) { if (contact) {
presence = p_contact_presence(contact); presence = p_contact_presence(contact);
presence_colour = THEME_TITLE_ONLINE; presence_colour = THEME_TITLE_ONLINE;
if (g_strcmp0(presence, "offline") == 0) { if (g_strcmp0(presence, "offline") == 0) {
presence_colour = THEME_TITLE_OFFLINE; presence_colour = THEME_TITLE_OFFLINE;
} else if (g_strcmp0(presence, "away") == 0) { } else if (g_strcmp0(presence, "away") == 0) {
presence_colour = THEME_TITLE_AWAY; presence_colour = THEME_TITLE_AWAY;
} else if (g_strcmp0(presence, "xa") == 0) { } else if (g_strcmp0(presence, "xa") == 0) {
presence_colour = THEME_TITLE_XA; presence_colour = THEME_TITLE_XA;
} else if (g_strcmp0(presence, "chat") == 0) { } else if (g_strcmp0(presence, "chat") == 0) {
presence_colour = THEME_TITLE_CHAT; presence_colour = THEME_TITLE_CHAT;
} else if (g_strcmp0(presence, "dnd") == 0) { } else if (g_strcmp0(presence, "dnd") == 0) {
presence_colour = THEME_TITLE_DND; presence_colour = THEME_TITLE_DND;
}
} }
} }
int presence_attrs = theme_attrs(presence_colour);
wprintw(win, " ");
wattron(win, bracket_attrs);
wprintw(win, "[");
wattroff(win, bracket_attrs);
wattron(win, presence_attrs);
wprintw(win, presence);
wattroff(win, presence_attrs);
wattron(win, bracket_attrs);
wprintw(win, "]");
wattroff(win, bracket_attrs);
} }
int presence_attrs = theme_attrs(presence_colour);
wprintw(win, " ");
wattron(win, bracket_attrs);
wprintw(win, "[");
wattroff(win, bracket_attrs);
wattron(win, presence_attrs);
wprintw(win, presence);
wattroff(win, presence_attrs);
wattron(win, bracket_attrs);
wprintw(win, "]");
wattroff(win, bracket_attrs);
} }