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); }
/** * hildon_touch_selector_entry_new_text: * * Creates a #HildonTouchSelectorEntry with a single text column that * can be populated conveniently through hildon_touch_selector_append_text(), * hildon_touch_selector_prepend_text(), hildon_touch_selector_insert_text(). * * Returns: A new #HildonTouchSelectorEntry * * Since: 2.2 **/ GtkWidget * hildon_touch_selector_entry_new_text (void) { GtkListStore *model; GtkWidget *selector; GtkEntryCompletion *completion; HildonTouchSelectorEntryPrivate *priv; HildonTouchSelectorColumn *column = NULL; selector = hildon_touch_selector_entry_new (); priv = HILDON_TOUCH_SELECTOR_ENTRY_GET_PRIVATE (selector); model = gtk_list_store_new (1, G_TYPE_STRING); completion = gtk_entry_get_completion (GTK_ENTRY (priv->entry)); gtk_entry_completion_set_model (completion, GTK_TREE_MODEL (model)); column = hildon_touch_selector_append_text_column (HILDON_TOUCH_SELECTOR (selector), GTK_TREE_MODEL (model), FALSE); g_object_unref (model); g_signal_connect (column, "notify::text-column", G_CALLBACK (_text_column_modified), selector); hildon_touch_selector_entry_set_text_column (HILDON_TOUCH_SELECTOR_ENTRY (selector), 0); return selector; }