diff dwt/widgets/EventTable.d @ 15:2952d5604c0a

Ported some widgets, added some stuff to the runtime bindings
author Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
date Fri, 29 Aug 2008 21:46:05 +0200
parents 380af2bdd8e5
children 5b53d338c709
line wrap: on
line diff
--- a/dwt/widgets/EventTable.d	Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/EventTable.d	Fri Aug 29 21:46:05 2008 +0200
@@ -7,14 +7,23 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     
+ * Port to the D programming language:
+ *     Jacob Carlborg <jacob.carlborg@gmail.com>
  *******************************************************************************/
 module dwt.widgets.EventTable;
 
-import dwt.dwthelper.utils;
 
 import dwt.DWT;
 import dwt.internal.DWTEventListener;
 
+import dwt.dwthelper.System;
+import dwt.dwthelper.utils;
+
+import dwt.widgets.Event;
+import dwt.widgets.Listener;
+import dwt.widgets.TypedListener;
+
 /**
  * Instances of this class implement a simple
  * look up mechanism that maps an event type
@@ -26,7 +35,7 @@
     int [] types;
     Listener [] listeners;
     int level;
-    static final int GROW_SIZE = 4;
+    static const int GROW_SIZE = 4;
     
 public Listener [] getListeners (int eventType) {
     if (types is null) return new Listener [0];
@@ -59,7 +68,7 @@
         System.arraycopy (types, 0, newTypes, 0, length);
         types = newTypes;
         Listener [] newListeners = new Listener [length + GROW_SIZE];
-        System.arraycopy (listeners, 0, newListeners, 0, length);
+        SimpleType!(Listener).arraycopy (listeners, 0, newListeners, 0, length);
         listeners = newListeners;
     }
     types [index] = eventType;
@@ -118,7 +127,7 @@
     if (level is 0) {
         int end = types.length - 1;
         System.arraycopy (types, index + 1, types, index, end - index);
-        System.arraycopy (listeners, index + 1, listeners, index, end - index);
+        SimpleType!(Listener).arraycopy (listeners, index + 1, listeners, index, end - index);
         index = end;
     } else {
         if (level > 0) level = -level;
@@ -141,8 +150,8 @@
     if (types is null) return;
     for (int i=0; i<types.length; i++) {
         if (types [i] is eventType) {
-            if (listeners [i] instanceof TypedListener) {
-                TypedListener typedListener = (TypedListener) listeners [i];
+            if (cast(TypedListener) listeners [i]) {
+                TypedListener typedListener = cast(TypedListener) listeners [i];
                 if (typedListener.getEventListener () is listener) {
                     remove (i);
                     return;