changeset 1:088b30eabff3

some events
author Frank Benoit <benoit@tionex.de>
date Sat, 05 Jan 2008 02:13:53 +0100
parents c8ad75f8819e
children b8884f396ec8
files .hgignore doc-resource-bundle.txt doc-strings.txt org/eclipse/swt/events/ArmEvent.d org/eclipse/swt/events/ArmListener.d org/eclipse/swt/events/ControlEvent.d org/eclipse/swt/events/DisposeEvent.d org/eclipse/swt/events/DisposeListener.d org/eclipse/swt/events/DragDetectEvent.d org/eclipse/swt/events/ExpandEvent.d org/eclipse/swt/events/FocusEvent.d org/eclipse/swt/events/HelpEvent.d org/eclipse/swt/events/KeyEvent.d org/eclipse/swt/events/MenuDetectEvent.d org/eclipse/swt/events/MenuEvent.d org/eclipse/swt/events/ModifyEvent.d org/eclipse/swt/events/MouseEvent.d org/eclipse/swt/events/PaintEvent.d org/eclipse/swt/events/SelectionEvent.d org/eclipse/swt/events/ShellEvent.d org/eclipse/swt/events/TraverseEvent.d org/eclipse/swt/events/TreeEvent.d org/eclipse/swt/events/TypedEvent.d org/eclipse/swt/events/VerifyEvent.d org/eclipse/swt/internal/Compatibility.d org/eclipse/swt/internal/SWTEventListener.d org/eclipse/swt/internal/SWTEventObject.d org/eclipse/swt/widgets/Event.d todo.txt
diffstat 28 files changed, 2228 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,10 @@
+syntax: glob
+
+*.a
+
+syntax: regexp
+
+^dsss_objs
+^dsss.last
+^dsss_imports
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc-strings.txt	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,15 @@
+the dwt uses char[] as string, as usual in d applications.
+
+swt and Java are using the String class which uses java-chars as storage, which is in D the wchar type.
+
+Special care must be take not confuse them while porting
+
+  Java     D
+ ======    =========
+ String    char[]
+ char      wchar
+ byte      char/byte
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/ArmEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.ArmEvent;
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+/**
+ * Instances of this class are sent as a result of
+ * a widget such as a menu item being armed.
+ *
+ * @see ArmListener
+ */
+
+public final class ArmEvent : TypedEvent {
+
+	//static final long serialVersionUID = 3258126964249212217L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/ArmListener.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.ArmListener;
+
+import org.eclipse.swt.internal.SWTEventListener;
+import org.eclipse.swt.events.ArmEvent;
+
+/**
+ * Classes which implement this interface provide a method
+ * that deals with the event that is generated when a widget,
+ * such as a menu item, is armed.
+ * <p>
+ * After creating an instance of a class that :
+ * this interface it can be added to a widget using the
+ * <code>addArmListener</code> method and removed using
+ * the <code>removeArmListener</code> method. When the
+ * widget is armed, the widgetArmed method will be invoked.
+ * </p>
+ *
+ * @see ArmEvent
+ */
+public interface ArmListener : SWTEventListener {
+
+/**
+ * Sent when a widget is armed, or 'about to be selected'.
+ *
+ * @param e an event containing information about the arm
+ */
+public void widgetArmed(ArmEvent e);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/ControlEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.ControlEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+/**
+ * Instances of this class are sent as a result of
+ * controls being moved or resized.
+ *
+ * @see ControlListener
+ */
+
+public final class ControlEvent : TypedEvent {
+
+	//static final long serialVersionUID = 3258132436155119161L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+}
+
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/DisposeEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.DisposeEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+/**
+ * Instances of this class are sent as a result of
+ * widgets being disposed.
+ *
+ * @see DisposeListener
+ */
+
+public final class DisposeEvent : TypedEvent {
+
+	//static final long serialVersionUID = 3257566187633521206L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+}
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/DisposeListener.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.DisposeListener;
+
+
+import org.eclipse.swt.internal.SWTEventListener;
+import org.eclipse.swt.events.DisposeEvent;
+
+/**
+ * Classes which implement this interface provide a method
+ * that deals with the event that is generated when a widget
+ * is disposed.
+ * <p>
+ * After creating an instance of a class that :
+ * this interface it can be added to a widget using the
+ * <code>addDisposeListener</code> method and removed using
+ * the <code>removeDisposeListener</code> method. When a
+ * widget is disposed, the widgetDisposed method will
+ * be invoked.
+ * </p>
+ *
+ * @see DisposeEvent
+ */
+public interface DisposeListener : SWTEventListener {
+
+/**
+ * Sent when the widget is disposed.
+ *
+ * @param e an event containing information about the dispose
+ */
+public void widgetDisposed(DisposeEvent e);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/DragDetectEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.DragDetectEvent;
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.MouseEvent;
+
+/**
+ * Instances of this class are sent as a result of
+ * a drag gesture.
+ *
+ * @see DragDetectListener
+ *
+ * @since 3.3
+ */
+
+public final class DragDetectEvent : MouseEvent {
+
+	//private static final long serialVersionUID = -7229172519733647232L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/ExpandEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.ExpandEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.SelectionEvent;
+
+/**
+ * Instances of this class are sent as a result of
+ * <code>ExpandItem</code>s being expanded or collapsed.
+ *
+ * @see ExpandListener
+ * 
+ * @since 3.2
+ */
+
+public class ExpandEvent : SelectionEvent {
+	
+	//static final long serialVersionUID = 3976735856884987356L;
+	
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/FocusEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.FocusEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+/**
+ * Instances of this class are sent as a result of
+ * widgets gaining and losing focus.
+ *
+ * @see FocusListener
+ */
+
+public final class FocusEvent : TypedEvent {
+
+	//static final long serialVersionUID = 3258134643684227381L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+}
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/HelpEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.HelpEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+/**
+ * Instances of this class are sent as a result of
+ * help being requested for a widget.
+ *
+ * @see HelpListener
+ */
+
+public final class HelpEvent : TypedEvent {
+
+	//static final long serialVersionUID = 3257001038606251315L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+}
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/KeyEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.KeyEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+import tango.text.convert.Format;
+
+/**
+ * Instances of this class are sent as a result of
+ * keys being pressed and released on the keyboard.
+ * <p>
+ * When a key listener is added to a control, the control
+ * will take part in widget traversal.  By default, all
+ * traversal keys (such as the tab key and so on) are
+ * delivered to the control.  In order for a control to take
+ * part in traversal, it should listen for traversal events.
+ * Otherwise, the user can traverse into a control but not
+ * out.  Note that native controls such as table and tree
+ * implement key traversal in the operating system.  It is
+ * not necessary to add traversal listeners for these controls,
+ * unless you want to override the default traversal.
+ * </p>
+ * @see KeyListener
+ * @see TraverseListener
+ */
+
+public class KeyEvent : TypedEvent {
+
+ 	/**
+ 	 * the character represented by the key that was typed.
+	 * This is the final character that results after all modifiers have been
+ 	 * applied.  For example, when the user types Ctrl+A, the character value
+ 	 * is 0x01.  It is important that applications do not attempt to modify the
+ 	 * character value based on a stateMask (such as SWT.CTRL) or the resulting
+ 	 * character will not be correct.
+ 	 */
+	public char character;
+
+	/**
+	 * the key code of the key that was typed,
+	 * as defined by the key code constants in class <code>SWT</code>.
+	 * When the character field of the event is ambiguous, this field
+	 * contains the unicode value of the original character.  For example,
+	 * typing Ctrl+M or Return both result in the character '\r' but the
+	 * keyCode field will also contain '\r' when Return was typed.
+	 *
+	 * @see org.eclipse.swt.SWT
+	 */
+	public int keyCode;
+
+	/**
+	 * the state of the keyboard modifier keys at the time
+	 * the event was generated, as defined by the key code
+	 * constants in class <code>SWT</code>.
+	 *
+	 * @see org.eclipse.swt.SWT
+	 */
+	public int stateMask;
+
+	/**
+	 * A flag indicating whether the operation should be allowed.
+	 * Setting this field to <code>false</code> will cancel the operation.
+	 */
+	public bool doit;
+
+	static final long serialVersionUID = 3256442491011412789L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+	this.character = e.character;
+	this.keyCode = e.keyCode;
+	this.stateMask = e.stateMask;
+	this.doit = e.doit;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public char[] toString() {
+    return Format( "{} character={} keyCode={} stateMask={} doit={}}",
+        super.toString[ 0 .. $-2 ],
+        character, keyCode, stateMask, doit );
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/MenuDetectEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.MenuDetectEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+import tango.text.convert.Format;
+/**
+ * Instances of this class are sent whenever the platform-
+ * specific trigger for showing a context menu is detected.
+ *
+ * @see MenuDetectListener
+ *
+ * @since 3.3
+ */
+
+public final class MenuDetectEvent : TypedEvent {
+
+	/**
+	 * the display-relative x coordinate of the pointer
+	 * at the time the context menu trigger occurred
+	 */
+	public int x;
+
+	/**
+	 * the display-relative y coordinate of the pointer
+	 * at the time the context menu trigger occurred
+	 */
+	public int y;
+
+	/**
+	 * A flag indicating whether the operation should be allowed.
+	 * Setting this field to <code>false</code> will cancel the operation.
+	 */
+	public bool doit;
+
+	//private static final long serialVersionUID = -3061660596590828941L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+	this.x = e.x;
+	this.y = e.y;
+	this.doit = e.doit;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public char[] toString() {
+    return Format( "{} x={} y={} doit={}}", super.toString[ 0 .. $-2 ], x, y, doit );
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/MenuEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.MenuEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+/**
+ * Instances of this class are sent as a result of
+ * menus being shown and hidden.
+ *
+ * @see MenuListener
+ */
+
+public final class MenuEvent : TypedEvent {
+
+	//static final long serialVersionUID = 3258132440332383025L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+}
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/ModifyEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.ModifyEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+/**
+ * Instances of this class are sent as a result of
+ * text being modified.
+ *
+ * @see ModifyListener
+ */
+
+public final class ModifyEvent : TypedEvent {
+
+	//static final long serialVersionUID = 3258129146227011891L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+}
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/MouseEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.MouseEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+import tango.text.convert.Format;
+
+/**
+ * Instances of this class are sent whenever mouse
+ * related actions occur. This includes mouse buttons
+ * being pressed and released, the mouse pointer being
+ * moved and the mouse pointer crossing widget boundaries.
+ * <p>
+ * Note: The <code>button</code> field is an integer that
+ * represents the mouse button number.  This is not the same
+ * as the <code>SWT</code> mask constants <code>BUTTONx</code>.
+ * </p>
+ *
+ * @see MouseListener
+ * @see MouseMoveListener
+ * @see MouseTrackListener
+ */
+
+public class MouseEvent : TypedEvent {
+
+	/**
+	 * the button that was pressed or released; 1 for the
+	 * first button, 2 for the second button, and 3 for the
+	 * third button, etc.
+	 */
+	public int button;
+
+	/**
+	 * the state of the keyboard modifier keys at the time
+	 * the event was generated
+	 */
+	public int stateMask;
+
+	/**
+	 * the widget-relative, x coordinate of the pointer
+	 * at the time the mouse button was pressed or released
+	 */
+	public int x;
+
+	/**
+	 * the widget-relative, y coordinate of the pointer
+	 * at the time the mouse button was pressed or released
+	 */
+	public int y;
+
+	/**
+	 * the number times the mouse has been clicked, as defined
+	 * by the operating system; 1 for the first click, 2 for the
+	 * second click and so on.
+	 *
+	 * @since 3.3
+	 */
+	public int count;
+
+	//static final long serialVersionUID = 3257288037011566898L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+	this.x = e.x;
+	this.y = e.y;
+	this.button = e.button;
+	this.stateMask = e.stateMask;
+	this.count = e.count;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public char[] toString() {
+    return Format( "{} button={} stateMask={} x={} y={} count={}}",
+        super.toString[ 0 .. $-2 ],
+        button, stateMask, x, y, count );
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/PaintEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.PaintEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+
+//PROTING_LEFT
+//import org.eclipse.swt.graphics.GC;
+
+import org.eclipse.swt.events.TypedEvent;
+
+import tango.text.convert.Format;
+
+/**
+ * Instances of this class are sent as a result of
+ * visible areas of controls requiring re-painting.
+ *
+ * @see PaintListener
+ */
+
+public final class PaintEvent : TypedEvent {
+
+	/**
+	 * the graphics context to use when painting
+	 * that is configured to use the colors, font and
+	 * damaged region of the control.  It is valid
+	 * only during the paint and must not be disposed
+	 */
+	public GC gc;
+
+	/**
+	 * the x offset of the bounding rectangle of the
+	 * region that requires painting
+	 */
+	public int x;
+
+	/**
+	 * the y offset of the bounding rectangle of the
+	 * region that requires painting
+	 */
+	public int y;
+
+	/**
+	 * the width of the bounding rectangle of the
+	 * region that requires painting
+	 */
+	public int width;
+
+	/**
+	 * the height of the bounding rectangle of the
+	 * region that requires painting
+	 */
+	public int height;
+
+	/**
+	 * the number of following paint events which
+     * are pending which may always be zero on
+	 * some platforms
+	 */
+	public int count;
+
+	//static final long serialVersionUID = 3256446919205992497L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+	this.gc = e.gc;
+	this.x = e.x;
+	this.y = e.y;
+	this.width = e.width;
+	this.height = e.height;
+	this.count = e.count;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public char[] toString() {
+    return Format( "{} gc={} x={} y={} width={} height={} count={}}",
+        super.toString[ 0 .. $-2 ],
+        gc, x, y, width, height, count );
+}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/SelectionEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.SelectionEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+import tango.text.convert.Format;
+/**
+ * Instances of this class are sent as a result of
+ * widgets being selected.
+ * <p>
+ * Note: The fields that are filled in depend on the widget.
+ * </p>
+ *
+ * @see SelectionListener
+ */
+
+public class SelectionEvent : TypedEvent {
+
+	/**
+	 * The item that was selected.
+	 */
+	public Widget item;
+
+	/**
+	 * Extra detail information about the selection, depending on the widget.
+	 *
+	 * <p><b>Sash</b><ul>
+	 * <li>{@link org.eclipse.swt.SWT#DRAG}</li>
+	 * </ul></p><p><b>ScrollBar and Slider</b><ul>
+	 * <li>{@link org.eclipse.swt.SWT#DRAG}</li>
+	 * <li>{@link org.eclipse.swt.SWT#HOME}</li>
+	 * <li>{@link org.eclipse.swt.SWT#END}</li>
+	 * <li>{@link org.eclipse.swt.SWT#ARROW_DOWN}</li>
+	 * <li>{@link org.eclipse.swt.SWT#ARROW_UP}</li>
+	 * <li>{@link org.eclipse.swt.SWT#PAGE_DOWN}</li>
+	 * <li>{@link org.eclipse.swt.SWT#PAGE_UP}</li>
+	 * </ul></p><p><b>Table and Tree</b><ul>
+	 * <li>{@link org.eclipse.swt.SWT#CHECK}</li>
+	 * </ul></p><p><b>Text</b><ul>
+	 * <li>{@link org.eclipse.swt.SWT#CANCEL}</li>
+	 * </ul></p><p><b>CoolItem and ToolItem</b><ul>
+	 * <li>{@link org.eclipse.swt.SWT#ARROW}</li>
+	 * </ul></p>
+	 */
+	public int detail;
+
+	/**
+	 * The x location of the selected area.
+	 */
+	public int x;
+
+	/**
+	 * The y location of selected area.
+	 */
+	public int y;
+
+	/**
+	 * The width of selected area.
+	 */
+	public int width;
+
+	/**
+	 * The height of selected area.
+	 */
+	public int height;
+
+	/**
+	 * The state of the keyboard modifier keys at the time
+	 * the event was generated.
+	 */
+	public int stateMask;
+
+	/**
+	 * The text of the hyperlink that was selected.
+	 * This will be either the text of the hyperlink or the value of its HREF,
+	 * if one was specified.
+	 *
+	 * @see org.eclipse.swt.widgets.Link#setText(String)
+	 * @since 3.1
+	 */
+	public char[] text;
+
+	/**
+	 * A flag indicating whether the operation should be allowed.
+	 * Setting this field to <code>false</code> will cancel the
+	 * operation, depending on the widget.
+	 */
+	public bool doit;
+
+	//static final long serialVersionUID = 3976735856884987953L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+	this.item = e.item;
+	this.x = e.x;
+	this.y = e.y;
+	this.width = e.width;
+	this.height = e.height;
+	this.detail = e.detail;
+	this.stateMask = e.stateMask;
+	this.text = e.text;
+	this.doit = e.doit;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public char[] toString() {
+    return Format( "{} item={} detail={} x={} y={} width={} height={} stateMask={} text={} doit={}}",
+        super.toString[ 0 .. $-2 ],
+        item,
+        detail,
+        x,
+        y,
+        width,
+        height,
+        stateMask,
+        text,
+        doit );
+}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/ShellEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.ShellEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.TypedEvent;
+
+import tango.text.convert.Format;
+
+/**
+ * Instances of this class are sent as a result of
+ * operations being performed on shells.
+ *
+ * @see ShellListener
+ */
+
+public final class ShellEvent : TypedEvent {
+
+	/**
+	 * A flag indicating whether the operation should be allowed.
+	 * Setting this field to <code>false</code> will cancel the operation.
+	 */
+	public bool doit;
+
+	//static final long serialVersionUID = 3257569490479888441L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+	this.doit = e.doit;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public char[] toString() {
+    return Format( "{} doit={}}", super.toString[ 0 .. $-2 ], doit );
+}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/TraverseEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.TraverseEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.KeyEvent;
+
+import tango.text.convert.Format;
+/**
+ * Instances of this class are sent as a result of
+ * widget traversal actions.
+ * <p>
+ * The traversal event allows fine control over keyboard traversal
+ * in a control both to implement traversal and override the default
+ * traversal behavior defined by the system.  This is achieved using
+ * two fields, <code>detail</code> and <code>doit</code>.
+ * </p><p>
+ * When a control is traversed, a traverse event is sent.  The detail
+ * describes the type of traversal and the doit field indicates the default
+ * behavior of the system.  For example, when a right arrow key is pressed
+ * in a text control, the detail field is <code>TRAVERSE_ARROW_NEXT</code>
+ * and the doit field is <code>false</code>, indicating that the system
+ * will not traverse to the next tab item and the arrow key will be
+ * delivered to the text control.  If the same key is pressed in a radio
+ * button, the doit field will be <code>true</code>, indicating that
+ * traversal is to proceed to the next tab item, possibly another radio
+ * button in the group and that the arrow key is not to be delivered
+ * to the radio button.
+ * </p><p>
+ * How can the traversal event be used to implement traversal?
+ * When a tab key is pressed in a canvas, the detail field will be
+ * <code>TRAVERSE_TAB_NEXT</code> and the doit field will be
+ * <code>false</code>.  The default behavior of the system is to
+ * provide no traversal for canvas controls.  This means that by
+ * default in a canvas, a key listener will see every key that the
+ * user types, including traversal keys.  To understand why this
+ * is so, it is important to understand that only the widget implementor
+ * can decide which traversal is appropriate for the widget.  Returning
+ * to the <code>TRAVERSE_TAB_NEXT</code> example, a text widget implemented
+ * by a canvas would typically want to use the tab key to insert a
+ * tab character into the widget.  A list widget implementation, on the
+ * other hand, would like the system default traversal behavior.  Using
+ * only the doit flag, both implementations are possible.  The text widget
+ * implementor sets doit to <code>false</code>, ensuring that the system
+ * will not traverse and that the tab key will be delivered to key listeners.
+ * The list widget implementor sets doit to <code>true</code>, indicating
+ * that the system should perform tab traversal and that the key should not
+ * be delivered to the list widget.
+ * </p><p>
+ * How can the traversal event be used to override system traversal?
+ * When the return key is pressed in a single line text control, the
+ * detail field is <code>TRAVERSE_RETURN</code> and the doit field
+ * is <code>true</code>.  This means that the return key will be processed
+ * by the default button, not the text widget.  If the text widget has
+ * a default selection listener, it will not run because the return key
+ * will be processed by the default button.  Imagine that the text control
+ * is being used as an in-place editor and return is used to dispose the
+ * widget.  Setting doit to <code>false</code> will stop the system from
+ * activating the default button but the key will be delivered to the text
+ * control, running the key and selection listeners for the text.  How
+ * can <code>TRAVERSE_RETURN</code> be implemented so that the default button
+ * will not be activated and the text widget will not see the return key?
+ * This is achieved by setting doit to <code>true</code>, and the detail
+ * to <code>TRAVERSE_NONE</code>.
+ * </p><p>
+ * Note: A widget implementor will typically implement traversal using
+ * only the doit flag to either enable or disable system traversal.
+ * </p>
+ *
+ * @see TraverseListener
+ */
+
+public final class TraverseEvent : KeyEvent {
+
+	/**
+	 * The traversal type.
+	 * <p><ul>
+	 * <li>{@link org.eclipse.swt.SWT#TRAVERSE_NONE}</li>
+	 * <li>{@link org.eclipse.swt.SWT#TRAVERSE_ESCAPE}</li>
+	 * <li>{@link org.eclipse.swt.SWT#TRAVERSE_RETURN}</li>
+	 * <li>{@link org.eclipse.swt.SWT#TRAVERSE_TAB_NEXT}</li>
+	 * <li>{@link org.eclipse.swt.SWT#TRAVERSE_TAB_PREVIOUS}</li>
+	 * <li>{@link org.eclipse.swt.SWT#TRAVERSE_ARROW_NEXT}</li>
+	 * <li>{@link org.eclipse.swt.SWT#TRAVERSE_ARROW_PREVIOUS}</li>
+	 * <li>{@link org.eclipse.swt.SWT#TRAVERSE_MNEMONIC}</li>
+	 * <li>{@link org.eclipse.swt.SWT#TRAVERSE_PAGE_NEXT}</li>
+	 * <li>{@link org.eclipse.swt.SWT#TRAVERSE_PAGE_PREVIOUS}</li>
+	 * </ul></p>
+	 *
+	 * Setting this field will change the type of traversal.
+	 * For example, setting the detail to <code>TRAVERSE_NONE</code>
+	 * causes no traversal action to be taken.
+	 *
+	 * When used in conjunction with the <code>doit</code> field, the
+	 * traversal detail field can be useful when overriding the default
+	 * traversal mechanism for a control. For example, setting the doit
+	 * field to <code>false</code> will cancel the operation and allow
+	 * the traversal key stroke to be delivered to the control. Setting
+	 * the doit field to <code>true</code> indicates that the traversal
+	 * described by the detail field is to be performed.
+	 */
+	public int detail;
+
+	//static final long serialVersionUID = 3257565105301239349L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+	this.detail = e.detail;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public char[] toString() {
+    return Format( "{} detail={}}", super.toString[ 0 .. $-2 ], detail );
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/TreeEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.TreeEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.SelectionEvent;
+
+/**
+ * Instances of this class are sent as a result of
+ * trees being expanded and collapsed.
+ *
+ * @see TreeListener
+ */
+
+public final class TreeEvent : SelectionEvent {
+
+	//static final long serialVersionUID = 3257282548009677109L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+}
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/TypedEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.TypedEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.internal.SWTEventObject;
+
+import tango.text.convert.Format;
+import tango.text.Util : split;
+
+/**
+ * This is the super class for all typed event classes provided
+ * by SWT. Typed events contain particular information which is
+ * applicable to the event occurrence.
+ *
+ * @see org.eclipse.swt.widgets.Event
+ */
+public class TypedEvent : SWTEventObject {
+
+	/**
+	 * the display where the event occurred
+	 *
+	 * @since 2.0
+	 */
+	public Display display;
+
+	/**
+	 * the widget that issued the event
+	 */
+	public Widget widget;
+
+	/**
+	 * the time that the event occurred.
+	 *
+	 * NOTE: This field is an unsigned integer and should
+	 * be AND'ed with 0xFFFFFFFFL so that it can be treated
+	 * as a signed long.
+	 */
+	public int time;
+
+	/**
+	 * a field for application use
+	 */
+	public Object data;
+
+	//static final long serialVersionUID = 3257285846578377524L;
+
+/**
+ * Constructs a new instance of this class.
+ *
+ * @param object the object that fired the event
+ */
+public this(Object object) {
+	super(object);
+}
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the argument.
+ *
+ * @param e the low level event to initialize the receiver with
+ */
+public this(Event e) {
+	super(e.widget);
+	this.display = e.display;
+	this.widget = e.widget;
+	this.time = e.time;
+	this.data = e.data;
+}
+
+/**
+ * Returns the name of the event. This is the name of
+ * the class without the module name.
+ *
+ * @return the name of the event
+ */
+char[] getName () {
+	char[] str = this.classinfo.name;
+    return split( str, "." )[$-1];
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public char[] toString() {
+    return Format( "{}{{{} time={} data={}}", widget.toString(), time, data.toString() );
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/events/VerifyEvent.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.events.VerifyEvent;
+
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.events.KeyEvent;
+
+import tango.text.convert.Format;
+/**
+ * Instances of this class are sent as a result of
+ * widgets handling keyboard events
+ *
+ * @see VerifyListener
+ */
+
+public final class VerifyEvent : KeyEvent {
+
+	/**
+	 * the range of text being modified.
+	 * Setting these fields has no effect.
+	 */
+	public int start, end;
+
+	/**
+	 * the new text that will be inserted.
+	 * Setting this field will change the text that is about to
+	 * be inserted or deleted.
+	 */
+	public char[] text;
+
+	//static final long serialVersionUID = 3257003246269577014L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public this(Event e) {
+	super(e);
+	this.start = e.start;
+	this.end = e.end;
+	this.text = e.text;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public char[] toString() {
+	return Format( "{} start={} end={} text={}}", super.toString[ 0 .. $-2 ], start, end, text );
+}
+}
--- a/org/eclipse/swt/internal/Compatibility.d	Sat Jan 05 00:29:12 2008 +0100
+++ b/org/eclipse/swt/internal/Compatibility.d	Sat Jan 05 02:13:53 2008 +0100
@@ -18,12 +18,12 @@
 import java.util.zip.InflaterInputStream;
 +/
 
+import org.eclipse.swt.SWT;
+
 import Math = tango.math.Math;
 import Unicode = tango.text.Unicode;
 import tango.sys.Process;
 
-import org.eclipse.swt.SWT;
-
 /**
  * This class is a placeholder for utility methods commonly
  * used on J2SE platforms but not supported on some J2ME
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/internal/SWTEventListener.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.internal.SWTEventListener;
+
+
+//import java.util.EventListener;
+
+///PORTING_TYPE
+interface EventListener{
+}
+
+/**
+ * This interface is the cross-platform version of the
+ * java.util.EventListener interface.
+ * <p>
+ * It is part of our effort to provide support for both J2SE
+ * and J2ME platforms. Under this scheme, classes need to
+ * implement SWTEventListener instead of java.util.EventListener.
+ * </p>
+ * <p>
+ * Note: java.util.EventListener is not part of CDC and CLDC.
+ * </p>
+ */
+public interface SWTEventListener : EventListener {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/internal/SWTEventObject.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.internal.SWTEventObject;
+
+
+//import java.util.EventObject;
+import tango.core.Exception;
+
+///PORTING_TYPE
+class EventObject {
+  protected Object source;
+
+  public this(Object source) {
+    if (source is null)
+      throw new IllegalArgumentException( "null arg" );
+    this.source = source;
+  }
+
+  public Object getSource() {
+    return source;
+  }
+
+  public override char[] toString() {
+    return this.classinfo.name ~ "[source=" ~ source.toString() ~ "]";
+  }
+}
+
+
+
+
+/**
+ * This class is the cross-platform version of the
+ * java.util.EventObject class.
+ * <p>
+ * It is part of our effort to provide support for both J2SE
+ * and J2ME platforms. Under this scheme, classes need to
+ * extend SWTEventObject instead of java.util.EventObject.
+ * </p>
+ * <p>
+ * Note: java.util.EventObject is not part of CDC and CLDC.
+ * </p>
+ */
+public class SWTEventObject : EventObject {
+
+	//static final long serialVersionUID = 3258125873411470903L;
+
+/**
+ * Constructs a new instance of this class.
+ *
+ * @param source the object which fired the event
+ */
+public this(Object source) {
+	super(source);
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org/eclipse/swt/widgets/Event.d	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,229 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+module org.eclipse.swt.widgets.Event;
+
+import tango.text.convert.Format;
+
+/// PORTING_TYPE
+class Display{}
+class Widget{}
+class GC{}
+class Rectangle{
+    this(int,int,int,int){}
+    int x, y, width, height;
+}
+
+
+/**
+ * Instances of this class provide a description of a particular
+ * event which occurred within SWT. The SWT <em>untyped listener</em>
+ * API uses these instances for all event dispatching.
+ * <p>
+ * Note: For a given event, only the fields which are appropriate
+ * will be filled in. The contents of the fields which are not used
+ * by the event are unspecified.
+ * </p>
+ *
+ * @see Listener
+ * @see org.eclipse.swt.events.TypedEvent
+ */
+
+public class Event {
+
+	/**
+	 * the display where the event occurred
+	 *
+	 * @since 2.0
+	 */
+	public Display display;
+
+	/**
+	 * the widget that issued the event
+	 */
+	public Widget widget;
+
+	/**
+	 * the type of event, as defined by the event type constants
+	 * in class <code>SWT</code>
+	 *
+	 * @see org.eclipse.swt.SWT
+	 */
+	public int type;
+
+	/**
+	 * the event specific detail field, as defined by the detail constants
+	 * in class <code>SWT</code>
+	 *
+	 * @see org.eclipse.swt.SWT
+	 */
+	public int detail;
+
+	/**
+	 * the item that the event occurred in (can be null)
+	 */
+	public Widget item;
+
+	/**
+	 * the index of the item where the event occurred
+	 *
+	 * @since 3.2
+	 */
+	public int index;
+
+	/**
+	 * the graphics context to use when painting
+	 * that is configured to use the colors, font and
+	 * damaged region of the control.  It is valid
+	 * only during the paint and must not be disposed
+	 */
+	public GC gc;
+
+	/**
+	 * depending on the event type, the x offset of the bounding
+	 * rectangle of the region that requires painting or the
+	 * widget-relative, x coordinate of the pointer at the
+	 * time the mouse button was pressed or released
+	 */
+	public int x;
+
+	/**
+	 * depending on the event type, the y offset of the bounding
+	 * rectangle of the  region that requires painting or the
+	 * widget-relative, y coordinate of the pointer at the
+	 * time the mouse button was pressed or released
+	 */
+	public int y;
+
+	/**
+	 * the width of the bounding rectangle of the
+	 * region that requires painting
+	 */
+	public int width;
+
+	/**
+	 * the height of the bounding rectangle of the
+	 * region that requires painting
+	 */
+	public int height;
+
+	/**
+	 * depending on the event type, the number of following
+	 * paint events which are pending which may always be zero
+	 * on some platforms or the number of lines or pages to
+	 * scroll using the mouse wheel
+	 */
+	public int count;
+
+	/**
+	 * the time that the event occurred.
+	 *
+	 * NOTE: This field is an unsigned integer and should
+	 * be AND'ed with 0xFFFFFFFFL so that it can be treated
+	 * as a signed long.
+	 */
+	public int time;
+
+	/**
+	 * the button that was pressed or released; 1 for the
+	 * first button, 2 for the second button, and 3 for the
+	 * third button, etc.
+	 */
+	public int button;
+
+	/**
+	 * depending on the event, the character represented by the key
+	 * that was typed.  This is the final character that results
+	 * after all modifiers have been applied.  For example, when the
+	 * user types Ctrl+A, the character value is 0x01 (ASCII SOH).
+	 * It is important that applications do not attempt to modify the
+	 * character value based on a stateMask (such as SWT.CTRL) or the
+	 * resulting character will not be correct.
+	 */
+	public char character;
+
+	/**
+	 * depending on the event, the key code of the key that was typed,
+	 * as defined by the key code constants in class <code>SWT</code>.
+	 * When the character field of the event is ambiguous, this field
+	 * contains the unaffected value of the original character.  For
+	 * example, typing Ctrl+M or Enter both result in the character '\r'
+	 * but the keyCode field will also contain '\r' when Enter was typed
+	 * and 'm' when Ctrl+M was typed.
+	 *
+	 * @see org.eclipse.swt.SWT
+	 */
+	public int keyCode;
+
+	/**
+	 * depending on the event, the state of the keyboard modifier
+	 * keys and mouse masks at the time the event was generated.
+	 *
+	 * @see org.eclipse.swt.SWT
+	 */
+	public int stateMask;
+
+	/**
+	 * depending on the event, the range of text being modified.
+	 * Setting these fields has no effect.
+	 */
+	public int start, end;
+
+	/**
+	 * depending on the event, the new text that will be inserted.
+	 * Setting this field will change the text that is about to
+	 * be inserted or deleted.
+	 */
+	public char[] text;
+
+	/**
+	 * depending on the event, a flag indicating whether the operation
+	 * should be allowed.  Setting this field to false will cancel the
+	 * operation.
+	 */
+	public bool doit = true;
+
+	/**
+	 * a field for application use
+	 */
+	public Object data;
+
+/**
+ * Gets the bounds.
+ *
+ * @return a rectangle that is the bounds.
+ */
+public Rectangle getBounds () {
+	return new Rectangle (x, y, width, height);
+}
+
+/**
+ * Sets the bounds.
+ *
+ * @param rect the new rectangle
+ */
+public void setBounds (Rectangle rect) {
+	this.x = rect.x;
+	this.y = rect.y;
+	this.width = rect.width;
+	this.height = rect.height;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public char[] toString () {
+    return Format( "Event {type={} {} time={} data={} x={} y={} width={} height={} detail={}}",
+        type, widget, time, data, x, y, width, height, detail );  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/todo.txt	Sat Jan 05 02:13:53 2008 +0100
@@ -0,0 +1,536 @@
+SWT
+SWTException
+SWTError
+
+graphics/Device
+graphics/LineAttributes
+graphics/Font
+graphics/FontData
+graphics/TextStyle
+graphics/Region
+graphics/DeviceData
+graphics/ImageLoader
+graphics/ImageLoaderListener
+graphics/Point
+graphics/ImageData
+graphics/GCData
+graphics/Cursor
+graphics/GlyphMetrics
+graphics/FontMetrics
+graphics/TextLayout
+graphics/Drawable
+graphics/Color
+graphics/Image
+graphics/ImageDataLoader
+graphics/Resource
+graphics/GC
+graphics/ImageLoaderEvent
+graphics/Rectangle
+graphics/Path
+graphics/RGB
+graphics/PaletteData
+graphics/Pattern
+graphics/Transform
+graphics/PathData
+
+widgets/TableColumn
+widgets/DirectoryDialog
+widgets/DateTime
+widgets/RunnableLock
+widgets/Group
+widgets/MessageBox
+widgets/ToolItem
+widgets/Item
+widgets/Dialog
+widgets/ProgressBar
+widgets/Button
+widgets/Tree
+widgets/Canvas
+widgets/TabFolder
+widgets/Control
+widgets/Event
+widgets/Link
+widgets/Combo
+widgets/ToolTip
+widgets/CoolItem
+widgets/Layout
+widgets/ToolBar
+widgets/Widget
+widgets/Text
+widgets/Tray
+widgets/ImageList
+widgets/TableItem
+widgets/Shell
+widgets/ScrollBar
+widgets/Spinner
+widgets/EventTable
+widgets/Table
+widgets/ColorDialog
+widgets/Composite
+widgets/FileDialog
+widgets/Sash
+widgets/Listener
+widgets/Scale
+widgets/Display
+widgets/List
+widgets/TabItem
+widgets/Decorations
+widgets/Tracker
+widgets/Monitor
+widgets/CoolBar
+widgets/ExpandItem
+widgets/Caret
+widgets/FontDialog
+widgets/TrayItem
+widgets/ExpandBar
+widgets/TypedListener
+widgets/Menu
+widgets/Slider
+widgets/TreeItem
+widgets/MenuItem
+widgets/Label
+widgets/Synchronizer
+widgets/Scrollable
+widgets/TreeColumn
+
+layout/FormLayout
+layout/FormAttachment
+layout/RowData
+layout/GridData
+layout/GridLayout
+layout/FillLayout
+layout/FormData
+layout/FillData
+layout/RowLayout
+
+
+
+internal/Lock
+internal/Library
+internal/LONG
+internal/SWTEventListener
+internal/BidiUtil
+internal/Compatibility
+internal/Platform
+internal/C
+internal/Callback
+internal/Converter
+internal/SWTEventObject
+internal/CloneableCompatibility
+internal/SerializableCompatibility
+
+internal/gnome/GnomeVFSMimeApplication
+internal/gnome/GNOME
+internal/cde/CDE
+internal/cde/DtActionArg
+internal/theme/TabItemDrawData
+internal/theme/ProgressBarDrawData
+internal/theme/ButtonDrawData
+internal/theme/RangeDrawData
+internal/theme/TabFolderDrawData
+internal/theme/ScaleDrawData
+internal/theme/GroupDrawData
+internal/theme/DrawData
+internal/theme/ComboDrawData
+internal/theme/ToolBarDrawData
+internal/theme/Theme
+internal/theme/ScrollBarDrawData
+internal/theme/ExpanderDrawData
+internal/theme/ToolItemDrawData
+internal/cairo/cairo_path_t
+internal/cairo/cairo_path_data_t
+internal/cairo/Cairo
+internal/cairo/cairo_text_extents_t
+internal/cairo/cairo_font_extents_t
+internal/image/WinBMPFileFormat
+internal/image/TIFFFileFormat
+internal/image/JPEGComment
+internal/image/PngPlteChunk
+internal/image/JPEGScanHeader
+internal/image/OS2BMPFileFormat
+internal/image/PngIhdrChunk
+internal/image/JPEGEndOfImage
+internal/image/LEDataOutputStream
+internal/image/PngHuffmanTables
+internal/image/PngDeflater
+internal/image/PngIdatChunk
+internal/image/JPEGDecoder
+internal/image/JPEGRestartInterval
+internal/image/LZWNode
+internal/image/JPEGVariableSizeSegment
+internal/image/TIFFRandomFileAccess
+internal/image/PNGFileFormat
+internal/image/JPEGSegment
+internal/image/PngLzBlockReader
+internal/image/FileFormat
+internal/image/PngInputStream
+internal/image/PngChunkReader
+internal/image/TIFFDirectory
+internal/image/PngEncoder
+internal/image/PngIendChunk
+internal/image/JPEGFileFormat
+internal/image/PngDecodingDataStream
+internal/image/PngChunk
+internal/image/JPEGStartOfImage
+internal/image/JPEGHuffmanTable
+internal/image/JPEGAppn
+internal/image/JPEGQuantizationTable
+internal/image/TIFFModifiedHuffmanCodec
+internal/image/LEDataInputStream
+internal/image/GIFFileFormat
+internal/image/LZWCodec
+internal/image/PngTrnsChunk
+internal/image/PngHuffmanTable
+internal/image/WinICOFileFormat
+internal/image/JPEGArithmeticConditioningTable
+internal/image/JPEGFixedSizeSegment
+internal/image/PngFileReadState
+internal/image/JPEGFrameHeader
+internal/gtk/GdkEventCrossing
+internal/gtk/XAnyEvent
+internal/gtk/OS
+internal/gtk/PangoRectangle
+internal/gtk/GTypeQuery
+internal/gtk/GdkEventScroll
+internal/gtk/PangoLayoutLine
+internal/gtk/GdkVisual
+internal/gtk/GdkEventWindowState
+internal/gtk/PangoAttribute
+internal/gtk/PangoLogAttr
+internal/gtk/GdkWindowAttr
+internal/gtk/XWindowChanges
+internal/gtk/GdkEventVisibility
+internal/gtk/GdkEventAny
+internal/gtk/GTypeInfo
+internal/gtk/GObjectClass
+internal/gtk/XExposeEvent
+internal/gtk/GdkRectangle
+internal/gtk/GdkEvent
+internal/gtk/GtkWidgetClass
+internal/gtk/PangoItem
+internal/gtk/XRenderPictureAttributes
+internal/gtk/GtkTargetEntry
+internal/gtk/XButtonEvent
+internal/gtk/GtkAdjustment
+internal/gtk/GInterfaceInfo
+internal/gtk/GdkColor
+internal/gtk/GtkBorder
+internal/gtk/GdkEventMotion
+internal/gtk/GdkEventButton
+internal/gtk/XEvent
+internal/gtk/GtkCombo
+internal/gtk/GdkDragContext
+internal/gtk/GtkRequisition
+internal/gtk/PangoLayoutRun
+internal/gtk/GtkCellRendererClass
+internal/gtk/XVisibilityEvent
+internal/gtk/GdkEventKey
+internal/gtk/XCrossingEvent
+internal/gtk/GtkAllocation
+internal/gtk/XClientMessageEvent
+internal/gtk/GtkTargetPair
+internal/gtk/GdkEventExpose
+internal/gtk/GdkGeometry
+internal/gtk/GdkImage
+internal/gtk/GtkColorSelectionDialog
+internal/gtk/GtkFixed
+internal/gtk/XFocusChangeEvent
+internal/gtk/GdkEventFocus
+internal/gtk/GdkGCValues
+internal/gtk/GtkSelectionData
+internal/gtk/GtkFileSelection
+
+events/ShellAdapter
+events/SelectionListener
+events/TreeListener
+events/MenuDetectListener
+events/SelectionAdapter
+events/KeyAdapter
+events/TreeEvent
+events/ControlListener
+events/ArmEvent
+events/DragDetectEvent
+events/PaintListener
+events/MenuEvent
+events/DisposeEvent
+events/MouseEvent
+events/ShellListener
+events/SelectionEvent
+events/ControlAdapter
+events/ExpandListener
+events/MouseTrackListener
+events/FocusListener
+events/TreeAdapter
+events/MenuListener
+events/FocusEvent
+events/FocusAdapter
+events/MenuAdapter
+events/MouseWheelListener
+events/HelpListener
+events/ExpandAdapter
+events/TraverseEvent
+events/MouseListener
+events/ShellEvent
+events/KeyEvent
+events/ExpandEvent
+events/MenuDetectEvent
+events/VerifyEvent
+events/TraverseListener
+events/ArmListener
+events/ModifyListener
+events/MouseMoveListener
+events/ModifyEvent
+events/KeyListener
+events/VerifyListener
+events/PaintEvent
+events/HelpEvent
+events/DragDetectListener
+events/TypedEvent
+events/ControlEvent
+events/MouseTrackAdapter
+events/DisposeListener
+events/MouseAdapter
+
+
+// not sure what this is
+internal/accessibility/gtk/ATK
+internal/accessibility/gtk/AtkTextIface
+internal/accessibility/gtk/AtkObjectFactoryClass
+internal/accessibility/gtk/GtkAccessible
+internal/accessibility/gtk/AtkSelectionIface
+internal/accessibility/gtk/AtkActionIface
+internal/accessibility/gtk/AtkObjectClass
+internal/accessibility/gtk/AtkComponentIface
+internal/accessibility/gtk/AtkHypertextIface
+accessibility/AccessibleTextEvent
+accessibility/AccessibleAdapter
+accessibility/AccessibleListener
+accessibility/AccessibleControlEvent
+accessibility/AccessibleTextListener
+accessibility/AccessibleControlAdapter
+accessibility/AccessibleObject
+accessibility/AccessibleEvent
+accessibility/AccessibleControlListener
+accessibility/AccessibleTextAdapter
+accessibility/ACC
+accessibility/Accessible
+accessibility/AccessibleFactory
+
+
+
+
+
+=== LOW Priority ===
+custom/StyleRange
+custom/StyledTextRenderer
+custom/PopupList
+custom/CTabFolderLayout
+custom/ScrolledCompositeLayout
+custom/CTabFolder
+custom/LineBackgroundListener
+custom/CTabFolderListener
+custom/BusyIndicator
+custom/StyledTextDropTargetEffect
+custom/CTabFolderEvent
+custom/StyledTextPrintOptions
+custom/CTabFolder2Listener
+custom/StackLayout
+custom/TableCursor
+custom/LineBackgroundEvent
+custom/StyledTextListener
+custom/TextChangedEvent
+custom/ExtendedModifyListener
+custom/PaintObjectListener
+custom/ViewFormLayout
+custom/ViewForm
+custom/TextChangeListener
+custom/TableEditor
+custom/StyledTextEvent
+custom/PaintObjectEvent
+custom/AnimatedProgress
+custom/ExtendedModifyEvent
+custom/CCombo
+custom/MovementListener
+custom/CTabFolder2Adapter
+custom/CBannerLayout
+custom/CLayoutData
+custom/ScrolledComposite
+custom/ControlEditor
+custom/SashForm
+custom/CLabel
+custom/CTabItem
+custom/TreeEditor
+custom/StyledText
+custom/TableTree
+custom/ST
+custom/TextChangingEvent
+custom/SashFormLayout
+custom/LineStyleEvent
+custom/CTabFolderAdapter
+custom/VerifyKeyListener
+custom/CBanner
+custom/StyledTextContent
+custom/Bullet
+custom/DefaultContent
+custom/BidiSegmentEvent
+custom/TableTreeItem
+custom/MovementEvent
+custom/TableTreeEditor
+custom/BidiSegmentListener
+custom/SashFormData
+custom/LineStyleListener
+
+program/Program // find default program for a given file extension (.http => open the standard browser)
+
+printing/Printer
+printing/PrinterData
+printing/PrintDialog
+
+internal/opengl/glx/XVisualInfo
+internal/opengl/glx/GLX
+opengl/GLCanvas
+opengl/GLData
+
+dnd  // Drag and Drop 
+dnd/DragSourceAdapter
+dnd/TreeDragSourceEffect
+dnd/TreeDropTargetEffect
+dnd/FileTransfer
+dnd/DragSourceListener
+dnd/DNDEvent
+dnd/DragSource
+dnd/TextTransfer
+dnd/DragSourceEvent
+dnd/TableDropTargetEffect
+dnd/ClipboardProxy
+dnd/DropTargetListener
+dnd/DropTarget
+dnd/Transfer
+dnd/DNDListener
+dnd/ByteArrayTransfer
+dnd/DropTargetEvent
+dnd/DragSourceEffect
+dnd/RTFTransfer
+dnd/Clipboard
+dnd/TransferData
+dnd/DropTargetEffect
+dnd/TableDragSourceEffect
+dnd/HTMLTransfer
+dnd/DND
+dnd/DropTargetAdapter
+
+internal/mozilla/XPCOMObject
+internal/mozilla/nsIPromptService
+internal/mozilla/nsIWebNavigation
+internal/mozilla/nsIWebProgressListener2
+internal/mozilla/nsIObserverService
+internal/mozilla/nsIDOMWindow
+internal/mozilla/nsIWindowCreator
+internal/mozilla/nsITooltipListener
+internal/mozilla/nsIHelperAppLauncherDialog
+internal/mozilla/nsIContextMenuListener
+internal/mozilla/nsIMemory
+internal/mozilla/nsISimpleEnumerator
+internal/mozilla/nsIDownload
+internal/mozilla/nsIDirectoryServiceProvider2
+internal/mozilla/nsIWebProgressListener
+internal/mozilla/nsIEmbeddingSiteWindow
+internal/mozilla/nsIProgressDialog
+internal/mozilla/nsIWebNavigationInfo
+internal/mozilla/nsICategoryManager
+internal/mozilla/nsIFilePicker_1_8
+internal/mozilla/nsIWebBrowserChrome
+internal/mozilla/GREVersionRange
+internal/mozilla/nsIDocShell
+internal/mozilla/nsIWebBrowser
+internal/mozilla/nsIPrefBranch
+internal/mozilla/nsICookieManager
+internal/mozilla/nsISupports
+internal/mozilla/nsIComponentManager
+internal/mozilla/nsIFilePicker
+internal/mozilla/nsIDownload_1_8
+internal/mozilla/nsIWebBrowserFocus
+internal/mozilla/nsIWebBrowserChromeFocus
+internal/mozilla/nsIWindowCreator2
+internal/mozilla/nsEmbedString
+internal/mozilla/nsIDOMEvent
+internal/mozilla/nsIDOMWindowCollection
+internal/mozilla/nsIPrefService
+internal/mozilla/nsIDOMUIEvent
+internal/mozilla/nsIHelperAppLauncher
+internal/mozilla/nsIWeakReference
+internal/mozilla/nsILocalFile
+internal/mozilla/nsIJSContextStack
+internal/mozilla/nsICookie
+internal/mozilla/nsISupportsWeakReference
+internal/mozilla/XPCOM
+internal/mozilla/nsIDirectoryService
+internal/mozilla/nsIProperties
+internal/mozilla/nsIFactory
+internal/mozilla/nsIDOMMouseEvent
+internal/mozilla/nsID
+internal/mozilla/nsIServiceManager
+internal/mozilla/nsICancelable
+internal/mozilla/nsIIOService
+internal/mozilla/nsIProgressDialog_1_8
+internal/mozilla/nsIWindowWatcher
+internal/mozilla/nsIPrefLocalizedString
+internal/mozilla/nsIWebProgress
+internal/mozilla/nsITransfer
+internal/mozilla/nsIFile
+internal/mozilla/nsIWebBrowserStream
+internal/mozilla/nsIInterfaceRequestor
+internal/mozilla/nsIURIContentListener
+internal/mozilla/nsIInputStream
+internal/mozilla/nsIDirectoryServiceProvider
+internal/mozilla/nsIDOMEventTarget
+internal/mozilla/XPCOMInit
+internal/mozilla/nsIComponentRegistrar
+internal/mozilla/nsIRequest
+internal/mozilla/nsIAppShell
+internal/mozilla/nsIHelperAppLauncher_1_8
+internal/mozilla/nsIURI
+internal/mozilla/nsIBaseWindow
+browser/SimpleEnumerator
+browser/MozillaDelegate
+browser/DownloadFactory_1_8
+browser/PromptServiceFactory
+browser/Download
+browser/Download_1_8
+browser/HelperAppLauncherDialog
+browser/FilePickerFactory_1_8
+browser/LocationListener
+browser/StatusTextEvent
+browser/ProgressListener
+browser/VisibilityWindowListener
+browser/WindowEvent
+browser/PromptService
+browser/FilePicker_1_8
+browser/HelperAppLauncherDialogFactory
+browser/CloseWindowListener
+browser/TitleListener
+browser/FilePickerFactory
+browser/WindowCreator2
+browser/LocationAdapter
+browser/TitleEvent
+browser/ProgressAdapter
+browser/Browser
+browser/InputStream
+browser/VisibilityWindowAdapter
+browser/AppFileLocProvider
+browser/OpenWindowListener
+browser/ProgressEvent
+browser/PromptDialog
+browser/StatusTextListener
+browser/WebBrowser
+browser/LocationEvent
+browser/FilePicker
+browser/Mozilla
+browser/DownloadFactory
+
+awt/SWT_AWT // Compatibility to the Java AWT GUI, not needed
+
+
+
+
+