+ GtkWidget *ca = gtk_dialog_get_content_area (GTK_DIALOG (d));
+
+ g_object_set (ca, "margin", 5, NULL);
+
+ GtkWidget *check = gtk_check_button_new_with_mnemonic ("_Show tips at startup");
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), show_tip);
+
+ srand (time(0));
+ gint x = rand () % N_TIPS;
+ GtkWidget *label = gtk_label_new (gettext (tips[x]));
+
+ /* Make the font of the label a little larger than the other widgets. */
+ {
+ GtkStyleContext *sc = gtk_widget_get_style_context (label);
+ GtkCssProvider *p = gtk_css_provider_new ();
+ const gchar *css = "* {font-size: 130%;}";
+ if (gtk_css_provider_load_from_data (p, css, strlen (css), NULL))
+ {
+ gtk_style_context_add_provider (sc, GTK_STYLE_PROVIDER (p),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ }
+ g_object_unref (p);
+ }
+
+ /* It's more readable if the text is not all in one long line. */
+ g_object_set (label, "wrap", TRUE, NULL);
+ gint width = PANGO_PIXELS (50.0 * width_of_m (label) * PANGO_SCALE);
+ gtk_window_set_default_size (GTK_WINDOW (d), width, -1);
+
+
+ if (pictogram)
+ gtk_box_pack_start (GTK_BOX (ca), pictogram, FALSE, FALSE, 5);
+ gtk_box_pack_start (GTK_BOX (ca), label, FALSE, FALSE, 5);
+ gtk_box_pack_end (GTK_BOX (ca), check, FALSE, FALSE, 5);
+
+ gtk_widget_show_all (d);
+
+ g_object_set (close,
+ "has-focus", TRUE,
+ "is-focus", TRUE,
+ NULL);
+
+ while (1 == gtk_dialog_run (GTK_DIALOG (d)))
+ {
+ if (++x >= N_TIPS) x = 0;
+ g_object_set (label, "label", gettext (tips[x]), NULL);
+ }
+
+ show_tip = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check));
+ psppire_conf_set_boolean (conf,
+ "startup", "show-user-tips",
+ show_tip);
+
+ g_object_unref (conf);
+
+ gtk_widget_destroy (d);
+}
+
+
+static void
+on_startup (GApplication * app, gpointer ud)