+static gchar * params_startup_methods[] = {N_("Home Location"), N_("Last Location"), N_("Specified File"), N_("Auto Location"), NULL};
+
+static VikLayerParam startup_prefs[] = {
+ { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_STARTUP_NAMESPACE "restore_window_state", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Restore Window Setup:"), VIK_LAYER_WIDGET_CHECKBUTTON, NULL, NULL,
+ N_("Restore window size and layout"), NULL, },
+ { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_STARTUP_NAMESPACE "add_default_map_layer", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Add a Default Map Layer:"), VIK_LAYER_WIDGET_CHECKBUTTON, NULL, NULL,
+ N_("The default map layer added is defined by the Layer Defaults. Use the menu Edit->Layer Defaults->Map... to change the map type and other values."), NULL, },
+ { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_STARTUP_NAMESPACE "startup_method", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Startup Method:"), VIK_LAYER_WIDGET_COMBOBOX, params_startup_methods, NULL, NULL, NULL },
+ { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_STARTUP_NAMESPACE "startup_file", VIK_LAYER_PARAM_STRING, VIK_LAYER_GROUP_NONE, N_("Startup File:"), VIK_LAYER_WIDGET_FILEENTRY, NULL, NULL,
+ N_("The default file to load on startup. Only applies when the startup method is set to 'Specified File'"), NULL, },
+ { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_STARTUP_NAMESPACE "check_version", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Check For New Version:"), VIK_LAYER_WIDGET_CHECKBUTTON, NULL, NULL,
+ N_("Periodically check to see if a new version of Viking is available"), NULL, },
+};
+/* End of Options static stuff */
+
+/**
+ * Detect when Viking is run for the very first time
+ * Call this very early in the startup sequence to ensure subsequent correct results
+ * The return value is cached, since later on the test will no longer be true
+ */
+gboolean a_vik_very_first_run ()
+{
+ static gboolean vik_very_first_run_known = FALSE;
+ static gboolean vik_very_first_run = FALSE;
+
+ // use cached result if available
+ if ( vik_very_first_run_known )
+ return vik_very_first_run;
+
+ gchar *dir = a_get_viking_dir_no_create();
+ // NB: will need extra logic if default dir gets changed e.g. from ~/.viking to ~/.config/viking
+ if ( dir ) {
+ // If directory exists - Viking has been run before
+ vik_very_first_run = ! g_file_test ( dir, G_FILE_TEST_EXISTS );
+ g_free ( dir );
+ }
+ else
+ vik_very_first_run = TRUE;
+ vik_very_first_run_known = TRUE;
+
+ return vik_very_first_run;
+}
+