static void update_launcher() { guint count = 0; GList *convs = NULL; g_return_if_fail(launcher != NULL); if (launcher_count == LAUNCHER_COUNT_DISABLE) return; if (launcher_count == LAUNCHER_COUNT_MESSAGES) { for (convs = purple_conversations_get_all(); convs != NULL; convs = convs->next) { PurpleConversation *conv = convs->data; count += GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv), "unity-message-count")); } } else { count = n_sources; } if (launcher != NULL) { if (count > 0) unity_launcher_entry_set_count_visible(launcher, TRUE); else unity_launcher_entry_set_count_visible(launcher, FALSE); unity_launcher_entry_set_count(launcher, count); } }
static gboolean plugin_load(PurplePlugin *plugin, GError **error) { GList *convs = purple_conversations_get_all(); void *gtk_conv_handle = pidgin_conversations_get_handle(); purple_signal_connect(gtk_conv_handle, "conversation-displayed", plugin, PURPLE_CALLBACK(conversation_displayed_cb), NULL); /* purple_signal_connect(gtk_conv_handle, "conversation-hiding", plugin, PURPLE_CALLBACK(conversation_hiding_cb), NULL); */ while (convs) { PurpleConversation *conv = (PurpleConversation *)convs->data; /* Setup Send button */ if (PIDGIN_IS_PIDGIN_CONVERSATION(conv)) { create_send_button_pidgin(PIDGIN_CONVERSATION(conv)); } convs = convs->next; } return TRUE; }
static void url_fetched(PurpleHttpConnection *http_conn, PurpleHttpResponse *response, gpointer _data) { CbInfo *data = (CbInfo *)_data; PurpleConversation *conv = data->conv; GList *convs = purple_conversations_get_all(); const gchar *url; if (purple_http_response_is_successful(response)) { url = purple_http_response_get_data(response, NULL); g_hash_table_insert(tinyurl_cache, data->original_url, g_strdup(url)); } else { url = _("Error while querying TinyURL"); g_free(data->original_url); } /* ensure the conversation still exists */ for (; convs; convs = convs->next) { if ((PurpleConversation *)(convs->data) == conv) { FinchConv *fconv = FINCH_CONV(conv); gchar *str = g_strdup_printf("[%d] %s", data->num, url); GntTextView *tv = GNT_TEXT_VIEW(fconv->tv); gnt_text_view_tag_change(tv, data->tag, str, FALSE); g_free(str); g_free(data->tag); g_free(data); return; } } g_free(data->tag); g_free(data); purple_debug_info("TinyURL", "Conversation no longer exists... :(\n"); }
static gboolean plugin_load(PurplePlugin *plugin, GError **error) { GList *convs = purple_conversations_get_all(); PurpleSavedStatus *saved_status; void *conv_handle = purple_conversations_get_handle(); void *gtk_conv_handle = pidgin_conversations_get_handle(); void *savedstat_handle = purple_savedstatuses_get_handle(); purple_prefs_add_none("/plugins/gtk"); purple_prefs_add_none("/plugins/gtk/unity"); purple_prefs_add_int("/plugins/gtk/unity/launcher_count", LAUNCHER_COUNT_SOURCES); purple_prefs_add_int("/plugins/gtk/unity/messaging_menu_text", MESSAGING_MENU_COUNT); purple_prefs_add_bool("/plugins/gtk/unity/alert_chat_nick", TRUE); alert_chat_nick = purple_prefs_get_bool("/plugins/gtk/unity/alert_chat_nick"); mmapp = messaging_menu_app_new("pidgin.desktop"); g_object_ref(mmapp); messaging_menu_app_register(mmapp); messaging_menu_text = purple_prefs_get_int("/plugins/gtk/unity/messaging_menu_text"); g_signal_connect(mmapp, "activate-source", G_CALLBACK(message_source_activated), NULL); g_signal_connect(mmapp, "status-changed", G_CALLBACK(messaging_menu_status_changed), NULL); saved_status = purple_savedstatus_get_current(); status_changed_cb(saved_status); purple_signal_connect(savedstat_handle, "savedstatus-changed", plugin, PURPLE_CALLBACK(status_changed_cb), NULL); launcher = unity_launcher_entry_get_for_desktop_id("pidgin.desktop"); g_object_ref(launcher); launcher_count = purple_prefs_get_int("/plugins/gtk/unity/launcher_count"); purple_signal_connect(gtk_conv_handle, "displayed-im-msg", plugin, PURPLE_CALLBACK(message_displayed_cb), NULL); purple_signal_connect(gtk_conv_handle, "displayed-chat-msg", plugin, PURPLE_CALLBACK(message_displayed_cb), NULL); purple_signal_connect(conv_handle, "sent-im-msg", plugin, PURPLE_CALLBACK(im_sent_im), NULL); purple_signal_connect(conv_handle, "sent-chat-msg", plugin, PURPLE_CALLBACK(chat_sent_im), NULL); purple_signal_connect(conv_handle, "conversation-created", plugin, PURPLE_CALLBACK(conv_created), NULL); purple_signal_connect(conv_handle, "deleting-conversation", plugin, PURPLE_CALLBACK(deleting_conv), NULL); while (convs) { PurpleConversation *conv = (PurpleConversation *)convs->data; attach_signals(conv); convs = convs->next; } return TRUE; }
static void refill_messaging_menu() { GList *convs; for (convs = purple_conversations_get_all(); convs != NULL; convs = convs->next) { PurpleConversation *conv = convs->data; messaging_menu_add_conversation(conv, GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv), "unity-message-count"))); } }
static gboolean plugin_unload(PurplePlugin *plugin) { GList *convs = purple_conversations_get_all(); while (convs) { PurpleConversation *conv = (PurpleConversation *)convs->data; /* kill signals */ detach_signals(conv); convs = convs->next; } return TRUE; }
static void apply_notify() { GList *convs = purple_conversations_get_all(); while (convs) { PurpleConversation *conv = (PurpleConversation *)convs->data; /* detach signals */ detach_signals(conv); /* reattach appropriate signals */ attach_signals(conv); convs = convs->next; } }
static void apply_method() { GList *convs; for (convs = purple_conversations_get_all(); convs != NULL; convs = convs->next) { PurpleConversation *conv = (PurpleConversation *)convs->data; /* remove notifications */ unnotify(conv, FALSE); if (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv), "notify-message-count")) != 0) /* reattach appropriate notifications */ notify(conv, FALSE); } }
static gboolean plugin_unload(PurplePlugin *plugin, GError **error) { GList *convs = purple_conversations_get_all(); while (convs) { PurpleConversation *conv = (PurpleConversation *)convs->data; /* Remove Send button */ if (PIDGIN_IS_PIDGIN_CONVERSATION(conv)) { remove_send_button_pidgin(PIDGIN_CONVERSATION(conv)); } convs = convs->next; } return TRUE; }
static gboolean plugin_unload(PurplePlugin *plugin, GError **error) { GList *convs = purple_conversations_get_all(); while (convs) { PurpleConversation *conv = (PurpleConversation *)convs->data; unalert(conv); detach_signals(conv); convs = convs->next; } unity_launcher_entry_set_count_visible(launcher, FALSE); messaging_menu_app_unregister(mmapp); g_object_unref(launcher); g_object_unref(mmapp); return TRUE; }
static gboolean plugin_load(PurplePlugin *plugin, GError **error) { void *conv_list_handle; GList *l; PURPLE_DBUS_RETURN_FALSE_IF_DISABLED(plugin); purple_prefs_add_none("/plugins/gtk/musicmessaging"); purple_prefs_add_string("/plugins/gtk/musicmessaging/editor_path", "/usr/bin/gscore"); /* First, we have to register our four exported functions with the main purple dbus loop. Without this statement, the purple dbus code wouldn't know about our functions. */ PURPLE_DBUS_REGISTER_BINDINGS(plugin); /* Keep the plugin for reference (needed for notify's) */ plugin_pointer = plugin; /* Add the button to all the current conversations */ for (l = purple_conversations_get_all(); l != NULL; l = l->next) init_conversation((PurpleConversation *)l->data); /* Listen for any new conversations */ conv_list_handle = purple_conversations_get_handle(); purple_signal_connect(conv_list_handle, "conversation-created", plugin, PURPLE_CALLBACK(init_conversation), NULL); /* Listen for conversations that are ending */ purple_signal_connect(conv_list_handle, "deleting-conversation", plugin, PURPLE_CALLBACK(conv_destroyed), NULL); /* Listen for sending/receiving messages to replace tags */ purple_signal_connect(conv_list_handle, "sending-im-msg", plugin, PURPLE_CALLBACK(intercept_sent), NULL); purple_signal_connect(conv_list_handle, "receiving-im-msg", plugin, PURPLE_CALLBACK(intercept_received), NULL); return TRUE; }
static gboolean plugin_load(PurplePlugin *plugin) { GList *convs = purple_conversations_get_all(); void *conv_handle = purple_conversations_get_handle(); void *gtk_conv_handle = pidgin_conversations_get_handle(); my_plugin = plugin; purple_signal_connect(gtk_conv_handle, "displayed-im-msg", plugin, PURPLE_CALLBACK(message_displayed_cb), NULL); purple_signal_connect(gtk_conv_handle, "displayed-chat-msg", plugin, PURPLE_CALLBACK(message_displayed_cb), NULL); purple_signal_connect(gtk_conv_handle, "conversation-switched", plugin, PURPLE_CALLBACK(conv_switched), NULL); purple_signal_connect(conv_handle, "sent-im-msg", plugin, PURPLE_CALLBACK(im_sent_im), NULL); purple_signal_connect(conv_handle, "sent-chat-msg", plugin, PURPLE_CALLBACK(chat_sent_im), NULL); purple_signal_connect(conv_handle, "conversation-created", plugin, PURPLE_CALLBACK(conv_created), NULL); purple_signal_connect(conv_handle, "deleting-conversation", plugin, PURPLE_CALLBACK(deleting_conv), NULL); #if 0 purple_signal_connect(gtk_conv_handle, "conversation-dragging", plugin, PURPLE_CALLBACK(conversation_dragging), NULL); #endif while (convs) { PurpleConversation *conv = (PurpleConversation *)convs->data; /* attach signals */ attach_signals(conv); convs = convs->next; } return TRUE; }