static void aw_login_dialog_init (AwLoginDialog *dialog) { GtkWidget *table, *widget, *content; char *username, *password; gboolean store_credentials; dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (dialog, AW_TYPE_LOGIN_DIALOG, AwLoginDialogPrivate); g_object_get (aw_settings_get_singleton (), "username", &username, "password", &password, "store-credentials", &store_credentials, NULL); gtk_dialog_add_button (GTK_DIALOG (dialog), _("Login"), GTK_RESPONSE_OK); table = gtk_table_new (3, 2, FALSE); gtk_table_set_col_spacings (GTK_TABLE (table), HILDON_MARGIN_DOUBLE); content = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); gtk_container_add (GTK_CONTAINER (content), table); widget = gtk_label_new (_("Username")); gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5); gtk_table_attach (GTK_TABLE (table), widget, 0, 1, 0, 1, GTK_FILL, GTK_FILL | GTK_EXPAND, 0, 0); widget = hildon_entry_new (HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT); gtk_entry_set_text (GTK_ENTRY (widget), username ? username : ""); gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 2, 0, 1); dialog->priv->username = widget; widget = gtk_label_new (_("Password")); gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5); gtk_table_attach (GTK_TABLE (table), widget, 0, 1, 1, 2, GTK_FILL, GTK_FILL | GTK_EXPAND, 0, 0); widget = hildon_entry_new (HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT); gtk_entry_set_text (GTK_ENTRY (widget), password ? password : ""); gtk_entry_set_visibility (GTK_ENTRY (widget), FALSE); gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 2, 1, 2); dialog->priv->password = widget; widget = hildon_check_button_new (HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT); hildon_check_button_set_active (HILDON_CHECK_BUTTON (widget), store_credentials); gtk_button_set_label (GTK_BUTTON (widget), _("Remember login credentials")); gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 2, 2, 3); dialog->priv->store_credentials = widget; gtk_widget_show_all (table); g_free (username); g_free (password); }
gchar * get_query_string (GtkWidget *window) { GtkWidget *entry; GtkWidget *content_area; gchar *text = NULL; GtkWidget *dialog; dialog = hildon_dialog_new_with_buttons ("Search articles", GTK_WINDOW (window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_FIND, GTK_RESPONSE_ACCEPT, NULL); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); entry = hildon_entry_new (HILDON_SIZE_AUTO); gtk_container_add (GTK_CONTAINER (content_area), entry); gtk_widget_show_all (content_area); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { text = g_strstrip (g_strdup (gtk_entry_get_text (GTK_ENTRY (entry)))); if (text == '\0') { g_free (text); text = NULL; } } gtk_widget_destroy (dialog); return text; }
static void aw_captcha_dialog_init (AwCaptchaDialog *dialog) { GtkWidget *table, *widget, *content; GtkTreeModel *model; dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (dialog, AW_TYPE_CAPTCHA_DIALOG, AwCaptchaDialogPrivate); content = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); gtk_dialog_add_button (GTK_DIALOG (dialog), _("Submit"), GTK_RESPONSE_OK); table = gtk_table_new (2, 2, FALSE); gtk_table_set_col_spacings (GTK_TABLE (table), HILDON_MARGIN_DOUBLE); gtk_container_add (GTK_CONTAINER (content), table); widget = gtk_image_new (); gtk_widget_set_size_request (widget, AW_CAPTCHA_WIDTH, AW_CAPTCHA_HEIGHT); gtk_table_attach (GTK_TABLE (table), widget, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); dialog->priv->challenge = widget; widget = hildon_entry_new (HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT); gtk_entry_set_overwrite_mode (GTK_ENTRY (widget), TRUE); gtk_entry_set_max_length (GTK_ENTRY (widget), 5); gtk_table_attach (GTK_TABLE (table), widget, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, 0, 0, 0); dialog->priv->response = widget; g_signal_connect_swapped (widget, "changed", G_CALLBACK (aw_captcha_dialog_entry_changed_cb), dialog); widget = hildon_touch_selector_new_text (); gtk_widget_set_size_request (widget, -1, 4 * 70); gtk_table_attach_defaults (GTK_TABLE (table), widget, 0, 2, 1, 2); dialog->priv->selector = widget; model = aw_captcha_dialog_create_model (); hildon_touch_selector_append_text_column (HILDON_TOUCH_SELECTOR (widget), model, TRUE); hildon_touch_selector_append_text_column (HILDON_TOUCH_SELECTOR (widget), model, TRUE); hildon_touch_selector_append_text_column (HILDON_TOUCH_SELECTOR (widget), model, TRUE); hildon_touch_selector_append_text_column (HILDON_TOUCH_SELECTOR (widget), model, TRUE); hildon_touch_selector_append_text_column (HILDON_TOUCH_SELECTOR (widget), model, TRUE); g_signal_connect_swapped (widget, "changed", G_CALLBACK (aw_captcha_dialog_selector_changed_cb), dialog); g_object_unref (model); gtk_widget_show_all (table); }
static void hildon_touch_selector_entry_init (HildonTouchSelectorEntry *self) { HildonTouchSelectorEntryPrivate *priv; GtkEntryCompletion *completion; HildonGtkInputMode input_mode; priv = HILDON_TOUCH_SELECTOR_ENTRY_GET_PRIVATE (self); priv->converter = g_iconv_open ("ascii//translit", "utf-8"); priv->entry = hildon_entry_new (HILDON_SIZE_FINGER_HEIGHT); gtk_entry_set_activates_default (GTK_ENTRY (priv->entry), TRUE); input_mode = hildon_gtk_entry_get_input_mode (GTK_ENTRY (priv->entry)); /* Disable unsupported input modes. */ input_mode &= ~HILDON_GTK_INPUT_MODE_MULTILINE; input_mode &= ~HILDON_GTK_INPUT_MODE_INVISIBLE; input_mode &= ~HILDON_GTK_INPUT_MODE_DICTIONARY; hildon_gtk_entry_set_input_mode (GTK_ENTRY (priv->entry), input_mode); completion = gtk_entry_completion_new (); gtk_entry_completion_set_inline_completion (completion, TRUE); gtk_entry_completion_set_popup_completion (completion, FALSE); gtk_entry_set_completion (GTK_ENTRY (priv->entry), completion); g_object_unref (completion); gtk_widget_show (priv->entry); g_signal_connect (G_OBJECT (priv->entry), "changed", G_CALLBACK (entry_on_text_changed), self); priv->signal_id = g_signal_connect (G_OBJECT (self), "changed", G_CALLBACK (hildon_touch_selector_entry_changed), NULL); hildon_touch_selector_set_print_func (HILDON_TOUCH_SELECTOR (self), hildon_touch_selector_entry_print_func); gtk_box_pack_start (GTK_BOX (self), priv->entry, FALSE, FALSE, 0); }
/** * 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); }