|
|
#include "ubinstall-gtk.h"
|
|
|
|
|
|
config main_config;
|
|
|
|
|
|
int cur_slide=0;
|
|
|
|
|
|
// //functions
|
|
|
|
|
|
void on_toggle_button_switch_on(GtkWidget *, GtkToggleButton *toggle){
|
|
|
gtk_toggle_button_set_active(toggle,1);
|
|
|
}
|
|
|
|
|
|
double yon_size_long_convert_to_mod(double size, char mod){
|
|
|
int sizemod = yon_get_size_get_from_letter(mod);
|
|
|
double final_size = size;
|
|
|
for (int i=-1;i<sizemod;i++){
|
|
|
final_size/=1024;
|
|
|
}
|
|
|
return final_size;
|
|
|
}
|
|
|
|
|
|
double yon_size_long_convert_automatic(unsigned long bytes, char *size){
|
|
|
int repeats;
|
|
|
double byte_float=bytes;
|
|
|
for (repeats=-1;byte_float>1024;repeats++){
|
|
|
byte_float=byte_float/1024;
|
|
|
}
|
|
|
if (repeats==-1) {
|
|
|
repeats=0;
|
|
|
byte_float=byte_float/1024;
|
|
|
}
|
|
|
switch(repeats){
|
|
|
case 0: (*size)='K';
|
|
|
break;
|
|
|
case 1: (*size)='M';
|
|
|
break;
|
|
|
case 2: (*size)='G';
|
|
|
break;
|
|
|
case 3: (*size)='T';
|
|
|
break;
|
|
|
}
|
|
|
return byte_float;
|
|
|
}
|
|
|
|
|
|
// // standard functions
|
|
|
// /**config_init()
|
|
|
// * [EN]
|
|
|
// *
|
|
|
// * [RU]
|
|
|
// * Функция инициализации всех параметров конфигурации
|
|
|
// */
|
|
|
// void config_init(){
|
|
|
// main_config.always_open_documentation=0;
|
|
|
// main_config.socket_id=-1;
|
|
|
// main_config.save_socket_id=-1;
|
|
|
// main_config.load_socket_id=-1;
|
|
|
// main_config.lock_help=0;
|
|
|
// main_config.lock_help=0;
|
|
|
// main_config.lock_load_global=0;
|
|
|
// main_config.lock_save_global=0;
|
|
|
// main_config.lock_save_local=0;
|
|
|
// main_config.debug_mode=0;
|
|
|
// main_config.slider_thread=0;
|
|
|
// main_config.install_thread=0;
|
|
|
// main_config.progress_thread=0;
|
|
|
// main_config.install_complete=0;
|
|
|
// main_config.save_done=0;
|
|
|
// main_config.save_configured=0;
|
|
|
// main_config.configure_mode=0;
|
|
|
// main_config.load_mode=-1;
|
|
|
// main_config.log_progress_buzy=0;
|
|
|
// main_config.log_end=0;
|
|
|
// main_config.exit_accepted=0;
|
|
|
// }
|
|
|
|
|
|
// void on_root_get_root(char *argline){
|
|
|
// yon_launch(argline);
|
|
|
// }
|
|
|
|
|
|
// int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled){
|
|
|
// int width = gtk_widget_get_allocated_width((gtk_widget_get_parent(GTK_WIDGET(target))));
|
|
|
// int height = gtk_widget_get_allocated_height((gtk_widget_get_parent(GTK_WIDGET(target))));
|
|
|
//
|
|
|
// int newImgWidthDef = (width <= 217) ? width : width - 30;
|
|
|
// int newImgHeightDef = (height <= 120) ? height : height - 80;
|
|
|
//
|
|
|
// int originalWidth = gdk_pixbuf_get_width(pixbuf_unscaled);
|
|
|
// int originalHeight = gdk_pixbuf_get_height(pixbuf_unscaled);
|
|
|
// int newImgHeight = (int)(originalHeight / ((double) originalWidth / newImgWidthDef));
|
|
|
//
|
|
|
// if (newImgHeight > newImgHeightDef) {
|
|
|
// newImgHeight = newImgHeightDef;
|
|
|
// newImgWidthDef = (int)(originalWidth / ((double) originalHeight / newImgHeight));
|
|
|
// }
|
|
|
// int newImageWidth = (int)(originalWidth / ((double) originalHeight / newImgHeight));
|
|
|
//
|
|
|
// GdkPixbuf *scaledPixBuf = gdk_pixbuf_scale_simple(pixbuf_unscaled, newImageWidth, newImgHeight, GDK_INTERP_BILINEAR);
|
|
|
// gtk_image_set_from_pixbuf(target, scaledPixBuf);
|
|
|
//
|
|
|
// g_object_unref(scaledPixBuf);
|
|
|
//
|
|
|
// return 1;
|
|
|
// }
|
|
|
|
|
|
void yon_switch_page_render(main_window *widgets){
|
|
|
|
|
|
enum YON_PAGES page = yon_page_get_current(GTK_NOTEBOOK(widgets->Notebook));
|
|
|
switch(page){
|
|
|
case YON_PAGE_WELCOME:
|
|
|
page = 0;
|
|
|
break;
|
|
|
case YON_PAGE_LICENCE:
|
|
|
page = 1;
|
|
|
break;
|
|
|
case YON_PAGE_SECTIONS:
|
|
|
case YON_PAGE_OS_COMPONENTS:
|
|
|
case YON_PAGE_INSTALL_COMMON:
|
|
|
case YON_PAGE_INSTALL_SAME_PARTITION:
|
|
|
case YON_PAGE_INSTALL_SEPARATE:
|
|
|
case YON_PAGE_INSTALL_ADVANCED:
|
|
|
case YON_PAGE_INSTALL_RECOVERY:
|
|
|
case YON_PAGE_INSTALLATION_BEGIN:
|
|
|
case YON_PAGE_KERNEL:
|
|
|
case YON_PAGE_SOFTWARE:
|
|
|
case YON_PAGE_RECOVERY_GRUB_INSTALL:
|
|
|
case YON_PAGE_RECOVERY_GRUB_UPDATE:
|
|
|
case YON_PAGE_RECOVERY_OS_ONLY:
|
|
|
case YON_PAGE_RECOVERY_USRDATA_ONLY:
|
|
|
page = 2;
|
|
|
break;
|
|
|
case YON_PAGE_REGION:
|
|
|
page = 3;
|
|
|
break;
|
|
|
case YON_PAGE_KEYBOARD:
|
|
|
page = 4;
|
|
|
break;
|
|
|
case YON_PAGE_USERS:
|
|
|
page = 5;
|
|
|
break;
|
|
|
case YON_PAGE_BOOTLOADER:
|
|
|
case YON_PAGE_STARTUP:
|
|
|
case YON_PAGE_NETWORK:
|
|
|
page = 6;
|
|
|
break;
|
|
|
case YON_PAGE_INSTALLATION:
|
|
|
page = 7;
|
|
|
break;
|
|
|
case YON_PAGE_COMPLETED:
|
|
|
case YON_PAGE_COMPLETION:
|
|
|
case YON_PAGE_INSTALL_ERROR:
|
|
|
case YON_PAGE_CONFIGURE_END:
|
|
|
case YON_PAGE_CONFIGURE_SAVE:
|
|
|
page=8;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
if (widgets){};
|
|
|
GtkContainer *parent = GTK_CONTAINER(gtk_widget_get_parent(widgets->UsersToggle));
|
|
|
GList *list = gtk_container_get_children(parent);
|
|
|
for (guint i=0;i<g_list_length(list);i++){
|
|
|
if (i!=(guint)page){
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_list_nth_data(list,i)),0);
|
|
|
} else {
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_list_nth_data(list,i)),1);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
g_list_free(list);
|
|
|
}
|
|
|
|
|
|
// gboolean on_image_slide(void *data){
|
|
|
// main_window *widgets = (main_window*)data;
|
|
|
// int size;
|
|
|
// config_str target = yon_char_parsed_new(&size,slide_repeat_path);
|
|
|
// if (size)
|
|
|
// yon_char_parsed_free(target,size);
|
|
|
// gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->SlidesImage),(GdkPixbuf*)g_list_nth_data(widgets->slides_original,cur_slide));
|
|
|
// // gtk_widget_queue_draw(widgets->SlidesImage);
|
|
|
// if (cur_slide<size-1) cur_slide++; else cur_slide=1;
|
|
|
// g_mutex_lock(&main_config.install_mutex);
|
|
|
// if (!main_config.install_complete){
|
|
|
// g_mutex_unlock(&main_config.install_mutex);
|
|
|
// return 1;
|
|
|
// } else{
|
|
|
// g_mutex_unlock(&main_config.install_mutex);
|
|
|
// return 0;
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
// void *on_setup_system_configuration(void *data);
|
|
|
|
|
|
// void on_locale_changed(GtkWidget *,main_window *){
|
|
|
//
|
|
|
// }
|
|
|
|
|
|
// void on_additional_software_toggled(){
|
|
|
//
|
|
|
// }
|
|
|
|
|
|
void on_gparted_open(){
|
|
|
yon_launch_app_with_arguments(open_gparted_command,NULL);
|
|
|
}
|
|
|
|
|
|
|
|
|
void on_reboot_accepted(main_window *widgets){
|
|
|
g_mutex_lock(&main_config.install_mutex);
|
|
|
if (main_config.install_thread){
|
|
|
pthread_cancel((pthread_t)main_config.install_thread);
|
|
|
g_mutex_unlock(&main_config.install_mutex);
|
|
|
}
|
|
|
main_config.exit_accepted=1;
|
|
|
g_signal_emit_by_name(G_OBJECT(widgets->MainWindow),"delete-event");
|
|
|
while(gtk_events_pending()) gtk_main_iteration();
|
|
|
if (system("reboot")){};
|
|
|
}
|
|
|
|
|
|
void on_exit_accepted(main_window *widgets){
|
|
|
g_mutex_lock(&main_config.install_mutex);
|
|
|
if (main_config.install_thread){
|
|
|
pthread_cancel((pthread_t)main_config.install_thread);
|
|
|
g_mutex_unlock(&main_config.install_mutex);
|
|
|
}
|
|
|
main_config.exit_accepted=1;
|
|
|
// g_signal_emit_by_name(G_OBJECT(widgets->MainWindow),"delete-event");
|
|
|
while(gtk_events_pending()) gtk_main_iteration();
|
|
|
gtk_widget_destroy(widgets->MainWindow);
|
|
|
}
|
|
|
|
|
|
gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){
|
|
|
if (!main_config.exit_accepted||(main_config.save_done&&main_config.install_complete)){
|
|
|
if (widgets){};
|
|
|
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
|
|
|
data->action_text=WARNING_TEXT_LABEL;
|
|
|
data->title=WARNING_TITLE_LABEL;
|
|
|
if (yon_confirmation_dialog_call(widgets->MainWindow,data)==GTK_RESPONSE_ACCEPT ){
|
|
|
on_exit_accepted(widgets);
|
|
|
gtk_main_quit();
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
/**yon_main_window_complete(main_window *widgets)
|
|
|
* [EN]
|
|
|
*
|
|
|
* [RU]
|
|
|
* Функция настройки основного окна приложения. [widgets] - структура со стандартным интерфейсом.
|
|
|
*/
|
|
|
main_window *yon_main_window_complete(){
|
|
|
main_window *widgets=NULL;
|
|
|
widgets = yon_remalloc(widgets,sizeof(main_window));
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
|
|
|
gtk_builder_add_callback_symbol(builder,"yon_gtk_widget_set_sensitive_from_toggle_button",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button));
|
|
|
gtk_builder_add_callback_symbol(builder,"on_toggle_button_switch_on",G_CALLBACK(on_toggle_button_switch_on));
|
|
|
// Custom widgets configuration
|
|
|
widgets->builder = builder;
|
|
|
gtk_builder_set_translation_domain(builder,template_ui_LocaleName);
|
|
|
|
|
|
{
|
|
|
widgets->DevicesList=GTK_LIST_STORE(gtk_builder_get_object(builder,"DevicesList"));
|
|
|
widgets->LanguagesList=GTK_LIST_STORE(gtk_builder_get_object(builder,"LanguagesList"));
|
|
|
|
|
|
widgets->PartitionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"PartitionsList"));
|
|
|
|
|
|
widgets->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
|
|
|
widgets->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
|
|
|
widgets->Notebook = yon_gtk_builder_get_widget(builder,"Notebook");
|
|
|
|
|
|
widgets->DocumentationMenuItem = yon_ubl_menu_item_documentation_new(DOCUMENTATION_LABEL);
|
|
|
widgets->AboutMenuItem = yon_ubl_menu_item_about_new(ABOUT_LABEL);
|
|
|
|
|
|
widgets->SaveButton = yon_gtk_builder_get_widget(builder,"SaveButton");
|
|
|
|
|
|
widgets->LoadGlobalConfigurationMenuItem = yon_gtk_builder_get_widget(builder,"LoadGlobalConfigurationMenuItem");
|
|
|
widgets->LoadLocalConfigurationMenuItem = yon_gtk_builder_get_widget(builder,"LoadLocalConfigurationMenuItem");
|
|
|
widgets->LoadExternalConfigurationMenuItem = yon_gtk_builder_get_widget(builder,"LoadExternalConfigurationMenuItem");
|
|
|
|
|
|
widgets->SaveGlobalLocalConfigurationMenuItem = yon_gtk_builder_get_widget(builder,"SaveGlobalLocalConfigurationMenuItem");
|
|
|
widgets->SaveGlobalConfigurationMenuItem = yon_gtk_builder_get_widget(builder,"SaveGlobalConfigurationMenuItem");
|
|
|
widgets->SaveLocalConfigurationMenuItem = yon_gtk_builder_get_widget(builder,"SaveLocalConfigurationMenuItem");
|
|
|
widgets->SaveExternalConfigurationMenuItem = yon_gtk_builder_get_widget(builder,"SaveExternalConfigurationMenuItem");
|
|
|
|
|
|
widgets->SlidesImage = yon_gtk_builder_get_widget(builder,"SlidesImage");
|
|
|
|
|
|
widgets->LicenceLabel = yon_gtk_builder_get_widget(builder,"LicenceLabel");
|
|
|
|
|
|
widgets->menu1=yon_gtk_builder_get_widget(builder,"menu1");
|
|
|
widgets->menu2=yon_gtk_builder_get_widget(builder,"menu2");
|
|
|
widgets->ConfigurationModeMenuItem = yon_gtk_builder_get_widget(builder,"ConfigurationModeMenuItem");
|
|
|
|
|
|
widgets->CancelInstallButton=yon_gtk_builder_get_widget(builder,"CancelInstallButton");
|
|
|
widgets->BackButton=yon_gtk_builder_get_widget(builder,"BackButton");
|
|
|
widgets->NextButton=yon_gtk_builder_get_widget(builder,"NextButton");
|
|
|
|
|
|
widgets->WelcomeToggle=yon_gtk_builder_get_widget(builder,"WelcomeToggle");
|
|
|
widgets->LicenceToggle=yon_gtk_builder_get_widget(builder,"LicenceToggle");
|
|
|
widgets->LocationToggle=yon_gtk_builder_get_widget(builder,"LocationToggle");
|
|
|
widgets->KeyboardToggle=yon_gtk_builder_get_widget(builder,"KeyboardToggle");
|
|
|
widgets->SectionsToggle=yon_gtk_builder_get_widget(builder,"SectionsToggle");
|
|
|
widgets->UsersToggle=yon_gtk_builder_get_widget(builder,"UsersToggle");
|
|
|
widgets->SummaryToggle=yon_gtk_builder_get_widget(builder,"SummaryToggle");
|
|
|
widgets->CompletionToggle=yon_gtk_builder_get_widget(builder,"CompletionToggle");
|
|
|
widgets->InstallationToggle=yon_gtk_builder_get_widget(builder,"InstallationToggle");
|
|
|
|
|
|
widgets->StartScenarioButton=yon_gtk_builder_get_widget(builder,"StartScenarioButton");
|
|
|
|
|
|
widgets->SourceButton=yon_gtk_builder_get_widget(builder,"SourceButton");
|
|
|
widgets->SkipInstallationButton=yon_gtk_builder_get_widget(builder,"SkipInstallationButton");
|
|
|
|
|
|
widgets->InstallationRadio=yon_gtk_builder_get_widget(builder,"InstallationRadio");
|
|
|
widgets->InstallationNearRadio=yon_gtk_builder_get_widget(builder,"InstallationNearRadio");
|
|
|
widgets->InstallationLinuxRadio=yon_gtk_builder_get_widget(builder,"InstallationLinuxRadio");
|
|
|
widgets->InstallationWindowsRadio=yon_gtk_builder_get_widget(builder,"InstallationWindowsRadio");
|
|
|
widgets->InstallationOptionsRadio=yon_gtk_builder_get_widget(builder,"InstallationOptionsRadio");
|
|
|
widgets->GrubInstallRadio = yon_gtk_builder_get_widget(builder,"GrubInstallRadio");
|
|
|
widgets->GrubUpdateRadio = yon_gtk_builder_get_widget(builder,"GrubUpdateRadio");
|
|
|
widgets->SeparateRadio = yon_gtk_builder_get_widget(builder,"SeparateRadio");
|
|
|
widgets->OSRadio = yon_gtk_builder_get_widget(builder,"OSRadio");
|
|
|
widgets->UserDataOnlyRadio = yon_gtk_builder_get_widget(builder,"UserDataOnlyRadio");
|
|
|
|
|
|
widgets->CommonInstallationDevicesTree = yon_gtk_builder_get_widget(builder,"CommonInstallationDevicesTree");
|
|
|
widgets->CommonInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"CommonInstallationFilesystemTypeCombo");
|
|
|
widgets->CommonInstallationSectionNameEntry = yon_gtk_builder_get_widget(builder,"CommonInstallationSectionNameEntry");
|
|
|
widgets->GpartedCommonButton = yon_gtk_builder_get_widget(builder,"GpartedCommonButton");
|
|
|
|
|
|
widgets->SamePlaceDeviceTree = yon_gtk_builder_get_widget(builder,"SamePlaceDeviceTree");
|
|
|
widgets->SamePlacePartTree = yon_gtk_builder_get_widget(builder,"SamePlacePartTree");
|
|
|
widgets->SameInstallationFormatSwitch = yon_gtk_builder_get_widget(builder,"SameInstallationFormatSwitch");
|
|
|
widgets->SameInstallationFormatRevealer = yon_gtk_builder_get_widget(builder,"SameInstallationFormatRevealer");
|
|
|
widgets->SameInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"SameInstallationFilesystemTypeCombo");
|
|
|
widgets->SameInstallationSectionNameEntry = yon_gtk_builder_get_widget(builder,"SameInstallationSectionNameEntry");
|
|
|
widgets->GpartedSameButton = yon_gtk_builder_get_widget(builder,"GpartedSameButton");
|
|
|
|
|
|
widgets->NextInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"NextInstallationFilesystemTypeCombo");
|
|
|
widgets->NextInstallationFormatSwitch = yon_gtk_builder_get_widget(builder,"NextInstallationFormatSwitch");
|
|
|
widgets->NextInstallationFormatRevealer = yon_gtk_builder_get_widget(builder,"NextInstallationFormatRevealer");
|
|
|
widgets->NextInstallationSectionNameEntry = yon_gtk_builder_get_widget(builder,"NextInstallationSectionNameEntry");
|
|
|
widgets->NextInstallationSizeSpin = yon_gtk_builder_get_widget(builder,"NextInstallationFormatSizeSpin");
|
|
|
widgets->NextInstallationSizeTypeSpin = yon_gtk_builder_get_widget(builder,"NextInstallationFormatSizeCombo");
|
|
|
widgets->NextInstallationSysDevicesTree = yon_gtk_builder_get_widget(builder,"NextInstallationSysDevicesTree");
|
|
|
widgets->NextInstallationSysSectionTree = yon_gtk_builder_get_widget(builder,"NextInstallationSysSectionTree");
|
|
|
widgets->GpartedNextInstallationButton = yon_gtk_builder_get_widget(builder,"GpartedNextInstallationButton");
|
|
|
|
|
|
widgets->AdvancedDeviceTree = yon_gtk_builder_get_widget(builder,"AdvancedDeviceTree");
|
|
|
widgets->AdvancedVirtualDeviceCombo = yon_gtk_builder_get_widget(builder,"AdvancedVirtualDeviceCombo");
|
|
|
widgets->AdvancedPartitionTree = yon_gtk_builder_get_widget(builder,"AdvancedPartitionTree");
|
|
|
widgets->AdvancedPartitionAddBox = yon_gtk_builder_get_widget(builder,"AdvancedPartitionAddBox");
|
|
|
widgets->AdvancedAddButton = yon_gtk_builder_get_widget(builder,"AdvancedAddButton");
|
|
|
widgets->AdvancedLoadTypeSwitch = yon_gtk_builder_get_widget(builder,"AdvancedLoadTypeSwitch");
|
|
|
widgets->AdvancedBiosSectorSwitch = yon_gtk_builder_get_widget(builder,"AdvancedBiosSectorSwitch");
|
|
|
widgets->AdvancedEFISwitch = yon_gtk_builder_get_widget(builder,"AdvancedEFISwitch");
|
|
|
widgets->AdvancedSwapSwitch = yon_gtk_builder_get_widget(builder,"AdvancedSwapSwitch");
|
|
|
widgets->AdvancedSwapAutoSwitch = yon_gtk_builder_get_widget(builder,"AdvancedSwapAutoSwitch");
|
|
|
widgets->AdvancedSwapRamSwitch = yon_gtk_builder_get_widget(builder,"AdvancedSwapRamSwitch");
|
|
|
widgets->AdvancedSwapFixedSwitch = yon_gtk_builder_get_widget(builder,"AdvancedSwapFixedSwitch");
|
|
|
widgets->AdvancedSwapFixedSpin = yon_gtk_builder_get_widget(builder,"AdvancedSwapFixedSpin");
|
|
|
|
|
|
widgets->GrubInstallDevicesTree = yon_gtk_builder_get_widget(builder,"GrubInstallDevicesTree");
|
|
|
widgets->GrubInstallPartitionTree = yon_gtk_builder_get_widget(builder,"GrubInstallPartitionTree");
|
|
|
widgets->GpartedGrubInstallButton = yon_gtk_builder_get_widget(builder,"GpartedGrubInstallButton");
|
|
|
|
|
|
widgets->GrubUpdateDevicesTree = yon_gtk_builder_get_widget(builder,"GrubUpdateDevicesTree");
|
|
|
widgets->GrubUpdatePartitionTree = yon_gtk_builder_get_widget(builder,"GrubUpdatePartitionTree");
|
|
|
widgets->GpartedGrubUpdateButton = yon_gtk_builder_get_widget(builder,"GpartedGrubUpdateButton");
|
|
|
|
|
|
widgets->OSDevicesTree = yon_gtk_builder_get_widget(builder,"OSDevicesTree");
|
|
|
widgets->OSSysSectionTree = yon_gtk_builder_get_widget(builder,"OSSysSectionTree");
|
|
|
widgets->GpartedOSButton = yon_gtk_builder_get_widget(builder,"GpartedOSButton");
|
|
|
|
|
|
widgets->UserdataDevicesTree = yon_gtk_builder_get_widget(builder,"UserdataDevicesTree");
|
|
|
widgets->UserdataSysSectionTree = yon_gtk_builder_get_widget(builder,"UserdataSysSectionTree");
|
|
|
widgets->GpartedUserdataButton = yon_gtk_builder_get_widget(builder,"UserdataGpartedButton");
|
|
|
|
|
|
widgets->LanguagesFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LanguagesFilter"));
|
|
|
widgets->LayoutsFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LayoutsFilter"));
|
|
|
widgets->LayoutList = GTK_TREE_STORE(gtk_builder_get_object(builder,"LayoutList"));
|
|
|
widgets->LanguageCombo=yon_gtk_builder_get_widget(builder,"LanguageCombo");
|
|
|
widgets->RegionCombo=yon_gtk_builder_get_widget(builder,"RegionCombo");
|
|
|
widgets->ZoneCombo=yon_gtk_builder_get_widget(builder,"ZoneCombo");
|
|
|
widgets->AvailableLanguagesEntry=yon_gtk_builder_get_widget(builder,"AvailableLanguagesEntry");
|
|
|
widgets->AvailableLanguagesButton=yon_gtk_builder_get_widget(builder,"AvailableLanguagesButton");
|
|
|
widgets->LanguagesCombo=yon_gtk_builder_get_widget(builder,"LanguagesCombo");
|
|
|
widgets->KeyboardModelCombo=yon_gtk_builder_get_widget(builder,"KeyboardModelCombo");
|
|
|
widgets->LayoutBindingCombo=yon_gtk_builder_get_widget(builder,"LayoutBindingCombo");
|
|
|
widgets->DefaultLayoutRadio=yon_gtk_builder_get_widget(builder,"DefaultLayoutRadio");
|
|
|
widgets->ManualLayoutRadio=yon_gtk_builder_get_widget(builder,"ManualLayoutRadio");
|
|
|
widgets->LayoutTree=yon_gtk_builder_get_widget(builder,"LayoutTree");
|
|
|
widgets->AddButton=yon_gtk_builder_get_widget(builder,"AddButton");
|
|
|
widgets->RemoveButton=yon_gtk_builder_get_widget(builder,"RemoveButton");
|
|
|
widgets->RegionSensitiveCheck = yon_gtk_builder_get_widget(builder,"RegionSensitiveCheck");
|
|
|
widgets->LanguagesSensitiveCheck = yon_gtk_builder_get_widget(builder,"LanguagesSensitiveCheck");
|
|
|
widgets->MainLanguageSensitiveCheck = yon_gtk_builder_get_widget(builder,"MainLanguageSensitiveCheck");
|
|
|
widgets->KeyboardModelSensitiveCheck = yon_gtk_builder_get_widget(builder,"KeyboardModelSensitiveCheck");
|
|
|
widgets->OptionsSensitiveCheck = yon_gtk_builder_get_widget(builder,"OptionsSensitiveCheck");
|
|
|
widgets->LayoutSensitiveCheck = yon_gtk_builder_get_widget(builder,"LayoutSensitiveCheck");
|
|
|
|
|
|
widgets->UserRootNameEntry=yon_gtk_builder_get_widget(builder,"UserRootNameEntry");
|
|
|
widgets->UserRootLoginEntry=yon_gtk_builder_get_widget(builder,"UserRootLoginEntry");
|
|
|
widgets->UserRootPasswordCombo=yon_gtk_builder_get_widget(builder,"UserRootPasswordCombo");
|
|
|
widgets->UserRootPasswordEntry=yon_gtk_builder_get_widget(builder,"UserRootPasswordEntry");
|
|
|
widgets->UserRootPasswordButton=yon_gtk_builder_get_widget(builder,"UserRootPasswordButton");
|
|
|
widgets->UserAutologinSwitch=yon_gtk_builder_get_widget(builder,"UserAutologinSwitch");
|
|
|
widgets->UserAddBox=yon_gtk_builder_get_widget(builder,"UserAddBox");
|
|
|
widgets->UserAddButton=yon_gtk_builder_get_widget(builder,"UserAddButton");
|
|
|
|
|
|
widgets->HotnameEntry=yon_gtk_builder_get_widget(builder,"HotnameEntry");
|
|
|
widgets->mainSettingsButton=yon_gtk_builder_get_widget(builder,"mainSettingsButton");
|
|
|
widgets->RegionImage = yon_gtk_builder_get_widget(builder,"RegionImage");
|
|
|
widgets->RegionBox = yon_gtk_builder_get_widget(builder,"RegionBox");
|
|
|
widgets->RegionAspect = yon_gtk_builder_get_widget(builder,"RegionAspect");
|
|
|
widgets->KeyboardImage = yon_gtk_builder_get_widget(builder,"KeyboardImage");
|
|
|
widgets->KeyboardBox = yon_gtk_builder_get_widget(builder,"KeyboardBox");
|
|
|
|
|
|
widgets->AdditionalSoftwareList = GTK_LIST_STORE(gtk_builder_get_object(builder,"AdditionalSoftwareList"));
|
|
|
widgets->AdditionalSoftwareTree = yon_gtk_builder_get_widget(builder,"AdditionalSoftwareTree");
|
|
|
widgets->AdditionalSoftwareCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"AdditionalSoftwareCell"));
|
|
|
|
|
|
|
|
|
widgets->InstallationProgress = yon_gtk_builder_get_widget(builder,"InstallationProgress");
|
|
|
widgets->InstallationLabel = yon_gtk_builder_get_widget(builder,"InstallationLabel");
|
|
|
widgets->ReadShortLogButton = yon_gtk_builder_get_widget(builder,"ReadShortLogButton");
|
|
|
widgets->PackageInstallationProgress = yon_gtk_builder_get_widget(builder,"PackageInstallationProgress");
|
|
|
widgets->PackageInstallationLabel = yon_gtk_builder_get_widget(builder,"PackageInstallationLabel");
|
|
|
widgets->ReadFullLogButton = yon_gtk_builder_get_widget(builder,"ReadFullLogButton");
|
|
|
|
|
|
|
|
|
widgets->KernelsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"KernelsList"));
|
|
|
widgets->KernelsTree = yon_gtk_builder_get_widget(builder,"KernelsTree");
|
|
|
|
|
|
widgets->OSSoftwareTree = yon_gtk_builder_get_widget(builder,"OSSoftwareTree");
|
|
|
widgets->OSSoftwareList = GTK_LIST_STORE(gtk_builder_get_object(builder,"OSSoftwareList"));
|
|
|
|
|
|
widgets->StartupServicesTree = yon_gtk_builder_get_widget(builder,"StartupServicesTree");
|
|
|
widgets->StartupList = GTK_LIST_STORE(gtk_builder_get_object(builder,"StartupList"));
|
|
|
|
|
|
widgets->BootloadTimerSwitch = yon_gtk_builder_get_widget(builder,"BootloadTimerSwitch");
|
|
|
widgets->BootloadTimerSpin = yon_gtk_builder_get_widget(builder,"BootloadTimerSpin");
|
|
|
widgets->BootloadDefaultOSEntry = yon_gtk_builder_get_widget(builder,"BootloadDefaultOSEntry");
|
|
|
widgets->BootloadDefaulOSButton = yon_gtk_builder_get_widget(builder,"BootloadDefaulOSButton");
|
|
|
widgets->BootloadNoPasswordSwitch = yon_gtk_builder_get_widget(builder,"BootloadNoPasswordSwitch");
|
|
|
widgets->BootloadUserTree = yon_gtk_builder_get_widget(builder,"BootloadUserTree");
|
|
|
widgets->BootloadUserAddButton = yon_gtk_builder_get_widget(builder,"BootloadUserAddButton");
|
|
|
widgets->BootloadUserRemoveButton = yon_gtk_builder_get_widget(builder,"BootloadUserRemoveButton");
|
|
|
widgets->BootloadUsersList = GTK_LIST_STORE(gtk_builder_get_object(builder,"BootloadUsersList"));
|
|
|
|
|
|
widgets->NetworkDomainSwitch = yon_gtk_builder_get_widget(builder,"NetworkDomainSwitch");
|
|
|
widgets->NetworkDomainNameEntry = yon_gtk_builder_get_widget(builder,"NetworkDomainNameEntry");
|
|
|
widgets->NetworkDomainAdminEntry = yon_gtk_builder_get_widget(builder,"NetworkDomainAdminEntry");
|
|
|
widgets->NetworkDomainPasswordEntry = yon_gtk_builder_get_widget(builder,"NetworkDomainPasswordEntry");
|
|
|
widgets->NetworkNTPServerSwitch = yon_gtk_builder_get_widget(builder,"NetworkNTPServerSwitch");
|
|
|
widgets->NetworkNTPCombo = yon_gtk_builder_get_widget(builder,"NetworkNTPCombo");
|
|
|
widgets->NetworkNTPEntry = yon_gtk_builder_get_widget(builder,"NetworkNTPEntry");
|
|
|
widgets->NetworkConnectionsBox = yon_gtk_builder_get_widget(builder,"NetworkConnectionsBox");
|
|
|
widgets->NetworkConnectionsAddButton = yon_gtk_builder_get_widget(builder,"NetworkConnectionsAddButton");
|
|
|
widgets->HostnameSensitiveCheck = yon_gtk_builder_get_widget(builder,"HostnameSensitiveCheck");
|
|
|
widgets->AutoHostnameCheck=yon_gtk_builder_get_widget(builder,"AutoHostnameCheck");
|
|
|
widgets->network_connections = NULL;
|
|
|
|
|
|
main_config.status_box = widgets->StatusBox;
|
|
|
}
|
|
|
g_signal_connect(G_OBJECT(widgets->MainWindow),"delete-event",G_CALLBACK(on_yon_exit),widgets);
|
|
|
GtkWidget *menu = yon_gtk_builder_get_widget(builder,"menu2");
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemmiddle");
|
|
|
gtk_style_context_remove_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemtop");
|
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->DocumentationMenuItem);
|
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->AboutMenuItem);
|
|
|
|
|
|
// g_signal_connect(G_OBJECT(widgets->LoadGlobalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->LoadLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->LoadExternalConfigurationMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets);
|
|
|
|
|
|
// g_signal_connect(G_OBJECT(widgets->SaveGlobalLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_local_save),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->SaveGlobalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_save),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->SaveLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_local_save),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->SaveExternalConfigurationMenuItem),"activate",G_CALLBACK(on_config_custom_save),widgets);
|
|
|
|
|
|
// g_signal_connect(G_OBJECT(widgets->ReadFullLogButton),"clicked",G_CALLBACK(on_process_log_view),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->ReadShortLogButton),"clicked",G_CALLBACK(on_summary_log_view),widgets);
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->GpartedCommonButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
|
|
|
g_signal_connect(G_OBJECT(widgets->GpartedSameButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
|
|
|
g_signal_connect(G_OBJECT(widgets->GpartedNextInstallationButton),"clicked",G_CALLBACK(on_gparted_open),NULL);
|
|
|
|
|
|
// g_signal_connect(G_OBJECT(widgets->Notebook),"switch-page",G_CALLBACK(on_page_changed),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->MainWindow),"check-resize",G_CALLBACK(on_region_resized),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->NextButton),"clicked",G_CALLBACK(on_page_next_clicked),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->BackButton),"clicked",G_CALLBACK(on_page_prev_clicked),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->CancelInstallButton),"clicked",G_CALLBACK(on_page_navigation_clicked),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->AvailableLanguagesButton),"clicked",G_CALLBACK(on_language_clicked),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(on_region_changed),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->LayoutSensitiveCheck),"toggled",G_CALLBACK(on_layout_toggle_button_switch),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->AddButton),"clicked",G_CALLBACK(on_keyboard_clicked),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->RemoveButton),"clicked",G_CALLBACK(on_keyboard_removed),widgets);
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->GrubInstallDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->GrubUpdateDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->NextInstallationSysDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->UserdataDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->OSDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->ConfigurationModeMenuItem),"toggled",G_CALLBACK(on_configuration_mode_switch),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),widgets);
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->SamePlacePartTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->NextInstallationSysSectionTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->NextInstallationSizeTypeSpin),"changed",G_CALLBACK(on_partition_changed),widgets);
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->UserRootPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->UserRootPasswordEntry);
|
|
|
g_signal_connect(G_OBJECT(widgets->UserRootPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->UserRootPasswordButton);
|
|
|
g_signal_connect(G_OBJECT(widgets->UserAddButton),"clicked",G_CALLBACK(on_user_add),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->UserRootPasswordButton),"clicked",G_CALLBACK(yon_password_root_new),widgets);
|
|
|
g_signal_connect(G_OBJECT(widgets->BootloadDefaulOSButton),"clicked",G_CALLBACK(yon_menu_window_open),widgets);
|
|
|
// gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),3);
|
|
|
|
|
|
// g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->AdditionalSoftwareCell),"toggled",G_CALLBACK(on_additional_software_toggled),widgets);
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->ManualLayoutRadio),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),gtk_widget_get_parent(gtk_widget_get_parent(widgets->AddButton)));
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->HotnameEntry);
|
|
|
|
|
|
yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->NextInstallationFormatRevealer),GTK_SWITCH(widgets->NextInstallationFormatSwitch));
|
|
|
yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->SameInstallationFormatRevealer),GTK_SWITCH(widgets->SameInstallationFormatSwitch));
|
|
|
|
|
|
// g_signal_connect(G_OBJECT(widgets->HostnameSensitiveCheck),"toggled",G_CALLBACK(on_autohostname_sensitiveness_check),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(on_autohostname_check),widgets);
|
|
|
// g_signal_connect(G_OBJECT(widgets->HotnameEntry),"changed",G_CALLBACK(on_hostname_entry_changed),widgets);
|
|
|
|
|
|
|
|
|
{
|
|
|
yon_user_struct *user = yon_user_struct_new();
|
|
|
gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0);
|
|
|
gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),ADMINISTRATOR_LABEL);
|
|
|
gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),"superadmin");
|
|
|
}
|
|
|
|
|
|
{
|
|
|
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(widgets->UserRootPasswordEntry));
|
|
|
|
|
|
if (main_config.lock_load_global == 1){
|
|
|
gtk_widget_set_sensitive(widgets->LoadGlobalConfigurationMenuItem,0);
|
|
|
}
|
|
|
if (main_config.lock_save_global == 1){
|
|
|
gtk_widget_set_sensitive(widgets->SaveGlobalConfigurationMenuItem,0);
|
|
|
gtk_widget_set_sensitive(widgets->SaveGlobalLocalConfigurationMenuItem,0);
|
|
|
}
|
|
|
if (main_config.lock_save_local == 1){
|
|
|
gtk_widget_set_sensitive(widgets->SaveLocalConfigurationMenuItem,0);
|
|
|
gtk_widget_set_sensitive(widgets->SaveGlobalLocalConfigurationMenuItem,0);
|
|
|
}
|
|
|
if (getuid()){
|
|
|
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widgets->ConfigurationModeMenuItem),1);
|
|
|
}
|
|
|
|
|
|
gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter),0);
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
|
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),TITLE_LABEL);
|
|
|
gtk_window_set_icon_name(GTK_WINDOW(widgets->MainWindow),icon_path);
|
|
|
|
|
|
int size;
|
|
|
config_str parsed = NULL;
|
|
|
parsed = yon_file_open(licence_path,&size);
|
|
|
if (size){
|
|
|
char *licence = yon_char_parsed_to_string(parsed,size,"");
|
|
|
gtk_label_set_text(GTK_LABEL(widgets->LicenceLabel),licence);
|
|
|
free(licence);
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
}
|
|
|
|
|
|
config_str slides = yon_char_parsed_new(&size,slide_repeat_path);
|
|
|
widgets->regions_original = gdk_pixbuf_new_from_resource(regions_path,NULL);
|
|
|
widgets->keyboard_original = gdk_pixbuf_new_from_resource(keyboard_path,NULL);
|
|
|
widgets->slides_original = NULL;
|
|
|
widgets->slides_original = g_list_prepend(widgets->slides_original,gdk_pixbuf_new_from_resource(slide_0_path,NULL));
|
|
|
for (int i=1;i<size;i++){
|
|
|
widgets->slides_original = g_list_prepend(widgets->slides_original,gdk_pixbuf_new_from_resource(slides[i-1],NULL));
|
|
|
}
|
|
|
widgets->slides_original = g_list_reverse(widgets->slides_original);
|
|
|
yon_char_parsed_free(slides,size);
|
|
|
int width = gdk_pixbuf_get_width(widgets->regions_original);
|
|
|
int height = gdk_pixbuf_get_height(widgets->regions_original);
|
|
|
widgets->region_height_mult = (float)height/width;
|
|
|
GdkPixbuf *pix = gdk_pixbuf_scale_simple(widgets->regions_original,600,400,GDK_INTERP_BILINEAR);
|
|
|
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->RegionImage),pix);
|
|
|
g_object_unref(pix);
|
|
|
pix = gdk_pixbuf_scale_simple(widgets->keyboard_original,600,400,GDK_INTERP_BILINEAR);
|
|
|
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->KeyboardImage),pix);
|
|
|
g_object_unref(pix);
|
|
|
pix = gdk_pixbuf_scale_simple((GdkPixbuf*)g_list_nth_data(widgets->slides_original,0),600,400,GDK_INTERP_BILINEAR);
|
|
|
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->SlidesImage),pix);
|
|
|
g_object_unref(pix);
|
|
|
|
|
|
int langsize;
|
|
|
config_str lang = default_langs(&langsize);
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
gtk_list_store_clear(widgets->LanguagesList);
|
|
|
parsed = yon_file_open(languages_path,&size);
|
|
|
for (int i=0;i<size;i++){
|
|
|
int cur_size;
|
|
|
yon_char_remove_last_symbol(parsed[i],'\n')
|
|
|
config_str cur = yon_char_parse(parsed[i],&cur_size,";");
|
|
|
if (cur_size){
|
|
|
gtk_list_store_append(widgets->LanguagesList,&iter);
|
|
|
gtk_list_store_set(widgets->LanguagesList,&iter,0,0,1,_(cur[1]),2,cur[0],-1);
|
|
|
}
|
|
|
yon_char_parsed_free(cur,cur_size);
|
|
|
}
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
if (lang)
|
|
|
yon_char_parsed_free(lang,langsize);
|
|
|
|
|
|
parsed = yon_dir_get_contents(zone_path,&size);
|
|
|
for (int i=0;i<size;i++){
|
|
|
if (!strstr(parsed[i],".")&&strcmp(parsed[i],"posix")&&strcmp(parsed[i],"right")){
|
|
|
char *path = yon_char_append(zone_path,parsed[i]);
|
|
|
if (yon_file_is_directory(path)){
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->RegionCombo),parsed[i],_(parsed[i]));
|
|
|
}
|
|
|
free(path);
|
|
|
}
|
|
|
}
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->RegionCombo),0);
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
parsed = yon_config_load(yon_debug_output("%s\n",get_layouts_command),&size);
|
|
|
GtkTreeIter itar;
|
|
|
for (int i=0;i<size;i++){
|
|
|
yon_char_remove_last_symbol(parsed[i],'\n');
|
|
|
int layout_size;
|
|
|
config_str layout = yon_char_parse(parsed[i],&layout_size,"|");
|
|
|
if (layout_size){
|
|
|
char *layout_id = yon_char_new(layout[0]);
|
|
|
gtk_tree_store_append(widgets->LayoutList,&iter,NULL);
|
|
|
gtk_tree_store_set(widgets->LayoutList,&iter,0,layout[0],1,_(layout[1]),2,1,-1);
|
|
|
yon_char_parsed_free(layout,layout_size);
|
|
|
char *command = get_layouts_local_command(layout_id);
|
|
|
config_str layout_local = yon_config_load(yon_debug_output("%s\n",command),&layout_size);
|
|
|
free(command);
|
|
|
free(layout_id);
|
|
|
for (int j=0;j<layout_size;j++){
|
|
|
yon_char_remove_last_symbol(layout_local[j],'\n');
|
|
|
int parsed_size;
|
|
|
config_str layouts_parsed = yon_char_parse(layout_local[j],&parsed_size,"|");
|
|
|
if (parsed_size){
|
|
|
gtk_tree_store_append(widgets->LayoutList,&itar,&iter);
|
|
|
gtk_tree_store_set(widgets->LayoutList,&itar,0,layouts_parsed[0],1,_(layouts_parsed[1]),2,1,3,0,-1);
|
|
|
yon_char_parsed_free(layouts_parsed,parsed_size);
|
|
|
}
|
|
|
}
|
|
|
if (layout_size==-1) {
|
|
|
gtk_tree_store_set(widgets->LayoutList,&iter,2,1,-1);
|
|
|
}
|
|
|
yon_char_parsed_free(layout_local,layout_size);
|
|
|
}
|
|
|
}
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
{
|
|
|
parsed = yon_config_load(yon_debug_output("%s\n",get_devices_command),&size);
|
|
|
char *string = yon_char_parsed_to_string(parsed,size,"");
|
|
|
struct json_object *root;
|
|
|
struct json_object *blockdevices;
|
|
|
root = json_tokener_parse(string);
|
|
|
free(string);
|
|
|
json_object_object_get_ex(root, "blockdevices", &blockdevices);
|
|
|
for (long unsigned int i = 0; i < json_object_array_length(blockdevices); i++) {
|
|
|
struct json_object *device = json_object_array_get_idx(blockdevices, i);
|
|
|
struct json_object *path, *size, *model, *vendor, *serial;
|
|
|
|
|
|
json_object_object_get_ex(device, "path", &path);
|
|
|
json_object_object_get_ex(device, "size", &size);
|
|
|
json_object_object_get_ex(device, "model", &model);
|
|
|
json_object_object_get_ex(device, "vendor", &vendor);
|
|
|
json_object_object_get_ex(device, "serial", &serial);
|
|
|
|
|
|
gtk_list_store_append(widgets->DevicesList,&iter);
|
|
|
gtk_list_store_set(widgets->DevicesList,&iter,0,json_object_get_string(path),1,json_object_get_string(model),2,json_object_get_string(serial),3,json_object_get_string(size),4,json_object_get_string(vendor),-1);
|
|
|
|
|
|
}
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
}
|
|
|
|
|
|
parsed = yon_resource_open_file(additional_software_path,&size);
|
|
|
for (int i=1;i<size;i++){
|
|
|
int module_size;
|
|
|
config_str module_parsed = yon_char_parse(parsed[i],&module_size,"|");
|
|
|
if (module_size){
|
|
|
gtk_list_store_append(widgets->AdditionalSoftwareList,&iter);
|
|
|
gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,1,1,module_parsed[0],3,module_parsed[1],-1); //2,module_parsed[2]
|
|
|
yon_char_parsed_free(module_parsed,module_size);
|
|
|
}
|
|
|
}
|
|
|
if (size) yon_char_parsed_free(parsed,size);
|
|
|
|
|
|
config_str models = yon_config_load(yon_debug_output("%s\n",get_models_command),&size);
|
|
|
for (int i=0;i<size;i+=2){
|
|
|
models[i] = yon_char_divide_search(models[i],"\n",-1);
|
|
|
models[i+1] = yon_char_divide_search(models[i+1],"\n",-1);
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->KeyboardModelCombo),models[i],_(models[i+1]));
|
|
|
}
|
|
|
if (size) yon_char_parsed_free(models,size);
|
|
|
gtk_builder_connect_signals(builder,NULL);
|
|
|
// yon_load_proceed(YON_CONFIG_DEFAULT);
|
|
|
// yon_interface_update(widgets);
|
|
|
}
|
|
|
return widgets;
|
|
|
}
|
|
|
|
|
|
int main(int argc, char *argv[]){
|
|
|
setlocale(LC_ALL, "");
|
|
|
textdomain (LocaleName);
|
|
|
|
|
|
config_str unfound = NULL;
|
|
|
int size=0;
|
|
|
yon_ubl_connect_config((_template_config*)&main_config);
|
|
|
yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL);
|
|
|
gtk_init(&argc,&argv);
|
|
|
main_window *widgets = NULL;
|
|
|
widgets = yon_main_window_complete();
|
|
|
if (widgets){};
|
|
|
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
|
|
|
yon_window_config_setup(GTK_WINDOW(widgets->MainWindow));
|
|
|
yon_window_config_load(path);
|
|
|
main_config.launch_arguments=yon_char_parsed_copy(argv,argc);
|
|
|
main_config.launch_size=argc;
|
|
|
GtkCssProvider *css=gtk_css_provider_new();
|
|
|
gtk_css_provider_load_from_resource(css,CssPath);
|
|
|
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
|
|
|
GTK_STYLE_PROVIDER(css),
|
|
|
-1);
|
|
|
if (getuid()!=0){
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
textdomain(LocaleName);
|
|
|
}
|
|
|
gtk_main();
|
|
|
return 0;
|
|
|
} |