Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
Archivo: ui.c Proyecto: senko/mawire
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;
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 5
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);
}