diff dwt/custom/StyledTextDropTargetEffect.d @ 41:6337764516f1

Sync dwt/custom with dwt-linux (took copy of complete folder)
author Frank Benoit <benoit@tionex.de>
date Tue, 07 Oct 2008 16:29:55 +0200
parents e831403a80a9
children
line wrap: on
line diff
--- a/dwt/custom/StyledTextDropTargetEffect.d	Tue Oct 07 14:41:31 2008 +0200
+++ b/dwt/custom/StyledTextDropTargetEffect.d	Tue Oct 07 16:29:55 2008 +0200
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,31 +7,46 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ * Port to the D programming language:
+ *     Frank Benoit <benoit@tionex.de>
  *******************************************************************************/
-module dwt.custom;
+module dwt.custom.StyledTextDropTargetEffect;
+
 
-import dwt.*;
-import dwt.dnd.*;
-import dwt.graphics.*;
-import dwt.widgets.*;
+import dwt.DWT;
+import dwt.dnd.DND;
+import dwt.dnd.DropTargetAdapter;
+import dwt.dnd.DropTargetEffect;
+import dwt.dnd.DropTargetEvent;
+import dwt.graphics.FontMetrics;
+import dwt.graphics.GC;
+import dwt.graphics.Point;
+import dwt.graphics.Rectangle;
+import dwt.widgets.Event;
+import dwt.widgets.Listener;
+import dwt.custom.StyledText;
+import dwt.custom.StyledTextContent;
+
+static import tango.core.Exception;
+import dwt.dwthelper.utils;
 
 /**
- * This adapter class provides a default drag under effect (eg. select and scroll) 
+ * This adapter class provides a default drag under effect (eg. select and scroll)
  * when a drag occurs over a <code>StyledText</code>.
- * 
+ *
  * <p>Classes that wish to provide their own drag under effect for a <code>StyledText</code>
  * can extend this class, override the <code>StyledTextDropTargetEffect.dragOver</code>
- * method and override any other applicable methods in <code>StyledTextDropTargetEffect</code> to 
+ * method and override any other applicable methods in <code>StyledTextDropTargetEffect</code> to
  * display their own drag under effect.</p>
  *
  * Subclasses that override any methods of this class should call the corresponding
  * <code>super</code> method to get the default drag under effect implementation.
  *
- * <p>The feedback value is either one of the FEEDBACK constants defined in 
- * class <code>DND</code> which is applicable to instances of this class, 
- * or it must be built by <em>bitwise OR</em>'ing together 
+ * <p>The feedback value is either one of the FEEDBACK constants defined in
+ * class <code>DND</code> which is applicable to instances of this class,
+ * or it must be built by <em>bitwise OR</em>'ing together
  * (that is, using the <code>int</code> "|" operator) two or more
- * of those <code>DND</code> effect constants. 
+ * of those <code>DND</code> effect constants.
  * </p>
  * <p>
  * <dl>
@@ -39,31 +54,32 @@
  * <dd>FEEDBACK_SELECT, FEEDBACK_SCROLL</dd>
  * </dl>
  * </p>
- * 
+ *
  * @see DropTargetAdapter
  * @see DropTargetEvent
- * 
+ * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
+ *
  * @since 3.3
  */
 public class StyledTextDropTargetEffect : DropTargetEffect {
     static final int CARET_WIDTH = 2;
     static final int SCROLL_HYSTERESIS = 100; // milli seconds
     static final int SCROLL_TOLERANCE = 20; // pixels
-    
+
     int currentOffset = -1;
     long scrollBeginTime;
     int scrollX = -1, scrollY = -1;
     Listener paintListener;
-    
+
     /**
-     * Creates a new <code>StyledTextDropTargetEffect</code> to handle the drag under effect on the specified 
+     * Creates a new <code>StyledTextDropTargetEffect</code> to handle the drag under effect on the specified
      * <code>StyledText</code>.
-     * 
+     *
      * @param styledText the <code>StyledText</code> over which the user positions the cursor to drop the data
      */
     public this(StyledText styledText) {
         super(styledText);
-        paintListener = new Listener () {
+        paintListener = new class() Listener {
             public void handleEvent (Event event) {
                 if (currentOffset !is -1) {
                     StyledText text = cast(StyledText) getControl();
@@ -75,22 +91,22 @@
             }
         };
     }
-    
+
     /**
      * This implementation of <code>dragEnter</code> provides a default drag under effect
      * for the feedback specified in <code>event.feedback</code>.
-     * 
+     *
      * For additional information see <code>DropTargetAdapter.dragEnter</code>.
-     * 
+     *
      * Subclasses that override this method should call <code>super.dragEnter(event)</code>
      * to get the default drag under effect implementation.
      *
      * @param event  the information associated with the drag start event
-     * 
+     *
      * @see DropTargetAdapter
      * @see DropTargetEvent
      */
-    public void dragEnter(DropTargetEvent event) {
+    public override void dragEnter(DropTargetEvent event) {
         currentOffset = -1;
         scrollBeginTime = 0;
         scrollX = -1;
@@ -98,22 +114,22 @@
         getControl().removeListener(DWT.Paint, paintListener);
         getControl().addListener (DWT.Paint, paintListener);
     }
-    
+
     /**
      * This implementation of <code>dragLeave</code> provides a default drag under effect
      * for the feedback specified in <code>event.feedback</code>.
-     * 
+     *
      * For additional information see <code>DropTargetAdapter.dragLeave</code>.
-     * 
+     *
      * Subclasses that override this method should call <code>super.dragLeave(event)</code>
      * to get the default drag under effect implementation.
      *
      * @param event  the information associated with the drag leave event
-     * 
+     *
      * @see DropTargetAdapter
      * @see DropTargetEvent
      */
-    public void dragLeave(DropTargetEvent event) {
+    public override void dragLeave(DropTargetEvent event) {
         StyledText text = cast(StyledText) getControl();
         if (currentOffset !is -1) {
             refreshCaret(text, currentOffset, -1);
@@ -127,23 +143,23 @@
     /**
      * This implementation of <code>dragOver</code> provides a default drag under effect
      * for the feedback specified in <code>event.feedback</code>.
-     * 
+     *
      * For additional information see <code>DropTargetAdapter.dragOver</code>.
-     * 
+     *
      * Subclasses that override this method should call <code>super.dragOver(event)</code>
      * to get the default drag under effect implementation.
      *
      * @param event  the information associated with the drag over event
-     * 
+     *
      * @see DropTargetAdapter
      * @see DropTargetEvent
      * @see DND#FEEDBACK_SELECT
      * @see DND#FEEDBACK_SCROLL
      */
-    public void dragOver(DropTargetEvent event) {
+    public override void dragOver(DropTargetEvent event) {
         int effect = event.feedback;
         StyledText text = cast(StyledText) getControl();
-        
+
         Point pt = text.getDisplay().map(null, text, event.x, event.y);
         if ((effect & DND.FEEDBACK_SCROLL) is 0) {
             scrollBeginTime = 0;
@@ -190,7 +206,7 @@
                 }
             }
         }
-            
+
         if ((effect & DND.FEEDBACK_SELECT) !is 0) {
             int[] trailing = new int [1];
             int newOffset = text.getOffsetAtPoint(pt.x, pt.y, trailing, false);
@@ -220,18 +236,18 @@
     /**
      * This implementation of <code>dropAccept</code> provides a default drag under effect
      * for the feedback specified in <code>event.feedback</code>.
-     * 
+     *
      * For additional information see <code>DropTargetAdapter.dropAccept</code>.
-     * 
+     *
      * Subclasses that override this method should call <code>super.dropAccept(event)</code>
      * to get the default drag under effect implementation.
      *
      * @param event  the information associated with the drop accept event
-     * 
+     *
      * @see DropTargetAdapter
      * @see DropTargetEvent
      */
-    public void dropAccept(DropTargetEvent event) {
+    public override void dropAccept(DropTargetEvent event) {
         if (currentOffset !is -1) {
             StyledText text = cast(StyledText) getControl();
             text.setSelection(currentOffset);