|
|
|
|
@ -2,9 +2,6 @@
|
|
|
|
|
|
|
|
|
|
config main_config;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_save_done(main_window *, config_str output, int size){
|
|
|
|
|
char *final_output = yon_char_parsed_to_string(output,size,"");
|
|
|
|
|
if (final_output){
|
|
|
|
|
@ -153,7 +150,7 @@ gboolean yon_interface_update(main_window *widgets){
|
|
|
|
|
{
|
|
|
|
|
if (main_config.layouts_list){
|
|
|
|
|
for_iter(main_config.layouts_list,&iter){
|
|
|
|
|
gtk_tree_store_set(main_config.layouts_list,&iter,2,0,-1);
|
|
|
|
|
gtk_list_store_set(main_config.layouts_list,&iter,2,0,-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
char *name = yon_config_get_by_key(num_lock_boot_parameter);
|
|
|
|
|
@ -166,7 +163,7 @@ gboolean yon_interface_update(main_window *widgets){
|
|
|
|
|
int size=0;
|
|
|
|
|
name = yon_config_get_by_key(keyboard_layout_parameter);
|
|
|
|
|
config_str layouts = yon_char_parse(name,&size,",");
|
|
|
|
|
GtkTreeIter iter, itar,itor;
|
|
|
|
|
GtkTreeIter iter, itar;
|
|
|
|
|
char *rid,*rname;
|
|
|
|
|
gtk_list_store_clear(widgets->layoutsList);
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
@ -176,14 +173,6 @@ gboolean yon_interface_update(main_window *widgets){
|
|
|
|
|
gtk_list_store_append(widgets->layoutsList,&itar);
|
|
|
|
|
gtk_list_store_set(widgets->layoutsList,&itar,0,rname,1,rid,2,1,-1);
|
|
|
|
|
}
|
|
|
|
|
for(int valid = gtk_tree_model_iter_children(GTK_TREE_MODEL(main_config.layouts_list),&itor,&iter);valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.layouts_list),&itor)){
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.layouts_list),&itor,0,&rid,1,&rname,-1);
|
|
|
|
|
|
|
|
|
|
if (!strcmp(layouts[i],rid)){
|
|
|
|
|
gtk_list_store_append(widgets->layoutsList,&itar);
|
|
|
|
|
gtk_list_store_set(widgets->layoutsList,&itar,0,rname,1,rid,2,1,-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -296,27 +285,17 @@ void on_layouts_accept(GtkWidget *self, dictionary *dict){
|
|
|
|
|
layouts_window *window = yon_dictionary_get_data(dict->first->next,layouts_window*);
|
|
|
|
|
gtk_list_store_clear(widgets->layoutsList);
|
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(window->list);
|
|
|
|
|
GList *list = yon_get_all_selected(GTK_TREE_VIEW(window->MainTree),2);
|
|
|
|
|
char *name;
|
|
|
|
|
char *id;
|
|
|
|
|
GtkTreeIter iter, lwiter, chiter;
|
|
|
|
|
for_iter(model,&lwiter){
|
|
|
|
|
int status;
|
|
|
|
|
gtk_tree_model_get(model,&lwiter,0,&name,1,&id,2,&status,-1);
|
|
|
|
|
if (status){
|
|
|
|
|
gtk_list_store_append(widgets->layoutsList,&iter);
|
|
|
|
|
gtk_list_store_set(widgets->layoutsList,&iter,1,name,0,id,2,1,-1);
|
|
|
|
|
}
|
|
|
|
|
if (gtk_tree_model_iter_children(model,&chiter,&lwiter)){
|
|
|
|
|
for (int valid2 = 1; valid2; valid2 = gtk_tree_model_iter_next(model,&chiter)){
|
|
|
|
|
char *chid, *chname;
|
|
|
|
|
int chstatus;
|
|
|
|
|
gtk_tree_model_get(model,&chiter,0,&chname,1,&chid,2,&chstatus,-1);
|
|
|
|
|
if (chstatus){
|
|
|
|
|
gtk_list_store_append(widgets->layoutsList,&iter);
|
|
|
|
|
gtk_list_store_set(widgets->layoutsList,&iter,1,chname,0,chid,2,1,-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
GtkTreeIter iter, lwiter;
|
|
|
|
|
GtkTreePath *pth;
|
|
|
|
|
for (guint i=0;i<g_list_length(list);i++){
|
|
|
|
|
pth = (GtkTreePath*)g_list_nth_data(list,i);
|
|
|
|
|
gtk_tree_model_get_iter(model,&lwiter,pth);
|
|
|
|
|
gtk_list_store_append(widgets->layoutsList,&iter);
|
|
|
|
|
gtk_tree_model_get(model,&lwiter,0,&name,1,&id,-1);
|
|
|
|
|
gtk_list_store_set(widgets->layoutsList,&iter,1,name,0,id,2,1,-1);
|
|
|
|
|
}
|
|
|
|
|
yon_layouts_save(widgets);
|
|
|
|
|
on_subwindow_close(self);
|
|
|
|
|
@ -327,7 +306,7 @@ void on_layouts_chosen(GtkCellRenderer *, gchar *path, layouts_window *window){
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->list),&iter,path);
|
|
|
|
|
int chosen;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,2,&chosen,-1);
|
|
|
|
|
gtk_tree_store_set(GTK_TREE_STORE(window->list),&iter,2,!chosen,-1);
|
|
|
|
|
gtk_list_store_set(window->list,&iter,2,!chosen,-1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_layouts_add(GtkWidget *, main_window *widgets){
|
|
|
|
|
@ -338,7 +317,7 @@ void on_layouts_add(GtkWidget *, main_window *widgets){
|
|
|
|
|
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
|
|
|
|
|
window->ChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ChosenCell"));
|
|
|
|
|
window->MainTree = yon_gtk_builder_get_widget(builder,"LayoutsTree");
|
|
|
|
|
window->list = (GtkListStore*)main_config.layouts_list;
|
|
|
|
|
window->list = main_config.layouts_list;
|
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(window->MainTree), GTK_TREE_MODEL(window->list));
|
|
|
|
|
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->MainTree)),GTK_SELECTION_MULTIPLE);
|
|
|
|
|
|
|
|
|
|
@ -361,13 +340,13 @@ void on_layouts_add(GtkWidget *, main_window *widgets){
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&id,-1);
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
if (!strcmp(id,parsed[i])){
|
|
|
|
|
gtk_tree_store_set(GTK_TREE_STORE(window->list),&iter,2,1,-1);
|
|
|
|
|
gtk_list_store_set(window->list,&iter,2,1,-1);
|
|
|
|
|
found=1;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!found) {
|
|
|
|
|
gtk_tree_store_set(GTK_TREE_STORE(window->list),&iter,2,0,-1);
|
|
|
|
|
gtk_list_store_set(window->list,&iter,2,0,-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -446,7 +425,7 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
|
widgets->modelsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore2"));
|
|
|
|
|
|
|
|
|
|
int size;
|
|
|
|
|
GtkTreeIter iter,chiter;
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
config_str models = yon_config_load(get_models_command,&size);
|
|
|
|
|
for (int i=0;i<size;i+=2){
|
|
|
|
|
models[i] = yon_char_divide_search(models[i],"\n",-1);
|
|
|
|
|
@ -454,27 +433,15 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
|
gtk_list_store_append(widgets->modelsList,&iter);
|
|
|
|
|
gtk_list_store_set(widgets->modelsList,&iter,1,models[i],0,_(models[i+1]),-1);
|
|
|
|
|
}
|
|
|
|
|
main_config.layouts_list = gtk_tree_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN);
|
|
|
|
|
main_config.layouts_list = gtk_list_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN);
|
|
|
|
|
int laysize;
|
|
|
|
|
config_str rtn = yon_config_load(get_layouts_command,&size);
|
|
|
|
|
config_str rtn = yon_resource_open_file(layouts_path,&size);
|
|
|
|
|
for (int i=0; i<size; i++){
|
|
|
|
|
yon_char_remove_last_symbol(rtn[i],'\n');
|
|
|
|
|
config_str layout = yon_char_parse(rtn[i],&laysize,"|");
|
|
|
|
|
if (yon_char_is_empty(layout[1])){
|
|
|
|
|
gtk_tree_store_append(main_config.layouts_list,&iter,NULL);
|
|
|
|
|
textdomain("iso_639");
|
|
|
|
|
gtk_tree_store_set(main_config.layouts_list,&iter,0,layout[0],1,_(layout[2]),-1);
|
|
|
|
|
textdomain(LocaleName);
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
char *full_layout = yon_char_unite(layout[0],"_",layout[1],NULL);
|
|
|
|
|
gtk_tree_store_append(main_config.layouts_list,&chiter,&iter);
|
|
|
|
|
textdomain("iso_639");
|
|
|
|
|
gtk_tree_store_set(main_config.layouts_list,&chiter,0,full_layout,1,_(layout[2]),-1);
|
|
|
|
|
textdomain(LocaleName);
|
|
|
|
|
free(full_layout);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
config_str layout = yon_char_parse(rtn[i],&laysize,";");
|
|
|
|
|
gtk_list_store_append(main_config.layouts_list,&iter);
|
|
|
|
|
char *lout = layout[1];
|
|
|
|
|
gtk_list_store_set(main_config.layouts_list,&iter,0,layout[0],1,lout,-1);
|
|
|
|
|
}
|
|
|
|
|
main_config.options_list = gtk_list_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN);
|
|
|
|
|
rtn = yon_config_load(get_options_command,&size);
|
|
|
|
|
|