/* * Callback for the timer * * This is the callback that the timer is calling in order to check if messages are there. * */ gboolean _tray_change_icon(gpointer data) { if (shutting_down) { return FALSE; } unread_messages = wins_get_total_unread(); if (unread_messages) { if (!prof_tray) { prof_tray = gtk_status_icon_new_from_file(icon_msg_filename->str); } else { gtk_status_icon_set_from_file(prof_tray, icon_msg_filename->str); } } else { if (prefs_get_boolean(PREF_TRAY_READ)) { if (!prof_tray) { prof_tray = gtk_status_icon_new_from_file(icon_filename->str); } else { gtk_status_icon_set_from_file(prof_tray, icon_filename->str); } } else { g_clear_object(&prof_tray); prof_tray = NULL; } } return TRUE; }
static void _ui_draw_term_title(void) { char new_win_title[100]; jabber_conn_status_t status = connection_get_status(); if (status == JABBER_CONNECTED) { const char * const jid = connection_get_fulljid(); gint unread = wins_get_total_unread(); if (unread != 0) { snprintf(new_win_title, sizeof(new_win_title), "/bin/echo -n \"%c]0;%s (%d) - %s%c\"", '\033', "Profanity", unread, jid, '\007'); } else { snprintf(new_win_title, sizeof(new_win_title), "/bin/echo -n \"%c]0;%s - %s%c\"", '\033', "Profanity", jid, '\007'); } } else { snprintf(new_win_title, sizeof(new_win_title), "/bin/echo -n \"%c]0;%s%c\"", '\033', "Profanity", '\007'); } if (g_strcmp0(win_title, new_win_title) != 0) { // print to x-window title bar int res = system(new_win_title); if (res == -1) { log_error("Error writing terminal window title."); } if (win_title) { free(win_title); } win_title = strdup(new_win_title); } }
void notify_remind(void) { gdouble elapsed = g_timer_elapsed(remind_timer, NULL); gint remind_period = prefs_get_notify_remind(); if (remind_period > 0 && elapsed >= remind_period) { gboolean notify = wins_do_notify_remind(); gint unread = wins_get_total_unread(); gint open = muc_invites_count(); gint subs = presence_sub_request_count(); GString *text = g_string_new(""); if (notify && 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 ((notify && unread > 0) || (open > 0) || (subs > 0)) { _notify(text->str, 5000, "Incoming message"); } g_string_free(text, TRUE); g_timer_start(remind_timer); } }
/* * Callback for the timer * * This is the callback that the timer is calling in order to check if messages are there. * */ gboolean _tray_change_icon(gpointer data) { if (shutting_down) { return false; } unread_messages = wins_get_total_unread(); if (unread_messages) { gtk_status_icon_set_from_file(prof_tray, icon_msg_filename->str); } else { gtk_status_icon_set_from_file(prof_tray, icon_filename->str); } return true; }
gint ui_unread(void) { return wins_get_total_unread(); }