@ -103,30 +103,39 @@ void on_about(){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//functions
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  yon_load_proceed ( YON_CONFIG_TYPE  type ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( yon_config_load_register ( type , " config " , hostname_parameter , " config " , id_parameter , " locale " , console_font_parameter , " locale " , language_parameter , NULL ) ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_ubl_status_box_render ( LOCAL_LOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( yon_config_load_register ( type , hostname_section , hostname_parameter , id_section , id_parameter , console_font_section , console_font_parameter , locale_section , locale_parameter , language_section , language_parameter , NULL ) ) { } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_ubl_status_box_render ( LOAD_FAILED_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  yon_config_local_load ( GtkWidget  * self ,  main_window  * widgets ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > IDEntry ) , G_CALLBACK ( on_id_changed ) , widgets ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > HostnameEntry ) , " " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , " " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , " " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > LocaleEntry ) , DEFAULT_LABEL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    int  size ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    GtkTreeIter  iter ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    config_str  rtn  =  yon_config_load ( get_id_command , & size ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    rtn [ 0 ] = yon_char_divide_search ( rtn [ 0 ] , " \n " , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , * rtn ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > ConsoleFontCombo ) , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_load_proceed ( YON_CONFIG_LOCAL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > HostnameEntry ) , yon_config_get_by_key ( hostname_parameter ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    for_iter ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_list_store_set ( widgets - > languagelist , & iter , 2 , 0 , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * id  =  yon_config_get_by_key ( id_parameter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ! strcmp ( id , " Random " ) ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ! strcmp ( id , " r andom" ) ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else  if  ( ! strcmp ( id , " hardware " ) ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 2 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else  {  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , id ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 3 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    GtkTreeIter  iter ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * code ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * cons_font  =  yon_config_get_by_key ( console_font_parameter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( cons_font ) { 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -137,66 +146,161 @@ void yon_config_local_load(GtkWidget *self, main_window *widgets){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * lang  =  yon_config_get_by_key ( language_parameter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * avlocale  =  yon_config_get_by_key ( locale_parameter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    int  locsize ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( avlocale ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        config_str  locale_parsed  =  yon_char_parse ( avlocale , & locsize , " , " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gboolean  is_active ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * locale_string = " " ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * loc_name ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( lang ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        int  valid  =  gtk_tree_model_get_iter_first ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        for ( ; valid ; valid = gtk_tree_model_iter_next ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter , 1 , & code , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter , 0, & loc_name ,  1, & cod e, 2 , & is_activ  e, - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( code & & ! strcmp ( code , lang ) )  gtk_combo_box_set_active_iter ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , & iter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( avlocale ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                for  ( int  i = 0 ; i < locsize ; i + + ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( ! strcmp ( code , locale_parsed [ i ] ) )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        gtk_list_store_set ( widgets - > languagelist , & iter , 2 , 1 , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        locale_string  =  yon_char_unite ( strcmp ( locale_string , " " )  ?  yon_char_append ( locale_string , " ;  " )  :  locale_string ,  loc_name , NULL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( strcmp ( locale_string , " " ) )  gtk_entry_set_text ( GTK_ENTRY ( widgets - > LocaleEntry ) , locale_string ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_handlers_unblock_by_func ( G_OBJECT ( widgets - > IDEntry ) , G_CALLBACK ( on_id_changed ) , widgets ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( getuid ( ) = = 0 ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_ubl_status_box_render ( LOCAL_LOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  yon_config_global_load ( GtkWidget  * self ,  main_window  * widgets ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > IDEntry ) , G_CALLBACK ( on_id_changed ) , widgets ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > HostnameEntry ) , " " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , " " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , " " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > LocaleEntry ) , DEFAULT_LABEL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    int  size ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    GtkTreeIter  iter ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    config_str  rtn  =  yon_config_load ( get_id_command , & size ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    rtn [ 0 ] = yon_char_divide_search ( rtn [ 0 ] , " \n " , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , * rtn ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > ConsoleFontCombo ) , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_load_proceed ( YON_CONFIG_GLOBAL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > HostnameEntry ) , yon_config_get_by_key ( hostname_parameter ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    for_iter ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_list_store_set ( widgets - > languagelist , & iter , 2 , 0 , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * id  =  yon_config_get_by_key ( id_parameter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ! strcmp ( id , " Random " ) ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ! strcmp ( id , " r andom" ) ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else  if  ( ! strcmp ( id , " hardware " ) ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 2 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , id ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 3 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    GtkTreeIter  iter ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * code ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * cons_font  =  yon_config_get_by_key ( console_font_parameter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( cons_font ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        int  valid  =  gtk_tree_model_get_iter_first ( GTK_TREE_MODEL ( widgets - > fontlist ) , & iter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        for ( ; valid ; gtk_tree_model_iter_next ( GTK_TREE_MODEL ( widgets - > fontlist ) , & iter ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > fontlist ) , & iter , 1 , & code , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( code & & ! strcmp ( code , cons_font ) ) {  gtk_combo_box_set_active_iter ( GTK_COMBO_BOX ( widgets - > ConsoleFontCombo ) , & iter ) ;  break ;  } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            else  {  gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > ConsoleFontCombo ) , 0 ) ;  } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        for ( ; valid ; valid = gtk_tree_model_iter_next ( GTK_TREE_MODEL ( widgets - > fontlist ) , & iter ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > fontlist ) , & iter , 0 , & code , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( code & & ! strcmp ( code , cons_font ) )  gtk_combo_box_set_active_iter ( GTK_COMBO_BOX ( widgets - > ConsoleFontCombo ) , & iter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * lang  =  yon_config_get_by_key ( language_parameter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * avlocale  =  yon_config_get_by_key ( locale_parameter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    int  locsize ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( avlocale ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        config_str  locale_parsed  =  yon_char_parse ( avlocale , & locsize , " , " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gboolean  is_active ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * locale_string = " " ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * loc_name ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( lang ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        int  valid  =  gtk_tree_model_get_iter_first ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        for ( ; valid ; valid = gtk_tree_model_iter_next ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter , 1 , & code , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( ! strcmp ( code , lang ) ) {  gtk_combo_box_set_active_iter ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , & iter ) ;  break ;  } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            else  {  gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , 0 ) ;  } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter , 0 , & loc_name , 1 , & code , 2 , & is_active , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( code & & ! strcmp ( code , lang ) )  gtk_combo_box_set_active_iter ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , & iter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( avlocale ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                for  ( int  i = 0 ; i < locsize ; i + + ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( ! strcmp ( code , locale_parsed [ i ] ) )  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        gtk_list_store_set ( widgets - > languagelist , & iter , 2 , 1 , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        locale_string  =  yon_char_unite ( strcmp ( locale_string , " " )  ?  yon_char_append ( locale_string , " ;  " )  :  locale_string ,  loc_name , NULL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( strcmp ( locale_string , " " ) )  gtk_entry_set_text ( GTK_ENTRY ( widgets - > LocaleEntry ) , locale_string ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_handlers_unblock_by_func ( G_OBJECT ( widgets - > IDEntry ) , G_CALLBACK ( on_id_changed ) , widgets ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( getuid ( ) = = 0 ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_ubl_status_box_render ( GLOBAL_LOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  yon_config_global_local_save ( ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_config_save_registered ( NULL , " " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_config_save_registered ( NULL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_ubl_status_box_render ( yon_char_unite ( GLOBAL_LOCAL_SAVE_SUCCESS_LABEL , " \n " ,  SAVE_WARNING_LABEL , NULL ) , BACKGROUND_IMAGE_SUCCESS_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  yon_config_local_save ( ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_config_save_registered ( " system " , " config " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_config_save_registered ( " system " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_ubl_status_box_render ( yon_char_unite ( LOCAL_SAVE_SUCCESS_LABEL , " \n " ,  SAVE_WARNING_LABEL , NULL ) , BACKGROUND_IMAGE_SUCCESS_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  yon_config_global_save ( ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_config_save_registered ( " global " , " " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_config_save_registered ( " global " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_ubl_status_box_render ( yon_char_unite ( GLOBAL_SAVE_SUCCESS_LABEL , " \n " ,  SAVE_WARNING_LABEL , NULL ) , BACKGROUND_IMAGE_SUCCESS_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  on_locale_toggle ( GtkCellRendererToggle  * self , GtkTreePath *  path , GtkTreeViewColumn *  column , locals_window  * window ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    GtkTreeIter  iter ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    GtkTreeModel  * model  =  gtk_tree_view_get_model ( GTK_TREE_VIEW ( window - > MainTree ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_tree_model_get_iter ( model , & iter , path ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gboolean  is_active ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_tree_model_get ( model , & iter , 2 , & is_active , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 2 , ! is_active , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  on_locale_accept ( GtkWidget  * self ,  dictionary  * dict ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    main_window  * widgets  =  yon_dictionary_get_data ( dict - > first , main_window * ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    locals_window  * window  =  yon_dictionary_get_data ( dict - > first - > next , locals_window * ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    GtkTreeIter  iter ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gboolean  is_active ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * final_string  =  " " ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * final_ids  =  " " ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * name ,  * id ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    int  valid  =  gtk_tree_model_get_iter_first ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    for  ( ; valid ; valid = gtk_tree_model_iter_next ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter , 0 , & name , 1 , & id , 2 , & is_active , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( is_active ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            final_string  =  yon_char_unite ( strcmp ( final_string , " " )  ?  yon_char_append ( final_string , " ;  " )  :  final_string , name , NULL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            final_ids  =  yon_char_unite ( strcmp ( final_ids , " " )  ?  yon_char_append ( final_ids , " , " )  :  final_ids , id , NULL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_entry_set_text ( GTK_ENTRY ( widgets - > LocaleEntry ) , final_string ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( yon_config_get_by_key ( " LOCALE " ) )  yon_config_set ( " LOCALE " , final_ids ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else  yon_config_register ( " LOCALE " , locale_section , final_ids ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    on_close_subwindow ( self ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  on_locale_open ( GtkWidget  * self ,  main_window  * widgets ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    locals_window  * window  =  malloc ( sizeof ( locals_window ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    GtkBuilder  * builder  =  gtk_builder_new_from_resource ( glade_locales_path ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > Window  =  yon_gtk_builder_get_widget ( builder , " localesLayoutsWindow " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > MainTree  =  yon_gtk_builder_get_widget ( builder , " localesTree " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > CloseButton  =  yon_gtk_builder_get_widget ( builder , " localesCancelButton " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > AcceptButton  =  yon_gtk_builder_get_widget ( builder , " localesAcceptButton " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > ToggleCell  =  GTK_CELL_RENDERER ( gtk_builder_get_object ( builder , " toggleCell " ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_tree_view_set_model ( GTK_TREE_VIEW ( window - > MainTree ) ,  GTK_TREE_MODEL ( widgets - > languagelist ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    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 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_connect ( G_OBJECT ( window - > CloseButton ) , " clicked " , G_CALLBACK ( on_close_subwindow ) , NULL ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_connect ( G_OBJECT ( window - > AcceptButton ) , " clicked " , G_CALLBACK ( on_locale_accept ) , dict ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_connect ( G_OBJECT ( window - > MainTree ) , " row-activated " , G_CALLBACK ( on_locale_toggle ) , window ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_dialog_run ( GTK_DIALOG ( window - > Window ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -205,7 +309,7 @@ void on_hostname_changed(GtkEntry *self, main_window *widgets){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( yon_config_get_by_key ( hostname_parameter ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_config_set ( hostname_parameter , text ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  else  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_config_register ( hostname_parameter , " config " , text ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_config_register ( hostname_parameter , hostname_section , text ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -213,28 +317,41 @@ void on_id_combo_toggled(GtkComboBox *self, main_window *widgets){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    int  id  =  gtk_combo_box_get_active ( self ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( id = = 2 | | id = = 1 ) {  
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( yon_config_get_by_key ( id_parameter ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            yon_config_set ( id_parameter ,  id  = =  1  ?  " R andom"  :  " hardware " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            yon_config_set ( id_parameter ,  id  = =  1  ?  " r andom"  :  " hardware " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            yon_config_register ( id_parameter , " config " ,  id  = =  1  ?  " R  andom" : " hardware " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            yon_config_register ( id_parameter , id_section ,  id  = =  1  ?  " r  andom" : " hardware " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( id < 3 ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > IDEntry , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > IDCopyButton , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > IDCopyButton , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > IDEntry , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  on_id_changed ( GtkEntry  * self ,  main_window  * widgets ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * text  =  ( char * ) gtk_entry_get_text ( self ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( strcmp ( text , " " ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( yon_config_get_by_key ( id_parameter ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            yon_config_set ( id_parameter , text ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_config_register ( id_parameter , " config " , text ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            yon_config_register ( id_parameter , id_section , text ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( ! main_config . lock_save_global ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            gtk_widget_set_sensitive ( widgets - > SaveGlobalMenuItem , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( ! main_config . lock_save_global & & ! main_config . lock_save_global ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            gtk_widget_set_sensitive ( widgets - > SaveMenuItem , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( ! main_config . lock_save_local ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            gtk_widget_set_sensitive ( widgets - > SaveLocalMenuItem , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > IDCopyButton , 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_ubl_status_box_render ( INSERT_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  else  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveGlobalMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveLocalMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > IDCopyButton , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_ubl_status_box_render ( ID_EMPTY_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -258,16 +375,13 @@ void on_console_font_changed(GtkComboBox *self, main_window *widgets){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( yon_config_get_by_key ( console_font_parameter ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            yon_config_set ( console_font_parameter , code ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            yon_config_register ( console_font_parameter , " locale " , code ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            yon_config_register ( console_font_parameter , console_font_section , code ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  on_language_changed ( GtkComboBox  * self ,  main_window  * widgets ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    GtkTreeIter  iter ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) ) = = 0 ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_config_remove_by_key ( language_parameter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  else  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_combo_box_get_active_iter ( self , & iter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  * code ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter , 1 , & code , - 1 ) ; 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -275,8 +389,7 @@ void on_language_changed(GtkComboBox *self, main_window *widgets){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( yon_config_get_by_key ( language_parameter ) ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_config_set ( language_parameter , code ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  else  { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            yon_config_register ( language_parameter , " locale " , code ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_config_register ( language_parameter , language_section , code ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -334,6 +447,9 @@ main_window *setup_window(){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    widgets - > ConsoleFontCombo  =  yon_gtk_builder_get_widget ( builder , " ConsoleFontCombo " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    widgets - > LanguageCombo  =  yon_gtk_builder_get_widget ( builder , " LanguageCombo " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    widgets - > LocaleButton  =  yon_gtk_builder_get_widget ( builder , " getLocalesButton " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    widgets - > LocaleEntry  =  yon_gtk_builder_get_widget ( builder , " localeEntry " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    widgets - > fontlist  =  GTK_LIST_STORE ( gtk_builder_get_object ( builder , " fontlist " ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    widgets - > languagelist  =  GTK_LIST_STORE ( gtk_builder_get_object ( builder , " languagelist " ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -347,18 +463,6 @@ main_window *setup_window(){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ) , widgets - > DocumentationMenuItem ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ) , widgets - > AboutMenuItem ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( main_config . lock_load_global  = =  1 ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > LoadGlobalMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( main_config . lock_save_global  = =  1 ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveGlobalMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( main_config . lock_save_local  = =  1 ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveLocalMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    /* Widget registration for config monitoring | Регистрация виджетов для мониторинга конфига */ 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // yon_window_config_add_custom_parameter(widgets->HeadInfoLabel,"head-text","label",YON_TYPE_STRING); 
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -377,10 +481,11 @@ main_window *setup_window(){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_connect ( G_OBJECT ( widgets - > IDCombo ) , " changed " , G_CALLBACK ( on_id_combo_toggled ) , widgets ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_connect ( G_OBJECT ( widgets - > IDEntry ) , " changed " , G_CALLBACK ( on_id_changed ) , widgets ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_connect ( G_OBJECT ( widgets - > IDCopyButton ) , " clicked " , G_CALLBACK ( on_id_copy ) , widgets ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_connect ( G_OBJECT ( widgets - > LocaleButton ) , " clicked " , G_CALLBACK ( on_locale_open ) , widgets ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_connect ( G_OBJECT ( widgets - > ConsoleFontCombo ) , " changed " , G_CALLBACK ( on_console_font_changed ) , widgets ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g_signal_connect ( G_OBJECT ( widgets - > LanguageCombo ) , " changed " , G_CALLBACK ( on_language_changed ) , widgets ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // g_signal_connect(G_OBJECT(widgets->IDRandomCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->IDCopyButton);
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // g_signal_connect(G_OBJECT(widgets->IDRandomCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->IDEntry);
 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    main_config . localeslist  =  gtk_list_store_new ( 3 , G_TYPE_STRING , G_TYPE_STRING , G_TYPE_BOOLEAN ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    int  size ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    config_str  locales  =  yon_config_load ( get_locales_command , & size ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    GtkTreeIter  iter ; 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -389,7 +494,7 @@ main_window *setup_window(){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        locales [ i ] = yon_char_divide_search ( locales [ i ] , " \n " , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        config_str  loc_parsed  =  yon_char_parse ( locales [ i ] , & locsize , " ; " ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_list_store_append ( widgets - > languagelist , & iter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_list_store_set ( widgets - > languagelist , & iter , 0 , _ ( loc_parsed [ 1 ] ) , 1 , loc_parsed [ 0 ] , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_list_store_set ( widgets - > languagelist , & iter , 0 , _ ( loc_parsed [ 1 ] ) , 1 , loc_parsed [ 0 ] , 2 , 0 , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    config_str  fonts  =  yon_config_load ( get_fonts_command , & size ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    for  ( int  i = 0 ; i < size ; i + + ) { 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -397,6 +502,17 @@ main_window *setup_window(){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_list_store_append ( widgets - > fontlist , & iter ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_list_store_set ( widgets - > fontlist , & iter , 0 , fonts [ i ] , - 1 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( main_config . lock_load_global  = =  1 ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > LoadGlobalMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( main_config . lock_save_global  = =  1 ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveGlobalMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( main_config . lock_save_local  = =  1 ) { 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveLocalMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        gtk_widget_set_sensitive ( widgets - > SaveMenuItem , 0 ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    gtk_widget_show ( widgets - > Window ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    return  widgets ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -421,6 +537,7 @@ int main(int argc, char *argv[]){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                { " socket-ext-id " ,  1 , 0 ,  ' e ' } , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                { " socket-trd-id " ,  1 , 0 ,  ' t ' } , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                { " debug " ,  0 , 0 ,  ' d ' } , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                { " clean-config " ,  0 , 0 ,  ' c ' } , 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                {  NULL ,  0 ,  NULL ,  0  } 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        for  ( int  i = 0 ; i < argc ; i + + ) { 
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -446,6 +563,8 @@ int main(int argc, char *argv[]){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if ( optarg ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        main_config . load_socket_id = atoi ( optarg ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                case  ' c ' :  rmdir ( yon_char_unite ( yon_ubl_user_get_home_directory ( ) , " / " , LocaleName , " / " , LocaleName , " .conf " , NULL ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    break ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                case  1 : 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    main_config . lock_help = 1 ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    break ; 
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -484,8 +603,6 @@ int main(int argc, char *argv[]){
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_ubl_status_box_setup ( widgets - > StatusIcon , widgets - > StatusBox , widgets - > StatusLabel ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( getuid ( ) ! = 0 ) 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_ubl_status_box_render ( ROOT_WARNING_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        yon_ubl_status_box_render ( TITLE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_ubl_setup_sockets ( widgets - > PlugBox , widgets - > LeftBox , widgets - > RightBox , main_config . socket_id , main_config . load_socket_id , main_config . save_socket_id ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_window_config_setup ( GTK_WINDOW ( widgets - > Window ) ) ; 
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    yon_window_config_load ( config_path ) ;