
struct loaded_config {
    dictionary_fields(loaded_config);
    char *section;
};

template_saving_window *yon_saving_window_new();

struct loaded_config *yon_config_convert_parameter(config_str parsed, int size);

struct save_return {
    void *save_success_argument;
    config_str file_return;
    int file_save; 
};
struct presave_info {
    void *presave_argument;
    char *save_path;
};

/**function and argument, which called after successful config saving.
 * Example:
 * void on_save_done(main_window *widgets, config_str output, int size)
*/
void (*save_success_function)(void*,config_str,int)=NULL;
void *save_success_argument=NULL;
void (*presave_function)(void*, char*)=NULL;
void *presave_argument=NULL;
void (*save_failure_function)(void*,config_str,int)=NULL;
void *save_failure_argument=NULL;

#define default_config_command(target, data) yon_char_unite("ubconfig --source default --raw get ",target," ",data,NULL)
void on_save_parameters(GtkWidget *self, template_saving_window *window);