Mercurial > projects > dwt-win
changeset 147:cf66b1446ffe
TableDropTargetEffect
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 13 Feb 2008 16:59:17 +0100 |
parents | c605bf6c2f48 |
children | 029d0df3f515 8491a1efab40 |
files | dwt/dnd/TableDropTargetEffect.d |
diffstat | 1 files changed, 23 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/dwt/dnd/TableDropTargetEffect.d Wed Feb 13 16:55:45 2008 +0100 +++ b/dwt/dnd/TableDropTargetEffect.d Wed Feb 13 16:59:17 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 and scroll) @@ -109,11 +112,11 @@ */ public void dragLeave(DropTargetEvent event) { Table table = cast(Table) control; - int handle = table.handle; + auto handle = table.handle; if (dropHighlight !is null) { - LVITEM lvItem = new LVITEM (); + LVITEM lvItem; lvItem.stateMask = OS.LVIS_DROPHILITED; - OS.SendMessage(handle, OS.LVM_SETITEMSTATE, -1, lvItem); + OS.SendMessage(handle, OS.LVM_SETITEMSTATE, -1, &lvItem); dropHighlight = null; } scrollBeginTime = 0; @@ -140,13 +143,13 @@ public void dragOver(DropTargetEvent event) { Table table = cast(Table) getControl(); int effect = checkEffect(event.feedback); - int handle = table.handle; + auto handle = table.handle; Point coordinates = new Point(event.x, event.y); coordinates = table.toControl(coordinates); - LVHITTESTINFO pinfo = new LVHITTESTINFO(); - pinfo.x = coordinates.x; - pinfo.y = coordinates.y; - OS.SendMessage(handle, OS.LVM_HITTEST, 0, pinfo); + LVHITTESTINFO pinfo; + pinfo.pt.x = coordinates.x; + pinfo.pt.y = coordinates.y; + OS.SendMessage(handle, OS.LVM_HITTEST, 0, &pinfo); if ((effect & DND.FEEDBACK_SCROLL) is 0) { scrollBeginTime = 0; scrollIndex = -1; @@ -160,17 +163,17 @@ if (pinfo.iItem is top) { scroll = pinfo.iItem !is index; } else { - RECT itemRect = new RECT (); + RECT itemRect; itemRect.left = OS.LVIR_BOUNDS; - if (OS.SendMessage (handle, OS.LVM_GETITEMRECT, pinfo.iItem, itemRect) !is 0) { - RECT rect = new RECT (); - OS.GetClientRect (handle, rect); - POINT pt = new POINT (); + if (OS.SendMessage (handle, OS.LVM_GETITEMRECT, pinfo.iItem, &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; } } } @@ -190,18 +193,18 @@ if (pinfo.iItem !is -1 && (effect & DND.FEEDBACK_SELECT) !is 0) { TableItem item = table.getItem(pinfo.iItem); if (dropHighlight !is item) { - LVITEM lvItem = new LVITEM(); + LVITEM lvItem; lvItem.stateMask = OS.LVIS_DROPHILITED; - OS.SendMessage(handle, OS.LVM_SETITEMSTATE, -1, lvItem); + OS.SendMessage(handle, OS.LVM_SETITEMSTATE, -1, &lvItem); lvItem.state = OS.LVIS_DROPHILITED; - OS.SendMessage(handle, OS.LVM_SETITEMSTATE, pinfo.iItem, lvItem); + OS.SendMessage(handle, OS.LVM_SETITEMSTATE, pinfo.iItem, &lvItem); dropHighlight = item; } } else { if (dropHighlight !is null) { - LVITEM lvItem = new LVITEM (); + LVITEM lvItem; lvItem.stateMask = OS.LVIS_DROPHILITED; - OS.SendMessage(handle, OS.LVM_SETITEMSTATE, -1, lvItem); + OS.SendMessage(handle, OS.LVM_SETITEMSTATE, -1, &lvItem); dropHighlight = null; } }