From c84075385ee4e725418a6e94d9f1f432476e17b4 Mon Sep 17 00:00:00 2001
From: Pete Batard <pete@akeo.ie>
Date: Fri, 15 May 2015 00:36:42 +0100
Subject: [PATCH] [ui] improve application look on high DPI displays

* Fix Quick Format option overlapping boot option dropdown
* Fix vertical spacing between "Create bootable disk" and "Create extended label and icon files"
* Fix vertical spacing of progress bar in non advanced mode
* Align and resize Advanced Options button
* Align and resize Select Image button
* Fix vertical centering of Status text
* Add 64x64px icon so that the About dialog looks better at 200% size
---
 res/rufus.ico | Bin 17542 -> 34494 bytes
 src/net.c     |   2 +-
 src/rufus.c   |  38 ++++++++++++++++++++++++++++----------
 src/rufus.rc  |  48 ++++++++++++++++++++++++------------------------
 src/stdlg.c   |  12 ++++++------
 5 files changed, 59 insertions(+), 41 deletions(-)

diff --git a/res/rufus.ico b/res/rufus.ico
index 09913990ae35493a0bbddf209c76714fcdf10ea5..7ea3c69af8de928a585d3ec8b071879862e926b7 100644
GIT binary patch
delta 7470
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

delta 82
zcmdnj%hcA%=*Gan$iTv2V88$b3Jfb$85n><3<?TRz5oNmJD`|^1ccwg$-pqpjDbM_
VC=ODe!NR~G=fJ?Qxz5SK1pwFG3l#tW

diff --git a/src/net.c b/src/net.c
index 5651900e..59d352c7 100644
--- a/src/net.c
+++ b/src/net.c
@@ -331,7 +331,7 @@ DWORD DownloadFile(const char* url, const char* file, HWND hProgressDialog)
 	HttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&DownloadStatus, &dwSize, NULL);
 	if (DownloadStatus != 200) {
 		error_code = ERROR_INTERNET_ITEM_NOT_FOUND;
-		uprintf("Unable to access file: Server status %d\n", DownloadStatus);
+		uprintf("Unable to access file: %d\n", DownloadStatus);
 		goto out;
 	}
 	dwSize = sizeof(dwTotalSize);
diff --git a/src/rufus.c b/src/rufus.c
index e42502b7..37a4c1f9 100644
--- a/src/rufus.c
+++ b/src/rufus.c
@@ -1053,7 +1053,10 @@ static void SetPassesTooltip(void)
 // Toggle "advanced" mode
 static void ToggleAdvanced(void)
 {
-	float dialog_shift = 82.0f;
+	// Compute the shift according to the weird values we measured at different scales:
+	// {1.0, 82}, {1.25, 88}, {1.5, 90}, {2.0, 96}, {2.5, 94} (Seriously, WTF is wrong with your scaling Microsoft?!?!)
+	// https://www.wolframalpha.com/input/?i=cubic+fit+{1%2C82}%2C{1.25%2C88}%2C{1.5%2C90}%2C{2%2C96}%2C{2.5%2C94}
+	float dialog_shift = -3.22807f*fScale*fScale*fScale + 6.69173f*fScale*fScale + 15.8822f*fScale + 62.9737f;
 	RECT rect;
 	POINT point;
 	int toggle;
@@ -1127,7 +1130,8 @@ static void ToggleImage(BOOL enable)
 // Toggle the Windows To Go radio choice
 static void ToggleToGo(void)
 {
-	float dialog_shift = 38.0f;
+	// {1.0, 38}, {1.25, 40}, {1.5, 40}, {2.0, 44}, {2.5, 44}
+	float dialog_shift = (fScale >= 1.9f)?44.0f:((fScale >= 1.2f)?40.0f:38.0f);
 	RECT rect;
 	POINT point;
 	int toggle;
@@ -1554,7 +1558,7 @@ void InitDialog(HWND hDlg)
 	HINSTANCE hShell32DllInst, hUserLanguagesCplDllInst, hINetCplDllInst;
 	HIMAGELIST hLangToolbarImageList;
 	TBBUTTON tbLangToolbarButtons[1];
-	RECT rcDeviceList, rcToolbarButton;
+	RECT rcDeviceList, rcToolbarButton, rcFormatGroup, rcAdvancedOptions, rcBootType, rcSelectImage;
 	DWORD len;
 	SIZE sz;
 	HWND hCtrl;
@@ -1727,19 +1731,33 @@ void InitDialog(HWND hDlg)
 		(int)(4.0f * fScale), rcToolbarButton.right, rcToolbarButton.bottom, 0);
 	ShowWindow(hLangToolbar, SW_SHOWNORMAL);
 
-	// Reposition the Advanced button
+	// Add trailing space to the "Format Options" text
 	hCtrl = GetDlgItem(hDlg, IDS_FORMAT_OPTIONS_GRP);
-	sz = GetTextSize(hCtrl);
-	ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDC_ADVANCED), (int)((1.0f * sz.cx) / fScale), 0, 0, 0);
-	// Add a space to the "Format Options" text
 	GetWindowTextW(hCtrl, wtmp, ARRAYSIZE(wtmp));
 	wtmp[wcslen(wtmp)] = ' ';
 	SetWindowTextW(hCtrl, wtmp);
+
+	// Reposition and resize the Advanced button
+	GetWindowRect(hCtrl, &rcFormatGroup);
+	MapWindowPoints(NULL, hDlg, (POINT*)&rcFormatGroup, 2);
+	sz = GetTextSize(hCtrl);
+	GetWindowRect(GetDlgItem(hDlg, IDC_ADVANCED), &rcAdvancedOptions);
+	// The label of a group box is always 8 pixels to the right, *regardless* of the zoom level
+	SetWindowPos(GetDlgItem(hDlg, IDC_ADVANCED), hCtrl, rcFormatGroup.left + 8 + sz.cx,
+		rcFormatGroup.top, i16 + (int)(4.0f * fScale), i16/2 + (int)(8.0f * fScale), 0);
+
+	// Reposition and resize the Select Image button
+	GetWindowRect(hBootType, &rcBootType);
+	MapWindowPoints(NULL, hDlg, (POINT*)&rcBootType, 2);
+	GetWindowRect(hSelectISO, &rcSelectImage);
+	MapWindowPoints(NULL, hDlg, (POINT*)&rcSelectImage, 2);
+	SetWindowPos(hSelectISO, NULL, rcSelectImage.left, rcBootType.top - 1,
+		rcSelectImage.right - rcSelectImage.left, rcBootType.bottom - rcBootType.top + 2, 0);
+
 	// The things one needs to do to keep things looking good...
 	if (nWindowsVersion == WINDOWS_7) {
 		ResizeMoveCtrl(hDlg, GetDlgItem(hMainDialog, IDS_ADVANCED_OPTIONS_GRP), 0, -1, 0, 2);
 		ResizeMoveCtrl(hDlg, hProgress, 0, 1, 0, 0);
-		ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDC_ADVANCED), -1, 0, 0, 0);
 	}
 
 	// Subclass the Info box so that we can align its text vertically
@@ -1987,11 +2005,11 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
 #endif
 		return (INT_PTR)FALSE;
 
-	// The things one must do to get an ellipsis on the status bar...
+	// The things one must do to get an ellipsis text alignment on the status bar...
 	case WM_DRAWITEM:
 		if (wParam == IDC_STATUS) {
 			pDI = (DRAWITEMSTRUCT*)lParam;
-			pDI->rcItem.top += (int)(2.0f * fScale);
+			pDI->rcItem.top -= (int)((4.0f * fScale) - 6.0f);
 			pDI->rcItem.left += (int)(4.0f * fScale);
 			SetBkMode(pDI->hDC, TRANSPARENT);
 			switch(pDI->itemID) {
diff --git a/src/rufus.rc b/src/rufus.rc
index 5a894f67..84e53bdb 100644
--- a/src/rufus.rc
+++ b/src/rufus.rc
@@ -32,7 +32,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 
 IDD_DIALOG DIALOGEX 12, 12, 242, 376
 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Rufus 2.2.659"
+CAPTION "Rufus 2.2.660"
 FONT 8, "Segoe UI", 400, 0, 0x1
 BEGIN
     LTEXT           "Device",IDS_DEVICE_TXT,9,6,200,8
@@ -44,15 +44,15 @@ BEGIN
     LTEXT           "Cluster size",IDS_CLUSTERSIZE_TXT,9,93,222,10
     COMBOBOX        IDC_CLUSTERSIZE,8,104,226,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     LTEXT           "New volume label",IDS_LABEL_TXT,9,121,222,10
-    EDITTEXT        IDC_LABEL,8,131,226,13,ES_AUTOHSCROLL
+    EDITTEXT        IDC_LABEL,8,131,226,12,ES_AUTOHSCROLL
     GROUPBOX        "Format Options",IDS_FORMAT_OPTIONS_GRP,7,149,227,89
-    PUSHBUTTON      "",IDC_ADVANCED,15,148,14,10,BS_ICON
+    PUSHBUTTON      "",IDC_ADVANCED,220,148,14,10,BS_ICON
     CONTROL         "Check device for bad blocks",IDC_BADBLOCKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,161,112,10
     COMBOBOX        IDC_NBPASSES,128,159,100,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Quick format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,173,121,10
     CONTROL         "Create a bootable disk using",IDC_BOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,185,112,10
-    COMBOBOX        IDC_BOOTTYPE,128,183,75,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "...",IDC_SELECT_ISO,207,182,21,14,BS_ICON
+    COMBOBOX        IDC_BOOTTYPE,128,184,75,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "...",IDC_SELECT_ISO,207,183,21,14,BS_ICON
     CONTROL         "Standard Windows installation",IDC_WINDOWS_INSTALL,
                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,23,198,205,8
     CONTROL         "Windows To Go",IDC_WINDOWS_TO_GO,"Button",BS_AUTORADIOBUTTON,23,210,205,8
@@ -157,7 +157,7 @@ END
 
 IDD_DIALOG_XP DIALOGEX 12, 12, 242, 376
 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Rufus 2.2.659"
+CAPTION "Rufus 2.2.660"
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
 BEGIN
     LTEXT           "Device",IDS_DEVICE_TXT,9,6,200,8
@@ -169,15 +169,15 @@ BEGIN
     LTEXT           "Cluster size",IDS_CLUSTERSIZE_TXT,9,93,222,10
     COMBOBOX        IDC_CLUSTERSIZE,8,104,226,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     LTEXT           "New volume label",IDS_LABEL_TXT,9,121,222,10
-    EDITTEXT        IDC_LABEL,8,131,226,13,ES_AUTOHSCROLL
+    EDITTEXT        IDC_LABEL,8,131,226,12,ES_AUTOHSCROLL
     GROUPBOX        "Format Options",IDS_FORMAT_OPTIONS_GRP,7,149,227,89
-    PUSHBUTTON      "",IDC_ADVANCED,15,148,14,10,BS_ICON
+    PUSHBUTTON      "",IDC_ADVANCED,220,148,14,10,BS_ICON
     CONTROL         "Check device for bad blocks",IDC_BADBLOCKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,161,112,10
     COMBOBOX        IDC_NBPASSES,128,159,100,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Quick format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,173,121,10
     CONTROL         "Create a bootable disk using",IDC_BOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,185,112,10
-    COMBOBOX        IDC_BOOTTYPE,128,183,75,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "",IDC_SELECT_ISO,207,182,21,14,BS_ICON
+    COMBOBOX        IDC_BOOTTYPE,128,184,75,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "",IDC_SELECT_ISO,207,183,21,14,BS_ICON
     CONTROL         "Standard Windows installation",IDC_WINDOWS_INSTALL,
                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,23,198,205,8
     CONTROL         "Windows To Go",IDC_WINDOWS_TO_GO,"Button",BS_AUTORADIOBUTTON,23,210,205,8
@@ -283,7 +283,7 @@ END
 IDD_DIALOG_RTL DIALOGEX 12, 12, 242, 376
 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
 EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL
-CAPTION "Rufus 2.2.659"
+CAPTION "Rufus 2.2.660"
 FONT 8, "Segoe UI", 400, 0, 0x1
 BEGIN
     LTEXT           "Device",IDS_DEVICE_TXT,9,6,200,8
@@ -295,15 +295,15 @@ BEGIN
     LTEXT           "Cluster size",IDS_CLUSTERSIZE_TXT,9,93,222,10
     COMBOBOX        IDC_CLUSTERSIZE,8,104,226,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     LTEXT           "New volume label",IDS_LABEL_TXT,9,121,222,10
-    EDITTEXT        IDC_LABEL,8,131,226,13,ES_AUTOHSCROLL
+    EDITTEXT        IDC_LABEL,8,131,226,12,ES_AUTOHSCROLL
     GROUPBOX        "Format Options",IDS_FORMAT_OPTIONS_GRP,7,149,227,89
-    PUSHBUTTON      "",IDC_ADVANCED,15,148,14,10,BS_ICON
+    PUSHBUTTON      "",IDC_ADVANCED,220,148,14,10,BS_ICON
     CONTROL         "Check device for bad blocks",IDC_BADBLOCKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,161,112,10
     COMBOBOX        IDC_NBPASSES,128,159,100,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Quick format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,173,121,10
     CONTROL         "Create a bootable disk using",IDC_BOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,185,112,10
-    COMBOBOX        IDC_BOOTTYPE,128,183,75,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "",IDC_SELECT_ISO,207,182,21,14,BS_ICON
+    COMBOBOX        IDC_BOOTTYPE,128,184,75,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "",IDC_SELECT_ISO,207,183,21,14,BS_ICON
     CONTROL         "Standard Windows installation",IDC_WINDOWS_INSTALL,
                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,23,198,205,8
     CONTROL         "Windows To Go",IDC_WINDOWS_TO_GO,"Button",BS_AUTORADIOBUTTON,23,210,205,8
@@ -415,7 +415,7 @@ END
 IDD_DIALOG_RTL_XP DIALOGEX 12, 12, 242, 376
 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
 EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL
-CAPTION "Rufus 2.2.659"
+CAPTION "Rufus 2.2.660"
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
 BEGIN
     LTEXT           "Device",IDS_DEVICE_TXT,9,6,200,8
@@ -427,15 +427,15 @@ BEGIN
     LTEXT           "Cluster size",IDS_CLUSTERSIZE_TXT,9,93,222,10
     COMBOBOX        IDC_CLUSTERSIZE,8,104,226,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     LTEXT           "New volume label",IDS_LABEL_TXT,9,121,222,10
-    EDITTEXT        IDC_LABEL,8,131,226,13,ES_AUTOHSCROLL
+    EDITTEXT        IDC_LABEL,8,131,226,12,ES_AUTOHSCROLL
     GROUPBOX        "Format Options",IDS_FORMAT_OPTIONS_GRP,7,149,227,89
-    PUSHBUTTON      "",IDC_ADVANCED,15,148,14,10,BS_ICON
+    PUSHBUTTON      "",IDC_ADVANCED,220,148,14,10,BS_ICON
     CONTROL         "Check device for bad blocks",IDC_BADBLOCKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,161,112,10
     COMBOBOX        IDC_NBPASSES,128,159,100,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Quick format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,173,121,10
     CONTROL         "Create a bootable disk using",IDC_BOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,185,112,10
-    COMBOBOX        IDC_BOOTTYPE,128,183,75,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "",IDC_SELECT_ISO,207,182,21,14,BS_ICON
+    COMBOBOX        IDC_BOOTTYPE,128,184,75,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "",IDC_SELECT_ISO,207,183,21,14,BS_ICON
     CONTROL         "Standard Windows installation",IDC_WINDOWS_INSTALL,
                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,23,198,205,8
     CONTROL         "Windows To Go",IDC_WINDOWS_TO_GO,"Button",BS_AUTORADIOBUTTON,23,210,205,8
@@ -671,8 +671,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,2,659,0
- PRODUCTVERSION 2,2,659,0
+ FILEVERSION 2,2,660,0
+ PRODUCTVERSION 2,2,660,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -689,13 +689,13 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
             VALUE "FileDescription", "Rufus"
-            VALUE "FileVersion", "2.2.659"
+            VALUE "FileVersion", "2.2.660"
             VALUE "InternalName", "Rufus"
             VALUE "LegalCopyright", "� 2011-2015 Pete Batard (GPL v3)"
             VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
             VALUE "OriginalFilename", "rufus.exe"
             VALUE "ProductName", "Rufus"
-            VALUE "ProductVersion", "2.2.659"
+            VALUE "ProductVersion", "2.2.660"
         END
     END
     BLOCK "VarFileInfo"
diff --git a/src/stdlg.c b/src/stdlg.c
index 5ce68387..7ccc2b62 100644
--- a/src/stdlg.c
+++ b/src/stdlg.c
@@ -61,7 +61,7 @@ static const SETTEXTEX friggin_microsoft_unicode_amateurs = {ST_DEFAULT, CP_UTF8
 static BOOL notification_is_question;
 static const notification_info* notification_more_info;
 static BOOL settings_commcheck = FALSE;
-static WNDPROC original_wndproc = NULL;
+static WNDPROC update_original_proc = NULL;
 
 /*
  * We need a sub-callback to read the content of the edit box on exit and update
@@ -405,7 +405,7 @@ void CreateStatusBar(void)
 
 	// Create the status bar.
 	hStatus = CreateWindowEx(0, STATUSCLASSNAME, NULL, WS_CHILD | WS_VISIBLE,
-		0, 0, 0, 0, hMainDialog, (HMENU)IDC_STATUS,  hMainInstance, NULL);
+		0, 0, 0, 0, hMainDialog, (HMENU)IDC_STATUS, hMainInstance, NULL);
 
 	// Create 2 status areas
 	GetClientRect(hMainDialog, &rect);
@@ -1165,7 +1165,7 @@ static void CreateStaticFont(HDC dc, HFONT* hyperlink_font) {
  * Work around the limitations of edit control, to display a hand cursor for hyperlinks
  * NB: The LTEXT control must have SS_NOTIFY attribute for this to work
  */
-INT_PTR CALLBACK subclass_callback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+INT_PTR CALLBACK update_subclass_callback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 {
 	switch (message)
 	{
@@ -1176,7 +1176,7 @@ INT_PTR CALLBACK subclass_callback(HWND hDlg, UINT message, WPARAM wParam, LPARA
 		}
 		break;
 	}
-	return CallWindowProc(original_wndproc, hDlg, message, wParam, lParam);
+	return CallWindowProc(update_original_proc, hDlg, message, wParam, lParam);
 }
 
 /*
@@ -1201,7 +1201,7 @@ INT_PTR CALLBACK NewVersionCallback(HWND hDlg, UINT message, WPARAM wParam, LPAR
 		SetTitleBarIcon(hDlg);
 		CenterDialog(hDlg);
 		// Subclass the callback so that we can change the cursor
-		original_wndproc = (WNDPROC)SetWindowLongPtr(hDlg, GWLP_WNDPROC, (LONG_PTR)subclass_callback);
+		update_original_proc = (WNDPROC)SetWindowLongPtr(hDlg, GWLP_WNDPROC, (LONG_PTR)update_subclass_callback);
 		hNotes = GetDlgItem(hDlg, IDC_RELEASE_NOTES);
 		SendMessage(hNotes, EM_AUTOURLDETECT, 1, 0);
 		SendMessageA(hNotes, EM_SETTEXTEX, (WPARAM)&friggin_microsoft_unicode_amateurs, (LPARAM)update.release_notes);
@@ -1351,7 +1351,7 @@ SIZE GetTextSize(HWND hCtrl)
 	int len;
 	HFONT hFont;
 
-	// Compute the size of the text of the format group
+	// Compute the size of the text
 	hDC = GetDC(hCtrl);
 	if (hDC == NULL)
 		goto out;