|
|
|
|
@ -39,6 +39,19 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_interface_update(main_window *widgets){
|
|
|
|
|
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelsPackageBox));
|
|
|
|
|
for (guint i=0;i<g_list_length(list);i++){
|
|
|
|
|
gtk_widget_destroy(g_list_nth_data(list,i));
|
|
|
|
|
}
|
|
|
|
|
int kernels_size;
|
|
|
|
|
config_str kernels = yon_resource_open_file(kernels_path, &kernels_size);
|
|
|
|
|
for (int i=1;i<kernels_size;i++){
|
|
|
|
|
GtkWidget * current = yon_tab_row_new(GTK_LIST_BOX(widgets->KernelsPackageBox),kernels[i],widgets);
|
|
|
|
|
gtk_widget_set_can_focus(gtk_widget_get_parent(current),0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
info_window *yon_info_window_new(){
|
|
|
|
|
info_window *window = malloc(sizeof(info_window));
|
|
|
|
|
|
|
|
|
|
@ -89,26 +102,89 @@ int yon_tag_add(GtkBox *target,char *tag_label, char *tag_style, char *icon_name
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gboolean on_command_execute_success(GtkWidget *,gint,main_window *widgets){
|
|
|
|
|
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void *yon_command_execute_async(char *command,main_window *widgets){
|
|
|
|
|
yon_terminal_integrated_start(widgets->InstallTerminal,command);
|
|
|
|
|
glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
|
|
|
|
|
vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_module_install_clicked(GtkWidget *,dictionary *dict){
|
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
|
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
|
|
|
|
|
char *command = install_command(tab->module);
|
|
|
|
|
yon_command_execute_async(command,widgets);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_package_install_clicked(GtkWidget *,dictionary *dict){
|
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
|
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
|
|
|
|
|
char *command = install_command(tab->package);
|
|
|
|
|
yon_command_execute_async(command,widgets);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_module_remove_clicked(GtkWidget *,dictionary *dict){
|
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
|
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
|
|
|
|
|
char *command = remove_command(tab->module);
|
|
|
|
|
yon_command_execute_async(command,widgets);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_package_remove_clicked(GtkWidget *,dictionary *dict){
|
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
|
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
|
|
|
|
|
char *command = remove_command(tab->package);
|
|
|
|
|
yon_command_execute_async(command,widgets);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GtkWidget *yon_tab_row_new(GtkListBox *target, char *target_string, main_window *widgets){
|
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_table_row_path);
|
|
|
|
|
|
|
|
|
|
GtkWidget *main_box = yon_gtk_builder_get_widget(builder,"TableRowLabel");
|
|
|
|
|
GtkWidget *icon_box = yon_gtk_builder_get_widget(builder,"IconBox");
|
|
|
|
|
GtkWidget *name_label = yon_gtk_builder_get_widget(builder,"NameLabel");
|
|
|
|
|
GtkWidget *install_tags_box = yon_gtk_builder_get_widget(builder,"InstallTagsBox");
|
|
|
|
|
GtkWidget *run_tags_box = yon_gtk_builder_get_widget(builder,"RunBox");
|
|
|
|
|
GtkWidget *tags_box = yon_gtk_builder_get_widget(builder,"TagsBox");
|
|
|
|
|
GtkWidget *description_label = yon_gtk_builder_get_widget(builder,"DescriptionLabel");
|
|
|
|
|
GtkWidget *remove_module_button = yon_gtk_builder_get_widget(builder,"RemoveModuleButton");
|
|
|
|
|
GtkWidget *remove_package_button = yon_gtk_builder_get_widget(builder,"RemovePackageButton");
|
|
|
|
|
GtkWidget *install_module_button = yon_gtk_builder_get_widget(builder,"InstallModuleButton");
|
|
|
|
|
GtkWidget *install_package_button = yon_gtk_builder_get_widget(builder,"InstallPackageButton");
|
|
|
|
|
gtk_list_box_insert(target,main_box,-1);
|
|
|
|
|
kernels_tab *tab = malloc(sizeof(kernels_tab));
|
|
|
|
|
tab->main_box = yon_gtk_builder_get_widget(builder,"TableRowLabel");
|
|
|
|
|
tab->icon_box = yon_gtk_builder_get_widget(builder,"IconBox");
|
|
|
|
|
tab->name_label = yon_gtk_builder_get_widget(builder,"NameLabel");
|
|
|
|
|
tab->install_tags_box = yon_gtk_builder_get_widget(builder,"InstallTagsBox");
|
|
|
|
|
tab->run_tags_box = yon_gtk_builder_get_widget(builder,"RunBox");
|
|
|
|
|
tab->tags_box = yon_gtk_builder_get_widget(builder,"TagsBox");
|
|
|
|
|
tab->description_label = yon_gtk_builder_get_widget(builder,"DescriptionLabel");
|
|
|
|
|
tab->remove_module_button = yon_gtk_builder_get_widget(builder,"RemoveModuleButton");
|
|
|
|
|
tab->remove_package_button = yon_gtk_builder_get_widget(builder,"RemovePackageButton");
|
|
|
|
|
tab->install_module_button = yon_gtk_builder_get_widget(builder,"InstallModuleButton");
|
|
|
|
|
tab->install_package_button = yon_gtk_builder_get_widget(builder,"InstallPackageButton");
|
|
|
|
|
tab->changelog_button = yon_gtk_builder_get_widget(builder,"ChangelogButton");
|
|
|
|
|
|
|
|
|
|
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,"tab",tab);
|
|
|
|
|
g_signal_connect(G_OBJECT(tab->install_module_button),"clicked",G_CALLBACK(on_module_install_clicked),dict);
|
|
|
|
|
g_signal_connect(G_OBJECT(tab->install_package_button),"clicked",G_CALLBACK(on_package_install_clicked),dict);
|
|
|
|
|
g_signal_connect(G_OBJECT(tab->remove_module_button),"clicked",G_CALLBACK(on_module_remove_clicked),dict);
|
|
|
|
|
g_signal_connect(G_OBJECT(tab->remove_package_button),"clicked",G_CALLBACK(on_package_remove_clicked),dict);
|
|
|
|
|
g_signal_connect(G_OBJECT(tab->changelog_button),"clicked",G_CALLBACK(on_changelog_clicked),tab);
|
|
|
|
|
gtk_list_box_insert(target,tab->main_box,-1);
|
|
|
|
|
|
|
|
|
|
int size;
|
|
|
|
|
config_str parsed = yon_char_parse(target_string,&size,";");
|
|
|
|
|
if (size){
|
|
|
|
|
char *name = yon_char_unite("<b>",parsed[2],"</b>\n<i>",MODULE_LABEL," ",parsed[0],"\n",PACKAGE_LABEL," ",parsed[1],"</i>",NULL);
|
|
|
|
|
char *boot_run = config(KERNEL_BOOT_parameter);
|
|
|
|
|
if (!yon_char_is_empty(boot_run)&&!strcmp(parsed[1],boot_run)){
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->run_tags_box),BOOT_RUN_LABEL,"tag_orange",restart_icon_path);
|
|
|
|
|
}
|
|
|
|
|
tab->name = yon_char_new(parsed[0]);
|
|
|
|
|
tab->module = yon_char_new(parsed[1]);
|
|
|
|
|
tab->package = yon_char_new(parsed[2]);
|
|
|
|
|
char *name = yon_char_unite("<b>",tab->name,"</b>\n<i>",MODULE_LABEL," ",tab->module,"\n",PACKAGE_LABEL," ",tab->package,"</i>",NULL);
|
|
|
|
|
int types_size;
|
|
|
|
|
config_str types_parsed = yon_char_parse(parsed[5],&types_size,", ");
|
|
|
|
|
for (int k=0;k<types_size;k++){
|
|
|
|
|
@ -129,35 +205,44 @@ GtkWidget *yon_tab_row_new(GtkListBox *target, char *target_string, main_window
|
|
|
|
|
tag_type = "tag_purple";
|
|
|
|
|
} else continue;
|
|
|
|
|
|
|
|
|
|
yon_tag_add(GTK_BOX(tags_box),types_parsed[k],tag_type,NULL);
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->tags_box),types_parsed[k],tag_type,NULL);
|
|
|
|
|
}
|
|
|
|
|
char *check_install_command = get_package_is_installed_command(parsed[1]);
|
|
|
|
|
char *check_install_command = get_package_is_installed_command(tab->module);
|
|
|
|
|
if (!system(check_install_command)){
|
|
|
|
|
yon_tag_add(GTK_BOX(install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",module_icon_path);
|
|
|
|
|
gtk_widget_show(remove_module_button);
|
|
|
|
|
gtk_widget_show(remove_package_button);
|
|
|
|
|
gtk_widget_hide(install_module_button);
|
|
|
|
|
gtk_widget_hide(install_package_button);
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",module_icon_path);
|
|
|
|
|
GtkWidget *module_image = gtk_image_new_from_icon_name(module_icon_path,GTK_ICON_SIZE_LARGE_TOOLBAR);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(tab->icon_box),module_image,0,0,2);
|
|
|
|
|
GtkWidget *package_image = gtk_image_new_from_icon_name(package_icon_path,GTK_ICON_SIZE_LARGE_TOOLBAR);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(tab->icon_box),package_image,0,0,2);
|
|
|
|
|
gtk_widget_show(module_image);
|
|
|
|
|
gtk_widget_show(package_image);
|
|
|
|
|
gtk_widget_show(tab->remove_module_button);
|
|
|
|
|
gtk_widget_show(tab->remove_package_button);
|
|
|
|
|
gtk_widget_hide(tab->install_module_button);
|
|
|
|
|
gtk_widget_hide(tab->install_package_button);
|
|
|
|
|
} else {
|
|
|
|
|
free(check_install_command);
|
|
|
|
|
check_install_command = get_package_is_installed_command(parsed[2]);
|
|
|
|
|
check_install_command = get_package_is_installed_command(tab->package);
|
|
|
|
|
if (!system(check_install_command)){
|
|
|
|
|
yon_tag_add(GTK_BOX(install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",package_icon_path);
|
|
|
|
|
gtk_widget_hide(install_package_button);
|
|
|
|
|
gtk_widget_show(remove_package_button);
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",package_icon_path);
|
|
|
|
|
GtkWidget *package_image = gtk_image_new_from_icon_name(package_icon_path,GTK_ICON_SIZE_LARGE_TOOLBAR);
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(tab->icon_box),package_image,0,0,2);
|
|
|
|
|
gtk_widget_show(package_image);
|
|
|
|
|
gtk_widget_hide(tab->install_package_button);
|
|
|
|
|
gtk_widget_show(tab->remove_package_button);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(types_parsed,types_size);
|
|
|
|
|
gtk_label_set_markup(GTK_LABEL(name_label),name);
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(description_label),parsed[6]);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->StatusSizeGroup),icon_box);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->KernelSizeGroup),name_label);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->TagsSizeGroup),tags_box);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->InstallSizeGroup),install_tags_box);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->RunSizeGroup),run_tags_box);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),description_label);
|
|
|
|
|
gtk_label_set_markup(GTK_LABEL(tab->name_label),name);
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(tab->description_label),parsed[6]);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->StatusSizeGroup),tab->icon_box);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->KernelSizeGroup),tab->name_label);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->TagsSizeGroup),tab->tags_box);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->InstallSizeGroup),tab->install_tags_box);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->RunSizeGroup),tab->run_tags_box);
|
|
|
|
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),tab->description_label);
|
|
|
|
|
}
|
|
|
|
|
return main_box;
|
|
|
|
|
return tab->main_box;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// standard functions
|
|
|
|
|
@ -184,8 +269,7 @@ void config_init(){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_update_clicked(GtkWidget *, main_window *widgets){
|
|
|
|
|
if (widgets){};
|
|
|
|
|
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_info_clicked(GtkWidget *, main_window *widgets){
|
|
|
|
|
@ -204,14 +288,12 @@ void on_info_clicked(GtkWidget *, main_window *widgets){
|
|
|
|
|
GList *list3 = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list2,1)));
|
|
|
|
|
char * target_str = yon_char_new((char*)gtk_label_get_text(GTK_LABEL(g_list_nth_data(list3,0))));
|
|
|
|
|
int size;
|
|
|
|
|
char *parameter = yon_char_divide_search(target_str,"\n",-1);
|
|
|
|
|
free(parameter);
|
|
|
|
|
parameter = yon_char_replace(target_str,"\n",",");
|
|
|
|
|
int sz;
|
|
|
|
|
config_str parsed = yon_char_parse(parameter,&sz,",");
|
|
|
|
|
free(parameter);
|
|
|
|
|
parameter = yon_char_parsed_to_string(parsed,sz," ");
|
|
|
|
|
config_str info = yon_config_load(get_package_info_command(parameter),&size);
|
|
|
|
|
config_str parsed = yon_char_parse(target_str,&size,"\n");
|
|
|
|
|
char *package=NULL;
|
|
|
|
|
if (size&&(package = strstr(parsed[2],": "))){
|
|
|
|
|
package+=2;
|
|
|
|
|
}
|
|
|
|
|
config_str info = yon_config_load(get_package_info_command(package),&size);
|
|
|
|
|
if (size!=-1){
|
|
|
|
|
char *final_text = yon_char_parsed_to_string(info,size,"");
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(window->InfoLabel),final_text);
|
|
|
|
|
@ -224,36 +306,18 @@ void on_info_clicked(GtkWidget *, main_window *widgets){
|
|
|
|
|
gtk_widget_show(window->window);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_changelog_clicked(GtkWidget *, main_window *widgets){
|
|
|
|
|
void on_changelog_clicked(GtkWidget *, kernels_tab *tab){
|
|
|
|
|
info_window *window = yon_info_window_new();
|
|
|
|
|
yon_gtk_window_setup(GTK_WINDOW(window->window),GTK_WINDOW(widgets->Window),INFO_TITLE_LABEL,icon_path,"changelog_window");
|
|
|
|
|
GtkWidget *current_tree=NULL;
|
|
|
|
|
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
|
|
|
|
|
current_tree = widgets->KernelsPackageBox;
|
|
|
|
|
yon_gtk_window_setup(GTK_WINDOW(window->window),GTK_WINDOW(gtk_widget_get_toplevel(tab->main_box)),INFO_TITLE_LABEL,icon_path,"changelog_window");
|
|
|
|
|
int size;
|
|
|
|
|
config_str info = yon_config_load(yon_debug_output("%s\n",get_kernel_changelog_command(tab->package)),&size);
|
|
|
|
|
if (size!=-1){
|
|
|
|
|
char *full_text = yon_char_parsed_to_string(info,size,"");
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(window->InfoLabel),full_text);
|
|
|
|
|
free(full_text);
|
|
|
|
|
yon_char_parsed_free(info,size);
|
|
|
|
|
} else {
|
|
|
|
|
current_tree = widgets->AdditionsPackageBox;
|
|
|
|
|
}
|
|
|
|
|
GtkListBoxRow *target = gtk_list_box_get_selected_row(GTK_LIST_BOX(current_tree));
|
|
|
|
|
if (target){
|
|
|
|
|
GList *list = gtk_container_get_children(GTK_CONTAINER(target));
|
|
|
|
|
GList *list2 = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,0)));
|
|
|
|
|
GList *list3 = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list2,1)));
|
|
|
|
|
char * target_str = yon_char_new((char*)gtk_label_get_text(GTK_LABEL(g_list_nth_data(list3,0))));
|
|
|
|
|
int size;
|
|
|
|
|
char *parameter = yon_char_divide_search(target_str,"\n",-1);
|
|
|
|
|
free(parameter);
|
|
|
|
|
parameter = yon_char_replace(target_str,"\n",",");
|
|
|
|
|
int sz;
|
|
|
|
|
config_str parsed = yon_char_parse(parameter,&sz,",");
|
|
|
|
|
config_str info = yon_config_load(yon_debug_output("%s\n",get_kernel_changelog_command(parsed[0])),&size);
|
|
|
|
|
if (size!=-1){
|
|
|
|
|
char *final_text = yon_char_parsed_to_string(info,size,"");
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(window->InfoLabel),final_text);
|
|
|
|
|
free(final_text);
|
|
|
|
|
yon_char_parsed_free(info,size);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(window->InfoLabel),PACKAGE_NOT_FOUND_LABEL);
|
|
|
|
|
}
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(window->InfoLabel),PACKAGE_NOT_FOUND_LABEL);
|
|
|
|
|
}
|
|
|
|
|
gtk_widget_show(window->window);
|
|
|
|
|
}
|
|
|
|
|
@ -266,19 +330,22 @@ void on_building_clicked(GtkWidget *, main_window *widgets){
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_install_module_toggled(GtkWidget *, char *path, main_window *widgets){
|
|
|
|
|
if (widgets||path){};
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_install_package_toggled(GtkWidget *, char *path, main_window *widgets){
|
|
|
|
|
void on_boot_toggled(GtkWidget *, char *path, main_window *widgets){
|
|
|
|
|
if (widgets||path){};
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_boot_toggled(GtkWidget *, char *path, main_window *widgets){
|
|
|
|
|
if (widgets||path){};
|
|
|
|
|
|
|
|
|
|
void on_terminal_revealer_open(GtkWidget *, main_window *widgets){
|
|
|
|
|
int opened = gtk_revealer_get_child_revealed(GTK_REVEALER(widgets->TerminalRevealer));
|
|
|
|
|
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),!opened);
|
|
|
|
|
switch (opened){
|
|
|
|
|
case 0: {
|
|
|
|
|
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->TerminalRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP);
|
|
|
|
|
} break;
|
|
|
|
|
case 1: {
|
|
|
|
|
gtk_revealer_set_transition_type(GTK_REVEALER(widgets->TerminalRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN);
|
|
|
|
|
} break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**yon_main_window_complete(main_window *widgets)
|
|
|
|
|
@ -302,6 +369,12 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
|
widgets->KernelsTree = yon_gtk_builder_get_widget(builder, "KernelsTree");
|
|
|
|
|
widgets->AdditionsUpperTree = yon_gtk_builder_get_widget(builder, "AdditionsUpperTree");
|
|
|
|
|
widgets->AdditionsTree = yon_gtk_builder_get_widget(builder, "TestListBox");
|
|
|
|
|
widgets->MainRevealer = yon_gtk_builder_get_widget(builder, "MainRevealer");
|
|
|
|
|
widgets->MoreButton = yon_gtk_builder_get_widget(builder, "MoreButton");
|
|
|
|
|
widgets->InstallationProgress = yon_gtk_builder_get_widget(builder, "InstallationProgress");
|
|
|
|
|
widgets->InstallTerminal = yon_gtk_builder_get_widget(builder, "InstallTerminal");
|
|
|
|
|
widgets->TerminalRevealer = yon_gtk_builder_get_widget(builder, "TerminalRevealer");
|
|
|
|
|
widgets->TerminalOverlay = yon_gtk_builder_get_widget(builder, "TerminalOverlay");
|
|
|
|
|
widgets->KernelsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"KernelsList"));
|
|
|
|
|
widgets->AdditionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"AdditionsList"));
|
|
|
|
|
widgets->KernelsPackageBox = yon_gtk_builder_get_widget(builder,"KernelsPackageBox");
|
|
|
|
|
@ -315,15 +388,15 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_update_clicked),widgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->InfoButton),"clicked",G_CALLBACK(on_info_clicked),widgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LogButton),"clicked",G_CALLBACK(on_changelog_clicked),widgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->BuildingButton),"clicked",G_CALLBACK(on_building_clicked),widgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->MoreButton),"clicked",G_CALLBACK(on_terminal_revealer_open),widgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_command_execute_success),widgets);
|
|
|
|
|
|
|
|
|
|
int kernels_size;
|
|
|
|
|
config_str kernels = yon_resource_open_file(kernels_path, &kernels_size);
|
|
|
|
|
for (int i=1;i<kernels_size;i++){
|
|
|
|
|
GtkWidget * current = yon_tab_row_new(GTK_LIST_BOX(widgets->KernelsPackageBox),kernels[i],widgets);
|
|
|
|
|
gtk_widget_set_can_focus(gtk_widget_get_parent(current),0);
|
|
|
|
|
}
|
|
|
|
|
glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
|
|
|
|
|
vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
|
|
|
|
|
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->TerminalOverlay),widgets->MainRevealer);
|
|
|
|
|
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
|
}
|
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
|
}
|
|
|
|
|
|