X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/1f78e182e7eaf305c3a10d2e145dbcc994d5e862..64d557a287f0e695856d6bc579293b399b8a07ea:/src/preferences.c diff --git a/src/preferences.c b/src/preferences.c index 5b723c7d..65cacc50 100644 --- a/src/preferences.c +++ b/src/preferences.c @@ -205,6 +205,12 @@ static void preferences_run_setparam ( gpointer notused, guint16 i, VikLayerPara g_hash_table_insert ( values, (gchar *)(params[i].name), layer_typed_param_data_copy_from_data(params[i].type, data) ); } +/* Allow preferences to be manipulated externally */ +void a_preferences_run_setparam ( VikLayerParamData data, VikLayerParam *params ) +{ + preferences_run_setparam (NULL, 0, data, params); +} + static VikLayerParamData preferences_run_getparam ( gpointer notused, guint16 i ) { VikLayerTypedParamData *val = (VikLayerTypedParamData *) g_hash_table_lookup ( values, ((VikLayerParam *)g_ptr_array_index(params,i))->name ); @@ -215,7 +221,7 @@ static VikLayerParamData preferences_run_getparam ( gpointer notused, guint16 i } /* TRUE on success */ -static gboolean preferences_save_to_file() +gboolean a_preferences_save_to_file() { gchar *fn = g_build_filename(a_get_viking_dir(), VIKING_PREFS_FILE, NULL); @@ -257,12 +263,12 @@ void a_preferences_show_window(GtkWindow *parent) { } loaded = TRUE; preferences_load_from_file(); - if ( a_uibuilder_properties_factory ( parent, contiguous_params, params_count, + if ( a_uibuilder_properties_factory ( _("Preferences"), parent, contiguous_params, params_count, (gchar **) groups_names->pdata, groups_names->len, // groups, groups_count, // groups? what groups?! (gboolean (*) (gpointer,guint16,VikLayerParamData,gpointer)) preferences_run_setparam, NULL /* not used */, contiguous_params, preferences_run_getparam, NULL /* not used */ ) ) { - preferences_save_to_file(); + a_preferences_save_to_file(); } g_free ( contiguous_params ); }