[commit] r2760 - trunk/SDK/DecoratorLib

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Fri Oct 19 13:41:51 CDT 2018


Author: ksmyth
Date: Fri Oct 19 13:41:51 2018
New Revision: 2760

Log:
DecoratorLib: fix resize popup on high DPI displays

Modified:
   trunk/SDK/DecoratorLib/ResizeLogic.cpp
   trunk/SDK/DecoratorLib/SizeTrackerDialog.cpp

Modified: trunk/SDK/DecoratorLib/ResizeLogic.cpp
==============================================================================
--- trunk/SDK/DecoratorLib/ResizeLogic.cpp	Fri Oct 19 13:41:47 2018	(r2759)
+++ trunk/SDK/DecoratorLib/ResizeLogic.cpp	Fri Oct 19 13:41:51 2018	(r2760)
@@ -253,14 +253,19 @@
 					cWnd = CWnd::FromHandle(m_parentWnd);
 				}
 
+				int logPixelsX = GetDeviceCaps(transformHDC, LOGPIXELSX);
+				int logPixelsY = GetDeviceCaps(transformHDC, LOGPIXELSX);
+				int width = MulDiv(SizeTrackerWidth, logPixelsX, 96);
+				int height = MulDiv(SizeTrackerHeight, logPixelsY, 96);
 				CDialogTemplate dlgTemplate(_T(""),
 											WS_CHILD | WS_VISIBLE | WS_BORDER,	// Window Styles
 											0,	// Extended Window Styles
-											0, 0, SizeTrackerWidth, SizeTrackerHeight);
-				dlgTemplate.AddStatic(_T("EDT"), WS_VISIBLE, 0, 0, 0, SizeTrackerWidth - 1, SizeTrackerHeight, IDC_INPLACETEXTEDIT);
+											0, 0, width, height);
+				dlgTemplate.AddStatic(_T("EDT"), WS_VISIBLE, 0, 0, 0, width, height, IDC_INPLACETEXTEDIT);
 
 				sizeTrackerDlg = new CSizeTrackerDialog;
-				sizeTrackerDlg->SetParameters(m_targetLocation, point, resizeTypeCandidate, cWnd, isPermanentCWnd, transformHDC);
+				CRect location(m_targetLocation.left, m_targetLocation.top, m_targetLocation.left + width, m_targetLocation.top + height);
+				sizeTrackerDlg->SetParameters(location, point, resizeTypeCandidate, cWnd, isPermanentCWnd, transformHDC);
 				BOOL success = sizeTrackerDlg->CreateIndirect(dlgTemplate, cWnd);
 				if (success != FALSE)
 					success = sizeTrackerDlg->ShowWindow(SW_SHOWNORMAL);

Modified: trunk/SDK/DecoratorLib/SizeTrackerDialog.cpp
==============================================================================
--- trunk/SDK/DecoratorLib/SizeTrackerDialog.cpp	Fri Oct 19 13:41:47 2018	(r2759)
+++ trunk/SDK/DecoratorLib/SizeTrackerDialog.cpp	Fri Oct 19 13:41:51 2018	(r2760)
@@ -57,7 +57,6 @@
 	TRACE1("CONSTRUCT: %X\n", m_staticWnd);
 
 	AdjustPositionAndText(m_mouseClick, m_initialRect);
-	m_staticWnd->MoveWindow(0, 0, SizeTrackerWidth - 1, SizeTrackerHeight);
 
 	ShowWindow(SW_SHOWNORMAL);	// For safety
 	SetFocus();					// For safety
@@ -88,12 +87,12 @@
 	switch(m_resizeType) {
 		case RightEdgeResize:			dx = SizeTrackerMargin, dy = 0;																	break;
 		case BottomEdgeResize:			dx = 0, dy = SizeTrackerMargin;																	break;
-		case LeftEdgeResize:			dx = -(SizeTrackerWidth + SizeTrackerMargin), dy = 0;											break;
-		case TopEdgeResize:				dx = 0, dy = -(SizeTrackerHeight + SizeTrackerMargin);											break;
-		case TopLeftCornerResize:		dx = -(SizeTrackerWidth + SizeTrackerMargin), dy = -(SizeTrackerHeight + SizeTrackerMargin);	break;
-		case TopRightCornerResize:		dx = SizeTrackerMargin, dy = -(SizeTrackerHeight + SizeTrackerMargin);							break;
+		case LeftEdgeResize:			dx = -(m_initialRect.Width() + SizeTrackerMargin), dy = 0;											break;
+		case TopEdgeResize:				dx = 0, dy = -(m_initialRect.Height() + SizeTrackerMargin);											break;
+		case TopLeftCornerResize:		dx = -(m_initialRect.Width() + SizeTrackerMargin), dy = -(m_initialRect.Height() + SizeTrackerMargin);	break;
+		case TopRightCornerResize:		dx = SizeTrackerMargin, dy = -(m_initialRect.Height() + SizeTrackerMargin);							break;
 		case BottomRightCornerResize:	dx = SizeTrackerMargin, dy = SizeTrackerMargin;													break;
-		case BottomLeftCornerResize:	dx = -(SizeTrackerWidth + SizeTrackerMargin), dy = SizeTrackerMargin;							break;
+		case BottomLeftCornerResize:	dx = -(m_initialRect.Width() + SizeTrackerMargin), dy = SizeTrackerMargin;							break;
 	}
 
 	CPoint offsetted = pt;
@@ -122,7 +121,7 @@
 
 	m_staticWnd->SetWindowText(GetStrToDisplay(location));
 	CPoint adjPos = GetAdjustedPosition(point);
-	MoveWindow(adjPos.x, adjPos.y, SizeTrackerWidth, SizeTrackerHeight);
+	MoveWindow(adjPos.x, adjPos.y, m_initialRect.Width(), m_initialRect.Height());
 }
 
 }


More information about the gme-commit mailing list