static void _ui_draw_win_title(void) { char new_win_title[100]; GString *version_str = g_string_new(""); if (prefs_get_boolean(PREF_TITLEBARVERSION)) { g_string_append(version_str, " "); g_string_append(version_str, PACKAGE_VERSION); if (strcmp(PACKAGE_STATUS, "development") == 0) { #ifdef HAVE_GIT_VERSION g_string_append(version_str, "dev."); g_string_append(version_str, PROF_GIT_BRANCH); g_string_append(version_str, "."); g_string_append(version_str, PROF_GIT_REVISION); #else g_string_append(version_str, "dev"); #endif } } jabber_conn_status_t status = jabber_get_connection_status(); if (status == JABBER_CONNECTED) { const char * const jid = jabber_get_fulljid(); gint unread = ui_unread(); if (unread != 0) { snprintf(new_win_title, sizeof(new_win_title), "%c]0;%s%s (%d) - %s%c", '\033', "Profanity", version_str->str, unread, jid, '\007'); } else { snprintf(new_win_title, sizeof(new_win_title), "%c]0;%s%s - %s%c", '\033', "Profanity", version_str->str, jid, '\007'); } } else { snprintf(new_win_title, sizeof(new_win_title), "%c]0;%s%s%c", '\033', "Profanity", version_str->str, '\007'); } g_string_free(version_str, TRUE); if (g_strcmp0(win_title, new_win_title) != 0) { // print to x-window title bar printf("%s", new_win_title); if (win_title != NULL) { free(win_title); } win_title = strdup(new_win_title); } }
static void _notify_remind(void) { gint unread = ui_unread(); gint open = muc_invite_count(); gint subs = presence_sub_request_count(); GString *text = g_string_new(""); if (unread > 0) { if (unread == 1) { g_string_append(text, "1 unread message"); } else { g_string_append_printf(text, "%d unread messages", unread); } } if (open > 0) { if (unread > 0) { g_string_append(text, "\n"); } if (open == 1) { g_string_append(text, "1 room invite"); } else { g_string_append_printf(text, "%d room invites", open); } } if (subs > 0) { if ((unread > 0) || (open > 0)) { g_string_append(text, "\n"); } if (subs == 1) { g_string_append(text, "1 subscription request"); } else { g_string_append_printf(text, "%d subscription requests", subs); } } if ((unread > 0) || (open > 0) || (subs > 0)) { _notify(text->str, 5000, "Incoming message"); } g_string_free(text, TRUE); }