mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[ui] adjust for high DPI
* also remove TaskbarList message on Vista and earlier
This commit is contained in:
		
							parent
							
								
									5e448f9523
								
							
						
					
					
						commit
						f77803cc78
					
				
					 4 changed files with 45 additions and 19 deletions
				
			
		|  | @ -1,5 +1,10 @@ | ||||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes"?> | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||||||
| <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> | <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" > | ||||||
|  |   <asmv3:application> | ||||||
|  |     <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> | ||||||
|  |       <dpiAware>true</dpiAware> | ||||||
|  |     </asmv3:windowsSettings> | ||||||
|  |   </asmv3:application> | ||||||
|   <dependency> |   <dependency> | ||||||
|     <dependentAssembly> |     <dependentAssembly> | ||||||
|       <assemblyIdentity |       <assemblyIdentity | ||||||
|  |  | ||||||
							
								
								
									
										34
									
								
								src/rufus.c
									
										
									
									
									
								
							
							
						
						
									
										34
									
								
								src/rufus.c
									
										
									
									
									
								
							|  | @ -1352,7 +1352,7 @@ void InitDialog(HWND hDlg) | ||||||
| { | { | ||||||
| 	HINSTANCE hDllInst; | 	HINSTANCE hDllInst; | ||||||
| 	HDC hDC; | 	HDC hDC; | ||||||
| 	int i, i16; | 	int i, i16, s16, s32; | ||||||
| 	HICON hSmallIcon, hBigIcon; | 	HICON hSmallIcon, hBigIcon; | ||||||
| 	char tmp[128], *token; | 	char tmp[128], *token; | ||||||
| 
 | 
 | ||||||
|  | @ -1379,11 +1379,30 @@ void InitDialog(HWND hDlg) | ||||||
| 	hDC = GetDC(hDlg); | 	hDC = GetDC(hDlg); | ||||||
| 	fScale = GetDeviceCaps(hDC, LOGPIXELSX) / 96.0f; | 	fScale = GetDeviceCaps(hDC, LOGPIXELSX) / 96.0f; | ||||||
| 	ReleaseDC(hDlg, hDC); | 	ReleaseDC(hDlg, hDC); | ||||||
|  | 	// Adjust icon size lookup
 | ||||||
|  | 	s16 = i16; | ||||||
|  | 	s32 = (int)(32.0f*fScale); | ||||||
|  | 	if (s16 >= 54) | ||||||
|  | 		s16 = 64; | ||||||
|  | 	else if (s16 >= 40) | ||||||
|  | 		s16 = 48; | ||||||
|  | 	else if (s16 >= 28) | ||||||
|  | 		s16 = 32; | ||||||
|  | 	else if (s16 >= 20) | ||||||
|  | 		s16 = 24; | ||||||
|  | 	if (s32 >= 54) | ||||||
|  | 		s32 = 64; | ||||||
|  | 	else if (s32 >= 40) | ||||||
|  | 		s32 = 48; | ||||||
|  | 	else if (s32 >= 28) | ||||||
|  | 		s32 = 32; | ||||||
|  | 	else if (s32 >= 20) | ||||||
|  | 		s32 = 24; | ||||||
| 
 | 
 | ||||||
| 	// Create the title bar icon
 | 	// Create the title bar icon
 | ||||||
| 	hSmallIcon = (HICON)LoadImage(hMainInstance, MAKEINTRESOURCE(IDI_ICON), IMAGE_ICON, 16, 16, 0); | 	hSmallIcon = (HICON)LoadImage(hMainInstance, MAKEINTRESOURCE(IDI_ICON), IMAGE_ICON, s16, s16, 0); | ||||||
| 	SendMessage (hDlg, WM_SETICON, ICON_SMALL, (LPARAM)hSmallIcon); | 	SendMessage (hDlg, WM_SETICON, ICON_SMALL, (LPARAM)hSmallIcon); | ||||||
| 	hBigIcon = (HICON)LoadImage(hMainInstance, MAKEINTRESOURCE(IDI_ICON), IMAGE_ICON, 32, 32, 0); | 	hBigIcon = (HICON)LoadImage(hMainInstance, MAKEINTRESOURCE(IDI_ICON), IMAGE_ICON, s32, s32, 0); | ||||||
| 	SendMessage (hDlg, WM_SETICON, ICON_BIG, (LPARAM)hBigIcon); | 	SendMessage (hDlg, WM_SETICON, ICON_BIG, (LPARAM)hBigIcon); | ||||||
| 	GetWindowTextA(hDlg, tmp, sizeof(tmp)); | 	GetWindowTextA(hDlg, tmp, sizeof(tmp)); | ||||||
| 	// Count of Microsoft for making it more attractive to read a
 | 	// Count of Microsoft for making it more attractive to read a
 | ||||||
|  | @ -1430,10 +1449,10 @@ void InitDialog(HWND hDlg) | ||||||
| 
 | 
 | ||||||
| 	// Load system icons (NB: Use the excellent http://www.nirsoft.net/utils/iconsext.html to find icon IDs)
 | 	// Load system icons (NB: Use the excellent http://www.nirsoft.net/utils/iconsext.html to find icon IDs)
 | ||||||
| 	hDllInst = LoadLibraryA("shell32.dll"); | 	hDllInst = LoadLibraryA("shell32.dll"); | ||||||
| 	hIconDisc = (HICON)LoadImage(hDllInst, MAKEINTRESOURCE(12), IMAGE_ICON, i16, i16, LR_DEFAULTCOLOR|LR_SHARED); | 	hIconDisc = (HICON)LoadImage(hDllInst, MAKEINTRESOURCE(12), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR|LR_SHARED); | ||||||
| 	if (nWindowsVersion >= WINDOWS_VISTA) { | 	if (nWindowsVersion >= WINDOWS_VISTA) { | ||||||
| 		hIconDown = (HICON)LoadImage(hDllInst, MAKEINTRESOURCE(16750), IMAGE_ICON, i16, i16, LR_DEFAULTCOLOR|LR_SHARED); | 		hIconDown = (HICON)LoadImage(hDllInst, MAKEINTRESOURCE(16750), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR|LR_SHARED); | ||||||
| 		hIconUp = (HICON)LoadImage(hDllInst, MAKEINTRESOURCE(16749), IMAGE_ICON, i16, i16, LR_DEFAULTCOLOR|LR_SHARED); | 		hIconUp = (HICON)LoadImage(hDllInst, MAKEINTRESOURCE(16749), IMAGE_ICON, s16, s16, LR_DEFAULTCOLOR|LR_SHARED); | ||||||
| 	} else { | 	} else { | ||||||
| 		hIconDown = (HICON)LoadImage(hMainInstance, MAKEINTRESOURCE(IDI_DOWN), IMAGE_ICON, 16, 16, 0); | 		hIconDown = (HICON)LoadImage(hMainInstance, MAKEINTRESOURCE(IDI_DOWN), IMAGE_ICON, 16, 16, 0); | ||||||
| 		hIconUp = (HICON)LoadImage(hMainInstance, MAKEINTRESOURCE(IDI_UP), IMAGE_ICON, 16, 16, 0); | 		hIconUp = (HICON)LoadImage(hMainInstance, MAKEINTRESOURCE(IDI_UP), IMAGE_ICON, 16, 16, 0); | ||||||
|  | @ -1577,8 +1596,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 				nWidth = DialogRect.right - DialogRect.left; | 				nWidth = DialogRect.right - DialogRect.left; | ||||||
| 				nHeight = DialogRect.bottom - DialogRect.top; | 				nHeight = DialogRect.bottom - DialogRect.top; | ||||||
| 				GetWindowRect(hDlg, &DialogRect); | 				GetWindowRect(hDlg, &DialogRect); | ||||||
| 				// TODO: adjust for high DPI
 | 				Point.x = min(DialogRect.right + GetSystemMetrics(SM_CXSIZEFRAME)+(int)(2.0f * fScale), DesktopRect.right - nWidth); | ||||||
| 				Point.x = min(DialogRect.right + 10, DesktopRect.right - nWidth); |  | ||||||
| 				Point.y = max(DialogRect.top, DesktopRect.top - nHeight); | 				Point.y = max(DialogRect.top, DesktopRect.top - nHeight); | ||||||
| 				MoveWindow(hLogDlg, Point.x, Point.y, nWidth, nHeight, FALSE); | 				MoveWindow(hLogDlg, Point.x, Point.y, nWidth, nHeight, FALSE); | ||||||
| 				first_log_display = FALSE; | 				first_log_display = FALSE; | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -30,7 +30,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL | ||||||
| IDD_DIALOG DIALOGEX 12, 12, 206, 316 | IDD_DIALOG DIALOGEX 12, 12, 206, 316 | ||||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||||
| EXSTYLE WS_EX_APPWINDOW | EXSTYLE WS_EX_APPWINDOW | ||||||
| CAPTION "Rufus v1.2.0.181" | CAPTION "Rufus v1.2.0.182" | ||||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,94,278,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,94,278,50,14 | ||||||
|  | @ -77,7 +77,7 @@ BEGIN | ||||||
|     DEFPUSHBUTTON   "OK",IDOK,231,175,50,14,WS_GROUP |     DEFPUSHBUTTON   "OK",IDOK,231,175,50,14,WS_GROUP | ||||||
|     CONTROL         "<a href=""http://rufus.akeo.ie"">http://rufus.akeo.ie</a>",IDC_ABOUT_RUFUS_URL, |     CONTROL         "<a href=""http://rufus.akeo.ie"">http://rufus.akeo.ie</a>",IDC_ABOUT_RUFUS_URL, | ||||||
|                     "SysLink",WS_TABSTOP,46,47,114,9 |                     "SysLink",WS_TABSTOP,46,47,114,9 | ||||||
|     LTEXT           "Version 1.2.0 (Build 181)",IDC_STATIC,46,19,78,8 |     LTEXT           "Version 1.2.0 (Build 182)",IDC_STATIC,46,19,78,8 | ||||||
|     PUSHBUTTON      "License...",IDC_ABOUT_LICENSE,46,175,50,14,WS_GROUP |     PUSHBUTTON      "License...",IDC_ABOUT_LICENSE,46,175,50,14,WS_GROUP | ||||||
|     EDITTEXT        IDC_ABOUT_COPYRIGHTS,46,107,235,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL |     EDITTEXT        IDC_ABOUT_COPYRIGHTS,46,107,235,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL | ||||||
|     LTEXT           "Report bugs or request enhancements at:",IDC_STATIC,46,66,187,8 |     LTEXT           "Report bugs or request enhancements at:",IDC_STATIC,46,66,187,8 | ||||||
|  | @ -123,9 +123,9 @@ CAPTION "Log" | ||||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     EDITTEXT        IDC_LOG_EDIT,0,0,366,252,ES_MULTILINE | ES_READONLY | NOT WS_BORDER | WS_VSCROLL,WS_EX_STATICEDGE |     EDITTEXT        IDC_LOG_EDIT,0,0,366,252,ES_MULTILINE | ES_READONLY | NOT WS_BORDER | WS_VSCROLL,WS_EX_STATICEDGE | ||||||
|     PUSHBUTTON      "Clear Log",IDC_LOG_CLEAR,204,259,50,14 |     PUSHBUTTON      "Clear Log",IDC_LOG_CLEAR,198,259,50,14 | ||||||
|     PUSHBUTTON      "Save Log",IDC_LOG_SAVE,259,259,50,14 |     PUSHBUTTON      "Save Log",IDC_LOG_SAVE,253,259,50,14 | ||||||
|     PUSHBUTTON      "Close",IDCANCEL,314,259,50,14 |     PUSHBUTTON      "Close Log",IDCANCEL,308,259,50,14 | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -237,8 +237,8 @@ END | ||||||
| // | // | ||||||
| 
 | 
 | ||||||
| VS_VERSION_INFO VERSIONINFO | VS_VERSION_INFO VERSIONINFO | ||||||
|  FILEVERSION 1,2,0,181 |  FILEVERSION 1,2,0,182 | ||||||
|  PRODUCTVERSION 1,2,0,181 |  PRODUCTVERSION 1,2,0,182 | ||||||
|  FILEFLAGSMASK 0x3fL |  FILEFLAGSMASK 0x3fL | ||||||
| #ifdef _DEBUG | #ifdef _DEBUG | ||||||
|  FILEFLAGS 0x1L |  FILEFLAGS 0x1L | ||||||
|  | @ -255,13 +255,13 @@ BEGIN | ||||||
|         BEGIN |         BEGIN | ||||||
|             VALUE "CompanyName", "akeo.ie" |             VALUE "CompanyName", "akeo.ie" | ||||||
|             VALUE "FileDescription", "Rufus" |             VALUE "FileDescription", "Rufus" | ||||||
|             VALUE "FileVersion", "1.2.0.181" |             VALUE "FileVersion", "1.2.0.182" | ||||||
|             VALUE "InternalName", "Rufus" |             VALUE "InternalName", "Rufus" | ||||||
|             VALUE "LegalCopyright", "© 2011 Pete Batard (GPL v3)" |             VALUE "LegalCopyright", "© 2011 Pete Batard (GPL v3)" | ||||||
|             VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" |             VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" | ||||||
|             VALUE "OriginalFilename", "rufus.exe" |             VALUE "OriginalFilename", "rufus.exe" | ||||||
|             VALUE "ProductName", "Rufus" |             VALUE "ProductName", "Rufus" | ||||||
|             VALUE "ProductVersion", "1.2.0.181" |             VALUE "ProductVersion", "1.2.0.182" | ||||||
|         END |         END | ||||||
|     END |     END | ||||||
|     BLOCK "VarFileInfo" |     BLOCK "VarFileInfo" | ||||||
|  |  | ||||||
|  | @ -1051,10 +1051,13 @@ const IID my_CLSID_TaskbarList = | ||||||
| 
 | 
 | ||||||
| static my_ITaskbarList3* ptbl = NULL; | static my_ITaskbarList3* ptbl = NULL; | ||||||
| 
 | 
 | ||||||
|  | // Create a taskbar icon progressbar
 | ||||||
| BOOL CreateTaskbarList(void) | BOOL CreateTaskbarList(void) | ||||||
| { | { | ||||||
| 	HRESULT hr; | 	HRESULT hr; | ||||||
| 	// Create the taskbar icon progressbar
 | 	if (nWindowsVersion < WINDOWS_7) | ||||||
|  | 		// Only valid for Windows 7 or later
 | ||||||
|  | 		return FALSE; | ||||||
| 	hr = CoCreateInstance(&my_CLSID_TaskbarList, NULL, CLSCTX_ALL, &my_IID_ITaskbarList3, (LPVOID)&ptbl); | 	hr = CoCreateInstance(&my_CLSID_TaskbarList, NULL, CLSCTX_ALL, &my_IID_ITaskbarList3, (LPVOID)&ptbl); | ||||||
| 	if (FAILED(hr)) { | 	if (FAILED(hr)) { | ||||||
| 		uprintf("CoCreateInstance for TaskbarList failed: error %X\n", hr); | 		uprintf("CoCreateInstance for TaskbarList failed: error %X\n", hr); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue