|
|
|
|
@ -329,31 +329,39 @@ void yon_interface_update(main_window *widgets){
|
|
|
|
|
char *system_locale = config(locale_parameter);
|
|
|
|
|
if (!yon_char_is_empty(system_locale)){
|
|
|
|
|
char *chosen_langs = "";
|
|
|
|
|
for_iter(widgets->LanguagesList,&iter){
|
|
|
|
|
char *cur=NULL, *render = NULL;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&render,2,&cur,-1);
|
|
|
|
|
if (strstr(system_locale,cur)){
|
|
|
|
|
gtk_list_store_set((widgets->LanguagesList),&iter,0,1,-1);
|
|
|
|
|
chosen_langs = yon_char_unite(chosen_langs,!yon_char_is_empty(chosen_langs)?";":"",render,NULL);
|
|
|
|
|
for_iter(widgets->LanguagesList,&iter){
|
|
|
|
|
char *cur=NULL, *render = NULL;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&render,2,&cur,-1);
|
|
|
|
|
if (strstr(system_locale,cur)){
|
|
|
|
|
gtk_list_store_set((widgets->LanguagesList),&iter,0,1,-1);
|
|
|
|
|
chosen_langs = yon_char_unite(chosen_langs,!yon_char_is_empty(chosen_langs)?";":"",render,NULL);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_list_store_set((widgets->LanguagesList),&iter,0,0,-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!yon_char_is_empty(chosen_langs)){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),chosen_langs);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),1);
|
|
|
|
|
free(chosen_langs);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_list_store_set((widgets->LanguagesList),&iter,0,0,-1);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!yon_char_is_empty(chosen_langs)){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),chosen_langs);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),1);
|
|
|
|
|
free(chosen_langs);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
|
|
|
|
|
}
|
|
|
|
|
// gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
|
|
|
|
|
} else {
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0);
|
|
|
|
|
int langsize;
|
|
|
|
|
config_str lang = default_langs(&langsize);
|
|
|
|
|
for_iter(widgets->LanguagesList,&iter){
|
|
|
|
|
gtk_list_store_set((widgets->LanguagesList),&iter,0,0,-1);
|
|
|
|
|
char *cur;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,2,&cur,-1);
|
|
|
|
|
if (lang&&yon_char_parsed_check_exist(lang,langsize,cur)>-1){
|
|
|
|
|
gtk_list_store_set(widgets->LanguagesList,&iter,0,1,-1);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_list_store_set(widgets->LanguagesList,&iter,0,0,-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
|
|
|
|
|
}
|
|
|
|
|
@ -748,7 +756,7 @@ void on_language_window_accept(GtkWidget *,dictionary *dict){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
int size;
|
|
|
|
|
config_str lang_parsed = yon_char_parsed_new(&size,"en_US.UTF-8","ru_RU.UTF-8",NULL);
|
|
|
|
|
config_str lang_parsed = default_langs(&size);
|
|
|
|
|
|
|
|
|
|
char *final = "";
|
|
|
|
|
for_iter(widgets->LanguagesList,&iter){
|
|
|
|
|
@ -828,6 +836,26 @@ void on_language_clicked(GtkWidget *, main_window *widgets){
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int size;
|
|
|
|
|
int found=0;
|
|
|
|
|
int statusfound=0;
|
|
|
|
|
config_str langs = default_langs(&size);
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
for_iter(widgets->LanguagesList,&iter){
|
|
|
|
|
char *cur;
|
|
|
|
|
int status;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,0,&status,2,&cur,-1);
|
|
|
|
|
if (status){
|
|
|
|
|
statusfound++;
|
|
|
|
|
if (yon_char_parsed_check_exist(langs,size,cur)>-1)
|
|
|
|
|
found++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ((found==size)&&statusfound==size){
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1);
|
|
|
|
|
}
|
|
|
|
|
printf("%d == %d == %d\n",found,size,statusfound);
|
|
|
|
|
|
|
|
|
|
dictionary *dict=NULL;
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
|
|
|
|
|
@ -2467,6 +2495,9 @@ main_window *yon_main_window_complete(){
|
|
|
|
|
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->KeyboardImage),gdk_pixbuf_scale_simple(widgets->keyboard_original,600,400,GDK_INTERP_BILINEAR));
|
|
|
|
|
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->SlidesImage),gdk_pixbuf_scale_simple(widgets->slides_original[0],600,400,GDK_INTERP_BILINEAR));
|
|
|
|
|
|
|
|
|
|
int langsize;
|
|
|
|
|
config_str lang = default_langs(&langsize);
|
|
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
gtk_list_store_clear(widgets->LanguagesList);
|
|
|
|
|
parsed = yon_file_open(languages_path,&size);
|
|
|
|
|
@ -2481,6 +2512,8 @@ main_window *yon_main_window_complete(){
|
|
|
|
|
yon_char_parsed_free(cur,cur_size);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
|
|
if (lang)
|
|
|
|
|
yon_char_parsed_free(lang,langsize);
|
|
|
|
|
|
|
|
|
|
parsed = yon_dir_get_contents(zone_path,&size);
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
|