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.
ubinstall-gtk/source/ubinstall-gtk.h

1214 lines
48 KiB

#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include <locale.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <libintl.h>
#include <getopt.h>
#include <libintl.h>
#include <json-c/json.h>
#include <sys/statvfs.h>
#include <libublsettings.h>
#include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h>
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#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_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 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}<name>|^ {8,8}<description>'|sed -e 's/ *<name>//g' -e 's,</name>,,g' -e 's/ *<description>//g' -e 's,</description>,,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=ublinux"
#define disable_vnc_command "ubconfig --target system remove [desktop] X11VNC=ublinux"
#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 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_KEYBOARD,
YON_PAGE_USERS,
YON_PAGE_STARTUP,
YON_PAGE_BOOTLOADER,
YON_PAGE_NETWORK,
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 *AdditionalSoftwareList;
GtkListStore *PartitionsList;
GtkWidget *LoadGlobalConfigurationMenuItem;
GtkWidget *LoadLocalConfigurationMenuItem;
GtkWidget *LoadExternalConfigurationMenuItem;
GtkWidget *SaveGlobalLocalConfigurationMenuItem;
GtkWidget *SaveGlobalConfigurationMenuItem;
GtkWidget *SaveLocalConfigurationMenuItem;
GtkWidget *SaveExternalConfigurationMenuItem;
GtkWidget *MainWindow;
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 *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;
GtkCellRenderer *AdditionalSoftwareCell;
GtkWidget *AdditionalSoftwareTree;
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 *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 *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 *TagsBox;
GtkWidget *InstallCheck;
GtkWidget *EnableRadio;
GtkWidget *EnableSeparator;
GtkWidget *TagsSeparator;
GtkWidget *NameLabel;
GtkWidget *DescriptionLabel;
GtkWidget *ModulesLabel;
char *name;
char *modules;
char *package;
} kernel_row;
typedef struct {
GtkWidget *row;
GtkWidget *RowBox;
GtkWidget *TagsBox;
GtkWidget *InstallCheck;
GtkWidget *NameLabel;
GtkWidget *VersionLabel;
GtkWidget *DescriptionLabel;
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;
};
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);