static void hildon_font_selection_dialog_construct_notebook (HildonFontSelectionDialog *fontsel) { gint i; GtkWidget *vbox_tab[3]; GtkWidget *font_color_box; GtkWidget *caption_control; GtkSizeGroup *group; HildonFontSelectionDialogPrivate *priv = HILDON_FONT_SELECTION_DIALOG_GET_PRIVATE (fontsel); g_assert (priv); for (i = 0; i < 3; i++) vbox_tab[i] = gtk_vbox_new (TRUE, 0); group = GTK_SIZE_GROUP (gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL)); /* Build the first page of the GtkNotebook: font style */ priv->cbx_font_type = gtk_combo_box_new_text (); hildon_font_selection_dialog_show_available_fonts (fontsel); caption_control = hildon_caption_new (group, _("ecdg_fi_font_font"), priv->cbx_font_type, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox_tab[0]), caption_control, FALSE, FALSE, 0); priv->cbx_font_size = gtk_combo_box_new_text (); hildon_font_selection_dialog_show_available_sizes (priv); caption_control = hildon_caption_new (group, _("ecdg_fi_font_size"), priv->cbx_font_size, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox_tab[0]), caption_control, FALSE, FALSE, 0); font_color_box = gtk_hbox_new (FALSE, 0); priv->font_color_button = hildon_color_button_new (); priv->color_set = FALSE; priv->font_scaling = 1.0; priv->color_modified_signal_handler = g_signal_connect (G_OBJECT (priv->font_color_button), "notify::color", G_CALLBACK (color_modified_cb), (gpointer) priv); gtk_box_pack_start (GTK_BOX (font_color_box), priv->font_color_button, FALSE, FALSE, 0); caption_control = hildon_caption_new (group, _("ecdg_fi_font_colour_selector"), font_color_box, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox_tab[0]), caption_control, FALSE, FALSE, 0); /* Build the second page of the GtkNotebook: font formatting */ priv->chk_bold = gtk_check_button_new (); caption_control = hildon_caption_new (group, _("ecdg_fi_font_bold"), priv->chk_bold, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox_tab[1]), caption_control, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (priv->chk_bold), "clicked", G_CALLBACK(toggle_clicked), NULL); priv->chk_italic = gtk_check_button_new (); caption_control = hildon_caption_new (group, _("ecdg_fi_font_italic"), priv->chk_italic, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox_tab[1]), caption_control, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(priv->chk_italic), "clicked", G_CALLBACK(toggle_clicked), NULL); priv->chk_underline = gtk_check_button_new(); caption_control = hildon_caption_new (group, _("ecdg_fi_font_underline"), priv->chk_underline, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox_tab[1]), caption_control, FALSE, FALSE, 0); g_signal_connect (G_OBJECT(priv->chk_underline), "clicked", G_CALLBACK (toggle_clicked), NULL); /* Build the third page of the GtkNotebook: other font properties */ priv->chk_strikethrough = gtk_check_button_new (); caption_control = hildon_caption_new(group, _("ecdg_fi_font_strikethrough"), priv->chk_strikethrough, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox_tab[2]), caption_control, FALSE, FALSE, 0); g_signal_connect (G_OBJECT(priv->chk_strikethrough), "clicked", G_CALLBACK (toggle_clicked), NULL); priv->cbx_positioning = gtk_combo_box_new_text (); hildon_font_selection_dialog_show_available_positionings (priv); caption_control = hildon_caption_new(group, _("ecdg_fi_font_special"), priv->cbx_positioning, NULL, HILDON_CAPTION_OPTIONAL); g_object_unref (group); gtk_box_pack_start (GTK_BOX (vbox_tab[2]), caption_control, FALSE, FALSE, 0); /* Populate notebook */ gtk_notebook_insert_page (priv->notebook, vbox_tab[0], NULL, 0); gtk_notebook_insert_page (priv->notebook, vbox_tab[1], NULL, 1); gtk_notebook_insert_page (priv->notebook, vbox_tab[2], NULL, 2); gtk_notebook_set_tab_label_text (priv->notebook, vbox_tab[0], _("ecdg_ti_font_dialog_style")); gtk_notebook_set_tab_label_text (priv->notebook, vbox_tab[1], _("ecdg_ti_font_dialog_format")); gtk_notebook_set_tab_label_text (priv->notebook, vbox_tab[2], _("ecdg_ti_font_dialog_other")); gtk_widget_show_all (GTK_WIDGET (priv->notebook)); }
/** * Shows a dialog to edit the given connection (or create a new one, * if conn is NULL) */ static void edit_connection (gpointer *parent, StrongswanConnection *conn) { GtkWidget *dialog; dialog = gtk_dialog_new_with_buttons ( conn ? "Edit Connection" : "New Connection", GTK_WINDOW (parent), GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_OK, NULL); GtkWidget *vbox = GTK_DIALOG (dialog)->vbox; GtkSizeGroup *group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); GtkWidget *name = hildon_entry_new (HILDON_SIZE_AUTO); hildon_gtk_entry_set_placeholder_text (GTK_ENTRY (name), "Connection Name"); hildon_gtk_entry_set_input_mode (GTK_ENTRY (name), HILDON_GTK_INPUT_MODE_AUTOCAP | HILDON_GTK_INPUT_MODE_ALPHA | HILDON_GTK_INPUT_MODE_NUMERIC); GtkWidget *ncap = hildon_caption_new (group, "Name", name, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox), ncap, TRUE, TRUE, 0); GtkWidget *host = hildon_entry_new (HILDON_SIZE_AUTO); hildon_gtk_entry_set_placeholder_text (GTK_ENTRY (host), "Hostname / IP"); hildon_gtk_entry_set_input_mode (GTK_ENTRY (host), HILDON_GTK_INPUT_MODE_FULL); GtkWidget *hcap = hildon_caption_new (group, "Host", host, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox), hcap, TRUE, TRUE, 0); GtkWidget *cert = hildon_button_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH, HILDON_BUTTON_ARRANGEMENT_VERTICAL); hildon_button_set_text (HILDON_BUTTON (cert), "Host or CA Certificate", "None"); hildon_button_set_alignment (HILDON_BUTTON (cert), 0, 0.5, 1, 1); g_signal_connect (cert, "clicked", G_CALLBACK (select_cert), dialog); GtkWidget *ccap = hildon_caption_new (group, "Certificate", cert, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox), ccap, TRUE, TRUE, 0); GtkWidget *user = hildon_entry_new (HILDON_SIZE_AUTO); hildon_gtk_entry_set_placeholder_text (GTK_ENTRY (user), "Username"); hildon_gtk_entry_set_input_mode (GTK_ENTRY (user), HILDON_GTK_INPUT_MODE_FULL); GtkWidget *ucap = hildon_caption_new (group, "Username", user, NULL, HILDON_CAPTION_OPTIONAL); gtk_box_pack_start (GTK_BOX (vbox), ucap, TRUE, TRUE, 0); if (conn) { gchar *c_name, *c_host, *c_cert, *c_user; g_object_get (conn, "name", &c_name, "host", &c_host, "cert", &c_cert, "user", &c_user, NULL); gtk_entry_set_text (GTK_ENTRY (name), c_name); gtk_entry_set_text (GTK_ENTRY (host), c_host); hildon_button_set_value (HILDON_BUTTON (cert), c_cert ? c_cert : "None"); gtk_entry_set_text (GTK_ENTRY (user), c_user); g_free (c_name); g_free (c_host); g_free (c_cert); g_free (c_user); } gtk_widget_show_all (dialog); gint retval = gtk_dialog_run (GTK_DIALOG (dialog)); if (retval == GTK_RESPONSE_OK) { const gchar *c_name, *c_cert; c_name = gtk_entry_get_text (GTK_ENTRY (name)); if (!conn) { conn = strongswan_connection_new (c_name); } c_cert = hildon_button_get_value (HILDON_BUTTON (cert)); c_cert = strcmp (c_cert, "None") ? c_cert : NULL; g_object_set (conn, "name", c_name, "host", gtk_entry_get_text (GTK_ENTRY (host)), "cert", c_cert, "user", gtk_entry_get_text (GTK_ENTRY (user)), NULL); strongswan_connections_save_connection (ListDialog.conns, conn); } gtk_widget_destroy (dialog); }