/* Create the privkeys UI, and pack it into the vbox */ static void make_privkeys_ui(GtkWidget *vbox) { GtkWidget *fbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *frame; frame = gtk_frame_new(_("My private keys")); gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); fbox = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(fbox), 10); gtk_container_add(GTK_CONTAINER(frame), fbox); hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 0); label = gtk_label_new(_("Key for account:")); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); ui_layout.accountmenu = pidgin_account_option_menu_new(NULL, 1, G_CALLBACK(account_menu_changed_cb), NULL, NULL); gtk_box_pack_start(GTK_BOX(hbox), ui_layout.accountmenu, TRUE, TRUE, 0); /* Make sure we notice if the menu changes because an account has * been added or removed */ purple_signal_connect(purple_accounts_get_handle(), "account-added", ui_layout.accountmenu, PURPLE_CALLBACK(account_menu_added_removed_cb), NULL); purple_signal_connect(purple_accounts_get_handle(), "account-removed", ui_layout.accountmenu, PURPLE_CALLBACK(account_menu_added_removed_cb), NULL); ui_layout.fprint_label = gtk_label_new(""); gtk_label_set_selectable(GTK_LABEL(ui_layout.fprint_label), 1); gtk_box_pack_start(GTK_BOX(fbox), ui_layout.fprint_label, FALSE, FALSE, 0); ui_layout.generate_button = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(ui_layout.generate_button), "clicked", GTK_SIGNAL_FUNC(generate), NULL); label = gtk_label_new(_("Generate")); gtk_container_add(GTK_CONTAINER(ui_layout.generate_button), label); otrg_gtk_ui_update_fingerprint(); gtk_box_pack_start(GTK_BOX(fbox), ui_layout.generate_button, FALSE, FALSE, 0); }
static gboolean plugin_load(PurplePlugin *plugin) { FILE *which_pf; char line[1024]; which_pf= popen("which festival 2>/dev/null","r"); fscanf(which_pf,"%1023s",line); pclose(which_pf); if( *line != '/') return FALSE; char proc[1024]; sprintf(proc, "%s %s", snd((char *)purple_prefs_get_string("/pidgin/sound/method")), line); purple_debug(PURPLE_DEBUG_INFO, "pidgin festival", proc); int errno=0; festival_pf= popen(proc,"w"); if(errno) { pclose(festival_pf); return FALSE; } load_conf(); void *conv_handle = purple_conversations_get_handle(); void *blist_handle = purple_blist_get_handle(); void *accounts_handle = purple_accounts_get_handle(); purple_signal_connect(conv_handle, "received-im-msg", plugin, PURPLE_CALLBACK(im_recv_im), NULL); purple_signal_connect(conv_handle, "received-chat-msg", plugin, PURPLE_CALLBACK(im_recv_im), NULL); purple_signal_connect(conv_handle, "conversation-created", plugin, PURPLE_CALLBACK(chat_created), NULL); purple_signal_connect(blist_handle, "buddy-signed-on", plugin, PURPLE_CALLBACK(buddy_signed_on_cb), NULL); purple_signal_connect(blist_handle, "buddy-signed-off", plugin, PURPLE_CALLBACK(buddy_signed_off_cb), NULL); purple_signal_connect(conv_handle, "chat-buddy-joined", plugin, PURPLE_CALLBACK(chat_buddy_joined_cb), NULL); purple_signal_connect(conv_handle, "chat-buddy-left", plugin, PURPLE_CALLBACK(chat_buddy_left_cb), NULL); /* Buddy List subsystem signals */ purple_signal_connect(blist_handle, "buddy-away", plugin, PURPLE_CALLBACK(buddy_away_cb), NULL); purple_signal_connect(blist_handle, "buddy-back", plugin, PURPLE_CALLBACK(buddy_back_cb), NULL); purple_signal_connect(blist_handle, "buddy-idle", plugin, PURPLE_CALLBACK(buddy_idle_cb), NULL); purple_signal_connect(blist_handle, "buddy-unidle", plugin, PURPLE_CALLBACK(buddy_unidle_cb), NULL); purple_signal_connect(accounts_handle, "account-connecting", plugin, PURPLE_CALLBACK(account_connecting_cb), NULL); return TRUE; }
void purple_prpl_change_account_status(PurpleAccount *account, PurpleStatus *old_status, PurpleStatus *new_status) { g_return_if_fail(account != NULL); g_return_if_fail(new_status != NULL); g_return_if_fail(!purple_status_is_exclusive(new_status) || old_status != NULL); purple_signal_emit(purple_accounts_get_handle(), "account-status-changing", account, old_status, new_status); do_prpl_change_account_status(account, old_status, new_status); purple_signal_emit(purple_accounts_get_handle(), "account-status-changed", account, old_status, new_status); }
*/JNIEXPORT void JNICALL Java_im_pidgin_jpurple_account_PurpleAccountManager_register_1native( JNIEnv *env, jobject obj) { setJavaObject(&accountList, env, obj); purple_accounts_set_ui_ops(&uiOps); purple_signal_connect(purple_accounts_get_handle(), "account-added", &accountList, PURPLE_CALLBACK(account_added_callback), NULL); purple_signal_connect(purple_accounts_get_handle(), "account-removed", &accountList, PURPLE_CALLBACK(account_removed_callback), NULL); purple_signal_connect(purple_accounts_get_handle(), "account-disabled", &accountList, PURPLE_CALLBACK(account_abled_callback), NULL); purple_signal_connect(purple_accounts_get_handle(), "account-enabled", &accountList, PURPLE_CALLBACK(account_abled_callback), NULL); }
void purple_prpl_got_account_actions(PurpleAccount *account) { g_return_if_fail(account != NULL); g_return_if_fail(purple_account_is_connected(account)); purple_signal_emit(purple_accounts_get_handle(), "account-actions-changed", account); }
void pidgin_connection_init(void) { auto_reconns = g_hash_table_new_full( g_direct_hash, g_direct_equal, NULL, free_auto_recon); purple_signal_connect(purple_accounts_get_handle(), "account-removed", pidgin_connection_get_handle(), PURPLE_CALLBACK(account_removed_cb), NULL); }
static gboolean plugin_load(PurplePlugin *plugin) { purple_signal_connect(purple_connections_get_handle(), "signed-on", plugin, PURPLE_CALLBACK(online), NULL); purple_signal_connect(purple_connections_get_handle(), "signing-off", plugin, PURPLE_CALLBACK(signoff), NULL); purple_signal_connect(purple_accounts_get_handle(), "account-status-changed", plugin, PURPLE_CALLBACK(status_changed), NULL); under_recursion = TRUE; return TRUE; }
void gaym_fetch_thumbnail_cb(PurpleUtilFetchUrlData *url_data, void *user_data, const gchar *pic_data, gsize len, const gchar* error_message) { if (!user_data) return; struct gaym_fetch_thumbnail_data *d = user_data; if (!pic_data) { return; } if (!d->gc) return; if (len && !g_strrstr_len(pic_data, len, "Server Error")) { purple_debug_misc("gaym","Setting buddy icon for %s\n",d->who); //if(len<1024) // len=1024; void* new_pic_data=NULL; purple_debug_misc("gaym","Short icon file, padding to 1024\n"); new_pic_data=g_malloc0(len); memcpy(new_pic_data, pic_data, len); purple_buddy_icon_new(d->gc->account, d->who, (void*)new_pic_data, len, NULL); //g_free(new_pic_data); //PurpleBuddyIcon *icon=purple_buddy_icons_find(d->gc->account,d->who, NULL); //guint len; //const guchar* data=purple_buddy_icon_get_data(icon, &len); } if (PURPLE_CONNECTION_IS_VALID(d->gc) && len) { purple_signal_emit(purple_accounts_get_handle(), "info-updated", d->gc->account, d->who); /* if (purple_find_conversation_with_account(d->who, d->gc->account)) { purple_debug_misc("fetch_thumbnail_cb","setting buddy icon\n"); purple_buddy_icons_set_for_user(purple_connection_get_account (d->gc), d->who, (void *) pic_data, len); }*/ } else { purple_debug_error("gaym", "Fetching buddy icon failed.\n"); } g_free(d->who); g_free(d); purple_debug_misc("gaym","Finished buddy icon set callback\n"); }
static gboolean plugin_unload(PurplePlugin *plugin) { purple_signal_disconnect(purple_connections_get_handle(), "signed-on", plugin, PURPLE_CALLBACK(online)); purple_signal_disconnect(purple_connections_get_handle(), "signing-off", plugin, PURPLE_CALLBACK(signoff)); purple_signal_disconnect(purple_accounts_get_handle(), "account-status-changed", plugin, PURPLE_CALLBACK(status_changed)); if(timeoutint > 0) { g_source_remove(timeoutint); timeoutint = 0; } return TRUE; }
// signals directorys: http://developer.pidgin.im/doxygen/2.7.11/html/pages.html void testRegisterLoginHandler(PurplePlugin* plugin) { purple_signal_connect(purple_accounts_get_handle(), "account-signed-on", plugin, PURPLE_CALLBACK(on_signOn), NULL); purple_signal_connect(purple_accounts_get_handle(), "account-signed-off", plugin, PURPLE_CALLBACK(on_signOff), NULL); }
void _purple_connection_new(PurpleAccount *account, gboolean regist, const char *password) { PurpleConnection *gc; PurplePlugin *prpl; PurplePluginProtocolInfo *prpl_info; g_return_if_fail(account != NULL); if (!purple_account_is_disconnected(account)) return; prpl = purple_find_prpl(purple_account_get_protocol_id(account)); if (prpl != NULL) prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); else { gchar *message; message = g_strdup_printf(_("Missing protocol plugin for %s"), purple_account_get_username(account)); purple_notify_error(NULL, regist ? _("Registration Error") : _("Connection Error"), message, NULL); g_free(message); return; } if (regist) { if (prpl_info->register_user == NULL) return; } else { if (((password == NULL) || (*password == '\0')) && !(prpl_info->options & OPT_PROTO_NO_PASSWORD) && !(prpl_info->options & OPT_PROTO_PASSWORD_OPTIONAL)) { purple_debug_error("connection", "Cannot connect to account %s without " "a password.\n", purple_account_get_username(account)); return; } } gc = g_new0(PurpleConnection, 1); PURPLE_DBUS_REGISTER_POINTER(gc, PurpleConnection); gc->prpl = prpl; if ((password != NULL) && (*password != '\0')) gc->password = g_strdup(password); purple_connection_set_account(gc, account); purple_connection_set_state(gc, PURPLE_CONNECTING); connections = g_list_append(connections, gc); purple_account_set_connection(account, gc); purple_signal_emit(purple_connections_get_handle(), "signing-on", gc); if (regist) { purple_debug_info("connection", "Registering. gc = %p\n", gc); /* set this so we don't auto-reconnect after registering */ gc->wants_to_die = TRUE; prpl_info->register_user(account); } else { purple_debug_info("connection", "Connecting. gc = %p\n", gc); purple_signal_emit(purple_accounts_get_handle(), "account-connecting", account); prpl_info->login(account); } }
/************************************************************************** * Plugin stuff **************************************************************************/ static gboolean plugin_load(PurplePlugin *plugin) { void *core_handle = purple_get_core(); void *acc_handle = purple_accounts_get_handle(); void *blist_handle = purple_blist_get_handle(); void *conn_handle = purple_connections_get_handle(); void *conv_handle = purple_conversations_get_handle(); void *ft_handle = purple_xfers_get_handle(); void *notify_handle = purple_notify_get_handle(); //gntp_register(NULL); connected = 0; registered = 0; connect_to_dll(); _getcwd(DefaultIcon, _MAX_PATH); strcat(DefaultIcon, "/pixmaps/pidgin/growl_icon.png"); if(!registered) { if(growl_register) { growl_register(SERVER_IP, PLUGIN_NAME, (const char **const)notifications, 12, 0, DefaultIcon); registered = 1; } } /* Account subsystem signals */ purple_signal_connect(acc_handle, "account-status-changed", plugin, PURPLE_CALLBACK(account_status_changed_cb), NULL); /* Buddy List subsystem signals */ purple_signal_connect(blist_handle, "buddy-status-changed", plugin, PURPLE_CALLBACK(buddy_status_changed_cb), NULL); purple_signal_connect(blist_handle, "buddy-signed-on", plugin, PURPLE_CALLBACK(buddy_signed_on_cb), NULL); purple_signal_connect(blist_handle, "buddy-signed-off", plugin, PURPLE_CALLBACK(buddy_signed_off_cb), NULL); purple_signal_connect(blist_handle, "buddy-icon-changed", plugin, PURPLE_CALLBACK(buddy_icon_changed_cb), NULL); /* Connection subsystem signals */ purple_signal_connect(conn_handle, "signed-on", plugin, PURPLE_CALLBACK(signed_on_cb), NULL); purple_signal_connect(conn_handle, "signed-off", plugin, PURPLE_CALLBACK(signed_off_cb), NULL); purple_signal_connect(conn_handle, "connection-error", plugin, PURPLE_CALLBACK(connection_error_cb), NULL); /* Conversations subsystem signals */ purple_signal_connect(conv_handle, "wrote-im-msg", plugin, PURPLE_CALLBACK(wrote_im_msg_cb), NULL); purple_signal_connect(conv_handle, "sent-im-msg", plugin, PURPLE_CALLBACK(sent_im_msg_cb), NULL); purple_signal_connect(conv_handle, "received-im-msg", plugin, PURPLE_CALLBACK(received_im_msg_cb), NULL); purple_signal_connect(conv_handle, "wrote-chat-msg", plugin, PURPLE_CALLBACK(wrote_chat_msg_cb), NULL); purple_signal_connect(conv_handle, "sent-chat-msg", plugin, PURPLE_CALLBACK(sent_chat_msg_cb), NULL); purple_signal_connect(conv_handle, "received-chat-msg", plugin, PURPLE_CALLBACK(received_chat_msg_cb), NULL); purple_signal_connect(conv_handle, "conversation-created", plugin, PURPLE_CALLBACK(conversation_created_cb), NULL); purple_signal_connect(conv_handle, "chat-buddy-joined", plugin, PURPLE_CALLBACK(chat_buddy_joined_cb), NULL); purple_signal_connect(conv_handle, "chat-buddy-flags", plugin, PURPLE_CALLBACK(chat_buddy_flags_cb), NULL); purple_signal_connect(conv_handle, "chat-buddy-left", plugin, PURPLE_CALLBACK(chat_buddy_left_cb), NULL); purple_signal_connect(conv_handle, "chat-invited-user", plugin, PURPLE_CALLBACK(chat_invited_user_cb), NULL); purple_signal_connect(conv_handle, "chat-invited", plugin, PURPLE_CALLBACK(chat_invited_cb), NULL); purple_signal_connect(conv_handle, "chat-joined", plugin, PURPLE_CALLBACK(chat_joined_cb), NULL); purple_signal_connect(conv_handle, "chat-left", plugin, PURPLE_CALLBACK(chat_left_cb), NULL); purple_signal_connect(conv_handle, "chat-topic-changed", plugin, PURPLE_CALLBACK(chat_topic_changed_cb), NULL); /* Core signals */ purple_signal_connect(core_handle, "quitting", plugin, PURPLE_CALLBACK(quitting_cb), NULL); /* File transfer signals */ purple_signal_connect(ft_handle, "file-recv-accept", plugin, PURPLE_CALLBACK(ft_recv_accept_cb), NULL); purple_signal_connect(ft_handle, "file-recv-start", plugin, PURPLE_CALLBACK(ft_recv_start_cb), NULL); purple_signal_connect(ft_handle, "file-recv-cancel", plugin, PURPLE_CALLBACK(ft_recv_cancel_cb), NULL); purple_signal_connect(ft_handle, "file-recv-complete", plugin, PURPLE_CALLBACK(ft_recv_complete_cb), NULL); purple_signal_connect(ft_handle, "file-send-accept", plugin, PURPLE_CALLBACK(ft_send_accept_cb), NULL); purple_signal_connect(ft_handle, "file-send-start", plugin, PURPLE_CALLBACK(ft_send_start_cb), NULL); purple_signal_connect(ft_handle, "file-send-cancel", plugin, PURPLE_CALLBACK(ft_send_cancel_cb), NULL); purple_signal_connect(ft_handle, "file-send-complete", plugin, PURPLE_CALLBACK(ft_send_complete_cb), NULL); /* Notify signals */ purple_signal_connect(notify_handle, "displaying-email-notification", plugin, PURPLE_CALLBACK(notify_email_cb), NULL); purple_signal_connect(notify_handle, "displaying-emails-notification", plugin, PURPLE_CALLBACK(notify_emails_cb), NULL); return TRUE; }