@ -133,6 +133,11 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
gtk_widget_show ( tab - > update_module_button ) ;
gtk_widget_show ( tab - > update_module_button ) ;
gtk_widget_hide ( tab - > install_module_button ) ;
gtk_widget_hide ( tab - > install_module_button ) ;
} else {
gtk_widget_hide ( tab - > remove_module_button ) ;
gtk_widget_hide ( tab - > update_module_button ) ;
gtk_widget_show ( tab - > install_module_button ) ;
}
}
{
{
if ( tab - > package_installed ) {
if ( tab - > package_installed ) {
@ -141,6 +146,10 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
gtk_widget_hide ( tab - > install_package_button ) ;
gtk_widget_hide ( tab - > install_package_button ) ;
gtk_widget_show ( tab - > remove_package_button ) ;
gtk_widget_show ( tab - > remove_package_button ) ;
gtk_widget_show ( tab - > update_package_button ) ;
gtk_widget_show ( tab - > update_package_button ) ;
} else {
gtk_widget_show ( tab - > install_package_button ) ;
gtk_widget_hide ( tab - > remove_package_button ) ;
gtk_widget_hide ( tab - > update_package_button ) ;
}
}
}
}
if ( tab - > package_installed | | tab - > module_installed ) {
if ( tab - > package_installed | | tab - > module_installed ) {
@ -157,16 +166,12 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
if ( ! getuid ( ) ) {
if ( ! getuid ( ) ) {
if ( boot_run & & ! strcmp ( boot_run [ 0 ] , tab - > package ) ) {
if ( boot_run & & ! strcmp ( boot_run [ 0 ] , tab - > package ) ) {
yon_tag_add ( GTK_BOX ( tab - > install_tags_box ) , RUNNING_LABEL , " tag_green " , NULL ) ;
yon_tag_add ( GTK_BOX ( tab - > install_tags_box ) , RUNNING_LABEL , " tag_green " , NULL ) ;
gtk_widget_hide ( tab - > remove_module_button ) ;
gtk_widget_hide ( tab - > remove_package_button ) ;
gtk_widget_hide ( tab - > update_module_button ) ;
gtk_widget_hide ( tab - > update_module_button ) ;
gtk_widget_hide ( tab - > update_package_button ) ;
gtk_widget_hide ( tab - > update_package_button ) ;
gtk_widget_hide ( tab - > launch_button ) ;
gtk_widget_hide ( tab - > launch_button ) ;
} else if ( ! yon_char_is_empty ( launched ) & & ! strcmp ( launched , tab - > package ) ) {
} else if ( ! yon_char_is_empty ( launched ) & & ! strcmp ( launched , tab - > package ) ) {
yon_tag_add ( GTK_BOX ( tab - > install_tags_box ) , BOOT_RUN_LABEL , " tag_orange " , NULL ) ;
yon_tag_add ( GTK_BOX ( tab - > install_tags_box ) , BOOT_RUN_LABEL , " tag_orange " , NULL ) ;
gtk_widget_hide ( tab - > launch_button ) ;
gtk_widget_hide ( tab - > launch_button ) ;
gtk_widget_hide ( tab - > remove_module_button ) ;
gtk_widget_hide ( tab - > remove_package_button ) ;
gtk_widget_hide ( tab - > update_module_button ) ;
gtk_widget_hide ( tab - > update_module_button ) ;
gtk_widget_hide ( tab - > update_package_button ) ;
gtk_widget_hide ( tab - > update_package_button ) ;
}
}
@ -198,23 +203,25 @@ void *yon_tab_set_installed(kernels_tab *tab){
char * target_module = yon_package_string_set ( tab - > module ) ;
char * target_module = yon_package_string_set ( tab - > module ) ;
char * target_package = yon_package_string_set ( tab - > package ) ;
char * target_package = yon_package_string_set ( tab - > package ) ;
char * check_install_command = get_package_is_installed_command ( target_module ) ;
char * check_install_command = get_package_is_installed_command ( target_module ) ; //if module installed
if ( ! system ( yon_debug_output ( " %s \n " , check_install_command ) ) ) {
if ( ! system ( yon_debug_output ( " %s \n " , check_install_command ) ) ) {
tab - > module_installed = 1 ;
tab - > module_installed = 1 ;
} else tab - > module_installed = 0 ;
} else tab - > module_installed = 0 ;
free ( check_install_command ) ;
free ( check_install_command ) ;
check_install_command = get_package_is_installed_command ( target_package ) ;
check_install_command = get_package_is_installed_command ( target_package ) ; //if package installed
if ( ! system ( yon_debug_output ( " %s \n " , check_install_command ) ) ) {
if ( ! system ( yon_debug_output ( " %s \n " , check_install_command ) ) ) {
tab - > package_installed = 1 ;
tab - > package_installed = 1 ;
} else tab - > package_installed = 0 ;
} else tab - > package_installed = 0 ;
free ( check_install_command ) ;
free ( check_install_command ) ;
check_install_command = get_package_is_updated_command ( target_module ) ;
check_install_command = get_package_is_updated_command ( target_module ) ; //if module has updates
if ( ! system ( yon_debug_output ( " %s \n " , check_install_command ) ) ) {
if ( ! system ( yon_debug_output ( " %s \n " , check_install_command ) ) ) {
tab - > module_updated = 0 ;
tab - > module_updated = 0 ;
} else tab - > module_updated = 1 ;
} else tab - > module_updated = 1 ;
free ( check_install_command ) ;
free ( check_install_command ) ;
check_install_command = get_package_is_updated_command ( target_package ) ;
check_install_command = get_package_is_updated_command ( target_package ) ; //if package has updates
if ( ! system ( yon_debug_output ( " %s \n " , check_install_command ) ) ) {
if ( ! system ( yon_debug_output ( " %s \n " , check_install_command ) ) ) {
tab - > package_updated = 0 ;
tab - > package_updated = 0 ;
} else tab - > package_updated = 1 ;
} else tab - > package_updated = 1 ;
@ -346,23 +353,31 @@ gboolean on_command_execute_success(GtkWidget *,gint status,main_window *widgets
gboolean yon_terminal_get_progress ( main_window * widgets ) {
gboolean yon_terminal_get_progress ( main_window * widgets ) {
char * text = vte_terminal_get_text_format ( VTE_TERMINAL ( widgets - > InstallTerminal ) , VTE_FORMAT_TEXT ) ;
char * text = vte_terminal_get_text_format ( VTE_TERMINAL ( widgets - > InstallTerminal ) , VTE_FORMAT_TEXT ) ;
GRegex * regex = g_regex_new ( " \\ d? \\ d %" , 0 , 0 , NULL ) ;
GRegex * regex = g_regex_new ( " \\ d? \\ d ?\\ d %" , 0 , 0 , NULL ) ;
GMatchInfo * match = NULL ;
GMatchInfo * match = NULL ;
g_regex_match ( regex , text , 0 , & match ) ;
g_regex_match ( regex , text , 0 , & match ) ;
g_regex_unref ( regex ) ;
g_regex_unref ( regex ) ;
config_str target = g_match_info_fetch_all ( match ) ;
double percentage = 0.0 ;
double percentage = 0.0 ;
char * last_match = NULL ;
if ( target ) {
while ( g_match_info_matches ( match ) ) {
int i ;
char * current_match = g_match_info_fetch ( match , 0 ) ;
for ( i = 0 ; target [ i + 1 ] ; i + + ) { } ;
if ( last_match ) {
target [ i ] [ strlen ( target [ i ] ) - 1 ] = ' \0 ' ;
g_free ( last_match ) ;
percentage = atof ( target [ i ] ) ;
}
yon_debug_output ( " %s \n " , target [ i ] ) ;
last_match = current_match ;
g tk_progress_bar_set_fraction( GTK_PROGRESS_BAR ( widgets - > InstallationProgress ) , percentage / 100 ) ;
g _match_info_next( match , NULL ) ;
}
}
if ( last_match ) {
yon_char_remove_last_symbol ( last_match , ' % ' ) ;
percentage = atof ( last_match ) ;
yon_debug_output ( " %s \n " , text ) ;
yon_debug_output ( " %s \n " , last_match ) ;
gtk_progress_bar_set_fraction ( GTK_PROGRESS_BAR ( widgets - > InstallationProgress ) , percentage / 100 ) ;
g_free ( last_match ) ;
}
g_match_info_unref ( match ) ;
g_match_info_unref ( match ) ;
g_mutex_lock ( & main_config . progress_mutex ) ;
g_mutex_lock ( & main_config . progress_mutex ) ;
@ -378,8 +393,8 @@ gboolean yon_terminal_get_progress(main_window *widgets){
void * yon_command_execute_async ( char * command , main_window * widgets ) {
void * yon_command_execute_async ( char * command , main_window * widgets ) {
gtk_progress_bar_set_fraction ( GTK_PROGRESS_BAR ( widgets - > InstallationProgress ) , 0 ) ;
gtk_progress_bar_set_fraction ( GTK_PROGRESS_BAR ( widgets - > InstallationProgress ) , 0 ) ;
vte_terminal_reset ( VTE_TERMINAL ( widgets - > InstallTerminal ) , 0 , 1 ) ;
vte_terminal_reset ( VTE_TERMINAL ( widgets - > InstallTerminal ) , 0 , 1 ) ;
gtk_revealer_set_reveal_child( GTK_REVEALER ( widgets - > TerminalRevealer ) , 0 ) ;
yon_terminal_integrated_start_shell( widgets - > InstallTerminal , yon_debug_output ( " %s \n " , command ) , on_command_execute_success , widgets ) ;
yon_terminal_integrated_start ( widgets - > InstallTerminal , yon_debug_output ( " %s \n " , command ) ) ;
// yon_terminal_integrated_start(widgets->InstallTerminal,yon_debug_output("%s\n",command));
glong columns = vte_terminal_get_column_count ( VTE_TERMINAL ( widgets - > InstallTerminal ) ) ;
glong columns = vte_terminal_get_column_count ( VTE_TERMINAL ( widgets - > InstallTerminal ) ) ;
vte_terminal_set_size ( VTE_TERMINAL ( widgets - > InstallTerminal ) , columns , 20 ) ;
vte_terminal_set_size ( VTE_TERMINAL ( widgets - > InstallTerminal ) , columns , 20 ) ;
yon_ubl_status_box_render ( OPERATION_IN_PROGRESS_LABEL , BACKGROUND_IMAGE_INFO_TYPE ) ;
yon_ubl_status_box_render ( OPERATION_IN_PROGRESS_LABEL , BACKGROUND_IMAGE_INFO_TYPE ) ;
@ -395,6 +410,8 @@ void on_module_install_accept(GtkWidget *, dictionary *dict){
main_window * widgets = yon_dictionary_get_data ( dict - > first , main_window * ) ;
main_window * widgets = yon_dictionary_get_data ( dict - > first , main_window * ) ;
kernels_tab * tab = yon_dictionary_get_data ( dict - > first - > next , kernels_tab * ) ;
kernels_tab * tab = yon_dictionary_get_data ( dict - > first - > next , kernels_tab * ) ;
dialog_window * window = yon_dictionary_get_data ( dict - > first - > next - > next , dialog_window * ) ;
dialog_window * window = yon_dictionary_get_data ( dict - > first - > next - > next , dialog_window * ) ;
free ( dict - > first - > next - > next ) ;
dict - > first - > next - > next = NULL ;
char * module_formated = yon_package_string_set ( tab - > module ) ;
char * module_formated = yon_package_string_set ( tab - > module ) ;
char * modules_to_install = module_formated ;
char * modules_to_install = module_formated ;
@ -412,8 +429,6 @@ void on_module_install_accept(GtkWidget *, dictionary *dict){
char * command = install_command ( modules_to_install ) ;
char * command = install_command ( modules_to_install ) ;
yon_command_execute_async ( command , widgets ) ;
yon_command_execute_async ( command , widgets ) ;
tab - > module_installed = 1 ;
tab - > module_installed = 1 ;
free ( dict - > first - > next - > next ) ;
dict - > first - > next - > next = NULL ;
on_subwindow_close ( window - > Window ) ;
on_subwindow_close ( window - > Window ) ;
}
}
@ -465,6 +480,7 @@ void on_module_install_clicked(GtkWidget *self,dictionary *dict){
char * action_text = MODULE_INSTALL_CONFIRMATION_LABEL ( tab - > name ) ;
char * action_text = MODULE_INSTALL_CONFIRMATION_LABEL ( tab - > name ) ;
if ( ! gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) ) {
if ( ! gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) ) {
dialog_window * window = yon_dialog_window_new ( ) ;
dialog_window * window = yon_dialog_window_new ( ) ;
yon_dictionary_add_or_create_if_exists_with_data ( dict , " window " , window ) ;
g_signal_connect ( G_OBJECT ( window - > AcceptButton ) , " clicked " , G_CALLBACK ( on_module_install_accept ) , dict ) ;
g_signal_connect ( G_OBJECT ( window - > AcceptButton ) , " clicked " , G_CALLBACK ( on_module_install_accept ) , dict ) ;
gtk_label_set_text ( GTK_LABEL ( window - > TopicLabel ) , action_text ) ;
gtk_label_set_text ( GTK_LABEL ( window - > TopicLabel ) , action_text ) ;
@ -560,6 +576,8 @@ void on_module_remove_clicked(GtkWidget *self,dictionary *dict){
if ( yon_confirmation_dialog_call ( self , data ) = = GTK_RESPONSE_ACCEPT ) {
if ( yon_confirmation_dialog_call ( self , data ) = = GTK_RESPONSE_ACCEPT ) {
char * target = yon_package_string_set ( tab - > module ) ;
char * target = yon_package_string_set ( tab - > module ) ;
char * command = remove_command ( target ) ;
char * command = remove_command ( target ) ;
char * command_unload = unload_command ( target ) ;
system ( yon_debug_output ( " %s \n " , command_unload ) ) ;
g_signal_connect ( G_OBJECT ( widgets - > InstallTerminal ) , " child-exited " , G_CALLBACK ( on_module_remove_done ) , tab ) ;
g_signal_connect ( G_OBJECT ( widgets - > InstallTerminal ) , " child-exited " , G_CALLBACK ( on_module_remove_done ) , tab ) ;
yon_command_execute_async ( command , widgets ) ;
yon_command_execute_async ( command , widgets ) ;
tab - > module_installed = 0 ;
tab - > module_installed = 0 ;
@ -601,42 +619,8 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
int size ;
int size ;
config_str parsed = yon_char_parse ( target_string , & size , " ; " ) ;
config_str parsed = yon_char_parse ( target_string , & size , " ; " ) ;
if ( size ) {
if ( size ) {
int types_size ;
dictionary * cur = yon_dictionary_get ( & main_config . kernel_tabs , parsed [ 2 ] ) ;
kernels_tab * tab = NULL ;
kernels_tab * tab = NULL ;
if ( cur ) {
int types_size ;
tab = ( kernels_tab * ) cur - > data ;
gtk_widget_hide ( tab - > changelog_button ) ;
gtk_widget_show ( tab - > launch_button ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( tab - > module_icon ) , " " , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( tab - > package_icon ) , " " , GTK_ICON_SIZE_BUTTON ) ;
if ( tab - > module_installed ) {
gtk_widget_show ( tab - > remove_module_button ) ;
gtk_widget_hide ( tab - > install_module_button ) ;
gtk_widget_show ( tab - > remove_module_button ) ;
yon_tag_add ( GTK_BOX ( tab - > install_tags_box ) , MODULE_INSTALLED_LABEL , " tag_green " , NULL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( tab - > module_icon ) , module_icon_path , GTK_ICON_SIZE_BUTTON ) ;
} else {
gtk_widget_hide ( tab - > remove_module_button ) ;
gtk_widget_show ( tab - > install_module_button ) ;
}
if ( tab - > package_installed ) {
gtk_widget_show ( tab - > remove_package_button ) ;
gtk_widget_hide ( tab - > install_package_button ) ;
gtk_widget_show ( tab - > changelog_button ) ;
yon_tag_add ( GTK_BOX ( tab - > install_tags_box ) , PACKAGE_INSTALLED_LABEL , " tag_green " , NULL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( tab - > package_icon ) , package_icon_path , GTK_ICON_SIZE_BUTTON ) ;
} else {
gtk_widget_hide ( tab - > remove_package_button ) ;
gtk_widget_show ( tab - > install_package_button ) ;
}
if ( ! tab - > package_installed & & ! tab - > module_installed ) {
gtk_widget_hide ( tab - > launch_button ) ;
}
} else {
tab = malloc ( sizeof ( kernels_tab ) ) ;
tab = malloc ( sizeof ( kernels_tab ) ) ;
@ -665,6 +649,8 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
dictionary * dict = NULL ;
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 , " widgets " , widgets ) ;
yon_dictionary_add_or_create_if_exists_with_data ( dict , " tab " , tab ) ;
yon_dictionary_add_or_create_if_exists_with_data ( dict , " tab " , tab ) ;
g_signal_connect ( G_OBJECT ( tab - > update_module_button ) , " clicked " , G_CALLBACK ( on_module_install_clicked ) , dict ) ;
g_signal_connect ( G_OBJECT ( tab - > update_package_button ) , " clicked " , G_CALLBACK ( on_package_install_clicked ) , dict ) ;
g_signal_connect ( G_OBJECT ( tab - > install_module_button ) , " clicked " , G_CALLBACK ( on_module_install_clicked ) , dict ) ;
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 - > 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_module_button ) , " clicked " , G_CALLBACK ( on_module_remove_clicked ) , dict ) ;
@ -726,7 +712,6 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > RunSizeGroup ) , tab - > run_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 ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > DescriptionSizeGroup ) , tab - > description_label ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > ButtonsSizeGroup ) , gtk_widget_get_parent ( tab - > launch_button ) ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > ButtonsSizeGroup ) , gtk_widget_get_parent ( tab - > launch_button ) ) ;
}
@ -736,42 +721,11 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
}
}
additions_kernels_tab * yon_additions_tab_row_new ( GtkListBox * target , char * target_string , main_window * widgets ) {
additions_kernels_tab * yon_additions_tab_row_new ( GtkListBox * target , char * target_string , main_window * widgets ) {
int size ;
int size = 0 ;
config_str parsed = yon_char_parse ( target_string , & size , " ; " ) ;
config_str parsed = yon_char_parse ( target_string , & size , " ; " ) ;
if ( size ) {
if ( size ) {
dictionary * cur = yon_dictionary_get ( & main_config . addition_tabs , parsed [ 2 ] ) ;
additions_kernels_tab * tab = NULL ;
additions_kernels_tab * tab = NULL ;
if ( cur ) {
tab = ( additions_kernels_tab * ) cur - > data ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( tab - > module_icon ) , " " , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( tab - > package_icon ) , " " , GTK_ICON_SIZE_BUTTON ) ;
if ( tab - > module_installed ) {
gtk_widget_show ( tab - > remove_module_button ) ;
gtk_widget_hide ( tab - > install_module_button ) ;
gtk_widget_show ( tab - > update_module_button ) ;
gtk_widget_show ( tab - > remove_module_button ) ;
yon_tag_add ( GTK_BOX ( tab - > install_tags_box ) , MODULE_INSTALLED_LABEL , " tag_green " , NULL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( tab - > module_icon ) , module_icon_path , GTK_ICON_SIZE_BUTTON ) ;
} else {
gtk_widget_hide ( tab - > update_module_button ) ;
gtk_widget_hide ( tab - > remove_module_button ) ;
gtk_widget_show ( tab - > install_module_button ) ;
}
if ( tab - > package_installed ) {
gtk_widget_show ( tab - > update_package_button ) ;
gtk_widget_show ( tab - > remove_package_button ) ;
gtk_widget_hide ( tab - > install_package_button ) ;
yon_tag_add ( GTK_BOX ( tab - > install_tags_box ) , PACKAGE_INSTALLED_LABEL , " tag_green " , NULL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( tab - > package_icon ) , package_icon_path , GTK_ICON_SIZE_BUTTON ) ;
} else {
gtk_widget_hide ( tab - > update_package_button ) ;
gtk_widget_hide ( tab - > remove_package_button ) ;
gtk_widget_show ( tab - > install_package_button ) ;
}
} else {
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_additions_table_row_path ) ;
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_additions_table_row_path ) ;
tab = malloc ( sizeof ( additions_kernels_tab ) ) ;
tab = malloc ( sizeof ( additions_kernels_tab ) ) ;
@ -807,28 +761,23 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
g_signal_connect ( G_OBJECT ( tab - > remove_package_button ) , " clicked " , G_CALLBACK ( on_package_remove_clicked ) , dict ) ;
g_signal_connect ( G_OBJECT ( tab - > remove_package_button ) , " clicked " , G_CALLBACK ( on_package_remove_clicked ) , dict ) ;
gtk_list_box_insert ( target , tab - > main_box , - 1 ) ;
gtk_list_box_insert ( target , tab - > main_box , - 1 ) ;
int size ;
tab - > name = yon_char_new ( parsed [ 0 ] ) ;
config_str parsed = yon_char_parse ( target_string , & size , " ; " ) ;
tab - > module = yon_char_new ( parsed [ 1 ] ) ;
if ( size ) {
tab - > package = yon_char_new ( parsed [ 2 ] ) ;
tab - > name = yon_char_new ( parsed [ 0 ] ) ;
char * name = yon_char_unite ( " <b> " , tab - > name , " </b> " , NULL ) ;
tab - > module = yon_char_new ( parsed [ 1 ] ) ;
char * module = yon_char_unite ( " <i> " , MODULE_LABEL , " " , tab - > module , " </i> " , NULL ) ;
tab - > package = yon_char_new ( parsed [ 2 ] ) ;
char * package = yon_char_unite ( " <i> " , PACKAGE_LABEL , " " , tab - > package , " </i> " , NULL ) ;
char * name = yon_char_unite ( " <b> " , tab - > name , " </b> " , NULL ) ;
char * module = yon_char_unite ( " <i> " , MODULE_LABEL , " " , tab - > module , " </i> " , NULL ) ;
yon_dictionary_add_or_create_if_exists_with_data ( main_config . addition_tabs , tab - > package , tab ) ;
char * package = yon_char_unite ( " <i> " , PACKAGE_LABEL , " " , tab - > package , " </i> " , NULL ) ;
gtk_label_set_markup ( GTK_LABEL ( tab - > name_label ) , name ) ;
yon_dictionary_add_or_create_if_exists_with_data ( main_config . addition_tabs , tab - > package , tab ) ;
gtk_label_set_markup ( GTK_LABEL ( tab - > module_label ) , module ) ;
gtk_label_set_markup ( GTK_LABEL ( tab - > package_label ) , package ) ;
gtk_label_set_markup ( GTK_LABEL ( tab - > name_label ) , name ) ;
gtk_label_set_text ( GTK_LABEL ( tab - > description_label ) , parsed [ 3 ] ) ;
gtk_label_set_markup ( GTK_LABEL ( tab - > module_label ) , module ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > KernelSizeGroup ) , gtk_widget_get_parent ( gtk_widget_get_parent ( tab - > name_label ) ) ) ;
gtk_label_set_markup ( GTK_LABEL ( tab - > package_label ) , package ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > InstallSizeGroup ) , tab - > install_tags_box ) ;
gtk_label_set_text ( GTK_LABEL ( tab - > description_label ) , parsed [ 3 ] ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > DescriptionSizeGroup ) , tab - > description_label ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > KernelSizeGroup ) , gtk_widget_get_parent ( gtk_widget_get_parent ( tab - > name_label ) ) ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > ButtonsSizeGroup ) , gtk_widget_get_parent ( tab - > remove_module_button ) ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > InstallSizeGroup ) , tab - > install_tags_box ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > DescriptionSizeGroup ) , tab - > description_label ) ;
gtk_size_group_add_widget ( GTK_SIZE_GROUP ( widgets - > ButtonsSizeGroup ) , gtk_widget_get_parent ( tab - > remove_module_button ) ) ;
}
}
return tab ;
return tab ;
}
}
return NULL ;
return NULL ;
@ -935,7 +884,7 @@ void on_build_execute(GtkWidget *, dictionary *dict){
char * target = ( char * ) gtk_combo_box_get_active_id ( GTK_COMBO_BOX ( window - > KernelVersionCombo ) ) ;
char * target = ( char * ) gtk_combo_box_get_active_id ( GTK_COMBO_BOX ( window - > KernelVersionCombo ) ) ;
char * filename = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > FilenameEntry ) ) ;
char * filename = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > FilenameEntry ) ) ;
char * command = build_command ( target , filename , debug , drivers ) ;
char * command = build_command ( target , filename , debug , drivers ) ;
yon_terminal_window_launch ( GTK_WINDOW ( widgets - > Window ) , command ) ;
yon_terminal_window_launch ( GTK_WINDOW ( widgets - > Window ) , yon_debug_output ( " %s \n " , command ) ) ;
gtk_widget_destroy ( window - > window ) ;
gtk_widget_destroy ( window - > window ) ;
}
}
@ -968,14 +917,43 @@ void on_boot_toggled(GtkWidget *, char *path, main_window *widgets){
}
}
void on_terminal_revealer_open ( GtkWidget * , main_window * widgets ) {
void on_terminal_revealer_open ( GtkWidget * , main_window * widgets ) {
int opened = gtk_revealer_get_child_revealed ( GTK_REVEALER ( widgets - > TerminalRevealer ) ) ;
int opened = gtk_widget_get_visible ( widgets - > TerminalPaned ) ;
gtk_revealer_set_reveal_child ( GTK_REVEALER ( widgets - > TerminalRevealer ) , ! opened ) ;
switch ( opened ) {
switch ( opened ) {
case 0 : {
case 0 : { // opens
gtk_revealer_set_transition_type ( GTK_REVEALER ( widgets - > TerminalRevealer ) , GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > MoreButton ) , LESS_LABEL ) ;
g_object_ref ( widgets - > MainNotebook ) ;
gtk_container_remove ( GTK_CONTAINER ( gtk_widget_get_parent ( widgets - > MainNotebook ) ) , widgets - > MainNotebook ) ;
gtk_paned_add1 ( GTK_PANED ( widgets - > TerminalPaned ) , widgets - > MainNotebook ) ;
int pos ;
if ( yon_window_config_get_parameter ( " settings " , " paned_pos " , & pos , YON_TYPE_INT ) ) {
gtk_paned_set_position ( GTK_PANED ( widgets - > TerminalPaned ) , pos ) ;
}
gtk_widget_show ( widgets - > TerminalPaned ) ;
gtk_widget_show ( widgets - > MainNotebook ) ;
} break ;
} break ;
case 1 : {
case 1 : { //closes
gtk_revealer_set_transition_type ( GTK_REVEALER ( widgets - > TerminalRevealer ) , GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN ) ;
gtk_button_set_label ( GTK_BUTTON ( widgets - > MoreButton ) , MORE_LABEL ) ;
int pos = gtk_paned_get_position ( GTK_PANED ( widgets - > TerminalPaned ) ) ;
yon_window_config_add_instant_parameter ( " paned_pos " , " settings " , & pos , YON_TYPE_INT ) ;
GValue val = G_VALUE_INIT ;
g_object_get_property ( G_OBJECT ( widgets - > TerminalPaned ) , " max-position " , & val ) ;
gtk_paned_set_position ( GTK_PANED ( widgets - > TerminalPaned ) , g_value_get_int ( & val ) ) ;
g_value_unset ( & val ) ;
g_object_ref ( widgets - > MainNotebook ) ;
gtk_container_remove ( GTK_CONTAINER ( widgets - > TerminalPaned ) , widgets - > MainNotebook ) ;
gtk_box_pack_start ( GTK_BOX ( gtk_widget_get_parent ( widgets - > TerminalPaned ) ) , widgets - > MainNotebook , 1 , 1 , 0 ) ;
gtk_box_reorder_child ( GTK_BOX ( gtk_widget_get_parent ( widgets - > MainNotebook ) ) , widgets - > MainNotebook , 0 ) ;
gtk_widget_hide ( widgets - > TerminalPaned ) ;
} break ;
} break ;
}
}
}
}
@ -1006,7 +984,7 @@ void yon_main_window_complete(main_window *widgets){
widgets - > InstallationProgress = yon_gtk_builder_get_widget ( builder , " InstallationProgress " ) ;
widgets - > InstallationProgress = yon_gtk_builder_get_widget ( builder , " InstallationProgress " ) ;
widgets - > InstallTerminal = yon_gtk_builder_get_widget ( builder , " InstallTerminal " ) ;
widgets - > InstallTerminal = yon_gtk_builder_get_widget ( builder , " InstallTerminal " ) ;
widgets - > TerminalRevealer = yon_gtk_builder_get_widget ( builder , " TerminalRevealer " ) ;
widgets - > TerminalRevealer = yon_gtk_builder_get_widget ( builder , " TerminalRevealer " ) ;
widgets - > Terminal Overlay = yon_gtk_builder_get_widget ( builder , " Terminal Overlay " ) ;
widgets - > Terminal Paned = yon_gtk_builder_get_widget ( builder , " Terminal Paned " ) ;
widgets - > TerminalScroll = yon_gtk_builder_get_widget ( builder , " TerminalScroll " ) ;
widgets - > TerminalScroll = yon_gtk_builder_get_widget ( builder , " TerminalScroll " ) ;
widgets - > KernelsList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " KernelsList " ) ) ;
widgets - > KernelsList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " KernelsList " ) ) ;
widgets - > AdditionsList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " AdditionsList " ) ) ;
widgets - > AdditionsList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " AdditionsList " ) ) ;
@ -1026,7 +1004,7 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect ( G_OBJECT ( widgets - > MoreButton ) , " clicked " , G_CALLBACK ( on_terminal_revealer_open ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > MoreButton ) , " clicked " , G_CALLBACK ( on_terminal_revealer_open ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > KernelsPackageBox ) , " row-selected " , G_CALLBACK ( on_selection_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > KernelsPackageBox ) , " row-selected " , G_CALLBACK ( on_selection_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdditionsPackageBox ) , " row-selected " , G_CALLBACK ( on_selection_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdditionsPackageBox ) , " row-selected " , G_CALLBACK ( on_selection_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > InstallTerminal ) , " child-exited " , G_CALLBACK ( on_command_execute_success ) , widgets ) ;
// g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_command_execute_success),widgets);
g_signal_connect ( G_OBJECT ( widgets - > SaveMenuItem ) , " activate " , G_CALLBACK ( on_config_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveMenuItem ) , " activate " , G_CALLBACK ( on_config_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveGlobalMenuItem ) , " activate " , G_CALLBACK ( on_config_global_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveGlobalMenuItem ) , " activate " , G_CALLBACK ( on_config_global_save ) , widgets ) ;
@ -1047,7 +1025,8 @@ void yon_main_window_complete(main_window *widgets){
glong columns = vte_terminal_get_column_count ( VTE_TERMINAL ( widgets - > InstallTerminal ) ) ;
glong columns = vte_terminal_get_column_count ( VTE_TERMINAL ( widgets - > InstallTerminal ) ) ;
vte_terminal_set_size ( VTE_TERMINAL ( widgets - > InstallTerminal ) , columns , 20 ) ;
vte_terminal_set_size ( VTE_TERMINAL ( widgets - > InstallTerminal ) , columns , 20 ) ;
gtk_overlay_add_overlay ( GTK_OVERLAY ( widgets - > TerminalOverlay ) , widgets - > TerminalRevealer ) ;
gtk_paned_add2 ( GTK_PANED ( widgets - > TerminalPaned ) , widgets - > TerminalRevealer ) ;
yon_interface_update ( widgets ) ;
yon_interface_update ( widgets ) ;
yon_save_window_set_postsave_function ( on_save_done , widgets ) ;
yon_save_window_set_postsave_function ( on_save_done , widgets ) ;