+ GtkApplication *app =
+ gtk_application_new ("gnu.pspp", G_APPLICATION_HANDLES_OPEN);
+
+ process_pre_start_arguments (&argc, &argv);
+
+ GOptionEntry oe[] = {
+ {"no-splash", 'q', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, NULL,
+ N_("Do not display the splash screen"), 0},
+ {"no-unique", 'n', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, NULL,
+ N_("Do not attempt single instance negotiation"), 0},
+ {NULL}
+ };
+
+ g_application_add_main_option_entries (G_APPLICATION (app), oe);
+
+ g_signal_connect (app, "startup", G_CALLBACK (on_startup), NULL);
+ g_signal_connect (app, "activate", G_CALLBACK (on_activate), NULL);
+ g_signal_connect (app, "handle-local-options",
+ G_CALLBACK (on_local_options), NULL);
+ g_signal_connect (app, "open", G_CALLBACK (on_open), NULL);
+
+ {
+ GSimpleAction *act_new_syntax = g_simple_action_new ("new-syntax", NULL);
+ g_signal_connect_swapped (act_new_syntax, "activate",
+ G_CALLBACK (create_syntax_window), NULL);
+ g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (act_new_syntax));
+ }
+
+ {
+ GSimpleAction *act_new_data = g_simple_action_new ("new-data", NULL);
+ g_signal_connect_swapped (act_new_data, "activate",
+ G_CALLBACK (create_data_window), NULL);
+ g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (act_new_data));
+ }
+
+ return g_application_run (G_APPLICATION (app), argc, argv);