#include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef WEBKIT_FOUND #include #endif #include "ubl-strings.h" #define WIKI_LINK "https://wiki.ublinux.com/software/programs_and_utilities/all/ubinstall-gtk" #define _(String) gettext(String) #define glade_path "/com/ublinux/ui/ubinstall-gtk.glade" #define glade_path_ubinstall_keyboard "/com/ublinux/ui/ubinstall-gtk-keyboard.glade" #define glade_path_ubinstall_language "/com/ublinux/ui/ubinstall-gtk-language.glade" #define glade_path_network_info "/com/ublinux/ui/ubinstall-gtk-network-box.glade" #define glade_path_log_view "/com/ublinux/ui/ubinstall-gtk-log-view.glade" #define glade_path_user "/com/ublinux/ui/ubinstall-gtk-user.glade" #define glade_path_menu_window "/com/ublinux/ui/ubinstall-gtk-menu.glade" #define glade_path_menu_item "/com/ublinux/ui/ubinstall-gtk-menu-item.glade" #define glade_path_kernel_row "/com/ublinux/ui/ubinstall-gtk-kernel-row.glade" #define glade_path_kernel_addon_row "/com/ublinux/ui/ubinstall-gtk-kernel-addon-row.glade" #define glade_path_os_row "/com/ublinux/ui/ubinstall-gtk-os-row.glade" #define glade_path_service "/com/ublinux/ui/ubinstall-gtk-service-window.glade" #define glade_path_bootloader_user "/com/ublinux/ui/ubinstall-gtk-bootloader-user.glade" #define glade_path_advanced_part "/com/ublinux/ui/ubinstall-gtk-advanced-box.glade" #define glade_path_configuration_mode "/com/ublinux/ui/ubinstall-gtk-configuration-mode.glade" #define glade_path_source "/com/ublinux/ui/ubinstall-gtk-source.glade" #define glade_path_source_element "/com/ublinux/ui/ubinstall-gtk-source-element.glade" #define glade_locales_path "/com/ublinux/ui/ubinstall-gtk-layouts.glade" #define CssPath "/com/ublinux/css/ubinstall-gtk.css" #define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL) #define icon_path "com.ublinux.ubinstall-gtk" #define LocalePath "/usr/share/locale" #define LocaleName "ubinstall-gtk" #define clear_config_both_command "ubconfig remove TEMP_SECTION TEMP_PATAMETER" #define clear_config_global_command "ubconfig --target global remove TEMP_SECTION TEMP_PATAMETER" #define clear_config_local_command "ubconfig --target system remove TEMP_SECTION TEMP_PATAMETER" #define regions_path "/com/ublinux/images/map-time-zone.png" #define keyboard_path "/com/ublinux/images/keyboard.png" #define users_path "/com/ublinux/images/keyboard.png" #define startup_path "/com/ublinux/images/keyboard.png" #define bootloader_path "/com/ublinux/images/keyboard.png" #define network_icon_path "/com/ublinux/images/keyboard.png" #define licence_path "/usr/share/ublinux/agreement/EULA.txt" #define languages_path "/usr/share/ubinstall-gtk/csv/locales.csv" // #define installer_languages_path "resource:///com/ublinux/csv/languages.csv" #define zone_path "/usr/share/zoneinfo/" #define system_base_modules_path "/memory/data/from/0/ublinux/base" #define system_modules_path "/memory/data/from/0/ublinux/modules" #define additional_software_path "resource:///com/ublinux/csv/modules.csv" #define kernel_list_path "resource:///com/ublinux/csv/kernel-list.csv" #define kernel_list_addon_path "resource:///com/ublinux/csv/kernel-list-addon.csv" #define services_list_path "resource:///com/ublinux/csv/services-list.csv" #define network_path "resource:///com/ublinux/csv/network-list.csv" #define fs_types_path "resource:///com/ublinux/csv/filesystems-format-list.csv" #define vfs_list_path "resource:///com/ublinux/csv/vfs-list.csv" #define encryptions_list "luks1","luks2" #define locales_list_command "/usr/share/i18n/locales/" #define slide_0_path "/com/ublinux/images/slide-0.png" #define slide_repeat_path "/com/ublinux/images/slide-1.png", \ "/com/ublinux/images/slide-2.png", \ "/com/ublinux/images/slide-3.png", \ "/com/ublinux/images/slide-4.png", \ "/com/ublinux/images/slide-5.png", \ "/com/ublinux/images/slide-6.png", \ "/com/ublinux/images/slide-7.png", \ "/com/ublinux/images/slide-8.png", \ "/com/ublinux/images/slide-9.png", \ "/com/ublinux/images/slide-10.png", \ "/com/ublinux/images/slide-11.png", \ "/com/ublinux/images/slide-12.png", \ NULL #define get_modules_command "pacman --color never -Qs ^ubm- | sed -Enr -e 'N;s/\\n/ ;/' -e \"s/^([^\\/]+)\\/([^[:blank:]]+)[[:blank:]]+([^[:blank:]]+)[[:blank:]]+(\\(([^\\)]+)\\)[^\\;]+|[^\\;]*);[[:blank:]]*(.*)/\\2;\\3;\\5;\\6/p\"" #define get_local_module_info_command(target) yon_char_unite("pacman --color never -Sp $(pacman -Ssq '",target,"') --print-format '%n;%v;%d' | grep -v \"^::\"",NULL); #define get_menus_entry_command "/usr/lib/ublinux/scripts/grub-functions exec_get_all_menuentry" #define encrypt_domain_password_command(target) yon_char_unite("echo '",target,"' | base64",NULL) #define get_ntp_default_command "ubconfig --default get [network] NTPSERVERS_DEFAULT" #define get_ntp_ru_command "ubconfig --default get [network] NTPSERVERS_RU" #define get_models_command "sed '/<\\/modelList>/q' /usr/share/X11/xkb/rules/base.xml | grep -E '^ {8,8}|^ {8,8}'|sed -e 's/ *//g' -e 's,,,g' -e 's/ *//g' -e 's,,,g'" #define check_is_password_hash(password) system(yon_char_unite("/lib/ublinux/functions is_hash_password '", password,"'",NULL)) #define network_value(ip,mask,gateway, dns) g_strdup_printf("ipv4.method manual ipv4.addr %s/%s ipv4.gateway %s ipv4.dns %s",ip,mask,gateway,dns) #define network_value_auto "ipv4.method auto" #define get_layouts_command "xkbcli list --load-exotic | awk \"\ layout && /description:/ {\ match(\\$0, /: *(.*)/, matches);\ description = matches[1];\ printf \\\"%s|%s|%s\\\\n\\\", layout, variant, description;\ layout = \\\"\\\"; variant = \\\"\\\";\ }\ /layout:/ {\ match(\\$0, /: *'([^']+)'/, matches);\ l = matches[1];\ layout = layouts[l] = l;\ }\ /variant:/ {\ match(\\$0, /: *'([^']+)'/, matches);\ variant = matches[1];\ }\ \" | sort -u\ " #define get_keyboard_layout_change_command "grep \"grp:\" /usr/share/X11/xkb/rules/base.lst | awk '{$1=$1; sub(/^!.*$/, \"\"); if ($1 ~ /^grp:/) {opt=$1; $1=\"\"; print opt \"|\" substr($0,2)}}'" #define enable_vnc_command "ubconfig --target system set [desktop] X11VNC[password]=ublinux" #define disable_vnc_command "ubconfig --target system remove [desktop] X11VNC[password]" #define get_layouts_local_command(layout) yon_char_unite("xkbcli list --load-exotic | awk -v layout=\"",layout,"\" \"BEGIN {layout_pattern = sprintf(\\\"^ *- *layout: *'%s'\\\",layout);matched=0} matched && /variant:/ {match(\\$0, /: *'([^']+)'/, matches);variant = matches[1]} matched && /description:/ {match(\\$0, /: *(.+)/, matches);description = matches[1]} matched && /^ *-/{matched=0; if (variant) printf \\\"%s|%s\\n\\\",variant,description} \\$0 ~ layout_pattern {matched=1;variant=\\\"\\\";description=\\\"\\\";next}\" | sort -u",NULL) #define get_devices_command "lsblk --noheadings --nodeps -Jo PATH,SIZE,MODEL,VENDOR,SERIAL --exclude 7" #define get_parts_and_devices_command "lsblk --noheadings --bytes -o TYPE,PATH,SIZE,FSTYPE,LABEL,PARTLABEL,MOUNTPOINT,FSUSED,FSUSE% --exclude 7 |awk '{print ($1\";\"$2\";\"$3\";\"$4\";\"$5\";\"$6\";\"$7\";\"$8\";\"$9)}'" #define AUTOINSTALL(target) yon_char_unite("AUTOINSTALL[",target,"]",NULL) #define AUTOINSTALL_TYPE_INSTALL "AUTOINSTALL[install_type]" #define AUTOINSTALL_TYPE_INSTALL_command "ubconfig --source global get [autoinstall] AUTOINSTALL[install_type]" #define AUTOINSTALL_DEVICE "AUTOINSTALL[device]" #define AUTOINSTALL_DEVICE_command "ubconfig --source global get [autoinstall] AUTOINSTALL[device]" #define part_parameter "AUTOINSTALL[part]" #define part_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part]" #define modules_parameter "AUTOINSTALL[modules]" #define modules_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[modules]" #define modules_extra_parameter "AUTOINSTALL[modules_extra]" #define modules_extra_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[modules_extra]" /*------------------------------------------------------------*/ #define root_password_parameter "AUTOINSTALL[ubconfig set [users] DEFAULTROOTPASSWD]" #define root_password_parameter_command "ubconfig --source global --conarg get [autoinstall] AUTOINSTALL['ubconfig set [users] DEFAULTROOTPASSWD']" #define autologin_parameter "AUTOINSTALL[ubconfig set [desktop] AUTOLOGINUSER]" #define autologin_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [desktop] AUTOLOGINUSER']" #define xkbmodel_parameter "AUTOINSTALL[ubconfig set [keyboard] XKBMODEL]" #define xkbmodel_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBMODEL']" #define xkblayout_parameter "AUTOINSTALL[ubconfig set [keyboard] XKBLAYOUT]" #define xkblayout_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBLAYOUT']" #define xkbvariant_parameter "AUTOINSTALL[ubconfig set [keyboard] XKBVARIANT]" #define xkbvariant_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBVARIANT']" #define xkboptions_parameter "AUTOINSTALL[ubconfig set [keyboard] XKBOPTIONS]" #define xkboptions_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBOPTIONS']" #define hostname_parameter "AUTOINSTALL[ubconfig set [system] HOSTNAME]" #define hostname_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [system] HOSTNAME']" #define zone_parameter "AUTOINSTALL[ubconfig set [clock] ZONE]" #define zone_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [clock] ZONE']" #define lang_parameter "AUTOINSTALL[ubconfig set [locale] LANG]" #define lang_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [locale] LANG']" #define locale_parameter "AUTOINSTALL[ubconfig set [locale] LOCALE]" #define locale_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [locale] LOCALE']" /*------------------------------------------------------------*/ #define part_size_parameter "AUTOINSTALL[part_size]" #define part_size_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_size]" #define part_fs_type_parameter "AUTOINSTALL[part_fs_type]" #define part_fs_type_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_fs_type]" #define part_format_parameter "AUTOINSTALL[part_format]" #define part_format_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_format]" #define part_label_parameter "AUTOINSTALL[part_label]" #define part_label_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_label]" #define part_fs_label_parameter "AUTOINSTALL[part_fs_label]" #define part_fs_label_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_fs_label]" #define part_crypt_parameter "AUTOINSTALL[part_crypt]" #define part_crypt_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_crypt]" #define swap_parameter "AUTOINSTALL[swap]" #define swap_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[swap]" #define swap_size_parameter "AUTOINSTALL[swap_size]" #define swap_size_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[swap_size]" #define boot_parameter "AUTOINSTALL[boot]" #define boot_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[boot]" #define packages_parameter "AUTOINSTALL[packages]" #define packages_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[packages]" #define device_typevfs_parameter "AUTOINSTALL[device_typevfs]" #define device_typevfs_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[device_typevfs]" #define NTPSERVERS_parameter "AUTOINSTALL[ubconfig set [network] NTPSERVERS]" #define NTPSERVERS_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [network] NTPSERVERS']" #define DOMAIN_parameter "AUTOINSTALL[ubconfig set [network] DOMAIN]" #define DOMAIN_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [network] DOMAIN']" #define DOMAIN_admanger_parameter "AUTOINSTALL[ubconfig set [network] DOMAIN[admanger]]" #define DOMAIN_admanger_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [network] DOMAIN[admanger]']" #define USERADD_parameter_all "AUTOINSTALL[ubconfig set [users] USERADD[*]]" #define USERADD_parameter_search "AUTOINSTALL[ubconfig set [users] USERADD[" #define USERADD_parameter(target) yon_char_unite("AUTOINSTALL[ubconfig set [users] USERADD[",target,"]]",NULL) #define USERADD_parameter_command(target) yon_char_unite("ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [users] USERADD[",target,"]']",NULL) #define KERNEL_BOOT_parameter "AUTOINSTALL[ubconfig set [boot] KERNEL_BOOT]" #define KERNEL_BOOT_parameter_command "ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [boot] KERNEL_BOOT']" #define SERVICES_ENABLE_parameter "AUTOINSTALL[ubconfig set [boot] SERVICES_ENABLE]" #define SERVICES_ENABLE_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] SERVICES_ENABLE']" #define GRUB_SUPERUSERS_parameter "AUTOINSTALL[ubconfig set [boot] GRUB_SUPERUSERS]" #define GRUB_SUPERUSERS_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] GRUB_SUPERUSERS']" #define GRUB_TIMEOUT_parameter "AUTOINSTALL[ubconfig set [boot] GRUB_TIMEOUT]" #define GRUB_TIMEOUT_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] GRUB_TIMEOUT']" #define GRUB_DEFAULT_parameter "AUTOINSTALL[ubconfig set [boot] GRUB_DEFAULT]" #define GRUB_DEFAULT_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] GRUB_DEFAULT']" #define GRUB_PASSWORD_parameter_search "AUTOINSTALL[ubconfig set [boot] GRUB_PASSWORD[" #define GRUB_PASSWORD_parameter_all "AUTOINSTALL[ubconfig set [boot] GRUB_PASSWORD[*]]" #define GRUB_PASSWORD_parameter(target) yon_char_unite("AUTOINSTALL[ubconfig set [boot] GRUB_PASSWORD[",target,"]]",NULL) #define GRUB_PASSWORD_parameter_command_all "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] GRUB_PASSWORD[*]']" #define GRUB_PASSWORD_parameter_command(target) yon_char_unite("ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] GRUB_PASSWORD[",target,"]']",NULL) #define AUTOLOGINUSER_parameter "AUTOINSTALL[ubconfig set [desktop] AUTOLOGINUSER]" #define AUTOLOGINUSER_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] AUTOLOGINUSER']" #define NETWORK_parameter_search "AUTOINSTALL[ubconfig set [network] NETWORK[" #define NETWORK_parameter(target) yon_char_unite("AUTOINSTALL[ubconfig set [network] NETWORK[",target,"@connmod]]",NULL) #define NETWORK_devdown_parameter(target) yon_char_unite("AUTOINSTALL[ubconfig set [network] NETWORK[",target,"@devdown]]",NULL) #define NETWORK_parameter_command(target) yon_char_unite("ubconfig get autoinstall AUTOINSTALL['ubconfig set [network] NETWORK[",target,"@connmod]']",NULL) #define NETWORK_devdown_parameter_command(target) yon_char_unite("ubconfig get autoinstall AUTOINSTALL['ubconfig set [network] NETWORK[",target,"@devdown]']",NULL) #define NETWORK(target) yon_char_unite("NETWORK[",target,"@connmod]",NULL) #define installer_lang_parameter "AUTOINSTALL[installer_lang]" #define installer_lang_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[installer_lang]" #define source_parameter "AUTOINSTALL[source]" #define source_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[source]" #define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ",parameters, "; nice ubinstall2 --debug autoinstall", NULL) #define set_user_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ",parameters,";nice ubinstall2 autoconfig",NULL) #define save_additional_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ",parameters,NULL) #define get_default_password_command "ubconfig --raw --conarg --source default get [users] NOSECUREROOTPASSWD" #define open_gparted_command "gparted" #define PASSWORD_DEFAULT "ublinux" #define start_fast_install_command "ubinstall2 --autoinstall" #define progress_path "/var/log/ubinstall_progress.log" #define password_limits_path "/etc/security/pwquiality.conf" #define short_log_path "/var/log/ubinstall_progress.log" #define full_log_path "/var/log/ubinstall.log" #define yon_config_get_command(target) yon_char_unite("ubconfig --source ",target," --conarg get [autoinstall] AUTOINSTALL[*]",NULL) #define config_get_default_command "ubconfig --source default --conarg get [autoinstall] AUTOINSTALL[*]" #define config_get_global_only_parameters "" #define config_get_local_only_parameters "" #define ubconfig_file_create(target) yon_char_unite("ubconfig --target \"",target,"\" create",NULL) #define default_langs(size) yon_char_parsed_new(size,"en_US.UTF-8","ru_RU.UTF-8",NULL); #define languages_command "while IFS= read -ru3 SELECT_LOCALE; do SELECT_LOCALE=\"${SELECT_LOCALE% *}\"; [[ $(< /usr/share/i18n/locales/${SELECT_LOCALE%.*}) =~ (\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"country_name\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\") ]] && echo \"${SELECT_LOCALE}|${BASH_REMATCH[2]}${BASH_REMATCH[7]}${BASH_REMATCH[11]}${BASH_REMATCH[5]:+ (${BASH_REMATCH[5]})}${BASH_REMATCH[9]:+ (${BASH_REMATCH[9]})}|${BASH_REMATCH[3]}${BASH_REMATCH[8]}${BASH_REMATCH[12]}${BASH_REMATCH[4]:+ (${BASH_REMATCH[4]})}\" || echo \"${SELECT_LOCALE}\"; done 3< \"/usr/share/i18n/SUPPORTED\"" #define get_package_info_command(target) yon_char_append("pacman -Si ",target) #define install_common_parameters \ AUTOINSTALL_TYPE_INSTALL,\ AUTOINSTALL_DEVICE,\ part_format_parameter,\ part_label_parameter,\ part_fs_type_parameter #define install_part_parameters \ AUTOINSTALL_TYPE_INSTALL,\ AUTOINSTALL_DEVICE,\ part_format_parameter,\ part_fs_label_parameter,\ part_parameter,\ part_fs_type_parameter,\ part_fs_label_parameter #define install_next_parameters \ AUTOINSTALL_TYPE_INSTALL,\ AUTOINSTALL_DEVICE,\ part_format_parameter,\ part_fs_label_parameter,\ part_parameter,\ part_fs_type_parameter,\ part_size_parameter #define install_advanced_parameters \ AUTOINSTALL_TYPE_INSTALL,\ AUTOINSTALL_DEVICE,\ part_format_parameter,\ part_label_parameter,\ part_parameter,\ part_fs_type_parameter,\ part_size_parameter #define install_grub_install_update_parameters \ AUTOINSTALL_TYPE_INSTALL,\ AUTOINSTALL_DEVICE,\ part_parameter #define install_system_only_parameters \ AUTOINSTALL_TYPE_INSTALL,\ AUTOINSTALL_DEVICE,\ part_format_parameter,\ part_label_parameter,\ part_parameter,\ part_fs_type_parameter,\ part_size_parameter,\ part_crypt_parameter #define install_userdata_only_parameters \ AUTOINSTALL_TYPE_INSTALL,\ AUTOINSTALL_DEVICE,\ part_format_parameter,\ part_label_parameter,\ part_parameter,\ part_fs_type_parameter,\ part_size_parameter,\ part_crypt_parameter typedef char* string; __attribute__((unused)) static \ string version_application; enum YON_PAGES { YON_PAGE_WELCOME = 0, YON_PAGE_LICENCE, YON_PAGE_SECTIONS, YON_PAGE_OS_COMPONENTS, YON_PAGE_INSTALLATION_BEGIN, YON_PAGE_KERNEL, YON_PAGE_KERNEL_ADDON, YON_PAGE_SOFTWARE, YON_PAGE_PACMAN_SOFTWARE, YON_PAGE_REGION, YON_PAGE_LANGUAGE, YON_PAGE_KEYBOARD, YON_PAGE_USERS, YON_PAGE_STARTUP, YON_PAGE_BOOTLOADER, YON_PAGE_NETWORK, YON_PAGE_PACKAGES_HUB, YON_PAGE_INSTALLATION, YON_PAGE_COMPLETION, YON_PAGE_COMPLETED, YON_PAGE_INSTALL_ERROR, YON_PAGE_CONFIGURE_END, YON_PAGE_CONFIGURE_SAVE, YON_PAGE_INSTALL_COMMON, YON_PAGE_INSTALL_SEPARATE, YON_PAGE_INSTALL_SAME_PARTITION, YON_PAGE_INSTALL_ADVANCED, YON_PAGE_INSTALL_RECOVERY, YON_PAGE_RECOVERY_GRUB_INSTALL, YON_PAGE_RECOVERY_GRUB_UPDATE, YON_PAGE_RECOVERY_OS_ONLY, YON_PAGE_RECOVERY_USRDATA_ONLY }; typedef struct { template_config_fields config_str launch_arguments; int launch_size; int save_done; int save_configured; int install_complete; guint slider_thread; int install_mode; unsigned long install_thread; guint progress_thread; int configure_mode; int log_progress_buzy; int autologin_default; int format_default; int log_end; int exit_accepted; GMutex progress_mutex; GMutex install_mutex; GHashTable *languages; int arg_size; config_str arg_target; GtkWidget *status_box; GHashTable *network_types; GtkWidget *kernel_unchosen_radio; unsigned int cur_slide; gboolean dry_run; } config; extern config main_config; typedef struct { GtkWidget *CommonInstallationDevicesTree; GtkWidget *GpartedCommonButton; GtkWidget *CommonInstallationFilesystemTypeCombo; GtkWidget *CommonInstallationSectionNameEntry; GtkListStore *DevicesList; } install_common_page; typedef struct { GtkBuilder *builder; GtkListStore *DevicesList; GtkListStore *LanguagesList; GtkTreeStore *LayoutList; GtkListStore *PartitionsList; GtkWidget *LoadGlobalConfigurationMenuItem; GtkWidget *LoadLocalConfigurationMenuItem; GtkWidget *LoadExternalConfigurationMenuItem; GtkWidget *SaveGlobalLocalConfigurationMenuItem; GtkWidget *SaveGlobalConfigurationMenuItem; GtkWidget *SaveLocalConfigurationMenuItem; GtkWidget *SaveExternalConfigurationMenuItem; GtkWidget *MainWindow; GtkWidget *LicenseAgreeRadio; GtkWidget *LicenseDisgreeRadio; GtkWidget *StartScenarioButton; GtkWidget *SourceButton; GtkWidget *SkipInstallationButton; GtkWidget *MainSpinner; GtkWidget *StatusBox; GtkWidget *StatusBox2; GtkWidget *WelcomeToggle; GtkWidget *LicenceToggle; GtkWidget *LocationToggle; GtkWidget *KeyboardToggle; GtkWidget *SectionsToggle; GtkWidget *UsersToggle; GtkWidget *SummaryToggle; GtkWidget *CompletionToggle; GtkWidget *InstallationToggle; GtkWidget *LanguagesTree; GtkWidget *CountryLanguagesTree; GtkListStore *InstallerCountryList; GtkListStore *InstallerLanguageList; GtkTreeModel *InstallerCountryFilter; // GtkWidget *LanguageCombo; GtkWidget *RegionCombo; GtkWidget *ZoneCombo; GtkWidget *AvailableLanguagesEntry; GtkWidget *AvailableLanguagesButton; GtkWidget *LanguagesCombo; GtkWidget *KeyboardModelCombo; GtkWidget *LayoutBindingCombo; GtkWidget *LayoutTree; GtkWidget *AddButton; GtkWidget *RemoveButton; GtkWidget *InstallationRadio; GtkWidget *InstallationNearRadio; GtkWidget *InstallationLinuxRadio; GtkWidget *InstallationWindowsRadio; GtkWidget *InstallationOptionsRadio; GtkWidget *UserImage; GtkWidget *UserRootNameEntry; GtkWidget *UserRootLoginEntry; GtkWidget *UserRootPasswordCombo; GtkWidget *UserRootPasswordEntry; GtkWidget *UserRootPasswordButton; GtkWidget *UserAutologinSwitch; GtkWidget *UserAddBox; GtkWidget *UserAddButton; GtkWidget *HotnameEntry; GtkWidget *AutoHostnameCheck; GtkWidget *CancelInstallButton; GtkWidget *BackButton; GtkWidget *NextButton; GtkWidget *mainSettingsButton; GtkWidget *menu1; GtkWidget *menu2; GtkWidget *LocaleDefaultSwitch; GtkWidget *LocaleTree; GtkWidget *LocaleAddButton; GtkWidget *LocaleRemoveButton; GtkCellRenderer *LocaleCell; GtkListStore *LanguageList; GtkWidget *RegionImage; GtkWidget *RegionBox; GtkWidget *RegionAspect; GtkWidget *KeyboardImage; GtkWidget *KeyboardBox; GtkCellRenderer *KeyboardLayoutChosenCell; GtkWidget *Notebook; GtkWidget *LicenceLabel; GtkWidget *SlidesImage; GtkWidget *CommonInstallationDevicesTree; GtkWidget *CommonInstallationFilesystemTypeCombo; GtkWidget *CommonInstallationSectionNameEntry; GtkWidget *CommonFormatSwitch; GtkWidget *GpartedCommonButton; GtkWidget *NextInstallationSysDevicesTree; GtkWidget *NextInstallationSysSectionTree; GtkWidget *NextInstallationFormatSwitch; GtkWidget *NextInstallationFormatRevealer; GtkWidget *NextInstallationSizeSpin; GtkWidget *NextInstallationSizeTypeSpin; GtkWidget *NextInstallationFilesystemTypeCombo; GtkWidget *NextInstallationSectionNameEntry; GtkWidget *GpartedNextInstallationButton; GtkWidget *SamePlaceDeviceTree; GtkWidget *SamePlacePartTree; GtkWidget *SameInstallationFormatSwitch; GtkWidget *SameInstallationFormatRevealer; GtkWidget *SameInstallationFilesystemTypeCombo; GtkWidget *SameInstallationSectionNameEntry; GtkWidget *GpartedSameButton; GtkWidget *InstallationProgress; GtkWidget *InstallationLabel; GtkWidget *ReadShortLogButton; GtkWidget *PackageInstallationProgress; GtkWidget *PackageInstallationLabel; GtkWidget *ReadFullLogButton; GtkWidget *ConfigurationModeMenuItem; GtkWidget *EnableVNCMenuItem; GtkWidget *AboutMenuItem; GtkWidget *DocumentationMenuItem; GtkWidget *AdditionalComponentsList; GtkWidget *GrubInstallRadio; GtkWidget *GrubUpdateRadio; GtkWidget *SeparateRadio; GtkWidget *OSRadio; GtkWidget *UserDataOnlyRadio; GtkWidget *GpartedGrubInstallButton; GtkWidget *GrubInstallDevicesTree; GtkWidget *GrubInstallPartitionTree; GtkWidget *GpartedGrubUpdateButton; GtkWidget *GrubUpdateDevicesTree; GtkWidget *GrubUpdatePartitionTree; GtkWidget *GpartedOSButton; GtkWidget *OSDevicesTree; GtkWidget *OSSysSectionTree; GtkWidget *OSFormatSwitch; GtkWidget *OSRevealer; GtkWidget *OSFormatSizeSpin; GtkWidget *OSFormatSizeCombo; GtkWidget *OSFormatPartitionEntry; GtkWidget *OSFilesystemTypeCombo; GtkWidget *OSFormatFSMarkEntry; GtkWidget *OSFormatEncryptionCombo; GtkWidget *OSFormatEncryptionEntry; GtkWidget *OSSpinner; GtkWidget *OSOverlay; GtkWidget *GpartedUserdataButton; GtkWidget *UserdataDevicesTree; GtkWidget *UserdataSysSectionTree; GtkWidget *UserdataFormatSwitch; GtkWidget *UserdataRevealer; GtkWidget *UserdataFormatSizeSpin; GtkWidget *UserdataFormatSizeCombo; GtkWidget *UserdataFormatPartitionEntry; GtkWidget *UserdataFilesystemTypeCombo; GtkWidget *UserdataFormatFSMarkEntry; GtkWidget *UserdataFormatEncryptionCombo; GtkWidget *UserdataFormatEncryptionEntry; GtkTreeModel *LanguagesFilter; GtkTreeModel *LayoutsFilter; GdkPixbuf *region_original; GdkPixbuf *keyboard_original; GdkPixbuf *user_original; GdkPixbuf *startup_original; GdkPixbuf *bootloader_original; GdkPixbuf *network_original; GList *slides_original; float region_height_mult; GtkWidget *RegionSensitiveSwitch; GtkWidget *HostnameSensitiveSwitch; GtkWidget *KernelListBox; GtkWidget *KernelInstallLabel; GtkWidget *KernelEnableLabel; GtkWidget *KernelNameLabel; GtkWidget *KernelTagsLabel; GtkWidget *KernelModulesLabel; GtkWidget *KernelDescriptionLabel; GtkSizeGroup *KernelSizeGroup; GtkWidget *KernelAddonListBox; GtkWidget *KernelAddonInstallLabel; GtkWidget *KernelAddonNameLabel; GtkWidget *KernelAddonModulesLabel; GtkWidget *KernelAddonDescriptionLabel; GtkWidget *OSSoftwareListBox; GtkWidget *OSSoftwareInstallLabel; GtkWidget *OSSoftwareNameLabel; GtkWidget *OSSoftwareTagsLabel; GtkWidget *OSSoftwareDescriptionLabel; GtkWidget *PacmanSoftwareSearchEntry; GtkWidget *PacmanSoftwareStatusImage; GtkWidget *PacmanSoftwareStatusLabel; GtkWidget *PacmanSoftwareStatusButton; GtkWidget *PacmanLoadingOverlay; GtkWidget *PacmanSoftwareAllPackagesTree; GtkListStore *PacmanSoftwareAllList; GtkCellRenderer *PacmanSoftwareAllCell; GHashTable *pacmanchosen; GtkWidget *PacmanSoftwareChosenPackagesTree; GtkListStore *PacmanSoftwareChosenList; GtkCellRenderer *PacmanSoftwareChosenCell; GtkWidget *StartupImage; GtkWidget *StartupServicesTree; GtkWidget *StartupServicesAddButton; GtkWidget *StartupServicesEditButton; GtkWidget *StartupServicesRemoveButton; GtkCellRenderer *StartupChosenCell; GtkListStore *StartupList; GtkWidget *BootloaderImage; GtkWidget *BootloadTimerSwitch; GtkWidget *BootloadTimerSpin; GtkWidget *BootloadDefaultOSEntry; GtkWidget *BootloadDefaulOSButton; GtkWidget *BootloadNoPasswordSwitch; GtkWidget *BootloadUserAddButton; GtkWidget *BootloadUserRemoveButton; GtkWidget *BootloadUserTree; GtkListStore *BootloadUsersList; GtkWidget *NetworkImage; GtkWidget *NetworkDomainSwitch; GtkWidget *NetworkDomainNameEntry; GtkWidget *NetworkDomainAdminEntry; GtkWidget *NetworkDomainPasswordEntry; GtkWidget *NetworkNTPServerSwitch; GtkWidget *NetworkNTPCombo; GtkWidget *NetworkNTPEntry; GtkWidget *NetworkConnectionsBox; GtkWidget *NetworkConnectionsAddButton; GHashTable *network_connections; GtkCellRenderer *AdvancedDeviceChosenCell; GtkCellRenderer *AdvancedPartChosenCell; GtkWidget *AdvancedDeviceTree; GtkWidget *AdvancedVirtualDeviceCombo; GtkWidget *AdvancedPartitionTree; GtkWidget *AdvancedPartitionAddBox; GtkWidget *AdvancedAddButton; GtkWidget *AdvancedLoadTypeSwitch; GtkWidget *AdvancedBiosSectorSwitch; GtkWidget *AdvancedEFISwitch; GtkWidget *AdvancedSwapSwitch; GtkWidget *AdvancedSwapAutoSwitch; GtkWidget *AdvancedSwapRamSwitch; GtkWidget *AdvancedSwapFixedSpin; GtkWidget *AdvancedSwapFixedSwitch; GtkWidget *AdvancedSwapFixedSizeSwitch; GtkWidget *AdvancedSwapRevealer; GtkWidget *AdvancedLoadTypeRevealer; GtkWidget *AdvancedVirtualDeviceLabel; dictionary *advanced_sections; GSequence *advanced_partition_order; GFile *install_progress_file; GFileMonitor *install_progress_monitor; GFile *install_info_file; GFileMonitor *install_info_monitor; } main_window; enum ADVANCED_PART_TYPE { ADVANCED_PART_NEW, ADVANCED_PART_EXISTING }; typedef struct { GtkWidget *MainBox; GtkWidget *SectionLabel; GtkWidget *SystemSectionToggle; GtkWidget *UserDataSectionToggle; GtkWidget *RemoveButton; GtkWidget *FormatSwitch; GtkWidget *FormatRevealer; GtkWidget *SizeSpin; GtkWidget *SizeCombo; GtkWidget *PartLabelEntry; GtkWidget *FileSystemTypeCombo; GtkWidget *FileSystemLabelEntry; GtkWidget *EncryptionCombo; GtkWidget *EncryptionEntry; GtkWidget *EncryptionButton; GtkWidget *SectionPartitionLabel; GSequenceIter *order_iter; enum ADVANCED_PART_TYPE part_type; char *part; char *device; } advanced_partition; typedef struct { GtkWidget *Window; GtkWidget *HeaderLabel; GtkWidget *AlwaysOpenCheck; GtkWidget *CloseButton; GtkWidget *AcceptButton; } documentation_confirmation_window; typedef struct{ GtkWidget *MainWindow; GtkWidget *StatusBox; GtkWidget *headerBar; GtkWidget *CancelButton; GtkWidget *SaveButton; GtkWidget *LayoutsTree; GtkCellRenderer *ActiveToggle; } ubinstall_keyboard_window; typedef struct{ GtkListStore *liststore1; GtkWidget *MainWindow; GtkWidget *StatusBox; GtkWidget *DefaultCheck; GtkWidget *headerBar; GtkWidget *CancelButton; GtkWidget *SaveButton; GtkWidget *LanguagesTree; GtkCellRenderer *ToggleRenderer; } ubinstall_language_window; typedef struct{ GtkWidget *CreateGroupWindow; GtkWidget *StatusBox; GtkWidget *UserCancelButton; GtkWidget *UserOkButton; GtkWidget *UserRootPasswordEntry; GtkWidget *RepeatPasswordEntry; GtkWidget *PasswordHashEntry; GtkWidget *HashBox; GtkWidget *PasswordBox; GtkWidget *NoEncriptionCheck; } password_window; typedef struct { GtkWidget *Window; GtkWidget *ScrollWindow; GtkWidget *StatusBox; GtkWidget *HeadLabel; GtkWidget *LogLabel; GtkWidget *ScrollToEndCheck; GFileMonitor *monitor; char *command; } log_window; typedef struct { GtkWidget *Window; GtkWidget *TitleLabel; GtkWidget *TextLabel; GtkWidget *AcceptButton; GtkWidget *CancelButton; } confirmation_window; typedef struct { GtkWidget *MainBox; GtkWidget *TypeCombo; GtkWidget *ConnectionCombo; GtkWidget *ConnectionEntry; GtkWidget *EnabledSwitch; GtkWidget *RemoveButton; GtkWidget *AutoGetIPSwitch; GtkWidget *IpRevealer; GtkWidget *IpAdressEntry; GtkWidget *GatewayEntry; GtkWidget *MaskEntry; GtkWidget *DNSEntry; } network_info; typedef struct { GtkWidget *MainBox; GtkWidget *RemoveButton; GtkWidget *UsernameEntry; GtkWidget *LoginEntry; GtkWidget *PasswordCombo; GtkWidget *PasswordEntry; GtkWidget *PasswordButton; } yon_user_struct; typedef struct { GtkWidget *MenuWindow; GtkWidget *BackButton; GtkWidget *ItemsRevealer; GtkWidget *ItemsListBox; GtkWidget *ChildrenRevealer; GtkWidget *ChildrenListBox; int seat_grab; dictionary *menu_items; char *cur_selection; int button_pos_x; int button_pos_y; } yon_menu_window; typedef struct { GtkWidget *MenuItemBox; GtkWidget *MenuButton; GtkWidget *MenuTextLabel; GtkWidget *NextIconButton; char *target; main_window *widgets; yon_menu_window *window; dictionary *children; } yon_menu_item; typedef struct { GtkWidget *row; GtkWidget *RowBox; GtkWidget *InstallCheck; GtkWidget *NameLabel; GtkWidget *DescriptionLabel; GtkWidget *ModulesLabel; GtkWidget *TagsBox; GtkWidget *EnableRadio; GtkWidget *EnableSeparator; GtkWidget *TagsSeparator; char *name; char *modules; char *package; } kernel_row; typedef struct { GtkWidget *row; GtkWidget *RowBox; GtkWidget *InstallCheck; GtkWidget *NameLabel; GtkWidget *DescriptionLabel; GtkWidget *ModuleLabel; GtkWidget *PackageLabel; char *name; char *modules; char *package; } kernel_addon_row; typedef struct { GtkWidget *row; GtkWidget *RowBox; GtkWidget *InstallCheck; GtkWidget *NameLabel; GtkWidget *DescriptionLabel; GtkWidget *VersionLabel; GtkWidget *TagsBox; char *name; char *modules; char *version; char *tags; char *description; } os_row; typedef struct { GtkWidget *Window; GtkWidget *StatusBox; GtkWidget *UnitEntry; GtkWidget *ServiceEntry; GtkWidget *DescriptionEntry; GtkWidget *CancelButton; GtkWidget *AcceptButton; } startup_service_window; struct pacman_struct{ main_window *widgets; const char *find_package; gsize packages_size; config_str packages; }; typedef struct { GtkWidget *Window; GtkWidget *StatusBox; GtkWidget *TitleLabel; GtkWidget *AdminCheck; GtkWidget *UsernameEntry; GtkWidget *PasswordEntry; GtkWidget *PasswordButton; GtkWidget *CancelButton; GtkWidget *AcceptButton; char *prev_name; } bootloader_user_window; typedef struct { GtkWidget *Window; GtkWidget *StatusBox; GtkWidget *PathEntry; GtkWidget *PathButton; GtkWidget *CancelButton; GtkWidget *ChooseButton; } configuration_window; typedef struct { GtkWidget *Window; GtkWidget *StatusBox; GtkWidget *CancelButton; GtkWidget *AcceptButton; GtkWidget *AutoSwitch; GtkWidget *TypeCombo; GtkWidget *PathEntry; GtkWidget *DeviceCombo; GtkWidget *PathButton; GtkWidget *AddButton; GtkWidget *AddBox; dictionary *sources; } source_window; typedef struct { GtkWidget *MainBox; GtkWidget *TypeCombo; GtkWidget *PathEntry; GtkWidget *DeviceCombo; GtkWidget *PathButton; GtkWidget *RemoveButton; } source_element; enum PART_SOURCE { PART_SOURCE_DEVICE, PART_SOURCE_PART, PART_SOURCE_VIRTUAL }; typedef struct { char *partition; char *device; int sys_section; int user_section; gboolean format; unsigned long size; char size_letter; char *part_label; char *fs_type; char *fs_label; char *encryption; char *encryption_password; enum PART_SOURCE part_source; advanced_partition *partition_widgets; } advanced_section; struct row_data { main_window *widgets; char *version; char *name; char *tags; char *description; }; typedef struct { GtkWidget *Window; GtkWidget *StatusBox; GtkWidget *LanguagesTree; GtkWidget *CancelButton; GtkWidget *AcceptButton; GtkWidget *ManualEntry; GtkWidget *LoadingOverlay; GtkWidget *LoadingSpinner; GtkCellRenderer *ToggleCell; GtkListStore *LanguagesList; } language_window; struct locales_struct { char *locale; char *lang; char *territory; int chosen; GtkListStore *list; }; void config_init(); main_window *yon_main_window_complete(); ubinstall_language_window *yon_ubinstall_language_new(); void NewFunction(ubinstall_language_window *window, GtkBuilder *builder); ubinstall_keyboard_window *yon_ubinstall_keyboard_new(); void on_password_accept(GtkWidget *self, dictionary *dict); void yon_interface_update(main_window *widgets); void on_summary_log_view(GtkWidget *,main_window *widgets); void on_device_selection_changed(GtkWidget *self, main_window *widgets); void on_toggle_button_switch_on(GtkWidget *, GtkToggleButton *toggle); void on_autohostname_sensitiveness_check(GtkWidget *, int status, main_window *widgets); void on_autohostname_check(GtkWidget *, main_window *widgets); void on_hostname_entry_changed (GtkWidget *, main_window *widgets); gboolean on_install_success(main_window *widgets); gboolean on_install_error(main_window *widgets); // confirmation_window *yon_confirmation_window_new(); void on_reboot_accepted(main_window *widgets); void on_keyboard_clicked (GtkWidget *, main_window *widgets); void on_keyboard_accept(GtkWidget *self,main_window *widgets); void on_layout_toggle(GtkCellRendererToggle*, gchar* path, ubinstall_keyboard_window *window); void on_language_clicked(GtkWidget *, main_window *widgets); void yon_language_selection_changed(GtkCellRenderer *, char *path, ubinstall_language_window *window); void on_language_window_accept(GtkWidget *,dictionary *dict); void on_keyboard_removed(GtkWidget *, main_window *widgets); void on_exit_accepted(main_window *widgets); void on_gparted_open(); // void on_same_installation_device_changed(GtkWidget *, main_window *widgets); void on_separate_installation_changed(GtkWidget *self, main_window *widgets); void on_partition_changed(GtkWidget *self, main_window *widgets); void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_size, GtkComboBox *size_type); gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets); void on_locale_changed(GtkWidget *,main_window *); void on_region_changed(GtkComboBox *self, main_window *widgets); void on_page_cancel_clicked(GtkWidget *, main_window *widgets); int yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char *mode,main_window *widgets); void on_process_log_view(GtkWidget *,main_window *widgets); void yon_read_log(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,log_window *window); log_window *yon_log_window_new(); void on_log_closed(GtkWidget *, log_window *window); void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets); void yon_installation_progress_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_window *widgets); void *on_config_save(void *data); void *on_setup_system_configuration(void * data); gboolean on_image_slide(void *data); void on_region_resized(GtkWidget *,main_window *widgets); int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled); void on_configuration_mode_switch(GtkWidget *self,main_window *widgets); double yon_size_long_convert_automatic(unsigned long bytes, char *size); double yon_size_long_convert_to_mod(double size, char mod); void on_root_get_root(char *argline); void on_config_custom_save(GtkWidget *, main_window *widgets); void on_config_global_save(GtkWidget *,main_window *widgets); void on_config_local_save(GtkWidget *,main_window *widgets); void on_config_global_local_save(GtkWidget *,main_window *widgets); void on_config_custom_load_last(GtkWidget *,main_window *widgets); void on_config_custom_load(GtkWidget *,main_window *); void on_config_global_load(GtkWidget *,main_window *); void on_config_local_load(GtkWidget *,main_window *widgets); void yon_config_save_proceed(char *path, YON_CONFIG_TYPE type); void on_page_next_clicked(GtkWidget *, main_window *widgets); void on_page_prev_clicked(GtkWidget *, main_window *widgets); void yon_load_proceed(YON_CONFIG_TYPE type); void _yon_saving_threaded(char *final_command); enum YON_PAGES yon_page_get_next(main_window *widgets,enum YON_PAGES page); enum YON_PAGES yon_page_get_prev(enum YON_PAGES page); enum YON_PAGES yon_sections_get_next_page(main_window *widgets); enum YON_PAGES yon_recovery_get_next(main_window *widgets); enum YON_PAGES yon_page_get_current(GtkNotebook *target); void yon_switch_page_render(main_window *widgets); void yon_page_update(main_window *); void yon_navigation_buttons_set_sensetiveness(main_window *widgets); int yon_region_save(main_window *widgets); int yon_keyboard_save(main_window *widgets); int yon_install_common_save(main_window *widgets); int yon_install_separate_save(main_window *widgets); int yon_install_same_partition_save(main_window *widgets); int yon_grub_install_save(main_window *widgets); int yon_grub_update_save(main_window *widgets); int yon_os_components_save(main_window *widgets); int yon_software_save(main_window *widgets); int yon_kernel_save(main_window *widgets); int yon_page_save(main_window *widgets, enum YON_PAGES page); int yon_users_save(main_window *widgets); int yon_bootloader_save(main_window *widgets); int yon_startup_save(main_window *widgets); network_info *yon_network_info_new(); int yon_install_advanced_save(main_window *widgets); int yon_network_save(main_window *widgets); void on_connection_add(GtkWidget *,main_window *widgets); void on_ntp_sync(GtkWidget *, main_window *widgets); int yon_advanced_sections_save(dictionary *dict); void yon_configuration_mode_check(main_window *widgets); void on_configuration_mode_switch(GtkWidget *self,main_window *widgets); void *_yon_installation_start(main_window *widgets); int yon_installation_start(main_window *widgets); enum INSTALL_TYPE yon_ubl_get_install_mode(); int yon_user_save(yon_user_struct *user); void on_user_add(GtkWidget *,main_window *widgets); yon_user_struct *yon_user_struct_new(); void on_user_remove_clicked(GtkWidget *,yon_user_struct *user); void yon_password_new(GtkWidget *, yon_user_struct *user); void yon_password_root_new(GtkWidget *, main_window *widgets); yon_menu_item *yon_menu_item_new(); yon_menu_window *yon_menu_window_new(); void on_menu_window_size_reallocated(GtkWidget *self,GtkAllocation *,yon_menu_window *window); void on_children_clean(GtkWidget*, yon_menu_window *window); gboolean yon_on_revealer_switched (yon_menu_window *window); gboolean on_menu_clicked(GtkWidget *, GdkEventButton *event, yon_menu_window *window); yon_menu_window *yon_menu_window_open(GtkWidget *, main_window *widgets); void on_submenu_open(GtkWidget *,yon_menu_item *item); void on_menu_chosen(GtkWidget *, yon_menu_item *item); void yon_kernel_setup(main_window *widgets); void yon_kernel_row_setup(kernel_row *row, char *name, char *modules,char *package, char *tags, char *description); void yon_kernel_row_setup_tags(kernel_row *row, char *tags); int yon_tag_add(GtkBox *target,char *tag_label, char *tag_style, char *icon_name); kernel_row *yon_kernel_row_new(); void yon_kernel_resize(main_window *widgets); void on_additional_software_toggled(GtkWidget *, char *path, main_window *widgets); void yon_kernel_addon_setup(main_window *widgets); void yon_kernel_addon_resize(main_window *widgets); void yon_startup_services_setup(main_window *widgets); void on_srartup_services_toggled(GtkWidget *, char *path, main_window *widgets); void on_startup_service_edit(GtkWidget *, main_window *widgets); void on_startup_service_add(GtkWidget *, main_window *widgets); startup_service_window *yon_startup_service_window_new(); void on_startup_edit_accept(GtkWidget *, main_window *widgets); void on_startup_add_accept(GtkWidget *, main_window *widgets); void yon_startup_services_setup(main_window *widgets); void on_startup_services_remove(GtkWidget *self,main_window *widgets); void on_startup_services_selection_changed(GtkWidget *,main_window *widgets); void on_pacman_software_all_toggled(GtkWidget *, char *path, main_window *widgets); void on_pacman_software_chosen_toggled(GtkWidget *, char *path, main_window *widgets); int yon_pacman_software_save(main_window *widgets); void on_pacman_icon_press(GtkEntry *self,GtkEntryIconPosition icon_pos,GdkEvent* event,main_window *widgets); gboolean yon_pacman_fill(struct pacman_struct *pacman); void *yon_pacman_load(struct pacman_struct *pacman); int yon_kernel_addon_save(main_window *widgets); void yon_password_change(GtkWidget *, bootloader_user_window *window); bootloader_user_window *yon_bootloader_user_window_new(); void on_bootloader_user_add(GtkWidget *, main_window *widgets); void on_bootloader_user_accept(GtkWidget *, bootloader_user_window *window); void yon_bootloader_interface_update(main_window *widgets); void on_type_changed(GtkComboBox *self,network_info *info); void yon_network_init(main_window *widgets); void yon_page_init(main_window *widgets, enum YON_PAGES page); void yon_bootloader_init(main_window *widgets); void on_kernel_install_enabled(GtkWidget *, kernel_row *row); void yon_user_init(main_window *widgets); void yon_region_init(main_window *widgets); void yon_keyboard_init(main_window *widgets); void yon_install_init(main_window *widgets, enum YON_PAGES page); void yon_install_advanced_init(main_window *widgets); void yon_os_components_init(main_window *widgets); void yon_pacman_init(main_window *widgets); void yon_software_init(main_window *widgets); void on_install_advanced_device_chosen(GtkCellRenderer*, gchar *path, main_window *widgets); void on_install_advanced_partition_chosen(GtkCellRenderer*, gchar *path, main_window *widgets); void yon_devices_setup(main_window *widgets); void on_advanced_password_clicked(GtkWidget *, advanced_partition *part); advanced_partition *yon_advanced_partition_new(); void on_advanced_part_remove(GtkWidget *self, main_window *widgets); int yon_advanced_get_part_size(main_window *widgets); void yon_advanced_partition_clear(main_window *widgets); void yon_layout_build(char *key, GHashTable *value, main_window *widgets); void yon_os_row_setup(os_row *row, char *name, char *version,char *tags, char *description); os_row *yon_os_row_new(); void yon_quick_install(GtkWidget *, main_window *widgets); void on_keyboard_layout_chosen(GtkCellRenderer *self, gchar *path, main_window *widgets); void configuration_mode_accept(GtkWidget *,configuration_window *window); void on_path_choose(GtkWidget *,configuration_window *window); void on_configuration_exit(GtkWidget *,configuration_window *window); int yon_config_save(main_window *widgets); void yon_config_restore(main_window *widgets); void on_source_clicked(GtkWidget *,main_window *widgets); source_window *yon_source_window_new(); void on_source_accept(GtkWidget *,source_window *window); void on_source_choose(GtkWidget *self); void on_source_remove(GtkWidget *,source_element *element); void on_source_add(GtkWidget *,source_window *window); void yon_source_update(source_window *window); void yon_source_element_add(char *key,void*,source_window *window); source_element *yon_source_element_new(); void on_system_setup_pass(GtkWidget *, main_window *widgets); void yon_resize_images_update(main_window *widgets); void on_vnc_toggled(GtkWidget *self, main_window *widgets); void yon_main_window_create(main_window *widgets); void set_locales_list(main_window *widgets); void on_installer_language_changed(GtkWidget *self,GtkTreePath*,GtkTreeViewColumn*, main_window *widgets); gboolean on_country_filter(GtkTreeModel *self, GtkTreeIter *iter, main_window *widgets); int yon_char_parsed_compare(const void *a, const void *b); gboolean yon_os_component_insert(struct row_data *row_input); void *yon_os_components_setup(main_window *widgets); gboolean yon_spinner_switch_off(GtkSpinner *target); void on_advanced_added(GtkWidget *, char *, main_window *); void on_advanced_new(GtkWidget *, main_window *); int yon_advanced_section_get(char *partition); void yon_advanced_partition_set_from_section(advanced_partition *part, advanced_section *section); void yon_advanced_update(main_window *widgets); void on_advanced_partition_create(GtkWidget *, main_window *widgets); void yon_advanced_parts_update(main_window *widgets); void on_advanced_partition_add(GtkWidget *, char *path, main_window *widgets); void yon_advanced_section_remove_all(); void on_advanced_section_toggled(GtkWidget *self, main_window *widgets); void yon_fs_type_setup(GtkComboBoxText *target); void yon_advanced_set_max_size_from_partition(advanced_partition *part, main_window *widgets); void on_advanced_size_changed(GtkWidget *self,main_window *widgets); int yon_advanced_save(main_window *widgets); void yon_advanced_part_parameter_changed(GtkWidget *self, advanced_partition *part); void yon_advanced_section_update(main_window *widgets); void yon_advanced_section_update_section(advanced_partition *part,GtkWidget *cur_toggle,main_window *widgets); int yon_advanced_section_get_by_part(advanced_partition *part); void yon_advanced_section_remove_by_name(char *part); void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets); int yon_advanced_section_append(advanced_section *section); gboolean on_format_changed(GtkWidget *self, gboolean state, advanced_partition *part); int yon_layouts_get(); void on_link(GtkWidget *self, char* uri, gpointer ); void on_source_changed(GtkComboBox *self); void yon_focus_set(GtkWidget *,GtkWidget *target); void on_main_window_close(GtkWidget*, main_window *); gboolean yon_maximize_start(main_window *widgets); void *yon_maximize(main_window *widgets); kernel_addon_row *yon_kernel_addon_row_new(); void yon_kernel_addon_row_setup(kernel_addon_row *row, char *name, char *modules,char *package, char *description); void on_kernel_addon_install_enabled(GtkWidget *, kernel_addon_row *row); void on_kernel_addon_info(GtkLabel *self); void yon_license_init(main_window *widgets); void on_locale_toggle(GtkCellRenderer *, gchar *path,language_window *window); void on_locale_accept(GtkWidget *self, language_window *window); gboolean yon_locale_window_set_locales(struct locales_struct *data); gboolean yon_locale_window_unlock(GtkWidget *spinner); void *yon_locales_load_func(language_window *window); language_window *yon_language_window_new(); void on_language_open(GtkWidget *, main_window *widgets); void on_language_remove(GtkWidget *, main_window *widgets); void on_language_default_toggled(GtkWidget *, int status, main_window *widgets); void on_locale_toggled(GtkCellRenderer *, gchar *path, main_window *widgets); void yon_language_update(main_window *widgets); int yon_language_save(main_window *widgets); void yon_language_init(main_window *widgets);