@ -4,122 +4,23 @@ config main_config;
//functions
//functions
void on_save_done ( main_window * , config_str output , int size ) {
char * final_output = yon_char_parsed_to_string ( output , size , " \n " ) ;
if ( final_output ) {
printf ( " %s \n " , final_output ) ;
free ( final_output ) ;
}
yon_char_parsed_free ( output , size ) ;
textdomain ( template_ui_LocaleName ) ;
switch ( main_config . save_config ) {
case 0 :
yon_ubl_status_box_render ( GLOBAL_SAVE_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
break ;
case 1 :
yon_ubl_status_box_render ( LOCAL_SAVE_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
break ;
case 2 :
yon_ubl_status_box_render ( GLOBAL_LOCAL_SAVE_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
break ;
case 3 :
yon_ubl_status_box_render ( SAVE_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
}
textdomain ( LocaleName ) ;
}
void on_config_reload ( GtkWidget * , main_window * widgets ) {
if ( main_config . load_mode = = 0 ) {
yon_config_global_load ( NULL , widgets ) ;
} else if ( main_config . load_mode = = 1 ) {
yon_config_local_load ( NULL , widgets ) ;
}
yon_interface_update ( widgets ) ;
}
void yon_load_proceed ( YON_CONFIG_TYPE type ) {
yon_config_clean ( ) ;
if ( ! yon_char_is_empty ( config_get_default_command ) )
yon_config_load_config ( YON_CONFIG_DEFAULT , config_get_default_command , NULL ) ;
if ( type = = YON_CONFIG_GLOBAL ) {
yon_config_load_config ( type , config_get_command ( " global " ) , NULL ) ;
} else if ( type = = YON_CONFIG_LOCAL ) {
yon_config_load_config ( type , config_get_command ( " system " ) , NULL ) ;
} else if ( type = = YON_CONFIG_CUSTOM ) {
char * path = " " ;
textdomain ( template_ui_LocaleName ) ;
GtkWidget * dialog = gtk_file_chooser_dialog_new ( template_app_information . app_title , NULL , GTK_FILE_CHOOSER_ACTION_SAVE , CANCEL_LABEL , GTK_RESPONSE_CANCEL , OPEN_LABEL , GTK_RESPONSE_ACCEPT , NULL ) ;
textdomain ( LocaleName ) ;
gtk_window_set_icon_name ( GTK_WINDOW ( dialog ) , " com.ublinux.ubl-settings-services " ) ;
gtk_window_set_title ( GTK_WINDOW ( dialog ) , TITLE_LABEL ) ;
GtkFileFilter * filter = gtk_file_filter_new ( ) ;
gtk_file_filter_add_pattern ( filter , " *.ini " ) ;
gtk_file_filter_set_name ( filter , " *.ini " ) ;
gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( dialog ) , filter ) ;
gtk_widget_show ( dialog ) ;
int response = gtk_dialog_run ( GTK_DIALOG ( dialog ) ) ;
if ( response = = GTK_RESPONSE_ACCEPT ) {
char * file = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER ( dialog ) ) ;
if ( ! yon_char_is_empty ( file ) ) {
path = file ;
}
gtk_widget_destroy ( dialog ) ;
} else {
gtk_widget_destroy ( dialog ) ;
}
char * command = config_get_command ( path ) ;
yon_config_load_config ( type , command , NULL ) ;
}
}
void yon_config_local_load ( GtkWidget * , main_window * widgets ) {
yon_load_proceed ( YON_CONFIG_LOCAL ) ;
main_config . load_mode = YON_CONFIG_LOCAL ;
yon_interface_update ( widgets ) ;
}
void yon_config_global_load ( GtkWidget * , main_window * widgets ) {
yon_load_proceed ( YON_CONFIG_GLOBAL ) ;
if ( getuid ( ) = = 0 ) {
textdomain ( template_ui_LocaleName ) ;
yon_ubl_status_box_render ( GLOBAL_LOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
textdomain ( LocaleName ) ;
}
main_config . load_mode = 0 ;
yon_interface_update ( widgets ) ;
}
void yon_config_custom_load ( GtkWidget * , main_window * widgets ) {
yon_load_proceed ( YON_CONFIG_CUSTOM ) ;
main_config . load_mode = YON_CONFIG_CUSTOM ;
yon_interface_update ( widgets ) ;
}
void yon_interface_update ( main_window * widgets ) {
void yon_interface_update ( main_window * widgets ) {
g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > IDEntry ) , G_CALLBACK ( on_id_changed ) , widgets ) ;
g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > IDEntry ) , G_CALLBACK ( on_id_changed ) , widgets ) ;
g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > HostnameEntry ) , G_CALLBACK ( on_hostname_changed ) , widgets ) ;
g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > HostnameEntry ) , G_CALLBACK ( on_hostname_changed ) , widgets ) ;
// g_signal_handlers_block_by_func(G_OBJECT(widgets->LanguageCombo),G_CALLBACK(on_language_changed),widgets);
gtk_list_store_clear ( widgets - > LanguageList ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > HostnameEntry ) , " " ) ;
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);
gtk_entry_set_text ( GTK_ENTRY ( widgets - > DomainEntry ) , " " ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > DomainEntry ) , " " ) ;
int size ;
int size ;
GtkTreeIter iter ;
config_str rtn = yon_file_open ( get_id_command , & size ) ;
config_str rtn = yon_file_open ( get_id_command , & size ) ;
rtn [ 0 ] = yon_char_divide_search ( rtn [ 0 ] , " \n " , - 1 ) ;
rtn [ 0 ] = yon_char_divide_search ( rtn [ 0 ] , " \n " , - 1 ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , * rtn ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , * rtn ) ;
// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
char * hostname = yon_config_get_by_key ( hostname_parameter ) ;
char * hostname = yon_config_get_by_key ( hostname_parameter ) ;
if ( ! yon_char_is_empty ( hostname ) ) {
if ( ! yon_char_is_empty ( hostname ) ) {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > HostnameEntry ) , hostname ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > HostnameEntry ) , hostname ) ;
}
}
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_list_store_set ( widgets - > LanguageList , & iter , 2 , 0 , - 1 ) ;
}
char * id = yon_config_get_by_key ( id_parameter ) ;
char * id = yon_config_get_by_key ( id_parameter ) ;
if ( id & & ! strcmp ( id , " random " ) )
if ( id & & ! strcmp ( id , " random " ) )
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 1 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 1 ) ;
@ -137,80 +38,35 @@ void yon_interface_update(main_window *widgets){
if ( ! yon_char_is_empty ( domain ) ) {
if ( ! yon_char_is_empty ( domain ) ) {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > DomainEntry ) , domain ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > DomainEntry ) , domain ) ;
}
}
{
// char *lang = yon_config_get_by_key(language_parameter);
char * config_locale = config ( locale_parameter ) ;
// char *avlocale = yon_config_get_by_key(locale_parameter);
char * config_languages = config ( language_parameter ) ;
// int locsize;
int parsed_param_size ;
// if (avlocale){};
config_str parsed_param = yon_char_parse ( config_locale , & parsed_param_size , " , " ) ;
// config_str locale_parsed = yon_char_parse(avlocale,&locsize,",");
GtkTreeIter iter ;
// gboolean is_active;
for ( int i = 0 ; i < parsed_param_size ; i + + ) {
// char *locale_string="";
char * cur_lang = g_hash_table_lookup ( main_config . languages , parsed_param [ i ] ) ;
// char *loc_name;
if ( ! yon_char_is_empty ( cur_lang ) ) {
// if (!yon_char_is_empty(avlocale)){
int parsed_size ;
// int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->LanguageList),&iter);
config_str parsed = yon_char_parse ( cur_lang , & parsed_size , " | " ) ;
// for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->LanguageList),&iter)){
gtk_list_store_append ( widgets - > LanguageList , & iter ) ;
// gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&loc_name,1,&code,2,&is_active,-1);
gtk_list_store_set ( widgets - > LanguageList , & iter , 1 , parsed [ 1 ] , 2 , parsed [ 2 ] , 3 , parsed [ 0 ] , - 1 ) ;
// if (yon_char_parsed_check_exist(locale_parsed,locsize,code)>-1){
if ( ! yon_char_is_empty ( config_languages ) ) {
// gtk_list_store_set(widgets->languagelist,&iter,2,1,-1);
if ( ! strcmp ( config_languages , parsed [ 0 ] ) ) {
// char *temp = yon_char_unite(yon_char_is_empty(locale_string)?"":locale_string,yon_char_is_empty(locale_string)?"":"; ",loc_name,NULL);
gtk_list_store_set ( widgets - > LanguageList , & iter , 0 , 1 , - 1 ) ;
// if (!yon_char_is_empty(locale_string)) free(locale_string);
}
// locale_string = temp;
} else if ( ! i ) {
// }
// }
}
// if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
yon_char_parsed_free ( parsed , parsed_size ) ;
// }
}
// yon_language_update(widgets);
// if (!yon_char_is_empty(lang)) {
// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LanguageCombo),lang);
// } else {
// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
// }
g_signal_handlers_unblock_by_func ( G_OBJECT ( widgets - > IDEntry ) , G_CALLBACK ( on_id_changed ) , widgets ) ;
g_signal_handlers_unblock_by_func ( G_OBJECT ( widgets - > HostnameEntry ) , G_CALLBACK ( on_hostname_changed ) , widgets ) ;
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->LanguageCombo),G_CALLBACK(on_language_changed),widgets);
}
void yon_config_global_local_save ( ) {
main_config . save_config = 2 ;
int changed = yon_config_get_status ( id_parameter ) = = 1 ;
template_saving_window * window = yon_save_proceed ( NULL , YON_CONFIG_BOTH , config_get_command ( " global " ) , NULL ) ;
if ( window ) {
if ( changed ) {
yon_ubl_status_box_spawn_infinite ( GTK_CONTAINER ( window - > StatusBox ) , " warning " , SAVE_WARNING_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
}
}
}
void yon_config_local_save ( ) {
main_config . save_config = 1 ;
int changed = yon_config_get_status ( id_parameter ) = = 1 ;
template_saving_window * window = yon_save_proceed ( " system " , YON_CONFIG_LOCAL , config_get_command ( " system " ) , NULL ) ;
if ( window ) {
if ( changed ) {
yon_ubl_status_box_spawn_infinite ( GTK_CONTAINER ( window - > StatusBox ) , " warning " , SAVE_WARNING_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
}
}
}
void yon_config_global_save ( ) {
main_config . save_config = 0 ;
int changed = yon_config_get_status ( id_parameter ) = = 1 ;
template_saving_window * window = yon_save_proceed ( " global " , YON_CONFIG_GLOBAL , config_get_command ( " global " ) , NULL ) ;
if ( window ) {
if ( changed ) {
yon_ubl_status_box_spawn_infinite ( GTK_CONTAINER ( window - > StatusBox ) , " warning " , SAVE_WARNING_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
}
}
}
}
g_signal_handlers_unblock_by_func ( G_OBJECT ( widgets - > IDEntry ) , G_CALLBACK ( on_id_changed ) , widgets ) ;
g_signal_handlers_unblock_by_func ( G_OBJECT ( widgets - > HostnameEntry ) , G_CALLBACK ( on_hostname_changed ) , widgets ) ;
}
}
void yon_config_custom_save ( ) {
main_config . save_config = 3 ;
template_saving_window * window = yon_save_proceed ( NULL , YON_CONFIG_CUSTOM , config_get_command ( " system " ) , NULL ) ;
if ( window ) { } ;
}
void yon_gtk_windget_set_sensitive_from_entry_emptiness ( GtkEntry * self , GtkWidget * target ) {
void yon_gtk_windget_set_sensitive_from_entry_emptiness ( GtkEntry * self , GtkWidget * target ) {
if ( yon_char_is_empty ( gtk_entry_get_text ( self ) ) ) {
if ( yon_char_is_empty ( gtk_entry_get_text ( self ) ) ) {
gtk_widget_set_sensitive ( target , 0 ) ;
gtk_widget_set_sensitive ( target , 0 ) ;
@ -219,6 +75,20 @@ void yon_gtk_windget_set_sensitive_from_entry_emptiness(GtkEntry *self, GtkWidge
}
}
}
}
void on_locale_toggled ( GtkCellRenderer * , gchar * path , main_window * widgets ) {
GtkTreeIter fiter ;
GtkTreeIter iter ;
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > LanguageList ) ;
gtk_tree_model_get_iter_from_string ( model , & fiter , path ) ;
for_iter ( model , & iter ) {
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 0 , 0 , - 1 ) ;
}
char * target ;
gtk_tree_model_get ( model , & fiter , 3 , & target , - 1 ) ;
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & fiter , 0 , 1 , - 1 ) ;
yon_config_register ( language_parameter , language_parameter_command , target ) ;
}
void on_hostname_changed ( GtkEntry * self , main_window * ) {
void on_hostname_changed ( GtkEntry * self , main_window * ) {
char * text = ( char * ) gtk_entry_get_text ( self ) ;
char * text = ( char * ) gtk_entry_get_text ( self ) ;
@ -297,11 +167,37 @@ void on_terminal_command_ended(VteTerminal *, gint status, domain_info_window *w
}
}
}
}
void on_language_default_toggled ( GtkWidget * , int status , main_window * widgets ) {
gtk_widget_set_sensitive ( widgets - > LocaleTree , ! status ) ;
gtk_widget_set_sensitive ( widgets - > LocaleAddButton , ! status ) ;
gtk_widget_set_sensitive ( widgets - > LocaleRemoveButton , ! status ) ;
if ( ! status ) {
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > LanguageList ) ;
GtkTreeIter iter ;
char * locales = NULL ;
for_iter ( model , & iter ) {
int status ;
char * target ;
gtk_tree_model_get ( model , & iter , 0 , & status , 3 , & target , - 1 ) ;
char * temp = yon_char_append_element ( locales ? locales : " " , target , " , " ) ;
if ( ! yon_char_is_empty ( locales ) ) free ( locales ) ;
locales = temp ;
if ( status ) {
yon_config_register ( language_parameter , language_parameter_command , target ) ;
}
}
if ( ! yon_char_is_empty ( locales ) ) {
yon_config_register ( locale_parameter , locale_parameter_command , locales ) ;
}
}
}
main_window * yon_main_window_complete ( main_window * widgets ) {
main_window * yon_main_window_complete ( main_window * widgets ) {
/* Widgets getting | Получение виджетов */
/* Widgets getting | Получение виджетов */
widgets = yon_remalloc ( widgets , sizeof ( main_window ) ) ;
widgets = yon_remalloc ( widgets , sizeof ( main_window ) ) ;
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_path ) ;
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_path ) ;
gtk_box_pack_start ( GTK_BOX ( widgets - > InterfaceBox ) , yon_gtk_builder_get_widget ( builder , " BoxMain " ) , 0 , 0 , 0 ) ;
gtk_box_pack_start ( GTK_BOX ( widgets - > InterfaceBox ) , yon_gtk_builder_get_widget ( builder , " BoxMain " ) , 1, 1 , 0 ) ;
widgets - > HostnameEntry = yon_gtk_builder_get_widget ( builder , " HostnameEntry " ) ;
widgets - > HostnameEntry = yon_gtk_builder_get_widget ( builder , " HostnameEntry " ) ;
widgets - > IDCombo = yon_gtk_builder_get_widget ( builder , " IDCombo " ) ;
widgets - > IDCombo = yon_gtk_builder_get_widget ( builder , " IDCombo " ) ;
@ -312,6 +208,7 @@ main_window *yon_main_window_complete(main_window *widgets){
widgets - > LocaleAddButton = yon_gtk_builder_get_widget ( builder , " LocaleAddButton " ) ;
widgets - > LocaleAddButton = yon_gtk_builder_get_widget ( builder , " LocaleAddButton " ) ;
widgets - > LocaleRemoveButton = yon_gtk_builder_get_widget ( builder , " LocaleRemoveButton " ) ;
widgets - > LocaleRemoveButton = yon_gtk_builder_get_widget ( builder , " LocaleRemoveButton " ) ;
widgets - > LocaleDefaultSwitch = yon_gtk_builder_get_widget ( builder , " LocaleDefaultSwitch " ) ;
widgets - > LocaleDefaultSwitch = yon_gtk_builder_get_widget ( builder , " LocaleDefaultSwitch " ) ;
widgets - > LocaleCell = GTK_CELL_RENDERER ( gtk_builder_get_object ( builder , " LocaleCell " ) ) ;
widgets - > FindButton = yon_gtk_builder_get_widget ( builder , " FindButton " ) ;
widgets - > FindButton = yon_gtk_builder_get_widget ( builder , " FindButton " ) ;
widgets - > DomainButton = yon_gtk_builder_get_widget ( builder , " DomainButton " ) ;
widgets - > DomainButton = yon_gtk_builder_get_widget ( builder , " DomainButton " ) ;
@ -322,18 +219,9 @@ main_window *yon_main_window_complete(main_window *widgets){
widgets - > DocumentationMenuItem = yon_ubl_menu_item_documentation_new ( DOCUMENTATION_LABEL ) ;
widgets - > DocumentationMenuItem = yon_ubl_menu_item_documentation_new ( DOCUMENTATION_LABEL ) ;
widgets - > AboutMenuItem = yon_ubl_menu_item_about_new ( ABOUT_LABEL ) ;
widgets - > AboutMenuItem = yon_ubl_menu_item_about_new ( ABOUT_LABEL ) ;
gtk_window_set_title ( GTK_WINDOW ( widgets - > Window ) , TITLE_LABEL ) ;
GtkWidget * menu = yon_gtk_builder_get_widget ( builder , " menu2 " ) ;
gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ) , widgets - > DocumentationMenuItem ) ;
gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ) , widgets - > AboutMenuItem ) ;
/* Widget registration for config monitoring | Регистрация виджетов для мониторинга конфига */
/* Widget registration for config monitoring | Регистрация виджетов для мониторинга конфига */
/* Signal connection | Присоединение сигналов */
/* Signal connection | Присоединение сигналов */
g_signal_connect ( G_OBJECT ( widgets - > DocumentationMenuItem ) , " activate " , G_CALLBACK ( on_open_documentation_confirmation ) , WIKI_LINK ) ;
g_signal_connect ( G_OBJECT ( widgets - > AboutMenuItem ) , " activate " , G_CALLBACK ( on_about ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadGlobalMenuItem ) , " activate " , G_CALLBACK ( yon_config_global_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadGlobalMenuItem ) , " activate " , G_CALLBACK ( yon_config_global_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadLocalMenuItem ) , " activate " , G_CALLBACK ( yon_config_local_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadLocalMenuItem ) , " activate " , G_CALLBACK ( yon_config_local_load ) , widgets ) ;
@ -349,10 +237,9 @@ main_window *yon_main_window_complete(main_window *widgets){
g_signal_connect ( G_OBJECT ( widgets - > IDEntry ) , " changed " , G_CALLBACK ( on_id_changed ) , 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 - > IDCopyButton ) , " clicked " , G_CALLBACK ( on_id_copy ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LocaleAddButton ) , " clicked " , G_CALLBACK ( on_language_open ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LocaleAddButton ) , " clicked " , G_CALLBACK ( on_language_open ) , widgets ) ;
// g_signal_connect(G_OBJECT(widgets->LocaleRemoveButton),"clicked",G_CALLBACK(on_language_remove),widgets);
g_signal_connect ( G_OBJECT ( widgets - > LocaleRemoveButton ) , " clicked " , G_CALLBACK ( on_language_remove ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LocaleDefaultSwitch ) , " state-set " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_switch_inversed ) , widgets - > LocaleTree ) ;
g_signal_connect ( G_OBJECT ( widgets - > LocaleDefaultSwitch ) , " state-set " , G_CALLBACK ( on_language_default_toggled ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LocaleDefaultSwitch ) , " state-set " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_switch_inversed ) , widgets - > LocaleAddButton ) ;
g_signal_connect ( G_OBJECT ( widgets - > LocaleCell ) , " toggled " , G_CALLBACK ( on_locale_toggled ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LocaleDefaultSwitch ) , " state-set " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_switch_inversed ) , widgets - > LocaleRemoveButton ) ;
g_signal_connect ( G_OBJECT ( widgets - > DomainButton ) , " clicked " , G_CALLBACK ( on_domain_opened ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > DomainButton ) , " clicked " , G_CALLBACK ( on_domain_opened ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > DomainEntry ) , " icon-press " , G_CALLBACK ( on_main_window_domain_status_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > DomainEntry ) , " icon-press " , G_CALLBACK ( on_main_window_domain_status_clicked ) , widgets ) ;
@ -362,23 +249,9 @@ main_window *yon_main_window_complete(main_window *widgets){
g_signal_connect ( G_OBJECT ( widgets - > FindButton ) , " clicked " , G_CALLBACK ( on_find_domains_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > FindButton ) , " clicked " , G_CALLBACK ( on_find_domains_clicked ) , widgets ) ;
gtk_widget_set_size_request ( widgets - > Window , 800 , 440 ) ;
// g_timeout_add(1000,(GSourceFunc)on_check_domain_connected,widgets);
on_check_domain_connected ( NULL , widgets ) ;
on_check_domain_connected ( NULL , widgets ) ;
int size ;
config_str locales = yon_resource_open_file ( get_locales_command , & size ) ;
GtkTreeIter iter ;
for ( int i = 1 ; i < size ; i + + ) {
int locsize ;
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 ] , 2 , 0 , - 1 ) ;
}
yon_char_parsed_free ( locales , size ) ;
if ( main_config . lock_load_global = = 1 ) {
if ( main_config . lock_load_global = = 1 ) {
gtk_widget_set_sensitive ( widgets - > LoadGlobalMenuItem , 0 ) ;
gtk_widget_set_sensitive ( widgets - > LoadGlobalMenuItem , 0 ) ;
}
}
@ -399,9 +272,24 @@ main_window *yon_main_window_complete(main_window *widgets){
return widgets ;
return widgets ;
}
}
void yon_config_init ( ) {
main_config . languages = g_hash_table_new ( g_str_hash , g_str_equal ) ;
int size ;
config_str languages = yon_config_load ( languages_command , & size ) ;
for ( int i = 0 ; i < size ; i + + ) {
yon_char_remove_last_symbol ( languages [ i ] , ' \n ' ) ;
int parsed_size ;
config_str parsed = yon_char_parse ( languages [ i ] , & parsed_size , " | " ) ;
g_hash_table_insert ( main_config . languages , yon_char_new ( parsed [ 0 ] ) , yon_char_new ( languages [ i ] ) ) ;
yon_char_parsed_free ( parsed , parsed_size ) ;
}
yon_char_parsed_free ( languages , size ) ;
}
int main ( int argc , char * argv [ ] ) {
int main ( int argc , char * argv [ ] ) {
setlocale ( LC_ALL , " " ) ;
setlocale ( LC_ALL , " " ) ;
textdomain ( LocaleName ) ;
textdomain ( LocaleName ) ;
yon_config_init ( ) ;
yon_ubl_connect_config ( ( _template_config * ) & main_config ) ;
yon_ubl_connect_config ( ( _template_config * ) & main_config ) ;
yon_ubl_window_init ( TITLE_LABEL , TITLE_INFO_LABEL , LocaleName , CssPath , LocaleName , version_application , WIKI_LINK ) ;
yon_ubl_window_init ( TITLE_LABEL , TITLE_INFO_LABEL , LocaleName , CssPath , LocaleName , version_application , WIKI_LINK ) ;
config_str unfound = NULL ;
config_str unfound = NULL ;