You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
192 lines
8.6 KiB
192 lines
8.6 KiB
#include "ubinstall-gtk.h"
|
|
|
|
enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){
|
|
switch (page){
|
|
case YON_PAGE_WELCOME: return YON_PAGE_LICENCE; break;
|
|
case YON_PAGE_LICENCE: return YON_PAGE_SECTIONS; break;
|
|
case YON_PAGE_SECTIONS: return yon_sections_get_next_page(widgets); break;
|
|
case YON_PAGE_OS_COMPONENTS: return YON_PAGE_INSTALLATION_BEGIN; break;
|
|
case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_KERNEL; break;
|
|
case YON_PAGE_KERNEL: return YON_PAGE_SOFTWARE; break;
|
|
case YON_PAGE_SOFTWARE: return YON_PAGE_REGION; break;
|
|
case YON_PAGE_REGION: return YON_PAGE_KEYBOARD; break;
|
|
case YON_PAGE_KEYBOARD: return YON_PAGE_USERS; break;
|
|
case YON_PAGE_USERS: return YON_PAGE_STARTUP; break;
|
|
case YON_PAGE_STARTUP: return YON_PAGE_BOOTLOADER; break;
|
|
case YON_PAGE_BOOTLOADER: return YON_PAGE_NETWORK; break;
|
|
case YON_PAGE_NETWORK: return YON_PAGE_INSTALLATION; break;
|
|
case YON_PAGE_INSTALL_COMMON: return YON_PAGE_KERNEL; break;
|
|
case YON_PAGE_INSTALL_SEPARATE: return YON_PAGE_KERNEL; break;
|
|
case YON_PAGE_INSTALL_SAME_PARTITION: return YON_PAGE_KERNEL; break;
|
|
case YON_PAGE_INSTALL_ADVANCED: return YON_PAGE_KERNEL; break;
|
|
case YON_PAGE_INSTALL_RECOVERY: return yon_recovery_get_next(widgets); break;
|
|
case YON_PAGE_RECOVERY_GRUB_INSTALL: return YON_PAGE_INSTALLATION; break;
|
|
case YON_PAGE_RECOVERY_GRUB_UPDATE: return YON_PAGE_INSTALLATION; break;
|
|
case YON_PAGE_RECOVERY_OS_ONLY: return YON_PAGE_INSTALLATION; break;
|
|
case YON_PAGE_RECOVERY_USRDATA_ONLY: return YON_PAGE_INSTALLATION; break;
|
|
default:return YON_PAGE_WELCOME;
|
|
}
|
|
return YON_PAGE_WELCOME;
|
|
}
|
|
|
|
enum YON_PAGES yon_page_get_prev(enum YON_PAGES page){
|
|
switch (page){
|
|
case YON_PAGE_WELCOME: return YON_PAGE_WELCOME; break;
|
|
case YON_PAGE_LICENCE: return YON_PAGE_WELCOME; break;
|
|
case YON_PAGE_SECTIONS: return YON_PAGE_LICENCE; break;
|
|
case YON_PAGE_OS_COMPONENTS: return YON_PAGE_SECTIONS; break;
|
|
case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_SECTIONS; break;
|
|
case YON_PAGE_KERNEL: return YON_PAGE_SECTIONS; break;
|
|
case YON_PAGE_SOFTWARE: return YON_PAGE_KERNEL; break;
|
|
case YON_PAGE_REGION: return YON_PAGE_SOFTWARE; break;
|
|
case YON_PAGE_KEYBOARD: return YON_PAGE_REGION; break;
|
|
case YON_PAGE_USERS: return YON_PAGE_KEYBOARD; break;
|
|
case YON_PAGE_STARTUP: return YON_PAGE_USERS; break;
|
|
case YON_PAGE_BOOTLOADER: return YON_PAGE_STARTUP; break;
|
|
case YON_PAGE_NETWORK: return YON_PAGE_BOOTLOADER; break;
|
|
case YON_PAGE_INSTALLATION: return YON_PAGE_INSTALLATION; break;
|
|
case YON_PAGE_CONFIGURE_END: return YON_PAGE_CONFIGURE_END; break;
|
|
case YON_PAGE_INSTALL_COMMON: return YON_PAGE_SECTIONS; break;
|
|
case YON_PAGE_INSTALL_SEPARATE: return YON_PAGE_SECTIONS; break;
|
|
case YON_PAGE_INSTALL_SAME_PARTITION: return YON_PAGE_SECTIONS; break;
|
|
case YON_PAGE_INSTALL_ADVANCED: return YON_PAGE_SECTIONS; break;
|
|
case YON_PAGE_INSTALL_RECOVERY: return YON_PAGE_SECTIONS; break;
|
|
case YON_PAGE_RECOVERY_GRUB_INSTALL: return YON_PAGE_INSTALL_RECOVERY; break;
|
|
case YON_PAGE_RECOVERY_GRUB_UPDATE: return YON_PAGE_INSTALL_RECOVERY; break;
|
|
case YON_PAGE_RECOVERY_OS_ONLY: return YON_PAGE_INSTALL_RECOVERY; break;
|
|
case YON_PAGE_RECOVERY_USRDATA_ONLY: return YON_PAGE_INSTALL_RECOVERY; break;
|
|
default:return YON_PAGE_WELCOME;
|
|
}
|
|
return YON_PAGE_WELCOME;
|
|
}
|
|
|
|
enum YON_PAGES yon_page_get_current(GtkNotebook *target){
|
|
enum YON_PAGES page = gtk_notebook_get_current_page(target);
|
|
return page;
|
|
}
|
|
|
|
void yon_navigation_buttons_set_sensetiveness(main_window *widgets){
|
|
enum YON_PAGES page = yon_page_get_current(GTK_NOTEBOOK(widgets->Notebook));
|
|
|
|
switch(page){
|
|
case YON_PAGE_WELCOME:
|
|
gtk_widget_hide(widgets->BackButton);
|
|
gtk_widget_set_sensitive(widgets->NextButton,1);
|
|
break;
|
|
case YON_PAGE_LICENCE:
|
|
gtk_widget_show(widgets->BackButton);
|
|
gtk_widget_set_sensitive(widgets->BackButton,1);
|
|
gtk_widget_set_sensitive(widgets->NextButton,1);
|
|
gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
|
|
break;
|
|
case YON_PAGE_INSTALLATION:
|
|
gtk_widget_set_sensitive(widgets->NextButton,0);
|
|
gtk_widget_set_sensitive(widgets->BackButton,0);
|
|
break;
|
|
case YON_PAGE_KERNEL:
|
|
gtk_widget_set_sensitive(widgets->BackButton,0);
|
|
break;
|
|
case YON_PAGE_COMPLETED:
|
|
case YON_PAGE_INSTALL_ERROR:
|
|
case YON_PAGE_CONFIGURE_SAVE:
|
|
case YON_PAGE_CONFIGURE_END:
|
|
case YON_PAGE_COMPLETION:
|
|
gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL);
|
|
gtk_widget_set_sensitive(widgets->BackButton,0);
|
|
break;
|
|
default:
|
|
gtk_widget_set_sensitive(widgets->BackButton,1);
|
|
gtk_widget_set_sensitive(widgets->NextButton,1);
|
|
gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
|
|
break;
|
|
}
|
|
}
|
|
|
|
int yon_page_save(main_window *widgets, enum YON_PAGES page){
|
|
switch (page){
|
|
case YON_PAGE_OS_COMPONENTS:
|
|
return yon_os_components_save(widgets);
|
|
break;
|
|
case YON_PAGE_KERNEL:
|
|
return yon_kernel_save(widgets);
|
|
break;
|
|
case YON_PAGE_SOFTWARE:
|
|
return yon_software_save(widgets);
|
|
break;
|
|
case YON_PAGE_REGION:
|
|
return yon_region_save(widgets);
|
|
break;
|
|
case YON_PAGE_KEYBOARD:
|
|
return yon_keyboard_save(widgets);
|
|
break;
|
|
case YON_PAGE_USERS:
|
|
return yon_users_save(widgets);
|
|
break;
|
|
case YON_PAGE_STARTUP:
|
|
return yon_startup_save(widgets);
|
|
break;
|
|
case YON_PAGE_BOOTLOADER:
|
|
return yon_bootloader_save(widgets);
|
|
break;
|
|
case YON_PAGE_NETWORK:
|
|
// return yon_network_save(widgets);
|
|
break;
|
|
case YON_PAGE_INSTALL_COMMON:
|
|
return yon_install_common_save(widgets);
|
|
break;
|
|
case YON_PAGE_INSTALL_SEPARATE:
|
|
return yon_install_separate_save(widgets);
|
|
break;
|
|
case YON_PAGE_INSTALL_SAME_PARTITION:
|
|
return yon_install_same_partition_save(widgets);
|
|
break;
|
|
case YON_PAGE_INSTALL_ADVANCED:
|
|
return yon_install_advanced_save(widgets);
|
|
break;
|
|
case YON_PAGE_RECOVERY_GRUB_INSTALL:
|
|
return yon_grub_install_save(widgets);
|
|
break;
|
|
case YON_PAGE_RECOVERY_GRUB_UPDATE:
|
|
return yon_grub_update_save(widgets);
|
|
break;
|
|
case YON_PAGE_RECOVERY_OS_ONLY:
|
|
return yon_install_options_save(widgets->OSDevicesTree,widgets->OSSysSectionTree,"system_only",widgets);
|
|
break;
|
|
case YON_PAGE_RECOVERY_USRDATA_ONLY:
|
|
return yon_install_options_save(widgets->UserdataDevicesTree,widgets->UserdataSysSectionTree,"data_only",widgets);
|
|
break;
|
|
default:return 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
void yon_page_update(main_window *widgets){
|
|
yon_navigation_buttons_set_sensetiveness(widgets);
|
|
yon_switch_page_render(widgets);
|
|
}
|
|
|
|
enum YON_PAGES yon_sections_get_next_page(main_window *widgets){
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio)))
|
|
return YON_PAGE_INSTALL_COMMON;
|
|
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationNearRadio)))
|
|
return YON_PAGE_INSTALL_SEPARATE;
|
|
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationLinuxRadio)))
|
|
return YON_PAGE_INSTALL_SAME_PARTITION;
|
|
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio)))
|
|
return YON_PAGE_INSTALL_ADVANCED;
|
|
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationOptionsRadio)))
|
|
return YON_PAGE_INSTALL_RECOVERY;
|
|
return YON_PAGE_SECTIONS;
|
|
}
|
|
|
|
enum YON_PAGES yon_recovery_get_next(main_window *widgets){
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubInstallRadio)))
|
|
return YON_PAGE_RECOVERY_GRUB_INSTALL;
|
|
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubUpdateRadio)))
|
|
return YON_PAGE_RECOVERY_GRUB_UPDATE;
|
|
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSRadio)))
|
|
return YON_PAGE_RECOVERY_OS_ONLY;
|
|
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserDataOnlyRadio)))
|
|
return YON_PAGE_RECOVERY_USRDATA_ONLY;
|
|
return YON_PAGE_SECTIONS;
|
|
} |