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"?> | ||||
| <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> | ||||
|     <dependentAssembly> | ||||
|       <assemblyIdentity | ||||
|  |  | |||
							
								
								
									
										34
									
								
								src/rufus.c
									
										
									
									
									
								
							
							
						
						
									
										34
									
								
								src/rufus.c
									
										
									
									
									
								
							|  | @ -1352,7 +1352,7 @@ void InitDialog(HWND hDlg) | |||
| { | ||||
| 	HINSTANCE hDllInst; | ||||
| 	HDC hDC; | ||||
| 	int i, i16; | ||||
| 	int i, i16, s16, s32; | ||||
| 	HICON hSmallIcon, hBigIcon; | ||||
| 	char tmp[128], *token; | ||||
| 
 | ||||
|  | @ -1379,11 +1379,30 @@ void InitDialog(HWND hDlg) | |||
| 	hDC = GetDC(hDlg); | ||||
| 	fScale = GetDeviceCaps(hDC, LOGPIXELSX) / 96.0f; | ||||
| 	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
 | ||||
| 	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); | ||||
| 	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); | ||||
| 	GetWindowTextA(hDlg, tmp, sizeof(tmp)); | ||||
| 	// 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)
 | ||||
| 	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) { | ||||
| 		hIconDown = (HICON)LoadImage(hDllInst, MAKEINTRESOURCE(16750), IMAGE_ICON, i16, i16, LR_DEFAULTCOLOR|LR_SHARED); | ||||
| 		hIconUp = (HICON)LoadImage(hDllInst, MAKEINTRESOURCE(16749), 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, s16, s16, LR_DEFAULTCOLOR|LR_SHARED); | ||||
| 	} else { | ||||
| 		hIconDown = (HICON)LoadImage(hMainInstance, MAKEINTRESOURCE(IDI_DOWN), 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; | ||||
| 				nHeight = DialogRect.bottom - DialogRect.top; | ||||
| 				GetWindowRect(hDlg, &DialogRect); | ||||
| 				// TODO: adjust for high DPI
 | ||||
| 				Point.x = min(DialogRect.right + 10, DesktopRect.right - nWidth); | ||||
| 				Point.x = min(DialogRect.right + GetSystemMetrics(SM_CXSIZEFRAME)+(int)(2.0f * fScale), DesktopRect.right - nWidth); | ||||
| 				Point.y = max(DialogRect.top, DesktopRect.top - nHeight); | ||||
| 				MoveWindow(hLogDlg, Point.x, Point.y, nWidth, nHeight, 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 | ||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||
| EXSTYLE WS_EX_APPWINDOW | ||||
| CAPTION "Rufus v1.2.0.181" | ||||
| CAPTION "Rufus v1.2.0.182" | ||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||
| BEGIN | ||||
|     DEFPUSHBUTTON   "Start",IDC_START,94,278,50,14 | ||||
|  | @ -77,7 +77,7 @@ BEGIN | |||
|     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, | ||||
|                     "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 | ||||
|     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 | ||||
|  | @ -123,9 +123,9 @@ CAPTION "Log" | |||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||
| BEGIN | ||||
|     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      "Save Log",IDC_LOG_SAVE,259,259,50,14 | ||||
|     PUSHBUTTON      "Close",IDCANCEL,314,259,50,14 | ||||
|     PUSHBUTTON      "Clear Log",IDC_LOG_CLEAR,198,259,50,14 | ||||
|     PUSHBUTTON      "Save Log",IDC_LOG_SAVE,253,259,50,14 | ||||
|     PUSHBUTTON      "Close Log",IDCANCEL,308,259,50,14 | ||||
| END | ||||
| 
 | ||||
| 
 | ||||
|  | @ -237,8 +237,8 @@ END | |||
| // | ||||
| 
 | ||||
| VS_VERSION_INFO VERSIONINFO | ||||
|  FILEVERSION 1,2,0,181 | ||||
|  PRODUCTVERSION 1,2,0,181 | ||||
|  FILEVERSION 1,2,0,182 | ||||
|  PRODUCTVERSION 1,2,0,182 | ||||
|  FILEFLAGSMASK 0x3fL | ||||
| #ifdef _DEBUG | ||||
|  FILEFLAGS 0x1L | ||||
|  | @ -255,13 +255,13 @@ BEGIN | |||
|         BEGIN | ||||
|             VALUE "CompanyName", "akeo.ie" | ||||
|             VALUE "FileDescription", "Rufus" | ||||
|             VALUE "FileVersion", "1.2.0.181" | ||||
|             VALUE "FileVersion", "1.2.0.182" | ||||
|             VALUE "InternalName", "Rufus" | ||||
|             VALUE "LegalCopyright", "© 2011 Pete Batard (GPL v3)" | ||||
|             VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" | ||||
|             VALUE "OriginalFilename", "rufus.exe" | ||||
|             VALUE "ProductName", "Rufus" | ||||
|             VALUE "ProductVersion", "1.2.0.181" | ||||
|             VALUE "ProductVersion", "1.2.0.182" | ||||
|         END | ||||
|     END | ||||
|     BLOCK "VarFileInfo" | ||||
|  |  | |||
|  | @ -1051,10 +1051,13 @@ const IID my_CLSID_TaskbarList = | |||
| 
 | ||||
| static my_ITaskbarList3* ptbl = NULL; | ||||
| 
 | ||||
| // Create a taskbar icon progressbar
 | ||||
| BOOL CreateTaskbarList(void) | ||||
| { | ||||
| 	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); | ||||
| 	if (FAILED(hr)) { | ||||
| 		uprintf("CoCreateInstance for TaskbarList failed: error %X\n", hr); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue