### Eclipse Workspace Patch 1.0 #P org.eclipse.swt Index: Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java,v retrieving revision 1.425 diff -u -r1.425 Tree.java --- Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java 15 May 2007 16:15:26 -0000 1.425 +++ Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java 16 May 2007 01:23:31 -0000 @@ -869,15 +869,27 @@ HDITEM hdItem = new HDITEM (); hdItem.mask = OS.HDI_WIDTH; OS.SendMessage (hwndHeader, OS.HDM_GETITEM, 0, hdItem); - RECT rect = new RECT (); - OS.SetRect (rect, nmcd.left + hdItem.cxy, nmcd.top, nmcd.right, nmcd.bottom); - OS.DrawEdge (hDC, rect, OS.BDR_SUNKENINNER, OS.BF_BOTTOM); + //RECT rect = new RECT (); + //OS.SetRect (rect, nmcd.left + hdItem.cxy, nmcd.top, nmcd.right, nmcd.bottom); + //OS.DrawEdge (hDC, rect, OS.BDR_SUNKENINNER, OS.BF_BOTTOM); + int newPen = OS.CreatePen (OS.PS_SOLID, 1, OS.GetSysColor (OS.COLOR_3DFACE)); + int oldPen = OS.SelectObject (hDC, newPen); + int [] points = {nmcd.left+hdItem.cxy, nmcd.bottom-1, nmcd.right, nmcd.bottom-1}; + OS.Polyline (hDC, points, points.length / 2); + OS.SelectObject (hDC, oldPen); + OS.DeleteObject (newPen); } } } - RECT rect = new RECT (); - OS.SetRect (rect, nmcd.left, nmcd.top, nmcd.right, nmcd.bottom); - OS.DrawEdge (hDC, rect, OS.BDR_SUNKENINNER, OS.BF_BOTTOM); + //RECT rect = new RECT (); + //OS.SetRect (rect, nmcd.left, nmcd.top, nmcd.right, nmcd.bottom); + //OS.DrawEdge (hDC, rect, OS.BDR_SUNKENINNER, OS.BF_BOTTOM); + int newPen = OS.CreatePen (OS.PS_SOLID, 1, OS.GetSysColor (OS.COLOR_3DFACE)); + int oldPen = OS.SelectObject (hDC, newPen); + int [] points = {nmcd.left, nmcd.bottom-1, nmcd.right, nmcd.bottom-1}; + OS.Polyline (hDC, points, points.length / 2); + OS.SelectObject (hDC, oldPen); + OS.DeleteObject (newPen); } if (!explorerTheme) { if (handle == OS.GetFocus ()) { @@ -988,9 +1000,15 @@ if (OS.IsWindowVisible (handle) && nmcd.left < nmcd.right && nmcd.top < nmcd.bottom) { if (hFont != -1) OS.SelectObject (hDC, hFont); if (linesVisible) { - RECT rect = new RECT (); - OS.SetRect (rect, nmcd.left, nmcd.top, nmcd.right, nmcd.bottom); - OS.DrawEdge (hDC, rect, OS.BDR_SUNKENINNER, OS.BF_BOTTOM); + //RECT rect = new RECT (); + //OS.SetRect (rect, nmcd.left, nmcd.top, nmcd.right, nmcd.bottom); + //OS.DrawEdge (hDC, rect, OS.BDR_SUNKENINNER, OS.BF_BOTTOM); + int newPen = OS.CreatePen (OS.PS_SOLID, 1, OS.GetSysColor (OS.COLOR_3DFACE)); + int oldPen = OS.SelectObject (hDC, newPen); + int [] points = {nmcd.left, nmcd.bottom-1, nmcd.right, nmcd.bottom-1}; + OS.Polyline (hDC, points, points.length / 2); + OS.SelectObject (hDC, oldPen); + OS.DeleteObject (newPen); } //TODO - BUG - measure and erase sent when first column is clipped if (hooks (SWT.MeasureItem)) { @@ -1356,17 +1374,23 @@ int hDC = nmcd.hdc; if (hwndHeader != 0) { int x = 0; - RECT rect = new RECT (); + //RECT rect = new RECT (); HDITEM hdItem = new HDITEM (); hdItem.mask = OS.HDI_WIDTH; int count = OS.SendMessage (hwndHeader, OS.HDM_GETITEMCOUNT, 0, 0); + int newPen = OS.CreatePen (OS.PS_SOLID, 1, OS.GetSysColor (OS.COLOR_3DFACE)); + int oldPen = OS.SelectObject (hDC, newPen); for (int i=0; i