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;
             }
         }