static void nmt_newt_entry_numeric_constructed (GObject *object) { NmtNewtEntryNumericPrivate *priv = NMT_NEWT_ENTRY_NUMERIC_GET_PRIVATE (object); if (!*nmt_newt_entry_get_text (NMT_NEWT_ENTRY (object))) { char buf[32]; g_snprintf (buf, sizeof (buf), "%d", priv->min); nmt_newt_entry_set_text (NMT_NEWT_ENTRY (object), buf); } G_OBJECT_CLASS (nmt_newt_entry_numeric_parent_class)->constructed (object); }
static void nmt_newt_entry_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { NmtNewtEntry *entry = NMT_NEWT_ENTRY (object); NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); switch (prop_id) { case PROP_TEXT: g_value_set_string (value, nmt_newt_entry_get_text (entry)); break; case PROP_WIDTH: g_value_set_int (value, priv->width); break; case PROP_FLAGS: g_value_set_uint (value, priv->flags); break; case PROP_PASSWORD: g_value_set_boolean (value, (priv->flags & NMT_NEWT_ENTRY_PASSWORD) != 0); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void nmt_newt_entry_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { NmtNewtEntry *entry = NMT_NEWT_ENTRY (object); NmtNewtEntryPrivate *priv = NMT_NEWT_ENTRY_GET_PRIVATE (entry); switch (prop_id) { case PROP_TEXT: nmt_newt_entry_set_text (entry, g_value_get_string (value)); break; case PROP_WIDTH: nmt_newt_entry_set_width (entry, g_value_get_int (value)); break; case PROP_FLAGS: priv->flags = g_value_get_uint (value); nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (entry)); break; case PROP_PASSWORD: if (g_value_get_boolean (value)) priv->flags |= NMT_NEWT_ENTRY_PASSWORD; else priv->flags &= ~NMT_NEWT_ENTRY_PASSWORD; nmt_newt_widget_needs_rebuild (NMT_NEWT_WIDGET (entry)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void nmt_newt_entry_constructed (GObject *object) { nmt_newt_entry_check_valid (NMT_NEWT_ENTRY (object)); G_OBJECT_CLASS (nmt_newt_entry_parent_class)->constructed (object); }
static void nmt_mtu_entry_init (NmtMtuEntry *entry) { NmtMtuEntryPrivate *priv = NMT_MTU_ENTRY_GET_PRIVATE (entry); NmtNewtGrid *grid = NMT_NEWT_GRID (entry); NmtNewtWidget *real_entry, *label; real_entry = nmt_newt_entry_numeric_new (10, 0, 65535); priv->entry = NMT_NEWT_ENTRY (real_entry); label = nmt_newt_label_new (_("bytes")); priv->label = NMT_NEWT_LABEL (label); nmt_newt_grid_add (grid, real_entry, 0, 0); nmt_newt_grid_add (grid, label, 1, 0); nmt_newt_widget_set_padding (label, 1, 0, 0, 0); nmt_newt_entry_set_validator (priv->entry, mtu_validator, entry); g_object_bind_property_full (entry, "mtu", real_entry, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, mtu_transform_to_text, NULL, NULL, NULL); }
static void nmt_password_fields_init (NmtPasswordFields *fields) { NmtPasswordFieldsPrivate *priv = NMT_PASSWORD_FIELDS_GET_PRIVATE (fields); priv->entry = NMT_NEWT_ENTRY (nmt_newt_entry_new (-1, 0)); priv->always_ask = NMT_NEWT_CHECKBOX (nmt_newt_checkbox_new (_("Ask for this password every time"))); priv->show_password = NMT_NEWT_CHECKBOX (nmt_newt_checkbox_new (_("Show password"))); }
static char * nmtui_hostname_run_dialog (void) { NmtNewtForm *form; NmtNewtWidget *widget, *ok, *cancel; NmtNewtGrid *grid; NmtNewtEntry *entry; NmtNewtButtonBox *bbox; char *hostname, *ret = NULL; form = g_object_new (NMT_TYPE_NEWT_FORM, "title", _("Set Hostname"), "escape-exits", TRUE, NULL); widget = nmt_newt_grid_new (); nmt_newt_form_set_content (form, widget); grid = NMT_NEWT_GRID (widget); widget = nmt_newt_label_new (_("Hostname")); nmt_newt_grid_add (grid, widget, 0, 0); widget = nmt_newt_entry_new (40, 0); nmt_newt_widget_set_exit_on_activate (widget, TRUE); nmt_newt_grid_add (grid, widget, 1, 0); nmt_newt_widget_set_padding (widget, 1, 0, 0, 0); entry = NMT_NEWT_ENTRY (widget); widget = nmt_newt_button_box_new (NMT_NEWT_BUTTON_BOX_HORIZONTAL); nmt_newt_grid_add (grid, widget, 1, 1); nmt_newt_widget_set_padding (widget, 0, 1, 0, 0); bbox = NMT_NEWT_BUTTON_BOX (widget); cancel = nmt_newt_button_box_add_end (bbox, _("Cancel")); nmt_newt_widget_set_exit_on_activate (cancel, TRUE); ok = nmt_newt_button_box_add_end (bbox, _("OK")); nmt_newt_widget_set_exit_on_activate (ok, TRUE); g_object_get (G_OBJECT (nm_client), NM_CLIENT_HOSTNAME, &hostname, NULL); nmt_newt_entry_set_text (entry, hostname); g_free (hostname); widget = nmt_newt_form_run_sync (form); if (widget == (NmtNewtWidget *)entry || widget == ok) ret = g_strdup (nmt_newt_entry_get_text (entry)); g_object_unref (form); return ret; }
static void nmt_device_entry_init (NmtDeviceEntry *deventry) { NmtDeviceEntryPrivate *priv = NMT_DEVICE_ENTRY_GET_PRIVATE (deventry); NmtNewtWidget *entry; priv->hardware_type = G_TYPE_NONE; entry = nmt_newt_entry_new (-1, 0); priv->entry = NMT_NEWT_ENTRY (entry); nmt_newt_entry_set_validator (priv->entry, device_entry_validate, deventry); g_signal_connect (priv->entry, "notify::text", G_CALLBACK (entry_text_changed), deventry); #if 0 priv->button = nmt_newt_button_new (_("Select...")); g_signal_connect (priv->button, "clicked", G_CALLBACK (do_select_dialog), deventry); #endif }
static void nmt_page_bond_constructed (GObject *object) { NmtPageBond *bond = NMT_PAGE_BOND (object); NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); NmtEditorSection *section; NmtEditorGrid *grid; NMSettingBond *s_bond; NmtNewtWidget *widget, *label; NMConnection *conn; conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (bond)); s_bond = nm_connection_get_setting_bond (conn); if (!s_bond) { nm_connection_add_setting (conn, nm_setting_bond_new ()); s_bond = nm_connection_get_setting_bond (conn); } priv->s_bond = s_bond; section = nmt_editor_section_new (_("BOND"), NULL, TRUE); grid = nmt_editor_section_get_body (section); widget = nmt_newt_separator_new (); nmt_editor_grid_append (grid, _("Slaves"), widget, NULL); nmt_editor_grid_set_row_flags (grid, widget, NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT); widget = nmt_slave_list_new (conn, bond_connection_type_filter, bond); g_signal_connect (widget, "notify::connections", G_CALLBACK (slaves_changed), bond); nmt_editor_grid_append (grid, NULL, widget, NULL); priv->slaves = NMT_SLAVE_LIST (widget); widget = nmt_newt_popup_new (bond_mode); g_signal_connect (widget, "notify::active-id", G_CALLBACK (mode_widget_changed), bond); nmt_editor_grid_append (grid, _("Mode"), widget, NULL); priv->mode = NMT_NEWT_POPUP (widget); widget = nmt_newt_entry_new (40, 0); g_signal_connect (widget, "notify::text", G_CALLBACK (primary_widget_changed), bond); nmt_editor_grid_append (grid, _("Primary"), widget, NULL); priv->primary = NMT_NEWT_ENTRY (widget); widget = nmt_newt_popup_new (bond_monitoring); g_signal_connect (widget, "notify::active", G_CALLBACK (monitoring_widget_changed), bond); nmt_editor_grid_append (grid, _("Link monitoring"), widget, NULL); priv->monitoring = NMT_NEWT_POPUP (widget); widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); g_signal_connect (widget, "notify::text", G_CALLBACK (miimon_widget_changed), bond); label = nmt_newt_label_new (C_("milliseconds", "ms")); nmt_editor_grid_append (grid, _("Monitoring frequency"), widget, label); priv->miimon = NMT_NEWT_ENTRY (widget); widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); g_signal_connect (widget, "notify::text", G_CALLBACK (updelay_widget_changed), bond); label = nmt_newt_label_new (C_("milliseconds", "ms")); nmt_editor_grid_append (grid, _("Link up delay"), widget, label); priv->updelay = NMT_NEWT_ENTRY (widget); widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); g_signal_connect (widget, "notify::text", G_CALLBACK (downdelay_widget_changed), bond); label = nmt_newt_label_new (C_("milliseconds", "ms")); nmt_editor_grid_append (grid, _("Link down delay"), widget, label); priv->downdelay = NMT_NEWT_ENTRY (widget); widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); g_signal_connect (widget, "notify::text", G_CALLBACK (arp_interval_widget_changed), bond); label = nmt_newt_label_new (C_("milliseconds", "ms")); nmt_editor_grid_append (grid, _("Monitoring frequency"), widget, label); priv->arp_interval = NMT_NEWT_ENTRY (widget); widget = nmt_address_list_new (NMT_ADDRESS_LIST_IP4); g_signal_connect (widget, "notify::strings", G_CALLBACK (arp_ip_target_widget_changed), bond); nmt_editor_grid_append (grid, _("ARP targets"), widget, NULL); priv->arp_ip_target = NMT_ADDRESS_LIST (widget); g_signal_connect (s_bond, "notify::" NM_SETTING_BOND_OPTIONS, G_CALLBACK (bond_options_changed), bond); bond_options_changed (G_OBJECT (s_bond), NULL, bond); slaves_changed (G_OBJECT (priv->slaves), NULL, bond); nmt_editor_page_add_section (NMT_EDITOR_PAGE (bond), section); G_OBJECT_CLASS (nmt_page_bond_parent_class)->constructed (object); }
static void nmt_ip_entry_init (NmtIPEntry *entry) { nmt_newt_entry_set_filter (NMT_NEWT_ENTRY (entry), ip_entry_filter, NULL); nmt_newt_entry_set_validator (NMT_NEWT_ENTRY (entry), ip_entry_validate, NULL); }
static void nmt_newt_entry_numeric_init (NmtNewtEntryNumeric *entry) { nmt_newt_entry_set_filter (NMT_NEWT_ENTRY (entry), newt_entry_numeric_filter, NULL); nmt_newt_entry_set_validator (NMT_NEWT_ENTRY (entry), newt_entry_numeric_validate, NULL); }
static void nmt_page_ip_tunnel_constructed (GObject *object) { NmtPageIPTunnel *ip_tunnel = NMT_PAGE_IP_TUNNEL (object); NmtPageIPTunnelPrivate *priv = NMT_PAGE_IP_TUNNEL_GET_PRIVATE (ip_tunnel); NmtEditorSection *section; NmtEditorGrid *grid; NMSettingIPTunnel *s_ip_tunnel; NmtNewtWidget *widget, *parent; NMConnection *conn; GClosure *s2w, *w2s; conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (ip_tunnel)); s_ip_tunnel = nm_connection_get_setting_ip_tunnel (conn); if (!s_ip_tunnel) { nm_connection_add_setting (conn, nm_setting_ip_tunnel_new ()); s_ip_tunnel = nm_connection_get_setting_ip_tunnel (conn); } /* Initialize the mode for new connections */ if (nm_setting_ip_tunnel_get_mode (s_ip_tunnel) == NM_IP_TUNNEL_MODE_UNKNOWN) { g_object_set (s_ip_tunnel, NM_SETTING_IP_TUNNEL_MODE, (guint) NM_IP_TUNNEL_MODE_IPIP, NULL); } section = nmt_editor_section_new (_("IP tunnel"), NULL, TRUE); grid = nmt_editor_section_get_body (section); /* To convert between widget index (0-based) and setting index (1-based) */ s2w = g_cclosure_new (G_CALLBACK (add_offset), GINT_TO_POINTER (-1), NULL); w2s = g_cclosure_new (G_CALLBACK (add_offset), GINT_TO_POINTER (1), NULL); widget = nmt_newt_popup_new (tunnel_mode); g_object_bind_property_with_closures (s_ip_tunnel, NM_SETTING_IP_TUNNEL_MODE, widget, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, s2w, w2s); nmt_editor_grid_append (grid, _("Mode"), widget, NULL); widget = parent = nmt_device_entry_new (_("Parent"), 40, G_TYPE_NONE); g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_PARENT, widget, "interface-name", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_editor_grid_append (grid, NULL, widget, NULL); widget = nmt_newt_entry_new (40, 0); nmt_editor_grid_append (grid, _("Local IP"), widget, NULL); g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_LOCAL, widget, "text", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); widget = nmt_newt_entry_new (40, 0); nmt_editor_grid_append (grid, _("Remote IP"), widget, NULL); g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_REMOTE, widget, "text", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); widget = nmt_newt_entry_new (40, 0); nmt_editor_grid_append (grid, _("Input key"), widget, NULL); g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_INPUT_KEY, widget, "text", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); priv->input_key = NMT_NEWT_ENTRY (widget); widget = nmt_newt_entry_new (40, 0); nmt_editor_grid_append (grid, _("Output key"), widget, NULL); g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_OUTPUT_KEY, widget, "text", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); priv->output_key = NMT_NEWT_ENTRY (widget); widget = nmt_mtu_entry_new (); g_object_bind_property (s_ip_tunnel, NM_SETTING_IP_TUNNEL_MTU, widget, "mtu", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_editor_grid_append (grid, _("MTU"), widget, NULL); g_signal_connect (s_ip_tunnel, "notify::" NM_SETTING_IP_TUNNEL_MODE, G_CALLBACK (mode_changed), ip_tunnel); mode_changed (G_OBJECT (s_ip_tunnel), NULL, ip_tunnel); nmt_editor_page_add_section (NMT_EDITOR_PAGE (ip_tunnel), section); G_OBJECT_CLASS (nmt_page_ip_tunnel_parent_class)->constructed (object); }