void applet_mobile_pin_dialog_start_spinner (GtkWidget *dialog, const char *text) { GladeXML *xml; GtkWidget *spinner, *widget, *hbox, *align; g_return_if_fail (dialog != NULL); g_return_if_fail (text != NULL); xml = g_object_get_data (G_OBJECT (dialog), "xml"); g_return_if_fail (xml != NULL); spinner = nma_bling_spinner_new (); g_return_if_fail (spinner != NULL); g_object_set_data (G_OBJECT (dialog), "spinner", spinner); align = glade_xml_get_widget (xml, "spinner_alignment"); gtk_container_add (GTK_CONTAINER (align), spinner); nma_bling_spinner_start (NMA_BLING_SPINNER (spinner)); widget = glade_xml_get_widget (xml, "progress_label"); gtk_label_set_text (GTK_LABEL (widget), text); gtk_widget_show (widget); hbox = glade_xml_get_widget (xml, "progress_hbox"); gtk_widget_show_all (hbox); /* Desensitize everything while spinning */ widget = glade_xml_get_widget (xml, "code1_entry"); gtk_widget_set_sensitive (widget, FALSE); widget = glade_xml_get_widget (xml, "code2_entry"); gtk_widget_set_sensitive (widget, FALSE); widget = glade_xml_get_widget (xml, "code3_entry"); gtk_widget_set_sensitive (widget, FALSE); widget = glade_xml_get_widget (xml, "unlock_button"); gtk_widget_set_sensitive (widget, FALSE); widget = glade_xml_get_widget (xml, "unlock_cancel_button"); gtk_widget_set_sensitive (widget, FALSE); }
static void dun_start (PluginInfo *info) { GError *error = NULL; GtkTreeIter iter; g_message ("%s: starting DUN device discovery...", __func__); /* Set up dbus */ info->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); if (error || !info->bus) { dun_error (info, __func__, error, _("could not connect to the system bus.")); g_clear_error (&error); goto out; } gtk_label_set_text (GTK_LABEL (info->label), _("Detecting phone configuration...")); /* Start the spinner */ if (!info->spinner) { info->spinner = nma_bling_spinner_new (); gtk_box_pack_start (GTK_BOX (info->hbox), info->spinner, FALSE, FALSE, 6); } nma_bling_spinner_start (BMA_BLING_SPINNER (info->spinner)); gtk_widget_show_all (info->hbox); gtk_widget_set_sensitive (info->dun_button, FALSE); /* ModemManager stuff */ info->mm_proxy = dbus_g_proxy_new_for_name (info->bus, MM_SERVICE, MM_PATH, MM_INTERFACE); g_assert (info->mm_proxy); dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__BOXED, G_TYPE_NONE, G_TYPE_BOXED, G_TYPE_INVALID); dbus_g_proxy_add_signal (info->mm_proxy, "DeviceAdded", DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); dbus_g_proxy_connect_signal (info->mm_proxy, "DeviceAdded", G_CALLBACK (modem_added), info, NULL); dbus_g_proxy_add_signal (info->mm_proxy, "DeviceRemoved", DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); dbus_g_proxy_connect_signal (info->mm_proxy, "DeviceRemoved", G_CALLBACK (modem_removed), info, NULL); /* Get the device we're looking for */ info->dun_proxy = NULL; if (get_device_iter (info->btmodel, info->bdaddr, &iter)) gtk_tree_model_get (info->btmodel, &iter, BLUETOOTH_COLUMN_PROXY, &info->dun_proxy, -1); if (info->dun_proxy) { info->dun_timeout_id = g_timeout_add_seconds (45, dun_timeout_cb, info); dbus_g_proxy_set_interface (info->dun_proxy, BLUEZ_SERIAL_INTERFACE); g_message ("%s: calling Connect...", __func__); /* Watch for BT device property changes */ dbus_g_object_register_marshaller (nma_marshal_VOID__STRING_BOXED, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID); dbus_g_proxy_add_signal (info->dun_proxy, "PropertyChanged", G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID); dbus_g_proxy_connect_signal (info->dun_proxy, "PropertyChanged", G_CALLBACK (dun_property_changed), info, NULL); /* Request a connection to the device and get the port */ dbus_g_proxy_begin_call_with_timeout (info->dun_proxy, "Connect", dun_connect_cb, info, NULL, 20000, G_TYPE_STRING, "dun", G_TYPE_INVALID); } else dun_error (info, __func__, error, _("could not find the Bluetooth device.")); out: g_message ("%s: finished", __func__); }