mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
[internal] UI redesign, part 8
* This is the kind of stuff AI should be doing, not humans!
This commit is contained in:
parent
cba37575f1
commit
65b19bb463
10 changed files with 194 additions and 248 deletions
|
@ -280,11 +280,11 @@ t MSG_084 "This ISO image seems to use an obsolete version of '%s'.\n"
|
||||||
"Note: The new file will be downloaded in the current directory and once a "
|
"Note: The new file will be downloaded in the current directory and once a "
|
||||||
"'%s' exists there, it will be reused automatically."
|
"'%s' exists there, it will be reused automatically."
|
||||||
t MSG_085 "Downloading '%s'"
|
t MSG_085 "Downloading '%s'"
|
||||||
t MSG_086 "No image selected"
|
#t MSG_086 "No image selected"
|
||||||
# The content between the quotes below (\"Create a bootable disk\") should match
|
# The content between the quotes below (\"Create a bootable disk\") should match
|
||||||
# the beginning of the IDC_BOOT text
|
# the beginning of the IDC_BOOT text
|
||||||
t MSG_087 "Please click on the disc button to select a bootable image, "
|
#t MSG_087 "Please click on the disc button to select a bootable image, "
|
||||||
"or uncheck the \"Create a bootable disk using\" checkbox."
|
# "or uncheck the \"Create a bootable disk using\" checkbox."
|
||||||
t MSG_088 "Image is too big"
|
t MSG_088 "Image is too big"
|
||||||
t MSG_089 "The image is too big for the selected target."
|
t MSG_089 "The image is too big for the selected target."
|
||||||
t MSG_090 "Unsupported ISO"
|
t MSG_090 "Unsupported ISO"
|
||||||
|
@ -359,13 +359,10 @@ t MSG_116 "This image uses Grub %s but the application only includes the install
|
||||||
"Note: The file will be downloaded in the current application directory and will be reused "
|
"Note: The file will be downloaded in the current application directory and will be reused "
|
||||||
"automatically if present. If no match can be found online, then the default version will be used."
|
"automatically if present. If no match can be found online, then the default version will be used."
|
||||||
# Tooltips
|
# Tooltips
|
||||||
# Partition Scheme and Target Type
|
t MSG_150 "Method that will be used to create partitions."
|
||||||
t MSG_150 "Usually the safest choice. However, if you have an UEFI computer and want to install "
|
t MSG_151 "Type of computer you plan to use this bootable drive with. It is up to YOU to find whether your target is of BIOS or UEFI type.\n"
|
||||||
"an Operating System in native EFI mode, you should select one of the other options"
|
"Be mindful that CSM, which can be enabled or disabled on UEFI computers, means 'BIOS emulation', and is not really UEFI."
|
||||||
t MSG_151 "Use this if you want to install an Operating System in native EFI mode, but will need "
|
t MSG_152 "Note: 'UEFI-CSM' means BIOS emulation under UEFI, and is not the same as genuine UEFI."
|
||||||
"to access the USB content from Windows XP"
|
|
||||||
t MSG_152 "The preferred option to install an Operating System in native EFI mode, when USB access "
|
|
||||||
"is not required from Windows XP"
|
|
||||||
t MSG_153 "Test pattern: 0x%02X"
|
t MSG_153 "Test pattern: 0x%02X"
|
||||||
t MSG_154 "Test pattern: 0x%02X, 0x%02X"
|
t MSG_154 "Test pattern: 0x%02X, 0x%02X"
|
||||||
t MSG_155 "Test pattern: 0x%02X, 0x%02X, 0x%02X"
|
t MSG_155 "Test pattern: 0x%02X, 0x%02X, 0x%02X"
|
||||||
|
|
|
@ -835,8 +835,6 @@ INT_PTR CALLBACK ChecksumCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM
|
||||||
case IDCANCEL:
|
case IDCANCEL:
|
||||||
reset_localization(IDD_CHECKSUM);
|
reset_localization(IDD_CHECKSUM);
|
||||||
EndDialog(hDlg, LOWORD(wParam));
|
EndDialog(hDlg, LOWORD(wParam));
|
||||||
// Reset focus to our toolbar
|
|
||||||
PostMessage(hMainDialog, WM_NEXTDLGCTL, (WPARAM)hStatusToolbar, TRUE);
|
|
||||||
return (INT_PTR)TRUE;
|
return (INT_PTR)TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,7 @@ static int task_number = 0;
|
||||||
extern const int nb_steps[FS_MAX];
|
extern const int nb_steps[FS_MAX];
|
||||||
extern uint32_t dur_mins, dur_secs;
|
extern uint32_t dur_mins, dur_secs;
|
||||||
static int fs_index = 0, wintogo_index = -1;
|
static int fs_index = 0, wintogo_index = -1;
|
||||||
extern BOOL force_large_fat32, enable_ntfs_compression, lock_drive, zero_drive, disable_file_indexing;
|
extern BOOL force_large_fat32, enable_ntfs_compression, lock_drive, zero_drive, disable_file_indexing, write_as_image;
|
||||||
uint8_t *grub2_buf = NULL;
|
uint8_t *grub2_buf = NULL;
|
||||||
long grub2_len;
|
long grub2_len;
|
||||||
static BOOL WritePBR(HANDLE hLogicalDrive);
|
static BOOL WritePBR(HANDLE hLogicalDrive);
|
||||||
|
@ -1654,8 +1654,6 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
char efi_dst[] = "?:\\efi\\boot\\bootx64.efi";
|
char efi_dst[] = "?:\\efi\\boot\\bootx64.efi";
|
||||||
char kolibri_dst[] = "?:\\MTLD_F32";
|
char kolibri_dst[] = "?:\\MTLD_F32";
|
||||||
char grub4dos_dst[] = "?:\\grldr";
|
char grub4dos_dst[] = "?:\\grldr";
|
||||||
// TODO: Have a boolean to indicate DD writing
|
|
||||||
BOOL write_as_image = FALSE;
|
|
||||||
|
|
||||||
use_large_fat32 = (fs == FS_FAT32) && ((SelectedDrive.DiskSize > LARGE_FAT32_SIZE) || (force_large_fat32));
|
use_large_fat32 = (fs == FS_FAT32) && ((SelectedDrive.DiskSize > LARGE_FAT32_SIZE) || (force_large_fat32));
|
||||||
windows_to_go = (togo_mode) && HAS_WINTOGO(img_report) && (Button_GetCheck(GetDlgItem(hMainDialog, IDC_WINDOWS_TO_GO)) == BST_CHECKED);
|
windows_to_go = (togo_mode) && HAS_WINTOGO(img_report) && (Button_GetCheck(GetDlgItem(hMainDialog, IDC_WINDOWS_TO_GO)) == BST_CHECKED);
|
||||||
|
|
|
@ -390,7 +390,7 @@ char* lmprintf(uint32_t msg_id, ...)
|
||||||
buf[buf_id][0] = 0;
|
buf[buf_id][0] = 0;
|
||||||
|
|
||||||
msg_id &= MSG_MASK;
|
msg_id &= MSG_MASK;
|
||||||
if ((msg_id > MSG_000) && (msg_id < MSG_MAX)) {
|
if ((msg_id >= MSG_000) && (msg_id < MSG_MAX)) {
|
||||||
format = msg_table[msg_id - MSG_000];
|
format = msg_table[msg_id - MSG_000];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -518,7 +518,7 @@ void PrintStatusInfo(BOOL info, BOOL debug, unsigned int duration, int msg_id, .
|
||||||
if (!info)
|
if (!info)
|
||||||
szStatusMessage = szMessage[MSG_STATUS][(duration > 0)?MSG_LOW_PRI:MSG_HIGH_PRI];
|
szStatusMessage = szMessage[MSG_STATUS][(duration > 0)?MSG_LOW_PRI:MSG_HIGH_PRI];
|
||||||
|
|
||||||
if ((msg_id > MSG_000) && (msg_id < MSG_MAX))
|
if ((msg_id >= MSG_000) && (msg_id < MSG_MAX))
|
||||||
format = msg_table[msg_id - MSG_000];
|
format = msg_table[msg_id - MSG_000];
|
||||||
if (format == NULL) {
|
if (format == NULL) {
|
||||||
safe_sprintf(msg_hi, MSG_LEN, "MSG_%03d UNTRANSLATED", msg_id - MSG_000);
|
safe_sprintf(msg_hi, MSG_LEN, "MSG_%03d UNTRANSLATED", msg_id - MSG_000);
|
||||||
|
|
|
@ -54,8 +54,6 @@ const loc_control_id control_id[] = {
|
||||||
LOC_CTRL(IDC_EXTENDED_LABEL),
|
LOC_CTRL(IDC_EXTENDED_LABEL),
|
||||||
LOC_CTRL(IDC_RUFUS_MBR),
|
LOC_CTRL(IDC_RUFUS_MBR),
|
||||||
LOC_CTRL(IDC_TARGET_SYSTEM),
|
LOC_CTRL(IDC_TARGET_SYSTEM),
|
||||||
LOC_CTRL(IDC_INFO),
|
|
||||||
LOC_CTRL(IDC_LANG),
|
|
||||||
LOC_CTRL(IDC_DISK_ID),
|
LOC_CTRL(IDC_DISK_ID),
|
||||||
LOC_CTRL(IDC_OLD_BIOS_FIXES),
|
LOC_CTRL(IDC_OLD_BIOS_FIXES),
|
||||||
LOC_CTRL(IDC_LIST_USB_HDD),
|
LOC_CTRL(IDC_LIST_USB_HDD),
|
||||||
|
@ -73,12 +71,14 @@ const loc_control_id control_id[] = {
|
||||||
LOC_CTRL(IDC_NOTIFICATION_LINE),
|
LOC_CTRL(IDC_NOTIFICATION_LINE),
|
||||||
LOC_CTRL(IDC_ADVANCED_DEVICE_TOOLBAR),
|
LOC_CTRL(IDC_ADVANCED_DEVICE_TOOLBAR),
|
||||||
LOC_CTRL(IDC_ADVANCED_FORMAT_TOOLBAR),
|
LOC_CTRL(IDC_ADVANCED_FORMAT_TOOLBAR),
|
||||||
LOC_CTRL(IDC_ABOUT),
|
|
||||||
LOC_CTRL(IDC_LOG),
|
|
||||||
LOC_CTRL(IDC_WINDOWS_INSTALL),
|
LOC_CTRL(IDC_WINDOWS_INSTALL),
|
||||||
LOC_CTRL(IDC_WINDOWS_TO_GO),
|
LOC_CTRL(IDC_WINDOWS_TO_GO),
|
||||||
|
LOC_CTRL(IDC_CHECKSUM_TOOLBAR),
|
||||||
LOC_CTRL(IDC_MULTI_TOOLBAR),
|
LOC_CTRL(IDC_MULTI_TOOLBAR),
|
||||||
|
LOC_CTRL(IDC_LANG),
|
||||||
|
LOC_CTRL(IDC_ABOUT),
|
||||||
LOC_CTRL(IDC_SETTINGS),
|
LOC_CTRL(IDC_SETTINGS),
|
||||||
|
LOC_CTRL(IDC_LOG),
|
||||||
LOC_CTRL(IDC_LOG_EDIT),
|
LOC_CTRL(IDC_LOG_EDIT),
|
||||||
LOC_CTRL(IDC_LOG_SAVE),
|
LOC_CTRL(IDC_LOG_SAVE),
|
||||||
LOC_CTRL(IDC_LOG_CLEAR),
|
LOC_CTRL(IDC_LOG_CLEAR),
|
||||||
|
@ -141,6 +141,7 @@ const loc_control_id control_id[] = {
|
||||||
LOC_CTRL(IDS_FILESYSTEM_TXT),
|
LOC_CTRL(IDS_FILESYSTEM_TXT),
|
||||||
LOC_CTRL(IDS_CLUSTERSIZE_TXT),
|
LOC_CTRL(IDS_CLUSTERSIZE_TXT),
|
||||||
LOC_CTRL(IDS_LABEL_TXT),
|
LOC_CTRL(IDS_LABEL_TXT),
|
||||||
|
LOC_CTRL(IDS_CSM_HELP_TXT),
|
||||||
LOC_CTRL(IDS_UPDATE_SETTINGS_GRP),
|
LOC_CTRL(IDS_UPDATE_SETTINGS_GRP),
|
||||||
LOC_CTRL(IDS_UPDATE_FREQUENCY_TXT),
|
LOC_CTRL(IDS_UPDATE_FREQUENCY_TXT),
|
||||||
LOC_CTRL(IDS_INCLUDE_BETAS_TXT),
|
LOC_CTRL(IDS_INCLUDE_BETAS_TXT),
|
||||||
|
|
|
@ -90,7 +90,6 @@
|
||||||
#define IDC_EXTENDED_LABEL 1015
|
#define IDC_EXTENDED_LABEL 1015
|
||||||
#define IDC_RUFUS_MBR 1016
|
#define IDC_RUFUS_MBR 1016
|
||||||
#define IDC_TARGET_SYSTEM 1017
|
#define IDC_TARGET_SYSTEM 1017
|
||||||
#define IDC_INFO 1018
|
|
||||||
#define IDC_DISK_ID 1020
|
#define IDC_DISK_ID 1020
|
||||||
#define IDC_OLD_BIOS_FIXES 1021
|
#define IDC_OLD_BIOS_FIXES 1021
|
||||||
#define IDC_LIST_USB_HDD 1022
|
#define IDC_LIST_USB_HDD 1022
|
||||||
|
@ -178,6 +177,7 @@
|
||||||
#define IDS_FILESYSTEM_TXT 2002
|
#define IDS_FILESYSTEM_TXT 2002
|
||||||
#define IDS_CLUSTERSIZE_TXT 2003
|
#define IDS_CLUSTERSIZE_TXT 2003
|
||||||
#define IDS_LABEL_TXT 2004
|
#define IDS_LABEL_TXT 2004
|
||||||
|
#define IDS_CSM_HELP_TXT 2005
|
||||||
#define IDS_UPDATE_SETTINGS_GRP 2006
|
#define IDS_UPDATE_SETTINGS_GRP 2006
|
||||||
#define IDS_UPDATE_FREQUENCY_TXT 2007
|
#define IDS_UPDATE_FREQUENCY_TXT 2007
|
||||||
#define IDS_INCLUDE_BETAS_TXT 2008
|
#define IDS_INCLUDE_BETAS_TXT 2008
|
||||||
|
|
370
src/rufus.c
370
src/rufus.c
|
@ -53,6 +53,7 @@ static int image_option_move_ids[] = {
|
||||||
IDC_PARTITION_TYPE,
|
IDC_PARTITION_TYPE,
|
||||||
IDS_TARGET_SYSTEM_TXT,
|
IDS_TARGET_SYSTEM_TXT,
|
||||||
IDC_TARGET_SYSTEM,
|
IDC_TARGET_SYSTEM,
|
||||||
|
IDS_CSM_HELP_TXT,
|
||||||
IDC_ADVANCED_DEVICE_TOOLBAR,
|
IDC_ADVANCED_DEVICE_TOOLBAR,
|
||||||
IDC_LIST_USB_HDD,
|
IDC_LIST_USB_HDD,
|
||||||
IDC_OLD_BIOS_FIXES,
|
IDC_OLD_BIOS_FIXES,
|
||||||
|
@ -72,7 +73,6 @@ static int image_option_move_ids[] = {
|
||||||
IDC_EXTENDED_LABEL,
|
IDC_EXTENDED_LABEL,
|
||||||
IDS_STATUS_TXT,
|
IDS_STATUS_TXT,
|
||||||
IDC_PROGRESS,
|
IDC_PROGRESS,
|
||||||
IDC_INFO,
|
|
||||||
IDC_ABOUT,
|
IDC_ABOUT,
|
||||||
IDC_LOG,
|
IDC_LOG,
|
||||||
IDC_MULTI_TOOLBAR,
|
IDC_MULTI_TOOLBAR,
|
||||||
|
@ -106,7 +106,6 @@ static int advanced_device_move_ids[] = {
|
||||||
IDC_EXTENDED_LABEL,
|
IDC_EXTENDED_LABEL,
|
||||||
IDS_STATUS_TXT,
|
IDS_STATUS_TXT,
|
||||||
IDC_PROGRESS,
|
IDC_PROGRESS,
|
||||||
IDC_INFO,
|
|
||||||
IDC_ABOUT,
|
IDC_ABOUT,
|
||||||
IDC_LOG,
|
IDC_LOG,
|
||||||
IDC_MULTI_TOOLBAR,
|
IDC_MULTI_TOOLBAR,
|
||||||
|
@ -128,7 +127,6 @@ static int advanced_device_toggle_ids[] = {
|
||||||
static int advanced_format_move_ids[] = {
|
static int advanced_format_move_ids[] = {
|
||||||
IDS_STATUS_TXT,
|
IDS_STATUS_TXT,
|
||||||
IDC_PROGRESS,
|
IDC_PROGRESS,
|
||||||
IDC_INFO,
|
|
||||||
IDC_ABOUT,
|
IDC_ABOUT,
|
||||||
IDC_LOG,
|
IDC_LOG,
|
||||||
IDC_MULTI_TOOLBAR,
|
IDC_MULTI_TOOLBAR,
|
||||||
|
@ -146,6 +144,18 @@ static int advanced_format_toggle_ids[] = {
|
||||||
IDC_EXTENDED_LABEL,
|
IDC_EXTENDED_LABEL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int dd_image_toggle_ids[] = {
|
||||||
|
IDC_QUICKFORMAT,
|
||||||
|
IDC_PARTITION_TYPE,
|
||||||
|
IDC_TARGET_SYSTEM,
|
||||||
|
IDC_IMAGE_OPTION,
|
||||||
|
IDC_FILESYSTEM,
|
||||||
|
IDC_CLUSTERSIZE,
|
||||||
|
IDC_LABEL,
|
||||||
|
IDC_QUICKFORMAT,
|
||||||
|
IDC_EXTENDED_LABEL,
|
||||||
|
};
|
||||||
|
|
||||||
static const char* cmdline_hogger = "rufus.com";
|
static const char* cmdline_hogger = "rufus.com";
|
||||||
static const char* FileSystemLabel[FS_MAX] = { "FAT", "FAT32", "NTFS", "UDF", "exFAT", "ReFS" };
|
static const char* FileSystemLabel[FS_MAX] = { "FAT", "FAT32", "NTFS", "UDF", "exFAT", "ReFS" };
|
||||||
static const char* ep_reg = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer";
|
static const char* ep_reg = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer";
|
||||||
|
@ -171,7 +181,6 @@ static UINT_PTR UM_LANGUAGE_MENU_MAX = UM_LANGUAGE_MENU;
|
||||||
static RECT relaunch_rc = { -65536, -65536, 0, 0};
|
static RECT relaunch_rc = { -65536, -65536, 0, 0};
|
||||||
static UINT uQFChecked = BST_CHECKED, uMBRChecked = BST_UNCHECKED;
|
static UINT uQFChecked = BST_CHECKED, uMBRChecked = BST_UNCHECKED;
|
||||||
static HFONT hInfoFont, hLinkFont;
|
static HFONT hInfoFont, hLinkFont;
|
||||||
static HBRUSH hInfoBrush;
|
|
||||||
static WNDPROC progress_original_proc = NULL;
|
static WNDPROC progress_original_proc = NULL;
|
||||||
static HANDLE format_thid = NULL, dialog_handle = NULL;
|
static HANDLE format_thid = NULL, dialog_handle = NULL;
|
||||||
static HWND hSelectImage = NULL, hStart = NULL;
|
static HWND hSelectImage = NULL, hStart = NULL;
|
||||||
|
@ -205,12 +214,12 @@ loc_cmd* selected_locale = NULL;
|
||||||
WORD selected_langid = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT);
|
WORD selected_langid = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT);
|
||||||
DWORD MainThreadId;
|
DWORD MainThreadId;
|
||||||
HWND hDeviceList, hPartitionScheme, hTargetSystem, hFileSystem, hClusterSize, hLabel, hBootType, hNBPasses, hLog = NULL;
|
HWND hDeviceList, hPartitionScheme, hTargetSystem, hFileSystem, hClusterSize, hLabel, hBootType, hNBPasses, hLog = NULL;
|
||||||
HWND hLogDlg = NULL, hProgress = NULL, hDiskID, hStatusToolbar;
|
HWND hLogDlg = NULL, hProgress = NULL, hDiskID;
|
||||||
BOOL use_own_c32[NB_OLD_C32] = {FALSE, FALSE}, mbr_selected_by_user = FALSE, togo_mode = FALSE;
|
BOOL use_own_c32[NB_OLD_C32] = {FALSE, FALSE}, mbr_selected_by_user = FALSE, togo_mode = FALSE;
|
||||||
BOOL iso_op_in_progress = FALSE, format_op_in_progress = FALSE, right_to_left_mode = FALSE, progress_in_use = FALSE;
|
BOOL iso_op_in_progress = FALSE, format_op_in_progress = FALSE, right_to_left_mode = FALSE, progress_in_use = FALSE, has_uefi_csm;
|
||||||
BOOL enable_HDDs = FALSE, force_update = FALSE, enable_ntfs_compression = FALSE, no_confirmation_on_cancel = FALSE, lock_drive = TRUE;
|
BOOL enable_HDDs = FALSE, force_update = FALSE, enable_ntfs_compression = FALSE, no_confirmation_on_cancel = FALSE, lock_drive = TRUE;
|
||||||
BOOL advanced_mode_device, advanced_mode_format, allow_dual_uefi_bios, detect_fakes, enable_vmdk, force_large_fat32, usb_debug, use_fake_units, preserve_timestamps;
|
BOOL advanced_mode_device, advanced_mode_format, allow_dual_uefi_bios, detect_fakes, enable_vmdk, force_large_fat32, usb_debug, use_fake_units, preserve_timestamps;
|
||||||
BOOL zero_drive = FALSE, list_non_usb_removable_drives = FALSE, disable_file_indexing, large_drive = FALSE;
|
BOOL zero_drive = FALSE, list_non_usb_removable_drives = FALSE, disable_file_indexing, large_drive = FALSE, write_as_image = FALSE;
|
||||||
int dialog_showing = 0;
|
int dialog_showing = 0;
|
||||||
uint16_t rufus_version[3], embedded_sl_version[2];
|
uint16_t rufus_version[3], embedded_sl_version[2];
|
||||||
char embedded_sl_version_str[2][12] = { "?.??", "?.??" };
|
char embedded_sl_version_str[2][12] = { "?.??", "?.??" };
|
||||||
|
@ -343,7 +352,9 @@ static void SetBootOptions(void)
|
||||||
|
|
||||||
static void SetPartitionSchemeAndTargetSystem(BOOL only_target)
|
static void SetPartitionSchemeAndTargetSystem(BOOL only_target)
|
||||||
{
|
{
|
||||||
|
// MBR, GPT, SFD
|
||||||
BOOL allowed_partition_scheme[3] = { TRUE, TRUE, FALSE };
|
BOOL allowed_partition_scheme[3] = { TRUE, TRUE, FALSE };
|
||||||
|
// BIOS, UEFI, DUAL
|
||||||
BOOL allowed_target_system[3] = { TRUE, TRUE, FALSE };
|
BOOL allowed_target_system[3] = { TRUE, TRUE, FALSE };
|
||||||
BOOL dual_boot = FALSE;
|
BOOL dual_boot = FALSE;
|
||||||
// TODO: Windows To Go selected
|
// TODO: Windows To Go selected
|
||||||
|
@ -354,6 +365,9 @@ static void SetPartitionSchemeAndTargetSystem(BOOL only_target)
|
||||||
IGNORE_RETVAL(ComboBox_ResetContent(hTargetSystem));
|
IGNORE_RETVAL(ComboBox_ResetContent(hTargetSystem));
|
||||||
|
|
||||||
bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
|
bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
|
||||||
|
// If no device is selected, don't populate anything
|
||||||
|
if (ComboBox_GetCurSel(hDeviceList) < 0)
|
||||||
|
return;
|
||||||
switch (bt) {
|
switch (bt) {
|
||||||
case BT_NON_BOOTABLE:
|
case BT_NON_BOOTABLE:
|
||||||
allowed_partition_scheme[PARTITION_STYLE_SFD] = TRUE;
|
allowed_partition_scheme[PARTITION_STYLE_SFD] = TRUE;
|
||||||
|
@ -410,17 +424,21 @@ static void SetPartitionSchemeAndTargetSystem(BOOL only_target)
|
||||||
pt = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme));
|
pt = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (allowed_target_system[0] && (pt != PARTITION_STYLE_GPT))
|
has_uefi_csm = FALSE;
|
||||||
|
if (allowed_target_system[0] && (pt != PARTITION_STYLE_GPT)) {
|
||||||
IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem,
|
IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem,
|
||||||
ComboBox_AddStringU(hTargetSystem, lmprintf(MSG_031)), TT_BIOS));
|
ComboBox_AddStringU(hTargetSystem, lmprintf(MSG_031)), TT_BIOS));
|
||||||
|
has_uefi_csm = TRUE;
|
||||||
|
}
|
||||||
if (allowed_target_system[1] && !((pt == PARTITION_STYLE_MBR) && IS_BIOS_BOOTABLE(img_report) && IS_EFI_BOOTABLE(img_report)) )
|
if (allowed_target_system[1] && !((pt == PARTITION_STYLE_MBR) && IS_BIOS_BOOTABLE(img_report) && IS_EFI_BOOTABLE(img_report)) )
|
||||||
IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem,
|
IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem,
|
||||||
ComboBox_AddStringU(hTargetSystem, lmprintf(MSG_032)), TT_UEFI));
|
ComboBox_AddStringU(hTargetSystem, lmprintf(MSG_032)), TT_UEFI));
|
||||||
if (allowed_target_system[2] && (pt != PARTITION_STYLE_GPT))
|
if (allowed_target_system[2] && ((pt != PARTITION_STYLE_GPT) || (bt == BT_NON_BOOTABLE)))
|
||||||
IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem,
|
IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem,
|
||||||
ComboBox_AddStringU(hTargetSystem, lmprintf(MSG_033)), TT_BIOS));
|
ComboBox_AddStringU(hTargetSystem, lmprintf(MSG_033)), TT_BIOS));
|
||||||
IGNORE_RETVAL(ComboBox_SetCurSel(hTargetSystem, 0));
|
IGNORE_RETVAL(ComboBox_SetCurSel(hTargetSystem, 0));
|
||||||
tt = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem));
|
tt = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem));
|
||||||
|
ShowWindow(GetDlgItem(hMainDialog, IDS_CSM_HELP_TXT), has_uefi_csm ? SW_SHOW : SW_HIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Populate the Allocation unit size field
|
// Populate the Allocation unit size field
|
||||||
|
@ -612,7 +630,6 @@ static BOOL SetFileSystemAndClusterSize(char* fs_type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: get fs_type from
|
|
||||||
// re-select existing FS if it's one we know
|
// re-select existing FS if it's one we know
|
||||||
SelectedDrive.FSType = FS_UNKNOWN;
|
SelectedDrive.FSType = FS_UNKNOWN;
|
||||||
if (safe_strlen(fs_type) != 0) {
|
if (safe_strlen(fs_type) != 0) {
|
||||||
|
@ -637,51 +654,9 @@ static BOOL SetFileSystemAndClusterSize(char* fs_type)
|
||||||
SetComboEntry(hFileSystem, default_fs);
|
SetComboEntry(hFileSystem, default_fs);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
|
||||||
// At least one filesystem is go => enable formatting
|
|
||||||
// EnableWindow(hStart, TRUE);
|
|
||||||
|
|
||||||
return SetClusterSizes((int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem)));
|
return SetClusterSizes((int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// This call sets the options for "Partition Scheme" and "Target System"
|
|
||||||
// according to whether we will be running in UEFI/CSM mode or standard UEFI
|
|
||||||
// Return value is -1 if the image is pure EFI (non BIOS bootable), 0 otherwise.
|
|
||||||
//static int SetMBRForUEFI(void)
|
|
||||||
//{
|
|
||||||
// static BOOL pure_efi = FALSE;
|
|
||||||
// BOOL useCSM = FALSE;
|
|
||||||
//
|
|
||||||
// if (ComboBox_GetCurSel(hDeviceList) < 0)
|
|
||||||
// return 0;
|
|
||||||
//
|
|
||||||
// if (image_path != NULL) {
|
|
||||||
// if ( !IS_EFI_BOOTABLE(img_report) || (HAS_BOOTMGR(img_report) && (!allow_dual_uefi_bios) &&
|
|
||||||
// (Button_GetCheck(GetDlgItem(hMainDialog, IDC_WINDOWS_TO_GO)) != BST_CHECKED)) )
|
|
||||||
// useCSM = TRUE;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if ((image_path != NULL) && IS_EFI_BOOTABLE(img_report) && !IS_BIOS_BOOTABLE(img_report)) {
|
|
||||||
// pure_efi = TRUE;
|
|
||||||
// // Pure EFI -> no need to add the BIOS option
|
|
||||||
// return -1;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// pure_efi = FALSE;
|
|
||||||
// IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem, ComboBox_InsertStringU(hTargetSystem, 0,
|
|
||||||
// "BIOS (or UEFI-CSM)"), TT_BIOS));
|
|
||||||
// IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem, ComboBox_InsertStringU(hTargetSystem, 1,
|
|
||||||
// "UEFI (non CSM)"), TT_UEFI));
|
|
||||||
// IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem, ComboBox_InsertStringU(hTargetSystem, 2,
|
|
||||||
// "BIOS or UEFI"), TT_UEFI));
|
|
||||||
// // IGNORE_RETVAL(ComboBox_SetItemData(hTargetSystem, ComboBox_InsertStringU(hTargetSystem, 0,
|
|
||||||
//// useCSM?"BIOS or UEFI-CSM":"BIOS (or CSM emulation"), TT_BIOS));
|
|
||||||
// if (replace)
|
|
||||||
// IGNORE_RETVAL(ComboBox_SetCurSel(hTargetSystem, max(ComboBox_GetCurSel(hTargetSystem), 0)));
|
|
||||||
// return 0;
|
|
||||||
//}
|
|
||||||
|
|
||||||
static void SetFSFromISO(void)
|
static void SetFSFromISO(void)
|
||||||
{
|
{
|
||||||
int i, fs_tmp, selected_fs = FS_UNKNOWN;
|
int i, fs_tmp, selected_fs = FS_UNKNOWN;
|
||||||
|
@ -752,16 +727,28 @@ static void SetToGo(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void EnableAdvancedBootOptions(BOOL enable, BOOL remove_checkboxes)
|
// This handles the enabling/disabling of the "Add fixes for old BIOSes" and "Use Rufus MBR" controls
|
||||||
|
static void EnableMBRBootOptions(BOOL enable, BOOL remove_checkboxes)
|
||||||
{
|
{
|
||||||
BOOL actual_enable_mbr = ((tt==TT_UEFI)||(selection_default>=BT_IMAGE)||(bt == BT_NON_BOOTABLE))?FALSE:enable;
|
BOOL actual_enable_mbr = (bt > BT_IMAGE) ? FALSE: enable;
|
||||||
BOOL actual_enable_fix = ((tt==TT_UEFI)||(selection_default==BT_IMAGE)||(bt == BT_NON_BOOTABLE))?FALSE:enable;
|
BOOL actual_enable_fix = enable;
|
||||||
static UINT uXPartChecked = BST_UNCHECKED;
|
static UINT uXPartChecked = BST_UNCHECKED;
|
||||||
|
|
||||||
if ((selection_default == BT_IMAGE) && IS_BIOS_BOOTABLE(img_report) && !HAS_WINPE(img_report) && !HAS_BOOTMGR(img_report)) {
|
if ((pt != PARTITION_STYLE_MBR) || (tt != TT_BIOS) || ((bt == BT_IMAGE) && !IS_BIOS_BOOTABLE(img_report))) {
|
||||||
|
// These options cannot apply if we aren't using MBR+BIOS, or are using an image that isn't BIOS bootable
|
||||||
|
actual_enable_mbr = FALSE;
|
||||||
|
actual_enable_fix = FALSE;
|
||||||
|
} else {
|
||||||
|
// If we are using an image, the Rufus MBR only applies if it's for Windows
|
||||||
|
if ((bt == BT_IMAGE) && !HAS_WINPE(img_report) && !HAS_BOOTMGR(img_report)) {
|
||||||
actual_enable_mbr = FALSE;
|
actual_enable_mbr = FALSE;
|
||||||
mbr_selected_by_user = FALSE;
|
mbr_selected_by_user = FALSE;
|
||||||
}
|
}
|
||||||
|
if (bt == BT_NON_BOOTABLE) {
|
||||||
|
actual_enable_fix = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (remove_checkboxes) {
|
if (remove_checkboxes) {
|
||||||
// Store/Restore the checkbox states
|
// Store/Restore the checkbox states
|
||||||
if (IsWindowEnabled(GetDlgItem(hMainDialog, IDC_RUFUS_MBR)) && !actual_enable_mbr) {
|
if (IsWindowEnabled(GetDlgItem(hMainDialog, IDC_RUFUS_MBR)) && !actual_enable_mbr) {
|
||||||
|
@ -782,48 +769,28 @@ static void EnableAdvancedBootOptions(BOOL enable, BOOL remove_checkboxes)
|
||||||
|
|
||||||
static void EnableBootOptions(BOOL enable, BOOL remove_checkboxes)
|
static void EnableBootOptions(BOOL enable, BOOL remove_checkboxes)
|
||||||
{
|
{
|
||||||
BOOL actual_enable = ((!IS_FAT(fs)) && (fs != FS_NTFS) && (selection_default == BT_IMAGE) && (img_report.is_bootable_img))?FALSE:enable;
|
BOOL actual_enable_bb, actual_enable = enable;
|
||||||
|
|
||||||
EnableWindow(hBootType, actual_enable);
|
// If no device is selected, don't enable anything
|
||||||
EnableWindow(hSelectImage, actual_enable);
|
if (ComboBox_GetCurSel(hDeviceList) < 0)
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_WINDOWS_INSTALL), actual_enable);
|
actual_enable = FALSE;
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_WINDOWS_TO_GO), actual_enable);
|
// If boot selection is set to image, but no image is currently selected, don't enable anything
|
||||||
EnableAdvancedBootOptions(actual_enable, remove_checkboxes);
|
if ((bt == BT_IMAGE) && (image_path == NULL))
|
||||||
}
|
actual_enable = FALSE;
|
||||||
|
actual_enable_bb = actual_enable;
|
||||||
|
// If we are dealing with a pure DD image, remove all options except Bad Blocks check
|
||||||
|
if ((bt == BT_IMAGE) && (img_report.is_bootable_img) && (!img_report.is_iso))
|
||||||
|
actual_enable = FALSE;
|
||||||
|
|
||||||
// TODO: Set target type tooltips
|
EnableWindow(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION), actual_enable);
|
||||||
static void SetPartitionSchemeTooltip(void)
|
EnableMBRBootOptions(actual_enable, remove_checkboxes);
|
||||||
{
|
|
||||||
if (tt == TT_BIOS) {
|
|
||||||
if (pt != PARTITION_STYLE_SFD)
|
|
||||||
CreateTooltip(hPartitionScheme, lmprintf(MSG_150), 15000);
|
|
||||||
else
|
|
||||||
DestroyTooltip(hPartitionScheme);
|
|
||||||
} else {
|
|
||||||
if (pt == PARTITION_STYLE_MBR)
|
|
||||||
CreateTooltip(hPartitionScheme, lmprintf(MSG_151), 15000);
|
|
||||||
else if (pt == PARTITION_STYLE_GPT)
|
|
||||||
CreateTooltip(hPartitionScheme, lmprintf(MSG_152), 15000);
|
|
||||||
else
|
|
||||||
DestroyTooltip(hPartitionScheme);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//static void SetTargetSystem(void)
|
EnableWindow(GetDlgItem(hMainDialog, IDC_LABEL), actual_enable);
|
||||||
//{
|
EnableWindow(GetDlgItem(hMainDialog, IDC_QUICKFORMAT), actual_enable);
|
||||||
// int ts = SetMBRForUEFI(TRUE); // Will be set to -1 for pure UEFI, 0 otherwise
|
EnableWindow(GetDlgItem(hMainDialog, IDC_BADBLOCKS), actual_enable_bb);
|
||||||
// if ((prefer_gpt && IS_EFI_BOOTABLE(img_report)) || SelectedDrive.PartitionType == PARTITION_STYLE_GPT) {
|
EnableWindow(GetDlgItem(hMainDialog, IDC_NBPASSES), actual_enable_bb);
|
||||||
// ts += 2; // GPT/UEFI
|
EnableWindow(GetDlgItem(hMainDialog, IDC_EXTENDED_LABEL), actual_enable);
|
||||||
// } else if (SelectedDrive.has_protective_mbr || SelectedDrive.has_mbr_uefi_marker ||
|
}
|
||||||
// (IS_EFI_BOOTABLE(img_report) && !IS_BIOS_BOOTABLE(img_report)) ) {
|
|
||||||
// ts += 1; // MBR/UEFI
|
|
||||||
// } else {
|
|
||||||
// ts += 0; // MBR/BIOS|UEFI
|
|
||||||
// }
|
|
||||||
// IGNORE_RETVAL(ComboBox_SetCurSel(hPartitionScheme, ts));
|
|
||||||
// // Can't call SetPartitionSchemeTooltip() directly, as we may be on a different thread
|
|
||||||
// SendMessage(hMainDialog, UM_SET_PARTITION_SCHEME_TOOLTIP, 0, 0);
|
|
||||||
//}
|
|
||||||
|
|
||||||
static void SetProposedLabel(int ComboIndex)
|
static void SetProposedLabel(int ComboIndex)
|
||||||
{
|
{
|
||||||
|
@ -860,6 +827,53 @@ static void SetProposedLabel(int ComboIndex)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Toggle available controls when dealing with a pure DD image
|
||||||
|
static void ToggleImage(BOOL enable)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < ARRAYSIZE(dd_image_toggle_ids); i++)
|
||||||
|
EnableWindow(GetDlgItem(hMainDialog, dd_image_toggle_ids[i]), enable);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Toggle controls according to operation
|
||||||
|
static void EnableControls(BOOL bEnable)
|
||||||
|
{
|
||||||
|
// The following only get disabled on format/checksum and otherwise remain enabled,
|
||||||
|
// even if no device or image are selected
|
||||||
|
EnableWindow(hDeviceList, bEnable);
|
||||||
|
EnableWindow(hBootType, bEnable);
|
||||||
|
EnableWindow(hSelectImage, bEnable);
|
||||||
|
EnableWindow(GetDlgItem(hMainDialog, IDC_LIST_USB_HDD), bEnable);
|
||||||
|
EnableWindow(hAdvancedDeviceToolbar, bEnable);
|
||||||
|
EnableWindow(hAdvancedFormatToolbar, bEnable);
|
||||||
|
SendMessage(hMultiToolbar, TB_ENABLEBUTTON, (WPARAM)IDC_LANG, (LPARAM)bEnable);
|
||||||
|
SendMessage(hMultiToolbar, TB_ENABLEBUTTON, (WPARAM)IDC_ABOUT, (LPARAM)bEnable);
|
||||||
|
SendMessage(hMultiToolbar, TB_ENABLEBUTTON, (WPARAM)IDC_SETTINGS, (LPARAM)bEnable);
|
||||||
|
|
||||||
|
// Checksum button is enabled if an image has been selected
|
||||||
|
EnableWindow(GetDlgItem(hMainDialog, IDC_HASH), bEnable && (image_path != NULL));
|
||||||
|
|
||||||
|
// Toggle CLOSE/CANCEL
|
||||||
|
SetDlgItemTextU(hMainDialog, IDCANCEL, lmprintf(bEnable ? MSG_006 : MSG_007));
|
||||||
|
|
||||||
|
// Only enable the following controls if a device is active
|
||||||
|
bEnable = (ComboBox_GetCurSel(hDeviceList) < 0) ? FALSE : bEnable;
|
||||||
|
EnableWindow(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION), bEnable);
|
||||||
|
EnableWindow(GetDlgItem(hMainDialog, IDC_SAVE), bEnable);
|
||||||
|
|
||||||
|
// Enable or disable the Start button and the other boot options
|
||||||
|
bEnable = ((bt == BT_IMAGE) && (image_path == NULL)) ? FALSE : bEnable;
|
||||||
|
EnableWindow(hStart, bEnable);
|
||||||
|
EnableBootOptions(bEnable, FALSE);
|
||||||
|
|
||||||
|
// Finally, only enable the half-size dropdowns if we aren't dealing with a pure DD image
|
||||||
|
bEnable = ((bt == BT_IMAGE) && (image_path != NULL) && (!img_report.is_iso)) ? FALSE : bEnable;
|
||||||
|
EnableWindow(hPartitionScheme, bEnable);
|
||||||
|
EnableWindow(hTargetSystem, bEnable);
|
||||||
|
EnableWindow(hFileSystem, bEnable);
|
||||||
|
EnableWindow(hClusterSize, bEnable);
|
||||||
|
}
|
||||||
|
|
||||||
// Populate the UI main dropdown properties.
|
// Populate the UI main dropdown properties.
|
||||||
// This should be called on device or boot type change.
|
// This should be called on device or boot type change.
|
||||||
static BOOL PopulateProperties(int device_index)
|
static BOOL PopulateProperties(int device_index)
|
||||||
|
@ -884,7 +898,7 @@ static BOOL PopulateProperties(int device_index)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
EnableBootOptions(TRUE, TRUE);
|
EnableControls(TRUE);
|
||||||
|
|
||||||
// Set a proposed label according to the size (eg: "256MB", "8GB")
|
// Set a proposed label according to the size (eg: "256MB", "8GB")
|
||||||
static_sprintf(SelectedDrive.proposed_label,
|
static_sprintf(SelectedDrive.proposed_label,
|
||||||
|
@ -899,8 +913,6 @@ static BOOL PopulateProperties(int device_index)
|
||||||
free(device_tooltip);
|
free(device_tooltip);
|
||||||
}
|
}
|
||||||
|
|
||||||
EnableWindow(hStart, (bt != BT_IMAGE) || (image_path != NULL));
|
|
||||||
|
|
||||||
out:
|
out:
|
||||||
SetProposedLabel(device_index);
|
SetProposedLabel(device_index);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -976,7 +988,7 @@ static void InitProgress(BOOL bOnlyFormat)
|
||||||
last_end = slot_end[i+1];
|
last_end = slot_end[i+1];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Is there's no analog, adjust our discrete ends to fill the whole bar */
|
// If there's no analog, adjust our discrete ends to fill the whole bar
|
||||||
if (slots_analog == 0.0f) {
|
if (slots_analog == 0.0f) {
|
||||||
for (i=0; i<OP_MAX; i++) {
|
for (i=0; i<OP_MAX; i++) {
|
||||||
slot_end[i+1] *= 100.0f / slots_discrete;
|
slot_end[i+1] *= 100.0f / slots_discrete;
|
||||||
|
@ -1028,37 +1040,6 @@ void UpdateProgress(int op, float percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Toggle controls according to operation
|
|
||||||
static void EnableControls(BOOL bEnable)
|
|
||||||
{
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_DEVICE), bEnable);
|
|
||||||
EnableWindow(hStart, (ComboBox_GetCurSel(hDeviceList)<0)?FALSE:bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_ABOUT), bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_BADBLOCKS), bEnable);
|
|
||||||
EnableBootOptions(bEnable, FALSE);
|
|
||||||
EnableWindow(hSelectImage, bEnable);
|
|
||||||
EnableWindow(hNBPasses, bEnable);
|
|
||||||
EnableWindow(hAdvancedDeviceToolbar, bEnable);
|
|
||||||
EnableWindow(hAdvancedFormatToolbar, bEnable);
|
|
||||||
SendMessage(hMultiToolbar, TB_ENABLEBUTTON, (WPARAM)IDC_LANG, (LPARAM)bEnable);
|
|
||||||
SendMessage(hMultiToolbar, TB_ENABLEBUTTON, (WPARAM)IDC_ABOUT, (LPARAM)bEnable);
|
|
||||||
SendMessage(hMultiToolbar, TB_ENABLEBUTTON, (WPARAM)IDC_SETTINGS, (LPARAM)bEnable);
|
|
||||||
EnableWindow(hStatusToolbar, bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_LIST_USB_HDD), bEnable);
|
|
||||||
SetDlgItemTextU(hMainDialog, IDCANCEL, lmprintf(bEnable?MSG_006:MSG_007));
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_PARTITION_TYPE), bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_TARGET_SYSTEM), bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_HASH), bEnable && (image_path != NULL));
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION), bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_FILESYSTEM), bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_CLUSTERSIZE), bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_LABEL), bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_QUICKFORMAT), bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_EXTENDED_LABEL), bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_WINDOWS_INSTALL), bEnable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_WINDOWS_TO_GO), bEnable);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Callback for the log window
|
// Callback for the log window
|
||||||
BOOL CALLBACK LogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
BOOL CALLBACK LogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
|
@ -1346,20 +1327,6 @@ static void ToggleAdvancedFormatOptions(BOOL enable)
|
||||||
InvalidateRect(hMainDialog, NULL, TRUE);
|
InvalidateRect(hMainDialog, NULL, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Toggle available controls when dealing with a pure DD image
|
|
||||||
static void ToggleImage(BOOL enable)
|
|
||||||
{
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_QUICKFORMAT), enable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_PARTITION_TYPE), enable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_TARGET_SYSTEM), enable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_IMAGE_OPTION), enable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_FILESYSTEM), enable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_CLUSTERSIZE), enable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_LABEL), enable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_QUICKFORMAT), enable);
|
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_EXTENDED_LABEL), enable);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Toggle the Image Option dropdown (Windows To Go or Casper settings)
|
// Toggle the Image Option dropdown (Windows To Go or Casper settings)
|
||||||
static void ToggleImageOption(void)
|
static void ToggleImageOption(void)
|
||||||
{
|
{
|
||||||
|
@ -1463,9 +1430,7 @@ DWORD WINAPI ISOScanThread(LPVOID param)
|
||||||
// Failed to scan image
|
// Failed to scan image
|
||||||
SendMessage(hMainDialog, UM_PROGRESS_EXIT, 0, 0);
|
SendMessage(hMainDialog, UM_PROGRESS_EXIT, 0, 0);
|
||||||
safe_free(image_path);
|
safe_free(image_path);
|
||||||
SetBootOptions();
|
|
||||||
EnableControls(TRUE);
|
EnableControls(TRUE);
|
||||||
EnableWindow(hStatusToolbar, FALSE);
|
|
||||||
SetMBRProps();
|
SetMBRProps();
|
||||||
PopulateProperties(ComboBox_GetCurSel(hDeviceList));
|
PopulateProperties(ComboBox_GetCurSel(hDeviceList));
|
||||||
PrintInfoDebug(0, MSG_203);
|
PrintInfoDebug(0, MSG_203);
|
||||||
|
@ -1488,17 +1453,16 @@ DWORD WINAPI ISOScanThread(LPVOID param)
|
||||||
}
|
}
|
||||||
selection_default = BT_IMAGE;
|
selection_default = BT_IMAGE;
|
||||||
}
|
}
|
||||||
// Only enable AFTER we have determined the image type
|
|
||||||
EnableControls(TRUE);
|
|
||||||
if (!IS_DD_BOOTABLE(img_report) && !IS_BIOS_BOOTABLE(img_report) && !IS_EFI_BOOTABLE(img_report)) {
|
if (!IS_DD_BOOTABLE(img_report) && !IS_BIOS_BOOTABLE(img_report) && !IS_EFI_BOOTABLE(img_report)) {
|
||||||
// No boot method that we support
|
// No boot method that we support
|
||||||
PrintInfo(0, MSG_081);
|
PrintInfo(0, MSG_081);
|
||||||
safe_free(image_path);
|
safe_free(image_path);
|
||||||
EnableWindow(hStatusToolbar, FALSE);
|
|
||||||
MessageBoxExU(hMainDialog, lmprintf(MSG_082), lmprintf(MSG_081), MB_OK | MB_ICONINFORMATION | MB_IS_RTL, selected_langid);
|
MessageBoxExU(hMainDialog, lmprintf(MSG_082), lmprintf(MSG_081), MB_OK | MB_ICONINFORMATION | MB_IS_RTL, selected_langid);
|
||||||
PrintStatus(0, MSG_086);
|
PrintStatus(0, MSG_086);
|
||||||
|
EnableControls(TRUE);
|
||||||
SetMBRProps();
|
SetMBRProps();
|
||||||
} else {
|
} else {
|
||||||
|
EnableControls(TRUE);
|
||||||
// Set Target and FS accordingly
|
// Set Target and FS accordingly
|
||||||
if (img_report.is_iso) {
|
if (img_report.is_iso) {
|
||||||
IGNORE_RETVAL(ComboBox_SetCurSel(hBootType, image_index));
|
IGNORE_RETVAL(ComboBox_SetCurSel(hBootType, image_index));
|
||||||
|
@ -1524,7 +1488,6 @@ DWORD WINAPI ISOScanThread(LPVOID param)
|
||||||
// Lose the focus from Close and set it back to Start
|
// Lose the focus from Close and set it back to Start
|
||||||
SendMessage(hMainDialog, WM_NEXTDLGCTL, (WPARAM)hStart, TRUE);
|
SendMessage(hMainDialog, WM_NEXTDLGCTL, (WPARAM)hStart, TRUE);
|
||||||
}
|
}
|
||||||
ToggleHash();
|
|
||||||
|
|
||||||
// Need to invalidate as we may have changed the UI and may get artifacts if we don't
|
// Need to invalidate as we may have changed the UI and may get artifacts if we don't
|
||||||
// Oh and we need to invoke BOTH RedrawWindow() and InvalidateRect() because UI refresh
|
// Oh and we need to invoke BOTH RedrawWindow() and InvalidateRect() because UI refresh
|
||||||
|
@ -1554,9 +1517,10 @@ static BOOL BootCheck(void)
|
||||||
syslinux_ldlinux_len[0] = 0; syslinux_ldlinux_len[1] = 0;
|
syslinux_ldlinux_len[0] = 0; syslinux_ldlinux_len[1] = 0;
|
||||||
safe_free(grub2_buf);
|
safe_free(grub2_buf);
|
||||||
if (bt == BT_IMAGE) {
|
if (bt == BT_IMAGE) {
|
||||||
|
// We should never be there
|
||||||
if (image_path == NULL) {
|
if (image_path == NULL) {
|
||||||
// Please click on the disc button to select a bootable ISO
|
uprintf("Spock gone crazy error in %s:%d", __FILE__, __LINE__);
|
||||||
MessageBoxExU(hMainDialog, lmprintf(MSG_087), lmprintf(MSG_086), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid);
|
MessageBoxExU(hMainDialog, "image_path is NULL. Please report this error to the author of this application", "Logic error", MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if ((size_check) && (img_report.projected_size > (uint64_t)SelectedDrive.DiskSize)) {
|
if ((size_check) && (img_report.projected_size > (uint64_t)SelectedDrive.DiskSize)) {
|
||||||
|
@ -1564,12 +1528,10 @@ static BOOL BootCheck(void)
|
||||||
MessageBoxExU(hMainDialog, lmprintf(MSG_089), lmprintf(MSG_088), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid);
|
MessageBoxExU(hMainDialog, lmprintf(MSG_089), lmprintf(MSG_088), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
//if (bt == BT_IMG) {
|
if (IS_DD_BOOTABLE(img_report) && !img_report.is_iso) {
|
||||||
// if (!IS_DD_BOOTABLE(img_report))
|
// Pure DD images are fine at this stage
|
||||||
// // The selected image doesn't match the boot option selected.
|
return TRUE;
|
||||||
// MessageBoxExU(hMainDialog, lmprintf(MSG_188), lmprintf(MSG_187), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid);
|
}
|
||||||
// return IS_DD_BOOTABLE(img_report);
|
|
||||||
//}
|
|
||||||
if ((togo_mode) && (Button_GetCheck(GetDlgItem(hMainDialog, IDC_WINDOWS_TO_GO)) == BST_CHECKED)) {
|
if ((togo_mode) && (Button_GetCheck(GetDlgItem(hMainDialog, IDC_WINDOWS_TO_GO)) == BST_CHECKED)) {
|
||||||
if (fs != FS_NTFS) {
|
if (fs != FS_NTFS) {
|
||||||
// Windows To Go only works for NTFS
|
// Windows To Go only works for NTFS
|
||||||
|
@ -1950,23 +1912,19 @@ static void CreateAdditionalControls(HWND hDlg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetch the up and down expand icons for the advanced options toolbar
|
// Fetch the up and down expand icons for the advanced options toolbar
|
||||||
if (nWindowsVersion < WINDOWS_8) {
|
|
||||||
hDll = GetLibraryHandle("Shell32");
|
|
||||||
hIconDown = (HICON)LoadImage(hDll, MAKEINTRESOURCE(16750), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR | LR_SHARED);
|
|
||||||
hDownImageList = ImageList_Create(i16, i16, ILC_COLOR32, 1, 0);
|
|
||||||
ImageList_AddIcon(hDownImageList, hIconDown);
|
|
||||||
hIconUp = (HICON)LoadImage(hDll, MAKEINTRESOURCE(16749), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR | LR_SHARED);
|
|
||||||
hUpImageList = ImageList_Create(i16, i16, ILC_COLOR32, 1, 0);
|
|
||||||
ImageList_AddIcon(hUpImageList, hIconUp);
|
|
||||||
} else {
|
|
||||||
hDll = GetLibraryHandle("ComDlg32");
|
hDll = GetLibraryHandle("ComDlg32");
|
||||||
hIconDown = (HICON)LoadImage(hDll, MAKEINTRESOURCE(577), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR | LR_SHARED);
|
hIconDown = (HICON)LoadImage(hDll, MAKEINTRESOURCE(577), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR | LR_SHARED);
|
||||||
hDownImageList = ImageList_Create(i16, i16, ILC_COLOR32, 1, 0);
|
|
||||||
ImageList_AddIcon(hDownImageList, hIconDown);
|
|
||||||
hIconUp = (HICON)LoadImage(hDll, MAKEINTRESOURCE(578), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR | LR_SHARED);
|
hIconUp = (HICON)LoadImage(hDll, MAKEINTRESOURCE(578), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR | LR_SHARED);
|
||||||
|
// Fallback to using Shell32 if we can't locate the icons we want in ComDlg32
|
||||||
|
hDll = GetLibraryHandle("Shell32");
|
||||||
|
if (hIconUp == NULL)
|
||||||
|
hIconUp = (HICON)LoadImage(hDll, MAKEINTRESOURCE(16749), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR | LR_SHARED);
|
||||||
|
if (hIconDown == NULL)
|
||||||
|
hIconDown = (HICON)LoadImage(hDll, MAKEINTRESOURCE(16750), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR | LR_SHARED);
|
||||||
hUpImageList = ImageList_Create(i16, i16, ILC_COLOR32, 1, 0);
|
hUpImageList = ImageList_Create(i16, i16, ILC_COLOR32, 1, 0);
|
||||||
|
hDownImageList = ImageList_Create(i16, i16, ILC_COLOR32, 1, 0);
|
||||||
ImageList_AddIcon(hUpImageList, hIconUp);
|
ImageList_AddIcon(hUpImageList, hIconUp);
|
||||||
}
|
ImageList_AddIcon(hDownImageList, hIconDown);
|
||||||
|
|
||||||
// Create the advanced options toolbars
|
// Create the advanced options toolbars
|
||||||
memset(wtbtext, 0, sizeof(wtbtext));
|
memset(wtbtext, 0, sizeof(wtbtext));
|
||||||
|
@ -2432,14 +2390,9 @@ static void InitDialog(HWND hDlg)
|
||||||
GetHalfDropwdownWidth(hDlg);
|
GetHalfDropwdownWidth(hDlg);
|
||||||
GetFullWidth(hDlg);
|
GetFullWidth(hDlg);
|
||||||
|
|
||||||
// TODO: Don't think this is used
|
// Create the font and brush for the progress messages
|
||||||
// Create the font and brush for the Info edit box
|
|
||||||
hInfoFont = CreateFontA(lfHeight, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
|
hInfoFont = CreateFontA(lfHeight, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
|
||||||
0, 0, PROOF_QUALITY, 0, "Segoe UI");
|
0, 0, PROOF_QUALITY, 0, "Segoe UI");
|
||||||
// hInfoFont = CreateFontA(48, 0, 0, 0, FW_SEMIBOLD, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
|
|
||||||
// 0, 0, PROOF_QUALITY, 0, "Segoe UI");
|
|
||||||
SendDlgItemMessageA(hDlg, IDC_INFO, WM_SETFONT, (WPARAM)hInfoFont, TRUE);
|
|
||||||
hInfoBrush = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
|
|
||||||
|
|
||||||
// Create the title bar icon
|
// Create the title bar icon
|
||||||
SetTitleBarIcon(hDlg);
|
SetTitleBarIcon(hDlg);
|
||||||
|
@ -2504,9 +2457,7 @@ static void InitDialog(HWND hDlg)
|
||||||
|
|
||||||
// Fill up the boot options dropdown
|
// Fill up the boot options dropdown
|
||||||
SetBootOptions();
|
SetBootOptions();
|
||||||
SetComboEntry(hBootType, selection_default);
|
|
||||||
|
|
||||||
// SetOptionsAccordingToBootEntry();
|
|
||||||
// Fill up the MBR masqueraded disk IDs ("8 disks should be enough for anybody")
|
// Fill up the MBR masqueraded disk IDs ("8 disks should be enough for anybody")
|
||||||
IGNORE_RETVAL(ComboBox_SetItemData(hDiskID, ComboBox_AddStringU(hDiskID, lmprintf(MSG_030, LEFT_TO_RIGHT_EMBEDDING "0x80" POP_DIRECTIONAL_FORMATTING)), 0x80));
|
IGNORE_RETVAL(ComboBox_SetItemData(hDiskID, ComboBox_AddStringU(hDiskID, lmprintf(MSG_030, LEFT_TO_RIGHT_EMBEDDING "0x80" POP_DIRECTIONAL_FORMATTING)), 0x80));
|
||||||
for (i=1; i<=7; i++) {
|
for (i=1; i<=7; i++) {
|
||||||
|
@ -2548,6 +2499,9 @@ static void InitDialog(HWND hDlg)
|
||||||
CreateTooltip(GetDlgItem(hDlg, IDC_LIST_USB_HDD), lmprintf(MSG_170), -1);
|
CreateTooltip(GetDlgItem(hDlg, IDC_LIST_USB_HDD), lmprintf(MSG_170), -1);
|
||||||
CreateTooltip(hStart, lmprintf(MSG_171), -1);
|
CreateTooltip(hStart, lmprintf(MSG_171), -1);
|
||||||
CreateTooltip(GetDlgItem(hDlg, IDC_ABOUT), lmprintf(MSG_172), -1);
|
CreateTooltip(GetDlgItem(hDlg, IDC_ABOUT), lmprintf(MSG_172), -1);
|
||||||
|
CreateTooltip(hPartitionScheme, lmprintf(MSG_150), -1);
|
||||||
|
CreateTooltip(hTargetSystem, lmprintf(MSG_151), 30000);
|
||||||
|
CreateTooltip(GetDlgItem(hDlg, IDS_CSM_HELP_TXT), lmprintf(MSG_152), 30000);
|
||||||
// CreateTooltip(GetDlgItem(hDlg, IDC_WINDOWS_INSTALL), lmprintf(MSG_199), -1);
|
// CreateTooltip(GetDlgItem(hDlg, IDC_WINDOWS_INSTALL), lmprintf(MSG_199), -1);
|
||||||
// CreateTooltip(GetDlgItem(hDlg, IDC_WINDOWS_TO_GO), lmprintf(MSG_200), -1);
|
// CreateTooltip(GetDlgItem(hDlg, IDC_WINDOWS_TO_GO), lmprintf(MSG_200), -1);
|
||||||
CreateTooltip(GetDlgItem(hDlg, IDC_HASH), lmprintf(MSG_272), -1);
|
CreateTooltip(GetDlgItem(hDlg, IDC_HASH), lmprintf(MSG_272), -1);
|
||||||
|
@ -2558,7 +2512,6 @@ static void InitDialog(HWND hDlg)
|
||||||
if (!advanced_mode_format)
|
if (!advanced_mode_format)
|
||||||
ToggleAdvancedFormatOptions(FALSE);
|
ToggleAdvancedFormatOptions(FALSE);
|
||||||
ToggleImageOption();
|
ToggleImageOption();
|
||||||
ToggleHash();
|
|
||||||
|
|
||||||
// Process commandline parameters
|
// Process commandline parameters
|
||||||
if (iso_provided) {
|
if (iso_provided) {
|
||||||
|
@ -2800,10 +2753,6 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef RUFUS_TEST
|
|
||||||
extern int SelectionDyn(char* title, char* message, char** szChoice, int nChoices);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Main dialog callback
|
* Main dialog callback
|
||||||
*/
|
*/
|
||||||
|
@ -2816,6 +2765,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
static LPITEMIDLIST pidlDesktop = NULL;
|
static LPITEMIDLIST pidlDesktop = NULL;
|
||||||
static SHChangeNotifyEntry NotifyEntry;
|
static SHChangeNotifyEntry NotifyEntry;
|
||||||
static DWORD_PTR thread_affinity[4];
|
static DWORD_PTR thread_affinity[4];
|
||||||
|
static HFONT hyperlink_font = NULL;
|
||||||
DRAWITEMSTRUCT* pDI;
|
DRAWITEMSTRUCT* pDI;
|
||||||
LPTOOLTIPTEXT lpttt;
|
LPTOOLTIPTEXT lpttt;
|
||||||
HDROP droppedFileInfo;
|
HDROP droppedFileInfo;
|
||||||
|
@ -2944,6 +2894,9 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
WriteSettingBool(SETTING_ADVANCED_MODE_DEVICE, advanced_mode_device);
|
WriteSettingBool(SETTING_ADVANCED_MODE_DEVICE, advanced_mode_device);
|
||||||
ToggleAdvancedDeviceOptions(advanced_mode_device);
|
ToggleAdvancedDeviceOptions(advanced_mode_device);
|
||||||
SetBootOptions();
|
SetBootOptions();
|
||||||
|
bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
|
||||||
|
EnableControls(TRUE);
|
||||||
|
SetFileSystemAndClusterSize(NULL);
|
||||||
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE << 16) | IDC_FILESYSTEM,
|
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE << 16) | IDC_FILESYSTEM,
|
||||||
ComboBox_GetCurSel(hFileSystem));
|
ComboBox_GetCurSel(hFileSystem));
|
||||||
break;
|
break;
|
||||||
|
@ -2980,6 +2933,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
if (HIWORD(wParam) != CBN_SELCHANGE)
|
if (HIWORD(wParam) != CBN_SELCHANGE)
|
||||||
break;
|
break;
|
||||||
tt = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem));
|
tt = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem));
|
||||||
|
ShowWindow(GetDlgItem(hMainDialog, IDS_CSM_HELP_TXT), ((tt == TT_BIOS) && (has_uefi_csm)) ? SW_SHOW : SW_HIDE);
|
||||||
SetFileSystemAndClusterSize(NULL);
|
SetFileSystemAndClusterSize(NULL);
|
||||||
break;
|
break;
|
||||||
case IDC_PARTITION_TYPE:
|
case IDC_PARTITION_TYPE:
|
||||||
|
@ -2987,18 +2941,13 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
break;
|
break;
|
||||||
pt = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme));
|
pt = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme));
|
||||||
SetPartitionSchemeAndTargetSystem(TRUE);
|
SetPartitionSchemeAndTargetSystem(TRUE);
|
||||||
SetPartitionSchemeTooltip();
|
|
||||||
SetFileSystemAndClusterSize(NULL);
|
SetFileSystemAndClusterSize(NULL);
|
||||||
|
EnableMBRBootOptions(TRUE, FALSE);
|
||||||
break;
|
break;
|
||||||
case IDC_FILESYSTEM:
|
case IDC_FILESYSTEM:
|
||||||
if (HIWORD(wParam) != CBN_SELCHANGE)
|
if (HIWORD(wParam) != CBN_SELCHANGE)
|
||||||
break;
|
break;
|
||||||
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
||||||
if (image_path != NULL && !img_report.is_iso) {
|
|
||||||
ToggleImage(FALSE);
|
|
||||||
EnableAdvancedBootOptions(FALSE, TRUE);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
SetClusterSizes(fs);
|
SetClusterSizes(fs);
|
||||||
// Disable/restore the quick format control depending on large FAT32 or ReFS
|
// Disable/restore the quick format control depending on large FAT32 or ReFS
|
||||||
if ( ((fs == FS_FAT32) && ((SelectedDrive.DiskSize > LARGE_FAT32_SIZE) || (force_large_fat32))) || (fs == FS_REFS) ) {
|
if ( ((fs == FS_FAT32) && ((SelectedDrive.DiskSize > LARGE_FAT32_SIZE) || (force_large_fat32))) || (fs == FS_REFS) ) {
|
||||||
|
@ -3024,7 +2973,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
EnableAdvancedBootOptions(TRUE, TRUE);
|
EnableMBRBootOptions(TRUE, FALSE);
|
||||||
SetMBRProps();
|
SetMBRProps();
|
||||||
break;
|
break;
|
||||||
case IDC_BOOT_TYPE:
|
case IDC_BOOT_TYPE:
|
||||||
|
@ -3034,12 +2983,11 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
// TODO: do we really need both bt and selection_default?
|
// TODO: do we really need both bt and selection_default?
|
||||||
selection_default = bt;
|
selection_default = bt;
|
||||||
SetPartitionSchemeAndTargetSystem(FALSE);
|
SetPartitionSchemeAndTargetSystem(FALSE);
|
||||||
EnableAdvancedBootOptions(TRUE, TRUE);
|
SetFileSystemAndClusterSize(NULL);
|
||||||
// TODO: SetToGo() would be better invoked from ShowImageSettings()
|
// TODO: SetToGo() would be better invoked from ShowImageSettings()
|
||||||
SetToGo();
|
SetToGo();
|
||||||
ToggleHash();
|
|
||||||
SetProposedLabel(ComboBox_GetCurSel(hDeviceList));
|
SetProposedLabel(ComboBox_GetCurSel(hDeviceList));
|
||||||
PopulateProperties(ComboBox_GetCurSel(hDeviceList));
|
EnableControls(TRUE);
|
||||||
// TODO: Might wanna do this in PopulateProperties
|
// TODO: Might wanna do this in PopulateProperties
|
||||||
tt = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme));
|
tt = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme));
|
||||||
pt = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem));
|
pt = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem));
|
||||||
|
@ -3053,7 +3001,6 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
// If declared globaly, lmprintf(MSG_036) would be called on each message...
|
// If declared globaly, lmprintf(MSG_036) would be called on each message...
|
||||||
EXT_DECL(img_ext, NULL, __VA_GROUP__("*.iso;*.img;*.vhd;*.gz;*.bzip2;*.bz2;*.xz;*.lzma;*.Z;*.zip"),
|
EXT_DECL(img_ext, NULL, __VA_GROUP__("*.iso;*.img;*.vhd;*.gz;*.bzip2;*.bz2;*.xz;*.lzma;*.Z;*.zip"),
|
||||||
__VA_GROUP__(lmprintf(MSG_036)));
|
__VA_GROUP__(lmprintf(MSG_036)));
|
||||||
EnableWindow(hStatusToolbar, FALSE);
|
|
||||||
image_path = FileDialog(FALSE, NULL, &img_ext, 0);
|
image_path = FileDialog(FALSE, NULL, &img_ext, 0);
|
||||||
if (image_path == NULL) {
|
if (image_path == NULL) {
|
||||||
if (old_image_path != NULL) {
|
if (old_image_path != NULL) {
|
||||||
|
@ -3103,6 +3050,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
tt = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme));
|
tt = (int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme));
|
||||||
pt = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem));
|
pt = (int)ComboBox_GetItemData(hTargetSystem, ComboBox_GetCurSel(hTargetSystem));
|
||||||
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
||||||
|
write_as_image = FALSE;
|
||||||
// Disable all controls except Cancel
|
// Disable all controls except Cancel
|
||||||
EnableControls(FALSE);
|
EnableControls(FALSE);
|
||||||
FormatStatus = 0;
|
FormatStatus = 0;
|
||||||
|
@ -3136,21 +3084,20 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((bt == BT_IMAGE) && IS_DD_BOOTABLE(img_report)) {
|
||||||
|
if (img_report.is_iso) {
|
||||||
// Ask users how they want to write ISOHybrid images
|
// Ask users how they want to write ISOHybrid images
|
||||||
if ((bt != BT_NON_BOOTABLE) && (img_report.is_bootable_img) &&
|
|
||||||
(ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType)) == BT_IMAGE)) {
|
|
||||||
// TODO: We need to restore these MSGs
|
|
||||||
char* iso_image = lmprintf(MSG_036);
|
char* iso_image = lmprintf(MSG_036);
|
||||||
char* dd_image = lmprintf(MSG_095);
|
char* dd_image = lmprintf(MSG_095);
|
||||||
char* choices[2] = { lmprintf(MSG_276, iso_image), lmprintf(MSG_277, dd_image) };
|
char* choices[2] = { lmprintf(MSG_276, iso_image), lmprintf(MSG_277, dd_image) };
|
||||||
i = SelectionDialog(lmprintf(MSG_274), lmprintf(MSG_275, iso_image, dd_image, iso_image, dd_image),
|
i = SelectionDialog(lmprintf(MSG_274), lmprintf(MSG_275, iso_image, dd_image, iso_image, dd_image),
|
||||||
choices, 2);
|
choices, 2);
|
||||||
if (i < 0) { // Cancel
|
if (i < 0) // Cancel
|
||||||
goto aborted_start;
|
goto aborted_start;
|
||||||
} else if (i == 2) {
|
else if (i == 2)
|
||||||
// TODO: set ISO vs DD mode here
|
write_as_image = TRUE;
|
||||||
// selection_default = BT_IMG;
|
} else {
|
||||||
// SetComboEntry(hBootType, selection_default);
|
write_as_image = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3268,8 +3215,8 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
queued_hotplug_event = FALSE;
|
queued_hotplug_event = FALSE;
|
||||||
GetDevices((DWORD)ComboBox_GetItemData(hDeviceList, ComboBox_GetCurSel(hDeviceList)));
|
GetDevices((DWORD)ComboBox_GetItemData(hDeviceList, ComboBox_GetCurSel(hDeviceList)));
|
||||||
user_changed_label = FALSE;
|
user_changed_label = FALSE;
|
||||||
}
|
EnableControls(TRUE);
|
||||||
else {
|
} else {
|
||||||
queued_hotplug_event = TRUE;
|
queued_hotplug_event = TRUE;
|
||||||
}
|
}
|
||||||
return (INT_PTR)TRUE;
|
return (INT_PTR)TRUE;
|
||||||
|
@ -3299,7 +3246,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
hLogDlg = MyCreateDialog(hMainInstance, IDD_LOG, hDlg, (DLGPROC)LogProc);
|
hLogDlg = MyCreateDialog(hMainInstance, IDD_LOG, hDlg, (DLGPROC)LogProc);
|
||||||
InitDialog(hDlg);
|
InitDialog(hDlg);
|
||||||
GetDevices(0);
|
GetDevices(0);
|
||||||
PopulateProperties(ComboBox_GetCurSel(hDeviceList));
|
EnableControls(TRUE);
|
||||||
CheckForUpdates(FALSE);
|
CheckForUpdates(FALSE);
|
||||||
// Register MEDIA_INSERTED/MEDIA_REMOVED notifications for card readers
|
// Register MEDIA_INSERTED/MEDIA_REMOVED notifications for card readers
|
||||||
if (SUCCEEDED(SHGetSpecialFolderLocation(0, CSIDL_DESKTOP, &pidlDesktop))) {
|
if (SUCCEEDED(SHGetSpecialFolderLocation(0, CSIDL_DESKTOP, &pidlDesktop))) {
|
||||||
|
@ -3356,6 +3303,15 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
EndPaint(hDlg, &ps);
|
EndPaint(hDlg, &ps);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WM_CTLCOLORSTATIC:
|
||||||
|
if ((HWND)lParam != GetDlgItem(hDlg, IDS_CSM_HELP_TXT))
|
||||||
|
return FALSE;
|
||||||
|
SetBkMode((HDC)wParam, TRANSPARENT);
|
||||||
|
CreateStaticFont((HDC)wParam, &hyperlink_font, FALSE);
|
||||||
|
SelectObject((HDC)wParam, hyperlink_font);
|
||||||
|
SetTextColor((HDC)wParam, RGB(0, 0, 125)); // DARK_BLUE
|
||||||
|
return (INT_PTR)CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
|
||||||
|
|
||||||
case WM_NOTIFY:
|
case WM_NOTIFY:
|
||||||
switch (((LPNMHDR)lParam)->code) {
|
switch (((LPNMHDR)lParam)->code) {
|
||||||
case TTN_GETDISPINFO:
|
case TTN_GETDISPINFO:
|
||||||
|
@ -3504,10 +3460,6 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
format_op_in_progress = FALSE;
|
format_op_in_progress = FALSE;
|
||||||
return (INT_PTR)TRUE;
|
return (INT_PTR)TRUE;
|
||||||
|
|
||||||
// Ensures that SetPartitionSchemeTooltip() can be called from the original thread
|
|
||||||
case UM_SET_PARTITION_SCHEME_TOOLTIP:
|
|
||||||
SetPartitionSchemeTooltip();
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return (INT_PTR)FALSE;
|
return (INT_PTR)FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -152,7 +152,6 @@ enum user_message_type {
|
||||||
UM_PROGRESS_INIT,
|
UM_PROGRESS_INIT,
|
||||||
UM_PROGRESS_EXIT,
|
UM_PROGRESS_EXIT,
|
||||||
UM_NO_UPDATE,
|
UM_NO_UPDATE,
|
||||||
UM_SET_PARTITION_SCHEME_TOOLTIP,
|
|
||||||
// Start of the WM IDs for the language menu items
|
// Start of the WM IDs for the language menu items
|
||||||
UM_LANGUAGE_MENU = WM_APP + 0x100
|
UM_LANGUAGE_MENU = WM_APP + 0x100
|
||||||
};
|
};
|
||||||
|
@ -383,7 +382,7 @@ enum WindowsVersion {
|
||||||
extern HINSTANCE hMainInstance;
|
extern HINSTANCE hMainInstance;
|
||||||
extern HWND hMainDialog, hLogDlg, hStatus, hDeviceList, hCapacity;
|
extern HWND hMainDialog, hLogDlg, hStatus, hDeviceList, hCapacity;
|
||||||
extern HWND hPartitionScheme, hTargetSystem, hFileSystem, hClusterSize, hLabel, hBootType, hNBPasses, hLog;
|
extern HWND hPartitionScheme, hTargetSystem, hFileSystem, hClusterSize, hLabel, hBootType, hNBPasses, hLog;
|
||||||
extern HWND hInfo, hProgress, hDiskID, hStatusToolbar;
|
extern HWND hInfo, hProgress, hDiskID;
|
||||||
extern float fScale;
|
extern float fScale;
|
||||||
extern char szFolderPath[MAX_PATH], app_dir[MAX_PATH], temp_dir[MAX_PATH], system_dir[MAX_PATH], sysnative_dir[MAX_PATH];
|
extern char szFolderPath[MAX_PATH], app_dir[MAX_PATH], temp_dir[MAX_PATH], system_dir[MAX_PATH], sysnative_dir[MAX_PATH];
|
||||||
extern char* image_path;
|
extern char* image_path;
|
||||||
|
|
|
@ -50,6 +50,7 @@ BEGIN
|
||||||
COMBOBOX IDC_PARTITION_TYPE,8,97,96,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_PARTITION_TYPE,8,97,96,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
LTEXT "Target system",IDS_TARGET_SYSTEM_TXT,128,88,96,8
|
LTEXT "Target system",IDS_TARGET_SYSTEM_TXT,128,88,96,8
|
||||||
COMBOBOX IDC_TARGET_SYSTEM,128,97,96,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_TARGET_SYSTEM,128,97,96,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
|
LTEXT "?",IDS_CSM_HELP_TXT,226,98,6,15,SS_NOTIFY | NOT WS_VISIBLE
|
||||||
CONTROL "Show advanced drive properties",IDC_ADVANCED_DRIVE_PROPERTIES,
|
CONTROL "Show advanced drive properties",IDC_ADVANCED_DRIVE_PROPERTIES,
|
||||||
"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,8,110,216,10
|
"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,8,110,216,10
|
||||||
CONTROL "List USB Hard Drives",IDC_LIST_USB_HDD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,120,216,10
|
CONTROL "List USB Hard Drives",IDC_LIST_USB_HDD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,120,216,10
|
||||||
|
|
|
@ -1399,11 +1399,11 @@ INT_PTR CALLBACK NewVersionCallback(HWND hDlg, UINT message, WPARAM wParam, LPAR
|
||||||
char cmdline[] = APPLICATION_NAME " -w 150";
|
char cmdline[] = APPLICATION_NAME " -w 150";
|
||||||
static char* filepath = NULL;
|
static char* filepath = NULL;
|
||||||
static int download_status = 0;
|
static int download_status = 0;
|
||||||
|
static HFONT hyperlink_font = NULL;
|
||||||
LONG i;
|
LONG i;
|
||||||
HWND hNotes;
|
HWND hNotes;
|
||||||
STARTUPINFOA si;
|
STARTUPINFOA si;
|
||||||
PROCESS_INFORMATION pi;
|
PROCESS_INFORMATION pi;
|
||||||
HFONT hyperlink_font = NULL;
|
|
||||||
EXT_DECL(dl_ext, NULL, __VA_GROUP__("*.exe"), __VA_GROUP__(lmprintf(MSG_037)));
|
EXT_DECL(dl_ext, NULL, __VA_GROUP__("*.exe"), __VA_GROUP__(lmprintf(MSG_037)));
|
||||||
|
|
||||||
switch (message) {
|
switch (message) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue