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) {