static void key_index_combo_changed_cb (GtkWidget *combo, WirelessSecurity *parent) { WirelessSecurityWEPKey *sec = (WirelessSecurityWEPKey *) parent; GtkWidget *entry; const char *key; int key_index; /* Save WEP key for old key index */ entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_entry")); key = gtk_entry_get_text (GTK_ENTRY (entry)); if (key) g_strlcpy (sec->keys[sec->cur_index], key, sizeof (sec->keys[sec->cur_index])); else memset (sec->keys[sec->cur_index], 0, sizeof (sec->keys[sec->cur_index])); key_index = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); g_return_if_fail (key_index <= 3); g_return_if_fail (key_index >= 0); /* Populate entry with key from new index */ gtk_entry_set_text (GTK_ENTRY (entry), sec->keys[key_index]); sec->cur_index = key_index; wireless_security_changed_cb (combo, parent); }
static void security_combo_changed (GtkWidget *combo, gpointer user_data) { NMAWirelessDialog *self = NMA_WIRELESS_DIALOG (user_data); NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self); GtkWidget *vbox; GList *elt, *children; GtkTreeIter iter; GtkTreeModel *model; WirelessSecurity *sec = NULL; GtkWidget *sec_widget; vbox = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")); g_assert (vbox); size_group_clear (priv->group); /* Remove any previous wireless security widgets */ children = gtk_container_get_children (GTK_CONTAINER (vbox)); for (elt = children; elt; elt = g_list_next (elt)) gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { g_warning ("%s: no active security combo box item.", __func__); return; } gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); if (!sec) return; sec_widget = wireless_security_get_widget (sec); g_assert (sec_widget); size_group_add_permanent (priv->group, priv->builder); wireless_security_add_to_size_group (sec, priv->group); if (gtk_widget_get_parent (sec_widget)) gtk_widget_reparent (sec_widget, vbox); else gtk_container_add (GTK_CONTAINER (vbox), sec_widget); wireless_security_unref (sec); /* Re-validate */ wireless_security_changed_cb (NULL, sec); }
void ws_802_1x_auth_combo_changed (GtkWidget *combo, WirelessSecurity *sec, const char *vbox_name, GtkSizeGroup *size_group) { GtkWidget *vbox; EAPMethod *eap = NULL; GList *elt, *children; GtkTreeModel *model; GtkTreeIter iter; GtkWidget *eap_widget; GtkWidget *eap_default_widget = NULL; vbox = GTK_WIDGET (gtk_builder_get_object (sec->builder, vbox_name)); g_assert (vbox); /* Remove any previous wireless security widgets */ children = gtk_container_get_children (GTK_CONTAINER (vbox)); for (elt = children; elt; elt = g_list_next (elt)) gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter); gtk_tree_model_get (model, &iter, AUTH_METHOD_COLUMN, &eap, -1); g_assert (eap); eap_widget = eap_method_get_widget (eap); g_assert (eap_widget); gtk_widget_unparent (eap_widget); if (size_group) eap_method_add_to_size_group (eap, size_group); gtk_container_add (GTK_CONTAINER (vbox), eap_widget); /* Refocus the EAP method's default widget */ if (eap->default_field) { eap_default_widget = GTK_WIDGET (gtk_builder_get_object (eap->builder, eap->default_field)); if (eap_default_widget) gtk_widget_grab_focus (eap_default_widget); } eap_method_unref (eap); wireless_security_changed_cb (combo, WIRELESS_SECURITY (sec)); }
static void inner_auth_combo_changed_cb (GtkWidget *combo, gpointer user_data) { EAPMethod *parent = (EAPMethod *) user_data; EAPMethodTTLS *method = (EAPMethodTTLS *) parent; GtkWidget *vbox; EAPMethod *eap = NULL; GList *elt, *children; GtkTreeModel *model; GtkTreeIter iter; GtkWidget *eap_widget; vbox = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_inner_auth_vbox")); g_assert (vbox); /* Remove any previous wireless security widgets */ children = gtk_container_get_children (GTK_CONTAINER (vbox)); for (elt = children; elt; elt = g_list_next (elt)) gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data)); g_list_free (children); model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter); gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1); g_assert (eap); eap_widget = eap_method_get_widget (eap); g_assert (eap_widget); gtk_widget_unparent (eap_widget); if (method->size_group) eap_method_add_to_size_group (eap, method->size_group); gtk_container_add (GTK_CONTAINER (vbox), eap_widget); eap_method_unref (eap); wireless_security_changed_cb (combo, method->sec_parent); }