void nautilus_notebook_sync_loading (NautilusNotebook *notebook, NautilusWindowSlot *slot) { GtkWidget *tab_label, *spinner, *icon; g_return_if_fail (NAUTILUS_IS_NOTEBOOK (notebook)); g_return_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot)); tab_label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (notebook), slot->content_box); g_return_if_fail (GTK_IS_WIDGET (tab_label)); spinner = GTK_WIDGET (g_object_get_data (G_OBJECT (tab_label), "spinner")); icon = GTK_WIDGET (g_object_get_data (G_OBJECT (tab_label), "icon")); g_return_if_fail (spinner != NULL && icon != NULL); if (ephy_spinner_get_spinning (EPHY_SPINNER (spinner)) == slot->allow_stop) { return; } if (slot->allow_stop) { gtk_widget_hide (icon); gtk_widget_show (spinner); ephy_spinner_start (EPHY_SPINNER (spinner)); } else { ephy_spinner_stop (EPHY_SPINNER (spinner)); gtk_widget_hide (spinner); gtk_widget_show (icon); } }
static void new_chatroom_dialog_listing_cb (EmpathyTpRoomlist *room_list, gpointer unused, EmpathyNewChatroomDialog *dialog) { gboolean listing; listing = empathy_tp_roomlist_is_listing (room_list); /* Update the throbber */ if (listing) { ephy_spinner_start (EPHY_SPINNER (dialog->throbber)); } else { ephy_spinner_stop (EPHY_SPINNER (dialog->throbber)); } /* Update the refresh toggle button */ g_signal_handlers_block_by_func (dialog->togglebutton_refresh, new_chatroom_dialog_togglebutton_refresh_toggled_cb, dialog); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->togglebutton_refresh), listing); g_signal_handlers_unblock_by_func (dialog->togglebutton_refresh, new_chatroom_dialog_togglebutton_refresh_toggled_cb, dialog); }
static void new_chatroom_dialog_listing_cb (EmpathyTpRoomlist *room_list, gpointer unused, EmpathyNewChatroomDialog *dialog) { gboolean listing; listing = empathy_tp_roomlist_is_listing (room_list); /* Update the throbber */ if (listing) { ephy_spinner_start (EPHY_SPINNER (dialog->throbber)); } else { ephy_spinner_stop (EPHY_SPINNER (dialog->throbber)); } }
/* * ephy_spinner_set_timeout: * @spinner: a #EphySpinner * @timeout: time delay between updates to the spinner. * * Sets the timeout delay for spinner updates. **/ void ephy_spinner_set_timeout (EphySpinner *spinner, guint timeout) { EphySpinnerDetails *details = spinner->details; if (timeout != details->timeout) { ephy_spinner_stop (spinner); details->timeout = timeout; if (details->spinning) { ephy_spinner_start (spinner); } } }
static void main_window_update_status (EmpathyMainWindow *window) { gboolean connected, connecting; GList *l; connected = empathy_account_manager_get_accounts_connected (&connecting); /* Update the spinner state */ if (connecting) { ephy_spinner_start (EPHY_SPINNER (window->throbber)); } else { ephy_spinner_stop (EPHY_SPINNER (window->throbber)); } /* Update widgets sensibility */ for (l = window->actions_connected; l; l = l->next) { gtk_action_set_sensitive (l->data, connected); } }
static void new_chatroom_dialog_account_changed_cb (GtkComboBox *combobox, EmpathyNewChatroomDialog *dialog) { EmpathyAccountChooser *account_chooser; McAccount *account; gboolean listing = FALSE; if (dialog->room_list) { g_object_unref (dialog->room_list); } ephy_spinner_stop (EPHY_SPINNER (dialog->throbber)); new_chatroom_dialog_model_clear (dialog); account_chooser = EMPATHY_ACCOUNT_CHOOSER (dialog->account_chooser); account = empathy_account_chooser_get_account (account_chooser); dialog->room_list = empathy_tp_roomlist_new (account); if (dialog->room_list) { g_signal_connect (dialog->room_list, "destroy", G_CALLBACK (new_chatroom_dialog_roomlist_destroy_cb), dialog); g_signal_connect (dialog->room_list, "new-room", G_CALLBACK (new_chatroom_dialog_new_room_cb), dialog); g_signal_connect (dialog->room_list, "notify::is-listing", G_CALLBACK (new_chatroom_dialog_listing_cb), dialog); listing = empathy_tp_roomlist_is_listing (dialog->room_list); if (listing) { ephy_spinner_start (EPHY_SPINNER (dialog->throbber)); } } new_chatroom_dialog_update_widgets (dialog); }
static void new_chatroom_dialog_account_changed_cb (GtkComboBox *combobox, EmpathyNewChatroomDialog *dialog) { EmpathyAccountChooser *account_chooser; gboolean listing = FALSE; gboolean expanded = FALSE; TpConnection *connection; EmpathyDispatcher *dispatcher; GList *classes = NULL; if (dialog->room_list) { g_object_unref (dialog->room_list); dialog->room_list = NULL; } ephy_spinner_stop (EPHY_SPINNER (dialog->throbber)); new_chatroom_dialog_model_clear (dialog); if (dialog->account != NULL) { g_signal_handler_disconnect (dialog->account, dialog->status_changed_id); g_object_unref (dialog->account); } account_chooser = EMPATHY_ACCOUNT_CHOOSER (dialog->account_chooser); dialog->account = empathy_account_chooser_dup_account (account_chooser); connection = empathy_account_chooser_get_connection (account_chooser); if (dialog->account == NULL) goto out; dialog->status_changed_id = g_signal_connect (dialog->account, "status-changed", G_CALLBACK (account_status_changed_cb), dialog); dispatcher = empathy_dispatcher_dup_singleton (); if (connection != NULL) { classes = empathy_dispatcher_find_requestable_channel_classes (dispatcher, connection, TP_IFACE_CHANNEL_TYPE_ROOM_LIST, TP_HANDLE_TYPE_NONE, NULL); } if (classes != NULL) { /* Roomlist channels are supported */ dialog->room_list = empathy_tp_roomlist_new (dialog->account); g_list_free (classes); } else { dialog->room_list = NULL; } g_object_unref (dispatcher); if (dialog->room_list) { g_signal_connect (dialog->room_list, "destroy", G_CALLBACK (new_chatroom_dialog_roomlist_destroy_cb), dialog); g_signal_connect (dialog->room_list, "new-room", G_CALLBACK (new_chatroom_dialog_new_room_cb), dialog); g_signal_connect (dialog->room_list, "notify::is-listing", G_CALLBACK (new_chatroom_dialog_listing_cb), dialog); g_signal_connect (dialog->room_list, "error::start", G_CALLBACK (start_listing_error_cb), dialog); g_signal_connect (dialog->room_list, "error::stop", G_CALLBACK (stop_listing_error_cb), dialog); expanded = gtk_expander_get_expanded (GTK_EXPANDER (dialog->expander_browse)); if (expanded) { gtk_widget_hide (dialog->viewport_error); gtk_widget_set_sensitive (dialog->treeview, TRUE); new_chatroom_dialog_browse_start (dialog); } listing = empathy_tp_roomlist_is_listing (dialog->room_list); if (listing) { ephy_spinner_start (EPHY_SPINNER (dialog->throbber)); } } gtk_widget_set_sensitive (dialog->expander_browse, dialog->room_list != NULL); out: new_chatroom_dialog_update_widgets (dialog); }