#include "ubinstall-gtk.h" // void on_autohostname_check(GtkWidget *, main_window *widgets){ // gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),1); // if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){ // gtk_widget_set_sensitive(widgets->HotnameEntry,0); // gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->HotnameEntry),"auto"); // }else{ // gtk_widget_set_sensitive(widgets->HotnameEntry,1); // gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->HotnameEntry),"ublinux-install"); // } // } // void on_autohostname_sensitiveness_check(GtkWidget *, main_window *widgets){ // if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck))){ // gtk_widget_set_sensitive(widgets->AutoHostnameCheck,1); // if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){ // gtk_widget_set_sensitive(widgets->HotnameEntry,0); // } else // gtk_widget_set_sensitive(widgets->HotnameEntry,1); // } else { // gtk_widget_set_sensitive(widgets->HotnameEntry,0); // gtk_widget_set_sensitive(widgets->AutoHostnameCheck,0); // } // } // void on_hostname_entry_changed (GtkWidget *, main_window *widgets){ // gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),1); // gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),0); // } network_info *yon_network_info_new(){ network_info *info = new(network_info); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_network_info); info->MainBox = yon_gtk_builder_get_widget(builder,"MainBox"); info->TypeCombo = yon_gtk_builder_get_widget(builder,"TypeCombo"); info->ConnectionCombo = yon_gtk_builder_get_widget(builder,"ConnectionCombo"); info->ConnectionEntry = yon_gtk_builder_get_widget(builder,"ConnectionEntry"); info->EnabledSwitch = yon_gtk_builder_get_widget(builder,"EnabledSwitch"); info->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton"); info->AutoGetIPSwitch = yon_gtk_builder_get_widget(builder,"AutoGetIPSwitch"); info->IpAdressEntry = yon_gtk_builder_get_widget(builder,"IpAdressEntry"); info->GatewayEntry = yon_gtk_builder_get_widget(builder,"GatewayEntry"); info->MaskEntry = yon_gtk_builder_get_widget(builder,"MaskEntry"); info->DNSEntry = yon_gtk_builder_get_widget(builder,"DNSEntry"); g_object_set_data(G_OBJECT(info->RemoveButton),"network_info",info); g_object_set_data(G_OBJECT(info->MainBox),"network_info",info); gtk_widget_show(info->MainBox); return info; } void on_ntp_sync(GtkWidget *, main_window *widgets){ int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo)); gtk_widget_set_sensitive(widgets->NetworkNTPEntry,0); switch(mode){ case 0: gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),""); gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),""); break; case 2:{ int size; config_str parsed = yon_config_load(get_ntp_default_command,&size); if (size&&!yon_char_is_empty(parsed[0])&&strcmp(parsed[0],"(null)\n")){ free(yon_char_divide_search(parsed[0],"=",-1)); yon_char_remove_last_symbol(parsed[0],'\n'); yon_char_remove_brackets(parsed[0]); gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),parsed[0]); yon_char_parsed_free(parsed,size); gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),""); } } break; case 3:{ int size; config_str parsed = yon_config_load(get_ntp_ru_command,&size); if (size&&!yon_char_is_empty(parsed[0])&&strcmp(parsed[0],"(null)\n")){ free(yon_char_divide_search(parsed[0],"=",-1)); yon_char_remove_last_symbol(parsed[0],'\n'); yon_char_remove_brackets(parsed[0]); gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),parsed[0]); yon_char_parsed_free(parsed,size); gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),""); } } break; case 1: gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),"DHCP"); gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),""); break; case 5: gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),""); gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),""); break; case 4: gtk_widget_set_sensitive(widgets->NetworkNTPEntry,1); gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->NetworkNTPEntry),""); gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),""); break; } } void on_connection_add(main_window *widgets){ network_info *info = yon_network_info_new(); gtk_box_pack_start(GTK_BOX(widgets->NetworkConnectionsBox),info->MainBox,0,0,0); } int yon_network_save(main_window *widgets){ if (gtk_switch_get_active(GTK_SWITCH(widgets->NetworkDomainSwitch))){ const char *domain_name = gtk_entry_get_text(GTK_ENTRY(widgets->NetworkDomainNameEntry)); if (!yon_char_is_empty(domain_name)){ yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(widgets->NetworkDomainNameEntry); return 0; } const char *domain_admin = gtk_entry_get_text(GTK_ENTRY(widgets->NetworkDomainAdminEntry)); const char *domain_password = gtk_entry_get_text(GTK_ENTRY(widgets->NetworkDomainPasswordEntry)); if (!yon_char_is_empty(domain_name)) yon_config_register(DOMAIN_parameter,DOMAIN_parameter_command,(char*)domain_name); else yon_config_remove_by_key(DOMAIN_parameter); if ((!yon_char_is_empty(domain_admin)&&yon_char_is_empty(domain_password))||(yon_char_is_empty(domain_admin)&&!yon_char_is_empty(domain_password))){ yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(widgets->NetworkDomainAdminEntry); yon_ubl_status_highlight_incorrect(widgets->NetworkDomainPasswordEntry); return 0; } if (!yon_char_is_empty(domain_admin)&&!yon_char_is_empty(domain_password)){ int size; config_str encrypted_password = yon_config_load(encrypt_domain_password_command(domain_password),&size); if (!size){ yon_ubl_status_box_render(ENCRYPT_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(widgets->NetworkDomainPasswordEntry); return 0; } char *admin_string_full = yon_char_unite(domain_admin,":",encrypted_password[0],NULL); yon_config_register(DOMAIN_admanger_parameter,DOMAIN_parameter_command,admin_string_full); } else { yon_config_remove_by_key(DOMAIN_admanger_parameter); } } if (gtk_switch_get_active(GTK_SWITCH(widgets->NetworkNTPServerSwitch))){ int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo)); switch(mode){ case 0:yon_config_remove_by_key(NTPSERVERS_parameter); break; case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp"); break; case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default"); break; case 3:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"ntp-ru"); break; case 5:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"disable"); break; case 6:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop"); break; case 4: char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NetworkNTPEntry)); if (yon_char_is_empty(value)) { yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(widgets->NetworkNTPEntry); return 0; } yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,value); break; } } else { yon_config_remove_by_key(NTPSERVERS_parameter); } return 1; }