static gint delete_win_cb(GtkWidget *w, GdkEventAny *e, gpointer d) { PidginRoomlistDialog *dialog = d; if (dialog->roomlist && purple_roomlist_get_in_progress(dialog->roomlist)) purple_roomlist_cancel_get_list(dialog->roomlist); if (dialog->pg_update_to > 0) purple_timeout_remove(dialog->pg_update_to); if (dialog->roomlist) { PidginRoomlist *rl = dialog->roomlist->ui_data; if (dialog->pg_update_to > 0) /* yes, that's right, unref it twice. */ purple_roomlist_unref(dialog->roomlist); if (rl) rl->dialog = NULL; purple_roomlist_unref(dialog->roomlist); } dialog->progress = NULL; g_free(dialog); return FALSE; }
static void stop_button_cb(GtkButton *button, PidginRoomlistDialog *dialog) { purple_roomlist_cancel_get_list(dialog->roomlist); if (dialog->account_widget) gtk_widget_set_sensitive(dialog->account_widget, TRUE); gtk_widget_set_sensitive(dialog->stop_button, FALSE); gtk_widget_set_sensitive(dialog->list_button, TRUE); gtk_widget_set_sensitive(dialog->add_button, FALSE); gtk_widget_set_sensitive(dialog->join_button, FALSE); }
static void roomlist_account_changed(GntWidget *widget, gpointer old, gpointer current, gpointer null) { if (froomlist.account == current) { return; } froomlist.account = current; if (froomlist.roomlist) { if (purple_roomlist_get_in_progress(froomlist.roomlist)) purple_roomlist_cancel_get_list(froomlist.roomlist); update_roomlist(NULL); } gnt_tree_remove_all(GNT_TREE(froomlist.tree)); gnt_widget_draw(froomlist.tree); }
static void fl_stop(GntWidget *button, gpointer null) { if (froomlist.roomlist && purple_roomlist_get_in_progress(froomlist.roomlist)) purple_roomlist_cancel_get_list(froomlist.roomlist); }