]> git.street.me.uk Git - andy/viking.git/blame - src/globals.c
Read zip files contents which are stored with no compression.
[andy/viking.git] / src / globals.c
CommitLineData
2936913d
GB
1/*
2 * viking -- GPS Data and Topo Analyzer, Explorer, and Manager
3 *
4 * Copyright (C) 2003-2005, Evan Battaglia <gtoevan@gmx.net>
a482007a 5 * Copyright (C) 2008, Guilhem Bonnefille <guilhem.bonnefille@gmail.com>
1219fd23 6 * Copyright (C) 2010-2013, Rob Norris <rw_norris@hotmail.com>
2936913d
GB
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 *
22 */
a58aaed4
GB
23#ifdef HAVE_CONFIG_H
24#include "config.h"
25#endif
6cdf89e5
RN
26#ifdef HAVE_STDLIB_H
27#include <stdlib.h>
28#endif
a58aaed4
GB
29
30#include <glib/gi18n.h>
2936913d
GB
31
32#include "globals.h"
a58aaed4 33#include "preferences.h"
6cdf89e5 34#include "math.h"
20015a31 35#include "dir.h"
2936913d
GB
36
37gboolean vik_debug = FALSE;
38gboolean vik_verbose = FALSE;
39gboolean vik_version = FALSE;
40
6cdf89e5
RN
41/**
42 * viking_version_to_number:
43 * @version: The string of the Viking version.
44 * This should be in the form of N.N.N.N, where the 3rd + 4th numbers are optional
45 * Often you'll want to pass in VIKING_VERSION
46 *
47 * Returns: a single number useful for comparison
48 */
49gint viking_version_to_number ( gchar *version )
50{
51 // Basic method, probably can be improved
52 gint version_number = 0;
53 gchar** parts = g_strsplit ( version, ".", 0 );
54 gint part_num = 0;
55 gchar *part = parts[part_num];
56 // Allow upto 4 parts to the version number
57 while ( part && part_num < 4 ) {
58 // Allow each part to have upto 100
59 version_number = version_number + ( atol(part) * pow(100, 3-part_num) );
60 part_num++;
61 part = parts[part_num];
62 }
63 g_strfreev ( parts );
64 return version_number;
65}
66
c62f6241 67static gchar * params_degree_formats[] = {"DDD", "DMM", "DMS", N_("Raw"), NULL};
b22233bd 68static gchar * params_units_distance[] = {N_("Kilometres"), N_("Miles"), N_("Nautical Miles"), NULL};
a4c92313 69static gchar * params_units_speed[] = {"km/h", "mph", "m/s", "knots", NULL};
6027a9c5 70static gchar * params_units_height[] = {"Metres", "Feet", NULL};
5210c3d3
GB
71static VikLayerParamScale params_scales_lat[] = { {-90.0, 90.0, 0.05, 2} };
72static VikLayerParamScale params_scales_long[] = { {-180.0, 180.0, 0.05, 2} };
8ada46de 73static gchar * params_time_ref_frame[] = {N_("Locale"), N_("World"), N_("UTC"), NULL};
88542aa9 74
4fe48116 75static VikLayerParam general_prefs[] = {
63959706
RN
76 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_NAMESPACE "degree_format", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Degree format:"), VIK_LAYER_WIDGET_COMBOBOX, params_degree_formats, NULL, NULL, NULL, NULL, NULL },
77 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_NAMESPACE "units_distance", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Distance units:"), VIK_LAYER_WIDGET_COMBOBOX, params_units_distance, NULL, NULL, NULL, NULL, NULL },
78 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_NAMESPACE "units_speed", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Speed units:"), VIK_LAYER_WIDGET_COMBOBOX, params_units_speed, NULL, NULL, NULL, NULL, NULL },
79 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_NAMESPACE "units_height", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Height units:"), VIK_LAYER_WIDGET_COMBOBOX, params_units_height, NULL, NULL, NULL, NULL, NULL },
80 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_NAMESPACE "use_large_waypoint_icons", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Use large waypoint icons:"), VIK_LAYER_WIDGET_CHECKBUTTON, NULL, NULL, NULL, NULL, NULL, NULL },
81 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_NAMESPACE "default_latitude", VIK_LAYER_PARAM_DOUBLE, VIK_LAYER_GROUP_NONE, N_("Default latitude:"), VIK_LAYER_WIDGET_SPINBUTTON, params_scales_lat, NULL, NULL, NULL, NULL, NULL },
82 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_NAMESPACE "default_longitude", VIK_LAYER_PARAM_DOUBLE, VIK_LAYER_GROUP_NONE, N_("Default longitude:"), VIK_LAYER_WIDGET_SPINBUTTON, params_scales_long, NULL, NULL, NULL, NULL, NULL },
8ada46de
RN
83 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_NAMESPACE "time_reference_frame", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Time Display:"), VIK_LAYER_WIDGET_COMBOBOX, params_time_ref_frame, NULL,
84 N_("Display times according to the reference frame. Locale is the user's system setting. World is relative to the location of the object."), NULL, NULL, NULL },
5210c3d3
GB
85};
86
60dbd0ad
RN
87/* External/Export Options */
88
89static gchar * params_kml_export_units[] = {"Metric", "Statute", "Nautical", NULL};
b02cd3a3 90static gchar * params_gpx_export_trk_sort[] = {N_("Alphabetical"), N_("Time"), N_("Creation"), NULL };
72f067ad 91static gchar * params_gpx_export_wpt_symbols[] = {N_("Title Case"), N_("Lowercase"), NULL};
60dbd0ad
RN
92
93static VikLayerParam io_prefs[] = {
a87f8fa1
RN
94 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_IO_NAMESPACE "kml_export_units", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("KML File Export Units:"), VIK_LAYER_WIDGET_COMBOBOX, params_kml_export_units, NULL, NULL, NULL, NULL, NULL },
95 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_IO_NAMESPACE "gpx_export_track_sort", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("GPX Track Order:"), VIK_LAYER_WIDGET_COMBOBOX, params_gpx_export_trk_sort, NULL, NULL, NULL, NULL, NULL },
72f067ad 96 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_IO_NAMESPACE "gpx_export_wpt_sym_names", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("GPX Waypoint Symbols:"), VIK_LAYER_WIDGET_COMBOBOX, params_gpx_export_wpt_symbols, NULL,
a87f8fa1 97 N_("Save GPX Waypoint Symbol names in the specified case. May be useful for compatibility with various devices"), NULL, NULL, NULL },
60dbd0ad
RN
98};
99
3317dc4e
RN
100#ifndef WINDOWS
101static VikLayerParam io_prefs_non_windows[] = {
63959706 102 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_IO_NAMESPACE "image_viewer", VIK_LAYER_PARAM_STRING, VIK_LAYER_GROUP_NONE, N_("Image Viewer:"), VIK_LAYER_WIDGET_FILEENTRY, NULL, NULL, NULL, NULL, NULL, NULL },
3317dc4e
RN
103};
104#endif
105
ccccf356 106static VikLayerParam io_prefs_external_gpx[] = {
63959706
RN
107 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_IO_NAMESPACE "external_gpx_1", VIK_LAYER_PARAM_STRING, VIK_LAYER_GROUP_NONE, N_("External GPX Program 1:"), VIK_LAYER_WIDGET_FILEENTRY, NULL, NULL, NULL, NULL, NULL, NULL },
108 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_IO_NAMESPACE "external_gpx_2", VIK_LAYER_PARAM_STRING, VIK_LAYER_GROUP_NONE, N_("External GPX Program 2:"), VIK_LAYER_WIDGET_FILEENTRY, NULL, NULL, NULL, NULL, NULL, NULL },
ccccf356
RN
109};
110
8ada46de 111static gchar * params_vik_fileref[] = {N_("Absolute"), N_("Relative"), NULL};
50843c96
RN
112static VikLayerParamScale params_recent_files[] = { {-1, 25, 1, 0} };
113
88542aa9
RN
114static VikLayerParam prefs_advanced[] = {
115 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "save_file_reference_mode", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Save File Reference Mode:"), VIK_LAYER_WIDGET_COMBOBOX, params_vik_fileref, NULL,
a87f8fa1 116 N_("When saving a Viking .vik file, this determines how the directory paths of filenames are written."), NULL, NULL, NULL },
4207cba3 117 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "ask_for_create_track_name", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Ask for Name before Track Creation:"), VIK_LAYER_WIDGET_CHECKBUTTON, NULL, NULL, NULL, NULL, NULL, NULL },
63959706 118 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "create_track_tooltip", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Show Tooltip during Track Creation:"), VIK_LAYER_WIDGET_CHECKBUTTON, NULL, NULL, NULL, NULL, NULL, NULL },
50843c96
RN
119 { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "number_recent_files", VIK_LAYER_PARAM_INT, VIK_LAYER_GROUP_NONE, N_("The number of recent files:"), VIK_LAYER_WIDGET_SPINBUTTON, params_recent_files, NULL,
120 N_("Only applies to new windows or on application restart. -1 means all available files."), NULL, NULL, NULL },
88542aa9
RN
121};
122
a14f46cf 123static gchar * params_startup_methods[] = {N_("Home Location"), N_("Last Location"), N_("Specified File"), N_("Auto Location"), NULL};
7143d1e4 124
1219fd23
RN
125static VikLayerParam startup_prefs[] = {
126 { 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,
a87f8fa1 127 N_("Restore window size and layout"), NULL, NULL, NULL},
8fa25c61 128 { 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,
a87f8fa1
RN
129 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, NULL, NULL},
130 { 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, NULL, NULL },
7143d1e4 131 { 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,
a87f8fa1 132 N_("The default file to load on startup. Only applies when the startup method is set to 'Specified File'"), NULL, NULL, NULL },
91fc9c76 133 { 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,
a87f8fa1 134 N_("Periodically check to see if a new version of Viking is available"), NULL, NULL, NULL },
1219fd23 135};
60dbd0ad
RN
136/* End of Options static stuff */
137
20015a31
RN
138/**
139 * Detect when Viking is run for the very first time
140 * Call this very early in the startup sequence to ensure subsequent correct results
141 * The return value is cached, since later on the test will no longer be true
142 */
143gboolean a_vik_very_first_run ()
144{
145 static gboolean vik_very_first_run_known = FALSE;
146 static gboolean vik_very_first_run = FALSE;
147
148 // use cached result if available
149 if ( vik_very_first_run_known )
150 return vik_very_first_run;
151
152 gchar *dir = a_get_viking_dir_no_create();
153 // NB: will need extra logic if default dir gets changed e.g. from ~/.viking to ~/.config/viking
154 if ( dir ) {
155 // If directory exists - Viking has been run before
156 vik_very_first_run = ! g_file_test ( dir, G_FILE_TEST_EXISTS );
157 g_free ( dir );
158 }
159 else
160 vik_very_first_run = TRUE;
161 vik_very_first_run_known = TRUE;
162
163 return vik_very_first_run;
164}
165
a58aaed4
GB
166void a_vik_preferences_init ()
167{
6cdf89e5
RN
168 g_debug ( "VIKING VERSION as number: %d", viking_version_to_number (VIKING_VERSION) );
169
f02faa96 170 // Defaults for the options are setup here
1b03d66d 171 a_preferences_register_group ( VIKING_PREFERENCES_GROUP_KEY, _("General") );
a58aaed4
GB
172
173 VikLayerParamData tmp;
174 tmp.u = VIK_DEGREE_FORMAT_DMS;
4fe48116 175 a_preferences_register(&general_prefs[0], tmp, VIKING_PREFERENCES_GROUP_KEY);
6f9336aa
RN
176
177 tmp.u = VIK_UNITS_DISTANCE_KILOMETRES;
4fe48116 178 a_preferences_register(&general_prefs[1], tmp, VIKING_PREFERENCES_GROUP_KEY);
13bdea80
RN
179
180 tmp.u = VIK_UNITS_SPEED_KILOMETRES_PER_HOUR;
4fe48116 181 a_preferences_register(&general_prefs[2], tmp, VIKING_PREFERENCES_GROUP_KEY);
6027a9c5
RN
182
183 tmp.u = VIK_UNITS_HEIGHT_METRES;
4fe48116 184 a_preferences_register(&general_prefs[3], tmp, VIKING_PREFERENCES_GROUP_KEY);
9be0449f
RN
185
186 tmp.b = TRUE;
4fe48116 187 a_preferences_register(&general_prefs[4], tmp, VIKING_PREFERENCES_GROUP_KEY);
5210c3d3
GB
188
189 /* Maintain the default location to New York */
190 tmp.d = 40.714490;
4fe48116 191 a_preferences_register(&general_prefs[5], tmp, VIKING_PREFERENCES_GROUP_KEY);
5210c3d3 192 tmp.d = -74.007130;
4fe48116 193 a_preferences_register(&general_prefs[6], tmp, VIKING_PREFERENCES_GROUP_KEY);
2702f416 194
8ada46de
RN
195 tmp.u = VIK_TIME_REF_LOCALE;
196 a_preferences_register(&general_prefs[7], tmp, VIKING_PREFERENCES_GROUP_KEY);
197
b49d8528
RN
198 // New Tab
199 a_preferences_register_group ( VIKING_PREFERENCES_STARTUP_GROUP_KEY, _("Startup") );
200
1219fd23
RN
201 tmp.b = FALSE;
202 a_preferences_register(&startup_prefs[0], tmp, VIKING_PREFERENCES_STARTUP_GROUP_KEY);
203
8fa25c61
RN
204 tmp.b = FALSE;
205 a_preferences_register(&startup_prefs[1], tmp, VIKING_PREFERENCES_STARTUP_GROUP_KEY);
206
7143d1e4
RN
207 tmp.u = VIK_STARTUP_METHOD_HOME_LOCATION;
208 a_preferences_register(&startup_prefs[2], tmp, VIKING_PREFERENCES_STARTUP_GROUP_KEY);
209
210 tmp.s = "";
211 a_preferences_register(&startup_prefs[3], tmp, VIKING_PREFERENCES_STARTUP_GROUP_KEY);
212
91fc9c76
RN
213 tmp.b = FALSE;
214 a_preferences_register(&startup_prefs[4], tmp, VIKING_PREFERENCES_STARTUP_GROUP_KEY);
215
2702f416
RN
216 // New Tab
217 a_preferences_register_group ( VIKING_PREFERENCES_IO_GROUP_KEY, _("Export/External") );
60dbd0ad
RN
218
219 tmp.u = VIK_KML_EXPORT_UNITS_METRIC;
220 a_preferences_register(&io_prefs[0], tmp, VIKING_PREFERENCES_IO_GROUP_KEY);
3317dc4e 221
d13f1a57
RN
222 tmp.u = VIK_GPX_EXPORT_TRK_SORT_TIME;
223 a_preferences_register(&io_prefs[1], tmp, VIKING_PREFERENCES_IO_GROUP_KEY);
224
5f2a108d 225 tmp.b = VIK_GPX_EXPORT_WPT_SYM_NAME_TITLECASE;
72f067ad
RN
226 a_preferences_register(&io_prefs[2], tmp, VIKING_PREFERENCES_IO_GROUP_KEY);
227
3317dc4e 228#ifndef WINDOWS
0b386bf3 229 tmp.s = "xdg-open";
3317dc4e
RN
230 a_preferences_register(&io_prefs_non_windows[0], tmp, VIKING_PREFERENCES_IO_GROUP_KEY);
231#endif
ccccf356 232
1e6db2e3 233 // JOSM for OSM editing around a GPX track
ccccf356
RN
234 tmp.s = "josm";
235 a_preferences_register(&io_prefs_external_gpx[0], tmp, VIKING_PREFERENCES_IO_GROUP_KEY);
ff02058b
RN
236 // Add a second external program - another OSM editor by default
237 tmp.s = "merkaartor";
238 a_preferences_register(&io_prefs_external_gpx[1], tmp, VIKING_PREFERENCES_IO_GROUP_KEY);
29277258
RN
239
240 // 'Advanced' Properties
241 a_preferences_register_group ( VIKING_PREFERENCES_ADVANCED_GROUP_KEY, _("Advanced") );
88542aa9
RN
242
243 tmp.u = VIK_FILE_REF_FORMAT_ABSOLUTE;
244 a_preferences_register(&prefs_advanced[0], tmp, VIKING_PREFERENCES_ADVANCED_GROUP_KEY);
90611609
RN
245
246 tmp.b = TRUE;
247 a_preferences_register(&prefs_advanced[1], tmp, VIKING_PREFERENCES_ADVANCED_GROUP_KEY);
50843c96 248
4207cba3 249 tmp.b = TRUE;
50843c96 250 a_preferences_register(&prefs_advanced[2], tmp, VIKING_PREFERENCES_ADVANCED_GROUP_KEY);
4207cba3
RN
251
252 tmp.i = 10; // Seemingly GTK's default for the number of recent files
253 a_preferences_register(&prefs_advanced[3], tmp, VIKING_PREFERENCES_ADVANCED_GROUP_KEY);
a58aaed4
GB
254}
255
256vik_degree_format_t a_vik_get_degree_format ( )
257{
258 vik_degree_format_t format;
259 format = a_preferences_get(VIKING_PREFERENCES_NAMESPACE "degree_format")->u;
260 return format;
a58aaed4 261}
6f9336aa
RN
262
263vik_units_distance_t a_vik_get_units_distance ( )
264{
265 vik_units_distance_t units;
266 units = a_preferences_get(VIKING_PREFERENCES_NAMESPACE "units_distance")->u;
267 return units;
268}
13bdea80
RN
269
270vik_units_speed_t a_vik_get_units_speed ( )
271{
272 vik_units_speed_t units;
273 units = a_preferences_get(VIKING_PREFERENCES_NAMESPACE "units_speed")->u;
274 return units;
275}
6027a9c5
RN
276
277vik_units_height_t a_vik_get_units_height ( )
278{
279 vik_units_height_t units;
280 units = a_preferences_get(VIKING_PREFERENCES_NAMESPACE "units_height")->u;
281 return units;
282}
9be0449f
RN
283
284gboolean a_vik_get_use_large_waypoint_icons ( )
285{
286 gboolean use_large_waypoint_icons;
287 use_large_waypoint_icons = a_preferences_get(VIKING_PREFERENCES_NAMESPACE "use_large_waypoint_icons")->b;
288 return use_large_waypoint_icons;
289}
5210c3d3
GB
290
291gdouble a_vik_get_default_lat ( )
292{
293 gdouble data;
294 data = a_preferences_get(VIKING_PREFERENCES_NAMESPACE "default_latitude")->d;
295 return data;
296}
297
298gdouble a_vik_get_default_long ( )
299{
300 gdouble data;
301 data = a_preferences_get(VIKING_PREFERENCES_NAMESPACE "default_longitude")->d;
302 return data;
303}
60dbd0ad 304
8ada46de
RN
305vik_time_ref_frame_t a_vik_get_time_ref_frame ( )
306{
307 return a_preferences_get(VIKING_PREFERENCES_NAMESPACE "time_reference_frame")->u;
308}
309
60dbd0ad
RN
310/* External/Export Options */
311
312vik_kml_export_units_t a_vik_get_kml_export_units ( )
313{
314 vik_kml_export_units_t units;
71eede92 315 units = a_preferences_get(VIKING_PREFERENCES_IO_NAMESPACE "kml_export_units")->u;
60dbd0ad
RN
316 return units;
317}
3317dc4e 318
d13f1a57
RN
319vik_gpx_export_trk_sort_t a_vik_get_gpx_export_trk_sort ( )
320{
321 vik_gpx_export_trk_sort_t sort;
322 sort = a_preferences_get(VIKING_PREFERENCES_IO_NAMESPACE "gpx_export_track_sort")->u;
323 return sort;
324}
325
72f067ad
RN
326vik_gpx_export_wpt_sym_name_t a_vik_gpx_export_wpt_sym_name ( )
327{
328 gboolean val;
5f2a108d 329 val = a_preferences_get(VIKING_PREFERENCES_IO_NAMESPACE "gpx_export_wpt_sym_names")->b;
72f067ad
RN
330 return val;
331}
332
3317dc4e
RN
333#ifndef WINDOWS
334const gchar* a_vik_get_image_viewer ( )
335{
336 return a_preferences_get(VIKING_PREFERENCES_IO_NAMESPACE "image_viewer")->s;
337}
338#endif
ccccf356
RN
339
340const gchar* a_vik_get_external_gpx_program_1 ( )
341{
342 return a_preferences_get(VIKING_PREFERENCES_IO_NAMESPACE "external_gpx_1")->s;
343}
ff02058b
RN
344
345const gchar* a_vik_get_external_gpx_program_2 ( )
346{
347 return a_preferences_get(VIKING_PREFERENCES_IO_NAMESPACE "external_gpx_2")->s;
348}
88542aa9 349
50843c96 350// Advanced Options
88542aa9
RN
351vik_file_ref_format_t a_vik_get_file_ref_format ( )
352{
353 vik_file_ref_format_t format;
354 format = a_preferences_get(VIKING_PREFERENCES_ADVANCED_NAMESPACE "save_file_reference_mode")->u;
355 return format;
356}
90611609 357
4207cba3
RN
358gboolean a_vik_get_ask_for_create_track_name ( )
359{
360 return a_preferences_get(VIKING_PREFERENCES_ADVANCED_NAMESPACE "ask_for_create_track_name")->b;
361}
362
90611609
RN
363gboolean a_vik_get_create_track_tooltip ( )
364{
365 return a_preferences_get(VIKING_PREFERENCES_ADVANCED_NAMESPACE "create_track_tooltip")->b;
366}
1219fd23 367
50843c96
RN
368gint a_vik_get_recent_number_files ( )
369{
370 return a_preferences_get(VIKING_PREFERENCES_ADVANCED_NAMESPACE "number_recent_files")->i;
371}
372
1219fd23
RN
373// Startup Options
374gboolean a_vik_get_restore_window_state ( )
375{
376 gboolean data;
377 data = a_preferences_get(VIKING_PREFERENCES_STARTUP_NAMESPACE "restore_window_state")->b;
378 return data;
379}
8fa25c61
RN
380
381gboolean a_vik_get_add_default_map_layer ( )
382{
383 gboolean data;
384 data = a_preferences_get(VIKING_PREFERENCES_STARTUP_NAMESPACE "add_default_map_layer")->b;
385 return data;
386}
7143d1e4
RN
387
388vik_startup_method_t a_vik_get_startup_method ( )
389{
390 vik_startup_method_t data;
391 data = a_preferences_get(VIKING_PREFERENCES_STARTUP_NAMESPACE "startup_method")->u;
392 return data;
393}
394
395const gchar *a_vik_get_startup_file ( )
396{
397 return a_preferences_get(VIKING_PREFERENCES_STARTUP_NAMESPACE "startup_file")->s;
398}
91fc9c76
RN
399
400gboolean a_vik_get_check_version ( )
401{
402 return a_preferences_get(VIKING_PREFERENCES_STARTUP_NAMESPACE "check_version")->b;
403}