Mercurial > projects > dwt-win
changeset 144:35669d0d0dc5
TreeDropTargetEffect
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 13 Feb 2008 16:35:16 +0100 |
parents | 45172b7a0ee6 |
children | 82d3cef3912d |
files | dwt/dnd/TreeDropTargetEffect.d |
diffstat | 1 files changed, 29 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/dwt/dnd/TreeDropTargetEffect.d Wed Feb 13 16:30:21 2008 +0100 +++ b/dwt/dnd/TreeDropTargetEffect.d Wed Feb 13 16:35:16 2008 +0100 @@ -19,6 +19,9 @@ import dwt.dnd.DropTargetEffect; import dwt.dnd.DropTargetEvent; +import dwt.dnd.DND; + +import dwt.dwthelper.utils; /** * This class provides a default drag under effect (eg. select, insert, scroll and expand) @@ -120,14 +123,14 @@ */ public void dragLeave(DropTargetEvent event) { Tree tree = cast(Tree) control; - int handle = tree.handle; + auto handle = tree.handle; if (dropIndex !is -1) { - TVITEM tvItem = new TVITEM (); - tvItem.hItem = dropIndex; + TVITEM tvItem; + tvItem.hItem = cast(HANDLE) dropIndex; tvItem.mask = OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_DROPHILITED; tvItem.state = 0; - OS.SendMessage (handle, OS.TVM_SETITEM, 0, tvItem); + OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); dropIndex = -1; } if (insertItem !is null) { @@ -161,14 +164,14 @@ public void dragOver(DropTargetEvent event) { Tree tree = cast(Tree) getControl(); int effect = checkEffect(event.feedback); - int handle = tree.handle; + auto handle = tree.handle; Point coordinates = new Point(event.x, event.y); coordinates = tree.toControl(coordinates); - TVHITTESTINFO lpht = new TVHITTESTINFO (); - lpht.x = coordinates.x; - lpht.y = coordinates.y; - OS.SendMessage (handle, OS.TVM_HITTEST, 0, lpht); - int hItem = lpht.hItem; + TVHITTESTINFO lpht; + lpht.pt.x = coordinates.x; + lpht.pt.y = coordinates.y; + OS.SendMessage (handle, OS.TVM_HITTEST, 0, &lpht); + int hItem = cast(int) lpht.hItem; if ((effect & DND.FEEDBACK_SCROLL) is 0) { scrollBeginTime = 0; scrollIndex = -1; @@ -181,17 +184,17 @@ if (hItem is topItem) { scroll = nextItem !is 0; } else { - RECT itemRect = new RECT (); + RECT itemRect; itemRect.left = nextItem; - if (OS.SendMessage (handle, OS.TVM_GETITEMRECT, 1, itemRect) !is 0) { - RECT rect = new RECT (); - OS.GetClientRect (handle, rect); - POINT pt = new POINT (); + if (OS.SendMessage (handle, OS.TVM_GETITEMRECT, 1, &itemRect) !is 0) { + RECT rect; + OS.GetClientRect (handle, &rect); + POINT pt; pt.x = itemRect.left; pt.y = itemRect.top; - if (OS.PtInRect (rect, pt)) { + if (OS.PtInRect (&rect, pt)) { pt.y = itemRect.bottom; - if (OS.PtInRect (rect, pt)) scroll = false; + if (OS.PtInRect (&rect, pt)) scroll = false; } } } @@ -214,10 +217,10 @@ if (hItem !is -1 && expandIndex is hItem && expandBeginTime !is 0) { if (System.currentTimeMillis() >= expandBeginTime) { if (OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem) !is 0) { - TVITEM tvItem = new TVITEM (); - tvItem.hItem = hItem; + TVITEM tvItem; + tvItem.hItem = cast(HANDLE) hItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; - OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem); + OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); if ((tvItem.state & OS.TVIS_EXPANDED) is 0) { OS.SendMessage (handle, OS.TVM_EXPAND, OS.TVE_EXPAND, hItem); tree.redraw(); @@ -232,21 +235,21 @@ } } if (dropIndex !is -1 && (dropIndex !is hItem || (effect & DND.FEEDBACK_SELECT) is 0)) { - TVITEM tvItem = new TVITEM (); - tvItem.hItem = dropIndex; + TVITEM tvItem; + tvItem.hItem = cast(HANDLE) dropIndex; tvItem.mask = OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_DROPHILITED; tvItem.state = 0; - OS.SendMessage (handle, OS.TVM_SETITEM, 0, tvItem); + OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); dropIndex = -1; } if (hItem !is -1 && hItem !is dropIndex && (effect & DND.FEEDBACK_SELECT) !is 0) { - TVITEM tvItem = new TVITEM (); - tvItem.hItem = hItem; + TVITEM tvItem; + tvItem.hItem = cast(HANDLE) hItem; tvItem.mask = OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_DROPHILITED; tvItem.state = OS.TVIS_DROPHILITED; - OS.SendMessage (handle, OS.TVM_SETITEM, 0, tvItem); + OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); dropIndex = hItem; } if ((effect & DND.FEEDBACK_INSERT_BEFORE) !is 0 || (effect & DND.FEEDBACK_INSERT_AFTER) !is 0) {