static void mode_widget_changed (GObject *object, GParamSpec *pspec, gpointer user_data) { NmtPageBond *bond = NMT_PAGE_BOND (user_data); NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); const char *mode; if (priv->updating) return; mode = nmt_newt_popup_get_active_id (priv->mode); priv->updating = TRUE; nm_setting_bond_add_option (priv->s_bond, NM_SETTING_BOND_OPTION_MODE, mode); priv->updating = FALSE; if (!strcmp (mode, "balance-tlb") || !strcmp (mode, "balance-alb")) { nmt_newt_popup_set_active (priv->monitoring, NMT_PAGE_BOND_MONITORING_MII); nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->monitoring), FALSE); } else nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->monitoring), TRUE); if (!strcmp (mode, "active-backup")) { nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->primary), TRUE); nm_setting_bond_add_option (priv->s_bond, NM_SETTING_BOND_OPTION_PRIMARY, nmt_newt_entry_get_text (priv->primary)); } else { nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->primary), FALSE); nm_setting_bond_remove_option (priv->s_bond, NM_SETTING_BOND_OPTION_PRIMARY); } }
static void nmt_newt_popup_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { NmtNewtPopup *popup = NMT_NEWT_POPUP (object); switch (prop_id) { case PROP_ACTIVE: g_value_set_uint (value, nmt_newt_popup_get_active (popup)); break; case PROP_ACTIVE_ID: g_value_set_string (value, nmt_newt_popup_get_active_id (popup)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }