@ -103,30 +103,39 @@ void on_about(){
//functions
//functions
void yon_load_proceed ( YON_CONFIG_TYPE type ) {
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 ) )
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 ) ) { }
yon_ubl_status_box_render ( LOCAL_LOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
else
else
yon_ubl_status_box_render ( LOAD_FAILED_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
yon_ubl_status_box_render ( LOAD_FAILED_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
}
}
void yon_config_local_load ( GtkWidget * self , main_window * widgets ) {
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 - > HostnameEntry ) , " " ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , " " ) ;
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 - > ConsoleFontCombo ) , 0 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , 0 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , 0 ) ;
yon_load_proceed ( YON_CONFIG_LOCAL ) ;
yon_load_proceed ( YON_CONFIG_LOCAL ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > HostnameEntry ) , yon_config_get_by_key ( hostname_parameter ) ) ;
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 ) ;
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 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 1 ) ;
else if ( ! strcmp ( id , " hardware " ) )
else if ( ! strcmp ( id , " hardware " ) )
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 2 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 2 ) ;
else
else {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , id ) ;
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 * code ;
char * cons_font = yon_config_get_by_key ( console_font_parameter ) ;
char * cons_font = yon_config_get_by_key ( console_font_parameter ) ;
if ( cons_font ) {
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 * 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 ) {
if ( lang ) {
int valid = gtk_tree_model_get_iter_first ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter ) ;
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 ) ) {
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 ( 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 ) {
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 - > HostnameEntry ) , " " ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , " " ) ;
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 - > ConsoleFontCombo ) , 0 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , 0 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , 0 ) ;
yon_load_proceed ( YON_CONFIG_GLOBAL ) ;
yon_load_proceed ( YON_CONFIG_GLOBAL ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > HostnameEntry ) , yon_config_get_by_key ( hostname_parameter ) ) ;
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 ) ;
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 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 1 ) ;
else if ( ! strcmp ( id , " hardware " ) )
else if ( ! strcmp ( id , " hardware " ) )
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 2 ) ;
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > IDCombo ) , 2 ) ;
else
else {
gtk_entry_set_text ( GTK_ENTRY ( widgets - > IDEntry ) , id ) ;
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 * code ;
char * cons_font = yon_config_get_by_key ( console_font_parameter ) ;
char * cons_font = yon_config_get_by_key ( console_font_parameter ) ;
if ( cons_font ) {
if ( cons_font ) {
int valid = gtk_tree_model_get_iter_first ( GTK_TREE_MODEL ( widgets - > fontlist ) , & iter ) ;
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 ) ) {
for ( ; valid ; 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 ) ;
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 ) ; break ; }
if ( code & & ! strcmp ( code , cons_font ) ) gtk_combo_box_set_active_iter ( GTK_COMBO_BOX ( widgets - > ConsoleFontCombo ) , & iter ) ;
else { gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > ConsoleFontCombo ) , 0 ) ; }
}
}
}
}
char * lang = yon_config_get_by_key ( language_parameter ) ;
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 ) {
if ( lang ) {
int valid = gtk_tree_model_get_iter_first ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter ) ;
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 ) ) {
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 , & code , 2 , & is_active , - 1 ) ;
if ( ! strcmp ( code , lang ) ) { gtk_combo_box_set_active_iter ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , & iter ) ; break ; }
if ( code & & ! strcmp ( code , lang ) ) gtk_combo_box_set_active_iter ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , & iter ) ;
else { gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > LanguageCombo ) , 0 ) ; }
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 ( ) {
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 ( ) {
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 ( ) {
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 ) ) {
if ( yon_config_get_by_key ( hostname_parameter ) ) {
yon_config_set ( hostname_parameter , text ) ;
yon_config_set ( hostname_parameter , text ) ;
} else {
} 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 ) ;
int id = gtk_combo_box_get_active ( self ) ;
if ( id = = 2 | | id = = 1 ) {
if ( id = = 2 | | id = = 1 ) {
if ( yon_config_get_by_key ( id_parameter ) ) {
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 {
} 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 ) {
if ( id < 3 ) {
gtk_widget_set_sensitive ( widgets - > IDEntry , 0 ) ;
gtk_widget_set_sensitive ( widgets - > IDEntry , 0 ) ;
gtk_widget_set_sensitive ( widgets - > IDCopyButton , 0 ) ;
}
}
else {
else {
gtk_widget_set_sensitive ( widgets - > IDCopyButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > IDEntry , 1 ) ;
gtk_widget_set_sensitive ( widgets - > IDEntry , 1 ) ;
}
}
}
}
void on_id_changed ( GtkEntry * self , main_window * widgets ) {
void on_id_changed ( GtkEntry * self , main_window * widgets ) {
char * text = ( char * ) gtk_entry_get_text ( self ) ;
char * text = ( char * ) gtk_entry_get_text ( self ) ;
if ( strcmp ( text , " " ) ) {
if ( yon_config_get_by_key ( id_parameter ) ) {
if ( yon_config_get_by_key ( id_parameter ) ) {
yon_config_set ( id_parameter , text ) ;
yon_config_set ( id_parameter , text ) ;
} else {
} 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 ) ) {
if ( yon_config_get_by_key ( console_font_parameter ) ) {
yon_config_set ( console_font_parameter , code ) ;
yon_config_set ( console_font_parameter , code ) ;
} else {
} 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 ) {
void on_language_changed ( GtkComboBox * self , main_window * widgets ) {
GtkTreeIter iter ;
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 ) ;
gtk_combo_box_get_active_iter ( self , & iter ) ;
char * code ;
char * code ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > languagelist ) , & iter , 1 , & code , - 1 ) ;
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 ) ) {
if ( yon_config_get_by_key ( language_parameter ) ) {
yon_config_set ( language_parameter , code ) ;
yon_config_set ( language_parameter , code ) ;
} else {
} 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 - > ConsoleFontCombo = yon_gtk_builder_get_widget ( builder , " ConsoleFontCombo " ) ;
widgets - > LanguageCombo = yon_gtk_builder_get_widget ( builder , " LanguageCombo " ) ;
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 - > fontlist = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " fontlist " ) ) ;
widgets - > languagelist = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " languagelist " ) ) ;
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 - > DocumentationMenuItem ) ;
gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ) , widgets - > AboutMenuItem ) ;
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 | Регистрация виджетов для мониторинга конфига */
/* Widget registration for config monitoring | Регистрация виджетов для мониторинга конфига */
// yon_window_config_add_custom_parameter(widgets->HeadInfoLabel,"head-text","label",YON_TYPE_STRING);
// 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 - > 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 - > 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 - > 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 - > 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 - > 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 ;
int size ;
config_str locales = yon_config_load ( get_locales_command , & size ) ;
config_str locales = yon_config_load ( get_locales_command , & size ) ;
GtkTreeIter iter ;
GtkTreeIter iter ;
@ -389,7 +494,7 @@ main_window *setup_window(){
locales [ i ] = yon_char_divide_search ( locales [ i ] , " \n " , - 1 ) ;
locales [ i ] = yon_char_divide_search ( locales [ i ] , " \n " , - 1 ) ;
config_str loc_parsed = yon_char_parse ( locales [ i ] , & locsize , " ; " ) ;
config_str loc_parsed = yon_char_parse ( locales [ i ] , & locsize , " ; " ) ;
gtk_list_store_append ( widgets - > languagelist , & iter ) ;
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 ) ;
config_str fonts = yon_config_load ( get_fonts_command , & size ) ;
for ( int i = 0 ; i < size ; i + + ) {
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_append ( widgets - > fontlist , & iter ) ;
gtk_list_store_set ( widgets - > fontlist , & iter , 0 , fonts [ i ] , - 1 ) ;
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 ) ;
gtk_widget_show ( widgets - > Window ) ;
return widgets ;
return widgets ;
}
}
@ -421,6 +537,7 @@ int main(int argc, char *argv[]){
{ " socket-ext-id " , 1 , 0 , ' e ' } ,
{ " socket-ext-id " , 1 , 0 , ' e ' } ,
{ " socket-trd-id " , 1 , 0 , ' t ' } ,
{ " socket-trd-id " , 1 , 0 , ' t ' } ,
{ " debug " , 0 , 0 , ' d ' } ,
{ " debug " , 0 , 0 , ' d ' } ,
{ " clean-config " , 0 , 0 , ' c ' } ,
{ NULL , 0 , NULL , 0 }
{ NULL , 0 , NULL , 0 }
} ;
} ;
for ( int i = 0 ; i < argc ; i + + ) {
for ( int i = 0 ; i < argc ; i + + ) {
@ -446,6 +563,8 @@ int main(int argc, char *argv[]){
if ( optarg )
if ( optarg )
main_config . load_socket_id = atoi ( optarg ) ;
main_config . load_socket_id = atoi ( optarg ) ;
break ;
break ;
case ' c ' : rmdir ( yon_char_unite ( yon_ubl_user_get_home_directory ( ) , " / " , LocaleName , " / " , LocaleName , " .conf " , NULL ) ) ;
break ;
case 1 :
case 1 :
main_config . lock_help = 1 ;
main_config . lock_help = 1 ;
break ;
break ;
@ -484,8 +603,6 @@ int main(int argc, char *argv[]){
yon_ubl_status_box_setup ( widgets - > StatusIcon , widgets - > StatusBox , widgets - > StatusLabel ) ;
yon_ubl_status_box_setup ( widgets - > StatusIcon , widgets - > StatusBox , widgets - > StatusLabel ) ;
if ( getuid ( ) ! = 0 )
if ( getuid ( ) ! = 0 )
yon_ubl_status_box_render ( ROOT_WARNING_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
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_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_setup ( GTK_WINDOW ( widgets - > Window ) ) ;
yon_window_config_load ( config_path ) ;
yon_window_config_load ( config_path ) ;