|
|
|
@ -136,6 +136,7 @@ gboolean yon_interface_update(main_window *widgets){
|
|
|
|
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.options_list),&iter)){
|
|
|
|
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.options_list),&iter)){
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.options_list),&iter,0,&id,1,&rname,-1);
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.options_list),&iter,0,&id,1,&rname,-1);
|
|
|
|
if (!strcmp(id,name)){
|
|
|
|
if (!strcmp(id,name)){
|
|
|
|
|
|
|
|
gtk_list_store_set(main_config.options_list,&iter,2,1,-1);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),rname);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),rname);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -144,6 +145,11 @@ gboolean yon_interface_update(main_window *widgets){
|
|
|
|
free(name);
|
|
|
|
free(name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
if (main_config.layouts_list){
|
|
|
|
|
|
|
|
for_iter(main_config.layouts_list,&iter){
|
|
|
|
|
|
|
|
gtk_list_store_set(main_config.layouts_list,&iter,2,0,-1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
char *name = yon_config_get_by_key(num_lock_boot_parameter);
|
|
|
|
char *name = yon_config_get_by_key(num_lock_boot_parameter);
|
|
|
|
if (name) {
|
|
|
|
if (name) {
|
|
|
|
if (!strcmp(name,"yes")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),1);
|
|
|
|
if (!strcmp(name,"yes")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),1);
|
|
|
|
@ -155,15 +161,15 @@ gboolean yon_interface_update(main_window *widgets){
|
|
|
|
int size=0;
|
|
|
|
int size=0;
|
|
|
|
name = yon_config_get_by_key(keyboard_layout_parameter);
|
|
|
|
name = yon_config_get_by_key(keyboard_layout_parameter);
|
|
|
|
config_str layouts = yon_char_parse(name,&size,",");
|
|
|
|
config_str layouts = yon_char_parse(name,&size,",");
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter, itar;
|
|
|
|
char *rid,*rname;
|
|
|
|
char *rid,*rname;
|
|
|
|
gtk_list_store_clear(widgets->layoutsList);
|
|
|
|
gtk_list_store_clear(widgets->layoutsList);
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
for_iter(main_config.layouts_list,&iter){
|
|
|
|
for_iter(main_config.layouts_list,&iter){
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.layouts_list),&iter,0,&rid,1,&rname,-1);
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.layouts_list),&iter,0,&rid,1,&rname,-1);
|
|
|
|
if (!strcmp(layouts[i],rid)){
|
|
|
|
if (!strcmp(layouts[i],rid)){
|
|
|
|
gtk_list_store_append(widgets->layoutsList,&iter);
|
|
|
|
gtk_list_store_append(widgets->layoutsList,&itar);
|
|
|
|
gtk_list_store_set(widgets->layoutsList,&iter,0,rname,1,rid,2,0,-1);
|
|
|
|
gtk_list_store_set(widgets->layoutsList,&itar,0,rname,1,rid,2,1,-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -250,11 +256,26 @@ void on_options_open(GtkWidget *, main_window *widgets){
|
|
|
|
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_options_accept),dict);
|
|
|
|
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_options_accept),dict);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GList *yon_get_all_selected(GtkTreeView *tree, int column){
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
|
|
|
GList *list = NULL;
|
|
|
|
|
|
|
|
GtkTreeModel *model = gtk_tree_view_get_model(tree);
|
|
|
|
|
|
|
|
for_iter(model,&iter){
|
|
|
|
|
|
|
|
int status;
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,&iter,column,&status,-1);
|
|
|
|
|
|
|
|
if (status){
|
|
|
|
|
|
|
|
GtkTreePath *path = gtk_tree_model_get_path(model,&iter);
|
|
|
|
|
|
|
|
list = g_list_append(list,path);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return list;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_layouts_accept(GtkWidget *self, dictionary *dict){
|
|
|
|
void on_layouts_accept(GtkWidget *self, dictionary *dict){
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
layouts_window *window = yon_dictionary_get_data(dict->first->next,layouts_window*);
|
|
|
|
layouts_window *window = yon_dictionary_get_data(dict->first->next,layouts_window*);
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(window->list);
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(window->list);
|
|
|
|
GList *list = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->MainTree)),&model);
|
|
|
|
GList *list = yon_get_all_selected(GTK_TREE_VIEW(window->MainTree),2);
|
|
|
|
char *name;
|
|
|
|
char *name;
|
|
|
|
char *id;
|
|
|
|
char *id;
|
|
|
|
GtkTreeIter iter, lwiter;
|
|
|
|
GtkTreeIter iter, lwiter;
|
|
|
|
@ -270,12 +291,21 @@ void on_layouts_accept(GtkWidget *self, dictionary *dict){
|
|
|
|
on_subwindow_close(self);
|
|
|
|
on_subwindow_close(self);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_layouts_chosen(GtkCellRenderer *, gchar *path, layouts_window *window){
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
|
|
|
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_list_store_set(window->list,&iter,2,!chosen,-1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_layouts_add(GtkWidget *, main_window *widgets){
|
|
|
|
void on_layouts_add(GtkWidget *, main_window *widgets){
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_layouts_path);
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_layouts_path);
|
|
|
|
layouts_window *window = malloc(sizeof(layouts_window));
|
|
|
|
layouts_window *window = malloc(sizeof(layouts_window));
|
|
|
|
window->Window = yon_gtk_builder_get_widget(builder,"Window");
|
|
|
|
window->Window = yon_gtk_builder_get_widget(builder,"Window");
|
|
|
|
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
|
|
|
|
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
|
|
|
|
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
|
|
|
|
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->MainTree = yon_gtk_builder_get_widget(builder,"LayoutsTree");
|
|
|
|
window->list = 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_view_set_model(GTK_TREE_VIEW(window->MainTree), GTK_TREE_MODEL(window->list));
|
|
|
|
@ -287,6 +317,7 @@ void on_layouts_add(GtkWidget *, main_window *widgets){
|
|
|
|
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
|
|
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
|
|
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_layouts_accept),dict);
|
|
|
|
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_layouts_accept),dict);
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(window->ChosenCell),"toggled",G_CALLBACK(on_layouts_chosen),window);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_layouts_remove(GtkWidget *, main_window *widgets){
|
|
|
|
void on_layouts_remove(GtkWidget *, main_window *widgets){
|
|
|
|
@ -294,8 +325,11 @@ void on_layouts_remove(GtkWidget *, main_window *widgets){
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LayoutsTree)),&model,&iter)){
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LayoutsTree)),&model,&iter)){
|
|
|
|
GtkTreeIter iter_converted;
|
|
|
|
GtkTreeIter iter_converted;
|
|
|
|
|
|
|
|
char *target;
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,&iter,1,&target,-1);
|
|
|
|
gtk_tree_model_filter_convert_iter_to_child_iter(widgets->layoutsFilter,&iter_converted,&iter);
|
|
|
|
gtk_tree_model_filter_convert_iter_to_child_iter(widgets->layoutsFilter,&iter_converted,&iter);
|
|
|
|
gtk_list_store_remove(widgets->layoutsList,&iter_converted);
|
|
|
|
gtk_list_store_remove(widgets->layoutsList,&iter_converted);
|
|
|
|
|
|
|
|
yon_config_remove_element(keyboard_layout_parameter,target,",");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -377,7 +411,7 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
gtk_list_store_append(main_config.layouts_list,&iter);
|
|
|
|
gtk_list_store_append(main_config.layouts_list,&iter);
|
|
|
|
gtk_list_store_set(main_config.layouts_list,&iter,0,layout[0],1,_(layout[1]),-1);
|
|
|
|
gtk_list_store_set(main_config.layouts_list,&iter,0,layout[0],1,_(layout[1]),-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
main_config.options_list = gtk_list_store_new(2,G_TYPE_STRING,G_TYPE_STRING);
|
|
|
|
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);
|
|
|
|
rtn = yon_config_load(get_options_command,&size);
|
|
|
|
for (int i=0; i<size;i++){
|
|
|
|
for (int i=0; i<size;i++){
|
|
|
|
int option_size;
|
|
|
|
int option_size;
|
|
|
|
|