This commit was manufactured by cvs2svn to create branch 'Bug9091-wip'.

Sprout from master 2002-02-01 19:53:32 UTC Knut Radloff <knutr> '8273'
Delete:
    bundles/org.eclipse.swt/.classpath_gtk
    bundles/org.eclipse.swt/.classpath_gtk_j2me
    bundles/org.eclipse.swt/.classpath_motif
    bundles/org.eclipse.swt/.classpath_motif_j2me
    bundles/org.eclipse.swt/.classpath_photon
    bundles/org.eclipse.swt/.classpath_photon_j2me
    bundles/org.eclipse.swt/.classpath_win32
    bundles/org.eclipse.swt/.classpath_win32_j2me
    bundles/org.eclipse.swt/.cvsignore
    bundles/org.eclipse.swt/.vcm_meta
    bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/internal/awt/win32/SWT_AWT.java
    bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/internal/awt/win32/package.html
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/AnimatedProgress.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentListener.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BusyIndicator.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CCombo.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CLabel.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolder.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderListener.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabItem.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ControlEditor.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/DefaultContent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/DefaultLineStyler.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ExtendedModifyEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ExtendedModifyListener.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineBackgroundEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineBackgroundListener.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineStyleEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineStyleListener.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/PopupList.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ST.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/SashForm.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ScrolledComposite.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StackLayout.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyleRange.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextContent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextListener.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextPrinter.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableEditor.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTree.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTreeEditor.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTreeItem.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangeListener.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangedEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangingEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TreeEditor.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/VerifyKeyListener.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ViewForm.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/WrappedContent.java
    bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/package.html
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DND.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDListener.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceListener.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetEvent.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetListener.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/NoDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/package.html
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/ByteArrayTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/Clipboard.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DragSource.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DropTarget.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/FileTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/RTFTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TableDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TextTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/Transfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TransferData.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TreeDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/ByteArrayTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/Clipboard.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/DragSource.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/DropTarget.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/FileTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/RTFTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/TableDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/TextTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/Transfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/TransferData.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/TreeDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/ByteArrayTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/Clipboard.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/DragSource.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/DropTarget.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/FileTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/RTFTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/TableDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/TextTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/Transfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/TransferData.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/motif/org/eclipse/swt/dnd/TreeDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/ByteArrayTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/Clipboard.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/DragSource.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/DropTarget.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/FileTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/RTFTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TableDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TextTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/Transfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TransferData.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/photon/org/eclipse/swt/dnd/TreeDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/ByteArrayTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/Clipboard.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/DragSource.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/DropTarget.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/FileTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/OleEnumFORMATETC.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/RTFTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/TableDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/TextTransfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/Transfer.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/TransferData.java
    bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/win32/org/eclipse/swt/dnd/TreeDragUnderEffect.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/internal/ole/win32/COMObject.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OLE.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleAutomation.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleControlSite.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleEvent.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleEventSink.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleEventTable.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFile.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFrame.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleFunctionDescription.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleListener.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleParameterDescription.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OlePropertyChangeSink.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OlePropertyDescription.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/Variant.java
    bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/package.html
    bundles/org.eclipse.swt/Eclipse SWT PI/common_j2me/org/eclipse/swt/internal/Library.java
    bundles/org.eclipse.swt/Eclipse SWT PI/common_j2se/org/eclipse/swt/internal/Library.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/about.html
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/cpl-v05.html
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/lgpl-v21.txt
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.csh
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_gtk.mak
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/pixbuf.c
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/structs.c
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/structs.h
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/swt.c
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GDKPIXBUF.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GdkColor.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GdkEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GdkEventButton.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GdkEventExpose.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GdkEventKey.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GdkEventMotion.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GdkFont.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GdkGCValues.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GdkRectangle.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GdkVisual.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkAdjustment.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkAllocation.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkBin.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkBox.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkCList.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkCListColumn.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkCListRow.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkCTree.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkCTreeRow.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkCheckMenuItem.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkColorSelectionDialog.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkCombo.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkContainer.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkDialog.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkEditable.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkFileSelection.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkFontSelectionDialog.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkFrame.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkHBox.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkItem.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkMenuItem.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkObject.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkRequisition.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkStyle.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkStyleClass.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkText.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkWidget.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GtkWindow.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/about.html
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/cpl-v05.html
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/lgpl-v21.txt
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/library/build.csh
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/library/make_gtk.mak
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/library/pixbuf.c
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/library/structs.c
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/library/structs.h
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/library/swt.c
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GDKPIXBUF.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GdkColor.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GdkEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GdkEventButton.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GdkEventExpose.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GdkEventKey.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GdkEventMotion.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GdkFont.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GdkGCValues.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GdkRectangle.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GdkVisual.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkAdjustment.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkAllocation.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkBin.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkBox.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkCList.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkCListColumn.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkCListRow.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkCTree.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkCTreeRow.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkCheckMenuItem.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkColorSelectionDialog.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkCombo.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkContainer.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkDialog.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkEditable.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkFileSelection.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkFontSelectionDialog.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkFrame.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkHBox.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkItem.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkMenuItem.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkObject.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkRequisition.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkStyle.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkStyleClass.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkText.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkWidget.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/GtkWindow.java
    bundles/org.eclipse.swt/Eclipse SWT PI/gtk1x/org/eclipse/swt/internal/gtk/OS.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/build.csh
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/cde.c
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/gnome.c
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/kde.cc
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/make_aix.mak
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/make_linux.mak
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/make_solaris.mak
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/structs.c
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/structs.h
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/library/swt.c
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/CDE.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/GNOME.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/KDE.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/OS.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/Visual.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XAnyEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XButtonEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XCharStruct.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XColor.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XConfigureEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XCrossingEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XExposeEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XFocusChangeEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XFontStruct.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XGCValues.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XImage.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XInputEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XKeyEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XMotionEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XRectangle.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XSetWindowAttributes.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XWindowAttributes.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XWindowChanges.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XWindowEvent.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XmAnyCallbackStruct.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XmDragProcCallback.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XmDropFinishCallback.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XmDropProcCallback.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XmTextBlockRec.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XmTextVerifyCallbackStruct.java
    bundles/org.eclipse.swt/Eclipse SWT PI/motif/org/eclipse/swt/internal/motif/XtWidgetGeometry.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/library/build.sh
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/library/make_photon.mak
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/library/structs.c
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/library/structs.h
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/library/swt.c
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/FontDetails.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/FontQueryInfo.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/OS.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PgAlpha_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PgDisplaySettings_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PgMap_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PgVideoModeInfo_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhArea_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhClipHeader.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhCursorDef_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhCursorInfo_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhDim_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhEvent_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhImage_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhKeyEvent_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhPoint_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhPointerEvent_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhRect_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhRegion_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhTile_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PhWindowEvent_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PtCallbackInfo_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PtColorSelectInfo_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PtContainerCallback_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PtFileSelectionInfo_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PtScrollbarCallback_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PtTextCallback_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/photon/org/eclipse/swt/internal/photon/PtTreeItem_t.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/build-ce.bat
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/build.bat
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/make_win32.mak
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/make_wince.mak
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/structs.c
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/structs.h
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/swt.c
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/swt.rc
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/swtole.c
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/CAUUID.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/COM.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/CONTROLINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/COSERVERINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/DISPPARAMS.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/DVTARGETDEVICE.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/EXCEPINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FORMATETC.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FUNCDESC1.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FUNCDESC2.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/GUID.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IClassFactory2.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IConnectionPoint.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IConnectionPointContainer.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDataObject.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDispatch.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnum.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnumFORMATETC.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnumSTATSTG.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IFont.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IMoniker.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleCommandTarget.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleControl.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleInPlaceActiveObject.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleInPlaceObject.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleLink.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleObject.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleWindow.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IPersist.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IPersistStorage.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IProvideClassInfo.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IProvideClassInfo2.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/ISpecifyPropertyPages.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IStorage.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IStream.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/ITypeInfo.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IUnknown.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IViewObject2.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/LICINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLECMD.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLECMDTEXT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLEINPLACEFRAMEINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/STATSTG.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/STGMEDIUM.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/TYPEATTR.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/VARDESC1.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/VARDESC2.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/package.html
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/ACCEL.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/BITMAP.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/BROWSEINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/CHOOSECOLOR.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/CHOOSEFONT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/COMPOSITIONFORM.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/CREATESTRUCT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/DIBSECTION.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/DLLVERSIONINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/DOCINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/DRAWITEMSTRUCT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/DROPFILES.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/FILETIME.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/GCP_RESULTS.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/GRADIENT_RECT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/HDITEM.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/HELPINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/ICONINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/INITCOMMONCONTROLSEX.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/LOGBRUSH.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/LOGFONT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/LOGPEN.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/LRESULT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/LVCOLUMN.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/LVHITTESTINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/LVITEM.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/MEASUREITEMSTRUCT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/MENUINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/MENUITEMINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/MSG.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/NMHDR.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/NMHEADER.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/NMLISTVIEW.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/NMTOOLBAR.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/NMTTDISPINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/NONCLIENTMETRICS.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/OPENFILENAME.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/OS.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/OSVERSIONINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/PAINTSTRUCT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/POINT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/PRINTDLG.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/REBARBANDINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/RECT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/SCROLLINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/SHELLEXECUTEINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/SHMENUBARINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/SIZE.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TBBUTTON.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TBBUTTONINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TCHAR.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TCITEM.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TEXTMETRIC.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TOOLINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TRACKMOUSEEVENT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TRIVERTEX.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TVHITTESTINFO.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TVINSERTSTRUCT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/TVITEM.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/WINDOWPLACEMENT.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/WINDOWPOS.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/WNDCLASS.java
    bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/win32/package.html
    bundles/org.eclipse.swt/Eclipse SWT Printing/common/org/eclipse/swt/printing/PrinterData.java
    bundles/org.eclipse.swt/Eclipse SWT Printing/common/org/eclipse/swt/printing/package.html
    bundles/org.eclipse.swt/Eclipse SWT Printing/gtk/org/eclipse/swt/printing/PrintDialog.java
    bundles/org.eclipse.swt/Eclipse SWT Printing/gtk/org/eclipse/swt/printing/Printer.java
    bundles/org.eclipse.swt/Eclipse SWT Printing/gtk1x/org/eclipse/swt/printing/PrintDialog.java
    bundles/org.eclipse.swt/Eclipse SWT Printing/gtk1x/org/eclipse/swt/printing/Printer.java
    bundles/org.eclipse.swt/Eclipse SWT Printing/motif/org/eclipse/swt/printing/PrintDialog.java
    bundles/org.eclipse.swt/Eclipse SWT Printing/motif/org/eclipse/swt/printing/Printer.java
    bundles/org.eclipse.swt/Eclipse SWT Printing/photon/org/eclipse/swt/printing/PrintDialog.java
    bundles/org.eclipse.swt/Eclipse SWT Printing/photon/org/eclipse/swt/printing/Printer.java
    bundles/org.eclipse.swt/Eclipse SWT Printing/win32/org/eclipse/swt/printing/PrintDialog.java
    bundles/org.eclipse.swt/Eclipse SWT Printing/win32/org/eclipse/swt/printing/Printer.java
    bundles/org.eclipse.swt/Eclipse SWT Program/common/org/eclipse/swt/program/package.html
    bundles/org.eclipse.swt/Eclipse SWT Program/gtk/org/eclipse/swt/program/Program.java
    bundles/org.eclipse.swt/Eclipse SWT Program/gtk1x/org/eclipse/swt/program/Program.java
    bundles/org.eclipse.swt/Eclipse SWT Program/motif/org/eclipse/swt/program/Program.java
    bundles/org.eclipse.swt/Eclipse SWT Program/photon/org/eclipse/swt/program/Program.java
    bundles/org.eclipse.swt/Eclipse SWT Program/win32/org/eclipse/swt/program/Program.java
    bundles/org.eclipse.swt/Eclipse SWT/common/library/callback.c
    bundles/org.eclipse.swt/Eclipse SWT/common/library/callback.h
    bundles/org.eclipse.swt/Eclipse SWT/common/library/make_common.mak
    bundles/org.eclipse.swt/Eclipse SWT/common/library/swt.h
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWTError.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWTException.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/ArmEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/ArmListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/ControlAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/ControlEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/ControlListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/DisposeEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/DisposeListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/FocusAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/FocusEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/FocusListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/HelpEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/HelpListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/KeyAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/KeyEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/KeyListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/MenuAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/MenuEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/MenuListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/ModifyEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/ModifyListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/MouseAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/MouseEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/MouseListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/MouseMoveListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/MouseTrackAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/MouseTrackListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/PaintEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/PaintListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SelectionAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SelectionEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/SelectionListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/ShellAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/ShellEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/ShellListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/TraverseEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/TraverseListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/TreeAdapter.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/TreeEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/TreeListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/TypedEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/VerifyEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/VerifyListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/events/package.html
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/graphics/Drawable.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/graphics/ImageData.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/graphics/ImageLoader.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/graphics/ImageLoaderEvent.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/graphics/ImageLoaderListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/graphics/PaletteData.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/graphics/Point.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/graphics/RGB.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/graphics/package.html
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/Callback.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/FileFormat.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/GIFFileFormat.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGAppn.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGArithmeticConditioningTable.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGComment.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGEndOfImage.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGFileFormat.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGFixedSizeSegment.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGFrameHeader.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGHuffmanTable.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGQuantizationTable.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGRestartInterval.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGScanHeader.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGSegment.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGStartOfImage.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/JPEGVariableSizeSegment.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/LEDataInputStream.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/LEDataOutputStream.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/LZWCodec.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/LZWNode.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PNGFileFormat.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngChunk.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngChunkReader.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngDecodingDataStream.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngFileReadState.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngHuffmanTable.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngHuffmanTables.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngIdatChunk.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngIendChunk.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngIhdrChunk.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngLzBlockReader.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngPlteChunk.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/PngTrnsChunk.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/WinBMPFileFormat.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/WinICOFileFormat.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/image/package.html
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/package.html
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/layout/FillLayout.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/layout/GridData.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/layout/GridLayout.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/layout/RowData.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/layout/RowLayout.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/layout/package.html
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/package.html
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/Dialog.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/Event.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/EventTable.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/Item.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/Layout.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/Listener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/RunnableLock.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/Synchronizer.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/TypedListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/package.html
    bundles/org.eclipse.swt/Eclipse SWT/common/version.txt
    bundles/org.eclipse.swt/Eclipse SWT/common_j2me/org/eclipse/swt/internal/CloneableCompatibility.java
    bundles/org.eclipse.swt/Eclipse SWT/common_j2me/org/eclipse/swt/internal/Compatibility.java
    bundles/org.eclipse.swt/Eclipse SWT/common_j2me/org/eclipse/swt/internal/SWTEventListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common_j2me/org/eclipse/swt/internal/SWTEventObject.java
    bundles/org.eclipse.swt/Eclipse SWT/common_j2me/org/eclipse/swt/internal/SerializableCompatibility.java
    bundles/org.eclipse.swt/Eclipse SWT/common_j2se/org/eclipse/swt/internal/CloneableCompatibility.java
    bundles/org.eclipse.swt/Eclipse SWT/common_j2se/org/eclipse/swt/internal/Compatibility.java
    bundles/org.eclipse.swt/Eclipse SWT/common_j2se/org/eclipse/swt/internal/SWTEventListener.java
    bundles/org.eclipse.swt/Eclipse SWT/common_j2se/org/eclipse/swt/internal/SWTEventObject.java
    bundles/org.eclipse.swt/Eclipse SWT/common_j2se/org/eclipse/swt/internal/SWTMessages.properties
    bundles/org.eclipse.swt/Eclipse SWT/common_j2se/org/eclipse/swt/internal/SerializableCompatibility.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/bidi/org/eclipse/swt/internal/BidiUtil.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/coolbar/org/eclipse/swt/widgets/CoolBar.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/coolbar/org/eclipse/swt/widgets/CoolItem.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/tabfolder/org/eclipse/swt/widgets/TabFolder.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/tabfolder/org/eclipse/swt/widgets/TabItem.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/AbstractTreeItem.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Header.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/SelectableItem.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/SelectableItemWidget.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Table.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableColumn.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java
    bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeRoots.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Color.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Cursor.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/DefaultGtkStyle.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Device.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/DeviceData.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Font.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/FontData.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/FontMetrics.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GCData.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Image.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Pixbuffer.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/Region.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/Converter.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Canvas.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Caret.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ColorDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Composite.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Decorations.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/DirectoryDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FontDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Group.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/GtkFileDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Label.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MenuItem.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MessageBox.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ProgressBar.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Sash.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scrollable.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabFolder.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabItem.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableColumn.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableItem.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolBar.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tracker.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Trim.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/UtilFuncs.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/WidgetTable.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/Color.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/Cursor.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/DefaultGtkStyle.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/Device.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/DeviceData.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/Font.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/FontData.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/FontMetrics.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/GC.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/GCData.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/Image.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/Pixbuffer.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/graphics/Region.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/internal/Converter.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Button.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Canvas.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Caret.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/ColorDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Combo.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Composite.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Control.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Decorations.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/DirectoryDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Display.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/FileDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/FontDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Group.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/GtkFileDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Label.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/List.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Menu.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/MenuItem.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/MessageBox.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/ProgressBar.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Sash.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Scale.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/ScrollBar.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Scrollable.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Shell.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Slider.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/TabFolder.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/TabItem.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Table.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/TableColumn.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/TableItem.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Text.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/ToolBar.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/ToolItem.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Tracker.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Tree.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/TreeItem.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Trim.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/UtilFuncs.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/Widget.java
    bundles/org.eclipse.swt/Eclipse SWT/gtk1x/org/eclipse/swt/widgets/WidgetTable.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/Color.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/Cursor.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/Device.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/DeviceData.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/Font.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/FontData.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/FontMetrics.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/GC.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/GCData.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/Image.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/graphics/Region.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/internal/Converter.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Button.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Canvas.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Caret.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/ColorDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Combo.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Composite.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Control.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Decorations.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/DirectoryDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Display.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/FileDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/FontDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/FontExtStyle.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/FontExtStyles.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Group.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Label.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/List.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Menu.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/MenuItem.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/MessageBox.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/ProgressBar.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Sash.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Scale.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/ScrollBar.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Scrollable.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Shell.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Slider.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Text.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/ToolBar.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/ToolDrawable.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/ToolItem.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Tracker.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Widget.java
    bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/WidgetTable.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/Color.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/Cursor.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/Device.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/DeviceData.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/Font.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/FontData.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/FontMetrics.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/GC.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/GCData.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/Image.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/graphics/Region.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/internal/Converter.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Button.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Canvas.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Caret.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/ColorDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Combo.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Composite.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Control.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Decorations.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/DirectoryDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Display.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/FileDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/FontDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Group.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Label.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/List.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Menu.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/MenuItem.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/MessageBox.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/ProgressBar.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Sash.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Scale.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/ScrollBar.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Scrollable.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Shell.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Slider.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/TabFolder.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/TabItem.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Text.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/ToolBar.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/ToolItem.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Tracker.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/Widget.java
    bundles/org.eclipse.swt/Eclipse SWT/photon/org/eclipse/swt/widgets/WidgetTable.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Color.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Cursor.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Device.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/DeviceData.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Font.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/FontData.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/FontMetrics.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/GC.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/GCData.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Region.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/internal/BidiUtil.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/internal/Converter.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Button.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Canvas.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Caret.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/ColorDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Combo.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Composite.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/CoolBar.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/CoolItem.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Decorations.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/DirectoryDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/FileDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/FontDialog.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Group.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/ImageList.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Label.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/List.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Menu.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/MenuItem.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/MessageBox.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/ProgressBar.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Sash.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Scale.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/ScrollBar.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Scrollable.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Shell.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Slider.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TabFolder.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TabItem.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TableColumn.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TableItem.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Text.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/ToolBar.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/ToolItem.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tracker.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TreeItem.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Widget.java
    bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/WidgetTable.java
    bundles/org.eclipse.swt/about.html
    bundles/org.eclipse.swt/build.properties
    bundles/org.eclipse.swt/build.xml
    bundles/org.eclipse.swt/build_j2me.xml
    bundles/org.eclipse.swt/buildnotes_swt.html
    bundles/org.eclipse.swt/os/linux/x86/about.html
    bundles/org.eclipse.swt/os/linux/x86/cpl-v05.html
    bundles/org.eclipse.swt/os/linux/x86/lgpl-v21.txt
    bundles/org.eclipse.swt/os/linux/x86/libswt-gnome-motif-2024.so
    bundles/org.eclipse.swt/os/linux/x86/libswt-gtk-2024.so
    bundles/org.eclipse.swt/os/linux/x86/libswt-kde-motif-2024.so
    bundles/org.eclipse.swt/os/linux/x86/libswt-motif-2024.so
    bundles/org.eclipse.swt/os/linux/x86/libswt-pi-gtk-2024.so
    bundles/org.eclipse.swt/os/linux/x86/libswt-pixbuf-gtk-2024.so
    bundles/org.eclipse.swt/os/qnx/x86/libswt-photon-2024.so
    bundles/org.eclipse.swt/os/solaris/sparc/libswt-cde-motif-2024.so
    bundles/org.eclipse.swt/os/solaris/sparc/libswt-motif-2024.so
    bundles/org.eclipse.swt/os/win32-ce/arm/swt-win32-2024.dll
    bundles/org.eclipse.swt/os/win32/x86/swt-win32-2024.dll
    bundles/org.eclipse.swt/plugin.properties
    bundles/org.eclipse.swt/plugin.xml
    bundles/org.eclipse.swt/readme_swt.html
    examples/org.eclipse.swt.examples.controls/.classpath
    examples/org.eclipse.swt.examples.controls/.cvsignore
    examples/org.eclipse.swt.examples.controls/.vcm_meta
    examples/org.eclipse.swt.examples.controls/about.html
    examples/org.eclipse.swt.examples.controls/build.properties
    examples/org.eclipse.swt.examples.controls/doc-html/hglegal.htm
    examples/org.eclipse.swt.examples.controls/doc-html/ngibmcpy.gif
    examples/org.eclipse.swt.examples.controls/doc-html/swt_controls_ex.html
    examples/org.eclipse.swt.examples.controls/icons/controls_example.gif
    examples/org.eclipse.swt.examples.controls/import.properties
    examples/org.eclipse.swt.examples.controls/org/eclipse/swt/examples/controls/ControlPlugin.java
    examples/org.eclipse.swt.examples.controls/org/eclipse/swt/examples/controls/ControlView.java
    examples/org.eclipse.swt.examples.controls/plugin.properties
    examples/org.eclipse.swt.examples.controls/plugin.xml
    examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ControlPlugin.java
    examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ControlView.java
    examples/org.eclipse.swt.examples.launcher/.classpath
    examples/org.eclipse.swt.examples.launcher/.cvsignore
    examples/org.eclipse.swt.examples.launcher/.vcm_meta
    examples/org.eclipse.swt.examples.launcher/about.html
    examples/org.eclipse.swt.examples.launcher/build.properties
    examples/org.eclipse.swt.examples.launcher/doc-html/hglegal.htm
    examples/org.eclipse.swt.examples.launcher/doc-html/ngibmcpy.gif
    examples/org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html
    examples/org.eclipse.swt.examples.launcher/doc/org.eclipse.swt.examples.launcher.launchItems.html
    examples/org.eclipse.swt.examples.launcher/icons/closedFolder.gif
    examples/org.eclipse.swt.examples.launcher/icons/generic_example.gif
    examples/org.eclipse.swt.examples.launcher/icons/launcher_example.gif
    examples/org.eclipse.swt.examples.launcher/icons/openFolder.gif
    examples/org.eclipse.swt.examples.launcher/import.properties
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/ApplicationRunner.java
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/ImportProjectTask.java
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/ItemDescriptor.java
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/ItemTreeNode.java
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/LaunchDelegate.java
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/LauncherApplication.java
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/LauncherPlugin.java
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/LauncherView.java
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/ProgramLaunchDelegate.java
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/SplitLayout.java
    examples/org.eclipse.swt.examples.launcher/org/eclipse/swt/examples/launcher/ViewLaunchDelegate.java
    examples/org.eclipse.swt.examples.launcher/plugin.properties
    examples/org.eclipse.swt.examples.launcher/plugin.xml
    examples/org.eclipse.swt.examples.launcher/schema/org.eclipse.swt.examples.launcher.launchItems.xsd
    examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ItemDescriptor.java
    examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ItemTreeNode.java
    examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LauncherPlugin.java
    examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LauncherView.java
    examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/SplitLayout.java
    examples/org.eclipse.swt.examples.ole.win32/.classpath
    examples/org.eclipse.swt.examples.ole.win32/.cvsignore
    examples/org.eclipse.swt.examples.ole.win32/.vcm_meta
    examples/org.eclipse.swt.examples.ole.win32/about.html
    examples/org.eclipse.swt.examples.ole.win32/build.properties
    examples/org.eclipse.swt.examples.ole.win32/doc-html/hglegal.htm
    examples/org.eclipse.swt.examples.ole.win32/doc-html/ngibmcpy.gif
    examples/org.eclipse.swt.examples.ole.win32/doc-html/swt_ole_ex.html
    examples/org.eclipse.swt.examples.ole.win32/icons/backward_nav.gif
    examples/org.eclipse.swt.examples.ole.win32/icons/forward_nav.gif
    examples/org.eclipse.swt.examples.ole.win32/icons/home_nav.gif
    examples/org.eclipse.swt.examples.ole.win32/icons/refresh_nav.gif
    examples/org.eclipse.swt.examples.ole.win32/icons/search_nav.gif
    examples/org.eclipse.swt.examples.ole.win32/icons/stop_nav.gif
    examples/org.eclipse.swt.examples.ole.win32/icons/webbrowser_example.gif
    examples/org.eclipse.swt.examples.ole.win32/import.properties
    examples/org.eclipse.swt.examples.ole.win32/org/eclipse/swt/examples/ole/win32/OleBrowserView.java
    examples/org.eclipse.swt.examples.ole.win32/org/eclipse/swt/examples/ole/win32/OlePlugin.java
    examples/org.eclipse.swt.examples.ole.win32/org/eclipse/swt/examples/ole/win32/OleWebBrowser.java
    examples/org.eclipse.swt.examples.ole.win32/plugin.properties
    examples/org.eclipse.swt.examples.ole.win32/plugin.xml
    examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OleBrowserView.java
    examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OlePlugin.java
    examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OleWebBrowser.java
    examples/org.eclipse.swt.examples.paint/.classpath
    examples/org.eclipse.swt.examples.paint/.cvsignore
    examples/org.eclipse.swt.examples.paint/.vcm_meta
    examples/org.eclipse.swt.examples.paint/about.html
    examples/org.eclipse.swt.examples.paint/build.properties
    examples/org.eclipse.swt.examples.paint/doc-html/hglegal.htm
    examples/org.eclipse.swt.examples.paint/doc-html/ngibmcpy.gif
    examples/org.eclipse.swt.examples.paint/doc-html/swt_paint_ex.html
    examples/org.eclipse.swt.examples.paint/icons/fill_none.gif
    examples/org.eclipse.swt.examples.paint/icons/fill_outline.gif
    examples/org.eclipse.swt.examples.paint/icons/fill_solid.gif
    examples/org.eclipse.swt.examples.paint/icons/linestyle_dash.gif
    examples/org.eclipse.swt.examples.paint/icons/linestyle_dashdot.gif
    examples/org.eclipse.swt.examples.paint/icons/linestyle_dot.gif
    examples/org.eclipse.swt.examples.paint/icons/linestyle_solid.gif
    examples/org.eclipse.swt.examples.paint/icons/options_font.gif
    examples/org.eclipse.swt.examples.paint/icons/paint_example.gif
    examples/org.eclipse.swt.examples.paint/icons/tool_airbrush.gif
    examples/org.eclipse.swt.examples.paint/icons/tool_ellipse.gif
    examples/org.eclipse.swt.examples.paint/icons/tool_line.gif
    examples/org.eclipse.swt.examples.paint/icons/tool_pencil.gif
    examples/org.eclipse.swt.examples.paint/icons/tool_polyline.gif
    examples/org.eclipse.swt.examples.paint/icons/tool_rectangle.gif
    examples/org.eclipse.swt.examples.paint/icons/tool_roundedrectangle.gif
    examples/org.eclipse.swt.examples.paint/icons/tool_text.gif
    examples/org.eclipse.swt.examples.paint/import.properties
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/AirbrushTool.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/BasicPaintSession.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/ContainerFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/ContinuousPaintSession.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/DragPaintSession.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/EllipseFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/EllipseTool.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/Figure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/FigureDrawContext.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/LineFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/LineTool.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/PaintPlugin.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/PaintSession.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/PaintSurface.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/PaintTool.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/PaintView.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/PencilTool.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/PointFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/PolyLineTool.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/RectangleFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/RectangleTool.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/RoundedRectangleTool.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/SegmentedPaintSession.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/SolidEllipseFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/SolidPolygonFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/SolidRectangleFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/TextFigure.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/TextTool.java
    examples/org.eclipse.swt.examples.paint/org/eclipse/swt/examples/paint/ToolSettings.java
    examples/org.eclipse.swt.examples.paint/plugin.properties
    examples/org.eclipse.swt.examples.paint/plugin.xml
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/AirbrushTool.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/BasicPaintSession.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ContainerFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ContinuousPaintSession.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/DragPaintSession.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/EllipseFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/EllipseTool.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/Figure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/FigureDrawContext.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/LineFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/LineTool.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintPlugin.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintSession.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintSurface.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintTool.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintView.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PencilTool.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PointFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PolyLineTool.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RectangleFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RectangleTool.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RoundedRectangleTool.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SegmentedPaintSession.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidEllipseFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidPolygonFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidRectangleFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/TextFigure.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/TextTool.java
    examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ToolSettings.java
    examples/org.eclipse.swt.examples/.classpath
    examples/org.eclipse.swt.examples/.cvsignore
    examples/org.eclipse.swt.examples/.vcm_meta
    examples/org.eclipse.swt.examples/about.html
    examples/org.eclipse.swt.examples/build.properties
    examples/org.eclipse.swt.examples/doc-html/hglegal.htm
    examples/org.eclipse.swt.examples/doc-html/ngibmcpy.gif
    examples/org.eclipse.swt.examples/doc-html/swt_addressbook_ex.html
    examples/org.eclipse.swt.examples/doc-html/swt_control_ex.html
    examples/org.eclipse.swt.examples/doc-html/swt_fileviewer_ex.html
    examples/org.eclipse.swt.examples/doc-html/swt_helloworld_ex.html
    examples/org.eclipse.swt.examples/doc-html/swt_hoverhelp_ex.html
    examples/org.eclipse.swt.examples/doc-html/swt_imageanalyzer_ex.html
    examples/org.eclipse.swt.examples/doc-html/swt_javaviewer_ex.html
    examples/org.eclipse.swt.examples/doc-html/swt_manual_setup.html
    examples/org.eclipse.swt.examples/doc-html/swt_texteditor_ex.html
    examples/org.eclipse.swt.examples/examples_addressbook.properties
    examples/org.eclipse.swt.examples/examples_control.properties
    examples/org.eclipse.swt.examples/examples_fileviewer.properties
    examples/org.eclipse.swt.examples/examples_helloworld.properties
    examples/org.eclipse.swt.examples/examples_hoverhelp.properties
    examples/org.eclipse.swt.examples/examples_images.properties
    examples/org.eclipse.swt.examples/examples_javaviewer.properties
    examples/org.eclipse.swt.examples/examples_texteditor.properties
    examples/org.eclipse.swt.examples/import.properties
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/addressbook/AddressBook.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/addressbook/DataEntryDialog.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/addressbook/FindListener.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/addressbook/SearchDialog.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/AlignableTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/ButtonTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/ComboTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/ControlExample.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/CoolBarTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/DialogTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/LabelTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/ListTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/ProgressBarTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/RangeTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/SashTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/ScrollableTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/ShellTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/SliderTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/Tab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/TableTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/TextTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/ToolBarTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/TreeTab.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/closedFolder.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/openFolder.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/controlexample/target.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/FileViewer.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/IconCache.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/cmd_Print.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/cmd_Search.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/generic_example.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/icon_File.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/helloworld/HelloWorld1.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/helloworld/HelloWorld2.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/helloworld/HelloWorld3.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/helloworld/HelloWorld4.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/helloworld/HelloWorld5.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/hoverhelp/HoverHelp.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/hoverhelp/information.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/hoverhelp/warning.gif
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/javaviewer/JavaViewer.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/Images.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/TextEditor.java
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/blue.bmp
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/blue_mask.bmp
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/bold.bmp
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/bold_mask.bmp
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/erase.bmp
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/erase_mask.bmp
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/green.bmp
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/green_mask.bmp
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/red.bmp
    examples/org.eclipse.swt.examples/org/eclipse/swt/examples/texteditor/red_mask.bmp
    examples/org.eclipse.swt.examples/plugin.properties
    examples/org.eclipse.swt.examples/plugin.xml
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp
    tests/org.eclipse.swt.tests/.classpath
    tests/org.eclipse.swt.tests/.cvsignore
    tests/org.eclipse.swt.tests/.vcm_meta
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGraphicsTests.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/EmulatedWidgetsTests.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/StyledTextContentSpec.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/SwtJunit.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/SwtTestCase.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_SWT.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_SWTError.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_SWTException.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_AnimatedProgress.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_BidiSegmentEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_BidiSegmentListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_BusyIndicator.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CCombo.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CLabel.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CTabFolder.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CTabFolderAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CTabFolderEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CTabFolderListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CTabItem.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ControlEditor.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ExtendedModifyEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ExtendedModifyListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_LineBackgroundEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_LineBackgroundListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_LineStyleEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_LineStyleListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_PopupList.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ST.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_SashForm.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ScrolledComposite.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StackLayout.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyleRange.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledText.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledTextContent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TableEditor.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TableTree.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TableTreeEditor.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TableTreeItem.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TextChangeListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TextChangedEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TextChangingEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TreeEditor.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_VerifyKeyListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ViewForm.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_ByteArrayTransfer.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_Clipboard.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DND.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DragSource.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DragSourceAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DragSourceEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DragSourceListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DropTarget.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DropTargetAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DropTargetEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DropTargetListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_FileTransfer.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_RTFTransfer.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_TextTransfer.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_Transfer.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_TransferData.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ArmEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ArmListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ControlAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ControlEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ControlListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_DisposeEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_DisposeListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_FocusAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_FocusEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_FocusListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_HelpEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_HelpListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_KeyAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_KeyEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_KeyListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MenuAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MenuEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MenuListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ModifyEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ModifyListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseMoveListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseTrackAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseTrackListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_PaintEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_PaintListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_SelectionAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_SelectionEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_SelectionListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ShellAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ShellEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ShellListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TraverseEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TraverseListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TreeAdapter.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TreeEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TreeListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TypedEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_VerifyEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_VerifyListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Color.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Cursor.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Device.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_DeviceData.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Drawable.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Font.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_FontData.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_FontMetrics.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_GC.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_GCData.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Image.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_ImageData.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_ImageLoader.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_ImageLoaderEvent.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_ImageLoaderListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_PaletteData.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Point.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_RGB.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Rectangle.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Region.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_FillLayout.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_GridData.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_GridLayout.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_RowData.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_RowLayout.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_printing_PrintDialog.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_printing_Printer.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_printing_PrinterData.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_program_Program.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Button.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Canvas.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Caret.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ColorDialog.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Combo.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Composite.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Control.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_CoolBar.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_CoolItem.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Decorations.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Dialog.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_DirectoryDialog.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Display.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Event.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_FileDialog.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_FontDialog.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Group.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Item.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Label.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Layout.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_List.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Listener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Menu.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_MenuItem.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_MessageBox.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ProgressBar.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Sash.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Scale.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ScrollBar.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Scrollable.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Shell.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Slider.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Synchronizer.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TabFolder.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TabItem.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Table.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TableColumn.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TableItem.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Text.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ToolBar.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ToolItem.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Tracker.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Tree.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TreeItem.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TypedListener.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Widget.java
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/check.bmp
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/dot.gif
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/folder.bmp
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/folderOpen.bmp
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/push.bmp
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/radio.bmp
    tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/target.bmp
    tests/org.eclipse.swt.tests/about.html
    tests/org.eclipse.swt.tests/build.properties
    tests/org.eclipse.swt.tests/plugin.xml
    tests/org.eclipse.swt.tests/test.xml
diff --git a/bundles/org.eclipse.swt/.classpath_gtk b/bundles/org.eclipse.swt/.classpath_gtk
deleted file mode 100644
index b70d21a..0000000
--- a/bundles/org.eclipse.swt/.classpath_gtk
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="Eclipse SWT/gtk"/>
-    <classpathentry kind="src" path="Eclipse SWT/emulated"/>
-    <classpathentry kind="src" path="Eclipse SWT/common"/>
-    <classpathentry kind="src" path="Eclipse SWT/common_j2se"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/gtk"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/gtk"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/gtk"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/gtk"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/common_j2se"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.swt/.classpath_gtk_j2me b/bundles/org.eclipse.swt/.classpath_gtk_j2me
deleted file mode 100644
index 48fef2d..0000000
--- a/bundles/org.eclipse.swt/.classpath_gtk_j2me
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="Eclipse SWT/gtk"/>
-    <classpathentry kind="src" path="Eclipse SWT/emulated"/>
-    <classpathentry kind="src" path="Eclipse SWT/common"/>
-    <classpathentry kind="src" path="Eclipse SWT/common_j2me"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/gtk"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/gtk"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/gtk"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/gtk"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/common_j2me"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.swt/.classpath_motif b/bundles/org.eclipse.swt/.classpath_motif
deleted file mode 100755
index 70d3634..0000000
--- a/bundles/org.eclipse.swt/.classpath_motif
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="Eclipse SWT/motif"/>
-    <classpathentry kind="src" path="Eclipse SWT/emulated"/>
-    <classpathentry kind="src" path="Eclipse SWT/common"/>
-    <classpathentry kind="src" path="Eclipse SWT/common_j2se"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/motif"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/motif"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/motif"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/motif"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/common_j2se"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.swt/.classpath_motif_j2me b/bundles/org.eclipse.swt/.classpath_motif_j2me
deleted file mode 100644
index abf6b8b..0000000
--- a/bundles/org.eclipse.swt/.classpath_motif_j2me
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-    <classpathentry kind="var" path="JRE_LIB"/>

-    <classpathentry kind="src" path="Eclipse SWT/motif"/>

-    <classpathentry kind="src" path="Eclipse SWT/emulated"/>

-    <classpathentry kind="src" path="Eclipse SWT/common"/>

-    <classpathentry kind="src" path="Eclipse SWT/common_j2me"/>

-    <classpathentry kind="src" path="Eclipse SWT Printing/motif"/>

-    <classpathentry kind="src" path="Eclipse SWT Printing/common"/>

-    <classpathentry kind="src" path="Eclipse SWT Program/motif"/>

-    <classpathentry kind="src" path="Eclipse SWT Program/common"/>

-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/motif"/>

-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/common"/>

-    <classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>

-    <classpathentry kind="src" path="Eclipse SWT PI/motif"/>

-    <classpathentry kind="src" path="Eclipse SWT PI/common_j2me"/>

-    <classpathentry kind="output" path="bin"/>

-</classpath>
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt/.classpath_photon b/bundles/org.eclipse.swt/.classpath_photon
deleted file mode 100755
index 5afc80d..0000000
--- a/bundles/org.eclipse.swt/.classpath_photon
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="Eclipse SWT/photon"/>
-    <classpathentry kind="src" path="Eclipse SWT/emulated"/>
-    <classpathentry kind="src" path="Eclipse SWT/common"/>
-    <classpathentry kind="src" path="Eclipse SWT/common_j2se"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/photon"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/photon"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/photon"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/photon"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/common_j2se"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.swt/.classpath_photon_j2me b/bundles/org.eclipse.swt/.classpath_photon_j2me
deleted file mode 100644
index 8a436c6..0000000
--- a/bundles/org.eclipse.swt/.classpath_photon_j2me
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="Eclipse SWT/photon"/>
-    <classpathentry kind="src" path="Eclipse SWT/emulated"/>
-    <classpathentry kind="src" path="Eclipse SWT/common"/>
-    <classpathentry kind="src" path="Eclipse SWT/common_j2me"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/photon"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/photon"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/photon"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/photon"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/common_j2me"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.swt/.classpath_win32 b/bundles/org.eclipse.swt/.classpath_win32
deleted file mode 100755
index 35ad741..0000000
--- a/bundles/org.eclipse.swt/.classpath_win32
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="Eclipse SWT/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT/common"/>
-    <classpathentry kind="src" path="Eclipse SWT/common_j2se"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/common"/>
-    <classpathentry kind="src" path="Eclipse SWT AWT/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT OLE Win32/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/common_j2se"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.swt/.classpath_win32_j2me b/bundles/org.eclipse.swt/.classpath_win32_j2me
deleted file mode 100644
index 2b2dd63..0000000
--- a/bundles/org.eclipse.swt/.classpath_win32_j2me
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="Eclipse SWT/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT/common"/>
-    <classpathentry kind="src" path="Eclipse SWT/common_j2me"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT Printing/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT Program/common"/>
-    <classpathentry kind="src" path="Eclipse SWT AWT/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT OLE Win32/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT Drag and Drop/common"/>
-    <classpathentry kind="src" path="Eclipse SWT Custom Widgets/common"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/win32"/>
-    <classpathentry kind="src" path="Eclipse SWT PI/common_j2me"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.swt/.cvsignore b/bundles/org.eclipse.swt/.cvsignore
deleted file mode 100755
index 3f04152..0000000
--- a/bundles/org.eclipse.swt/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin

-.classpath

diff --git a/bundles/org.eclipse.swt/.vcm_meta b/bundles/org.eclipse.swt/.vcm_meta
deleted file mode 100755
index 67f905f..0000000
--- a/bundles/org.eclipse.swt/.vcm_meta
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project-description>

-	<comment></comment>

-	<nature id="org.eclipse.jdt.core.javanature"/>

-	<nature id="org.eclipse.pde.PluginNature"/>

-	<builder name="org.eclipse.jdt.core.javabuilder">

-	</builder>

-	<builder name="org.eclipse.pde.ManifestBuilder">

-	</builder>

-	<builder name="org.eclipse.pde.SchemaBuilder">

-	</builder>

-</project-description>

diff --git a/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/internal/awt/win32/SWT_AWT.java b/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/internal/awt/win32/SWT_AWT.java
deleted file mode 100755
index d6f2606..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/internal/awt/win32/SWT_AWT.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.eclipse.swt.internal.awt.win32;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-/* Win32, SUN AWT */

-import sun.awt.DrawingSurface;

-import sun.awt.windows.WDrawingSurfaceInfo;

-import sun.awt.windows.WEmbeddedFrame;

-

-/* SWT Imports */

-import org.eclipse.swt.*;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Listener;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.graphics.Rectangle;

-

-/* AWT Imports */

-import java.awt.Canvas;

-import java.awt.Panel;

-import java.awt.Dimension;

-import java.awt.event.ComponentAdapter;

-import java.awt.event.ComponentEvent;

-import java.awt.event.WindowEvent;

-import java.awt.event.FocusEvent;

-

-public class SWT_AWT {

-

-public static Panel new_Panel (final Composite parent) {

-	int handle = parent.handle;

-	final WEmbeddedFrame frame = new WEmbeddedFrame (handle);

-	Panel panel = new Panel ();

-	frame.add (panel);

-	parent.addListener (SWT.Activate, new Listener () {

-		public void handleEvent (Event e) {

-			frame.dispatchEvent (new WindowEvent (frame, WindowEvent.WINDOW_ACTIVATED));

-			frame.dispatchEvent (new FocusEvent (frame, FocusEvent.FOCUS_GAINED));

-		}

-	});

-	parent.addListener (SWT.Deactivate, new Listener () {

-		public void handleEvent (Event e) {

-			frame.dispatchEvent (new WindowEvent(frame, WindowEvent.WINDOW_DEACTIVATED));

-			frame.dispatchEvent (new FocusEvent(frame, FocusEvent.FOCUS_LOST));

-		}

-	});

-	parent.addListener (SWT.Resize, new Listener () {

-		public void handleEvent (Event e) {

-			Rectangle rect = parent.getClientArea ();

-			frame.setSize (rect.width, rect.height);

-			frame.validate ();

-		}

-	});

-	parent.addListener (SWT.Dispose, new Listener () {

-		public void handleEvent (Event e) {

-			frame.dispose ();

-		}

-	});

-	return panel;

-}

-

-public static Shell new_Shell (Display display, final Canvas parent) {

-	DrawingSurface ds = (DrawingSurface)parent.getPeer();

-	WDrawingSurfaceInfo wds = (WDrawingSurfaceInfo)ds.getDrawingSurfaceInfo();

-	wds.lock ();

-	int handle = wds.getHWnd ();

-	wds.unlock ();

-	final Shell shell = Shell.win32_new (display, handle);

-	final Display newDisplay = shell.getDisplay ();

-	parent.addComponentListener(new ComponentAdapter () {

-		public void componentResized (ComponentEvent e) {

-			newDisplay.syncExec (new Runnable () {

-				public void run () {

-					Dimension dim = parent.getSize ();

-					shell.setSize (dim.width, dim.height);

-				}

-			});

-		}

-	});

-	shell.setVisible (true);

-	return shell;

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/internal/awt/win32/package.html b/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/internal/awt/win32/package.html
deleted file mode 100755
index 14ccb40..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/internal/awt/win32/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
- <html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-SWT experimental AWT embedding support
-<h2>
-Package Specification</h2>
-This package contains an experimental <code>SWT_AWT</code> class which provides support for
-embedding AWT widgets within SWT layouts. Currently, this support only works on win32 platforms,
-and has several lightweight widget focus issues.
-</body>
-</html>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/AnimatedProgress.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/AnimatedProgress.java
deleted file mode 100755
index efdb04a..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/AnimatedProgress.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*; 

-import org.eclipse.swt.events.*;

-

-/**

- * A control for showing progress feedback for a long running operation.

- */

-public class AnimatedProgress extends Canvas {

-

-	private static final int SLEEP = 70;

-	private static final int DEFAULT_WIDTH = 160;

-	private static final int DEFAULT_HEIGHT = 18;

-	private boolean active = false;

-	private boolean showStripes = false;

-	private int value;

-	private int orientation = SWT.HORIZONTAL;

-	private boolean showBorder = false;

-

-public AnimatedProgress(Composite parent, int style) {

-	super(parent, checkStyle(style));

-	

-	if ((style & SWT.VERTICAL) != 0) {

-		orientation = SWT.VERTICAL;

-	}

-	showBorder = (style & SWT.BORDER) != 0;

-	

-	addControlListener(new ControlAdapter() {

-		public void controlResized(ControlEvent e) {

-			redraw();

-		}

-	});	

-	addPaintListener(new PaintListener() {

-		public void paintControl(PaintEvent e) {

-			paint(e);

-		}

-	});

-	addDisposeListener(new DisposeListener() {

-		public void widgetDisposed(DisposeEvent e){

-			stop();

-		}

-	});

-}

-private static int checkStyle (int style) {

-	int mask = SWT.NONE;

-	return style & mask;

-}

-/**

- * Stop the animation if it is not already stopped and 

- * reset the presentation to a blank appearance.

- */

-public synchronized void clear(){

-	if (active) 

-		stop();

-	showStripes = false;

-	redraw();

-}

-public Point computeSize(int wHint, int hHint, boolean changed) {

-	Point size = null;

-	if (orientation == SWT.HORIZONTAL) {

-		size = new Point(DEFAULT_WIDTH, DEFAULT_HEIGHT);

-	} else {

-		size = new Point(DEFAULT_HEIGHT, DEFAULT_WIDTH);

-	}

-	if (wHint != SWT.DEFAULT) size.x = wHint;

-	if (hHint != SWT.DEFAULT) size.y = hHint;

-	

-	return size;

-}

-private void drawBevelRect(GC gc, int x, int y, int w, int h, Color topleft, Color bottomright) {

-	

-	gc.setForeground(topleft);

-	gc.drawLine(x, y, x+w-1, y);

-	gc.drawLine(x, y, x, y+h-1);

-		

-	gc.setForeground(bottomright);

-	gc.drawLine(x+w, y, x+w, y+h);

-	gc.drawLine(x, y+h, x+w, y+h);

-}

-private void paint(PaintEvent event) {

-	GC gc = event.gc;

-	Display disp= getDisplay();

-			

-	Rectangle rect= getClientArea();

-	gc.fillRectangle(rect);

-	if (showBorder) {

-		drawBevelRect(gc, rect.x, rect.y, rect.width-1, rect.height-1,

-			disp.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW),

-			disp.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW));

-	}

-	

-	paintStripes(gc);

-}	

-private void paintStripes(GC gc) {

-	

-	if (!showStripes) return;

-	

-	Rectangle rect= getClientArea();

-	// Subtracted border painted by paint.

-	rect = new Rectangle(rect.x+2, rect.y+2, rect.width-4, rect.height-4);

-

-	gc.setLineWidth(2);

-	gc.setClipping(rect);

-	Color color = getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION);

-	gc.setBackground(color);

-	gc.fillRectangle(rect);

-	gc.setForeground(this.getBackground());

-	int step = 12;

-	int foregroundValue = value == 0 ? step - 2 : value - 2;

-	if (orientation == SWT.HORIZONTAL) {

-		int y = rect.y - 1;

-		int w = rect.width;

-		int h = rect.height + 2;

-		for (int i= 0; i < w; i+= step) {

-			int x = i + foregroundValue;

-			gc.drawLine(x, y, x, h);

-		}

-	} else {

-		int x = rect.x - 1;

-		int w = rect.width + 2;

-		int h = rect.height;

-

-		for (int i= 0; i < h; i+= step) {

-			int y = i + foregroundValue;

-			gc.drawLine(x, y, w, y);

-		}

-	}

-	

-	if (active) {

-		value = (value + 2) % step;

-	}

-}

-/**

-* Start the animation.

-*/

-public synchronized void start() {

-	

-	if (active) return;

-

-	active = true;

-	showStripes = true;

-	

-	final Display display = getDisplay();

-	final Runnable [] timer = new Runnable [1];

-	timer [0] = new Runnable () {

-		public void run () {

-			if (!active) return;

-			GC gc = new GC(AnimatedProgress.this);			

-			paintStripes(gc);

-			gc.dispose();

-			display.timerExec (SLEEP, timer [0]);

-		}

-	};

-	display.timerExec (SLEEP, timer [0]);

-}

-/**

-* Stop the animation.   Freeze the presentation at its current appearance.

-*/

-public synchronized void stop() {

-	active = false;

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentEvent.java
deleted file mode 100644
index 9c9394c..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentEvent.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.*;

-

-/**

- * This event is sent to BidiSegmentListeners when a line is to

- * be measured or rendered in a bidi locale.  The segments field is 

- * used to specify text ranges in the line that should be treated as 

- * separate segments for bidi reordering.  Each segment will be reordered 

- * and rendered separately.

- * <p>

- * The elements in the segments field specify the start offset of 

- * a segment relative to the start of the line. They must follow

- * the following rules:

- * <ul>

- * <li>first element must be 0

- * <li>elements must be in ascending order and must not have duplicates

- * <li>elements must not exceed the line length

- * </ul>

- * In addition, the last element may be set to the end of the line 

- * but this is not required.

- *

- * The segments field may be left null if the entire line should 

- * be reordered as is.

- * </p>

- * A BidiSegmentListener may be used when adjacent segments of 

- * right-to-left text should not be reordered relative to each other. 

- * For example, within a Java editor, you may wish multiple 

- * right-to-left string literals to be reordered differently than the

- * bidi algorithm specifies.  

- *

- * Example:

- * <pre>

- * 	stored line = "R1R2R3" + "R4R5R6"

- *		R1 to R6 are right-to-left characters. The quotation marks

- * 		are part of the line text. The line is 13 characters long.

- * 

- * 	segments = null: 

- * 		entire line will be reordered and thus the two R2L segments 

- * 		swapped (as per the bidi algorithm). 

- *		visual line (rendered on screen) = "R6R5R4" + "R3R2R1"

- * 

- * 	segments = [0, 5, 8]	

- * 		"R1R2R3" will be reordered, followed by [blank]+[blank] and 

- * 		"R4R5R6". 

- *		visual line = "R3R2R1" + "R6R5R4"

- * </pre>

- */

-public class BidiSegmentEvent extends TypedEvent {

-	/** line start offset */

-	public int lineOffset;

-	/** line text */			

-	public String lineText;

-	/** bidi segments, see above */

-	public int[] segments;			

-

-BidiSegmentEvent(StyledTextEvent e) {

-	super(e);

-	lineOffset = e.detail;

-	lineText = e.text;

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentListener.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentListener.java
deleted file mode 100644
index 806a7ec..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BidiSegmentListener.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-import org.eclipse.swt.internal.SWTEventListener;

-

-/**

- * This listener interface may be implemented in order to receive

- * BidiSegmentEvents.

- * @see BidiSegmentEvent

- */ 

-public interface BidiSegmentListener extends SWTEventListener {

-

-/**

- * This method is called when a line needs to be reordered for 

- * measuring or rendering in a bidi locale. 

- * <p>

- *

- * @param event.lineOffset line start offset (input)	

- * @param event.lineText line text (input)

- * @param event.segments text segments that should be reordered 

- *	separately. (output)

- * @see BidiSegmentEvent

- */

-public void lineGetSegments(BidiSegmentEvent event);

-

-}

-

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BusyIndicator.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BusyIndicator.java
deleted file mode 100755
index fc640a5..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/BusyIndicator.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-/**

- * Support for showing a Busy Cursor during a long running process.

- */

-public class BusyIndicator {

-

-	static int nextBusyId = 1;

-	static final String BUSYID_NAME = "SWT BusyIndicator";

-

-/**

- * Runs the given <code>Runnable</code> while providing

- * busy feedback using this busy indicator.

- * 

- * @param the display on which the busy feedback should be

- *        displayed.  If the display is null, the Display for the current

- *        thread will be used.  If there is no Display for the current thread,

- *        the runnable code will be executed and no busy feedback will be displayed.

- * @param the runnable for which busy feedback is to be shown

- * @see #showWhile

- */

-

-public static void showWhile(Display display, Runnable runnable) {

-	if (display == null) {

-		display = Display.getCurrent();

-		if (display == null) {

-			runnable.run();

-			return;

-		}

-	}

-	

-	Integer busyId = new Integer(nextBusyId);

-	nextBusyId++;

-	Cursor cursor = new Cursor(display, SWT.CURSOR_WAIT);

-	

-	Shell[] shells = display.getShells();

-	for (int i = 0; i < shells.length; i++) {

-		Integer id = (Integer)shells[i].getData(BUSYID_NAME);

-		if (id == null) {

-			shells[i].setCursor(cursor);

-			shells[i].setData(BUSYID_NAME, busyId);

-		}

-	}

-		

-	try {

-		runnable.run();

-	} finally {

-		shells = display.getShells();

-		for (int i = 0; i < shells.length; i++) {

-			Integer id = (Integer)shells[i].getData(BUSYID_NAME);

-			if (id == busyId) {

-				shells[i].setCursor(null);

-				shells[i].setData(BUSYID_NAME, null);

-			}

-		}

-		if (cursor != null && !cursor.isDisposed()) {

-			cursor.dispose();

-		}

-	}

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CCombo.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CCombo.java
deleted file mode 100755
index 37d2b55..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CCombo.java
+++ /dev/null
@@ -1,1057 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.widgets.*;

-

-/**

- * The CCombo class represents a selectable user interface object

- * that combines a text field and a list and issues notificiation

- * when an item is selected from the list.

- * <p>

- * Note that although this class is a subclass of <code>Composite</code>,

- * it does not make sense to add children to it, or set a layout on it.

- * </p>

- * <dl>

- * <dt><b>Styles:</b>

- * <dd>BORDER, READ_ONLY</dd>

- * <dt><b>Events:</b>

- * <dd>Selection</dd>

- * </dl>

- */

-public final class CCombo extends Composite {

-

-	static final int ITEMS_SHOWING = 5;

-

-	Text text;

-	List list;

-	Shell popup;

-	Button arrow;

-	boolean hasFocus;

-	

-public CCombo (Composite parent, int style) {

-	super (parent, checkStyle (style));

-	

-	style = getStyle();

-	

-	int textStyle = SWT.SINGLE;

-	if ((style & SWT.READ_ONLY) != 0) textStyle |= SWT.READ_ONLY;

-	if ((style & SWT.FLAT) != 0) textStyle |= SWT.FLAT;

-	text = new Text (this, textStyle);

-	

-	popup = new Shell (getShell (), SWT.NO_TRIM);

-	

-	int listStyle = SWT.SINGLE | SWT.V_SCROLL;

-	if ((style & SWT.FLAT) != 0) listStyle |= SWT.FLAT;

-	list = new List (popup, listStyle);

-	

-	int arrowStyle = SWT.ARROW | SWT.DOWN;

-	if ((style & SWT.FLAT) != 0) arrowStyle |= SWT.FLAT;

-	arrow = new Button (this, arrowStyle);

-

-	Listener listener = new Listener () {

-		public void handleEvent (Event event) {

-			if (popup == event.widget) {

-				popupEvent (event);

-				return;

-			}

-			if (text == event.widget) {

-				textEvent (event);

-				return;

-			}

-			if (list == event.widget) {

-				listEvent (event);

-				return;

-			}

-			if (arrow == event.widget) {

-				arrowEvent (event);

-				return;

-			}

-			if (CCombo.this == event.widget) {

-				comboEvent (event);

-				return;

-			}

-

-		}

-	};

-	

-	int [] comboEvents = {SWT.Dispose, SWT.Move, SWT.Resize};

-	for (int i=0; i<comboEvents.length; i++) this.addListener (comboEvents [i], listener);

-	

-	int [] popupEvents = {SWT.Close, SWT.Paint, SWT.Deactivate};

-	for (int i=0; i<popupEvents.length; i++) popup.addListener (popupEvents [i], listener);

-	

-	int [] textEvents = {SWT.KeyDown, SWT.KeyUp, SWT.Modify, SWT.MouseDown, SWT.MouseUp, SWT.Traverse, SWT.FocusIn, SWT.FocusOut};

-	for (int i=0; i<textEvents.length; i++) text.addListener (textEvents [i], listener);

-	

-	int [] listEvents = {SWT.MouseUp, SWT.Selection, SWT.Traverse, SWT.KeyDown, SWT.KeyUp, SWT.FocusIn, SWT.FocusOut};

-	for (int i=0; i<listEvents.length; i++) list.addListener (listEvents [i], listener);

-	

-	int [] arrowEvents = {SWT.MouseDown, SWT.FocusIn, SWT.FocusOut};

-	for (int i=0; i<arrowEvents.length; i++) arrow.addListener (arrowEvents [i], listener);

-	

-}

-static int checkStyle (int style) {

-	int mask = SWT.BORDER | SWT.READ_ONLY | SWT.FLAT;

-	return style & mask;

-}

-/**

-* Adds an item.

-* <p>

-* The item is placed at the end of the list.

-* Indexing is zero based.

-*

-* @param string the new item

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when the string is null

-* @exception SWTError(ERROR_ITEM_NOT_ADDED)

-*	when the item cannot be added

-*/

-public void add (String string) {

-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	list.add (string);

-}

-/**

-* Adds an item at an index.

-* <p>

-* The item is placed at an index in the list.

-* Indexing is zero based.

-*

-* This operation will fail when the index is

-* out of range.

-*

-* @param string the new item

-* @param index the index for the item

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when the string is null

-* @exception SWTError(ERROR_ITEM_NOT_ADDED)

-*	when the item cannot be added

-*/

-public void add (String string, int index) {

-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	list.add (string, index);

-}

-/**	 

-* Adds the listener to receive events.

-* <p>

-*

-* @param listener the listener

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when listener is null

-*/

-public void addModifyListener (ModifyListener listener) {;

-	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	TypedListener typedListener = new TypedListener (listener);

-	addListener (SWT.Modify, typedListener);

-}

-/**	 

-* Adds the listener to receive events.

-* <p>

-*

-* @param listener the listener

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when listener is null

-*/

-public void addSelectionListener(SelectionListener listener) {

-	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	TypedListener typedListener = new TypedListener (listener);

-	addListener (SWT.Selection,typedListener);

-	addListener (SWT.DefaultSelection,typedListener);

-}

-void arrowEvent (Event event) {

-	switch (event.type) {

-		case SWT.FocusIn: {

-			if (hasFocus) return;

-			hasFocus = true;

-			if (getEditable ()) text.selectAll ();

-			Event e = new Event();

-			e.time = event.time;

-			notifyListeners(SWT.FocusIn, e);

-			break;

-		}

-		case SWT.FocusOut: {

-			Control focusControl = getDisplay ().getFocusControl();

-			if (focusControl == list || focusControl == text) return;

-			hasFocus = false;

-			Event e = new Event();

-			e.time = event.time;

-			notifyListeners(SWT.FocusOut, e);

-			break;

-		}

-		case SWT.MouseDown: {

-			if (event.button != 1) return;

-			dropDown (!isDropped ());

-			break;

-		}

-	}

-}

-/**

-* Clears the current selection.

-* <p>

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-*/

-public void clearSelection () {

-	text.clearSelection ();

-	list.deselectAll ();

-}

-void comboEvent (Event event) {

-	switch (event.type) {

-		case SWT.Dispose:

-			if (popup != null && !popup.isDisposed ()) popup.dispose ();

-			popup = null;  

-			text = null;  

-			list = null;  

-			arrow = null;

-			break;

-		case SWT.Move:

-			dropDown(false);

-			break;

-		case SWT.Resize:

-			internalLayout();

-			break;

-	}

-}

-

-public Point computeSize (int wHint, int hHint, boolean changed) {

-	int width = 0, height = 0;

-	Point textSize = text.computeSize (wHint, SWT.DEFAULT, changed);

-	Point arrowSize = arrow.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);

-	Point listSize = list.computeSize (wHint, SWT.DEFAULT, changed);

-	Point barSize = list.getVerticalBar().getSize();

-	int borderWidth = getBorderWidth();

-	

-	height = Math.max (hHint, Math.max(textSize.y, arrowSize.y)  + 2*borderWidth);

-	width = Math.max (wHint, Math.max(textSize.x + arrowSize.x + 2*borderWidth, listSize.x + 2)  );

-	return new Point (width, height);

-}

-/**

-* Deselects an item.

-* <p>

-* If the item at an index is selected, it is

-* deselected.  If the item at an index is not

-* selected, it remains deselected.  Indices

-* that are out of range are ignored.  Indexing

-* is zero based.

-*

-* @param index the index of the item

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-*/

-public void deselect (int index) {

-	list.deselect (index);

-}

-/**

-* Deselects all items.

-* <p>

-*

-* If an item is selected, it is deselected.

-* If an item is not selected, it remains unselected.

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-*/

-public void deselectAll () {

-	list.deselectAll ();

-}

-void dropDown (boolean drop) {

-	if (drop == isDropped ()) return;

-	if (!drop) {

-		popup.setVisible (false);

-		text.setFocus();

-		return;

-	}

-	int index = list.getSelectionIndex ();

-	if (index != -1) list.setTopIndex (index);

-	Rectangle listRect = list.getBounds ();

-	int borderWidth = getBorderWidth();

-	Point point = toDisplay (new Point (0 - borderWidth, 0 - borderWidth));

-	Point comboSize = getSize();

-	popup.setBounds (point.x, point.y + comboSize.y, comboSize.x, listRect.height + 2);

-	popup.setVisible (true);

-	list.setFocus();

-}

-public Control [] getChildren () {

-	return new Control [0];

-}

-boolean getEditable () {

-	return text.getEditable ();

-}

-/**

-* Gets an item at an index.

-* <p>

-* Indexing is zero based.

-*

-* This operation will fail when the index is out

-* of range or an item could not be queried from

-* the OS.

-*

-* @param index the index of the item

-* @return the item

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_CANNOT_GET_ITEM)

-*	when the operation fails

-*/

-public String getItem (int index) {

-	return list.getItem (index);

-}

-/**

-* Gets the number of items.

-* <p>

-* This operation will fail if the number of

-* items could not be queried from the OS.

-*

-* @return the number of items in the widget

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_CANNOT_GET_COUNT)

-*	when the operation fails

-*/

-public int getItemCount () {

-	return list.getItemCount ();

-}

-/**

-* Gets the height of one item.

-* <p>

-* This operation will fail if the height of

-* one item could not be queried from the OS.

-*

-* @return the height of one item in the widget

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_CANNOT_GET_ITEM_HEIGHT)

-*	when the operation fails

-*/

-public int getItemHeight () {

-	return list.getItemHeight ();

-}

-/**

-* Gets the items.

-* <p>

-* This operation will fail if the items cannot

-* be queried from the OS.

-*

-* @return the items in the widget

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_CANNOT_GET_ITEM)

-*	when the operation fails

-*/

-public String [] getItems () {

-	return list.getItems ();

-}

-/**

-* Gets the selection.

-* <p>

-* @return a point representing the selection start and end

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-*/

-public Point getSelection () {

-	return text.getSelection ();

-}

-/**

-* Gets the index of the selected item.

-* <p>

-* Indexing is zero based.

-* If no item is selected -1 is returned.

-*

-* @return the index of the selected item.

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-*/

-public int getSelectionIndex () {

-	return list.getSelectionIndex ();

-}

-/**

-* Gets the widget text.

-* <p>

-* If the widget has no text, an empty string is returned.

-*

-* @return the widget text

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-*/

-public String getText () {

-	return text.getText ();

-}

-/**

-* Gets the height of the combo's text field.

-* <p>

-* The operation will fail if the height cannot 

-* be queried from the OS.

-

-* @return the height of the combo's text field.

-* 

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_ERROR_CANNOT_GET_ITEM_HEIGHT)

-*	when the operation fails

-*/

-public int getTextHeight () {

-	return text.getLineHeight();

-}

-/**

-* Gets the text limit.

-* <p>

-* @return the text limit

-* 

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-*/

-public int getTextLimit () {

-	return text.getTextLimit ();

-}

-/**

-* Gets the index of an item.

-* <p>

-* The list is searched starting at 0 until an

-* item is found that is equal to the search item.

-* If no item is found, -1 is returned.  Indexing

-* is zero based.

-*

-* @param string the search item

-* @return the index of the item

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when string is null

-*/

-public int indexOf (String string) {

-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	return list.indexOf (string);

-}

-/**

-* Gets the index of an item.

-* <p>

-* The widget is searched starting at start including

-* the end position until an item is found that

-* is equal to the search itenm.  If no item is

-* found, -1 is returned.  Indexing is zero based.

-*

-* @param string the search item

-* @param index the starting position

-* @return the index of the item

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when string is null

-*/

-public int indexOf (String string, int start) {

-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	return list.indexOf (string, start);

-}

-boolean isDropped () {

-	return popup.getVisible ();

-}

-public boolean isFocusControl () {

-	if (text.isFocusControl() || arrow.isFocusControl() || list.isFocusControl() || popup.isFocusControl()) {

-		return true;

-	} else {

-		return super.isFocusControl();

-	}

-}

-void internalLayout () {

-	if (isDropped ()) dropDown (false);

-	

-	Rectangle rect = getClientArea();

-	int width = rect.width;

-	int height = rect.height;

-	Point arrowSize = arrow.computeSize(SWT.DEFAULT, height);

-	text.setBounds (0, 0, width - arrowSize.x, height);

-	arrow.setBounds (width - arrowSize.x, 0, arrowSize.x, arrowSize.y);

-	

-	Point size = getSize();

-	int listHeight = list.getItemHeight () * ITEMS_SHOWING;

-	Rectangle trim = list.computeTrim (0, 0, size.x - 2, listHeight);

-	list.setBounds (1, 1, size.x - 2, trim.height);

-}

-void listEvent (Event event) {

-	switch (event.type) {

-		case SWT.FocusIn: {

-			if (hasFocus) return;

-			hasFocus = true;

-			if (getEditable ()) text.selectAll ();

-			Event e = new Event();

-			e.time = event.time;

-			notifyListeners(SWT.FocusIn, e);

-			break;

-		}

-		case SWT.FocusOut: {

-			Control focusControl = getDisplay ().getFocusControl();

-			if (focusControl == text || focusControl == arrow) return;

-			hasFocus = false;

-			Event e = new Event();

-			e.time = event.time;

-			notifyListeners(SWT.FocusOut, e);

-			break;

-		}

-		case SWT.MouseUp: {

-			if (event.button != 1) return;

-			dropDown (false);

-			Event e = new Event();

-			e.time = event.time;

-			notifyListeners(SWT.DefaultSelection, e);

-			break;

-		}

-		case SWT.Selection: {

-			int index = list.getSelectionIndex ();

-			if (index == -1) return;

-			text.setText (list.getItem (index));

-			text.selectAll ();

-			list.setSelection(index);

-			Event e = new Event();

-			e.time = event.time;

-			e.stateMask = event.stateMask;

-			e.doit = event.doit;

-			notifyListeners(SWT.Selection, e);

-			event.doit = e.doit;

-			break;

-		}

-		case SWT.Traverse: {

-			switch (event.detail) {

-				case SWT.TRAVERSE_TAB_NEXT:

-				case SWT.TRAVERSE_RETURN:

-				case SWT.TRAVERSE_ESCAPE:

-				case SWT.TRAVERSE_ARROW_PREVIOUS:

-				case SWT.TRAVERSE_ARROW_NEXT:

-					event.doit = false;

-					break;

-			}

-			Event e = new Event();

-			e.time = event.time;

-			e.detail = event.detail;

-			e.doit = event.doit;

-			e.keyCode = event.keyCode;

-			notifyListeners(SWT.Traverse, e);

-			event.doit = e.doit;

-			break;

-		}

-		case SWT.KeyUp: {		

-			Event e = new Event();

-			e.time = event.time;

-			e.character = event.character;

-			e.keyCode = event.keyCode;

-			e.stateMask = event.stateMask;

-			notifyListeners(SWT.KeyUp, e);

-			break;

-		}

-		case SWT.KeyDown: {

-			if (event.character == SWT.ESC) { 

-				// escape key cancels popup list

-				dropDown (false);

-			}

-			if (event.character == SWT.CR || event.character == '\t') {

-				// Enter and Tab cause default selection

-				dropDown (false);

-				Event e = new Event();

-				e.time = event.time;

-				e.stateMask = event.stateMask;

-				notifyListeners(SWT.DefaultSelection, e);

-			}

-			//At this point the widget may have been disposed.

-			// If so, do not continue.

-			if (isDisposed()) break;

-			Event e = new Event();

-			e.time = event.time;

-			e.character = event.character;

-			e.keyCode = event.keyCode;

-			e.stateMask = event.stateMask;

-			notifyListeners(SWT.KeyDown, e);

-			break;

-			

-		}

-	}

-}

-void popupEvent(Event event) {

-	switch (event.type) {

-		case SWT.Paint:

-			// draw black rectangle around list

-			Rectangle listRect = list.getBounds();

-			Color black = getDisplay().getSystemColor(SWT.COLOR_BLACK);

-			event.gc.setForeground(black);

-			event.gc.drawRectangle(0, 0, listRect.width + 1, listRect.height + 1);

-			break;

-		case SWT.Close:

-			event.doit = false;

-			dropDown (false);

-			break;

-		case SWT.Deactivate:

-			dropDown (false);

-			break;

-	}

-}

-public void redraw (int x, int y, int width, int height, boolean all) {

-	if (!all) return;

-	Point location = text.getLocation();

-	text.redraw(x - location.x, y - location.y, width, height, all);

-	location = list.getLocation();

-	list.redraw(x - location.x, y - location.y, width, height, all);

-	if (arrow != null) {

-		location = arrow.getLocation();

-		arrow.redraw(x - location.x, y - location.y, width, height, all);

-	}

-}

-

-/**

-* Removes an item at an index.

-* <p>

-* Indexing is zero based.

-*

-* This operation will fail when the index is out

-* of range or an item could not be removed from

-* the OS.

-*

-* @param index the index of the item

-* @return the selection state

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_ITEM_NOT_REMOVED)

-*	when the operation fails

-*/

-public void remove (int index) {

-	list.remove (index);

-}

-/**

-* Removes a range of items.

-* <p>

-* Indexing is zero based.  The range of items

-* is from the start index up to and including

-* the end index.

-*

-* This operation will fail when the index is out

-* of range or an item could not be removed from

-* the OS.

-*

-* @param start the start of the range

-* @param end the end of the range

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_ITEM_NOT_REMOVED)

-*	when the operation fails

-*/

-public void remove (int start, int end) {

-	list.remove (start, end);

-}

-/**

-* Removes an item.

-* <p>

-* This operation will fail when the item

-* could not be removed from the OS.

-*

-* @param string the search item

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when string is null

-* @exception SWTError(ERROR_ITEM_NOT_REMOVED)

-*	when the operation fails

-*/

-public void remove (String string) {

-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	list.remove (string);

-}

-/**

-* Removes all items.

-* <p>

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-*/

-public void removeAll () {

-	text.setText ("");

-	list.removeAll ();

-}

-/**	 

-* Removes the listener.

-* <p>

-*

-* @param listener the listener

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when listener is null

-*/

-public void removeModifyListener (ModifyListener listener) {

-	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	removeListener(SWT.Modify, listener);	

-}

-/**	 

-* Removes the listener.

-* <p>

-*

-* @param listener the listener

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when listener is null

-*/

-public void removeSelectionListener (SelectionListener listener) {

-	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	removeListener(SWT.Selection, listener);

-	removeListener(SWT.DefaultSelection,listener);	

-}

-/**

-* Selects an item.

-* <p>

-* If the item at an index is not selected, it is

-* selected. Indices that are out of

-* range are ignored.  Indexing is zero based.

-*

-* @param index the index of the item

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-*/

-public void select (int index) {

-	if (index == -1) {

-		list.deselectAll ();

-		text.setText ("");

-		return;

-	}

-	if (0 <= index && index < list.getItemCount()) {

-		if (index != getSelectionIndex()) {

-			text.setText (list.getItem (index));

-			text.selectAll ();

-			list.select (index);

-			list.showSelection ();

-		}

-	}

-}

-public void setBackground (Color color) {

-	super.setBackground(color);

-	if (text != null) text.setBackground(color);

-	if (list != null) list.setBackground(color);

-	if (arrow != null) arrow.setBackground(color);

-}

-

-

-/**

-* Sets the focus.

-*/

-public boolean setFocus () {

-	return text.setFocus ();

-}

-/**

-* Sets the widget font.

-*/

-public void setFont (Font font) {

-	super.setFont (font);

-	text.setFont (font);

-	list.setFont (font);

-	internalLayout ();

-}

-public void setForeground (Color color) {

-	super.setForeground(color);

-	if (text != null) text.setForeground(color);

-	if (list != null) list.setForeground(color);

-	if (arrow != null) arrow.setForeground(color);

-}

-/**

-* Sets the text of an item.

-* <p>

-* Indexing is zero based.

-*

-* This operation will fail when the index is out

-* of range or an item could not be changed in

-* the OS.

-*

-* @param index the index for the item

-* @param string the item

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when items is null

-* @exception SWTError(ERROR_ITEM_NOT_MODIFIED)

-*	when the operation fails

-*/

-public void setItem (int index, String string) {

-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	list.setItem (index, string);

-}

-/**

-* Sets all items.

-* <p>

-* @param items the array of items

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when items is null

-* @exception SWTError(ERROR_ITEM_NOT_ADDED)

-*	when the operation fails

-*/

-public void setItems (String [] items) {

-	if (items == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	int style = getStyle();

-	if ((style & SWT.READ_ONLY) != 0) text.setText ("");

-	list.setItems (items);

-}

-/**

-* Sets the new selection.

-* <p>

-* @param selection point representing the start and the end of the new selection

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when selection is null

-*/

-public void setSelection (Point selection) {

-	if (selection == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	text.setSelection (selection.x, selection.y);

-}

-

-/**

-* Sets the widget text

-* <p>

-* @param string the widget text

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_NULL_ARGUMENT)

-*	when string is null

-*/

-public void setText (String string) {

-	if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	int index = list.indexOf (string);

-	if (index == -1) {

-		list.deselectAll ();

-		text.setText (string);

-		return;

-	}

-	text.setText (string);

-	text.selectAll ();

-	list.setSelection (index);

-	list.showSelection ();

-}

-/**

-* Sets the text limit

-* <p>

-* @param limit new text limit

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-* @exception SWTError(ERROR_CANNOT_BE_ZERO)

-*	when limit is 0

-*/

-public void setTextLimit (int limit) {

-	text.setTextLimit (limit);

-}

-

-void textEvent (Event event) {

-	switch (event.type) {

-		case SWT.FocusIn: {

-			if (hasFocus) return;

-			hasFocus = true;

-			if (getEditable ()) text.selectAll ();

-			Event e = new Event();

-			e.time = event.time;

-			notifyListeners(SWT.FocusIn, e);

-			break;

-		}

-		case SWT.FocusOut: {

-			Control focusControl = getDisplay ().getFocusControl();

-			if (focusControl == list || focusControl == arrow) return;

-			hasFocus = false;

-			Event e = new Event();

-			e.time = event.time;

-			notifyListeners(SWT.FocusOut, e);

-			break;

-		}

-		case SWT.KeyDown: {

-			

-			if (event.character == SWT.ESC) { // escape key cancels popup list

-				dropDown (false);

-			}

-			if (event.character == SWT.CR || event.character == '\t') {

-				dropDown (false);

-				Event e = new Event();

-				e.time = event.time;

-				e.stateMask = event.stateMask;

-				notifyListeners(SWT.DefaultSelection, e);

-			}

-			//At this point the widget may have been disposed.

-			// If so, do not continue.

-			if (isDisposed()) break;

-			

-			if (event.keyCode == SWT.ARROW_UP || event.keyCode == SWT.ARROW_DOWN) {

-				int oldIndex = getSelectionIndex ();

-				if (event.keyCode == SWT.ARROW_UP) {

-					select (Math.max (oldIndex - 1, 0));

-				} else {

-					select (Math.min (oldIndex + 1, getItemCount () - 1));

-				}

-		

-				if (oldIndex != getSelectionIndex ()) {

-					Event e = new Event();

-					e.time = event.time;

-					e.stateMask = event.stateMask;

-					notifyListeners(SWT.Selection, e);

-				}

-				//At this point the widget may have been disposed.

-				// If so, do not continue.

-				if (isDisposed()) break;

-			}

-			

-			// Further work : Need to add support for incremental search in 

-			// pop up list as characters typed in text widget

-						

-			Event e = new Event();

-			e.time = event.time;

-			e.character = event.character;

-			e.keyCode = event.keyCode;

-			e.stateMask = event.stateMask;

-			notifyListeners(SWT.KeyDown, e);

-			break;

-		}

-		case SWT.KeyUp: {

-			Event e = new Event();

-			e.time = event.time;

-			e.character = event.character;

-			e.keyCode = event.keyCode;

-			e.stateMask = event.stateMask;

-			notifyListeners(SWT.KeyUp, e);

-			break;

-		}

-		case SWT.Modify: {

-			list.deselectAll ();

-			Event e = new Event();

-			e.time = event.time;

-			notifyListeners(SWT.Modify, e);

-			break;

-		}

-		case SWT.MouseDown: {

-			if (event.button != 1) return;

-			if (text.getEditable ()) return;

-			boolean dropped = isDropped ();

-			text.selectAll ();

-			if (!dropped) setFocus ();

-			dropDown (!dropped);

-			break;

-		}

-		case SWT.MouseUp: {

-			if (event.button != 1) return;

-			if (text.getEditable ()) return;

-			text.selectAll ();

-			break;

-		}

-		case SWT.Traverse: {		

-			switch (event.detail) {

-				case SWT.TRAVERSE_TAB_NEXT:

-				case SWT.TRAVERSE_ARROW_PREVIOUS:

-				case SWT.TRAVERSE_ARROW_NEXT:

-					// The tab key causes default selection and

-					// the arrow keys are used to manipulate the list contents so

-					// do not use them for traversal.

-					event.doit = false;

-					break;

-			}

-			

-			Event e = new Event();

-			e.time = event.time;

-			e.detail = event.detail;

-			e.doit = event.doit;

-			e.keyCode = event.keyCode;

-			notifyListeners(SWT.Traverse, e);

-			event.doit = e.doit;

-			break;

-		}

-	}

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CLabel.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CLabel.java
deleted file mode 100755
index 799891d..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CLabel.java
+++ /dev/null
@@ -1,448 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.events.*;

-

-/**

- * A Label which supports aligned text and/or an image and different border styles.

- * <p>

- * If there is not enough space a SmartLabel uses the following strategy to fit the 

- * information into the available space:

- * <pre>

- * 		ignores the indent in left align mode

- * 		ignores the image and the gap

- * 		shortens the text by replacing the center portion of the label with an ellipsis

- * 		shortens the text by removing the center portion of the label

- * </pre>

- * <p>

- * <dl>

- * <dt><b>Styles:</b>

- * <dd>SHADOW_IN, SHADOW_OUT, SHADOW_NONE</dd>

- * <dt><b>Events:</b>

- * <dd></dd>

- * </dl>

- */

-public class CLabel extends Canvas {

-

-	/** Gap between icon and text */

-	private static final int GAP = 5;

-	/** Left and right margins */

-	private static final int INDENT = 3;

-	/** a string inserted in the middle of text that has been shortened */

-	private static final String ellipsis = "...";

-	/** the alignment. Either CENTER, RIGHT, LEFT. Default is LEFT*/

-	private int align = SWT.LEFT;

-	private int hIndent = INDENT;

-	private int vIndent = INDENT;

-	/** the current text */

-	private String text;

-	/** the current icon */

-	private Image image;

-	// The tooltip is used for two purposes - the application can set

-	// a tooltip or the tooltip can be used to display the full text when the

-	// the text has been truncated due to the label being too short.

-	// The appToolTip stores the tooltip set by the application.  Control.tooltiptext 

-	// contains whatever tooltip is currently being displayed.

-	private String appToolTipText;

-	

-	private Image backgroundImage;

-	private Color[] gradientColors;

-	private int[] gradientPercents;

-

-	

-/**

- * Create a CLabel with the given border style as a child of parent.

- */

-public CLabel(Composite parent, int style) {

-	super(parent, checkStyle(style));

-	

-	if ((style & SWT.CENTER) != 0) align = SWT.CENTER;

-	if ((style & SWT.RIGHT) != 0)  align = SWT.RIGHT;

-	if ((style & SWT.LEFT) != 0)   align = SWT.LEFT;

-	

-	addPaintListener(new PaintListener(){

-		public void paintControl(PaintEvent event) {

-			onPaint(event);

-		}

-	});

-	

-	addDisposeListener(new DisposeListener(){

-		public void widgetDisposed(DisposeEvent event) {

-			onDispose(event);

-		}

-	});

-

-}

-/**

- * Check the style bits to ensure that no invalid styles are applied.

- */

-private static int checkStyle (int style) {

-	int mask = SWT.SHADOW_IN | SWT.SHADOW_OUT | SWT.SHADOW_NONE;

-	style = style & mask;

-	style |= SWT.NO_FOCUS | SWT.NO_BACKGROUND;

-	return style;

-}

-public Point computeSize(int wHint, int hHint, boolean changed) {

-	Point e = getTotalSize(image, text);

-	if (wHint == SWT.DEFAULT){

-		e.x += 2*hIndent;

-	} else {

-		e.x = wHint;

-	}

-	if (hHint == SWT.DEFAULT) {

-		e.y += 2*vIndent;

-	} else {

-		e.y = hHint;

-	}

-	return e;

-}

-/**

- * Draw a rectangle in the given colors.

- */

-private void drawBevelRect(GC gc, int x, int y, int w, int h, Color topleft, Color bottomright) {

-	gc.setForeground(bottomright);

-	gc.drawLine(x+w, y,   x+w, y+h);

-	gc.drawLine(x,   y+h, x+w, y+h);

-	

-	gc.setForeground(topleft);

-	gc.drawLine(x, y, x+w-1, y);

-	gc.drawLine(x, y, x,     y+h-1);

-}

-/**

- * Returns the alignment.

- * The alignment style (LEFT, CENTER or RIGHT) is returned.

- */

-public int getAlignment() {

-	return align;

-}

-/**

- * Return the CLabel's image or <code>null</code>.

- */

-public Image getImage() {

-	return image;

-}

-/**

- * Compute the minimum size.

- */

-private Point getTotalSize(Image image, String text) {

-	Point size = new Point(0, 0);

-	

-	if (image != null) {

-		Rectangle r = image.getBounds();

-		size.x += r.width;

-		size.y += r.height;

-	}

-		

-	GC gc = new GC(this);

-	if (text != null && text.length() > 0) {

-		Point e = gc.textExtent(text);

-		size.x += e.x;

-		size.y = Math.max(size.y, e.y);

-		if (image != null) size.x += GAP;

-	} else {

-		size.y = Math.max(size.y, gc.getFontMetrics().getHeight());

-	}

-	gc.dispose();

-	

-	return size;

-}

-public void setToolTipText (String string) {

-	super.setToolTipText (string);

-	appToolTipText = super.getToolTipText();

-}	

-/**

- * Return the Label's text.

- */

-public String getText() {

-	return text;

-}

-public String getToolTipText () {

-	return appToolTipText;

-}

-/**

- * Paint the Label's border.

- */

-private void paintBorder(GC gc, Rectangle r) {

-	Display disp= getDisplay();

-

-	Color c1 = null;

-	Color c2 = null;

-	

-	int style = getStyle();

-	if ((style & SWT.SHADOW_IN) != 0) {

-		c1 = disp.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);

-		c2 = disp.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);

-	}

-	if ((style & SWT.SHADOW_OUT) != 0) {		

-		c1 = disp.getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);

-		c2 = disp.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);

-	}

-		

-	if (c1 != null && c2 != null) {

-		gc.setLineWidth(1);

-		drawBevelRect(gc, r.x, r.y, r.width-1, r.height-1, c1, c2);

-	}

-}

-private void onDispose(DisposeEvent event) {

-	gradientColors = null;

-	gradientPercents = null;

-	backgroundImage = null;

-}

-/* 

- * Process the paint event

- */

-private void onPaint(PaintEvent event) {

-	Rectangle rect = getClientArea();

-	if (rect.width == 0 || rect.height == 0) return;

-	

-	boolean shortenText = false;

-	String t = text;

-	Image img = image;

-	int availableWidth = rect.width - 2*hIndent;

-	Point extent = getTotalSize(img, t);

-	if (extent.x > availableWidth) {

-		img = null;

-		extent = getTotalSize(img, t);

-		if (extent.x > availableWidth) {

-			shortenText = true;

-		}

-	}

-	

-	GC gc = event.gc;

-		

-	// shorten the text

-	if (shortenText) {

-		t = shortenText(gc, text, availableWidth);

-		extent = getTotalSize(img, t);

-		if (appToolTipText == null) {

-			super.setToolTipText(text);

-		}

-	} else {

-		super.setToolTipText(appToolTipText);

-	}

-		

-	// determine horizontal position

-	int x = rect.x + hIndent;

-	if (align == SWT.CENTER) {

-		x = (rect.width-extent.x)/2;

-	}

-	if (align == SWT.RIGHT) {

-		x = rect.width-extent.x - hIndent;

-	}

-	

-	// draw a background image behind the text

-	try {

-		if (backgroundImage != null) {

-			// draw a background image behind the text

-			Rectangle imageRect = backgroundImage.getBounds();

-			gc.drawImage(backgroundImage, 0, 0, imageRect.width, imageRect.height,

-				0, 0, rect.width, rect.height);

-		} else if (gradientColors != null) {

-			// draw a gradient behind the text

-			final Color oldBackground = gc.getBackground();

-			if (gradientColors.length == 1) {

-				if (gradientColors[0] != null) gc.setBackground(gradientColors[0]);

-				gc.fillRectangle(0, 0, rect.width, rect.height);

-			} else {

-				final Color oldForeground = gc.getForeground();

-				Color lastColor = gradientColors[0];

-				if (lastColor == null) lastColor = oldBackground;

-				for (int i = 0, pos = 0; i < gradientPercents.length; ++i) {

-					gc.setForeground(lastColor);

-					lastColor = gradientColors[i + 1];

-					if (lastColor == null) lastColor = oldBackground;

-					gc.setBackground(lastColor);

-					final int gradientWidth = (gradientPercents[i] * rect.width / 100) - pos;

-					gc.fillGradientRectangle(pos, 0, gradientWidth, rect.height, false);

-					pos += gradientWidth;

-				}

-				gc.setForeground(oldForeground);

-			}

-			gc.setBackground(oldBackground);

-		} else {

-			gc.setBackground(getBackground());

-			gc.fillRectangle(rect);

-		}

-	} catch (SWTException e) {

-		gc.setBackground(getBackground());

-		gc.fillRectangle(rect);

-	}

-

-	// draw border

-	int style = getStyle();

-	if ((style & SWT.SHADOW_IN) != 0 || (style & SWT.SHADOW_OUT) != 0) {

-		paintBorder(gc, rect);

-	}

-	// draw the image		

-	if (img != null) {

-		Rectangle imageRect = img.getBounds();

-		gc.drawImage(img, 0, 0, imageRect.width, imageRect.height, 

-		                x, (rect.height-imageRect.height)/2, imageRect.width, imageRect.height);

-		x += imageRect.width + GAP;

-	}

-	// draw the text

-	if (t != null) {

-		int textHeight = gc.getFontMetrics().getHeight();

-		gc.setForeground(getForeground());

-		gc.drawText(t, x, rect.y + (rect.height-textHeight)/2, true);

-	}

-}

-/**

- * Set the alignment of the CLabel.

- * Use the values LEFT, CENTER and RIGHT to align image and text within the available space.

- */

-public void setAlignment(int align) {

-	if (align != SWT.LEFT && align != SWT.RIGHT && align != SWT.CENTER) {

-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	if (this.align != align) {

-		this.align = align;

-		redraw();

-	}

-}

-/**

- * Specify a gradiant of colours to be draw in the background of the CLabel.

- * For example to draw a gradiant that varies from dark blue to blue and then to

- * white, use the following call to setBackground:

- * <pre>

- *	clabel.setBackground(new Color[]{display.getSystemColor(SWT.COLOR_DARK_BLUE), 

- *		                           display.getSystemColor(SWT.COLOR_BLUE),

- *		                           display.getSystemColor(SWT.COLOR_WHITE), 

- *		                           display.getSystemColor(SWT.COLOR_WHITE)},

- *		               new int[] {25, 50, 100});

- * </pre>

- *

- * @param colors an array of Color that specifies the colors to appear in the gradiant 

- *               in order of appearance left to right.  The value <code>null</code> clears the

- *               background gradiant. The value <code>null</code> can be used inside the array of 

- *               Color to specify the background color.

- * @param percents an array of integers between 0 and 100 specifying the percent of the width 

- *                 of the widget at which the color should change.  The size of the percents array must be one 

- *                 less than the size of the colors array.

- */

-public void setBackground(Color[] colors, int[] percents) {	

-	if (colors != null) {

-		if (percents == null || percents.length != colors.length - 1) {

-			SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-		}

-		if (getDisplay().getDepth() < 15) {

-			// Don't use gradients on low color displays

-			colors = new Color[] { colors[0] };

-			percents = new int[] { };

-		}

-		for (int i = 0; i < percents.length; i++) {

-			if (percents[i] < 0 || percents[i] > 100) {

-				SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-			}

-			if (i > 0 && percents[i] < percents[i-1]) {

-				SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-			}

-		}

-	}

-	

-	// Are these settings the same as before?

-	final Color background = getBackground();

-	if (backgroundImage == null) {

-		if ((gradientColors != null) && (colors != null) && 

-			(gradientColors.length == colors.length)) {

-			boolean same = false;

-			for (int i = 0; i < gradientColors.length; i++) {

-				same = (gradientColors[i] == colors[i]) ||

-					((gradientColors[i] == null) && (colors[i] == background)) ||

-					((gradientColors[i] == background) && (colors[i] == null));

-				if (!same) break;

-			}

-			if (same) {

-				for (int i = 0; i < gradientPercents.length; i++) {

-					same = gradientPercents[i] == percents[i];

-					if (!same) break;

-				}

-			}

-			if (same) return;

-		}

-	} else {

-		backgroundImage = null;

-	}

-	// Store the new settings

-	if (colors == null) {

-		gradientColors = null;

-		gradientPercents = null;

-	} else {

-		gradientColors = new Color[colors.length];

-		for (int i = 0; i < colors.length; ++i)

-			gradientColors[i] = (colors[i] != null) ? colors[i] : background;

-		gradientPercents = new int[percents.length];

-		for (int i = 0; i < percents.length; ++i)

-			gradientPercents[i] = percents[i];

-	}

-	// Refresh with the new settings

-	redraw();

-}

-public void setBackground(Image image) {

-	if (image == backgroundImage) return;	

-	gradientColors = null;

-	gradientPercents = null;

-	backgroundImage = image;

-	redraw();

-	

-}

-public void setFont(Font font) {

-	super.setFont(font);

-	redraw();

-}

-/**

- * Set the label's Image.

- * The value <code>null</code> clears it.

- */

-public void setImage(Image image) {

-	if (image != this.image) {

-		this.image = image;

-		redraw();

-	}

-}

-/**

- * Set the label's text.

- * The value <code>null</code> clears it.

- */

-public void setText(String text) {

-	if (text == null) text = "";

-	if (! text.equals(this.text)) {

-		this.text = text;

-		redraw();

-	}

-}

-/**

- * Shorten the given text <code>t</code> so that its length doesn't exceed

- * the given width. The default implementation replaces characters in the

- * center of the original string with an ellipsis ("...").

- * Override if you need a different strategy.

- */

-protected String shortenText(GC gc, String t, int width) {

-	if (t == null) return null;

-	int w = gc.textExtent(ellipsis).x;

-	int l = t.length();

-	int pivot = l/2;

-	int s = pivot;

-	int e = pivot+1;

-	while (s >= 0 && e < l) {

-		String s1 = t.substring(0, s);

-		String s2 = t.substring(e, l);

-		int l1 = gc.textExtent(s1).x;

-		int l2 = gc.textExtent(s2).x;

-		if (l1+w+l2 < width) {

-			t = s1 + ellipsis + s2;

-			break;

-		}

-		s--;

-		e++;

-	}

-	return t;

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolder.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolder.java
deleted file mode 100755
index 9e5b3eb..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolder.java
+++ /dev/null
@@ -1,1571 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.layout.*;

-

-/**

- * Instances of this class implement the notebook user interface

- * metaphor.  It allows the user to select a notebook page from

- * set of pages.

- * <p>

- * The item children that may be added to instances of this class

- * must be of type <code>CTabItem</code>.

- * <code>Control</code> children are created and then set into a

- * tab item using <code>CTabItem#setControl</code>.

- * </p><p>

- * Note that although this class is a subclass of <code>Composite</code>,

- * it does not make sense to set a layout on it.

- * </p><p>

- * <dl>

- * <dt><b>Styles:</b></dt>

- * <dd>TOP, BOTTOM, FLAT</dd>

- * <dt><b>Events:</b></dt>

- * <dd>Selection</dd>

- * <dd>"CTabFolder"</dd>

- * </dl>

- * <p>

- * IMPORTANT: This class is <em>not</em> intended to be subclassed.

- * </p>

- */

- 

-public class CTabFolder extends Composite {

-	

-	/**

-	 * marginWidth specifies the number of pixels of horizontal margin

-	 * that will be placed along the left and right edges of the form.

-	 *

-	 * The default value is 0.

-	 */

- 	public int marginWidth = 0;

-	/**

-	 * marginHeight specifies the number of pixels of vertical margin

-	 * that will be placed along the top and bottom edges of the form.

-	 *

-	 * The default value is 0.

-	 */

- 	public int marginHeight = 0;

-	

-	/**

-	 * Color of innermost line of drop shadow border.

-	 */

-	public static RGB borderInsideRGB  = new RGB (132, 130, 132);

-	/**

-	 * Color of middle line of drop shadow border.

-	 */

-	public static RGB borderMiddleRGB  = new RGB (143, 141, 138);

-	/**

-	 * Color of outermost line of drop shadow border.

-	 */

-	public static RGB borderOutsideRGB = new RGB (171, 168, 165); 

-	

-	/*

-	 * A multiple of the tab height that specifies the minimum width to which a tab 

-	 * will be compressed before scrolling arrows are used to navigate the tabs.

-	 */

-	public static int MIN_TAB_WIDTH = 3;

-

-	/* sizing, positioning */

-	int xClient, yClient;

-	boolean onBottom = false;

-	int fixedTabHeight = 0;

-	

-	/* item management */

-	private CTabItem items[] = new CTabItem[0];

-	private int selectedIndex = -1;

-	int topTabIndex = -1; // index of the left most visible tab.

-

-	/* External Listener management */

-	private CTabFolderListener[] tabListeners = new CTabFolderListener[0];

-	

-	/* Color appearance */

-	Image backgroundImage;

-	Color[] gradientColors;

-	int[] gradientPercents;

-	Color selectionForeground;

-

-	// internal constants

-	private static final int DEFAULT_WIDTH = 64;

-	private static final int DEFAULT_HEIGHT = 64;

-	

-	// scrolling arrows

-	private ToolBar arrowBar;

-	private Image arrowLeftImage;

-	private Image arrowRightImage;

-	

-	// close button

-	boolean showClose = false;

-	private Image closeImage;

-	ToolBar closeBar;

-	private ToolBar inactiveCloseBar;

-	private CTabItem inactiveItem;	

-

-	private boolean shortenedTabs = false;

-	

-	// borders

-	boolean showBorders = false;

-	private int borderBottom = 0;

-	private int borderLeft = 0;

-	private int borderRight = 0;

-	private int borderTop = 0;

-	private Color borderColor1;

-	private Color borderColor2;

-	private Color borderColor3;

-

-	// when disposing CTabFolder, don't try to layout the items or 

-	// change the selection as each child is destroyed.

-	private boolean inDispose = false;

-

-	// keep track of size changes in order to redraw only affected area

-	// on Resize

-	private Rectangle oldArea;

-	

-	// insertion marker

-	int insertionIndex = -2; // Index of insert marker.  Marker always shown after index.

-	                         // -2 means no insert marker

-	                         

-	// tool tip

-	private Shell tip;

-

-/**

- * Construct a CTabFolder with the specified parent and style.

- * @param parent org.eclipse.swt.widgets.Composite

- * @param swtStyle int

- */

-public CTabFolder(Composite parent, int style) {

-	super(parent, checkStyle (style));

-	

-	onBottom = (getStyle() & SWT.BOTTOM) != 0;

-	

-	borderColor1 = new Color(getDisplay(), borderInsideRGB);

-	borderColor2 = new Color(getDisplay(), borderMiddleRGB);

-	borderColor3 = new Color(getDisplay(), borderOutsideRGB);

-	Color background = getBackground();

-

-	// tool tip support

-	Display display = getDisplay();

-	tip = new Shell (getShell(), SWT.ON_TOP);

-	GridLayout layout = new GridLayout();

-	layout.marginWidth = layout.marginHeight = 1;

-	tip.setLayout(layout);

-	Label label = new Label (tip, SWT.NONE);

-	label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-	label.setForeground (display.getSystemColor (SWT.COLOR_INFO_FOREGROUND));

-	label.setBackground (display.getSystemColor (SWT.COLOR_INFO_BACKGROUND));

-	tip.setBackground(label.getBackground());

-	

-	// Add all listeners

-	Listener listener = new Listener() {

-		public void handleEvent(Event event) {

-			switch (event.type) {

-				case SWT.Dispose:           onDispose(); break;

-				case SWT.Paint:             onPaint(event);	break;

-				case SWT.Resize:            onResize();	break;

-				case SWT.MouseDoubleClick:  onMouseDoubleClick(event);	break;

-				case SWT.MouseDown:         onMouseDown(event);	break;

-				case SWT.MouseExit:         onMouseExit(event);	break;

-				case SWT.MouseHover:		onMouseHover(event);	break;

-				case SWT.MouseMove:         onMouseMove(event);	break;

-				case SWT.FocusIn:           onFocus(event);	break;

-				case SWT.FocusOut:          onFocus(event);	break;

-				case SWT.KeyDown:           onKeyDown(event); break;

-				case SWT.Traverse:          onTraverse(event); break;

-			}

-		}

-	};

-

-	int[] folderEvents = new int[]{

-		SWT.Dispose, 

-		SWT.MouseDown, 

-		SWT.MouseDoubleClick, 

-		SWT.MouseMove, 

-		SWT.MouseExit, 

-		SWT.MouseHover, 

-		SWT.Paint, 

-		SWT.Resize, 

-		SWT.FocusIn, 

-		SWT.FocusOut, 

-		SWT.KeyDown,

-		SWT.Traverse,

-	};

-	for (int i = 0; i < folderEvents.length; i++) {

-		addListener(folderEvents[i], listener);

-	}

-	

-	createArrowBar();

-	createCloseBar();

-	

-	setBorderVisible((style & SWT.BORDER) != 0);

-}

-private static int checkStyle (int style) {

-	int mask = SWT.TOP | SWT.BOTTOM | SWT.FLAT;

-	style = style & mask;

-	// TOP and BOTTOM are mutually exlusive.

-	// TOP is the default

-	if ((style & SWT.TOP) != 0) 

-		style = style & ~(SWT.TOP | SWT.BOTTOM) | SWT.TOP;

-	// reduce the flash by not redrawing the entire area on a Resize event

-	style |= SWT.NO_REDRAW_RESIZE;

-	return style;

-}

-/**	 

-* Adds the listener to receive events.

-* <p>

-*

-* @param listener the listener

-*

-* @exception SWTError <ul>

-*		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

-*		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

-* 		<li>ERROR_NULL_ARGUMENT when listener is null</li>

-*	</ul>

-*/

-public void addSelectionListener(SelectionListener listener) {

-	if (listener == null) {

-		SWT.error(SWT.ERROR_NULL_ARGUMENT);

-	}

-	TypedListener typedListener = new TypedListener(listener);

-	addListener(SWT.Selection, typedListener);

-	addListener(SWT.DefaultSelection, typedListener);

-}

-/**

- * Adds the listener to the collection of listeners who will

- * be notified when a tab item is closed.

- *

- * @param listener the listener which should be notified

- *

- * @exception IllegalArgumentException <ul>

- *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>

- * </ul>

- *

- * @see CTabFolderListener

- * @see #removeCTabFolderListener

- */

-public void addCTabFolderListener(CTabFolderListener listener) {

-	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	// add to array

-	CTabFolderListener[] newTabListeners = new CTabFolderListener[tabListeners.length + 1];

-	System.arraycopy(tabListeners, 0, newTabListeners, 0, tabListeners.length);

-	tabListeners = newTabListeners;

-	tabListeners[tabListeners.length - 1] = listener;

-	showClose = true;

-	layoutItems();

-}

-void onClientAreaChange() {

-	oldArea = null;

-	notifyListeners(SWT.Resize, new Event());

-}

-private void closeNotify(CTabItem item, int time) {

-	if (item == null) return;

-	

-	CTabFolderEvent event = new CTabFolderEvent(this);

-	event.widget = this;

-	event.time = time;

-	event.item = item;

-	event.doit = true;

-	if (tabListeners != null) {

-		for (int i = 0; i < tabListeners.length; i++) {

-			tabListeners[i].itemClosed(event);

-		}

-	}

-	if (event.doit) {

-		item.dispose();

-	}

-}

-public Point computeSize (int wHint, int hHint, boolean changed) {

-	int minWidth = 0;

-	int minHeight = 0;

-

-	// tab width

-	if (items.length > 0) {

-		CTabItem lastItem = items[items.length-1];

-		minWidth = lastItem.x + lastItem.width;

-	}

-

-	// get max preferred size of items

-	for (int i = 0; i < items.length; i++) {

-		Control control = items[i].getControl();

-		if (control != null && !control.isDisposed()){

-			Point size = control.computeSize (wHint, hHint);

-			minWidth = Math.max (minWidth, size.x);

-			minHeight = Math.max (minHeight, size.y);

-		}

-	}

-	if (minWidth == 0) minWidth = DEFAULT_WIDTH;

-	if (minHeight == 0) minHeight = DEFAULT_HEIGHT;

-

-	if (wHint != SWT.DEFAULT) minWidth  = wHint;

-	if (hHint != SWT.DEFAULT) minHeight = hHint;

-

-	Rectangle trim = computeTrim(0, 0, minWidth, minHeight);

-	return new Point (trim.width, trim.height);

-}

-public Rectangle computeTrim (int x, int y, int width, int height) {

-	int tabHeight = getTabHeight();

-	int trimX = x - marginWidth - borderLeft;

-	int trimY = y - marginHeight - tabHeight - borderTop;

-	if (onBottom) {

-		trimY = y - marginHeight - borderTop;

-	}

-	int trimWidth = width + borderLeft + borderRight + 2*marginWidth;

-	int trimHeight = height + borderTop + borderBottom + 2*marginHeight + tabHeight;

-	return new Rectangle (trimX, trimY, trimWidth, trimHeight);

-}

-/**

- * Create the specified item at 'index'.

- */

-void createItem (CTabItem item, int index) {

-	if (0 > index || index > getItemCount ()){ 

-		SWT.error (SWT.ERROR_INVALID_RANGE);

-	}

-	// grow by one and rearrange the array.

-	CTabItem[] newItems = new CTabItem [items.length + 1];

-	System.arraycopy(items, 0, newItems, 0, index);

-	newItems[index] = item;

-	System.arraycopy(items, index, newItems, index + 1, items.length - index);

-	items = newItems;

-	

-	item.parent = this;

-	

-	if (selectedIndex >= index) {

-		 selectedIndex ++;

-	}

-	if (items.length == 1) {

-		topTabIndex = 0;

-	}

-

-	layoutItems();

-	ensureVisible();

-	

-	if (items.length == 1) {

-		redraw();

-	} else {

-		redrawTabArea(-1);

-	}

-}

-

-private void createArrowBar() {

-	// create arrow buttons for scrolling 

-	arrowBar = new ToolBar(this, SWT.FLAT);

-	arrowBar.setVisible(false);

-	arrowBar.setBackground(getBackground());

-	ToolItem scrollLeft = new ToolItem(arrowBar, SWT.PUSH);

-	scrollLeft.setEnabled(false);

-	ToolItem scrollRight = new ToolItem(arrowBar, SWT.PUSH);

-	scrollRight.setEnabled(false);

-	

-	scrollLeft.addListener(SWT.Selection, new Listener() {

-		public void handleEvent(Event event) {

-			scroll_scrollLeft();

-		}

-	});

-	scrollRight.addListener(SWT.Selection, new Listener() {

-		public void handleEvent(Event event) {

-			scroll_scrollRight();

-		}

-	});

-	

-}

-private void createCloseBar() {

-	Color background = getBackground();

-	closeBar = new ToolBar(this, SWT.FLAT);

-	closeBar.setVisible(false);

-	if (gradientColors != null && gradientColors.length > 0) {

-		closeBar.setBackground(gradientColors[gradientColors.length - 1]);

-	} else {

-		closeBar.setBackground(background);

-	}

-	ToolItem closeItem = new ToolItem(closeBar, SWT.PUSH);

-	

-	inactiveCloseBar = new ToolBar(this, SWT.FLAT);

-	inactiveCloseBar.setVisible(false);

-	inactiveCloseBar.setBackground(background);

-	ToolItem inactiveCloseItem = new ToolItem(inactiveCloseBar, SWT.PUSH);

-

-	closeItem.addListener(SWT.Selection, new Listener() {

-		public void handleEvent(Event event) {

-			closeNotify(getSelection(), event.time);

-		}

-	});

-	inactiveCloseItem.addListener(SWT.Selection, new Listener() {

-		public void handleEvent(Event event) {

-			closeNotify(inactiveItem, event.time);

-			inactiveCloseBar.setVisible(false);

-			inactiveItem = null;

-		}

-	});

-	inactiveCloseBar.addListener (SWT.MouseExit, new Listener() {

-		public void handleEvent(Event event) {

-			if (inactiveItem != null) {

-				Rectangle itemBounds = inactiveItem.getBounds();

-				if (itemBounds.contains(event.x, event.y)) return;

-			}

-			inactiveCloseBar.setVisible(false);

-			inactiveItem = null;

-		}

-	});

-	

-}

-/**

- * Destroy the specified item.

- */

-void destroyItem (CTabItem item) {

-	if (inDispose) return;

-	

-	int index = indexOf(item);

-	if (index == -1) return; 	// should this trigger an error?

-	

-	insertionIndex = -2;

-	

-	if (items.length == 1) {

-		items = new CTabItem[0];

-		selectedIndex = -1;

-		topTabIndex = 0;

-		

-		Control control = item.getControl();

-		if (control != null && !control.isDisposed()) {

-			control.setVisible(false);

-		}

-		closeBar.setVisible(false);

-		redraw();

-		return;

-	} 

-		

-	// shrink by one and rearrange the array.

-	CTabItem[] newItems = new CTabItem [items.length - 1];

-	System.arraycopy(items, 0, newItems, 0, index);

-	System.arraycopy(items, index + 1, newItems, index, items.length - index - 1);

-	items = newItems;

-	

-	if (topTabIndex == items.length) {

-		--topTabIndex;

-	}

-	

-	// move the selection if this item is selected

-	if (selectedIndex == index) {

-		Control control = item.getControl();

-		if (control != null && !control.isDisposed()) {

-			control.setVisible(false);

-		}

-		selectedIndex = -1;

-		setSelection(Math.max(0, index - 1), true);

-	} else if (selectedIndex > index) {

-		selectedIndex --;

-	}

-	

-	layoutItems();

-	ensureVisible();

-	redrawTabArea(-1);

-}

-private void onKeyDown(Event e) {

-	if (e.keyCode == SWT.ARROW_LEFT) {

-		if (selectedIndex > 0) {

-			setSelection(selectedIndex - 1, true);

-		}

-	}

-	if (e.keyCode == SWT.ARROW_RIGHT) {

-		if (selectedIndex < items.length - 1) {

-			setSelection(selectedIndex + 1, true);

-		}

-	}

-}

-/**

- * Dispose the items of the receiver

- */

-private void onDispose() {

-	inDispose = true;

-	

-	// items array is resized during CTabItem.dispose

-	// it is set to null if the last item is removed

-	int length = items.length;

-	for (int i = 0; i < length; i++) {						

-		if (items[i] != null) {

-			items[i].dispose();

-		}

-	}

-	

-	// clean up resources

-	if (tip != null  && !tip.isDisposed()) {

-		tip.dispose();

-		tip = null;

-	}

-	

-	if (arrowLeftImage != null) arrowLeftImage.dispose();

-	arrowLeftImage = null;

-	if (arrowRightImage != null) arrowRightImage.dispose();

-	arrowRightImage = null;

-	if (closeImage != null) closeImage.dispose();

-	closeImage = null;

-	

-	gradientColors = null;

-	gradientPercents = null;

-	backgroundImage = null;

-

-	if (borderColor1 != null) borderColor1.dispose();

-	borderColor1 = null;

-	

-	if (borderColor2 != null) borderColor2.dispose();

-	borderColor2 = null;

-	

-	if (borderColor3 != null) borderColor3.dispose();

-	borderColor3 = null;

-}

-public void onFocus(Event e) {

-	if (selectedIndex >= 0) {

-		redrawTabArea(selectedIndex);

-	} else {

-		setSelection(0, true);

-	}

-}

-/** 

- * Draw a border around the receiver.

- */

-private void drawBorder(GC gc) {

-	

-	Rectangle d = super.getClientArea();

-	

-	if (showBorders) {

-		if ((getStyle() & SWT.FLAT) != 0) {

-			gc.setForeground(borderColor1);

-			gc.drawRectangle(d.x, d.y, d.x + d.width - 1, d.y + d.height - 1);

-		} else {

-			gc.setForeground(borderColor1);

-			gc.drawRectangle(d.x, d.y, d.x + d.width - 3, d.y + d.height - 3);

-		

-			gc.setForeground(borderColor2);

-			gc.drawLine(d.x + 1,           d.y + d.height - 2, d.x + d.width - 1, d.y + d.height - 2);

-			gc.drawLine(d.x + d.width - 2, d.y + 1,            d.x + d.width - 2, d.y + d.height - 1);

-		

-			gc.setForeground(borderColor3);

-			gc.drawLine(d.x + 2,           d.y + d.height - 1, d.x + d.width - 2, d.y + d.height - 1);

-			gc.drawLine(d.x + d.width - 1, d.y + 2,            d.x + d.width - 1, d.y + d.height - 2);

-		

-			// fill in corners with parent's background

-			gc.setForeground(getParent().getBackground());

-			gc.drawLine(d.x + d.width - 2, d.y,     d.x + d.width - 1, d.y);

-			gc.drawLine(d.x + d.width - 1, d.y + 1, d.x + d.width - 1, d.y + 1);

-		

-			gc.drawLine(d.x, d.y + d.height - 2, d.x,     d.y + d.height - 2);

-			gc.drawLine(d.x, d.y + d.height - 1, d.x + 1, d.y + d.height - 1);

-		

-			gc.drawLine(d.x + d.width - 1, d.y + d.height - 1, d.x + d.width - 1, d.y + d.height - 1);

-		}

-		

-	}

-

-	// draw a separator line

-	if (items.length > 0) {	

-		int tabHeight = getTabHeight();

-		int lineY = d.y + borderTop + tabHeight;

-		if (onBottom) {

-			lineY = d.y + d.height - borderBottom - tabHeight - 1;

-		}

-		gc.setForeground(borderColor1);

-		gc.drawLine(d.x + borderLeft, lineY, d.x + d.width - borderRight, lineY);

-	}

-

-	gc.setForeground(getForeground());

-}

-public Rectangle getClientArea() {

-	Rectangle clientArea = super.getClientArea();

-	clientArea.x = xClient;

-	clientArea.y = yClient;

-	clientArea.width -= 2*marginWidth + borderLeft + borderRight;

-	clientArea.height -= 2*marginHeight + borderTop + borderBottom + getTabHeight() + 1;

-	return clientArea;

-}

-public int getTabHeight(){

-	if (fixedTabHeight > 0) return fixedTabHeight;

-

-	int tempHeight = 0;

-	GC gc = new GC(this);

-	for (int i=0; i < items.length; i++) { 

-		tempHeight = Math.max(tempHeight, items[i].preferredHeight(gc));

-	}

-	gc.dispose();

-	return tempHeight;

-}

-/**

- * Return the tab that is located at the specified index.

- */

-public CTabItem getItem (int index) {

-	if (index  < 0 || index > items.length) 

-		SWT.error(SWT.ERROR_INVALID_RANGE);

-	return items [index];

-}

-/**

-* Gets the item at a point in the widget.

-* <p>

-*

-* @return the item at a point

-*

-* @exception SWTError <ul>

-*		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

-*		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

-* 		<li>ERROR_CANNOT_GET_COUNT when the operation fails</li>

-*	</ul>

-*/

-public CTabItem getItem (Point pt) {

-	for (int i = 0; i < items.length; i++) {

-		Rectangle bounds = items[i].getBounds();

-		if (bounds.contains(pt)) return items[i];

-	}

-	return null;

-}

-/**

- * Return the number of tabs in the folder.

- */

-public int getItemCount(){

-	return items.length;

-}

-/**

- * Return the tab items.

- */

-public CTabItem [] getItems() {

-	CTabItem[] tabItems = new CTabItem [items.length];

-	System.arraycopy(items, 0, tabItems, 0, items.length);

-	return tabItems;

-}

-/**

- * Return the selected tab item, or an empty array if there

- * is no selection.

- */

-public CTabItem getSelection() {

-	if (selectedIndex == -1) return null;

-	return items[selectedIndex];

-}

-/**

- * Return the index of the selected tab item, or -1 if there

- * is no selection.

- */

-public int getSelectionIndex() {

-	return selectedIndex;

-}

-

-

-/**

- * Return the index of the specified tab or -1 if the tab is not 

- * in the receiver.

- */

-public int indexOf(CTabItem item) {

-	if (item == null) {

-		SWT.error(SWT.ERROR_NULL_ARGUMENT);

-	}

-	for (int i = 0; i < items.length; i++) {

-		if (items[i] == item) return i;

-	}

-	return -1;

-}

-

-private void layoutButtons() {

-	

-	updateArrowBar();

-	updateCloseBar();

-	

-	int tabHeight = getTabHeight();

-	Rectangle area = super.getClientArea();

-	

-	boolean leftVisible = scroll_leftVisible();

-	boolean rightVisible = scroll_rightVisible();

-	if (leftVisible || rightVisible) {

-		Point size = arrowBar.computeSize(SWT.DEFAULT, tabHeight);

-		int x = area.x + area.width - borderRight - size.x;

-		int y = (onBottom) ? area.y + area.height - borderBottom - size.y : area.y + borderTop;

-		

-		arrowBar.setBounds(x, y, size.x, size.y);

-		ToolItem[] items = arrowBar.getItems();

-		items[0].setEnabled(leftVisible);

-		items[1].setEnabled(rightVisible);

-		arrowBar.setVisible(true);

-	} else {

-		arrowBar.setVisible(false);

-	}

-	

-	// When the close button is right at the edge of the Tab folder, hide it because

-	// otherwise it may block off a part of the border on the right

-	if (showClose) {

-		CTabItem item = getSelection();

-		if (item == null) {

-			closeBar.setVisible(false);

-		} else {

-			int toolbarHeight = tabHeight - CTabItem.TOP_MARGIN - CTabItem.BOTTOM_MARGIN + 2; // +2 to ignore gab between focus rectangle

-			int x = item.x + item.width - toolbarHeight - 1;

-			int y = item.y + Math.max(0, (item.height - toolbarHeight)/2);		

-				closeBar.setBounds(x, y, toolbarHeight, toolbarHeight);

-			if (arrowBar.isVisible()) {

-				Rectangle arrowRect = arrowBar.getBounds();

-				arrowRect.width += borderRight;

-				closeBar.setVisible(!arrowRect.contains(x, y));

-			} else {

-				closeBar.setVisible(true);

-			}

-		}

-	}

-}

-/**

- * Layout the items and store the client area size.

- */

- void layoutItems() {

-	if (isDisposed()) return;

-

-	Rectangle area = super.getClientArea();

-	int tabHeight = getTabHeight();

-

-	shortenedTabs = false;

-	if (items.length > 0) {

-		int[] widths = new int[items.length];

-		int totalWidth = 0;

-		GC gc = new GC(this);

-		for (int i = 0; i < items.length; i++) {

-			widths[i] = items[i].preferredWidth(gc);

-			totalWidth += widths[i];

-		}

-		gc.dispose();

-		if (totalWidth < (area.width - borderLeft - borderRight) ) {

-			topTabIndex = 0;

-		} else {

-			

-			int oldAverageWidth = 0;

-			int averageWidth = (area.width - borderLeft - borderRight) / items.length;

-			while (averageWidth > oldAverageWidth) {

-				int width = area.width - borderLeft - borderRight;

-				int count = items.length;

-				for (int i = 0; i < items.length; i++) {

-					if (widths[i] < averageWidth) {

-						width -= widths[i];

-						count--;

-					}

-				}

-				oldAverageWidth = averageWidth;

-				if (count > 0) {

-					averageWidth = width / count;

-				}

-			}

-			if (averageWidth > MIN_TAB_WIDTH * tabHeight) {

-				for (int i = 0; i < items.length; i++) {

-					if (widths[i] > averageWidth) {

-						widths[i] = averageWidth;

-					}

-				}

-				topTabIndex = 0;

-				shortenedTabs = true;

-			}

-		}

-		int x = area.x;

-		int y = area.y + borderTop;

-		if (onBottom) {

-			y = Math.max(0, area.y + area.height - borderBottom - tabHeight);

-		}

-		for (int i = topTabIndex - 1; i>=0; i--) { 

-			// if the first visible tab is not the first tab

-			CTabItem tab = items[i];

-			tab.width = widths[i];

-			tab.height = getTabHeight();

-			x -= tab.width; 

-			// layout tab items from right to left thus making them invisible

-			tab.x = x;

-			tab.y = y;

-		}

-		

-		x = area.x + borderLeft;

-		for (int i=topTabIndex; i<items.length; i++) {

-			// continue laying out remaining, visible items left to right 

-			CTabItem tab = items[i];

-			tab.x = x;

-			tab.y = y;

-			tab.height = tabHeight;

-			tab.width = widths[i];

-			x = x + tab.width;

-		}

-	}

-	

-	xClient = area.x + borderLeft + marginWidth;

-	if (onBottom) {

-		yClient = area.y + borderTop + marginHeight; 

-	} else {

-		yClient = area.y + borderTop + tabHeight + 1 + marginHeight; 

-		// +1 is for the line at the bottom of the tabs

-	}

-	

-	// resize the scrollbar and close butotns

-	layoutButtons();

-}

-boolean onMnemonic (Event event) {

-	char key = event.character;

-	for (int i = 0; i < items.length; i++) {

-		if (items[i] != null) {

-			char mnemonic = getMnemonic (items[i].getText ());

-			if (mnemonic != '\0') {

-				if (Character.toUpperCase (key) == Character.toUpperCase (mnemonic)) {

-					setSelection(i, true);

-					return true;

-				}

-			}

-		}

-	}

-	return false;

-}

-/** 

- * Paint the receiver.

- */

-private void onPaint(Event event) {

-	GC gc = event.gc;

-	Rectangle rect = super.getClientArea();

-	if (items.length == 0) {

-		

-		if (showBorders) {

-			gc.setForeground(borderColor1);

-			gc.drawRectangle(rect.x + borderRight, 

-			                 rect.y + borderBottom, 

-			                 rect.x + rect.width - borderRight - 1, 

-			                 rect.y + rect.height - borderBottom - 1);	

-			// fill in top and left edge with parent's background color

-			gc.setBackground(getParent().getBackground());

-			gc.fillRectangle(rect.x, rect.y, borderRight, rect.height);

-			gc.fillRectangle(rect.x, rect.y, rect.width, borderBottom);

-

-		}

-		int tabHeight = getTabHeight();

-		if (tabHeight > 0) {

-			int y = rect.y + borderBottom + tabHeight;

-			if (onBottom) {

-				y = rect.y + rect.height - tabHeight - 1;

-			}

-			gc.setForeground(borderColor1);

-			gc.drawLine(rect.x + borderRight, y, rect.x + rect.width, y);

-		}

-		gc.setForeground(getForeground());

-		gc.setBackground(getBackground());

-		return;

-	}

-	

-	// redraw the Border

-	drawBorder(gc);

-	

-	rect.x += borderLeft;

-	rect.y += borderTop;

-	rect.width -= borderLeft + borderRight;

-	rect.height -= borderTop + borderBottom;

-	gc.setClipping(rect);

-	

-	// Draw the unselected tabs first.

-	for (int i=0; i < items.length; i++) {

-		if (i != selectedIndex && event.getBounds().intersects(items[i].getBounds())) {

-			items[i].onPaint(gc, false);

-		}

-	}

-	// Selected tab comes last

-	if (selectedIndex != -1) {

-		items[selectedIndex].onPaint(gc, true);

-	}

-	

-	// draw insertion mark

-	if (insertionIndex > -2) {

-		gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION));

-		if (insertionIndex == -1) {

-			Rectangle bounds = items[0].getBounds();

-			gc.drawLine(bounds.x, bounds.y, bounds.x, bounds.y + bounds.height - 1);

-			gc.drawLine(bounds.x - 2, bounds.y, bounds.x + 2, bounds.y);

-			gc.drawLine(bounds.x - 1, bounds.y + 1, bounds.x + 1, bounds.y + 1);

-			gc.drawLine(bounds.x - 1, bounds.y + bounds.height - 2, bounds.x + 1, bounds.y + bounds.height - 2);

-			gc.drawLine(bounds.x - 2, bounds.y + bounds.height - 1, bounds.x + 2, bounds.y + bounds.height - 1);

-

-		} else {

-			Rectangle bounds = items[insertionIndex].getBounds();

-			gc.drawLine(bounds.x + bounds.width, bounds.y, bounds.x + bounds.width, bounds.y + bounds.height - 1);

-			gc.drawLine(bounds.x + bounds.width - 2, bounds.y, bounds.x + bounds.width + 2, bounds.y);

-			gc.drawLine(bounds.x + bounds.width - 1, bounds.y + 1, bounds.x + bounds.width + 1, bounds.y + 1);

-			gc.drawLine(bounds.x + bounds.width - 1, bounds.y + bounds.height - 2, bounds.x + bounds.width + 1, bounds.y + bounds.height - 2);

-			gc.drawLine(bounds.x + bounds.width - 2, bounds.y + bounds.height - 1, bounds.x + bounds.width + 2, bounds.y + bounds.height - 1);

-		}

-	}

-	

-	gc.setForeground(getForeground());

-	gc.setBackground(getBackground());	

-}

-private void redrawTabArea(int index) {

-	int x = 0, y = 0, width = 0, height = 0;

-	if (index == -1) {

-		Rectangle area = super.getClientArea();

-		if (area.width == 0 || area.height == 0) return;

-		width = area.x + area.width - borderLeft - borderRight;

-		height = getTabHeight() + 1; // +1 causes top line between content and tabs to be redrawn

-		x = area.x + borderLeft;

-		y = area.y + borderTop; 

-		if (onBottom) {

-			y = Math.max(0, area.y + area.height - borderBottom - height);

-		}

-	} else {

-		CTabItem item = items[index];

-		x = item.x;

-		y = item.y;

-		Rectangle area = super.getClientArea();

-		width = area.x + area.width - x;

-		height = item.height;

-	}

-	redraw(x, y, width, height, false);

-}

-

-/**	 

- * Removes the listener.

- *

- * @param listener the listener

- *

- * @exception SWTError

- *	<ul><li>ERROR_THREAD_INVALID_ACCESS	when called from the wrong thread</li>

- * 		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>

- */

-public void removeSelectionListener(SelectionListener listener) {

-	if (listener == null) {

-		SWT.error(SWT.ERROR_NULL_ARGUMENT);

-	}

-	removeListener(SWT.Selection, listener);

-	removeListener(SWT.DefaultSelection, listener);	

-}

-/**	 

- * Removes the listener.

- *

- * @param listener the listener

- *

- * @exception SWTError

- *	<ul><li>ERROR_THREAD_INVALID_ACCESS	when called from the wrong thread</li>

- * 		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>

- */

-public void removeCTabFolderListener(CTabFolderListener listener) {

-	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);

-	if (tabListeners.length == 0) return;

-	int index = -1;

-	for (int i = 0; i < tabListeners.length; i++) {

-		if (listener == tabListeners[i]){

-			index = i;

-			break;

-		}

-	}

-	if (index == -1) return;

-	if (tabListeners.length == 1) {

-		tabListeners = new CTabFolderListener[0];

-		showClose = false;

-		return;

-	}

-	CTabFolderListener[] newTabListeners = new CTabFolderListener[tabListeners.length - 1];

-	System.arraycopy(tabListeners, 0, newTabListeners, 0, index);

-	System.arraycopy(tabListeners, index + 1, newTabListeners, index, tabListeners.length - index - 1);

-	tabListeners = newTabListeners;

-}

-

-/**

- * The widget was resized. Adjust the size of the currently selected page.

- */ 

-private void onResize() {

-

-	if (items.length == 0) {

-		redraw();

-		return;

-	}

-

-	Rectangle area = super.getClientArea();

-	if (oldArea == null || oldArea.width == 0 || oldArea.height == 0) {

-		layoutItems();

-		redraw();

-	} else {

-		if (onBottom && oldArea.height != area.height){

-			// move tabs up or down if tabs on bottom

-			layoutItems();

-			redraw();

-		} else {

-			int width = 0;

-			if (oldArea.width < area.width) {

-				width = area.width - oldArea.width + borderRight;

-			} else if (oldArea.width > area.width) {

-				width = borderRight;			

-			}

-			redraw(area.x + area.width - width, area.y, width, area.height, false);

-			

-			int height = 0;

-			if (oldArea.height < area.height) {

-				height = area.height - oldArea.height + borderBottom;		

-			}

-			if (oldArea.height > area.height) {

-				height = borderBottom;		

-			}

-			redraw(area.x, area.y + area.height - height, area.width, height, false);	

-		

-			if (oldArea.width != area.width) {

-				// resize the widths so that all tabs are visible

-				layoutItems();

-				redrawTabArea(-1);

-			}

-		}

-	}

-	oldArea = area;

-	

-	// resize content

-	if (selectedIndex != -1) {

-		Control control = items[selectedIndex].getControl();

-		if (control != null && !control.isDisposed()) {

-			control.setBounds(getClientArea());

-		}

-	}

-}

-

-public void setBackground (Color color) {

-	super.setBackground(color);

-	color = getBackground();

-	

-	// init inactive close button

-	inactiveCloseBar.setBackground(color);

-	

-	// init scroll buttons

-	arrowBar.setBackground(color);

-	

-	// init close button

-	if (gradientColors == null) {

-		closeBar.setBackground(color);

-	}

-}

-/**

- * Specify a gradiant of colours to be draw in the background of the selected tab.

- * For example to draw a gradiant that varies from dark blue to blue and then to

- * white, use the following call to setBackground:

- * <pre>

- *	cfolder.setBackground(new Color[]{display.getSystemColor(SWT.COLOR_DARK_BLUE), 

- *		                           display.getSystemColor(SWT.COLOR_BLUE),

- *		                           display.getSystemColor(SWT.COLOR_WHITE), 

- *		                           display.getSystemColor(SWT.COLOR_WHITE)},

- *		               new int[] {25, 50, 100});

- * </pre>

- *

- * @param colors an array of Color that specifies the colors to appear in the gradiant 

- *               in order of appearance left to right.  The value <code>null</code> clears the

- *               background gradiant. The value <code>null</code> can be used inside the array of 

- *               Color to specify the background color.

- * @param percents an array of integers between 0 and 100 specifying the percent of the width 

- *                 of the widget at which the color should change.  The size of the percents array must be one 

- *                 less than the size of the colors array.

- */

-

-public void setSelectionBackground(Color[] colors, int[] percents) {

-	if (colors != null) {

-		if (percents == null || percents.length != colors.length - 1) {

-			SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-		}

-		if (getDisplay().getDepth() < 15) {

-			// Don't use gradients on low color displays

-			colors = new Color[] { colors[0] };

-			percents = new int[] { };

-		}

-		for (int i = 0; i < percents.length; i++) {

-			if (percents[i] < 0 || percents[i] > 100) {

-				SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-			}

-			if (i > 0 && percents[i] < percents[i-1]) {

-				SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-			}

-		}

-	}

-	

-	// Are these settings the same as before?

-	final Color background = getBackground();

-	if (backgroundImage == null) {

-		if ((gradientColors != null) && (colors != null) && 

-			(gradientColors.length == colors.length)) {

-			boolean same = false;

-			for (int i = 0; i < gradientColors.length; i++) {

-				same = (gradientColors[i] == colors[i]) ||

-					((gradientColors[i] == null) && (colors[i] == background)) ||

-					((gradientColors[i] == background) && (colors[i] == null));

-				if (!same) break;

-			}

-			if (same) {

-				for (int i = 0; i < gradientPercents.length; i++) {

-					same = gradientPercents[i] == percents[i];

-					if (!same) break;

-				}

-			}

-			if (same) return;

-		}

-	} else {

-		backgroundImage = null;

-	}

-	// Store the new settings

-	if (colors == null) {

-		gradientColors = null;

-		gradientPercents = null;

-		closeBar.setBackground(background);

-	} else {

-		gradientColors = new Color[colors.length];

-		for (int i = 0; i < colors.length; ++i)

-			gradientColors[i] = (colors[i] != null) ? colors[i] : background;

-		gradientPercents = new int[percents.length];

-		for (int i = 0; i < percents.length; ++i)

-			gradientPercents[i] = percents[i];

-		if (getDisplay().getDepth() < 15) closeBar.setBackground(background);

-		else closeBar.setBackground(gradientColors[gradientColors.length - 1]);

-	}

-

-	// Refresh with the new settings

-	if (selectedIndex > -1) redrawTabArea(selectedIndex);

-}

-public void setSelectionBackground(Image image) {

-	if (image == backgroundImage) return;

-	gradientColors = null;

-	gradientPercents = null;

-	backgroundImage = image;

-	redrawTabArea(selectedIndex);

-}

-public void setBorderVisible(boolean show) {

-	if (showBorders == show) return;

-	

-	showBorders = show;

-	if (showBorders) {

-		if ((getStyle() & SWT.FLAT) != 0) {

-			borderBottom = borderTop = borderLeft = borderRight = 1;

-		} else {

-			borderLeft = borderTop = 1;

-			borderRight = borderBottom = 3;

-		}

-	} else {

-		borderBottom = borderTop = borderLeft = borderRight = 0;

-	}

-	onClientAreaChange();

-}

-public void setFont(Font font) {

-	if (font != null && font.equals(getFont())) return;

-	int oldHeight = getTabHeight();

-	super.setFont(font);

-	if (oldHeight != getTabHeight()){

-		onClientAreaChange();

-	} else {

-		layoutItems();

-		redraw();

-	}

-}

-public void setSelectionForeground (Color color) {

-	if (selectionForeground == color) return;

-	if (color == null) color = getForeground();

-	selectionForeground = color;

-	if (selectedIndex > -1) {

-		redrawTabArea(selectedIndex);

-	}

-}

-public void setInsertMark(CTabItem item, boolean after) {

-	int index = -1;

-	if (item != null) {

-		index = indexOf(item);

-	}

-	setInsertMark(index, after);

-}

-public void setInsertMark(int index, boolean after) {

-	if (index < -1 || index >= getItemCount()) {

-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	

-	if (index == -1) {

-		index = -2;

-	} else {

-		index = after ? index : --index;

-	}

-	

-	if (insertionIndex == index) return;

-	int oldIndex = insertionIndex;

-	insertionIndex = index;

-	if (index > -1)	redrawTabArea(index);

-	if (oldIndex > 1) redrawTabArea(oldIndex);

-}

-

-/**

- * Set the selection to the tab at the specified index.

- */

-public void setSelection(int index) {

-	if (index < 0 || index >= items.length) return;

-	if (selectedIndex == index) return;

-	

-	if (showClose) {

-		inactiveCloseBar.setVisible(false);

-		inactiveItem = null;

-		if (arrowBar.isVisible()) {

-			Rectangle arrowRect = arrowBar.getBounds();

-			arrowRect.width += borderRight;

-			closeBar.setVisible(!arrowRect.contains(closeBar.getLocation()));

-		} else {

-			closeBar.setVisible(true);

-		}

-	}

-	

-	int oldIndex = selectedIndex;

-	selectedIndex = index;

-	

-	Control control = items[index].control;

-	if (control != null && !control.isDisposed()) {

-		control.setBounds(getClientArea());

-		control.setVisible(true);

-	}

-	

-	if (oldIndex != -1) {

-		control = items[oldIndex].control;

-		if (control != null && !control.isDisposed()) {

-			control.setVisible(false);

-		}		

-	}

-	ensureVisible();

-	

-	redrawTabArea(-1);

-}

-private void ensureVisible() {

-	if (selectedIndex == -1) return;

-	// make sure selected item is visible

-	Rectangle area = super.getClientArea();

-	if (area.width == 0) return;

-	int areaWidth = area.x + area.width - borderRight;

-	

-	CTabItem tabItem = items[selectedIndex];

-	if (selectedIndex < topTabIndex) {

-		topTabIndex = selectedIndex;

-	}

-	layoutItems();

-	

-	int scrollWidth = arrowBar.getSize().x;

-	int width = areaWidth;

-	if (scroll_leftVisible() || scroll_rightVisible()) {

-		width -=  scrollWidth;

-	}

-	while (tabItem.x + tabItem.width > width && selectedIndex != topTabIndex) {

-		topTabIndex++;

-		layoutItems();

-		width = areaWidth;

-		if (scroll_leftVisible() || scroll_rightVisible()) {

-			width -=  scrollWidth;

-		}

-	}

-}

-

-char getMnemonic (String string) {

-	int index = 0;

-	int length = string.length ();

-	do {

-		while ((index < length) && (string.charAt (index) != '&')) index++;

-		if (++index >= length) return '\0';

-		if (string.charAt (index) != '&') return string.charAt (index);

-		index++;

-	} while (index < length);

- 	return '\0';

-}

-/**

- * Set the selection to the specified item.

- */

-public void setSelection(CTabItem item) {

-	if (item == null) 

-		SWT.error(SWT.ERROR_NULL_ARGUMENT);

-	int index = indexOf(item);

-	setSelection(index);

-}

-/**

- * Set the selection to the tab at the specified index.

- */

-private void setSelection(int index, boolean notify) {	

-	int oldSelectedIndex = selectedIndex;

-	setSelection(index);

-	if (notify && selectedIndex != oldSelectedIndex && selectedIndex != -1) {

-		Event event = new Event();

-		event.item = getItem(selectedIndex);

-		notifyListeners(SWT.Selection, event);

-	}

-}

-

-private void updateCloseBar() {

-	int imageHeight = getTabHeight() - CTabItem.TOP_MARGIN - CTabItem.BOTTOM_MARGIN - 6;

-	if (imageHeight < 4) return;

-	

-	if (closeImage != null && closeImage.getBounds().height == imageHeight) return;

-	

-	if (closeBar != null) closeBar.dispose();

-	closeBar = null;

-	if (inactiveCloseBar != null) inactiveCloseBar.dispose();

-	inactiveCloseBar = null;

-	createCloseBar();

-	

-	ToolItem closeItem = closeBar.getItems()[0];

-	ToolItem inactiveCloseItem = inactiveCloseBar.getItems()[0];

-		

-	if (closeImage != null) closeImage.dispose();

-	

-	Display display = getDisplay();

-	Color foreground = getForeground();

-	Color black = display.getSystemColor(SWT.COLOR_BLACK);

-	Color background = getBackground();

-	

-	PaletteData palette = new PaletteData(new RGB[]{foreground.getRGB(), background.getRGB(), black.getRGB()});

-	ImageData imageData = new ImageData(imageHeight, imageHeight, 4, palette);

-	imageData.transparentPixel = 1;

-	closeImage = new Image(display, imageData);

-	GC gc = new GC(closeImage);

-	gc.setBackground(background);

-	gc.fillRectangle(0, 0, imageHeight, imageHeight);

-	gc.setForeground(black);

-	

-	int h = (imageHeight /2 )* 2;

-	gc.drawLine( 0, 0,     h - 2, h - 2);

-	gc.drawLine( 1, 0,     h - 1, h - 2);

-	gc.drawLine( 0, h - 2, h - 2, 0);

-	gc.drawLine( 1, h - 2, h - 1, 0);

-	

-	gc.dispose();

-	

-	closeItem.setImage(closeImage);

-	inactiveCloseItem.setImage(closeImage);

-}

-private void updateArrowBar() {

-	

-	int imageHeight = getTabHeight() - CTabItem.TOP_MARGIN - CTabItem.BOTTOM_MARGIN - 6;

-	if (imageHeight < 4) return;

-	

-	if (arrowLeftImage != null && arrowLeftImage.getBounds().height == imageHeight) return;	

-	

-	if (arrowBar != null) arrowBar.dispose();

-	arrowBar = null;

-	if (arrowLeftImage != null) arrowLeftImage.dispose();

-	if (arrowRightImage != null) arrowRightImage.dispose();

-	

-	createArrowBar();

-	ToolItem[] items = arrowBar.getItems();

-	ToolItem left  = items[0];

-	ToolItem right = items[1];

-	

-	Display display = getDisplay();

-	Color foreground = getForeground();

-	Color black = display.getSystemColor(SWT.COLOR_BLACK);

-	Color background = getBackground();

-	

-	PaletteData palette = new PaletteData(new RGB[]{foreground.getRGB(), background.getRGB(), black.getRGB()});

-	ImageData imageData = new ImageData(imageHeight, imageHeight, 4, palette);

-	imageData.transparentPixel = 1;

-	arrowLeftImage = new Image(display, imageData);

-	GC gc = new GC(arrowLeftImage);

-	gc.setBackground(background);

-	gc.fillRectangle(0, 0, imageHeight, imageHeight);

-	gc.setBackground(black);

-	int indent = 0;

-	int midpoint = (imageHeight - 2*indent)/2;

-	int height = 2 * midpoint;

-	int[] pointArr = new int[] {indent, indent + midpoint, 

-		                        indent + height, indent, 

-		                        indent + height,  indent + height};

-	gc.fillPolygon(pointArr);

-	gc.dispose();

-	

-	palette = new PaletteData(new RGB[]{foreground.getRGB(), background.getRGB(), black.getRGB()});

-	imageData = new ImageData(imageHeight, imageHeight, 4, palette);

-	imageData.transparentPixel = 1;

-	arrowRightImage = new Image(display, imageData);

-	gc = new GC(arrowRightImage);

-	gc.setBackground(background);

-	gc.fillRectangle(0, 0, imageHeight, imageHeight);

-	gc.setBackground(black);

-	pointArr = new int[] {indent, indent, 

-		                  indent, indent + height,

-		                  indent + height, indent + midpoint};

-	gc.fillPolygon(pointArr);

-	gc.dispose();

-	

-	left.setImage(arrowLeftImage);

-	right.setImage(arrowRightImage);

-}

-

-private void onMouseDoubleClick(Event event) { 

-	Event e = new Event();

-	e.item = getItem(new Point(event.x, event.y));

-	notifyListeners(SWT.DefaultSelection, e);

-}

-/** 

- * A mouse button was pressed down. 

- * If one of the tab scroll buttons was hit, scroll in the appropriate 

- * direction.

- * If a tab was hit select the tab.

- */

-private void onMouseDown(Event event) {

-	for (int i=0; i<items.length; i++) {

-		if (items[i].getBounds().contains(new Point(event.x, event.y))) {

-			setSelection(i, true);

-			return;

-		}

-	}

-}

-

-private void onMouseExit(Event event) {

-	Rectangle inactiveBounds = inactiveCloseBar.getBounds();

-	if (inactiveBounds.contains(event.x, event.y)) return;

-	inactiveCloseBar.setVisible(false);

-	inactiveItem = null;

-		

-	if (!tip.isDisposed() && tip.isVisible()) tip.setVisible(false);

-}

-

-private void onMouseHover(Event event) {

-	if (tip.isDisposed()) return;

-	Point pt = new Point (event.x, event.y);

-	CTabItem item = getItem(pt);

-	if (item != null) {

-		String tooltip = item.getToolTipText();

-		if (tooltip != null) {			

-			Label label = (Label) (tip.getChildren() [0]);

-			label.setText(tooltip);

-			tip.pack();

-			pt.y += 16;

-			pt = toDisplay(pt);

-			/*

-			* Ensure that the tooltip is on the screen.

-			*/

-			Display display = tip.getDisplay();

-			Rectangle rect = display.getBounds();

-			Point size = tip.getSize();

-			pt.x = Math.max (0, Math.min (pt.x, rect.width - size.x));

-			pt.y = Math.max (0, Math.min (pt.y, rect.height - size.y));

-			tip.setLocation(pt);

-				

-			tip.setVisible(true);

-			return;

-		}

-	}

-

-	tip.setVisible(false);

-}

-

-private void onMouseMove(Event event) {

-	if (!showClose) return;

-	

-	CTabItem item = null;

-	for (int i=0; i<items.length; i++) {

-		Rectangle rect = items[i].getBounds();

-		if (rect.contains(new Point(event.x, event.y))) {

-			item = items[i];

-			break;

-		}

-	}

-	if (item == inactiveItem) return;

-	

-	inactiveCloseBar.setVisible(false);

-	inactiveItem = null;

-		

-	if (item == null || item == getSelection()) return;

-

-	int toolbarHeight = getTabHeight() - CTabItem.TOP_MARGIN - CTabItem.BOTTOM_MARGIN + 2; // +2 to ignore gab between focus rectangle

-	int x = item.x + item.width - toolbarHeight;

-	int y = item.y + Math.max(0, (item.height - toolbarHeight)/2);		

-			

-	if (arrowBar.isVisible()) {

-		Rectangle scrollArea = arrowBar.getBounds();

-		scrollArea.width += borderRight;

-		if (scrollArea.contains(x, y)) return;

-	}

-	

-	inactiveCloseBar.setBounds(x, y, toolbarHeight,toolbarHeight);

-	inactiveCloseBar.setVisible(true);

-	inactiveItem = item;

-}

-private void onTraverse (Event event) {

-	switch (event.detail) {

-		case SWT.TRAVERSE_ESCAPE:

-		case SWT.TRAVERSE_RETURN:

-		case SWT.TRAVERSE_TAB_NEXT:

-		case SWT.TRAVERSE_TAB_PREVIOUS:

-			event.doit = true;

-			break;

-		case SWT.TRAVERSE_MNEMONIC:

-			event.doit = onMnemonic(event);

-			if (event.doit) event.detail = SWT.TRAVERSE_NONE;

-			break;

-		case SWT.TRAVERSE_PAGE_NEXT:

-		case SWT.TRAVERSE_PAGE_PREVIOUS:

-			event.doit = onPageTraversal(event);

-			if (event.doit) event.detail = SWT.TRAVERSE_NONE;

-			break;

-	}

-}

-

-private boolean onPageTraversal(Event event) {

-	int count = getItemCount ();

-	if (count == 0) return false;

-	int index = getSelectionIndex ();

-	if (index == -1) {

-		index = 0;

-	} else {

-		int offset = (event.detail == SWT.TRAVERSE_PAGE_NEXT) ? 1 : -1;

-		index = (index + offset + count) % count;

-	}

-	setSelection (index, true);

-	return true;

-}

-/** 

- * Answer the area where the left scroll button is drawn.

- */

-private Rectangle scroll_getBounds() {

-	if (arrowBar != null)

-		return arrowBar.getBounds();

-	return new Rectangle(0, 0, 0, 0);

-}

-

-/**

- * Answer true if not all tabs can be visible in the receive

- * thus requiring the scroll buttons to be visible.

- */ 

-private boolean scroll_leftVisible() {

-	return topTabIndex > 0;

-}

-

-/**

- * Answer true if not all tabs can be visible in the receive

- * thus requiring the scroll buttons to be visible.

- */ 

-private boolean scroll_rightVisible() {	

-	if (topTabIndex < items.length - 1) { 

-		// only show Scroll buttons if there is more than one item

-		// and if we are not alread at the last item

-		CTabItem tabItem = items[items.length-1];

-		int tabStopX = tabItem.x + tabItem.width;

-		Rectangle area = super.getClientArea();

-		if (tabStopX > area.x + area.width - borderRight) {

-			return true;	// not all tabs fit in the client area

-		}

-	}

-	return false;

-}

-

-/**

- * Scroll the tab items to the left.

- */

-private void scroll_scrollLeft() {

-	if (scroll_leftVisible()) {

-		--topTabIndex;

-		layoutItems();

-		redrawTabArea(-1);

-	}

-}

-

-/**

- * Scroll the tab items to the right.

- */

-private void scroll_scrollRight() {

-	if (scroll_rightVisible()) {

-		topTabIndex++;

-		layoutItems();

-		redrawTabArea(-1);

-	}

-}

-public void setTabHeight(int height) {

-	if (height < 0) {

-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	if (fixedTabHeight == height) return;

-	fixedTabHeight = height;

-	onClientAreaChange();

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderAdapter.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderAdapter.java
deleted file mode 100755
index 1b72804..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderAdapter.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-public class CTabFolderAdapter implements CTabFolderListener {

-	public void itemClosed(CTabFolderEvent event){};

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderEvent.java
deleted file mode 100755
index c19ecfc..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderEvent.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.TypedEvent;

-import org.eclipse.swt.widgets.*;

-

-public class CTabFolderEvent extends TypedEvent {

- 	public Widget item;

- 	public boolean doit;

- 	

-CTabFolderEvent(Widget w) {

-	super(w);

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderListener.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderListener.java
deleted file mode 100755
index cfc10a8..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolderListener.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-public interface CTabFolderListener {

-	public void itemClosed(CTabFolderEvent event);

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabItem.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabItem.java
deleted file mode 100755
index 265df47..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabItem.java
+++ /dev/null
@@ -1,429 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-public class CTabItem extends Item {

-	CTabFolder parent;

-	int x,y,width,height = 0;

-	String toolTipText;

-	Control control; // the tab page

-		

-	private Image disabledImage;

-	

-	// internal constants

-	static final int LEFT_MARGIN = 4;

-	static final int RIGHT_MARGIN = 4;	

-	static final int TOP_MARGIN = 3;

-	static final int BOTTOM_MARGIN = 3;

-	private static final int INTERNAL_SPACING = 2;

-	

-	private static final String ellipsis = "...";

-	

-/**

- * Construct a CTabItem with the specified parent and style.

- */

-public CTabItem (CTabFolder parent, int style) {

-	this(parent, style, parent.getItemCount());

-}

-/**

- * Construct a CTabItem with the specified parent and style, inserted at

- * the specified index.

- */

-public CTabItem (CTabFolder parent, int style, int index) {

-	super (parent, checkStyle(style));

-	parent.createItem (this, index);

-}

-private static int checkStyle(int style) {

-	return SWT.NONE;

-}

-

-public void dispose () {

-	if (isDisposed()) return;

-	super.dispose();

-	parent.destroyItem(this);

-	parent = null;

-	control = null;

-	toolTipText = null;

-}

-

-/**

- * Return the bounds of the CTabItem.

- */

-public Rectangle getBounds () {

-	return new Rectangle(x, y, width, height);

-}

-/**

-* Gets the control.

-* <p>

-* @return the control

-*

-* @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

-*	when called from the wrong thread

-* @exception SWTError(ERROR_WIDGET_DISPOSED)

-*	when the widget has been disposed

-*/

-public Control getControl () {

-	return control;

-}

-/**

- * Answer the display of the receiver's parent widget.

- */

-public Display getDisplay() {

-	if (parent == null) SWT.error(SWT.ERROR_WIDGET_DISPOSED);

-	return parent.getDisplay();

-}

-public Image getDisabledImage(){

-	return disabledImage;

-}

-/**

- * Return the parent of the CTabItem.

- */

-public CTabFolder getParent () {

-	return parent;

-}

-/**

- * Gets the tool tip text.

- * <p>

- * @return the tool tip text.

- *

- * @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

- *	when called from the wrong thread

- * @exception SWTError(ERROR_WIDGET_DISPOSED)

- *	when the widget has been disposed

- */

-public String getToolTipText () {

-	return toolTipText;

-}

-/**

- * Paint the receiver.

- */

-void onPaint(GC gc, boolean isSelected) {

-	

-	if (width == 0 || height == 0) return;

-	

-	Display display = getDisplay();

-	Color highlightShadow = display.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);

-	Color normalShadow = display.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);		

-

-	int index = parent.indexOf(this);

-	

-	if (isSelected) {

-

-		Rectangle bounds = null;

-		if (!parent.onBottom) {

-			if (index == parent.topTabIndex) {

-				bounds = new Rectangle(x + 1, y + 1, width - 2, height - 1);

-			} else {

-				bounds = new Rectangle(x + 2, y + 1, width - 3, height - 1);

-			}

-		} else {

-			if (index == parent.topTabIndex) {

-				bounds = new Rectangle(x + 1, y + 1, width - 2, height - 2);

-			} else {

-				bounds = new Rectangle(x + 2, y + 1, width - 3, height - 2);

-			}

-		}

-		if (parent.backgroundImage != null) {

-			// draw a background image behind the text

-			Rectangle imageRect = parent.backgroundImage.getBounds();

-			gc.drawImage(parent.backgroundImage, 0, 0, imageRect.width, imageRect.height,

-				bounds.x, bounds.y, bounds.width, bounds.height);

-		} else if (parent.gradientColors != null) {

-			// draw a gradient behind the text

-			Color oldBackground = gc.getBackground();

-			if (parent.gradientColors.length == 1) {

-				if (parent.gradientColors[0] != null) gc.setBackground(parent.gradientColors[0]);

-				gc.fillRectangle(bounds.x, bounds.y, bounds.width, bounds.height);

-			} else {

-				Color oldForeground = gc.getForeground();

-				Color lastColor = parent.gradientColors[0];

-				if (lastColor == null) lastColor = oldBackground;

-				for (int i = 0, pos = 0; i < parent.gradientPercents.length; ++i) {

-					gc.setForeground(lastColor);

-					lastColor = parent.gradientColors[i + 1];

-					if (lastColor == null) lastColor = oldBackground;

-					gc.setBackground(lastColor);

-					int gradientWidth = (parent.gradientPercents[i] * bounds.width / 100) - pos;

-					gc.fillGradientRectangle(bounds.x + pos, bounds.y, gradientWidth, bounds.height, false);

-					pos += gradientWidth;

-				}

-				gc.setForeground(oldForeground);

-			}

-			gc.setBackground(oldBackground);

-		}

-

-		// draw tab lines

-		if (!parent.onBottom) {

-			gc.setForeground(normalShadow);

-			if (index != parent.topTabIndex) {

-				gc.drawLine(x + 1, y,              x + 1, y);

-				gc.drawLine(x,     y + 1,          x,     y + height - 2);

-				gc.drawLine(x,     y + height - 1, x,     y + height - 1);

-			}

-			gc.drawLine(x + width - 1, y,              x + width - 1, y);

-			gc.drawLine(x + width,     y + 1,          x + width,     y + height - 2);

-			gc.drawLine(x + width,     y + height - 1, x + width,     y + height - 1);

-	

-			gc.setForeground(highlightShadow);

-			if (index != parent.topTabIndex) {

-				gc.drawLine(x + 2, y,              x + 2, y);

-				gc.drawLine(x + 1, y + 1,          x + 1, y + height - 2);

-				gc.drawLine(x + 1, y + height - 1, x + 1, y + height - 1);

-			} else {

-				gc.drawLine(x, y, x, y + height - 1);

-			}

-			

-			gc.drawLine(x + width - 2, y,              x + width - 2, y);

-			gc.drawLine(x + width - 1, y + 1,          x + width - 1, y + height - 2);

-			gc.drawLine(x + width - 1, y + height - 1, x + width - 1, y + height - 1);

-	

-			// light line across top

-			if (index != parent.topTabIndex) {

-				gc.drawLine(x + 3, y, x + width - 3, y);

-			} else {

-				gc.drawLine(x + 1, y, x + width - 3, y);

-			}

-		} else {

-			gc.setForeground(normalShadow);

-			if (index != parent.topTabIndex) {

-				gc.drawLine(x,     y,              x,     y);

-				gc.drawLine(x,     y + 1,          x,     y + height - 2);

-				gc.drawLine(x + 1, y + height - 1, x + 1, y + height - 1);

-			}

-			gc.drawLine(x + width,     y,              x + width,     y);

-			gc.drawLine(x + width,     y + 1,          x + width,     y + height - 2);

-			gc.drawLine(x + width - 1, y + height - 1, x + width - 1, y + height - 1);

-	

-			gc.setForeground(highlightShadow);

-			if (index != parent.topTabIndex) {

-				gc.drawLine(x + 1, y,              x + 1, y);

-				gc.drawLine(x + 1, y + 1,          x + 1, y + height - 2);

-				gc.drawLine(x + 2, y + height - 1, x + 2, y + height - 1);

-			} else {

-				gc.drawLine(x, y, x, y + height - 1);

-			}

-			

-			gc.drawLine(x + width - 1, y,              x + width - 1, y);

-			gc.drawLine(x + width - 1, y + 1,          x + width - 1, y + height - 2);

-			gc.drawLine(x + width - 2, y + height - 1, x + width - 2, y + height - 1);

-	

-			// light line across top and bottom

-			if (index != parent.topTabIndex) {

-				gc.drawLine(x + 1, y, x + width - 2, y);

-				gc.drawLine(x + 2, y + height - 1, x + width - 3, y + height - 1);

-			} else {

-				gc.drawLine(x + 1, y, x + width - 2, y);

-				gc.drawLine(x + 1, y + height - 1, x + width - 3, y + height - 1);

-			}			

-		}

-		if (parent.isFocusControl()) {

-			// draw a focus rectangle

-			int x1, y1, width1, height1;

-			if (!parent.onBottom) {

-				if (index == parent.topTabIndex) {

-					x1 = x + 1; y1 = y + 1; width1 = width - 2; height1 = height - 1;

-				} else {

-					x1 = x + 2; y1 = y + 1; width1 = width - 3; height1 = height - 1;

-				}

-			} else {

-				if (index == parent.topTabIndex) {

-					x1 = x + 1; y1 = y + 1; width1 = width - 2; height1 = height - 2;

-				} else {

-					x1 = x + 2; y1 = y + 1; width1 = width - 3; height1 = height - 2;

-				}

-			}

-			gc.setBackground(display.getSystemColor(SWT.COLOR_BLACK));

-			gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE));

-			gc.drawFocus(x1, y1, width1, height1);

-		}

-	} else {

-		// draw tab lines for unselected items

-		gc.setForeground(normalShadow);

-		if (!parent.onBottom) {

-			if (index != parent.topTabIndex && index != parent.getSelectionIndex() + 1) {

-				gc.drawLine(x, y, x, y + (height / 2));

-			}

-		} else {

-			if (index != parent.topTabIndex && index != parent.getSelectionIndex() + 1) {

-				gc.drawLine(x, y + (height / 2), x, y + height - 1);

-			}

-		}

-		

-	}

-

-	// draw Image

-	int xDraw = x + LEFT_MARGIN;

-	

-	Image image = getImage();

-	if (!isSelected && image != null) {

-		Image temp = getDisabledImage();

-		if (temp != null){

-			image = temp;

-		}

-	}

-	if (image != null) {

-		Rectangle imageBounds = image.getBounds();

-		int imageX = xDraw;

-		int imageHeight = Math.min(height - BOTTOM_MARGIN - TOP_MARGIN, imageBounds.height);

-		int imageY = y + (height - imageHeight) / 2;

-		int imageWidth = imageBounds.width * imageHeight / imageBounds.height;

-		gc.drawImage(image, 

-			         imageBounds.x, imageBounds.y, imageBounds.width, imageBounds.height,

-			         imageX, imageY, imageWidth, imageHeight);

-		xDraw += imageWidth + INTERNAL_SPACING;

-	}

-	

-	// draw Text

-	int textWidth = x + width - xDraw - RIGHT_MARGIN;

-	if (isSelected && parent.showClose) {

-		textWidth = x + width - xDraw - parent.closeBar.getSize().x - RIGHT_MARGIN;

-	}

-	String text = shortenText(gc, getText(), textWidth);

-	

-	if (isSelected && parent.selectionForeground != null) {

-		gc.setForeground(parent.selectionForeground);

-	} else {

-		gc.setForeground(parent.getForeground());

-	}

-	int textY = y + (height - gc.textExtent(text, SWT.DRAW_MNEMONIC).y) / 2; 	

-	gc.drawText(text, xDraw, textY, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);

-	

-	gc.setForeground(parent.getForeground());

-}

-private static String shortenText(GC gc, String text, int width) {

-	if (gc.textExtent(text, SWT.DRAW_MNEMONIC).x <= width) return text;

-	

-	int ellipseWidth = gc.textExtent(ellipsis, SWT.DRAW_MNEMONIC).x;

-	int length = text.length();

-	int end = length - 1;

-	while (end > 0) {

-		text = text.substring(0, end);

-		int l1 = gc.textExtent(text, SWT.DRAW_MNEMONIC).x;

-		if (l1 + ellipseWidth <= width) {

-			return text + ellipsis;

-		}

-		end--;

-	}

-	return "";

-}

-/**

- * Answer the preferred height of the receiver for the GC.

- */

-int preferredHeight(GC gc) {

-	Image image = getImage();

-	int height = 0;

-	if (image != null) height = image.getBounds().height;

-	String text = getText();

-	height = Math.max(height, gc.textExtent(text, SWT.DRAW_MNEMONIC).y);

-	return height + TOP_MARGIN + BOTTOM_MARGIN;

-}

-/**

- * Answer the preferred width of the receiver for the GC.

- */

-int preferredWidth(GC gc) {

-	int width = 0;

-	Image image = getImage();

-	if (image != null) width += image.getBounds().width;

-	String text = getText();

-	if (text != null) {

-		if (image != null) width += INTERNAL_SPACING;

-		width += gc.textExtent(text, SWT.DRAW_MNEMONIC).x;

-	}

-	if (parent.showClose) width += INTERNAL_SPACING + preferredHeight(gc); // closebar will be square and will fill preferred height

-	return width + LEFT_MARGIN + RIGHT_MARGIN;

-}

-/**

- * Sets the control.

- * <p>

- * @param control the new control

- *

- * @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

- *	when called from the wrong thread

- * @exception SWTError(ERROR_WIDGET_DISPOSED)

- *	when the widget has been disposed

- */

-public void setControl (Control control) {

-	if (control != null && control.getParent() != parent) {

-		SWT.error (SWT.ERROR_INVALID_PARENT);

-	}

-	if (this.control != null && !this.control.isDisposed()) {

-		this.control.setVisible(false);

-	}

-	

-	this.control = control;

-	if (this.control != null) {

-		int index = parent.indexOf (this);

-		if (index == parent.getSelectionIndex ()){

-			this.control.setBounds(parent.getClientArea ());

-			this.control.setVisible(true);

-		} else {

-			this.control.setVisible(false);

-		}

-	}

-}	

-/**

- * Sets the image.

- * <p>

- * @param image the new image (or null)

- *

- * @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

- *	when called from the wrong thread

- * @exception SWTError(ERROR_WIDGET_DISPOSED)

- *	when the widget has been disposed

- */

-public void setImage (Image image) {

-	if (image != null && image.equals(getImage())) return;

-	int oldHeight = parent.getTabHeight();

-	super.setImage(image);

-	if (oldHeight != parent.getTabHeight()) {

-		parent.onClientAreaChange();

-	} else {

-		parent.layoutItems();

-		parent.redraw();

-	}

-}

-public void setDisabledImage (Image image) {

-	if (image != null && image.equals(getDisabledImage())) return;

-	disabledImage = image;

-	parent.redraw();

-}

-

-/**

- * Set the widget text.

- * <p>

- * This method sets the widget label.  The label may include

- * the mnemonic characters but must not contain line delimiters.

- *

- * @param string the new label for the widget

- *

- */

-public void setText (String string) {

-	if (string.equals(getText())) return;

-	super.setText(string);

-	parent.layoutItems();

-	parent.redraw();	

-}

-

-/**

- * Sets the tool tip text.

- * <p>

- * @param string the new tool tip text (or null)

- *

- * @exception SWTError(ERROR_THREAD_INVALID_ACCESS)

- *	when called from the wrong thread

- * @exception SWTError(ERROR_WIDGET_DISPOSED)

- *	when the widget has been disposed

- */

-public void setToolTipText (String string) {

-	toolTipText = string;

-}

-

-

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ControlEditor.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ControlEditor.java
deleted file mode 100755
index 9dfd02a..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ControlEditor.java
+++ /dev/null
@@ -1,237 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-/**

-*

-* A ControlEditor is a manager for a Control that appears above a composite and tracks with the

-* moving and resizing of that composite.  It can be used to display one control above 

-* another control.  This could be used when editing a control that does not have editing 

-* capabilities by using a text editor or for launching a dialog by placing a button 

-* above a control.

-*

-* <p> Here is an example of using a ControlEditor:

-*

-* <code><pre>

-* Canvas canvas = new Canvas(shell, SWT.BORDER);

-* canvas.setBounds(10, 10, 300, 300);	

-* Color color = new Color(null, 255, 0, 0);

-* canvas.setBackground(color);

-* ControlEditor editor = new ControlEditor (canvas);

-* // The editor will be a button in the bottom right corner of the canvas.

-* // When selected, it will launch a Color dialog that will change the background 

-* // of the canvas.

-* Button button = new Button(canvas, SWT.PUSH);

-* button.setText("Select Color...");

-* button.addSelectionListener (new SelectionAdapter() {

-* 	public void widgetSelected(SelectionEvent e) {

-* 		ColorDialog dialog = new ColorDialog(shell);

-* 		dialog.open();

-* 		RGB rgb = dialog.getRGB();

-* 		if (rgb != null) {

-* 			if (color != null) color.dispose();

-* 			color = new Color(null, rgb);

-* 			canvas.setBackground(color);

-* 		}

-* 		

-* 	}

-* });

-*

-* editor.horizontalAlignment = SWT.RIGHT;

-* editor.verticalAlignment = SWT.BOTTOM;

-* editor.grabHorizontal = false;

-* editor.grabVertical = false;

-* Point size = button.computeSize(SWT.DEFAULT, SWT.DEFAULT);

-* editor.minimumWidth = size.x;

-* editor.minimumHeight = size.y;

-* editor.setEditor (button);

-* </pre></code>

-*/

-public class ControlEditor {

-

-	/**

-	* Specifies how the editor should be aligned relative to the control.  Allowed values

-	* are SWT.LEFT, SWT.RIGHT and SWT.CENTER.  The default value is SWT.CENTER.

-	*/

-	public int horizontalAlignment = SWT.CENTER;

-	

-	/**

-	* Specifies whether the editor should be sized to use the entire width of the control.

-	* True means resize the editor to the same width as the cell.  False means do not adjust 

-	* the width of the editor.	The default value is false.

-	*/

-	public boolean grabHorizontal = false;

-	

-	/**

-	* Specifies the minimum width the editor can have.  This is used in association with

-	* a true value of grabHorizontal.  If the cell becomes smaller than the minimumWidth, the 

-	* editor will not made smaller than the minumum width value.  The default value is 0.

-	*/

-	public int minimumWidth = 0;

-	

-	/**

-	* Specifies how the editor should be aligned relative to the control.  Allowed values

-	* are SWT.TOP, SWT.BOTTOM and SWT.CENTER.  The default value is SWT.CENTER.

-	*/

-	public int verticalAlignment = SWT.CENTER;

-	

-	/**

-	* Specifies whether the editor should be sized to use the entire height of the control.

-	* True means resize the editor to the same height as the underlying control.  False means do not adjust 

-	* the height of the editor.	The default value is false.

-	*/

-	public boolean grabVertical = false;

-	

-	/**

-	* Specifies the minimum height the editor can have.  This is used in association with

-	* a true value of grabVertical.  If the control becomes smaller than the minimumHeight, the 

-	* editor will not made smaller than the minumum height value.  The default value is 0.

-	*/

-	public int minimumHeight = 0;

-

-	Composite parent;

-	Control editor;

-	private boolean hadFocus;

-	private Listener internalListener;

-/**

-* Creates a ControlEditor for the specified Composite.

-*

-* @param parent the Composite above which this editor will be displayed

-*

-*/

-public ControlEditor (Composite parent) {

-	this.parent = parent;

-

-	internalListener = new Listener() {

-		public void handleEvent(Event e) {

-			if (e.widget instanceof ScrollBar && e.type == SWT.Selection)

-				scroll (e);

-			else if (e.type == SWT.Resize)

-				resize ();

-		}

-	};

-	

-	parent.addListener (SWT.Resize, internalListener);

-

-	ScrollBar hBar = parent.getHorizontalBar ();

-	if (hBar != null) hBar.addListener (SWT.Selection, internalListener);

-	ScrollBar vBar = parent.getVerticalBar ();

-	if (vBar != null) vBar.addListener (SWT.Selection, internalListener);

-}

-Rectangle computeBounds (){

-	Rectangle clientArea = parent.getClientArea();

-	Rectangle editorRect = new Rectangle(clientArea.x, clientArea.y, minimumWidth, minimumHeight);

-	

-	if (grabHorizontal)

-		editorRect.width = Math.max(clientArea.width, minimumWidth);

-	

-	if (grabVertical)

-		editorRect.height = Math.max(clientArea.height, minimumHeight);

-

-	switch (horizontalAlignment) {

-		case SWT.RIGHT:

-			editorRect.x += clientArea.width - editorRect.width;

-			break;

-		case SWT.LEFT:

-			// do nothing - clientArea.x is the right answer

-			break;

-		default:

-			// default is CENTER

-			editorRect.x += (clientArea.width - editorRect.width)/2;

-	}

-	

-	switch (verticalAlignment) {

-		case SWT.BOTTOM:

-			editorRect.y += clientArea.height - editorRect.height;

-			break;

-		case SWT.TOP:

-			// do nothing - clientArea.y is the right answer

-			break;

-		default :

-			// default is CENTER

-			editorRect.y += (clientArea.height - editorRect.height)/2;

-	}

-

-	

-	return editorRect;

-

-}

-/**

- * Removes all associations between the Editor and the underlying composite.  The

- * composite and the editor Control are <b>not</b> disposed.

- */

-public void dispose () {

-	if (!parent.isDisposed()) {

-		parent.removeListener (SWT.Resize, internalListener);

-		ScrollBar hBar = parent.getHorizontalBar ();

-		if (hBar != null) hBar.removeListener (SWT.Selection, internalListener);

-		ScrollBar vBar = parent.getVerticalBar ();

-		if (vBar != null) vBar.removeListener (SWT.Selection, internalListener);

-	}

-	

-	parent = null;

-	editor = null;

-	hadFocus = false;

-	internalListener = null;

-}

-/**

-* Returns the Control that is displayed above the composite being edited.

-*

-* @return the Control that is displayed above the composite being edited

-*/

-public Control getEditor () {

-	return editor;

-}

-void resize () {

-	if (editor == null || editor.isDisposed()) return;

-	if (editor.getVisible ()) {

-		hadFocus = editor.isFocusControl();

-	} // this doesn't work because

-	  // resizing the column takes the focus away

-	  // before we get here

-	editor.setBounds (computeBounds ());

-	if (hadFocus) editor.setFocus ();

-}

-void scroll (Event e) {

-	if (editor == null || editor.isDisposed()) return;

-	if (editor.getVisible ()) {

-		hadFocus = editor.isFocusControl();

-	}

-	boolean visible = e.detail != SWT.DRAG;

-	if (visible) {

-		editor.setBounds (computeBounds ());

-	}

-	editor.setVisible (visible);

-	if (visible && hadFocus) editor.setFocus ();

-}

-/**

-* Specify the Control that is to be displayed.

-*

-* <p>Note: The Control provided as the editor <b>must</b> be created with its parent 

-* being the Composite specified in the ControlEditor constructor.

-* 

-* @param editor the Control that is displayed above the composite being edited

-*/

-public void setEditor (Control editor) {

-	

-	if (editor == null) {

-		// this is the case where the caller is setting the editor to be blank

-		// set all the values accordingly

-		this.editor = null;

-		return;

-	}

-	

-	this.editor = editor;

-	

-	editor.setVisible (false);

-	editor.setBounds (computeBounds ());

-	editor.setVisible (true);

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/DefaultContent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/DefaultContent.java
deleted file mode 100755
index 530b5a1..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/DefaultContent.java
+++ /dev/null
@@ -1,879 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.internal.Compatibility;

-import org.eclipse.swt.widgets.*;

-import java.io.*;

-import java.util.Vector;

-

-class DefaultContent implements StyledTextContent {

-	private final static String LineDelimiter = System.getProperty("line.separator");

-

-	Vector textListeners = new Vector(); // stores text listeners for event sending

-	char[] textStore = new char[0];	// stores the actual text

-	int gapStart = -1;	// the character position start of the gap

-	int gapEnd = -1;	// the character position after the end of the gap

-	int gapLine = -1;	// the line on which the gap exists, the gap will always be associated

-				// with one line

-	int highWatermark = 300;	

-	int lowWatermark = 50;		

-	

-	int[][] lines = new int[50][2];	// array of character positions and lengths representing

-							// the lines of text

-	int lineCount = 0;	// the number of lines of text	

-	int expandExp = 1; 	// the expansion exponent, used to increase the lines array exponentially

-	int replaceExpandExp = 1; 	// the expansion exponent, used to increase the lines array exponentially

-

-/** 

- * Creates a new DefaultContent and initializes it.  A <code>StyledTextContent</> will always have

- * at least one empty line.

- */

-DefaultContent() {

-	super();

-	setText("");

-}

-/** 

- * Adds a line to the end of the line indexes array.  Increases the size of the array if necessary.

- * <code>lineCount</code> is updated to reflect the new entry.

- * <p>

- *

- * @param start the start of the line

- * @param length the length of the line

- */

-void addLineIndex(int start, int length) {

-	int size = lines.length;

-	if (lineCount == size) {

-		// expand the lines by powers of 2

-		int[][] newLines = new int[size+Compatibility.pow2(expandExp)][2];

-		System.arraycopy(lines, 0, newLines, 0, size);

-		lines = newLines;

-		expandExp++;

-	}

-	int[] range = new int[] {start, length};

-	lines[lineCount] = range;

-	lineCount++;

-}

-/** 

- * Adds a line index to the end of <code>linesArray</code>.  Increases the 

- * size of the array if necessary and returns a new array.

- * <p>

- *

- * @param start the start of the line

- * @param length the length of the line

- * @param linesArray the array to which to add the line index

- * @param count the position at which to add the line

- * @return a new array of line indexes

- */

-int[][] addLineIndex(int start, int length, int[][] linesArray, int count) {

-	int size = linesArray.length;

-	int[][] newLines = linesArray;

-	if (count == size) {

-		newLines = new int[size+Compatibility.pow2(replaceExpandExp)][2];

-		replaceExpandExp++;

-		System.arraycopy(linesArray, 0, newLines, 0, size);

-	}

-	int[] range = new int[] {start, length};

-	newLines[count] = range;

-	return newLines;

-}

-/**

- * Adds a <code>TextChangeListener</code> listening for 

- * <code>TextChangingEvent</code> and <code>TextChangedEvent</code>. A 

- * <code>TextChangingEvent</code> is sent before changes to the text occur.

- * A <code>TextChangedEvent</code> is sent after changes to the text 

- * occured.

- * <p>

- *

- * @param listener the listener

- * @exception IllegalArgumentException <ul>

- *    <li>ERROR_NULL_ARGUMENT when listener is null</li>

- * </ul>

- */

-public void addTextChangeListener(TextChangeListener listener) {

-	if (listener == null) error(SWT.ERROR_NULL_ARGUMENT);

-	StyledTextListener typedListener = new StyledTextListener(listener);

-	textListeners.addElement(typedListener);	

-}	

-/**

- * Adjusts the gap to accomodate a text change that is occurring.

- * <p>

- *

- * @param position the position at which a change is occurring

- * @param sizeHint the size of the change

- * @param line the line where the gap will go

- */

-void adjustGap(int position, int sizeHint, int line) {

-	if (position == gapStart) {

-		// text is being inserted at the gap position

-		int size = (gapEnd - gapStart) - sizeHint;

-		if (lowWatermark <= size && size <= highWatermark)

-			return;

-	} else if ((position + sizeHint == gapStart) && (sizeHint < 0)) {

-		// text is being deleted at the gap position

-		int size = (gapEnd - gapStart) - sizeHint;

-		if (lowWatermark <= size && size <= highWatermark)

-			return;

-	}

-	moveAndResizeGap(position, sizeHint, line);

-}

-/**

- * Calculates the indexes of each line in the text store.  Assumes no gap exists.  

- * Optimized to do less checking.

- */

-void indexLines(){

-	int start = 0;

-	lineCount = 0;

-	int textLength = textStore.length;

-	int i;

-	for (i=start; i<textLength; i++) { 

-		char ch = textStore[i];					

-		if (ch == SWT.CR) {

-			// see if the next character is a LF

-			if (i + 1 < textLength) {

-				ch = textStore[i+1];

-				if (ch == SWT.LF) {

-					i++;

-				}

-			}

-			addLineIndex(start, i - start + 1);

-			start = i + 1;

-		} else if (ch == SWT.LF) {

-			addLineIndex(start, i - start + 1);

-			start = i + 1;

-		} 

-	}			

-	addLineIndex(start, i - start);

-}

-/** 

- * Returns whether or not the given character is a line delimiter.  Both CR and LF 

- * are valid line delimiters.

- * <p>

- *

- * @param ch the character to test

- * @return true if ch is a delimiter, false otherwise

- */

-boolean isDelimiter(char ch) {

-	if (ch == SWT.CR) return true;

-	if (ch == SWT.LF) return true;

-	return false;

-}	

-/**

- * Determine whether or not the replace operation is valid.  DefaultContent will not allow

- * the /r/n line delimiter to be split or partially deleted.

- * <p>

- *

- * @param start	start offset of text to replace

- * @param replaceLength start offset of text to replace

- * @param newText start offset of text to replace

- */

-protected boolean isValidReplace(int start, int replaceLength, String newText){

-	if (replaceLength == 0) {

-		// inserting text, see if the \r\n line delimiter is being split

-		if (start == 0) return true;

-		if (start == getCharCount()) return true;

-		char before = getTextRange(start - 1, 1).charAt(0);

-		if (before == '\r') {

-			char after = getTextRange(start, 1).charAt(0);

-			if (after == '\n') return false;

-		}

-	} else {

-		// deleting text, see if part of a \r\n line delimiter is being deleted

-		char startChar = getTextRange(start, 1).charAt(0);

-		if (startChar == '\n') {

-			// see if char before delete position is \r

-			if (start != 0) {

-				char before = getTextRange(start - 1, 1).charAt(0);

-				if (before == '\r') return false;

-			}

-		}

-		char endChar = getTextRange(start + replaceLength - 1, 1).charAt(0);

-		if (endChar == '\r') {

-			// see if char after delete position is \n

-			if (start + replaceLength != getCharCount()) {

-				char after = getTextRange(start + replaceLength, 1).charAt(0);

-				if (after == '\n') return false;

-			}

-		}

-	} 

-	return true;

-}

-/**

- * Calculates the indexes of each line of text in the given range.

- * <p>

- *

- * @param offset the logical start offset of the text lineate

- * @param length the length of the text to lineate, includes gap

- * @param numLines the number of lines to initially allocate for the line index array,

- *	passed in for efficiency (the exact number of lines may be known)

- * @return a line indexes array where each line is identified by a start offset and 

- * 	a length

- */

-int[][] indexLines(int offset, int length, int numLines){

-	int[][] indexedLines = new int[numLines][2];

-	int start = 0;

-	int lineCnt = 0;

-	int i;

-	replaceExpandExp = 1;

-	for (i=start; i<length; i++) {

-		int location = i + offset; 

-		if ((location >= gapStart) && (location < gapEnd)) {

-			// ignore the gap

-		} else {

-			char ch = textStore[location];				

-			if (ch == SWT.CR) {

-				// see if the next character is a LF

-				if (location+1 < textStore.length) {

-					ch = textStore[location+1];

-					if (ch == SWT.LF) {

-						i++;

-					} 

-				}

-				indexedLines = addLineIndex(start, i - start + 1, indexedLines, lineCnt);

-				lineCnt++;

-				start = i + 1;

-			} else if (ch == SWT.LF) {

-				indexedLines = addLineIndex(start, i - start + 1, indexedLines, lineCnt);

-				lineCnt++;

-				start = i + 1;

-			} 

-		}

-	}

-	int[][] newLines = new int[lineCnt+1][2];

-	System.arraycopy(indexedLines, 0, newLines, 0, lineCnt);

-	int[] range = new int[] {start, i - start};

-	newLines[lineCnt]=range;

-	return newLines; 

-}

-/**

- * Inserts text.

- * <p>

- *

- * @param position the position at which to insert the text

- * @param length the text to insert

- */

-void insert(int position, String text) {	

-	if (text.length() == 0) return;

-				

-	int startLine = getLineAtOffset(position);

-	int change = text.length();

-	boolean endInsert = position == getCharCount();

-	adjustGap(position, change, startLine);

-

-	// during an insert the gap will be adjusted to start at

-	// position and it will be associated with startline, the

-	// inserted text will be placed in the gap		

-	int startLineOffset = getOffsetAtLine(startLine);

-	// at this point, startLineLength will include the start line

-	// and all of the newly inserted text

-	int	startLineLength = getPhysicalLine(startLine).length();

-	

-	if (change > 0) {

-		// shrink gap 

-		gapStart += (change);

-		for (int i = 0; i < text.length(); i++)

-			textStore[position + i]= text.charAt(i);

-	}

-		

-	// figure out the number of new lines that have been inserted

-	int [][] newLines = indexLines(startLineOffset, startLineLength, 10);

-	// only insert an empty line if it is the last line in the text

-	int numNewLines = newLines.length - 1;

-	if (newLines[numNewLines][1] == 0) {

-		// last inserted line is a new line

-		if (endInsert) {

-			// insert happening at end of the text, leave numNewLines as

-			// is since the last new line will not be concatenated with another

-			// line 

-			numNewLines += 1;

-		} else {

-			numNewLines -= 1;

-		}

-	}

-	

-	// make room for the new lines

-	expandLinesBy(numNewLines);

-	// shift down the lines after the replace line

-	for (int i = lineCount-1; i > startLine; i--) {

-		lines[i + numNewLines]=lines[i];

-	}

-	// insert the new lines

-	for (int i=0; i<numNewLines; i++) {

-		newLines[i][0] += startLineOffset;

-		lines[startLine + i]=newLines[i];

-	}

-	// update the last inserted line

-	if (numNewLines < newLines.length) {

-		newLines[numNewLines][0] += startLineOffset;

-		lines[startLine + numNewLines] = newLines[numNewLines];

-	}

-	

-	lineCount += numNewLines;

-	gapLine = getLineAtPhysicalOffset(gapStart);		

-}

-/**

- * Moves the gap and adjusts its size in anticipation of a text change.  

- * The gap is resized to actual size + the specified size and moved to the given 

- * position.

- * <p>

- *

- * @param position the position at which a change is occurring

- * @param sizeHint the size of the change

- * @param line the line where the gap should be put

- */

-void moveAndResizeGap(int position, int size, int newGapLine) {

-	char[] content = null;

-	int oldSize = gapEnd - gapStart;

-	int newSize;

-	if (size > 0) {

-		newSize = highWatermark + size;

-	} else {

-		newSize = lowWatermark - size;

-	}

-	// remove the old gap from the lines information

-	if (gapExists()) {

-		// adjust the line length

-		lines[gapLine][1] = lines[gapLine][1] - oldSize;

-		// adjust the offsets of the lines after the gapLine

-		for (int i=gapLine+1; i<lineCount; i++) {

-			lines[i][0]=lines[i][0]-oldSize;

-		}

-	}

-	

-	if (newSize < 0) {

-		if (oldSize > 0) {

-			// removing the gap

-			content = new char[textStore.length - oldSize];

-			System.arraycopy(textStore, 0, content, 0, gapStart);

-			System.arraycopy(textStore, gapEnd, content, gapStart, content.length - gapStart);

-			textStore= content;

-		}

-		gapStart = gapEnd= position;

-		return;

-	}

-	content = new char[textStore.length + (newSize - oldSize)];

-	int newGapStart = position;

-	int newGapEnd = newGapStart + newSize;

-	if (oldSize == 0) {		

-		System.arraycopy(textStore, 0, content, 0, newGapStart);

-		System.arraycopy(textStore, newGapStart, content, newGapEnd, content.length - newGapEnd);	

-	} else if (newGapStart < gapStart) {

-		int delta = gapStart - newGapStart;

-		System.arraycopy(textStore, 0, content, 0, newGapStart);

-		System.arraycopy(textStore, newGapStart, content, newGapEnd, delta);

-		System.arraycopy(textStore, gapEnd, content, newGapEnd + delta, textStore.length - gapEnd);

-	} else {		

-		int delta = newGapStart - gapStart;

-		System.arraycopy(textStore, 0, content, 0, gapStart);

-		System.arraycopy(textStore, gapEnd, content, gapStart, delta);

-		System.arraycopy(textStore, gapEnd + delta, content, newGapEnd, content.length - newGapEnd);

-	}

-	textStore = content;

-	gapStart = newGapStart;

-	gapEnd = newGapEnd;

-	

-	// add the new gap to the lines information

-	if (gapExists()) {

-		gapLine = newGapLine;

-		// adjust the line length

-		int gapLength = gapEnd - gapStart;

-		lines[gapLine][1] = lines[gapLine][1] + (gapLength);

-		// adjust the offsets of the lines after the gapLine

-		for (int i=gapLine+1; i<lineCount; i++) {

-			lines[i][0]=lines[i][0]+gapLength;

-		}

-	}

-}

-/** 

- * Returns the number of lines that are in the specified text.

- * <p>

- *

- * @param startOffset the start of the text to lineate

- * @param length the length of the text to lineate

- * @return number of lines

- */

-int lineCount(int startOffset, int length){

-	if (length == 0) {

-		return 0;

-	}

-	int lineCnt = 0;

-	int count = 0;

-	int i = startOffset;

-	if (i >= gapStart) {

-		i += gapEnd - gapStart;

-	}

-	while (count < length) {

-		if ((i >= gapStart) && (i < gapEnd)) {

-			// ignore the gap

-		} else {

-			char ch = textStore[i];			

-			if (ch == SWT.CR) {

-				// see if the next character is a LF

-				if (i + 1 < textStore.length) {

-					ch = textStore[i+1];

-					if (ch == SWT.LF) {

-						i++;

-						count++;

-					} 

-				} 

-				lineCnt++;

-			} else if (ch == SWT.LF) {

-				lineCnt++;

-			}

-			count++;

-		}

-		i++;

-	}			

-	return lineCnt;

-}

-/** 

- * Returns the number of lines that are in the specified text.

- * <p>

- *

- * @param text the text to lineate

- * @return number of lines in the text

- */

-int lineCount(String text){

-	int lineCount = 0;

-	int length = text.length();

-	for (int i = 0; i < length; i++) {

-		char ch = text.charAt(i);

-		if (ch == SWT.CR) {

-			if (i + 1 < length && text.charAt(i + 1) == SWT.LF) {

-				i++;

-			}

-			lineCount++;

-		}

-		else

-		if (ch == SWT.LF) {

-			lineCount++;

-		}

-	}

-	return lineCount;	

-}

-/**

- * @return the logical length of the text store

- */

-public int getCharCount() {

-	int length = gapEnd - gapStart;

-	return (textStore.length - length);

-}

-/**

- * Returns the line at <code>index</code> without delimiters.

- * <p>

- *

- * @param index	the index of the line to return

- * @return the logical line text (i.e., without the gap)

- * @exception IllegalArgumentException <ul>

- *   <li>ERROR_INVALID_ARGUMENT when index is out of range</li>

- * </ul>

- */

-public String getLine(int index) {

-	if ((index >= lineCount) || (index < 0)) error(SWT.ERROR_INVALID_ARGUMENT);

-	int start = lines[index][0];

-	int length = lines[index][1];

-	int end = start + length - 1;

-	if (!gapExists() || (end < gapStart) || (start >= gapEnd)) {

-		// line is before or after the gap

-		while ((length - 1 >= 0) && isDelimiter(textStore[start+length-1])) {

-			length--;

-		}

-		return new String(textStore, start, length);

-	} else {

-		// gap is in the specified range, strip out the gap

-		StringBuffer buf = new StringBuffer();

-		int gapLength = gapEnd - gapStart;

-		buf.append(textStore, start, gapStart - start);

-		buf.append(textStore, gapEnd, length - gapLength - (gapStart - start));

-		length = buf.length();

-		while ((length - 1 >=0) && isDelimiter(buf.charAt(length-1))) {

-			length--;

-		}

-		return Compatibility.substring(buf, 0, length);

-	}

-}

-/**

- * Returns the line delimiter that should be used by the StyledText 

- * widget when inserting new lines.  This delimiter may be different than the

- * delimiter that is used by the <code>StyledTextContent</code> interface.

- * <p>

- *

- * @return the platform line delimiter as specified in the line.separator

- * 	system property.

- */

-public String getLineDelimiter() {

-	return LineDelimiter;

-}

-/**

- * Returns the line at the given index with delimiters.

- * <p>

- * @param index	the index of the line to return

- * @return the logical line text (i.e., without the gap) with delimiters

- */

-String getFullLine(int index) {

-	int start = lines[index][0];

-	int length = lines[index][1];

-	int end = start + length - 1;

-	if (!gapExists() || (end < gapStart) || (start >= gapEnd)) {

-		// line is before or after the gap

-		return new String(textStore, start, length);

-	} else {

-		// gap is in the specified range, strip out the gap

-		StringBuffer buf = new StringBuffer();

-		int gapLength = gapEnd - gapStart;

-		buf.append(textStore, start, gapStart - start);

-		buf.append(textStore, gapEnd, length - gapLength - (gapStart - start));

-		return buf.toString();

-	}

-}

-/**

- * Returns the physical line at the given index (i.e., with delimiters and the gap).

- * <p>

- *

- * @param index the line index

- * @return the physical line 

- */

-String getPhysicalLine(int index) {

-	int start = lines[index][0];

-	int length = lines[index][1];

-	return getPhysicalText(start, length);

-}

-/**

- * @return the number of lines in the text store

- */

-public int getLineCount(){

-	return lineCount;

-}

-/**

- * Returns the line at the given offset.

- * <p>

- *

- * @param charPosition logical character offset (i.e., does not include gap)

- * @return the line index

- * @exception IllegalArgumentException <ul>

- *    <li>ERROR_INVALID_ARGUMENT when charPosition is out of range</li>

- * </ul>

- */

-public int getLineAtOffset(int charPosition){

-	int position;

-	if ((charPosition > getCharCount()) || (charPosition < 0)) error(SWT.ERROR_INVALID_ARGUMENT);

-	if (charPosition < gapStart) {

-		// position is before the gap

-		position = charPosition;

-	} else {

-		// position includes the gap

-		position = charPosition + (gapEnd - gapStart);

-	} 			

-

-	// if last line and the line is not empty you can ask for 

-	// a position that doesn't exist (the one to the right of the 

-	// last character) - for inserting

-	if (lineCount > 0) {

-		int lastLine = lineCount - 1;

-		if (position == lines[lastLine][0] + lines[lastLine][1]) 

-			return lastLine;

-	}

-

-	int high = lineCount;

-	int low = -1;

-	int index = lineCount;

-	while (high - low > 1) {

-		index = (high + low) / 2;

-		int lineStart = lines[index][0];

-		int lineEnd = lineStart + lines[index][1] - 1;

-		if (position <= lineStart) {

-			high = index;			

-		} else if (position <= lineEnd) {

-			high = index;

-			break;

-		} else {

-			low = index;

-		}

-	}

-

-	return high;

-}

-/**

- * Returns the line index at the given physical offset.

- * <p>

- *

- * @param position physical character offset (i.e., includes gap)

- * @return the line index

- */

-int getLineAtPhysicalOffset(int position){

-	int high = lineCount;

-	int low = -1;

-	int index = lineCount;

-	while (high - low > 1) {

-		index = (high + low) / 2;

-		int lineStart = lines[index][0];

-		int lineEnd = lineStart + lines[index][1] - 1;

-		if (position <= lineStart) {

-			high = index;			

-		} else if (position <= lineEnd) {

-			high = index;

-			break;

-		} else {

-			low = index;

-		}

-	}

-	return high;

-}

-/**

- * Returns the logical offset of the given line.

- * <p>

- *

- * @param lineIndex index of line 

- * @return the logical starting offset of the line.  When there are not any lines,

- * 	getOffsetAtLine(0) is a valid call that should answer 0.

- * @exception IllegalArgumentException <ul>

- *   <li>ERROR_INVALID_ARGUMENT when lineIndex is out of range</li>

- * </ul>

- */

-public int getOffsetAtLine(int lineIndex) {

-	if (lineIndex == 0) return 0;

-	if ((lineIndex >= lineCount) || (lineIndex < 0)) error(SWT.ERROR_INVALID_ARGUMENT);

-	int start = lines[lineIndex][0];

-	if (start > gapEnd) {

-		return start - (gapEnd - gapStart);

-	} else {

-		return start;

-	}

-}	

-/**

- * Increases the line indexes array to accomodate more lines.

- * <p>

- *

- * @param numLines the number to increase the array by

- */

-void expandLinesBy(int numLines) {

-	int size = lines.length;

-	if (size - lineCount >= numLines) {

-		return;

-	}

-	int[][] newLines = new int[size+Math.max(10, numLines)][2];

-	System.arraycopy(lines, 0, newLines, 0, size);

-	lines = newLines;

-}

-/**	 

- * Reports an SWT error.

- * <p>

- *

- * @param code the error code

- */

-void error (int code) {

-	SWT.error(code);

-}

-/** 

- * Returns whether or not a gap exists in the text store.

- * <p>

- *

- * @return true if gap exists, false otherwise

- */

-boolean gapExists() {

-	return gapStart != gapEnd;

-}	

-

-/**

- * Returns a string representing the continous content of

- * the text store.

- * <p>

- *

- * @param start	the physical start offset of the text to return

- * @param length the physical length of the text to return

- * @return the text

- */

-String getPhysicalText(int start, int length) {

-	return new String(textStore, start, length);

-}

-/**

- * Returns a string representing the logical content of

- * the text store (i.e., gap stripped out).

- * <p>

- *

- * @param start the logical start offset of the text to return

- * @param length the logical length of the text to return

- * @return the text

- */

-public String getTextRange(int start, int length) {

-	if (textStore == null)

-		return "";

-	if (length == 0)

-		return "";

-	int end= start + length;

-	if (!gapExists() || (end < gapStart))

-		return new String(textStore, start, length);

-	if (gapStart < start) {

-		int gapLength= gapEnd - gapStart;

-		return new String(textStore, start + gapLength , length);

-	}

-	StringBuffer buf = new StringBuffer();

-	buf.append(textStore, start, gapStart - start);

-	buf.append(textStore, gapEnd, end - gapStart);

-	return buf.toString();

-}

-/**

- * Removes the specified <code>TextChangeListener</code>.

- * <p>

- *

- * @param listener the listener

- * @exception IllegalArgumentException <ul>

- *    <li>ERROR_NULL_ARGUMENT when listener is null</li>

- * </ul>

- */

-public void removeTextChangeListener(TextChangeListener listener){

-	if (listener == null) error(SWT.ERROR_NULL_ARGUMENT);

-	for (int i=0; i<textListeners.size(); i++) {

-		TypedListener typedListener = (TypedListener) textListeners.elementAt(i);

-		if (typedListener.getEventListener () == listener) {

-			textListeners.removeElementAt(i);

-			break;

-		}

-	}

-}

-/**

- * Replaces the text with <code>newText</code> starting at position <code>start</code> 

- * for a length of <code>replaceLength</code>.  Notifies the appropriate listeners.

- * <p>

- *

- * When sending the TextChangingEvent, <code>newLineCount</code> is the number of 

- * lines that are going to be inserted and <code>replaceLineCount</code> is 

- * the number of lines that are going to be deleted, based on the change 

- * that occurs visually.  For example:

- * <ul>

- * <li>(replaceText,newText) ==> (replaceLineCount,newLineCount)

- * <li>("","\n") ==> (0,1)

- * <li>("\n\n","a") ==> (2,0)

- * </ul>

- * </p>

- *

- * @param start	start offset of text to replace

- * @param replaceLength start offset of text to replace

- * @param newText start offset of text to replace

- * 

- * @exception SWTException <ul>

- *   <li>ERROR_INVALID_ARGUMENT when the text change results in a multi byte

- *      line delimiter being split or partially deleted.  Splitting a line 

- *      delimiter by inserting text between the CR and LF characters of the 

- *      \r\n delimiter or deleting part of this line delimiter is not supported</li>

- * </ul>

- */

-public void replaceTextRange(int start, int replaceLength, String newText){

-	// check for invalid replace operations

-	if (!isValidReplace(start, replaceLength, newText)) SWT.error(SWT.ERROR_INVALID_ARGUMENT);		

-

-	// inform listeners

-	StyledTextEvent event = new StyledTextEvent(this);

-	event.type = StyledText.TextChanging;

-	event.start = start;

-	event.replaceLineCount = lineCount(start, replaceLength);

-	event.text = newText;

-	event.newLineCount = lineCount(newText);

-	event.replaceCharCount = replaceLength;

-	event.newCharCount = newText.length();

-	sendTextEvent(event);

-

-	// first delete the text to be replaced

-	delete(start, replaceLength, event.replaceLineCount + 1);

-	// then insert the new text

-	insert(start, newText);

-	// inform listeners

-	event = new StyledTextEvent(this);

-	event.type = StyledText.TextChanged;

-	sendTextEvent(event);		

-	// printLines();

-}

-/**

- * Sends the text listeners the TextChanged event.

- */

-void sendTextEvent(StyledTextEvent event) {

-	for (int i=0; i<textListeners.size(); i++) {

-		((StyledTextListener)textListeners.elementAt(i)).handleEvent(event);

-	}

-}		

-/**

- * Sets the content to text and removes the gap since there are no sensible predictions 

- * about where the next change will occur.

- * <p>

- *

- * @param text the text

- */

-public void setText (String text){

-	textStore = text.toCharArray();

-	gapStart = -1;

-	gapEnd = -1;

-	expandExp = 1;

-	indexLines();

-	StyledTextEvent event = new StyledTextEvent(this);

-	event.type = StyledText.TextSet;

-	event.text = "";

-	sendTextEvent(event);

-}

-/**

- * Deletes text.

- * <p>

- * @param position the position at which the text to delete starts

- * @param length the length of the text to delete

- * @param numLines the number of lines that are being deleted

- */

-void delete(int position, int length, int numLines) {

-	if (length == 0) return;

-		

-	int startLine = getLineAtOffset(position);

-	int startLineOffset = getOffsetAtLine(startLine);

-	int endLine = getLineAtOffset(position + length);

-

-	String endText = "";

-	boolean splittingDelimiter = false;

-	if (position + length < getCharCount()) {

-		endText = getTextRange(position + length - 1, 2);

-		if ((endText.charAt(0) == SWT.CR) && (endText.charAt(1) == SWT.LF)) {

-			splittingDelimiter = true;

-		    }

-	}

-

-	adjustGap(position + length, -length, startLine);

-	int [][] oldLines = indexLines(position, length + (gapEnd - gapStart), numLines);

-	

-	// enlarge the gap - the gap can be enlarged either to the

-	// right or left

-	if (position + length == gapStart) {

-		gapStart -= length;

-	} else {

-		gapEnd += length;

-	}		

-

-	// figure out the length of the new concatenated line, do so by

-	// finding the first line delmiter after position

-	int j = position;

-	boolean eol = false;

-	while (j < textStore.length && !eol) {

-		if (j < gapStart || j >= gapEnd) {

-			char ch = textStore[j];

-			if (isDelimiter(ch)) {

-				if (j + 1 < textStore.length) 

-					if (ch == SWT.CR && (textStore[j+1] == SWT.LF))

-						j++;

-				eol = true;

-			} 

-		}

-		j++;

-	}	

-	// update the line where the deletion started

-	lines[startLine][1] = (position - startLineOffset) + (j - position);

-	// figure out the number of lines that have been deleted

-	int numOldLines = oldLines.length - 1;

-	if (splittingDelimiter) numOldLines -= 1;

-	// shift up the lines after the last deleted line, no need to update

-	// the offset or length of the lines

-	for (int i = endLine + 1; i < lineCount; i++) {

-		lines[i - numOldLines]=lines[i];

-	}

-	lineCount -= numOldLines;

-	gapLine = getLineAtPhysicalOffset(gapStart);		

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/DefaultLineStyler.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/DefaultLineStyler.java
deleted file mode 100755
index 4612053..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/DefaultLineStyler.java
+++ /dev/null
@@ -1,624 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.internal.Compatibility;

-import java.util.Vector;

-

-class DefaultLineStyler implements LineStyleListener, LineBackgroundListener {

-	StyledTextContent content;

-	StyleRange styles[] = new StyleRange[0];

-	int styleCount = 0;	// the number of styles	

-	int styleExpandExp = 1; // the expansion exponent, used to increase the styles array exponentially

-	int lineExpandExp = 1; 	// the expansion exponent, used to increase the lines array exponentially

-	int lineCount = 0;

-	Color lineBackgrounds[];

-	

-/** 

- * Creates a new default line styler.

- * <p>

- *

- * @param content the text to which the styles apply

- */

-public DefaultLineStyler(StyledTextContent content) {

-	this.content = content;

-	lineCount = content.getLineCount();

-	lineBackgrounds = new Color[lineCount];

-}	

-/** 

- * Inserts a style at the given location.

- * <p>

- *

- * @param style	the new style

- * @param index	the index at which to insert the style (the new style

- * 	will reside at this index)

- *

- */

-void insertStyle(StyleRange style, int index) {

-	int size = styles.length;

-	if (styleCount == size) {

-		// expand the styles array by powers of 2

-		StyleRange[] newStyles = new StyleRange[size+Compatibility.pow2(styleExpandExp)];

-		System.arraycopy(styles, 0, newStyles, 0, size);

-		styles = newStyles;

-		styleExpandExp++;

-	}

-	// shift the styles down to make room for the new style

-	for (int i=styleCount-1; i>=index; i--) {

-		styles[i+1]=styles[i];

-	}

-	styles[index] = style;

-	styleCount++;

-}

-/** 

- * Inserts a style, merging it with adjacent styles if possible.

- * <p>

- *

- * @param style	the new style

- * @param index	the index at which to insert the style (the new style

- * 	will reside at this index)

- * @return true if the style was inserted, false if the style was merged with an adjacent 

- * 	style

- */

-boolean insertMergeStyle(StyleRange style, int index) {

-	if (mergeStyleBefore(style, index)) return false;

-	if (mergeStyleAfter(style, index)) return false;

-	insertStyle(style, index);

-	return true;

-}

-/** 

- * Merges the style with the style before it if possible.

- * <p>

- *

- * @param style	the new style

- * @param index	the index at which to attempt the merge.

- * @return true if the style was merged, false otherwise

- */

-boolean mergeStyleBefore(StyleRange style, int index) {

-	// see if the style is similar to the style before it and merge the

-	// styles if possible

-	if (index > 0) {

-		StyleRange previous = styles[index-1];

-		if (style.similarTo(previous)) {

-			// the start of style needs to be in the range of the previous style

-			// and the end of style needs to be < the start of the next style

-			int previousEnd = previous.start + previous.length;

-			if ((style.start <= previousEnd) && (style.start >= previous.start)) {

-				int styleEnd = style.start + style.length;

-				if ((index == styleCount) || (styleEnd <= styles[index].start)) {

-					previous.length = style.start + style.length - previous.start;

-					return true;

-				}

-			}

-		}

-	}

-	return false;

-}

-/** 

- * Merges the style with the style after it if possible.

- * <p>

- *

- * @param style	the new style

- * @param index	the index at which to attempt the merge.

- * @return true if the style was merged, false otherwise

- */

-boolean mergeStyleAfter(StyleRange style, int index) {

-	// see if the style is similar to the style that will be after it and 

-	// merge the styles if possible

-	if (index < styleCount) {

-		StyleRange next = styles[index];

-		if (style.similarTo(next)) {

-			// the end of style needs to be in the range of the next style and

-			// the start of style needs to be > the end of the previous style

-			int styleEnd = style.start + style.length;

-			int nextEnd = next.start + next.length;

-			if ((styleEnd <= nextEnd) && (styleEnd >= next.start)) {

-				if ((index == 0) || (style.start >= styles[index-1].start + styles[index-1].length)) {

-					next.length = next.start + next.length - style.start;

-					next.start = style.start;

-					return true;

-				}

-			}

-		}

-	}

-	return false;

-}

-/** 

- * Removes style information that is defined for the range of text in <code>clearStyle</code>.

- * <p>

- *

- * @param clearStyle the style information to use for clearing 

- */ 

-void clearStyle(StyleRange clearStyle) {

-	Point pt = getOverlappingStyles(clearStyle.start, clearStyle.length);

-	int clearStyleEnd = clearStyle.start + clearStyle.length - 1;

-	

-	// no overlapped styles exist

-	if ((pt == null) || (pt.y == 0)) return; 

-

-	// the newStyle overlaps one or more of the existing styles

-	// pt.x is the index of the first overlapped style, pt.y is the number of overlapped

-	// styles

-	int count = 0;

-	for (int i=pt.x; count<pt.y; i++) {

-		StyleRange overlap = styles[i];

-		int overlapEnd = overlap.start + overlap.length - 1;

-		if (overlap.start < clearStyle.start) {

-			if (overlapEnd <= clearStyleEnd) {

-				// the end of overlap needs to be cleared

-				overlap.length=clearStyle.start - overlap.start;

-			} else {

-				// middle of overlap needs to be cleared, this will

-				// cause overlap to be broken into two

-				StyleRange endStyle = (StyleRange)overlap.clone();

-				endStyle.start = clearStyleEnd + 1;

-				endStyle.length = overlapEnd - clearStyleEnd;

-				overlap.length = clearStyle.start - overlap.start;

-				insertStyle(endStyle, i+1);

-				break;

-			}

-		} else {

-			if (overlapEnd <= clearStyleEnd) {	

-				// entire overlap needs to be cleared

-				deleteStyle(i);

-				i--;

-			} else {

-				// beginning of overlap needs to be cleared

-				overlap.start=clearStyleEnd + 1;

-				overlap.length=overlapEnd - overlap.start + 1;

-				break;

-			}

-		}				

-	count++;

-	}

-}

-/**

- * Increases the <code>linebackgrounds</code> array to accomodate new line background

- * information.

- * <p>

- *

- * @param numLines the number to increase the array by

- */

-void expandLinesBy(int numLines) {

-	int size = lineBackgrounds.length;

-	if (size - lineCount >= numLines) {

-		return;

-	}

-	Color[] newLines = new Color[size+Math.max(Compatibility.pow2(lineExpandExp), numLines)];

-	System.arraycopy(lineBackgrounds, 0, newLines, 0, size);

-	lineBackgrounds = newLines;

-	lineExpandExp++;

-}

-/** 

- * Deletes the style at <code>index</code>.

- * <p>

- *

- * @param index	the index of the style to be deleted

- */

-void deleteStyle(int index) {

-	// move the styles up 

-	for (int i=index+1; i<styleCount; i++) {

-		styles[i-1] = styles[i];

-	}

-	styles[styleCount-1]=null;

-	styleCount--;

-}

-/** 

- * Returns the styles that are defined.

- * <p>

- *

- * @return the copied array of styles

- */

-StyleRange [] getStyleRanges() {

-	StyleRange[] newStyles = new StyleRange[styleCount];

-	System.arraycopy(styles, 0, newStyles, 0, styleCount);

-	return newStyles;

-}

-/**

- * Handles the get line background color callback.

- * <p>

- *

- * @param event.lineOffset line number (input)	

- * @param event.lineText line text (input)

- * @param event.background line background color (output)

- */

-public void lineGetBackground(LineBackgroundEvent event) {

-	int lineIndex = content.getLineAtOffset(event.lineOffset);

-	event.lineBackground = lineBackgrounds[lineIndex];

-}

-/**

- * Handles the get line style information callback.

- * <p>

- *

- * @param event.lineOffset line number (input)	

- * @param event.lineText line text (input)

- * @param event.styles array of StyleRanges, need to be in order (output)

- */

-public void lineGetStyle(LineStyleEvent event) {

-	int lineStart = event.lineOffset;

-	int lineEnd = lineStart + event.lineText.length();

-

-	int high = searchForStyle(lineStart, lineEnd);

-	StyleRange style = null;

-	Vector lineStyles = new Vector();

-

-	// index will represent a style that 

-	// -- starts after the line (end processing)

-	// -- ends before the line (continue processing)

-	// -- starts before the line, ends in the line (add range)

-	// -- starts in the line, ends in the line (add range)

-	// -- starts in the line, ends after the line (add range)

-	// -- starts before the line, ends after the line (add range)

-	for (int index = high; index < styleCount; index++) {

-		style = styles[index];

-		if (style.start > lineEnd)

-			// style starts after the line, end looping 

-			break;

-		int styleEnd = style.start + style.length - 1;

-		if (styleEnd >= lineStart) lineStyles.addElement(style);

-	}

-	event.styles = new StyleRange[lineStyles.size()];

-	lineStyles.copyInto(event.styles);

-}

-/** 

- * Searches for the first style in the <code>start</code> - <code>end</code> range.

- * <p>

- *

- * @return the index of the first style that overlaps the input range  

- */

-int searchForStyle(int start, int end) {

-	int high = styleCount;

-	int low = -1;

-	int index = high;

-	// find the index of the first style for the given range, use a binary search

-	while (high - low > 1) {

-		index = (high + low) / 2;

-		StyleRange style = styles[index];

-		int styleEnd = style.start + style.length - 1;

-		if (start <= style.start || end <= styleEnd || (start > style.start && styleEnd >= start && styleEnd < end)) {

-			high = index;			

-		}

-		else {

-			low = index;

-		}

-	}

-	return high;

-}

-/** 

- * Updates the line background colors to reflect a new color.  Called by StyledText.

- * <p>

- *

- * @param startLine index of the first line to color

- * @param lineCount number of lines to color starting at startLine

- * @param background the background color for the lines

- */ 

-void setLineBackground(int startLine, int count, Color background) {

-	for (int i=startLine; i<startLine + count; i++) {

-		lineBackgrounds[i]=background;

-	}

-}

-/** 

- * Update the styles to reflect the new style.  <code>newStyle</code> will 

- * replace any old style for the range.  When this method is called, the 

- * DefaultLineStyler may merge the new style with an existing style (if possible).

- * Called by StyledText when a style is added.  Called by StyledText.

- * <p>

- *

- * @param newStyle the new style information.

- */ 

-void setStyleRange(StyleRange newStyle) {

-	if (newStyle == null) {

-		styles = new StyleRange[0];

-		styleExpandExp = 1;

-		styleCount = 0;

-		return;

-	}

-	if (newStyle.length ==0) return;

-	if (newStyle.isUnstyled()) {

-		clearStyle(newStyle);

-		return;

-	}

-	

-	Point pt = getOverlappingStyles(newStyle.start, newStyle.length);

-	int newStyleEnd = newStyle.start + newStyle.length - 1;

-	

-	// no styles exist

-	if (pt == null) {

-		insertStyle(newStyle, 0);

-		return;

-	}

-	

-	// newStyle does not overlap any other styles

-	if (pt.y == 0) {

-		insertMergeStyle(newStyle, pt.x);

-		return;

-	} 

-

-	// the newStyle overlaps one or more of the existing styles

-	boolean added = false; // indicates whether or not the new style has been added

-	int count = 0;

-	// pt.x is the index of the first overlapped style, pt.y is the number of overlapped

-	// styles

-	for (int i=pt.x; count<pt.y; i++) {

-		StyleRange overlap = styles[i];

-		int overlapEnd = overlap.start + overlap.length - 1;

-		if (overlap.start < newStyle.start) {

-			if (overlapEnd <= newStyleEnd) {

-				// the end of overlap needs to be replaced by newStyle

-				if (newStyle.similarTo(overlap)) {

-					// update overlap to accomodate the new style

-					overlap.length = newStyle.start + newStyle.length - overlap.start;

-				} else {

-					overlap.length=newStyle.start - overlap.start;

-					// see if newStyle can be merged with the style after overlap, if so,

-					// processing is done

-					if (mergeStyleAfter(newStyle, i+1)) break;

-					// otherwise, insert the newStyle, newStyle may still overlap other

-					// styles after it so continue processing	

-					insertStyle(newStyle, i+1);

-					i++;

-				}

-				added = true;

-			} else {

-				// middle of overlap needs to be replaced by newStyle, this will

-				// cause overlap to be broken into two

-				if (newStyle.similarTo(overlap)) break;

-				StyleRange endStyle = (StyleRange)overlap.clone();

-				endStyle.start = newStyleEnd + 1;

-				endStyle.length = overlapEnd - newStyleEnd;

-				overlap.length = newStyle.start - overlap.start;

-				insertStyle(newStyle, i+1);

-				i++;

-				insertStyle(endStyle, i+1);

-				// when newStyle overlaps the middle of a style, this implies that

-				// processing is done (no more overlapped styles)

-				break;

-			}

-		} else {

-			if (overlapEnd <= newStyleEnd) {	

-				// overlap will be replaced by the newStyle, make sure newStyle

-				// hasn't already been added, if it has just delete overlap

-				if (!added) {

-					styles[i] = newStyle;

-					added = true;

-				} else {

-					deleteStyle(i);

-					i--;

-				}

-			} else {

-				// beginning of overlap needs to be replaced by newStyle

-				overlap.start=newStyleEnd + 1;

-				overlap.length=overlapEnd - overlap.start + 1;

-				if (!added) {

-					insertMergeStyle(newStyle, i);

-				}

-				// when newStyle overlaps only the beginning of a style, this implies 

-				// that processing is done (no more overlapped styles)

-				break;

-			}

-		}				

-	count++;

-	}

-}

-/** 

- * Sets the array of styles and discards old styles.  Called by StyledText.

- * <p>

- *

- * @param styles the new styles, must be in order and non-overlapping

- */

-void setStyleRanges(StyleRange[] styles) {

-	this.styles = new StyleRange[styles.length];

-	System.arraycopy(styles, 0, this.styles, 0, styles.length);

-	styleCount = styles.length;

-	styleExpandExp = 1;

-}

-/** 

- * Updates the style ranges and line backgrounds to reflect a pending text 

- * change.

- * Called by StyledText when a TextChangingEvent is received.

- * <p>

- *

- * @param event	the event with the text change information

- */  

-public void textChanging(TextChangingEvent event) {

-	int startLine = content.getLineAtOffset(event.start);

-	int startLineOffset = content.getOffsetAtLine(startLine);

-	

-	textChanging(event.start, -event.replaceCharCount);

-	textChanging(event.start, event.newCharCount);

-	

-	if (event.replaceCharCount == content.getCharCount()) {

-		// all text is going to be replaced, clear line backgrounds

-		linesChanging(0, -lineCount);

-		linesChanging(0, content.getLineCount() - event.replaceLineCount + event.newLineCount);

-		return;

-	}

-

-	if (event.start != startLineOffset) {

-		startLine = startLine + 1;

-	}

-			

-	linesChanging(startLine, -event.replaceLineCount);

-	linesChanging(startLine, event.newLineCount);

-}

-/*

- * Updates the line backgrounds to reflect a pending text change.

- * <p>

- *

- * @param start	the starting line of the change that is about to take place

- * @param delta	the number of lines in the change, > 0 indicates lines inserted,

- * 	< 0 indicates lines deleted

- */

-void linesChanging(int start, int delta) {

-	if (delta == 0) return;

-	boolean inserting = delta > 0;

-	if (inserting) {

-		// shift the lines down to make room for new lines

-		expandLinesBy(delta);

-		for (int i = lineCount-1; i >= start; i--) {

-			lineBackgrounds[i + delta]=lineBackgrounds[i];

-		}

-		for (int i=start; i<start + delta; i++) {

-			lineBackgrounds[i]=null;

-		}

-	} else {

-		// shift up the lines

-		for (int i = start - delta; i < lineCount; i++) {

-			lineBackgrounds[i+delta]=lineBackgrounds[i];

-		}

-	}

-	lineCount += delta;

-}

-/*

- * Updates the style ranges to reflect a text change.

- * <p>

- *

- * @param start	the starting offset of the change that is about to 

- *	take place

- * @param delta	the length of the change, > 0 indicates text inserted,

- * 	< 0 indicates text deleted

- */

-void textChanging(int start, int delta) {

-	if (delta == 0) return;

-	StyleRange style;

-	// find the index of the first style for the given offset, use a binary search

-	// to find the index

-	int end;

-	boolean inserting = delta > 0;

-	if (inserting) {

-		end = (start + delta) - 1;

-	} else {

-		end = (start - delta) - 1;

-	}

-	int high = searchForStyle(start, end);

-	int index;

-	// update the styles that are in the affected range

-	for (index = high; index < styleCount; index++) {

-		style = styles[index];

-		if (inserting) {

-			if (style.start >= start) break;

-			// in the insert case only one style range will be directly affected,

-			// it will need to be split into two and then the newStyle inserted

-			StyleRange beforeStyle = (StyleRange)style.clone();

-			beforeStyle.length = start - style.start;

-			style.start = start;

-			style.length = style.length - beforeStyle.length;

-			if (beforeStyle.length != 0) insertStyle(beforeStyle, index);

-			index++;

-			break;

-		} else {

-			int styleEnd = style.start + style.length - 1;

-			if (style.start > end) break;

-			// in the delete case, any style that overlaps the change range will be

-			// affected

-			if (style.start < start) {

-				if (styleEnd <= end) {

-					// style starts before change range, ends in change range

-					style.length = start - style.start;

-				} else {

-					// style starts before change range, ends after change range

-					style.length = style.length + delta;

-					index++;

-					break;

-				}

-			} else {

-				if (styleEnd <= end) {

-					// style starts in change range, ends in change range

-					deleteStyle(index);

-					index--;

-				} else {

-					// style starts in change range, ends after change range

-					style.start = start;

-					style.length = styleEnd - end;

-					index++;

-					break;

-				}

-			}	

-		}

-	}

-	// change the offsets of the styles after the affected styles

-	for (int i = index ; i < styleCount; i++) {

-		style = styles[i];

-		style.start = style.start + delta;

-	}

-}

-/** 

- * Returns the indexes of the styles that overlap the given range.  Styles that partially

- * or fully overlap the range will be returned.

- * <p>

- *

- * @return Point where x is the index of the starting overlap style, y is the number of

- * 	styles that overlap the range

- */ 

-Point getOverlappingStyles(int start, int length) {	

-	StyleRange style;

-	if (styleCount == 0) return null;

-	// find the index of the first style for the given offset, use a binary search

-	// to find the index

-	int end = start + length - 1;

-	int high = searchForStyle(start, end);

-	int count = 0;

-	for (int index = high; index < styleCount; index++) {

-		style = styles[index];

-		int styleEnd = style.start + style.length - 1;

-		if (style.start > end) break;

-		if (styleEnd >= start) count++;	

-	}

-	return new Point(high, count);

-}

-/** 

- * Returns the background color of a line.  Called by StyledText.  It is safe to return 

- * the existing Color object since the colors are set and managed by the client.

- * <p>

- *

- * @param index	the line index

- * @return the background color of the line at the given index

- */ 

-Color getLineBackground(int index) {

-	return lineBackgrounds[index];

-}

-/** 

- * Returns the style for the character at <code>offset</code>.  Called by StyledText.  

- * Returns a new style.  Does not return the existing style.

- * <p>

- *

- * @param offset the character position in the text

- * @return a cloned StyleRange with start == offset and length == 1 if a style is

- * 	specified or null if no style is specified

- */ 

-StyleRange getStyleRangeAtOffset(int offset) {

-	if (styleCount == 0) return null;

-	Point pt = getOverlappingStyles(offset, 1);

-	if (pt == null || pt.y == 0) return null;

-	StyleRange newStyle = (StyleRange)styles[pt.x].clone();

-	newStyle.start = offset;

-	newStyle.length = 1;

-	return newStyle;

-}

-/** 

- * Returns the styles for the given range. Returns the existing styles,

- * so be careful not to modify the return value.  Styles are not cloned

- * in order to make this method as efficient as possible. 

- * <p>

- *

- * @param offset the start position of the text range

- * @param length the length of the text range

- * @return a StyleRange array or null if no styles are specified for the text

- * 	range

- */ 

-StyleRange[] getStyleRangesFor(int offset, int length) {

-	if (styleCount == 0) return null;

-	Point pt = getOverlappingStyles(offset, length);

-	if (pt == null || pt.y == 0) return null;

-	StyleRange[] ranges = new StyleRange[pt.y];

-	for (int i=0; i<pt.y; i++) {

-		StyleRange newStyle = styles[pt.x + i];

-		ranges[i]=newStyle;

-	}

-	return ranges;

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ExtendedModifyEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ExtendedModifyEvent.java
deleted file mode 100755
index 5174712..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ExtendedModifyEvent.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.*;

-

-/**

- * This event is sent after a text change occurs.

- */

-public final class ExtendedModifyEvent extends TypedEvent {

-	public int start;			// start offset of the new text

-	public int length;			// length of the new text

-	public String replacedText;	// replaced text or empty string if no text was replaced

-	

-public ExtendedModifyEvent(StyledTextEvent e) {

-	super(e);

-	start = e.start;

-	length = e.end - e.start;

-	replacedText = e.text;

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ExtendedModifyListener.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ExtendedModifyListener.java
deleted file mode 100755
index 48c5929..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ExtendedModifyListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.internal.SWTEventListener;

-

-public interface ExtendedModifyListener extends SWTEventListener {

-/**

- * This method is called after a text change occurs.

- * <p>

- *

- * @param event.start the start offset of the new text (input)

- * @param event.length the length of the new text (input)

- * @param event.replacedText the replaced text (input)

- */

-public void modifyText(ExtendedModifyEvent event);

-}

-

-

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineBackgroundEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineBackgroundEvent.java
deleted file mode 100755
index 711c843..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineBackgroundEvent.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-

-/**

- * This event is sent when a line is about to be drawn.

- */

-public class LineBackgroundEvent extends TypedEvent {

-	public int lineOffset;			// line start offset 

-	public String lineText;			// line text

-	public Color lineBackground;	// line background color

-	

-public LineBackgroundEvent(StyledTextEvent e) {

-	super(e);

-	lineOffset = e.detail;

-	lineText = e.text;

-}

-}

-

-

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineBackgroundListener.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineBackgroundListener.java
deleted file mode 100755
index 1460e26..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineBackgroundListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.internal.SWTEventListener;

-

-public interface LineBackgroundListener extends SWTEventListener {

-	

-/**

- * This method is called when a line is about to be drawn in order to get its

- * background color.

- * <p>

- *

- * @param event.lineOffset line start offset (input)	

- * @param event.lineText line text (input)

- * @param event.lineBackground line background color (output)

- */

-public void lineGetBackground(LineBackgroundEvent event);

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineStyleEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineStyleEvent.java
deleted file mode 100755
index 86a7e0c..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineStyleEvent.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-

-/**

- * This event is sent when a line is about to be drawn.

- */

-public class LineStyleEvent extends TypedEvent {

-	public int lineOffset;			// line start offset 

-	public String lineText;			// line text

-	public StyleRange[] styles;		// array of StyleRanges

-

-public LineStyleEvent(StyledTextEvent e) {

-	super(e);

-	lineOffset = e.detail;

-	lineText = e.text;

-	styles = e.styles;

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineStyleListener.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineStyleListener.java
deleted file mode 100755
index e8e525e..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/LineStyleListener.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.internal.SWTEventListener;

-

-public interface LineStyleListener extends SWTEventListener {

-/**

- * This method is called when a line is about to be drawn in order to get the

- * line's style information.

- * <p>

- *

- * @param event.lineOffset line start offset (input)	

- * @param event.lineText line text (input)

- * @param event.styles array of StyleRanges, need to be in order (output)

- */

-public void lineGetStyle(LineStyleEvent event);

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/PopupList.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/PopupList.java
deleted file mode 100755
index 5f650a3..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/PopupList.java
+++ /dev/null
@@ -1,248 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-/**

-* A PopupList is a list of selectable items that appears in its own shell positioned above

-* its parent shell.  It it used for selecting items when editing a Table cell (similar to the

-* list that appears when you open a Combo box).

-*

-* The list will be positioned so that does not run off the screen and the largest number of items

-* are visible.  It may appear above the current cursor location or below it depending how close you 

-* are to the edge of the screen.

-*/

-public class PopupList {

-	private Shell  shell;

-	private List   list;

-	private int    minimumWidth;

-/** 

-* Creates a PopupList above the specified shell.

-*/

-public PopupList(Shell parent) {

-

-	shell = new Shell(parent, 0);

-	

-	list = new List(shell, SWT.SINGLE | SWT.V_SCROLL);	

-

-	// close dialog if user selects outside of the shell

-	shell.addListener(SWT.Deactivate, new Listener() {

-		public void handleEvent(Event e){	

-			shell.setVisible (false);

-		};

-	});

-	

-	// resize shell when list resizes

-	shell.addControlListener(new ControlListener() {

-		public void controlMoved(ControlEvent e){}

-		public void controlResized(ControlEvent e){

-			Rectangle shellSize = shell.getClientArea();

-			list.setSize(shellSize.width, shellSize.height);

-		}

-	});

-	

-	// return list selection on Mouse Up or Carriage Return

-	list.addMouseListener(new MouseListener() {

-		public void mouseDoubleClick(MouseEvent e){};

-		public void mouseDown(MouseEvent e){};

-		public void mouseUp(MouseEvent e){

-			shell.setVisible (false);

-		};

-	});

-	list.addKeyListener(new KeyListener() {

-		public void keyReleased(KeyEvent e){};

-		public void keyPressed(KeyEvent e){

-			if (e.character == '\r'){

-				shell.setVisible (false);

-			}

-		};

-	});

-	

-}

-/**

-* Gets the widget font.

-* <p>

-* @return the widget font

-*

-* @exception SWTError <ul>

-*		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

-*		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

-*	</ul>

-*/

-public Font getFont () {

-	return list.getFont();

-}

-/**

-* Gets the items.

-* <p>

-* This operation will fail if the items cannot

-* be queried from the OS.

-*

-* @return the items in the widget

-*

-* @exception SWTError <ul>

-*		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

-*		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

-* 		<li>ERROR_CANNOT_GET_ITEM when the operation fails</li>

-*	</ul>

-*/

-public String[] getItems () {

-	return list.getItems();

-}

-/**

-* Gets the minimum width of the list.

-*

-* @return the minimum width of the list

-*/

-public int getMinimumWidth () {

-	return minimumWidth;

-}

-/**

-* Launches the Popup List, waits for an item to be selected and then closes PopupList.

-*

-* @param rect the initial size and location of the PopupList; the dialog will be

-*        positioned so that it does not run off the screen and the largest number of items are visible

-*

-* @return the text of the selected item or null if no item is selected

-*/

-public String open (Rectangle rect) {

-

-	Point listSize = list.computeSize (rect.width, SWT.DEFAULT);

-	Rectangle screenSize = shell.getDisplay().getBounds();

-

-	// Position the dialog so that it does not run off the screen and the largest number of items are visible

-	int spaceBelow = screenSize.height - (rect.y + rect.height) - 30;

-	int spaceAbove = rect.y - 30;

-

-	int y = 0;

-	if (spaceAbove > spaceBelow && listSize.y > spaceBelow) {

-		// place popup list above table cell

-		if (listSize.y > spaceAbove){

-			listSize.y = spaceAbove;

-		} else {

-			listSize.y += 2;

-		}

-		y = rect.y - listSize.y;

-		

-	} else {

-		// place popup list below table cell

-		if (listSize.y > spaceBelow){

-			listSize.y = spaceBelow;

-		} else {

-			listSize.y += 2;

-		}

-		y = rect.y + rect.height;

-	}

-	

-	// Make dialog as wide as the cell

-	listSize.x = rect.width;

-	// dialog width should not be les than minimumwidth

-	if (listSize.x < minimumWidth)

-		listSize.x = minimumWidth;

-	

-	// Align right side of dialog with right side of cell

-	int x = rect.x + rect.width - listSize.x;

-	

-	shell.setBounds(x, y, listSize.x, listSize.y);

-	

-	shell.open();

-	list.setFocus();

-

-	Display display = shell.getDisplay();

-	while (!shell.isDisposed () && shell.isVisible ()) {

-		if (!display.readAndDispatch()) display.sleep();

-	}

-	

-	String result = null;

-	if (!shell.isDisposed ()) {

-		String [] strings = list.getSelection ();

-		shell.dispose();

-		if (strings.length != 0) result = strings [0];

-	}

-	return result;

-}

-/**

-* Selects an item with text that starts with specified String.

-* <p>

-* If the item is not currently selected, it is selected.  

-* If the item at an index is selected, it remains selected.  

-* If the string is not matched, it is ignored.

-*

-* @param string the text of the item

-*

-* @exception SWTError <ul>

-*		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

-*		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

-*	</ul>

-*/

-public void select(String string) {

-	String[] items = list.getItems();

-

-	// find the first entry in the list that starts with the

-	// specified string

-	if (string != null){

-		for (int i = 0; i < items.length; i++) {

-			if (items[i].startsWith(string)){

-				int index = list.indexOf(items[i]);

-				list.select(index);

-				break;

-			}

-		}

-	}

-}

-/**

-* Sets the widget font.

-* <p>

-* When new font is null, the font reverts

-* to the default system font for the widget.

-*

-* @param font the new font (or null)

-* 

-* @exception SWTError <ul>

-*		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

-*		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

-*	</ul>

-*/

-public void setFont (Font font) {

-	list.setFont(font);

-}

-/**

-* Sets all items.

-* <p>

-* The previous selection is cleared.

-* The previous items are deleted.

-* The new items are added.

-* The top index is set to 0.

-*

-* @param items the array of items

-*

-* This operation will fail when an item is null

-* or could not be added in the OS.

-*

-* @exception SWTError <ul>

-*		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

-*		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

-*		<li>ERROR_NULL_ARGUMENT when items is null</li>

-*		<li>ERROR_ITEM_NOT_ADDED when the operation fails</li>

-*	</ul>

-*/

-public void setItems (String[] strings) {

-	list.setItems(strings);

-}

-/**

-* Sets the minimum width of the list.

-*

-* @param width the minimum width of the list

-*/

-public void setMinimumWidth (int width) {

-	if (width < 0)

-		throw new SWTError(SWT.ERROR_INVALID_ARGUMENT);

-		

-	minimumWidth = width;

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ST.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ST.java
deleted file mode 100755
index 5be0427..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ST.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-

-/**

- * This class provides access to the public constants provided by <code>StyledText</code>.

- */

-public class ST {

-	

-	/* StyledText key action constants */

-	/* Navigation */	

-	public static final int LINE_UP = SWT.ARROW_UP;

-	public static final int LINE_DOWN = SWT.ARROW_DOWN;

-	public static final int LINE_START = SWT.HOME;

-	public static final int LINE_END = SWT.END;

-	public static final int COLUMN_PREVIOUS = SWT.ARROW_LEFT;

-	public static final int COLUMN_NEXT = SWT.ARROW_RIGHT;

-	public static final int PAGE_UP = SWT.PAGE_UP;

-	public static final int PAGE_DOWN = SWT.PAGE_DOWN;

-	public static final int WORD_PREVIOUS = SWT.ARROW_LEFT | SWT.CTRL;

-	public static final int WORD_NEXT = SWT.ARROW_RIGHT | SWT.CTRL;

-	public static final int TEXT_START = SWT.HOME | SWT.CTRL;

-	public static final int TEXT_END = SWT.END | SWT.CTRL;

-	public static final int WINDOW_START = SWT.PAGE_UP | SWT.CTRL;

-	public static final int WINDOW_END = SWT.PAGE_DOWN | SWT.CTRL;

-

-	/* Selection */

-	public static final int SELECT_LINE_UP = SWT.ARROW_UP | SWT.SHIFT;

-	public static final int SELECT_LINE_DOWN = SWT.ARROW_DOWN | SWT.SHIFT;

-	public static final int SELECT_LINE_START = SWT.HOME | SWT.SHIFT;

-	public static final int SELECT_LINE_END = SWT.END | SWT.SHIFT;

-	public static final int SELECT_COLUMN_PREVIOUS = SWT.ARROW_LEFT | SWT.SHIFT;

-	public static final int SELECT_COLUMN_NEXT = SWT.ARROW_RIGHT | SWT.SHIFT;

-	public static final int SELECT_PAGE_UP = SWT.PAGE_UP | SWT.SHIFT;

-	public static final int SELECT_PAGE_DOWN = SWT.PAGE_DOWN | SWT.SHIFT;

-	public static final int SELECT_WORD_PREVIOUS = SWT.ARROW_LEFT | SWT.CTRL | SWT.SHIFT;

-	public static final int SELECT_WORD_NEXT = SWT.ARROW_RIGHT | SWT.CTRL | SWT.SHIFT;

-	public static final int SELECT_TEXT_START = SWT.HOME | SWT.CTRL | SWT.SHIFT;

-	public static final int SELECT_TEXT_END = SWT.END | SWT.CTRL | SWT.SHIFT;

-	public static final int SELECT_WINDOW_START = SWT.PAGE_UP | SWT.CTRL| SWT.SHIFT;

-	public static final int SELECT_WINDOW_END = SWT.PAGE_DOWN | SWT.CTRL | SWT.SHIFT;

-

-	/* Modification */

-	public static final int CUT = SWT.DEL | SWT.SHIFT;

-	public static final int COPY = SWT.INSERT | SWT.CTRL;

-	public static final int PASTE = SWT.INSERT | SWT.SHIFT;

-	public static final int DELETE_PREVIOUS = SWT.BS;

-	public static final int DELETE_NEXT = SWT.DEL;

-

-	/* Miscellaneous */

-	public static final int TOGGLE_OVERWRITE = SWT.INSERT;		

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/SashForm.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/SashForm.java
deleted file mode 100755
index 20696fc..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/SashForm.java
+++ /dev/null
@@ -1,397 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.graphics.*;

-

-/**

- * The SashForm lays out its children in a Row or Column arrangement (as specified

- * by the orientation) and places a Sash between the children.

- * One child may be maximized to occupy the entire size of the SashForm.

- * The relative sizes of the children may be specfied using weights.

- *

- * <p>

- * <dl>

- * <dt><b>Styles:</b><dd>HORIZONTAL, VERTICAL

- * </dl>

- */

-public class SashForm extends Composite {

-

-	public int SASH_WIDTH = 3;

-

-	private static final int DRAG_MINIMUM = 20;

-	

-	private int orientation = SWT.HORIZONTAL;

-	private Sash[] sashes = new Sash[0];

-	private Control[] controls = new Control[0];

-	private Control maxControl = null;

-	private Listener sashListener;

-

-public SashForm(Composite parent, int style) {

-	super(parent, checkStyle(style));

-	if ((style & SWT.VERTICAL) != 0){

-		orientation = SWT.VERTICAL;

-	}

-	

-	this.addListener(SWT.Resize, new Listener() {

-		public void handleEvent(Event e) {

-			layout(true);

-		}

-	});

-	

-	sashListener = new Listener() {

-		public void handleEvent(Event e) {

-			onDragSash(e);

-		}

-	};

-}

-private static int checkStyle (int style) {

-	int mask = SWT.BORDER;

-	return style & mask;

-}

-public Point computeSize (int wHint, int hHint, boolean changed) {

-	

-	Control[] controls = getControls(true);

-	if (controls.length == 0) return new Point(wHint, hHint);

-	

-	int width = 0;

-	int height = 0;

-	boolean vertical = (orientation == SWT.VERTICAL);

-	if (vertical) {

-		width = wHint;

-		height += (controls.length - 1) * SASH_WIDTH;

-	} else {

-		height = hHint;

-		width += controls.length *SASH_WIDTH;

-	}

-	for (int i = 0; i < controls.length; i++) {

-		if (vertical) {

-			Point size = controls[i].computeSize(wHint, SWT.DEFAULT);

-			height += size.y;	

-		} else {

-			Point size = controls[i].computeSize(SWT.DEFAULT, hHint);

-			width += size.x;

-		}

-	}

-	if (wHint != SWT.DEFAULT) width = wHint;

-	if (hHint != SWT.DEFAULT) height = hHint;

-	

-	return new Point(width, height);

-}

-/**

- * Answer SWT.HORIZONTAL if the controls in the SashForm are laid out side by side.

- * Answer SWT.VERTICAL   if the controls in the SashForm are laid out top to bottom.

- */

-public int getOrientation() {

-	return orientation;

-}

-/**

- * Answer the control that currently is maximized in the SashForm.  This value may be null.

- */

-public Control getMaximizedControl(){

-	return this.maxControl;

-}

-/**

- * Answer the relative weight of each child in the SashForm.  The weight represents the

- * percent of the total width (if SashForm has Horizontal orientation) or 

- * total height (if SashForm has Vertical orientation) each control occupies.

- * The weights are returned in order of the creation of the widgets (weight[0]

- * corresponds to the weight of the first child created).

- */

-

-public int[] getWeights() {

-	Control[] cArray = getControls(false);

-	float[] ratios = new float[cArray.length];

-	for (int i = 0; i < cArray.length; i++) {

-		Float ratio = (Float)cArray[i].getData("layout ratio");

-		if (ratio != null) {

-			ratios[i] = ratio.floatValue();

-		} else {

-			ratios[i] = (float)0.2;

-		}

-	}

-	

-	int[] weights = new int[cArray.length];

-	for (int i = 0; i < weights.length; i++) {

-		weights[i] = (int)(ratios[i] * 1000);

-	}

-	return weights;

-}

-private Control[] getControls(boolean onlyVisible) {

-	Control[] children = getChildren();

-	Control[] controls = new Control[0];

-	for (int i = 0; i < children.length; i++) {

-		if (children[i] instanceof Sash) continue;

-		if (onlyVisible && !children[i].getVisible()) continue;

-

-		Control[] newControls = new Control[controls.length + 1];

-		System.arraycopy(controls, 0, newControls, 0, controls.length);

-		newControls[controls.length] = children[i];

-		controls = newControls;

-	}

-	return controls;

-}

-public void layout(boolean changed) {

-	Rectangle area = getClientArea();

-	if (area.width == 0 || area.height == 0) return;

-	

-	Control[] newControls = getControls(true);

-	if (controls.length == 0 && newControls.length == 0) return;

-	controls = newControls;

-	

-	if (maxControl != null && !maxControl.isDisposed()) {

-		for (int i= 0; i < controls.length; i++){

-			if (controls[i] != maxControl) {

-				controls[i].setBounds(-200, -200, 0, 0);

-			} else {

-				controls[i].setBounds(area);

-			}

-		}

-		return;

-	}

-	

-	// keep just the right number of sashes

-	if (sashes.length < controls.length - 1) {

-		Sash[] newSashes = new Sash[controls.length - 1];

-		System.arraycopy(sashes, 0, newSashes, 0, sashes.length);

-		int sashOrientation = (orientation == SWT.HORIZONTAL) ? SWT.VERTICAL : SWT.HORIZONTAL;

-		for (int i = sashes.length; i < newSashes.length; i++) {

-			newSashes[i] = new Sash(this, sashOrientation);

-			newSashes[i].addListener(SWT.Selection, sashListener);

-		}

-		sashes = newSashes;

-	}

-	if (sashes.length > controls.length - 1) {

-		if (controls.length == 0) {

-			for (int i = 0; i < sashes.length; i++) {

-				sashes[i].dispose();

-			}

-			sashes = new Sash[0];

-		} else {

-			Sash[] newSashes = new Sash[controls.length - 1];

-			System.arraycopy(sashes, 0, newSashes, 0, newSashes.length);

-			for (int i = controls.length - 1; i < sashes.length; i++) {

-				sashes[i].dispose();

-			}

-			sashes = newSashes;

-		}

-	}

-	

-	if (controls.length == 0) return;

-	

-	// get the ratios

-	float[] ratios = new float[controls.length];

-	float total = 0;

-	for (int i = 0; i < controls.length; i++) {

-		Float ratio = (Float)controls[i].getData("layout ratio");

-		if (ratio != null) {

-			ratios[i] = ratio.floatValue();

-		} else {

-			ratios[i] = (float)0.2;

-		}

-		total += ratios[i];

-	}

-	

-	if (orientation == SWT.HORIZONTAL) {

-		total += (float)sashes.length * ((float)SASH_WIDTH / (float)area.width);

-	} else {

-		total += (float)sashes.length * ((float)SASH_WIDTH / (float)area.height);

-	}

-	

-	if (orientation == SWT.HORIZONTAL) {

-		int width = (int)((ratios[0] / total) * (float)area.width);

-		int x = area.x;

-		controls[0].setBounds(x, area.y, width, area.height);

-		x += width;

-		for (int i = 1; i < controls.length - 1; i++) {

-			sashes[i - 1].setBounds(x, area.y, SASH_WIDTH, area.height);

-			x += SASH_WIDTH;

-			width = (int)((ratios[i] / total) * (float)area.width);

-			controls[i].setBounds(x, area.y, width, area.height);

-			x += width;

-		}

-		if (controls.length > 1) {

-			sashes[sashes.length - 1].setBounds(x, area.y, SASH_WIDTH, area.height);

-			x += SASH_WIDTH;

-			width = area.width - x;

-			controls[controls.length - 1].setBounds(x, area.y, width, area.height);

-		}

-	} else {

-		int height = (int)((ratios[0] / total) * (float)area.height);

-		int y = area.y;

-		controls[0].setBounds(area.x, y, area.width, height);

-		y += height;

-		for (int i = 1; i < controls.length - 1; i++) {

-			sashes[i - 1].setBounds(area.x, y, area.width, SASH_WIDTH);

-			y += SASH_WIDTH;

-			height = (int)((ratios[i] / total) * (float)area.height);

-			controls[i].setBounds(area.x, y, area.width, height);

-			y += height;

-		}

-		if (controls.length > 1) {

-			sashes[sashes.length - 1].setBounds(area.x, y, area.width, SASH_WIDTH);

-			y += SASH_WIDTH;

-			height = area.height - y;

-			controls[controls.length - 1].setBounds(area.x, y, area.width, height);

-		}

-

-	}

-}

-private void onDragSash(Event event) {

-	if (event.detail == SWT.DRAG) {

-		// constrain feedback

-		Rectangle area = getClientArea();

-		if (orientation == SWT.HORIZONTAL) {

-			event.x = Math.min(Math.max(DRAG_MINIMUM, event.x), area.width - DRAG_MINIMUM);

-		} else {

-			event.y = Math.min(Math.max(DRAG_MINIMUM, event.y), area.height - DRAG_MINIMUM);

-		}

-		return;

-	}

-

-	Sash sash = (Sash)event.widget;

-	int sashIndex = -1;

-	for (int i= 0; i < sashes.length; i++) {

-		if (sashes[i] == sash) {

-			sashIndex = i;

-			break;

-		}

-	}

-	if (sashIndex == -1) return;

-

-	Control c1 = controls[sashIndex];

-	Control c2 = controls[sashIndex + 1];

-	Rectangle b1 = c1.getBounds();

-	Rectangle b2 = c2.getBounds();

-	

-	Rectangle sashBounds = sash.getBounds();

-	Rectangle area = getClientArea();

-	if (orientation == SWT.HORIZONTAL) {

-		int shift = event.x - sashBounds.x;

-		b1.width += shift;

-		b2.x += shift;

-		b2.width -= shift;

-		if (b1.width < DRAG_MINIMUM || b2.width < DRAG_MINIMUM) {

-			return;

-		}

-		c1.setData("layout ratio", new Float((float)b1.width / (float)area.width));

-		c2.setData("layout ratio", new Float((float)b2.width / (float)area.width));

-	} else {

-		int shift = event.y - sashBounds.y;

-		b1.height += shift;

-		b2.y += shift;

-		b2.height -= shift;

-		if (b1.height < DRAG_MINIMUM || b2.height < DRAG_MINIMUM) {

-			return;

-		}

-		c1.setData("layout ratio", new Float((float)b1.height / (float)area.height));

-		c2.setData("layout ratio", new Float((float)b2.height / (float)area.height));

-	}

-	

-	c1.setBounds(b1);

-	sash.setBounds(event.x, event.y, event.width, event.height);

-	c2.setBounds(b2);

-}

-/**

- * If orientation is SWT.HORIZONTAL, lay the controls in the SashForm out side by side.

- * If orientation is SWT.VERTICAL,   lay the controls in the SashForm out top to bottom.

- */

-public void setOrientation(int orientation) {

-	if (this.orientation == orientation) return;

-	if (orientation != SWT.HORIZONTAL && orientation != SWT.VERTICAL) {

-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	this.orientation = orientation;

-	

-	int sashOrientation = (orientation == SWT.HORIZONTAL) ? SWT.VERTICAL : SWT.HORIZONTAL;

-	for (int i = 0; i < sashes.length; i++) {

-		sashes[i].dispose();

-		sashes[i] = new Sash(this, sashOrientation);

-		sashes[i].addListener(SWT.Selection, sashListener);

-	}

-	layout();

-}

-/**

- * Sets the layout which is associated with the receiver to be

- * the argument which may be null.

- * <p>

- * Note : SashForm does not use a layout class to size and position its children.

- * </p>

- *

- * @param the receiver's new layout or null

- *

- * @exception SWTException <ul>

- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>

- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>

- * </ul>

- */

-public void setLayout (Layout layout) {

-}

-/**

- * Specify the control that should take up the entire client area of the SashForm.  

- * If one control has been maximized, and this method is called with a different control, 

- * the previous control will be minimized and the new control will be maximized..

- * if the value of control is null, the SashForm will minimize all controls and return to

- * the default layout where all controls are laid out separated by sashes.

- */

-public void setMaximizedControl(Control control){

-	if (control == null) {

-		if (maxControl != null) {

-			this.maxControl = null;

-			layout();

-			for (int i= 0; i < sashes.length; i++){

-				sashes[i].setVisible(true);

-			}

-		}

-		return;

-	}

-	

-	for (int i= 0; i < sashes.length; i++){

-		sashes[i].setVisible(false);

-	}

-	maxControl = control;

-	layout();

-

-//		// walk up

-//		w= getParent();

-//		if (w instanceof SplitForm)

-//			 ((SplitForm) w).internalMaximize(this);

-//		else

-//			layout(true);

-}

-

-/**

- * Specify the relative weight of each child in the SashForm.  This will determine

- * what percent of the total width (if SashForm has Horizontal orientation) or 

- * total height (if SashForm has Vertical orientation) each control will occupy.

- * The weights must be positive values and there must be an entry for each

- * non-sash child of the SashForm.

- */

-public void setWeights(int[] weights) {

-	Control[] cArray = getControls(false);

-	if (weights == null || weights.length != cArray.length) {

-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	

-	int total = 0;

-	for (int i = 0; i < weights.length; i++) {

-		if (weights[i] < 0) {

-			SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-		}

-		total += weights[i];

-	}

-	if (total == 0) {

-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	for (int i = 0; i < cArray.length; i++) {

-		cArray[i].setData("layout ratio", new Float((float)weights[i] / (float)total));

-	}

-	

-	layout();

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ScrolledComposite.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ScrolledComposite.java
deleted file mode 100755
index fcc237a..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ScrolledComposite.java
+++ /dev/null
@@ -1,378 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-/**

- * A ScrolledComposite provides scrollbars and will scroll its content when the user

- * uses the scrollbars.

- *

- *

- * <p>There are two ways to use the ScrolledComposite:

- * 

- * <p>

- * 1) Set the size of the control that is being scrolled and the ScrolledComposite 

- * will show scrollbars when the contained control can not be fully seen.

- * 

- * 2) The second way imitates the way a browser would work.  Set the minimum size of

- * the control and the ScrolledComposite will show scroll bars if the visible area is 

- * less than the minimum size of the control and it will expand the size of the control 

- * if the visible area is greater than the minimum size.  This requires invoking 

- * both setMinWidth(), setMinHeight() and setExpandHorizontal(), setExpandVertical().

- * 

- * <code><pre>

- * public static void main (String [] args) {

- *      Display display = new Display ();

- *      Color red = display.getSystemColor(SWT.COLOR_RED);

- *      Color blue = display.getSystemColor(SWT.COLOR_BLUE);

- *      Shell shell = new Shell (display);

- *      shell.setLayout(new FillLayout());

- * 	

- *      // set the size of the scrolled content - method 1

- *      final ScrolledComposite sc1 = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);

- *      final Composite c1 = new Composite(sc1, SWT.NONE);

- *      sc1.setContent(c1);

- *      c1.setBackground(red);

- *      GridLayout layout = new GridLayout();

- *      layout.numColumns = 4;

- *      c1.setLayout(layout);

- *      Button b1 = new Button (c1, SWT.PUSH);

- *      b1.setText("first button");

- *      c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));

- *      

- *      // set the minimum width and height of the scrolled content - method 2

- *      final ScrolledComposite sc2 = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);

- *      sc2.setExpandHorizontal(true);

- *      sc2.setExpandVertical(true);

- *      final Composite c2 = new Composite(sc2, SWT.NONE);

- *      sc2.setContent(c2);

- *      c2.setBackground(blue);

- *      layout = new GridLayout();

- *      layout.numColumns = 4;

- *      c2.setLayout(layout);

- *      Button b2 = new Button (c2, SWT.PUSH);

- *      b2.setText("first button");

- *      sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));

- *      

- *      Button add = new Button (shell, SWT.PUSH);

- *      add.setText("add children");

- *      final int[] index = new int[]{0};

- *      add.addListener(SWT.Selection, new Listener() {

- *          public void handleEvent(Event e) {

- *              index[0]++;

- *              Button button = new Button(c1, SWT.PUSH);

- *              button.setText("button "+index[0]);

- *              // reset size of content so children can be seen - method 1

- *              c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));

- *              c1.layout();

- *              

- *              button = new Button(c2, SWT.PUSH);

- *              button.setText("button "+index[0]);

- *              // reset the minimum width and height so children can be seen - method 2

- *              sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));

- *              c2.layout();

- *          }

- *      });

- * 

- *      shell.open ();

- *      while (!shell.isDisposed ()) {

- *          if (!display.readAndDispatch ()) display.sleep ();

- *      }

- *      display.dispose ();

- * }

- * </pre></code>

- *

- * <dl>

- * <dt><b>Styles:</b><dd>H_SCROLL, V_SCROLL

- * </dl>

- */

-public class ScrolledComposite extends Composite {

-

-	private Control content;

-	private Listener contentListener;

-	

-	private int minHeight = 0;

-	private int minWidth = 0;

-	private boolean expandHorizontal = false;

-	private boolean expandVertical = false;

-	private boolean alwaysShowScroll = false;

-	private boolean inResize = false;

-	

-public ScrolledComposite(Composite parent, int style) {

-	super(parent, checkStyle(style));

-	

-	ScrollBar hBar = getHorizontalBar ();

-	if (hBar != null) {

-		hBar.addListener (SWT.Selection, new Listener () {

-			public void handleEvent (Event e) {

-				hScroll();

-			}

-		});

-	}

-	

-	ScrollBar vBar = getVerticalBar ();

-	if (vBar != null) {

-		vBar.addListener (SWT.Selection, new Listener () {

-			public void handleEvent (Event e) {

-				vScroll();

-			}

-		});

-	}

-	

-	addListener (SWT.Resize,  new Listener () {

-		public void handleEvent (Event e) {

-			resize();

-		}

-	});

-	

-	contentListener = new Listener() {

-		public void handleEvent(Event e) {

-			if (e.type != SWT.Resize) return;

-			resize();

-		}

-	};

-}

-

-private static int checkStyle (int style) {

-	int mask = SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER;

-	return style & mask;

-}

-

-/**

- * Returns the Always Show Scrollbars flag.  True if the scrollbars are 

- * always shown even if they are not required.  False if the scrollbars are only 

- * visible when some part of the composite needs to be scrolled to be seen.

- * The H_SCROLL and V_SCROLL style bits are also required to enable scrollbars in the 

- * horizontal and vertical directions.

- * 

- * @return the Always Show Scrollbars flag value

- */

-public boolean getAlwaysShowScrollBars() {

-	return alwaysShowScroll;

-}

-

-/**

- * Get the content that is being scrolled.

- */

-public Control getContent() {

-	return content;

-}

-

-private void hScroll() {

-	if (content == null) return;

-	Point location = content.getLocation ();

-	ScrollBar hBar = getHorizontalBar ();

-	int hSelection = hBar.getSelection ();

-	content.setLocation (-hSelection, location.y);

-}

-

-public void layout(boolean changed) {

-	if (content == null) return;

-	Rectangle contentRect = content.getBounds();

-	ScrollBar hBar = getHorizontalBar ();

-	ScrollBar vBar = getVerticalBar ();

-	if (!alwaysShowScroll) {

-		boolean hVisible = needHScroll(contentRect, false);

-		boolean vVisible = needVScroll(contentRect, hVisible);

-		if (!hVisible && vVisible) hVisible = needHScroll(contentRect, vVisible);

-		if (hBar != null) hBar.setVisible(hVisible);

-		if (vBar != null) vBar.setVisible(vVisible);

-	}

-

-	Rectangle hostRect = getClientArea();

-	if (expandHorizontal) {

-		contentRect.width = Math.max(minWidth, hostRect.width);	

-	}

-	if (expandVertical) {

-		contentRect.height = Math.max(minHeight, hostRect.height);

-	}

-

-	if (hBar != null) {

-		hBar.setMaximum (contentRect.width);

-		hBar.setThumb (Math.min (contentRect.width, hostRect.width));

-		int hPage = contentRect.width - hostRect.width;

-		int hSelection = hBar.getSelection ();

-		if (hSelection >= hPage) {

-			if (hPage <= 0) {

-				hSelection = 0;

-				hBar.setSelection(0);

-			}

-			contentRect.x = -hSelection;

-		}

-	}

-

-	if (vBar != null) {

-		vBar.setMaximum (contentRect.height);

-		vBar.setThumb (Math.min (contentRect.height, hostRect.height));

-		int vPage = contentRect.height - hostRect.height;

-		int vSelection = vBar.getSelection ();

-		if (vSelection >= vPage) {

-			if (vPage <= 0) {

-				vSelection = 0;

-				vBar.setSelection(0);

-			}

-			contentRect.y = -vSelection;

-		}

-	}

-	

-	content.setBounds (contentRect);

-}

-

-private boolean needHScroll(Rectangle contentRect, boolean vVisible) {

-	ScrollBar hBar = getHorizontalBar();

-	if (hBar == null) return false;

-	

-	Rectangle hostRect = getBounds();

-	int border = getBorderWidth();

-	hostRect.width -= 2*border;

-	ScrollBar vBar = getVerticalBar();

-	if (vVisible && vBar != null) hostRect.width -= vBar.getSize().x;

-	

-	if (!expandHorizontal && contentRect.width > hostRect.width) return true;

-	if (expandHorizontal && minWidth > hostRect.width) return true;

-	return false;

-}

-

-private boolean needVScroll(Rectangle contentRect, boolean hVisible) {

-	ScrollBar vBar = getVerticalBar();

-	if (vBar == null) return false;

-	

-	Rectangle hostRect = getBounds();

-	int border = getBorderWidth();

-	hostRect.height -= 2*border;

-	ScrollBar hBar = getHorizontalBar();

-	if (hVisible && hBar != null) hostRect.height -= hBar.getSize().y;

-	

-	if (!expandHorizontal && contentRect.height > hostRect.height) return true;

-	if (expandHorizontal && minHeight > hostRect.height) return true;

-	return false;

-}

-

-private void resize() {

-	if (inResize) return;

-	inResize = true;

-	layout();

-	inResize = false;

-}

-

-/**

- * Set the Always Show Scrollbars flag.  True if the scrollbars are 

- * always shown even if they are not required.  False if the scrollbars are only 

- * visible when some part of the composite needs to be scrolled to be seen.

- * The H_SCROLL and V_SCROLL style bits are also required to enable scrollbars in the 

- * horizontal and vertical directions.

- */

-public void setAlwaysShowScrollBars(boolean show) {

-	if (show == alwaysShowScroll) return;

-	alwaysShowScroll = show;

-	ScrollBar hBar = getHorizontalBar ();

-	if (hBar != null && alwaysShowScroll) hBar.setVisible(true);

-	ScrollBar vBar = getVerticalBar ();

-	if (vBar != null && alwaysShowScroll) vBar.setVisible(true);

-	layout();

-}

-

-/**

- * Set the content that will be scrolled.

- */

-public void setContent(Control content) {

-	if (this.content != null && !this.content.isDisposed()) {

-		this.content.removeListener(SWT.Resize, contentListener);

-		this.content.setBounds(new Rectangle(-200, -200, 0, 0));	

-	}

-	

-	this.content = content;

-	ScrollBar vBar = getVerticalBar ();

-	ScrollBar hBar = getHorizontalBar ();

-	if (this.content != null) {

-		if (vBar != null) {

-			vBar.setMaximum (0);

-			vBar.setThumb (0);

-			vBar.setSelection(0);

-		}

-		if (hBar != null) {

-			hBar.setMaximum (0);

-			hBar.setThumb (0);

-			hBar.setSelection(0);

-		}

-		content.setLocation(0, 0);

-		layout();

-		this.content.addListener(SWT.Resize, contentListener);

-	} else {

-		if (hBar != null) hBar.setVisible(alwaysShowScroll);

-		if (vBar != null) vBar.setVisible(alwaysShowScroll);

-	}

-}

-/**

- * Configure the ScrolledComposite to resize the content object to be as wide as the 

- * ScrolledComposite when the width of the ScrolledComposite is greater than the

- * minimum width specified in setMinWidth.  If the ScrolledComposite is less than the

- * minimum width, the content will not resized and instead the horizontal scroll bar will be

- * used to view the entire width.

- * If expand is false, this behaviour is turned off.  By default, this behaviour is turned off.

- */

-public void setExpandHorizontal(boolean expand) {

-	if (expand == expandHorizontal) return;

-	expandHorizontal = expand;

-	layout();

-}

-/**

- * Configure the ScrolledComposite to resize the content object to be as tall as the 

- * ScrolledComposite when the height of the ScrolledComposite is greater than the

- * minimum height specified in setMinHeight.  If the ScrolledComposite is less than the

- * minimum height, the content will not resized and instead the vertical scroll bar will be

- * used to view the entire height.

- * If expand is false, this behaviour is turned off.  By default, this behaviour is turned off.

- */

-public void setExpandVertical(boolean expand) {

-	if (expand == expandVertical) return;

-	expandVertical = expand;

-	layout();

-}

-public void setLayout (Layout layout) {

-	// do not allow a layout to be set on this class because layout is being handled by the resize listener

-	return;

-}

-/**

- * Specify the minimum height at which the ScrolledComposite will begin scrolling the

- * content with the vertical scroll bar.  This value is only relevant if  

- * setExpandVertical(true) has been set.

- */

-public void setMinHeight(int height) {

-	setMinSize(minWidth, height);

-}

-public void setMinSize(Point size) {

-	setMinSize(size.x, size.y);

-}

-public void setMinSize(int width, int height) {

-	if (width == minWidth && height == minHeight) return;

-	minWidth = Math.max(0, width);

-	minHeight = Math.max(0, height);

-	layout();

-}

-/**

- * Specify the minimum width at which the ScrolledComposite will begin scrolling the

- * content with the horizontal scroll bar.  This value is only relevant if  

- * setExpandHorizontal(true) has been set.

- */

-

-public void setMinWidth(int width) {

-	setMinSize(width, minHeight);

-}

-

-private void vScroll() {

-	Control[] children = getChildren();

-	if (children.length == 0) return;

-	Control content = children[0];

-	Point location = content.getLocation ();

-	ScrollBar vBar = getVerticalBar ();

-	int vSelection = vBar.getSelection ();

-	content.setLocation (location.x, -vSelection);

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StackLayout.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StackLayout.java
deleted file mode 100755
index 02fab5c..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StackLayout.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.layout.*;

-

-/**

- * This Layout stacks all the controls one on top of the other and resizes all controls

- * to have the same size and location.

- * The control specified in topControl is visible and all other controls are not visible.

- * Users must set the topControl value to flip between the visible items and the call 

- * layout() on the composite which has the StackLayout.

- */

-

-public class StackLayout extends Layout {

-	

- 	/**

-	 * marginWidth specifies the number of pixels of horizontal margin

-	 * that will be placed along the left and right edges of the layout.

-	 *

-	 * The default value is 0.

-	 */

- 	public int marginWidth = 0;

-	/**

-	 * marginHeight specifies the number of pixels of vertical margin

-	 * that will be placed along the top and bottom edges of the layout.

-	 *

-	 * The default value is 0.

-	 */

-	public int marginHeight = 0;

-

- 	/**

- 	 * topControl the Control that is displayed at the top of the stack.

- 	 * All other controls that are children of the parent composite will not be visible.

- 	 */

- 	public Control topControl;

-

-protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) {

-	Control children[] = composite.getChildren();

-	

-	int maxWidth = 0;

-	int maxHeight = 0;

-	for (int i = 0; i < children.length; i++) {

-		Point size = children[i].computeSize(wHint, hHint, flushCache);

-		maxWidth = Math.max(size.x, maxWidth);

-		maxHeight = Math.max(size.y, maxHeight);

-	}

-	

-	int width = wHint, height = hHint;

-	if (wHint == SWT.DEFAULT) width = maxWidth;

-	if (hHint == SWT.DEFAULT) height = maxHeight;

-	return new Point(width + 2 * marginWidth, height + 2 * marginHeight);

-}

-

-protected void layout(Composite composite, boolean flushCache) {

-	Control children[] = composite.getChildren();

-	Rectangle rect = composite.getClientArea();

-	rect.x += marginWidth;

-	rect.y += marginHeight;

-	rect.width -= 2 * marginWidth;

-	rect.height -= 2 * marginHeight;

-	for (int i = 0; i < children.length; i++) {

-		children[i].setBounds(rect);

-		children[i].setVisible(children[i] == topControl);

-			

-	}

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyleRange.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyleRange.java
deleted file mode 100755
index 9fd1bda..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyleRange.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.internal.CloneableCompatibility;

-

-public class StyleRange implements CloneableCompatibility {

-	public int start;		// style start offset. 0 based from the document start

-	public int length;		// style length.	

-	public Color foreground; 

-	public Color background;

-	public int fontStyle = SWT.NORMAL;	// may be SWT.NORMAL or SWT.BOLD

-

-public StyleRange() {

-}

-/** 

- * Create a new style range.

- * <p>

- *

- * @param start start offset of the style

- * @param length length of the style 

- * @param foreground foreground color of the style, null if none 

- * @param background background color of the style, null if none

- */

-public StyleRange(int start, int length, Color foreground, Color background) {

-	this.start = start;

-	this.length = length;

-	this.foreground = foreground;

-	this.background = background;

-}

-

-/** 

- * Create a new style range.

- * <p>

- *

- * @param start start offset of the style

- * @param length length of the style 

- * @param foreground foreground color of the style, null if none 

- * @param background background color of the style, null if none

- * @param fontStyle font style of the style, may be SWT.NORMAL or SWT.BOLD

- */

-public StyleRange(int start, int length, Color foreground, Color background, int fontStyle) {

-	this.start = start;

-	this.length = length;

-	this.foreground = foreground;

-	this.background = background;

-	this.fontStyle = fontStyle;

-}

-

-/**

- * Compare the specified object to this StyleRange and answer if the two 

- * are equal. The object must be an instance of StyleRange and have the

- * same field values.

- * <p>

- *

- * @param object the object to compare with this object

- * @return true if the objects are equal, false otherwise

- */

-public boolean equals(Object object) {

-	StyleRange style;

-	if (object == this) return true;

-	if (object instanceof StyleRange) style = (StyleRange)object;

-	else return false;

-	if (this.start != style.start) return false;

-	if (this.length != style.length) return false;

-	if (this.foreground != null) {

-		if (!this.foreground.equals(style.foreground)) return false;

-	} else if (style.foreground != null) return false;

-	if (this.background != null) {

-		if (!this.background.equals(style.background)) return false;

-	} else if (style.background != null) return false; 

-	if (this.fontStyle != style.fontStyle) return false;

-	return true;

-}

-/**

- * Returns an integer hash code for the receiver. Objects which are

- * equal answer the same value for this method.

- * <p>

- *

- * @return the receiver's hash

- */

-public int hashCode() {

-	return start + length + foreground.hashCode() + background.hashCode() + fontStyle;

-}

-/**

- * Returns whether or not the receiver is unstyled (i.e., does not have any 

- * style attributes specified).

- * <p>

- *

- * @return true if the receiver is unstyled, false otherwise.

- */

-public boolean isUnstyled() {

-	if (this.foreground != null) return false;

-	if (this.background != null) return false;

-	if (this.fontStyle != SWT.NORMAL) return false;

-	return true;

-}

-/**

- * Compares the specified object to this StyleRange and answer if the two 

- * are similar. The object must be an instance of StyleRange and have the

- * same field values for except for start and length.

- * <p>

- *

- * @param object the object to compare with this object

- * @return true if the objects are similar, false otherwise

- */

-public boolean similarTo(StyleRange style) {

-	if (this.foreground != null) {

-		if (!this.foreground.equals(style.foreground)) return false;

-	} else if (style.foreground != null) return false;

-	if (this.background != null) {

-		if (!this.background.equals(style.background)) return false;

-	} else if (style.background != null) return false; 

-	if (this.fontStyle != style.fontStyle) return false;

-	return true;

-}

-/**

- * Answers a new StyleRange with the same values as this StyleRange.

- * <p>

- *

- * @return a shallow copy of this StyleRange

- */	

-public Object clone() {

- 	StyleRange style = new StyleRange(start, length, foreground, background, fontStyle);

-	return style;

-}

-/** 

- * Answers a string description of the receiver.

- * <p>

- *

- * @return a printable representation for the receiver.

- */

-public String toString() {

-	StringBuffer buf = new StringBuffer();

-	buf.append(start + "," + length + " fg:" + foreground + " bg:" + background + " fStyle:");

-	if (fontStyle == SWT.NORMAL) {

-		buf.append("normal");

-	} else if (fontStyle == SWT.BOLD) {

-		buf.append("bold");

-	}

-	return buf.toString();

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextContent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextContent.java
deleted file mode 100755
index ac8733b..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextContent.java
+++ /dev/null
@@ -1,187 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.*;

-

-public interface StyledTextContent {

-

-/**

- * Called by StyledText to add itself as an Observer to content changes.

- * Implementors should send a TextChangingEvent when changes to the content

- * are about to occur and a TextChangedEvent when the changes did occur. 

- * The widget only updates the screen properly when it receives both events.

- * <p>

- *

- * @param listener the listener

- * @exception IllegalArgumentException <ul>

- *    <li>ERROR_NULL_ARGUMENT when listener is null</li>

- * </ul>

- */

-public void addTextChangeListener(TextChangeListener listener);

-

-/**

- * Return the number of characters in the content.

- * <p>

- *

- * @return the number of characters in the content.

- */

-public int getCharCount();

-

-/**

- * Return the line at the given line index without delimiters.

- * <p>

- *

- * @param lineIndex index of the line to return. Does not include delimiters

- *	of preceeding lines. Index 0 is the first line of the content.

- * @return the line text without delimiters

- */

-public String getLine(int lineIndex);

-

-/**

- * Return the line index at the given character offset.

- * <p>

- *

- * @param offset offset of the line to return. The first character of the document

- *	is at offset 0.  An offset of getLength() is valid and should answer

- *	the number of lines. 

- * @return the line index. The first line is at index 0.  If the character at offset 

- *	is a delimiter character, answer the line index of the line that is delimited.  

- *	For example, if text = "\r\n\r\n", and delimiter = "\r\n", then:

- * <ul>

- * <li>getLineAtOffset(0) == 0

- * <li>getLineAtOffset(1) == 0

- * <li>getLineAtOffset(2) == 1

- * <li>getLineAtOffset(3) == 1

- * <li>getLineAtOffset(4) == 2

- * </ul>

- */

-public int getLineAtOffset(int offset);

-

-/**

- * Return the number of lines.  Should answer 1 when no text is specified.

- * The  StyledText widget relies on this behavior for drawing the cursor.

- * <p>

- *

- * @return the number of lines.  For example:

- * <ul>

- * <li>	text value ==> getLineCount		

- * <li>	null ==> 1		

- * <li>	"" ==> 1		

- * <li>	"a\n" ==> 2			

- * <li>	"\n\n" ==> 3			

- * </ul>

- */

-public int getLineCount();

-

-/**

- * Return the line delimiter that should be used by the StyledText 

- * widget when inserting new lines. New lines entered using key strokes 

- * and paste operations use this line delimiter.

- * Implementors may use System.getProperty("line.separator") to return

- * the platform line delimiter.

- * <p>

- *

- * @return the line delimiter that should be used by the StyledText widget

- *	when inserting new lines.

- */

-public String getLineDelimiter();

-

-/**

- * Return the character offset of the first character of the given line.

- * <p>

- * <b>NOTE:</b> When there is no text (i.e., no lines), getOffsetAtLine(0) 

- * is a valid call that should return 0.

- * </p>

- *

- * @param lineIndex index of the line. The first line is at index 0.

- * @return offset offset of the first character of the line. The first character 

- *	of the document is at offset 0.  The return value should include

- *	line delimiters.  For example, if text = "\r\ntest\r\n" and delimiter = "\r\n", 

- *	then:

- * <ul>

- * <li>getOffsetAtLine(0) == 0

- * <li>getOffsetAtLine(1) == 2

- * <li>getOffsetAtLine(2) == 8

- * </ul>

- */

-public int getOffsetAtLine(int lineIndex);

-

-/**

- * Returns a string representing the content at the given range.

- * <p>

- *

- * @param start	the start offset of the text to return. Offset 0 is the first 

- *	character of the document.

- * @param length the length of the text to return

- * @return the text at the given range

- */

-public String getTextRange(int start, int length);

-

-/**

- * Remove the specified text changed listener.

- * <p>

- *

- * @param listener the listener

- * @exception IllegalArgumentException <ul>

- *    <li>ERROR_NULL_ARGUMENT when listener is null</li>

- * </ul>

- */

-public void removeTextChangeListener(TextChangeListener listener);

-

-/**

- * Replace the text with "newText" starting at position "start" 

- * for a length of "replaceLength".

- * <p>

- * Implementors have to notify the TextChangeListeners that were added 

- * using <code>addTextChangeListener</code> before and after the content 

- * is changed. A <code>TextChangingEvent</code> has to be sent before the 

- * content is changed and a <code>TextChangedEvent</code> has to be sent 

- * after the content has changed.

- * The text change that occurs after the <code>TextChangingEvent</code> 

- * has been sent has to be consistent with the data provided in the 

- * <code>TextChangingEvent</code>.

- * This data will be cached by the widget and will be used when the 

- * <code>TextChangedEvent</code> is received.

- * <p>

- * The <code>TextChangingEvent</code> should be set as follows:

- * <ul>

- * <li>event.start = start of the replaced text

- * <li>event.newText = text that is going to be inserted or empty String 

- *	if no text will be inserted

- * <li>event.replaceCharCount = length of text that is going to be replaced

- * <li>event.newCharCount = length of text that is going to be inserted

- * <li>event.replaceLineCount = number of lines that are going to be replaced

- * <li>event.newLineCount = number of new lines that are going to be inserted

- * </ul>

- * <b>NOTE:</b> newLineCount is the number of inserted lines and replaceLineCount is 

- * the number of deleted lines based on the change that occurs visually.  For

- * example:

- * <ul>

- * <li>(replaceText, newText) ==> (replaceLineCount, newLineCount)

- * <li>("", "\n") ==> (0, 1)

- * <li>("\n\n", "a") ==> (2, 0)

- * <li>("a", "\n\n") ==> (0, 2)

- * <li>("\n", "") ==> (1, 0)

- * </ul>

- * </p>

- *

- * @param start	start offset of text to replace, none of the offsets include 

- *	delimiters of preceeding lines, offset 0 is the first character of the document 

- * @param replaceLength	start offset of text to replace

- * @param newText start offset of text to replace

- */

-public void replaceTextRange(int start, int replaceLength, String text);

-

-/**

- * Set text to "text".

- * Implementors have to send a <code>TextChangedEvent</code> to the 

- * TextChangeListeners that were added using <code>addTextChangeListener</code>.

- * <p>

- *

- * @param text the new text

- */

-public void setText(String text);

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextEvent.java
deleted file mode 100755
index 5fd9e16..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextEvent.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-/**

- *

- */ 

-class StyledTextEvent extends Event {

-	// used by LineStyleEvent

-	StyleRange[] styles;		

-	// used by LineBackgroundEvent

-	Color lineBackground;

-	// used by BidiSegmentEvent

-	int[] segments;	

-	// used by TextChangedEvent

-	int replaceCharCount; 	

-	int newCharCount; 

-	int replaceLineCount;

-	int newLineCount; 

-

-StyledTextEvent (StyledTextContent content) {

-	super();

-	data = content;	

-}

-}

-

-

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextListener.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextListener.java
deleted file mode 100755
index a708fa0..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextListener.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.internal.SWTEventListener;

-

-class StyledTextListener extends TypedListener {

-/**

- */

-StyledTextListener(SWTEventListener listener) {

-	super(listener);

-}

-/**

- * Process StyledText events by invoking the event's handler.

- */

-public void handleEvent(Event e) {

-	TextChangedEvent textChangedEvent;

-	

-	switch (e.type) {

-		case StyledText.ExtendedModify:

-			ExtendedModifyEvent extendedModifyEvent = new ExtendedModifyEvent((StyledTextEvent) e);

-			((ExtendedModifyListener) eventListener).modifyText(extendedModifyEvent);

-		break;

-		

-		case StyledText.LineGetBackground:

-			LineBackgroundEvent lineBgEvent = new LineBackgroundEvent((StyledTextEvent) e);

-			((LineBackgroundListener) eventListener).lineGetBackground(lineBgEvent);

-			((StyledTextEvent) e).lineBackground = lineBgEvent.lineBackground;

-		break;

-		

-		case StyledText.LineGetSegments:

-			BidiSegmentEvent segmentEvent = new BidiSegmentEvent((StyledTextEvent) e);

-			((BidiSegmentListener) eventListener).lineGetSegments(segmentEvent);

-			((StyledTextEvent) e).segments = segmentEvent.segments;

-		break;

-		

-		case StyledText.LineGetStyle:

-			LineStyleEvent lineStyleEvent = new LineStyleEvent((StyledTextEvent) e);

-			((LineStyleListener) eventListener).lineGetStyle(lineStyleEvent);

-			((StyledTextEvent) e).styles = lineStyleEvent.styles;

-		break;

-

-		case StyledText.VerifyKey:

-			VerifyEvent verifyEvent = new VerifyEvent(e);

-			((VerifyKeyListener) eventListener).verifyKey(verifyEvent);

-			e.doit = verifyEvent.doit;

-		break;		

-

-		case StyledText.TextChanged:

-			textChangedEvent = new TextChangedEvent((StyledTextContent) e.data);

-			((TextChangeListener) eventListener).textChanged(textChangedEvent);

-		break;

-

-		case StyledText.TextChanging:

-			TextChangingEvent textChangingEvent = new TextChangingEvent((StyledTextContent) e.data, (StyledTextEvent) e);

-			((TextChangeListener) eventListener).textChanging(textChangingEvent);

-		break;

-

-		case StyledText.TextSet:

-			textChangedEvent = new TextChangedEvent((StyledTextContent) e.data);

-			((TextChangeListener) eventListener).textSet(textChangedEvent);

-		break;

-	}

-}

-}

-

-

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextPrinter.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextPrinter.java
deleted file mode 100755
index b333851..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextPrinter.java
+++ /dev/null
@@ -1,373 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import java.io.*;

-import java.util.Vector;

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.layout.*;

-import org.eclipse.swt.custom.*;

-import org.eclipse.swt.printing.*;

-import org.eclipse.swt.internal.Compatibility;

-

-class StyledTextPrinter implements Runnable {

-	class RTFState {

-		int fontStyle;

-		int foreground;

-		int background;

-	}

-	Vector savedState = new Vector();

-	

-	Printer printer;

-	GC gc;

-	String rtf;

-	StringBuffer wordBuffer;

-	int startPage, endPage, currentPage;

-	int index, end;

-	String tabs = "";

-	int tabWidth = 0;

-	int lineHeight = 0;

-	int leftMargin, rightMargin, topMargin, bottomMargin;

-	int x, y;

-

-	/* We can optimize for fonts because we know styledText only has one font.

-	 * As soon as we know the font name and point size, we will create and store

-	 * fonts for the following styles: normal, bold, italic, and bold italic.

-	 */

-	Font fontTable[][] = new Font[1][4];

-	boolean creatingFontTable = false;

-	String fontName;

-	int fontSize;

-	int currentFontStyle = SWT.NORMAL;

-	int currentFont = -1;

-	int defaultFont = -1;

-

-	Vector colorTable = new Vector();

-	boolean creatingColorTable = false;

-	int red, green, blue;

-	int currentForeground = -1;

-	int currentBackground = -1;

-	

-	static void print(StyledText styledText) {

-		Printer printer = new Printer();

-		new StyledTextPrinter(styledText, printer).run();

-		printer.dispose();

-	}

-	

-	StyledTextPrinter(StyledText styledText, Printer printer) {

-		this.printer = printer;

-		PrinterData data = printer.getPrinterData();

-		startPage = 1;

-		endPage = Integer.MAX_VALUE;

-		if (data.scope == PrinterData.PAGE_RANGE) {

-			startPage = data.startPage;

-			endPage = data.endPage;

-		}

-

-		/* Create a buffer for computing tab width. */

-		int tabSize = styledText.getTabs();

-		StringBuffer tabBuffer = new StringBuffer(tabSize);

-		for (int i = 0; i < tabSize; i++) tabBuffer.append(' ');

-		tabs = tabBuffer.toString();

-

-		/* Get RTF from the StyledText.*/

-		rtf = styledText.getRtf();

-	}

-	

-	public void run() {

-		if (printer.startJob("Printing")) {

-			Rectangle clientArea = printer.getClientArea();

-			Rectangle trim = printer.computeTrim(0, 0, 0, 0);

-			Point dpi = printer.getDPI();

-			leftMargin = dpi.x + trim.x; // one inch from left side of paper

-			rightMargin = clientArea.width - dpi.x + trim.x + trim.width; // one inch from right side of paper

-			topMargin = dpi.y + trim.y; // one inch from top edge of paper

-			bottomMargin = clientArea.height - dpi.y + trim.y + trim.height; // one inch from bottom edge of paper

-			

-			/* Create a printer GC and print the RTF to it. */

-			gc = new GC(printer);

-			x = leftMargin;

-			y = topMargin;

-			currentPage = 1;

-			if (startPage == 1) {

-				printer.startPage();

-			}

-			end = rtf.length();

-			index = 0;

-			wordBuffer = new StringBuffer();

-			while (index < end) {

-				char c = rtf.charAt(index);

-				index++;

-				switch (c) {

-					case '\\':

-						printWordBuffer();

-						parseControlWord();

-						break;

-					case '{':

-						printWordBuffer();

-						saveState();

-						break;

-					case '}':

-						printWordBuffer();

-						restoreState();

-						break;

-					case 0x0a:

-					case 0x0d:

-						printWordBuffer();

-						break;

-					default:

-						parseChar(c);

-				}

-			}

-			if (y + lineHeight <= bottomMargin) {

-				printer.endPage();

-			}

-			printer.endJob();

-

-			/* Cleanup */

-			gc.dispose();

-			for (int i = 0; i < 4; i++) {

-				fontTable[currentFont][i].dispose();

-			}

-			for (int i = 0; i < colorTable.size(); i++) {

-				((Color)colorTable.elementAt(i)).dispose();

-			}

-		}

-	}

-	

-	void parseControlWord() {

-		if (index >= end) return;

-		char c = rtf.charAt(index);

-		index++;

-		if (!Compatibility.isLetter(c)) {

-			handleControlSymbol(c);

-			return;

-		}

-		StringBuffer controlWord = new StringBuffer();

-		controlWord.append(c);

-		while (index < end) {

-			c = rtf.charAt(index);

-			index++;

-			if (!Compatibility.isLetter(c)) break;

-			controlWord.append(c);

-		}

-		boolean isNegative = false;

-		if (c == '-') {

-			isNegative = true;

-			c = rtf.charAt(index);

-			index++;

-		}

-		boolean hasParameter = false;

-		StringBuffer paramBuffer = new StringBuffer();

-		int parameter = 0;

-		if (Character.isDigit(c)) {

-			hasParameter = true;

-			paramBuffer.append(c);

-			while (index < end) {

-				c = rtf.charAt(index);

-				index++;

-				if (!Character.isDigit(c)) break;

-				paramBuffer.append(c);

-			}

-			try {

-				parameter = Integer.valueOf(paramBuffer.toString()).intValue();

-			} catch (NumberFormatException e) {}

-			if (isNegative) parameter = -parameter;

-		}

-		if (c != ' ') index--;

-		if (hasParameter) {

-			handleControlWord(controlWord.toString(), parameter);

-		} else {

-			handleControlWord(controlWord.toString());

-		}

-	}

-	

-	void parseChar(char c) {

-		if (c == 0) return;

-		if (c == ';') {

-			if (creatingFontTable) {

-				fontName = wordBuffer.toString();

-				wordBuffer = new StringBuffer();

-				creatingFontTable = false;

-				return;

-			}

-			if (creatingColorTable) {

-				colorTable.addElement(new Color(printer, red, green, blue));

-				red = green = blue = 0;

-				return;

-			}

-		}

-		if (c != '\t') {

-			wordBuffer.append(c);

-		}

-		if (!Compatibility.isLetterOrDigit(c) && !creatingFontTable) {

-			printWordBuffer();

-			if (c == '\t') {

-				x += tabWidth;

-			}

-		}

-	}

-	

-	void printWordBuffer() {

-		if (wordBuffer.length() > 0) {

-			String word = wordBuffer.toString();

-			int wordWidth = gc.stringExtent(word).x;

-			if (x + wordWidth > rightMargin) {

-				/* word doesn't fit on current line, so wrap */

-				newline();

-			}

-			if (currentPage >= startPage && currentPage <= endPage) {

-				gc.drawString(word, x, y, true);

-			}

-			x += wordWidth;

-			wordBuffer = new StringBuffer();

-		}

-	}

-	

-	void handleControlSymbol(char c) {

-		switch (c) {

-			case '\\':

-			case '{':

-			case '}':

-				parseChar(c);

-		}

-	}

-	

-	void handleControlWord(String controlWord) {

-		if (controlWord.equals("par")) newline();

-		else if (controlWord.equals("b")) setFontStyle(currentFontStyle | SWT.BOLD);

-		else if (controlWord.equals("i")) setFontStyle(currentFontStyle | SWT.ITALIC);

-		else if (controlWord.equals("fnil")) setFont(defaultFont);

-		else if (controlWord.equals("fonttbl")) createFontTable();

-		else if (controlWord.equals("colortbl")) createColorTable();

-	}

-	

-	void handleControlWord(String controlWord, int parameter) {

-		if (controlWord.equals("highlight")) setBackground(parameter);

-		else if (controlWord.equals("cf")) setForeground(parameter);

-		else if (controlWord.equals("b")) setFontStyle(currentFontStyle & ~SWT.BOLD);

-		else if (controlWord.equals("i")) setFontStyle(currentFontStyle & ~SWT.ITALIC);

-		else if (controlWord.equals("f")) setFont(parameter);

-		else if (controlWord.equals("fs")) setFontSize(parameter);

-		else if (controlWord.equals("red")) red = parameter;

-		else if (controlWord.equals("green")) green = parameter;

-		else if (controlWord.equals("blue")) blue = parameter;

-		else if (controlWord.equals("deff")) setDefaultFont(parameter);

-	}

-	

-	void setDefaultFont(int number) {

-		defaultFont = number;

-	}

-	

-	void setFont(int number) {

-		currentFont = number;

-	}

-	

-	void createFontTable() {

-		creatingFontTable = true;

-		currentFont = 0;

-	}

-	

-	void setFontSize(int size) {

-		fontSize = size / 2;

-		createFonts();

-	}

-	

-	void createFonts() {

-		if (fontName != null && fontSize != -1) {

-			// currentFont must already be set

-			fontTable[currentFont][0] = new Font(printer, fontName, fontSize, SWT.NORMAL);

-			fontTable[currentFont][1] = new Font(printer, fontName, fontSize, SWT.BOLD);

-			fontTable[currentFont][2] = new Font(printer, fontName, fontSize, SWT.ITALIC);

-			fontTable[currentFont][3] = new Font(printer, fontName, fontSize, SWT.BOLD | SWT.ITALIC);

-			setFontStyle(SWT.NORMAL);

-		}

-	}

-	

-	void setFontStyle(int style) {

-		// currentFont must already be set

-		Font font;

-		if ((style & SWT.BOLD) != 0) {

-			if ((style & SWT.ITALIC) != 0) {

-				font = fontTable[currentFont][3];

-			} else {

-				font = fontTable[currentFont][1];

-			}

-		} else if ((style & SWT.ITALIC) != 0) {

-			font = fontTable[currentFont][2];

-		} else {

-			font = fontTable[currentFont][0];

-		}

-		gc.setFont(font);

-		tabWidth = gc.stringExtent(tabs).x;

-		lineHeight = gc.getFontMetrics().getHeight();

-		currentFontStyle = style;

-	}

-	

-	void createColorTable() {

-		creatingColorTable = true;

-		red = green = blue = 0;

-	}

-	

-	void setForeground(int color) {

-		if (color != currentForeground) {

-			// colors must already be in table

-			gc.setForeground((Color)colorTable.elementAt(color));

-			currentForeground = color;

-		}

-	}

-	

-	void setBackground(int color) {

-		if (color != currentBackground) {

-			// colors must already be in table

-			gc.setBackground((Color)colorTable.elementAt(color));

-			currentBackground = color;

-		}

-	}

-	

-	void newline() {

-		x = leftMargin;

-		y += lineHeight;

-		if (y + lineHeight > bottomMargin) {

-			printer.endPage();

-			if (index + 1 < end) {

-				y = topMargin;

-				currentPage++;

-				if (currentPage >= startPage && currentPage <= endPage) {

-					printer.startPage();

-				}

-			}

-		}

-	}

-	

-	void saveState() {

-		RTFState state = new RTFState();

-		state.fontStyle = currentFontStyle;

-		state.foreground = currentForeground;

-		state.background = currentBackground;

-		savedState.addElement(state);

-	}

-	

-	void restoreState() {

-		if (savedState.isEmpty()) return;

-		if (creatingColorTable) {

-			setForeground(0);

-			setBackground(1);

-			creatingColorTable = false;

-		}

-		

-		int index = savedState.size() - 1;

-		RTFState state = (RTFState)savedState.elementAt(index);

-		savedState.removeElementAt(index);

-		

-		setFontStyle(state.fontStyle);

-		if (state.foreground != -1) setForeground(state.foreground);

-		if (state.background != -1) setBackground(state.background);

-	}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableEditor.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableEditor.java
deleted file mode 100755
index 1fdca24..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableEditor.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-/**

-*

-* A TableEditor is a manager for a Control that appears above a cell in a Table and tracks with the

-* moving and resizing of that cell.  It can be used to display a text widget above a cell

-* in a Table so that the user can edit the contents of that cell.  It can also be used to display

-* a button that can launch a dialog for modifying the contents of the associated cell.

-*

-* <p> Here is an example of using a TableEditor:

-* <code><pre>

-* Table table = new Table(parent, SWT.FULL_SELECTION);

-* TableEditor editor = new TableEditor (table);

-* table.addSelectionListener (new SelectionAdapter() {

-*	public void widgetSelected(SelectionEvent e) {

-*

-*		// Clean up any previous editor control

-*		Control oldEditor = editor.getEditor();

-*		if (oldEditor != null)

-*			oldEditor.dispose();	

-*

-*		// Identify the selected row

-*		int index = table.getSelectionIndex ();

-*		if (index == -1) return;

-*		TableItem item = table.getItem (index);

-*

-*		// The control that will be the editor must be a child of the Table

-*		Text text = new Text(table, SWT.NONE);

-*

-*		//The text editor must have the same size as the cell and must

-*		//not be any smaller than 50 pixels.

-*		editor.horizontalAlignment = SWT.LEFT;

-*		editor.grabHorizontal = true;

-*		editor.minimumWidth = 50;

-*

-*		// Open the text editor in the second column of the selected row.

-*		editor.setEditor (text, item, 1);

-*

-*		// Assign focus to the text control

-*		text.setFocus ();

-*	}

-* });

-* </pre></code>

-*/

-public class TableEditor extends ControlEditor {

-

-	Table table;

-	TableItem item;

-	int column = -1;

-	Listener columnListener;

-/**

-* Creates a TableEditor for the specified Table.

-*

-* @param table the Table Control above which this editor will be displayed

-*

-*/

-public TableEditor (Table table) {

-	super(table);

-	this.table = table;

-	

-	columnListener = new Listener() {

-		public void handleEvent(Event e) {

-			resize ();

-		}

-	};

-

-}

-Rectangle computeBounds () {

-	if (item == null || column == -1 || item.isDisposed()) return new Rectangle(0, 0, 0, 0);

-	

-	Rectangle cell = item.getBounds(column);

-	Rectangle editorRect = new Rectangle(cell.x, cell.y, minimumWidth, cell.height);

-	Rectangle area = table.getClientArea();

-	if (cell.x < area.x + area.width) {

-		if (cell.x + cell.width > area.x + area.width) {

-			cell.width = area.width - cell.x;

-		}

-	}

-	

-	if (grabHorizontal){

-		editorRect.width = Math.max(cell.width, minimumWidth);

-	}

-	

-	if (horizontalAlignment == SWT.RIGHT) {

-		editorRect.x += cell.width - editorRect.width;

-	} else if (horizontalAlignment == SWT.LEFT) {

-		// do nothing - cell.x is the right answer

-	} else { // default is CENTER

-		editorRect.x += (cell.width - editorRect.width)/2;

-	}

-	

-	return editorRect;

-}

-/**

- * Removes all associations between the TableEditor and the cell in the table.  The

- * Table and the editor Control are <b>not</b> disposed.

- */

-public void dispose () {

-	

-	if (this.column > -1 && this.column < table.getColumnCount()){

-		TableColumn tableColumn = table.getColumn(this.column);

-		tableColumn.removeListener(SWT.Resize, columnListener);

-		tableColumn.removeListener(SWT.Move, columnListener);

-	}

-

-	table = null;

-	item = null;

-	column = -1;

-	

-	super.dispose();

-}

-/**

-* Returns the zero based index of the column of the cell being tracked by this editor.

-*

-* @return the zero based index of the column of the cell being tracked by this editor

-*/

-public int getColumn () {

-	return column;

-}

-public void setColumn(int column) {

-		

-	if (this.column > -1 && this.column < table.getColumnCount()){

-		TableColumn tableColumn = table.getColumn(this.column);

-		tableColumn.removeListener(SWT.Resize, columnListener);

-		tableColumn.removeListener(SWT.Move, columnListener);

-		this.column = -1;

-	}

-

-	if (column < 0  || column >= table.getColumnCount()) return;	

-		

-	this.column = column;

-	TableColumn tableColumn = table.getColumn(this.column);

-	tableColumn.addListener(SWT.Resize, columnListener);

-	tableColumn.addListener(SWT.Move, columnListener);

-}

-/**

-* Returns the TableItem for the row of the cell being tracked by this editor.

-*

-* @return the TableItem for the row of the cell being tracked by this editor

-*/

-public TableItem getItem () {

-	return item;

-}

-public void setItem (TableItem item) {	

-	this.item = item;

-}

-public void setEditor (Control editor) {

-	TableItem item = null;

-	if (table.getItemCount() > 0) {

-		item = table.getItem(0);

-	}

-	this.setEditor(editor, item, 0);

-}

-

-/**

-* Specify the Control that is to be displayed and the cell in the table that it is to be positioned above.

-*

-* <p>Note: The Control provided as the editor <b>must</b> be created with its parent being the Table control

-* specified in the TableEditor constructor.

-* 

-* @param editor the Control that is displayed above the cell being edited

-* @param item the TableItem for the row of the cell being tracked by this editor

-* @param column the zero based index of the column of the cell being tracked by this editor

-*/

-public void setEditor (Control editor, TableItem item, int column) {

-	setItem(item);

-	setColumn(column);

-	super.setEditor(editor);

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTree.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTree.java
deleted file mode 100755
index fe0fced..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTree.java
+++ /dev/null
@@ -1,761 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import java.util.Enumeration;

-import java.util.Vector;

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-/** 

- * A TableTree is a selectable user interface object

- * that displays a hierarchy of items, and issues

- * notification when an item is selected.

- * A TableTree may be single or multi select.

- * <p>

- * The item children that may be added to instances of this class

- * must be of type <code>TableTreeItem</code>.

- * </p><p>

- * Note that although this class is a subclass of <code>Composite</code>,

- * it does not make sense to add <code>Control</code> children to it,

- * or set a layout on it.

- * </p><p>

- * <dl>

- *	<dt><b>Styles:</b> <dd> SINGLE, MULTI, CHECK, FULL_SELECTION

- *	<dt><b>Events:</b> <dd> Selection, DefaultSelection, Collapse, Expand

- * </dl>

- */

-public class TableTree extends Composite {

-	Table table;

-	TableTreeItem[] items = EMPTY_ITEMS;

-	Image plusImage, minusImage, sizeImage;

-

-	/*

-	* TableTreeItems are not treated as children but rather as items.

-	* When the TableTree is disposed, all children are disposed because 

-	* TableTree inherits this behaviour from Composite.  The items

-	* must be disposed separately.  Because TableTree is not part of

-	* the org.eclipse.swt.widgets package, the method releaseWidget can 

-	* not be overriden (this is how items are disposed of in Table and Tree).

-	* Instead, the items are disposed of in response to the dispose event on the

-	* TableTree.  The "inDispose" flag is used to distinguish between disposing

-	* one TableTreeItem (e.g. when removing an entry from the TableTree) and 

-	* disposing the entire TableTree.

-	*/

-	boolean inDispose = false;

-	

-	static final TableTreeItem[] EMPTY_ITEMS = new TableTreeItem [0];	

-	static final String[] EMPTY_TEXTS = new String [0];	

-	static final Image[] EMPTY_IMAGES = new Image [0];	

-

-/**

- * Creates a new instance of the widget.

- *

- * @param parent a composite widget

- * @param style the bitwise OR'ing of widget styles

- */

-public TableTree(Composite parent, int style) {

-	super(parent, SWT.NONE);

-	table = new Table(this, style);

-	setBackground(table.getBackground());

-	setForeground(table.getForeground());

-	setFont(table.getFont());

-	Listener tableListener = new Listener() {

-		public void handleEvent(Event e) {

-			switch (e.type) {

-			case SWT.MouseDown: onMouseDown(e); break;

-			case SWT.Selection: onSelection(e); break;

-			case SWT.DefaultSelection: onSelection(e); break;

-			case SWT.KeyDown: onKeyDown(e); break;

-			}

-		}

-	};

-	int[] tableEvents = new int[]{SWT.MouseDown, 

-		                           SWT.Selection, 

-		                           SWT.DefaultSelection, 

-		                           SWT.KeyDown};

-	for (int i = 0; i < tableEvents.length; i++) {

-		table.addListener(tableEvents[i], tableListener);

-	}

-	

-	Listener listener = new Listener() {

-		public void handleEvent(Event e) {

-			switch (e.type) {

-			case SWT.Dispose: onDispose(e); break;

-			case SWT.Resize:  onResize(e); break;

-			case SWT.FocusIn: onFocusIn(e); break;

-			}

-		}

-	};

-	int[] events = new int[]{SWT.Dispose, 

-		                      SWT.Resize, 

-		                      SWT.FocusIn};

-	for (int i = 0; i < events.length; i++) {

-		addListener(events[i], listener);

-	}	                      

-}

-

-int addItem(TableTreeItem item, int index) {

-	if (index < 0 || index > items.length) throw new SWTError(SWT.ERROR_INVALID_ARGUMENT);

-	TableTreeItem[] newItems = new TableTreeItem[items.length + 1];

-	System.arraycopy(items, 0, newItems, 0, index);

-	newItems[index] = item;

-	System.arraycopy(items, index, newItems, index + 1, items.length - index); 

-	items = newItems;

-

-	/* Return the index in the table where this table should be inserted */

-	if (index == items.length - 1 ) 

-		return table.getItemCount();

-	else 

-		return table.indexOf(items[index+1].tableItem);

-}

-

-/**	 

- * Adds the listener to receive selection events.

- * <p>

- *

- * @param listener the selection listener

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- *	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- *	<li>ERROR_NULL_ARGUMENT when listener is null

- * </ul>

- */

-public void addSelectionListener(SelectionListener listener) {

-	if (listener == null) throw new SWTError (SWT.ERROR_NULL_ARGUMENT);

-	TypedListener typedListener = new TypedListener (listener);

-	addListener (SWT.Selection,typedListener);

-	addListener (SWT.DefaultSelection,typedListener);

-}

-

-/**	 

- * Adds the listener to receive tree events.

- * <p>

- *

- * @param listener the tree listener

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- *	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- *	<li>ERROR_NULL_ARGUMENT when listener is null

- * </ul>

- */

-public void addTreeListener(TreeListener listener) {

-	if (listener == null) throw new SWTError (SWT.ERROR_NULL_ARGUMENT);

-	TypedListener typedListener = new TypedListener (listener);

-	addListener (SWT.Expand, typedListener);

-	addListener (SWT.Collapse, typedListener);

-}  

-

-/**

- * Computes the preferred size of the widget.

- * <p>

- * Calculate the preferred size of the widget based

- * on the current contents. The hint arguments allow

- * a specific client area width and/or height to be

- * requested. The hints may be honored depending on

- * the platform and the layout.

- *

- * @param wHint the width hint (can be SWT.DEFAULT)

- * @param hHint the height hint (can be SWT.DEFAULT)

- * @return a point containing the preferred size of the widget including trim

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *	</ul>

- */

-public Point computeSize (int wHint, int hHint) {

-	return table.computeSize (wHint, hHint, true);

-}

-

-/**

- * Computes the widget trim.

- * <p>

- * Trim is widget specific and may include scroll

- * bars and menu bar in addition to other trimmings

- * that are outside of the widget's client area.

- *

- * @param x the x location of the client area

- * @param y the y location of the client area

- * @param width the width of the client area

- * @param height the height of the client area

- * @return a rectangle containing the trim of the widget.

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *	</ul>

- */

-public Rectangle computeTrim (int x, int y, int width, int height) {

-	return table.computeTrim(x, y, width, height);

-}

-

-/**

- * Deselects all items.

- * <p>

- * If an item is selected, it is deselected.

- * If an item is not selected, it remains unselected.

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- *	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- * </ul>

- */

-public void deselectAll () {

-	table.deselectAll();

-}

-

-/* Expand upward from the specified leaf item. */

-void expandItem (TableTreeItem item) {

-	if (item == null || item.getExpanded()) return;

-	expandItem(item.parentItem);

-	item.setExpanded(true);

-	Event event = new Event();

-	event.item = item;

-	notifyListeners(SWT.Expand, event);

-}

-

-/**

- * Gets the number of items.

- * <p>

- * @return the number of items in the widget

- */

-public int getItemCount () {

-	return items.length;

-}

-

-/**

- * Gets the height of one item.

- * <p>

- * This operation will fail if the height of

- * one item could not be queried from the OS.

- *

- * @return the height of one item in the widget

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- *	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- *	<li>ERROR_CANNOT_GET_ITEM_HEIGHT when the operation fails

- * </ul>

- */

-public int getItemHeight () {

-	return table.getItemHeight();

-}

-

-/**

- * Gets the items.

- * <p>

- * @return the items in the widget

- *

- */

-public TableTreeItem [] getItems () {

-	TableTreeItem[] newItems = new TableTreeItem[items.length];

-	System.arraycopy(items, 0, newItems, 0, items.length);

-	return newItems;

-}

-

-/**

- * Gets the selected items.

- * <p>

- * This operation will fail if the selected

- * items cannot be queried from the OS.

- *

- * @return the selected items in the widget

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- * 		<li>ERROR_CANNOT_GET_SELECTION when the operation fails</li>

- *	</ul>

- */

-public TableTreeItem [] getSelection () {

-	TableItem[] selection = table.getSelection();

-	TableTreeItem [] result = new TableTreeItem[selection.length];

-	for (int i = 0; i < selection.length; i++){

-		result[i] = (TableTreeItem) selection[i].getData();

-	}

-	return result;

-}

-

-/**

- * Gets the number of selected items.

- * <p>

- * This operation will fail if the number of selected

- * items cannot be queried from the OS.

- *

- * @return the number of selected items in the widget

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- * 		<li>ERROR_CANNOT_GET_COUNT when the operation fails</li>

- *	</ul>

- */

-public int getSelectionCount () {

-	return table.getSelectionCount();

-}

-

-/**

- * Returns the underlying Table control.

- *

- * @return the underlying Table control

- */

-public Table getTable () {

-	return table;

-}

-

-void createImages () {

-	

-	int itemHeight = sizeImage.getBounds().height;

-	// Calculate border around image. 

-	// At least 9 pixels are needed to draw the image

-	// Leave at least a 6 pixel border.

-	int indent = Math.min(6, (itemHeight - 9) / 2);

-	indent = Math.max(0, indent);

-	int size = Math.max (10, itemHeight - 2 * indent); 

-	size = ((size + 1) / 2) * 2; // size must be an even number

-	int midpoint = indent + size / 2;

-	

-	Color foreground = getForeground();

-	Color plusMinus = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);

-	Color background = getBackground();

-	

-	/* Plus image */

-	PaletteData palette = new PaletteData(new RGB[]{foreground.getRGB(), background.getRGB(), plusMinus.getRGB()});

-	ImageData imageData = new ImageData(itemHeight, itemHeight, 4, palette);

-	imageData.transparentPixel = 1;

-	plusImage = new Image(getDisplay(), imageData);

-	GC gc = new GC(plusImage);

-	gc.setBackground(background);

-	gc.fillRectangle(0, 0, itemHeight, itemHeight);

-	gc.setForeground(plusMinus);

-	gc.drawRectangle(indent, indent, size, size);

-	gc.setForeground(foreground);

-	gc.drawLine(midpoint, indent + 2, midpoint, indent + size - 2);

-	gc.drawLine(indent + 2, midpoint, indent + size - 2, midpoint);

-	gc.dispose();

-	

-	/* Minus image */

-	palette = new PaletteData(new RGB[]{foreground.getRGB(), background.getRGB(), plusMinus.getRGB()});

-	imageData = new ImageData(itemHeight, itemHeight, 4, palette);

-	imageData.transparentPixel = 1;

-	minusImage = new Image(getDisplay(), imageData);

-	gc = new GC(minusImage);

-	gc.setBackground(background);

-	gc.fillRectangle(0, 0, itemHeight, itemHeight);

-	gc.setForeground(plusMinus);

-	gc.drawRectangle(indent, indent, size, size);

-	gc.setForeground(foreground);

-	gc.drawLine(indent + 2, midpoint, indent + size - 2, midpoint);

-	gc.dispose();

-}

-

-Image getPlusImage() {

-	if (plusImage == null) createImages();

-	return plusImage;

-}

-

-Image getMinusImage() {

-	if (minusImage == null) createImages();

-	return minusImage;

-}

-

-/**

- * Gets the index of an item.

- * 

- * <p>The widget is searched starting at 0 until an

- * item is found that is equal to the search item.

- * If no item is found, -1 is returned.  Indexing

- * is zero based.  This index is relative to the parent only.

- *

- * @param item the search item

- * @return the index of the item or -1

- *

- */

-public int indexOf (TableTreeItem item) {

-	for (int i = 0; i < items.length; i++) {

-		if (item == items[i]) return i;

-	}

-	return -1;

-}

-

-void onDispose(Event e) {

-	inDispose = true;

-	for (int i = 0; i < items.length; i++) {

-		items[i].dispose();

-	}

-	inDispose = false;

-	if (plusImage != null) plusImage.dispose();

-	if (minusImage != null) minusImage.dispose();

-	if (sizeImage != null) sizeImage.dispose();

-	plusImage = minusImage = sizeImage = null;

-}

-

-void onResize(Event e) {

-	Rectangle area = getClientArea();

-	table.setBounds(0, 0, area.width, area.height);

-}

-

-void onSelection(Event e) {

-	Event event = new Event();

-	TableItem tableItem = (TableItem)e.item;

-    	TableTreeItem item = getItem(tableItem);

-    	event.item = item;

-

-	if (e.type == SWT.Selection 

-	    && e.detail == SWT.CHECK

-	    && item != null) {

-	    	event.detail = SWT.CHECK;

-		item.checked = tableItem.getChecked();

-	}

-	notifyListeners(e.type, event);

-}

-public TableTreeItem getItem(Point point) {

-	TableItem item = table.getItem(point);

-	if (item == null) return null;

-	return getItem(item);

-	

-}

-TableTreeItem getItem(TableItem tableItem) {

-	if (tableItem == null) return null;

-	for (int i = 0; i < items.length; i++) {

-	    	TableTreeItem item = items[i].getItem(tableItem);

-	    	if (item != null) return item;

-	}

-	return null;

-}

-void onFocusIn (Event e) {

-	table.setFocus();

-}

-

-void onKeyDown (Event e) {

-	TableTreeItem[] selection = getSelection();

-	if (selection.length == 0) return;

-	TableTreeItem item = selection[0];

-	int type = 0;

-	if (e.keyCode == SWT.ARROW_RIGHT || e.keyCode == SWT.ARROW_LEFT) {

-		if (e.keyCode == SWT.ARROW_RIGHT) {

-			if (item.getItemCount() == 0) return;

-			if (item.getExpanded()) {

-				TableTreeItem newSelection = item.getItems()[0];

-				table.setSelection(new TableItem[]{newSelection.tableItem});

-				showItem(newSelection);

-				type = SWT.Selection;

-			} else {

-				item.setExpanded(true);

-				type = SWT.Expand;

-			}

-		} else {

-			if (item.getExpanded()) {

-				item.setExpanded(false);

-				type = SWT.Collapse;

-			} else {

-				TableTreeItem parent = item.getParentItem();

-				if (parent != null) {

-					int index = parent.indexOf(item);

-					if (index != 0) return;

-					table.setSelection(new TableItem[]{parent.tableItem});

-					type = SWT.Selection;

-				}

-			}

-		}

-	}

-	if (e.character == '*') {

-		item.expandAll(true);

-	}

-	if (e.character == '-') {

-		if (item.getExpanded()) {

-			item.setExpanded(false);

-			type = SWT.Collapse;

-		}

-	}

-	if (e.character == '+') {

-		if (item.getItemCount() > 0 && !item.getExpanded()) {

-			item.setExpanded(true);

-			type = SWT.Expand;

-		}

-	} 

-	if (type == 0) return;

-	Event event = new Event();

-	notifyListeners(type, event);

-}

-void onMouseDown(Event event) {

-	/* If user clicked on the [+] or [-], expand or collapse the tree. */

-	TableItem[] items = table.getItems();

-	for (int i = 0; i < items.length; i++) {

-		Rectangle rect = items[i].getImageBounds(0);

-		if (rect.contains(event.x, event.y)) {

-			TableTreeItem item = (TableTreeItem) items[i].getData();

-			event = new Event();

-			event.item = item;

-			item.setExpanded(!item.getExpanded());

-			if (item.getExpanded()) {

-				notifyListeners(SWT.Expand, event);

-			} else {

-				notifyListeners(SWT.Collapse, event);

-			}

-			return;

-		}

-	}

-}

-

-/**

- * Removes all items.

- * <p>

- * This operation will fail when an item

- * could not be removed in the OS.

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- * 	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- * 	<li>ERROR_ITEM_NOT_REMOVED when the operation fails

- * </ul>

- */

-public void removeAll () {

-	setRedraw(false);

-	for (int i = items.length - 1; i >= 0; i--) {

-		items[i].dispose();

-	}

-	items = EMPTY_ITEMS;

-	setRedraw(true);

-}

-

-void removeItem(TableTreeItem item) {

-	int index = 0;

-	while (index < items.length && items[index] != item) index++;

-	if (index == items.length) return;

-	TableTreeItem[] newItems = new TableTreeItem[items.length - 1];

-	System.arraycopy(items, 0, newItems, 0, index);

-	System.arraycopy(items, index + 1, newItems, index, items.length - index - 1);

-	items = newItems;

-}

-

-/**	 

- * Removes the listener.

- * <p>

- *

- * @param listener the listener

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- * 	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- *	<li>ERROR_NULL_ARGUMENT when listener is null

- * </ul>

- */

-public void removeSelectionListener (SelectionListener listener) {

-	if (listener == null) throw new SWTError (SWT.ERROR_NULL_ARGUMENT);

-	removeListener(SWT.Selection, listener);

-	removeListener(SWT.DefaultSelection, listener);

-}

-

-/**	 

- * Removes the listener.

- *

- * @param listener the listener

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- *	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- *	<li>ERROR_NULL_ARGUMENT when listener is null

- * </ul>

- */

-public void removeTreeListener (TreeListener listener) {

-	if (listener == null) throw new SWTError (SWT.ERROR_NULL_ARGUMENT);

-	removeListener(SWT.Expand, listener);

-	removeListener(SWT.Collapse, listener);

-}

-

-/**

- * Selects all items.

- * <p>

- * If an item is not selected, it is selected.

- * If an item is selected, it remains selected.

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- *	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- * </ul>

- */

-public void selectAll () {

-	table.selectAll();

-}

-

-/**

- * Sets the widget background color.

- * <p>

- * When new color is null, the background reverts

- * to the default system color for the widget.

- *

- * @param color the new color (or null)

- * 

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *	</ul>

- */

-public void setBackground (Color color) {

-	super.setBackground(color);

-	table.setBackground(color);

-	if (sizeImage != null) {

-		GC gc = new GC (sizeImage);

-		gc.setBackground(getBackground());

-		Rectangle size = sizeImage.getBounds();

-		gc.fillRectangle(size);

-		gc.dispose();

-	}

-}

-

-/**

- * Sets the enabled state.

- * <p>

- * A disabled widget is typically not selectable from

- * the user interface and draws with an inactive or

- * grayed look.

- *

- * @param enabled the new enabled state

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *	</ul>

- */

-public void setEnabled (boolean enabled) {

-	super.setEnabled(enabled);

-	table.setEnabled(enabled);

-}

-

-/**

- * Sets the widget font.

- * <p>

- * When new font is null, the font reverts

- * to the default system font for the widget.

- *

- * @param font the new font (or null)

- * 

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *	</ul>

- */

-public void setFont (Font font) {

-	super.setFont(font);

-	table.setFont(font);

-}

-

-/**

- * Gets the widget foreground color.

- * <p>

- * @return the widget foreground color

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *	</ul>

- */

-public void setForeground (Color color) {

-	super.setForeground(color);

-	table.setForeground(color);

-}

-

-/**

- * Sets the pop up menu.

- * <p>

- * Every control has an optional pop up menu that is

- * displayed when the user requests a popup menu for

- * the control.  The sequence of key strokes/button

- * presses/button releases that is used to request

- * a pop up menu is platform specific.

- *

- * @param menu the new pop up menu

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *		<li>ERROR_MENU_NOT_POP_UP when the menu is not a POP_UP</li>

- *		<li>ERROR_NO_COMMON_PARENT when the menu is not in the same widget tree</li>

- *	</ul>

- */

-public void setMenu (Menu menu) {

-	super.setMenu(menu);

-	table.setMenu(menu);

-}

-

-/**

- * Sets the selection.

- * <p>

- * @param items new selection

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- *	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- *	<li>ERROR_NULL_ARGUMENT when items is null

- * </ul>

- */

-public void setSelection (TableTreeItem[] items) {

-	TableItem[] tableItems = new TableItem[items.length];

-	for (int i = 0; i < items.length; i++) {

-		if (items[i] == null) throw new SWTError(SWT.ERROR_NULL_ARGUMENT);

-		if (!items[i].getVisible()) expandItem (items[i]);

-		tableItems[i] = items[i].tableItem;

-	}

-	table.setSelection(tableItems);

-}

-

-/**

- * Sets the tool tip text.

- * <p>

- * @param string the new tool tip text (or null)

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *	</ul>

- */

-public void setToolTipText (String string) {

-	super.setToolTipText(string);

-	table.setToolTipText(string);

-}

-

-/**

- * Shows the item.

- * <p>

- * @param item the item to be shown

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- *	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- *	<li>ERROR_NULL_ARGUMENT when item is null

- * </ul>

- */

-public void showItem (TableTreeItem item) {

-	if (item == null) throw new SWTError (SWT.ERROR_NULL_ARGUMENT);

-	if (!item.getVisible()) expandItem (item);

-	TableItem tableItem = item.tableItem;

-	table.showItem(tableItem);

-}

-

-/**

- * Shows the selection.

- * <p>

- * If there is no selection or the selection

- * is already visible, this method does nothing.

- * If the selection is scrolled out of view,

- * the top index of the widget is changed such

- * that selection becomes visible.

- *

- * @exception SWTError <ul>

- *	<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread

- *	<li>ERROR_WIDGET_DISPOSED when the widget has been disposed

- * </ul>

- */

-public void showSelection () {

-	table.showSelection();

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTreeEditor.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTreeEditor.java
deleted file mode 100755
index 0819ce0..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTreeEditor.java
+++ /dev/null
@@ -1,226 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.events.*;

-/**

-*

-* A TableTreeEditor is a manager for a Control that appears above a cell in a TableTree

-* and tracks with the moving and resizing of that cell.  It can be used to display a

-* text widget above a cell in a TableTree so that the user can edit the contents of 

-* that cell.  It can also be used to display a button that can launch a dialog for 

-* modifying the contents of the associated cell.

-*

-* <p> Here is an example of using a TableTreeEditor:

-* <code><pre>

-* public static void main (String [] args) {

-* 	Display display = new Display ();

-* 	Shell shell = new Shell (display);

-* 	final TableTree tableTree = new TableTree(shell, SWT.FULL_SELECTION);

-* 	Table table = tableTree.getTable();

-* 	table.setLinesVisible(true);

-* 	TableColumn column1 = new TableColumn(table, SWT.NONE);

-* 	column1.setText("column 1");

-* 	TableColumn column2 = new TableColumn(table, SWT.NONE);

-* 	column2.setText("column 2");

-* 	for (int i = 0; i < 40; i++) {

-* 		TableTreeItem item = new TableTreeItem(tableTree, SWT.NONE);

-* 		item.setText(0, "table tree item"+i);

-* 		item.setText(1, "value "+i);

-* 	}

-* 	column1.pack();

-* 	column2.pack();

-* 	final TableTreeEditor editor = new TableTreeEditor (tableTree);

-* 	tableTree.addSelectionListener (new SelectionAdapter() {

-* 		public void widgetSelected(SelectionEvent e) {

-* 			// Clean up any previous editor control

-* 			Control oldEditor = editor.getEditor();

-* 			if (oldEditor != null)

-* 				oldEditor.dispose();	

-* 			// Identify the selected row

-* 			TableTreeItem[] selection = tableTree.getSelection();

-* 			if (selection.length == 0) return;

-* 			TableTreeItem item = selection[0];

-* 			// The control that will be the editor must be a child of the Table

-* 			// that underlies the TableTree

-* 			Text text = new Text(tableTree.getTable(), SWT.NONE);

-* 			//text.moveAbove(tableTree);

-* 			//The text editor must have the same size as the cell and must

-* 			//not be any smaller than 50 pixels.

-* 			editor.horizontalAlignment = SWT.LEFT;

-* 			editor.grabHorizontal = true;

-* 			//editor.minimumWidth = 50;

-* 			// Open the text editor in the second column of the selected row.

-* 			editor.setEditor (text, item, 1);

-* 			// Assign focus to the text control

-* 			text.setFocus ();

-* 		}

-* 	});

-* 	tableTree.setBounds(10, 10, 200, 400);

-* 	shell.open ();

-* 	while (!shell.isDisposed ()) {

-* 		if (!display.readAndDispatch ()) display.sleep ();

-* 	}

-* 	display.dispose ();

-* }

-* </pre></code>

-*/

-public class TableTreeEditor extends ControlEditor {

-

-	TableTree tableTree;

-	TableTreeItem item;

-	int column = -1;

-	ControlListener columnListener;

-	TreeListener treeListener;

-/**

-* Creates a TableEditor for the specified Table.

-*

-* @param table the Table Control above which this editor will be displayed

-*

-*/

-public TableTreeEditor (TableTree tableTree) {

-	super(tableTree.getTable());

-	this.tableTree = tableTree;

-

-	treeListener = new TreeListener () {

-		final Runnable runnable = new Runnable() {

-			public void run() {

-				if (TableTreeEditor.this.tableTree.isDisposed() || editor == null) return;

-				resize();

-				editor.setVisible(true);

-			}

-		};

-		public void treeCollapsed(TreeEvent e) {

-			if (editor == null) return;

-			editor.setVisible(false);

-			Display display = TableTreeEditor.this.tableTree.getDisplay();

-			display.asyncExec(runnable);

-		}

-		public void treeExpanded(TreeEvent e) {

-			if (editor == null) return;

-			editor.setVisible(false);

-			Display display = TableTreeEditor.this.tableTree.getDisplay();

-			display.asyncExec(runnable);

-		}

-	};

-	tableTree.addTreeListener(treeListener);

-	

-	columnListener = new ControlListener() {

-		public void controlMoved(ControlEvent e){

-			resize ();

-		}

-		public void controlResized(ControlEvent e){

-			resize ();

-		}

-	};

-

-}

-Rectangle computeBounds () {

-	if (item == null || column == -1 || item.isDisposed() || item.tableItem == null) return new Rectangle(0, 0, 0, 0);

-	Rectangle cell = item.getBounds(column);

-	Rectangle editorRect = new Rectangle(cell.x, cell.y, minimumWidth, cell.height);

-	Rectangle area = tableTree.getClientArea();

-	if (cell.x < area.x + area.width) {

-		if (cell.x + cell.width > area.x + area.width) {

-			cell.width = area.width - cell.x;

-		}

-	}

-	

-	if (grabHorizontal){

-		editorRect.width = Math.max(cell.width, minimumWidth);

-	}

-	

-	if (horizontalAlignment == SWT.RIGHT) {

-		editorRect.x += cell.width - editorRect.width;

-	} else if (horizontalAlignment == SWT.LEFT) {

-		// do nothing - cell.x is the right answer

-	} else { // default is CENTER

-		editorRect.x += (cell.width - editorRect.width)/2;

-	}

-	

-	return editorRect;

-}

-/**

- * Removes all associations between the TableEditor and the cell in the table.  The

- * Table and the editor Control are <b>not</b> disposed.

- */

-public void dispose () {

-

-	if (treeListener != null) 

-		tableTree.removeTreeListener(treeListener);

-	treeListener = null;	

-	Table table = tableTree.getTable();

-	if (this.column > -1 && this.column < table.getColumnCount()){

-		TableColumn tableColumn = table.getColumn(this.column);

-		tableColumn.removeControlListener(columnListener);

-	}

-

-	tableTree = null;

-	item = null;

-	column = -1;

-	

-	super.dispose();

-}

-/**

-* Returns the zero based index of the column of the cell being tracked by this editor.

-*

-* @return the zero based index of the column of the cell being tracked by this editor

-*/

-public int getColumn () {

-	return column;

-}

-public void setColumn(int column) {

-	Table table = tableTree.getTable();

-	if (this.column > -1 && this.column < table.getColumnCount()){

-		TableColumn tableColumn = table.getColumn(this.column);

-		tableColumn.removeControlListener(columnListener);

-		this.column = -1;

-	}

-

-	if (column < 0  || column >= table.getColumnCount()) return;	

-		

-	this.column = column;

-	TableColumn tableColumn = table.getColumn(this.column);

-	tableColumn.addControlListener(columnListener);

-}

-/**

-* Returns the TableItem for the row of the cell being tracked by this editor.

-*

-* @return the TableItem for the row of the cell being tracked by this editor

-*/

-public TableTreeItem getItem () {

-	return item;

-}

-public void setItem (TableTreeItem item) {	

-	this.item = item;

-}

-public void setEditor (Control editor) {

-	TableTreeItem item = null;

-	if (tableTree.getItemCount() > 0) {

-		item = tableTree.getItems()[0];

-	}

-	this.setEditor(editor, item, 0);

-}

-

-/**

-* Specify the Control that is to be displayed and the cell in the table that it is to be positioned above.

-*

-* <p>Note: The Control provided as the editor <b>must</b> be created with its parent being the Table control

-* specified in the TableEditor constructor.

-* 

-* @param editor the Control that is displayed above the cell being edited

-* @param item the TableItem for the row of the cell being tracked by this editor

-* @param column the zero based index of the column of the cell being tracked by this editor

-*/

-public void setEditor (Control editor, TableTreeItem item, int column) {

-	setItem(item);

-	setColumn(column);

-	super.setEditor(editor);

-}

-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTreeItem.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTreeItem.java
deleted file mode 100755
index 0cffbc1..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TableTreeItem.java
+++ /dev/null
@@ -1,568 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-/**

- * A TableTreeItem is a selectable user interface object

- * that represents an item in a heirarchy of items in a

- * TableTree.

- */

-public class TableTreeItem extends Item {

-	TableItem tableItem;

-	TableTree parent;

-	TableTreeItem parentItem;

-	TableTreeItem [] items = TableTree.EMPTY_ITEMS;

-	String[] texts = TableTree.EMPTY_TEXTS;

-	Image[] images = TableTree.EMPTY_IMAGES;

-	boolean expanded;

-	boolean checked;

-

-/**

- * Create a new instance of a root item.

- *

- * @param parent the TableTree that contains this root item

- * @param style the bitwise OR'ing of widget styles

- */

-public TableTreeItem(TableTree parent, int style) {

-	this (parent, style, parent.getItemCount());

-}

-

-/**

- * Create a new instance of a root item in the position

- * indicated by the specified index.

- *

- * @param parent the TableTree that contains this root item

- * @param style the bitwise OR'ing of widget styles

- * @param index specifies the position of this item in the TableTree

- * 	relative to other root items

- */

-public TableTreeItem(TableTree parent, int style, int index) {

-	this (parent, null, style, index);

-}

-

-/**

- * Create a new instance of a sub item.

- *

- * @param parent this item's parent in the hierarchy of TableTree items

- * @param style the bitwise OR'ing of widget styles

- */

-public TableTreeItem(TableTreeItem parent, int style) {

-	this (parent, style, parent.getItemCount());

-}

-

-/**

- * Create a new instance of a sub item in the position

- * indicated by the specified index.

- *

- * @param parent this item's parent in the hierarchy of TableTree items

- * @param style the bitwise OR'ing of widget styles

- * @param index specifies the position of this item in the TableTree

- * 	relative to other children of the same parent

- */

-public TableTreeItem(TableTreeItem parent, int style, int index) {

-	this (parent.getParent(), parent, style, index);

-}

-

-TableTreeItem(TableTree parent, TableTreeItem parentItem, int style, int index) {

-	super(parent, style);

-	this.parent = parent;

-	this.parentItem = parentItem;

-	if (parentItem == null) {

-		

-		/* Root items are visible immediately */

-		int tableIndex = parent.addItem(this, index);

-		tableItem = new TableItem(parent.getTable(), style, tableIndex);

-		tableItem.setData(this);

-		addCheck();

-		/*

-		* Feature in the Table.  The table uses the first image that

-		* is inserted into the table to size the table rows.  If the

-		* user is allowed to insert the first image, this will cause

-		* the +/- images to be scaled.  The fix is to insert a dummy

-		* image to force the size.

-		*/

-		if (parent.sizeImage == null) {

-			int itemHeight = parent.getItemHeight();

-			parent.sizeImage = new Image(null, itemHeight, itemHeight);

-			GC gc = new GC (parent.sizeImage);

-			gc.setBackground(parent.getBackground());

-			gc.fillRectangle(0, 0, itemHeight, itemHeight);

-			gc.dispose();

-			tableItem.setImage(0, parent.sizeImage);

-		}

-	} else {

-		parentItem.addItem(this, index);

-	}

-}

-void addCheck() {

-	Table table = parent.getTable();

-	if ((table.getStyle() & SWT.CHECK) == 0) return;

-	tableItem.setChecked(checked);

-}

-void addItem(TableTreeItem item, int index) {

-	if (item == null) throw new SWTError(SWT.ERROR_NULL_ARGUMENT);

-	if (index < 0 || index > items.length) throw new SWTError(SWT.ERROR_INVALID_ARGUMENT);

-		

-	/* Now that item has a sub-node it must indicate that it can be expanded */

-	if (items.length == 0 && index == 0) {

-		if (tableItem != null) {

-			Image image = expanded ? parent.getMinusImage() : parent.getPlusImage();

-			tableItem.setImage(0, image);

-		}

-	}

-	

-	/* Put the item in the items list */

-	TableTreeItem[] newItems = new TableTreeItem[items.length + 1];

-	System.arraycopy(items, 0, newItems, 0, index);

-	newItems[index] = item;

-	System.arraycopy(items, index, newItems, index + 1, items.length - index);

-	items = newItems;

-	if (expanded) item.setVisible(true);

-}

-

-/**

- * Gets the widget bounds at the specified index.

- * <p>

- * @return the widget bounds at the specified index

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li> 

- *	</ul>

- */

-public Rectangle getBounds (int index) {

-	if (tableItem != null) {

-		return tableItem.getBounds(index);

-	} else {

-		return new Rectangle(0, 0, 0, 0);

-	}

-}

-/**

-* Gets the checked state.

-* <p>

-* @return the item checked state.

-*

-* @exception SWTError <ul>

-*		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

-*		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

-*	</ul>

-*/

-public boolean getChecked () {

-	if (tableItem == null) {

-		return checked;

-	}

-	return tableItem.getChecked();

-}

-

-/**

- * Gets the Display.

- * <p>

- * This method gets the Display that is associated

- * with the widget.

- *

- * @return the widget data

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *	</ul>

- */

-public Display getDisplay () {

-	TableTree parent = this.parent;

-	if (parent == null) throw new SWTError (SWT.ERROR_WIDGET_DISPOSED);

-	return parent.getDisplay ();

-}

-

-/**

- * Gets the expanded state of the widget.

- * <p>

- * @return a boolean that is the expanded state of the widget

- */

-public boolean getExpanded () {

-	return expanded;

-}

-

-/**

- * Gets the first image.

- * <p>

- * The image in column 0 is reserved for the [+] and [-]

- * images of the tree, therefore getImage(0) will return null.

- *

- * @return the image at index 0

- */

-public Image getImage () {

-	return getImage(0);

-}

-

-/**

- * Gets the image at the specified index.

- * <p>

- * Indexing is zero based. The image can be null.

- * The image in column 0 is reserved for the [+] and [-]

- * images of the tree, therefore getImage(0) will return null.

- * Return null if the index is out of range.

- *

- * @param index the index of the image

- * @return the image at the specified index or null

- */

-public Image getImage (int index) {

-	if (0 < index && index < images.length) return images[index];

-	return null;

-}

-

-int getIndent() {

-	if (parentItem == null) return 0;

-	return parentItem.getIndent() + 1;

-}

-

-/**

- * Gets the number of sub items.

- * <p>

- * @return the number of sub items

- */

-public int getItemCount () {

-	return items.length;

-}

-

-/**

- * Gets the sub items.

- * <p>

- * @return the sub items

- */

-public TableTreeItem[] getItems () {

-	TableTreeItem[] newItems = new TableTreeItem[items.length];

-	System.arraycopy(items, 0, newItems, 0, items.length);

-	return newItems;

-}

-

-TableTreeItem getItem(TableItem tableItem) {

-	if (tableItem == null) return null;

-	if (this.tableItem == tableItem) return this;

-	for (int i = 0; i < items.length; i++) {

-		TableTreeItem item =  items[i].getItem(tableItem);

-	    	if (item != null) return item;

-	}

-	return null;

-}

-

-/**

- * Gets the parent.

- * <p>

- * @return the parent

- */

-public TableTree getParent () {

-	return parent;

-}

-

-/**

- * Gets the parent item.

- * <p>

- * @return the parent item.

- */

-public TableTreeItem getParentItem () {

-	return parentItem;

-}

-

-/**

- * Gets the first item text.

- * <p>

- * @return the item text at index 0, which can be null

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- * 		<li>ERROR_CANNOT_GET_TEXT when the operation fails</li>

- *	</ul>

- */

-public String getText () {

-	return getText(0);

-}

-

-/**

- * Gets the item text at the specified index.

- * <p>

- * Indexing is zero based.

- *

- * This operation will fail when the index is out

- * of range or an item could not be queried from

- * the OS.

- *

- * @param index the index of the item

- * @return the item text at the specified index, which can be null

- */

-public String getText(int index) {

-	if (0 <= index && index < texts.length) return texts[index];

-	return null;

-}

-

-boolean getVisible () {

-	return tableItem != null;

-}

-

-/**

- * Gets the index of the specified item.

- * 

- * <p>The widget is searched starting at 0 until an

- * item is found that is equal to the search item.

- * If no item is found, -1 is returned.  Indexing

- * is zero based.  This index is relative to the parent only.

- *

- * @param item the search item

- * @return the index of the item or -1 if the item is not found

- *

- */

-public int indexOf (TableTreeItem item) {	

-	for (int i = 0; i < items.length; i++) {

-		if (items[i] == item) return i;

-	}

-	return -1;

-}

-

-void expandAll(boolean notify) {

-	if (items.length == 0) return;

-	if (!expanded) {

-		setExpanded(true);

-		if (notify) notifyListeners(SWT.Expand, new Event());

-		for (int i = 0; i < items.length; i++) {

-			items[i].expandAll(notify);

-		}

-	}

-}

-int expandedIndexOf (TableTreeItem item) {	

-	int index = 0;

-	for (int i = 0; i < items.length; i++) {

-		if (items[i] == item) return index;

-		if (items[i].expanded) index += items[i].visibleChildrenCount ();

-		index++;

-	}

-	return -1;

-}

-

-int visibleChildrenCount () {

-	int count = 0;

-	for (int i = 0; i < items.length; i++) {

-		if (items[i].getVisible ()) {

-			count += 1 + items[i].visibleChildrenCount ();

-		}

-	}

-	return count;

-}

-

-public void dispose () {

-	if (isDisposed()) return;

-	for (int i = items.length - 1; i >= 0; i--) {

-		items[i].dispose();

-	}

-	super.dispose();

-	if (!parent.inDispose) {

-		if (parentItem != null) {

-			parentItem.removeItem(this);

-		} else {

-			parent.removeItem(this);

-		}

-		if (tableItem != null) tableItem.dispose();

-	}

-	items = null;

-	parentItem = null;

-	parent = null;

-	images = null;

-	texts = null;

-	tableItem = null;	

-}

-

-void removeItem(TableTreeItem item) {

-	int index = 0;

-	while (index < items.length && items[index] != item) index++;

-	if (index == items.length) return;

-	TableTreeItem[] newItems = new TableTreeItem[items.length - 1];

-	System.arraycopy(items, 0, newItems, 0, index);

-	System.arraycopy(items, index + 1, newItems, index, items.length - index - 1);

-	items = newItems;

-	if (items.length == 0) {

-		if (tableItem != null) tableItem.setImage(0, null);

-	}

-}

-

-/**

-* Sets the checked state.

-* <p>

-* @param checked the new checked state.

-*

-* @exception SWTError <ul>

-*		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

-*		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

-*	</ul>

-*/

-public void setChecked (boolean checked) {

-	if (tableItem != null) {

-		tableItem.setChecked(checked);

-	}

-	this.checked = checked;

-}

-/**

- * Sets the expanded state.

- * <p>

- * @param expanded the new expanded state.

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *	</ul>

- */

-public void setExpanded (boolean expanded) {

-	if (items.length == 0) return;

-	this.expanded = expanded;

-	if (tableItem == null) return;

-	parent.setRedraw(false);

-	for (int i = 0; i < items.length; i++) {

-		items[i].setVisible(expanded);

-	}

-	Image image = expanded ? parent.getMinusImage() : parent.getPlusImage();

-	tableItem.setImage(0, image);

-	parent.setRedraw(true);

-}

-

-/**

- * Sets the image at an index.

- * <p>

- * The image can be null.

- * The image in column 0 is reserved for the [+] and [-]

- * images of the tree, therefore do nothing if index is 0.

- *

- * @param image the new image or null

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *	</ul>

- */

-public void setImage (int index, Image image) {

-	int columnCount = Math.max(parent.getTable().getColumnCount(), 1);

-	if (index <= 0 || index >= columnCount) return;

-	if (images.length < columnCount) {

-		Image[] newImages = new Image[columnCount];

-		System.arraycopy(images, 0, newImages, 0, images.length);

-		images = newImages;

-	}

-	images[index] = image;

-	if (tableItem != null) tableItem.setImage(index, image);

-}

-

-/**

- * Sets the first image.

- * <p>

- * The image can be null.

- * The image in column 0 is reserved for the [+] and [-]

- * images of the tree, therefore do nothing.

- *

- * @param image the new image or null

- */

-public void setImage (Image image) {

-	setImage(0, image);

-}

-

-/**

- * Sets the widget text.

- * <p>

- *

- * The widget text for an item is the label of the

- * item or the label of the text specified by a column

- * number.

- *

- * @param index the column number

- * @param text the new text

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *		<li>ERROR_NULL_ARGUMENT when string is null</li>

- *	</ul>

- */

-public void setText(int index, String text) {

-	int columnCount = Math.max(parent.getTable().getColumnCount(), 1);

-	if (index < 0 || index >= columnCount) return;

-	if (texts.length < columnCount) {

-		String[] newTexts = new String[columnCount];

-		System.arraycopy(texts, 0, newTexts, 0, texts.length);

-		texts = newTexts;

-	}

-	texts[index] = text;

-	if (tableItem != null) tableItem.setText(index, text);

-}

-

-/**

- * Sets the widget text.

- * <p>

- *

- * The widget text for an item is the label of the

- * item or the label of the text specified by a column

- * number.

- *

- * @param index the column number

- * @param text the new text

- *

- * @exception SWTError <ul>

- *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>

- *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>

- *		<li>ERROR_NULL_ARGUMENT when string is null</li>

- *	</ul>

- */

-public void setText (String string) {

-	setText(0, string);

-}

-

-void setVisible (boolean show) {

-	if (parentItem == null) return; // this is a root and can not be toggled between visible and hidden

-	if (getVisible() == show) return;

-

-	if (show) {

-		if (!parentItem.getVisible()) return; // parentItem must already be visible

-		// create underlying table item and set data in table item to stored data

-		Table table = parent.getTable();

-		int parentIndex = table.indexOf(parentItem.tableItem);

-		int index = parentItem.expandedIndexOf(this) + parentIndex + 1;

-		if (index < 0) return;

-		tableItem = new TableItem(table, getStyle(), index);

-		tableItem.setData(this);

-		tableItem.setImageIndent(getIndent());

-		addCheck();

-

-		// restore fields to item

-		// ignore any images in the first column

-		int columnCount = Math.max(table.getColumnCount(), 1);

-		for (int i = 0; i < columnCount; i++) {

-			if (i < texts.length && texts[i] != null) setText(i, texts[i]);

-			if (i < images.length && images[i] != null) setImage(i, images[i]);

-		}

-

-		// display the children and the appropriate [+]/[-] symbol as required

-		if (items.length != 0) {

-			if (expanded) {

-				tableItem.setImage(0, parent.getMinusImage());

-				for (int i = 0, length = items.length; i < length; i++) {

-					items[i].setVisible(true);

-				}

-			} else {

-				tableItem.setImage(0, parent.getPlusImage());

-			}

-		}

-		

-	} else {

-

-		for (int i = 0, length = items.length; i < length; i++) {

-			items[i].setVisible(false);

-		}

-		// remove row from table

-		tableItem.dispose();

-		tableItem = null;

-	}

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangeListener.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangeListener.java
deleted file mode 100755
index 29bbf04..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangeListener.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.internal.SWTEventListener;

-

-/**

- * The StyledText widget implements this listener to receive

- * notifications when changes to the model occur.

- * It is not intended for use by users of the StyledText widget

- * or implementors of StyledTextContent. Users should listen to

- * the ModifyEvent or ExtendedModifyEvent that is sent by the StyledText 

- * widget to receive text change notifications.

- */

-public interface TextChangeListener extends SWTEventListener {

-

-/**

- * @param event.start replace start offset (input)	

- * @param event.newText text that is going to be inserted or empty String

- *	if no text will be inserted (input)

- * @param event.replaceCharCount length of text that is going to be 

- *	replaced (input) 

- * @param event.newCharCount length of text that is going to be inserted

- *	(input)

- * @param event.replaceLineCount number of lines that are going to be 

- *	replaced (input)

- * @param event.newLineCount number of new lines that are going to be 

- *	inserted (input)

- */

-public void textChanging(TextChangingEvent event);

-

-/**

- */

-public void textChanged(TextChangedEvent event);

-

-/**

- */

-public void textSet(TextChangedEvent event);

-}

-

-

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangedEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangedEvent.java
deleted file mode 100755
index 5a7648c..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangedEvent.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.*;

-

-/**

- * This event is sent by the StyledTextContent implementor when a change to 

- * the text occurs.

- */

-public class TextChangedEvent extends TypedEvent {

-/**

- * Create the TextChangedEvent to be used by the StyledTextContent implementor.

- * <p>

- *

- * @param source the object that will be sending the TextChangedEvent, cannot be null	

- */

-public TextChangedEvent(StyledTextContent source) {

-	super(source);

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangingEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangingEvent.java
deleted file mode 100755
index b334ead..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TextChangingEvent.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.*;

-

-/**

- * This event is sent by the StyledTextContent implementor when a change to 

- * the text is about to occur.

- */

-public class TextChangingEvent extends TypedEvent {

-	public int start;				// replace start offset

-	public String newText;			// text that is going to be inserted or empty

-							// String if no text will be inserted

-	public int replaceCharCount; 		// length of text that is going to be replaced

-	public int newCharCount; 		// length of text that is going to be inserted

-	public int replaceLineCount;		// number of lines that are going to be replaced

-	public int newLineCount; 		// number of new lines that are going to be inserted

-

-/**

- * Create the TextChangedEvent to be used by the StyledTextContent implementor.

- * <p>

- *

- * @param source the object that will be sending the TextChangedEvent, cannot be null	

- */

-public TextChangingEvent(StyledTextContent source) {

-	super(source);

-}

-TextChangingEvent(StyledTextContent source, StyledTextEvent e) {

-	super(source);

-	start = e.start;

-	replaceCharCount = e.replaceCharCount;

-	newCharCount = e.newCharCount;

-	replaceLineCount = e.replaceLineCount;

-	newLineCount = e.newLineCount;

-	newText = e.text;

-}

-

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TreeEditor.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TreeEditor.java
deleted file mode 100755
index a828282..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/TreeEditor.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.events.*;

-

-/**

-*

-* A TreeEditor is a manager for a Control that appears above a cell in a Tree and tracks with the

-* moving and resizing of that cell.  It can be used to display a text widget above a cell

-* in a Tree so that the user can edit the contents of that cell.  It can also be used to display

-* a button that can launch a dialog for modifying the contents of the associated cell.

-*

-* <p> Here is an example of using a TreeEditor:

-* <code><pre>

-* final Tree tree = new Tree(parent, SWT.FULL_SELECTION);

-* final TreeEditor editor = new TreeEditor (tree);

-* tree.addSelectionListener (new SelectionAdapter() {

-*	public void widgetSelected(SelectionEvent e) {

-*

-*		// Clean up any previous editor control

-*		Control oldEditor = editor.getEditor();

-*		if (oldEditor != null)

-*			oldEditor.dispose();	

-*

-*		// Identify the selected row

-*		TreeItem item = (TreeItem)e.item;

-*

-*		// The control that will be the editor must be a child of the Tree

-*		Text text = new Text(tree, SWT.NONE);

-*

-*		//The text editor must have the same size as the cell and must

-*		//not be any smaller than 50 pixels.

-*		editor.horizontalAlignment = SWT.LEFT;

-*		editor.grabHorizontal = true;

-*		editor.minimumWidth = 50;

-*

-*		// Open the text editor on the selected row.

-*		editor.setEditor (text, item);

-*

-*		// Assign focus to the text control

-*		text.setFocus ();

-*	}

-* });

-* </pre></code>

-*/

-public class TreeEditor extends ControlEditor {	

-	Tree tree;

-	TreeItem item;

-	TreeListener treeListener;

-/**

-* Creates a TreeEditor for the specified Tree.

-*

-* @param tree the Tree Control above which this editor will be displayed

-*

-*/

-public TreeEditor (Tree tree) {

-	super(tree);

-	this.tree = tree;

-	treeListener = new TreeAdapter () {

-		final Runnable runnable = new Runnable() {

-			public void run() {

-				if (TreeEditor.this.tree.isDisposed() || editor == null) return;

-				resize();

-				editor.setVisible(true);

-			}

-		};

-		public void treeCollapsed(TreeEvent e) {

-			if (editor == null) return;

-			editor.setVisible(false);

-			Display display = TreeEditor.this.tree.getDisplay();

-			display.asyncExec(runnable);

-		}

-		public void treeExpanded(TreeEvent e) {

-			if (editor == null) return;

-			editor.setVisible(false);

-			Display display = TreeEditor.this.tree.getDisplay();

-			display.asyncExec(runnable);

-		}

-	};

-	tree.addTreeListener(treeListener);

-}

-Rectangle computeBounds () {

-	if (item == null || item.isDisposed()) return new Rectangle(0, 0, 0, 0);

-	

-	Rectangle cell = item.getBounds();

-	Rectangle area = tree.getClientArea();

-	if (cell.x < area.x + area.width) {

-		if (cell.x + cell.width > area.x + area.width) {

-			cell.width = area.x + area.width - cell.x;

-		}

-	}

-	Rectangle editorRect = new Rectangle(cell.x, cell.y, minimumWidth, cell.height);

-	

-	if (grabHorizontal) {

-		editorRect.width = Math.max(area.x + area.width - cell.x, minimumWidth);

-	}

-	

-	if (horizontalAlignment == SWT.RIGHT) {

-		editorRect.x = Math.max(cell.x, cell.x + cell.width - editorRect.width);

-	} else if (horizontalAlignment == SWT.LEFT) {

-		// do nothing - cell.x is the right answer

-	} else { // default is CENTER

-		editorRect.x = Math.max(cell.x, cell.x + (cell.width - editorRect.width)/2);

-	}

-	

-	return editorRect;

-}

-/**

- * Removes all associations between the TreeEditor and the cell in the tree.  The

- * tree and the editor Control are <b>not</b> disposed.

- */

-public void dispose () {

-	if (treeListener != null) 

-		tree.removeTreeListener(treeListener);

-	treeListener = null;

-	tree = null;

-	item = null;

-	super.dispose();

-}

-/**

-* Returns the TreeItem for the row of the cell being tracked by this editor.

-*

-* @return the TreeItem for the row of the cell being tracked by this editor

-*/

-public TreeItem getItem () {

-	return item;

-}

-public void setItem (TreeItem item) {

-	this.item = item;

-}

-

-/**

-* Specify the Control that is to be displayed and the cell in the tree that it is to be positioned above.

-*

-* <p>Note: The Control provided as the editor <b>must</b> be created with its parent being the Tree control

-* specified in the TreeEditor constructor.

-* 

-* @param editor the Control that is displayed above the cell being edited

-* @param item the TreeItem for the row of the cell being tracked by this editor

-* @param column the zero based index of the column of the cell being tracked by this editor

-*/

-public void setEditor (Control editor, TreeItem item) {

-	setItem (item);

-	super.setEditor (editor);

-}

-public void setEditor (Control editor) {

-	TreeItem item = null;

-	if (tree.getItemCount() != 0) {

-		item = tree.getItems()[0];

-	}

-	this.setEditor(editor, item);

-}

-

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/VerifyKeyListener.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/VerifyKeyListener.java
deleted file mode 100755
index 3d44eb5..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/VerifyKeyListener.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.internal.SWTEventListener;

-

-public interface VerifyKeyListener extends SWTEventListener {

-/**

- * @param event.character the character that was typed (input)	

- * @param event.keyCode the key code that was typed (input)

- * @param event.stateMask the state of the keyboard (input)

- * @param event.doit processed or not (output)

- */

-public void verifyKey (VerifyEvent event);

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ViewForm.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ViewForm.java
deleted file mode 100755
index 6529b01..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/ViewForm.java
+++ /dev/null
@@ -1,491 +0,0 @@
-package org.eclipse.swt.custom;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-

-public class ViewForm extends Composite {

-

-	/**

-	 * marginWidth specifies the number of pixels of horizontal margin

-	 * that will be placed along the left and right edges of the form.

-	 *

-	 * The default value is 0.

-	 */

- 	public int marginWidth = 0;

-	/**

-	 * marginHeight specifies the number of pixels of vertical margin

-	 * that will be placed along the top and bottom edges of the form.

-	 *

-	 * The default value is 0.

-	 */

- 	public int marginHeight = 0;

-	

-	/**

-	 * Color of innermost line of drop shadow border.

-	 */

-	public static RGB borderInsideRGB  = new RGB (132, 130, 132);

-	/**

-	 * Color of middle line of drop shadow border.

-	 */

-	public static RGB borderMiddleRGB  = new RGB (143, 141, 138);

-	/**

-	 * Color of outermost line of drop shadow border.

-	 */

-	public static RGB borderOutsideRGB = new RGB (171, 168, 165);

-	

-	// SWT widgets

-	private Control topLeft;

-	private Control topCenter;

-	private Control topRight;

-	private Control content;

-	

-	// Configuration and state info

-	private boolean separateTopCenter = false;

-	private int drawLine1 = -1;

-	private int drawLine2 = -1;

-	

-	private boolean showBorder = false;

-	

-	private int BORDER_TOP = 0;

-	private int BORDER_BOTTOM = 0;

-	private int BORDER_LEFT = 0;

-	private int BORDER_RIGHT = 0;

-	

-	private Color borderColor1;

-	private Color borderColor2;

-	private Color borderColor3;

-	

-	private Rectangle oldArea;

-	private static final int OFFSCREEN = -200;

-/**

-* Creates a ViewForm.

-* <p>

-*	This method creates a child widget using style bits

-* to select a particular look or set of properties. 

-*

-* @param parent	a composite widget (cannot be null)

-* @param style	the bitwise OR'ing of widget styles

-*

-* @exception SWTError <ul>

-*		<li> ERROR_THREAD_INVALID_ACCESS when called from the wrong thread </li>

-* 		<li> ERROR_ERROR_NULL_ARGUMENT when the parent is null </li>

-*	</ul>

-*/			

-public ViewForm(Composite parent, int style) {

-	super(parent, checkStyle(style));

-	

-	borderColor1 = new Color(getDisplay(), borderInsideRGB);

-	borderColor2 = new Color(getDisplay(), borderMiddleRGB);

-	borderColor3 = new Color(getDisplay(), borderOutsideRGB);

-	setBorderVisible((style & SWT.BORDER) != 0);

-

-	addPaintListener(new PaintListener() {

-		public void paintControl(PaintEvent event) {

-			onPaint(event.gc);

-		}

-	});

-	addControlListener(new ControlAdapter(){

-		public void controlResized(ControlEvent e) {

-			onResize();

-		}

-	});

-	

-	addListener(SWT.Dispose, new Listener() {

-		public void handleEvent(Event e) {

-			onDispose();

-		}

-	});	

-}

-/**

- * Check the style bits to ensure that no invalid styles are applied.

- * @private

- */

-private static int checkStyle (int style) {

-	int mask = SWT.FLAT;

-	return style & mask | SWT.NO_REDRAW_RESIZE;

-}

-public Point computeSize(int wHint, int hHint, boolean changed) {

-	// size of title bar area

-	Point leftSize = new Point(0, 0);

-	if (topLeft != null) {

-		leftSize = topLeft.computeSize(SWT.DEFAULT, SWT.DEFAULT);

-	}

-	Point centerSize = new Point(0, 0);

-	if (topCenter != null) {

-		 centerSize = topCenter.computeSize(SWT.DEFAULT, SWT.DEFAULT);

-	}

-	Point rightSize = new Point(0, 0);

-	if (topRight != null) {

-		 rightSize = topRight.computeSize(SWT.DEFAULT, SWT.DEFAULT);

-	}

-	Point size = new Point(0, 0);

-	// calculate width of title bar

-	if (separateTopCenter) {

-		size.x = leftSize.x + rightSize.x;

-		size.x = Math.max(centerSize.x, size.x);

-		size.y = Math.max(leftSize.y, rightSize.y);

-		if (topCenter != null){

-			size.y += centerSize.y;

-		}

-	} else {

-		size.x = leftSize.x + centerSize.x + rightSize.x;

-		size.y = Math.max(leftSize.y, Math.max(centerSize.y, rightSize.y));

-	}

-	

-	if (content != null) {

-		Point contentSize = new Point(0, 0);

-		contentSize = content.computeSize(SWT.DEFAULT, SWT.DEFAULT); 

-		size.x = Math.max (size.x, contentSize.x);

-		size.y += contentSize.y;

-	}

-	

-	size.x += 2 * marginWidth + BORDER_LEFT + BORDER_RIGHT;

-	size.y += 2 * marginHeight + BORDER_TOP + BORDER_BOTTOM;

-

-	return size;

-}

-public Rectangle getClientArea() {

-	Rectangle clientArea = super.getClientArea();

-	clientArea.x += BORDER_LEFT;

-	clientArea.y += BORDER_TOP;

-	clientArea.width -= BORDER_LEFT + BORDER_RIGHT;

-	clientArea.height -= BORDER_TOP + BORDER_BOTTOM;

-	return clientArea;

-}

-/**

-* Returns the content area.

-*/

-public Control getContent() {

-	return content;

-}

-/**

-* Returns Control that appears in the top center of the pane.

-* Typically this is a toolbar.

-*/

-public Control getTopCenter() {

-	return topCenter;

-}

-/**

-* Returns the Control that appears in the top left corner of the pane.

-* Typically this is a label such as CLabel.

-*/

-public Control getTopLeft() {

-	return topLeft;

-}

-/**

-* Returns the control in the top right corner of the pane.

-* Typically this is a Close button or a composite with a Menu and Close button.

-*/

-public Control getTopRight() {

-	return topRight;

-}

-public void layout (boolean changed) {

-	Rectangle rect = getClientArea();

-	

-	drawLine1 = -1;

-	drawLine2 = -1;

-	

-	Point leftSize = new Point(0, 0);

-	if (topLeft != null && !topLeft.isDisposed()) {

-		leftSize = topLeft.computeSize(SWT.DEFAULT, SWT.DEFAULT);

-	}

-	Point centerSize = new Point(0, 0);

-	if (topCenter != null && !topCenter.isDisposed()) {

-		 centerSize = topCenter.computeSize(SWT.DEFAULT, SWT.DEFAULT);

-	}

-	Point rightSize = new Point(0, 0);

-	if (topRight != null && !topRight.isDisposed()) {

-		 rightSize = topRight.computeSize(SWT.DEFAULT, SWT.DEFAULT);

-	}

-	

-	int minTopWidth = leftSize.x + centerSize.x + rightSize.x + 2*marginWidth + 1; // +1 for highlight line	

-	int height = rect.y + marginHeight;

-	

-	boolean top = false;

-	if (separateTopCenter || minTopWidth > rect.width) {;

-		int topHeight = Math.max(rightSize.y, leftSize.y);

-		if (topRight != null && !topRight.isDisposed()) {

-			top = true;

-			topRight.setBounds(rect.x + rect.width - marginWidth - rightSize.x, 

-			                   rect.y + 1 + marginHeight, 

-			                   rightSize.x, topHeight);

-			height += 1 + topHeight; // +1 for highlight line

-		}

-		if (topLeft != null && !topLeft.isDisposed()) {

-			top = true;

-			leftSize = topLeft.computeSize(rect.width - 2* marginWidth - rightSize.x - 1, SWT.DEFAULT);

-			topLeft.setBounds(rect.x + 1 + marginWidth, 

-			                  rect.y + 1 + marginHeight, 

-			                  leftSize.x, topHeight);

-			height = Math.max(height, rect.y + marginHeight + 1 + topHeight); // +1 for highlight line

-		}

-		if (topCenter != null && !topCenter.isDisposed()) {

-			top = true;

-			if (height > rect.y + marginHeight) {

-				drawLine1 = height;

-				height += 1; // +1 for divider line

-			}

-			centerSize = topCenter.computeSize(rect.width - 2 * marginWidth, SWT.DEFAULT);

-			topCenter.setBounds(rect.x + rect.width - marginWidth - centerSize.x, 

-			                    height, 

-			                    centerSize.x, centerSize.y);

-			height += centerSize.y;

-

-		}		

-	} else {

-		int topHeight = Math.max(rightSize.y, Math.max(centerSize.y, leftSize.y));

-		if (topRight != null && !topRight.isDisposed()) {

-			top = true;

-			topRight.setBounds(rect.x + rect.width - marginWidth - rightSize.x, 

-			                   rect.y + marginHeight + 1, // +1 for highlight line

-			                   rightSize.x, topHeight);

-			height += 1 + topHeight; // +1 for highlight line

-		}

-		if (topCenter != null && !topCenter.isDisposed()) {

-			top = true;

-			topCenter.setBounds(rect.x + rect.width - marginWidth - rightSize.x - centerSize.x, 

-			                    rect.y + marginHeight + 1, // +1 for highlight line

-			                    centerSize.x, topHeight);

-			height = Math.max(height, rect.y + marginHeight + 1 + topHeight); // +1 for highlight line                    

-		}

-		if (topLeft != null && !topLeft.isDisposed()) {

-			top = true;

-			leftSize = topLeft.computeSize(rect.width - 2 * marginWidth - rightSize.x - centerSize.x - 1, topHeight);

-			topLeft.setBounds(rect.x + marginWidth + 1, // +1 for highlight line

-			                  rect.y + marginHeight + 1, // +1 for highlight line

-			                  leftSize.x, topHeight);

-			height = Math.max(height, rect.y + marginHeight + 1 + topHeight); // +1 for highlight line

-		}

-	}

-

-	if (content != null && !content.isDisposed()) {

-		if (top) {

-			drawLine2 = height;

-			height += 1; // +1 for divider line

-		}

-		 content.setBounds(rect.x + marginWidth, 

-		                   height, 

-		                   rect.width - 2 * marginWidth, 

-		                   rect.y + rect.height - height - marginHeight);

-	}

-}

-private void onDispose() {

-	if (borderColor1 != null) {

-		borderColor1.dispose();

-	}

-	borderColor1 = null;

-	

-	if (borderColor2 != null) {

-		borderColor2.dispose();

-	}

-	borderColor2 = null;

-	

-	if (borderColor3 != null) {

-		borderColor3.dispose();

-	}

-	borderColor3 = null;

-}

-/**

-* Draws the focus border.

-*/

-private void onPaint(GC gc) {

-	Rectangle d = super.getClientArea();

-	

-	if (showBorder) {

-		if ((getStyle() & SWT.FLAT) !=0) {

-			gc.setForeground(borderColor1);

-			gc.drawRectangle(d.x, d.y, d.x + d.width - 1, d.y + d.height - 1);

-		} else {

-			gc.setForeground(borderColor1);

-			gc.drawRectangle(d.x, d.y, d.x + d.width - 3, d.y + d.height - 3);

-		

-			gc.setForeground(borderColor2);

-			gc.drawLine(d.x + 1,           d.y + d.height - 2, d.x + d.width - 1, d.y + d.height - 2);

-			gc.drawLine(d.x + d.width - 2, d.y + 1,            d.x + d.width - 2, d.y + d.height - 1);

-		

-			gc.setForeground(borderColor3);

-			gc.drawLine(d.x + 2,           d.y + d.height - 1, d.x + d.width - 2, d.y + d.height - 1);

-			gc.drawLine(d.x + d.width - 1, d.y + 2,            d.x + d.width - 1, d.y + d.height - 2);

-		}

-	}

-		

-	if (drawLine1 != -1) {

-		// top seperator line

-		gc.setForeground(borderColor1);

-		gc.drawLine(d.x + BORDER_LEFT, drawLine1, d.x + d.width - BORDER_RIGHT, drawLine1);	

-	}

-	if (drawLine2 != -1) {

-		// content separator line

-		gc.setForeground(borderColor1);

-		gc.drawLine(d.x + BORDER_LEFT, drawLine2, d.x + d.width - BORDER_RIGHT, drawLine2);

-	}

-	// highlight on top

-	int y = drawLine1;

-	if (y == -1){

-		y = drawLine2;

-	}

-	if (y != -1) {

-		gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW));

-		gc.drawLine(d.x + BORDER_LEFT + marginWidth, d.y + BORDER_TOP + marginHeight, 

-		            d.x + BORDER_LEFT + marginWidth, y - 1);

-		gc.drawLine(d.x + BORDER_LEFT + marginWidth, d.y + BORDER_TOP + marginHeight,

-		            d.x + d.width - BORDER_RIGHT - marginWidth - 1, d.y + BORDER_TOP + marginHeight);

-	}

-

-	gc.setForeground(getForeground());

-}

-private void onResize() {

-	layout();

-	

-	Rectangle area = super.getClientArea();

-	if (oldArea == null || oldArea.width == 0 || oldArea.height == 0) {

-		redraw();

-	} else {

-		int width = 0;

-		if (oldArea.width < area.width) {

-			width = area.width - oldArea.width + BORDER_RIGHT;

-		} else if (oldArea.width > area.width) {

-			width = BORDER_RIGHT;			

-		}

-		redraw(area.x + area.width - width, area.y, width, area.height, false);

-		

-		int height = 0;

-		if (oldArea.height < area.height) {

-			height = area.height - oldArea.height + BORDER_BOTTOM;		

-		}

-		if (oldArea.height > area.height) {

-			height = BORDER_BOTTOM;		

-		}

-		redraw(area.x, area.y + area.height - height, area.width, height, false);

-	}

-	oldArea = area;

-}

-/**

-* Sets the content.

-* Setting the content to null will remove it from 

-* the pane - however, the creator of the content must dispose of the content.

-*/

-public void setContent(Control content) {

-	if (content != null && content.getParent() != this) {

-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	if (this.content != null && !this.content.isDisposed()) {

-		this.content.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);

-	}

-	this.content = content;

-	layout();

-}

-

-/**

-* Set the widget font.

-* This will apply the font to the topLeft, topRight and topCenter widgets.

-*/

-public void setFont(Font f) {

-	super.setFont(f);

-	if (topLeft != null && !topLeft.isDisposed()) topLeft.setFont(f);

-	if (topCenter != null && !topCenter.isDisposed()) topCenter.setFont(f);

-	if (topRight != null && !topRight.isDisposed()) topRight.setFont(f);

-	

-	layout();

-}

-/**

- * Sets the layout which is associated with the receiver to be

- * the argument which may be null.

- * <p>

- * Note : ViewForm does not use a layout class to size and position its children.

- * </p>

- *

- * @param the receiver's new layout or null

- *

- * @exception SWTException <ul>

- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>

- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>

- * </ul>

- */

-public void setLayout (Layout layout) {

-	return;

-}

-/**

-* Set the control that appears in the top center of the pane.

-* Typically this is a toolbar.

-* The topCenter is optional.  Setting the topCenter to null will remove it from 

-* the pane - however, the creator of the topCenter must dispose of the topCenter.

-*/

-public void setTopCenter(Control topCenter) {

-	if (topCenter != null && topCenter.getParent() != this) {

-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	if (this.topCenter != null && !this.topCenter.isDisposed()) {

-		this.topCenter.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);

-	}

-	this.topCenter = topCenter;

-	layout();

-}

-/**

-* Set the control that appears in the top left corner of the pane.

-* Typically this is a label such as CLabel.

-* The topLeft is optional.  Setting the top left control to null will remove it from 

-* the pane - however, the creator of the control must dispose of the control.

-*/

-public void setTopLeft(Control c) {

-	if (c != null && c.getParent() != this) {

-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	if (this.topLeft != null && !this.topLeft.isDisposed()) {

-		this.topLeft.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);

-	}

-	this.topLeft = c;

-	layout();

-}

-/**

-* Set the control that appears in the top right corner of the pane.

-* Typically this is a Close button or a composite with a Menu and Close button.

-* The topRight is optional.  Setting the top right control to null will remove it from 

-* the pane - however, the creator of the control must dispose of the control.

-*/

-public void setTopRight(Control c) {

-	if (c != null && c.getParent() != this) {

-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	if (this.topRight != null && !this.topRight.isDisposed()) {

-		this.topRight.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);

-	}

-	this.topRight = c;

-	layout();

-}

-public void setBorderVisible(boolean show) {

-	if (showBorder == show) return;

-	

-	showBorder = show;

-	if (showBorder) {

-		if ((getStyle() & SWT.FLAT)!= 0) {

-			BORDER_LEFT = BORDER_TOP = BORDER_RIGHT = BORDER_BOTTOM = 1;

-		} else {

-			BORDER_LEFT = BORDER_TOP = 1;

-			BORDER_RIGHT = BORDER_BOTTOM = 3;

-		}

-	} else {

-		BORDER_BOTTOM = BORDER_TOP = BORDER_LEFT = BORDER_RIGHT = 0;

-	}

-

-	layout();

-	redraw();

-}

-/**

-* If true, the topCenter will always appear on a separate line by itself, otherwise the 

-* topCenter will appear in the top row if there is room and will be moved to the second row if

-* required.

-*/

-public void setTopCenterSeparate(boolean show) {

-	separateTopCenter = show;

-	layout();

-}

-

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/WrappedContent.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/WrappedContent.java
deleted file mode 100644
index bf05aad..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/WrappedContent.java
+++ /dev/null
@@ -1,653 +0,0 @@
-package org.eclipse.swt.custom;

-/*

- * (c) Copyright IBM Corp. 2001, 2002.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.internal.*;

-

-/**

- * An instance of class <code>WrappedContent</code> is used by 

- * StyledText to display wrapped lines. Lines are wrapped at word 

- * breaks which are marked by a space character. Trailing space 

- * behind words is kept on the current line.

- * If the last remaining word on a line can not be fully displayed 

- * the line is wrapped character by character.

- * WrappedContent wraps a StyledTextContent which provides the line

- * data. The start offset and length of wrapped lines is calculated

- * and updated based on recalculation requests and text changes.

- * <p>

- * All public methods in this class implement the 

- * <code>StyledTextContent</code> interface. Package visible 

- * methods are internal API for use by <code>StyledText</code>.

- * </p>

- */

-class WrappedContent implements StyledTextContent {

-    final static int LINE_OFFSET = 0; 	// index of line offset in visualLines array

-    final static int LINE_LENGTH = 1; 	// index of line lenght in visualLines array

-	final static int WRAP_LINE_LENGTH = 0;

-	final static int WRAP_LINE_WIDTH = 1;

-	    

-    StyledText parent;

-	StyledTextContent logicalContent;

-	int[][] visualLines; 				 // start and length of each visual line

-	int visualLineCount = 0;

-

-/**

- * Create a new instance.

- * 

- * @param styledText StyledText widget that displays the lines

- * 	wrapped by the new instance.

- * @param logicalContent StyledTextContent that provides the line 

- * 	data.

- */

-WrappedContent(StyledText styledText, StyledTextContent logicalContent) {

-    parent = styledText;

-    this.logicalContent = logicalContent;

-}

-/**

- * @see StyledTextContent#addTextChangeListener(TextChangeListener)

- */

-public void addTextChangeListener(TextChangeListener listener) {

-    logicalContent.addTextChangeListener(listener);

-}

-/**

- * Grow the lines array to at least the specified size.

- * <p>

- * 

- * @param numLines number of elements that the array should have

- * 	at a minimum

- */

-private void ensureSize(int numLines) {

-	int size = visualLines.length;

-	if (size >= numLines) {

-		return;

-	}

-	int[][] newLines = new int[Math.max(size * 2, numLines)][2];

-	System.arraycopy(visualLines, 0, newLines, 0, size);

-	visualLines = newLines;

-	resetVisualLines(size, visualLines.length - size);	

-}

-/**

- * @see StyledTextContent#getCharCount()

- */

-public int getCharCount() {

-    return logicalContent.getCharCount();

-}

-/**

- * @return the visual (wrapped) line at the specified index

- * @see StyledTextContent#getLine(int)

- */

-public String getLine(int lineIndex) {

-	String line;

-	

-	// redirect call to logical content if there are no wrapped lines

-	if (visualLineCount == 0) {

-		line = logicalContent.getLine(lineIndex);

-	}

-	else {

-		line = logicalContent.getTextRange(visualLines[lineIndex][LINE_OFFSET], visualLines[lineIndex][LINE_LENGTH]);

-	}

-    return line;

-}

-/**

- * Returns the visual (wrapped) line at given offset.

- * <p>

- * The offset is ambiguous if it identifies the end of a visual line and 

- * there is another visual line below. In this case the end of the visual

- * line has the same offset as the beginning of the next visual line 

- * since the visual line break is not represented by any character in the

- * logical line.

- * In this ambiguous case the offset is assumed to represent the end of a

- * visual line and the index of the first visual line is returned.

- * </p>

- * 

- * @param offset offset of the desired line. 

- * @return the index of the visual (wrapped) line at the specified offset

- * @see StyledTextContent#getLineAtOffset(int)

- */

-public int getLineAtOffset(int offset) {

-	int lastLine = visualLineCount - 1;

-	int lastChar;

-

-	// redirect call to logical content if there are no wrapped lines

-	if (visualLineCount == 0) {

-		return logicalContent.getLineAtOffset(offset);

-	}

-	// can't use getCharCount to get the number of characters since this

-	// method is called in textChanged, when the logicalContent used by

-	// getCharCount has already changed. at that point the visual lines

-	// have not been updated yet and we thus need to use the old character

-	// count which is only available in the visual content.

-	lastChar = visualLines[lastLine][LINE_OFFSET] + visualLines[lastLine][LINE_LENGTH];

-	if (offset < 0 || (offset > 0 && offset > lastChar)) {

-	    SWT.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	// if last line and the line is not empty you can ask for 

-	// a position that doesn't exist (the one to the right of the 

-	// last character) - for inserting

-	if (offset == lastChar) {

-		return lastLine;

-	}

-

-	int high = visualLineCount;

-	int low = -1;

-	int index = visualLineCount;

-	while (high - low > 1) {

-		index = (high + low) / 2;

-		int lineStart = visualLines[index][LINE_OFFSET];

-		if (offset >= lineStart) {

-			int lineEnd = lineStart + visualLines[index][LINE_LENGTH];

-		    low = index;			

-		    if (offset <= lineEnd) {

-		    	break;

-		    }

-		} 

-		else {

-			high = index;

-		}

-	}

-	if (low > 0 && offset == visualLines[low - 1][LINE_OFFSET] + visualLines[low - 1][LINE_LENGTH]) {

-		// end of a visual line/beginning of next visual line is ambiguous 

-		// (they have the same offset). always return the first visual line

-		low--;

-	}

-	return low;

-}

-/**

- * @return the number of visual (wrapped) lines

- * @see StyledTextContent#getLineCount()

- */

-public int getLineCount() {

-	int lineCount = visualLineCount;

-	

-	// redirect call to logical content if there are no wrapped lines

-	if (visualLineCount == 0) {

-		lineCount = logicalContent.getLineCount();

-	}

-    return lineCount;

-}

-/**

- * @see StyledTextContent#getLineDelimiter()

- */

-public String getLineDelimiter() {

-    return logicalContent.getLineDelimiter();

-}

-/**

- * @return the start offset of the visual (wrapped) line at the given 

- * 	index

- * @see StyledTextContent#getOffsetAtLine(int)

- */

-public int getOffsetAtLine(int lineIndex) {

-	int offset;

-	

-	// redirect call to logical content if there are no wrapped lines

-	if (visualLineCount == 0) {

-		offset = logicalContent.getOffsetAtLine(lineIndex);

-	}

-	else {

-		offset = visualLines[lineIndex][LINE_OFFSET];

-	}

-    return offset;

-}

-/**

- * @see StyledTextContent#getTextRange(int, int)

- */

-public String getTextRange(int start, int length) {

-    return logicalContent.getTextRange(start, length);

-}

-/**

- * Returns the offset of the character after the word at the specified

- * offset.

- * <p>

- * Words are separated by spaces. Trailing spaces are considered part 

- * of the word.

- * </p>

- * 

- * @param line logical line the word is in

- * @param startOffset start offset of the line, relative to the start 

- * 	of the logical line.

- * @param offset offset of the word to return the end of, relative to

- * 	the start of the visual line.

- * @return the offset of the character after the word at the specified

- * offset.

- */

-private int getWordEnd(String line, int startOffset, int offset) {

-	int lineLength = line.length();

-	

-	offset += startOffset;

-	if (offset >= lineLength) {

-		return offset - startOffset;

-	}

-	// skip over leading whitespace

-	do {		

-		offset++;

-	} while (offset < lineLength && Compatibility.isSpaceChar(line.charAt(offset)));	

-	while (offset < lineLength && Compatibility.isSpaceChar(line.charAt(offset)) == false) {

-		offset++;

-	}

-	// skip over trailing whitespace

-	while (offset < lineLength && Compatibility.isSpaceChar(line.charAt(offset))) {

-		offset++;

-	}

-	return offset - startOffset;

-}

-/**

- * Returns the start offset of the word at the specified offset.

- * There are two classes of words formed by a sequence of characters:

- * <p>

- * Words are separated by spaces. Trailing spaces are considered part 

- * of the word.

- * </p>

- * 

- * @param line logical line the word is in

- * @param startOffset start offset of the line, relative to the start 

- * 	of the logical line.

- * @param offset offset of the word to return the start of, relative to

- * 	the start of the visual line.

- * @return the start offset of the word at the specified offset.

- */

-private int getWordStart(String line, int startOffset, int offset) {

-	offset += startOffset;

-	// skip over trailing whitespace

-	do {		

-		offset--;

-	} while (offset > startOffset && Compatibility.isSpaceChar(line.charAt(offset)));

-	while (offset > startOffset && Compatibility.isSpaceChar(line.charAt(offset - 1)) == false) {

-		offset--;

-	}

-	return offset - startOffset;

-}

-/**

- * @see StyledTextContent#removeTextChangeListener(TextChangeListener)

- */

-public void removeTextChangeListener(TextChangeListener listener) {

-    logicalContent.removeTextChangeListener(listener);

-}

-/**

- * Reset the visual (wrapped) lines in the specified range.

- * If the range specifies partial logical lines (e.g., startLine is

- * the second of two visual lines) it is extended to reset all visual 

- * lines of a logical line.

- * Following the reset the logical lines in the reset visual range are 

- * rewrapped.

- * <p>

- * 

- * @param startLine index of the first visual line 

- * @param lineCount number of visual lines

- */

-void reset(int startLine, int lineCount) {

-    if (lineCount <= 0 || visualLineCount == 0) {

-        return;

-	}       

-	reset(startLine, lineCount, true);

-}

-/**

- * Reset the visual (wrapped) lines in the specified range.

- * If the range specifies partial logical lines (e.g., startLine is

- * the second of two visual lines) it is extended to reset all visual 

- * lines of a logical line.

- * <p>

- * 

- * @param startLine index of the first visual line 

- * @param lineCount number of visual lines

- * @param wrap true=rewrap the logical lines in the reset visual range 

- * 	false=don't rewrap lines. Visual lines will be left in an inconsistent

- * 	state since there will be a range of unwrapped and unknown lines.

- * @return the first visual line that was reset

- */

-private int reset(int startLine, int lineCount, boolean wrap) {

-    if (lineCount <= 0) {

-        return startLine;

-	}       

-    // make sure that all visual lines of the first logical line are 

-    // being reset. visualFirstLine is the first visual line of the 

-    // first logical line that has at least one visual line reset.

-	int visualFirstLineOffset = getOffsetAtLine(startLine);

-    int logicalFirstLine = logicalContent.getLineAtOffset(visualFirstLineOffset);

-    int logicalFirstLineOffset = logicalContent.getOffsetAtLine(logicalFirstLine);

-    int visualFirstLine = getLineAtOffset(logicalFirstLineOffset);

-

-    lineCount += startLine - visualFirstLine;

-    startLine = visualFirstLine;

-        

-    // make sure that all visual lines of the last logical line are 

-    // being reset.

-	int lastLine = startLine + lineCount - 1;

-    int lastLineEnd = visualLines[lastLine][LINE_OFFSET] + visualLines[lastLine][LINE_LENGTH];

-    int logicalEndLine = 0;

-        

-    while (lastLine < visualLineCount - 1 && lastLineEnd == visualLines[lastLine + 1][LINE_OFFSET]) {

-    	lastLine++;

-    	lastLineEnd = visualLines[lastLine][LINE_OFFSET] + visualLines[lastLine][LINE_LENGTH];

-    }

-    if (wrap) {

-		if (lastLine == visualLineCount - 1) {

-			logicalEndLine = logicalContent.getLineCount();

-		}

-		else {

-			logicalEndLine = logicalContent.getLineAtOffset(visualLines[lastLine + 1][LINE_OFFSET]);

-		}

-    }

-    lineCount = lastLine - startLine + 1;

-	resetVisualLines(startLine, lineCount);

-	visualLineCount -= lineCount;

-	if (wrap) {

-	    // always recalculate line wrap immediately after a reset 

-	    // because the content always needs to be in a usable state.

-	    // i.e., there must not be any reset but unwrapped lines

-	    wrapLineRange(logicalFirstLine, logicalEndLine, startLine);

-	}

-	return startLine;

-}

-/**

- * Reset the visual (wrapped) lines in the specified range.

- * <p>

- * 

- * @param startLine index of the first visual line 

- * @param lineCount number of visual lines

- */

-private void resetVisualLines(int startLine, int lineCount) {

-    int endLine = startLine + lineCount;

-

-	for (int i = startLine; i < endLine; i++) {

-		visualLines[i] = new int[] {-1, -1};		

-	}

-}

-/**

- * @see StyledTextContent#replaceTextRange(int, int, String)

- */

-public void replaceTextRange(int start, int replaceLength, String text) {

-	logicalContent.replaceTextRange(start, replaceLength, text);

-}

-/**

- * @see StyledTextContent#setText(String)

- */

-public void setText(String text) {

-    logicalContent.setText(text);

-}

-/**

- * Set the line wrap data for the specified visual (wrapped) line.

- * <p>

- * 

- * @param visualLineIndex index of the visual line

- * @param visualLineOffset start offset of the visual line, relative 

- * 	to the start of the document

- * @param visualLineLength length of the visual line

- */

-private void setVisualLine(int visualLineIndex, int visualLineOffset, int visualLineLength) {

-	ensureSize(visualLineCount + 1);

-	// is the space for the visual line already taken? can happen if 

-	// there are more visual lines for a given logical line than before

-	if (visualLines[visualLineIndex][LINE_OFFSET] != -1) {

-		System.arraycopy(visualLines, visualLineIndex, visualLines, visualLineIndex + 1, visualLineCount - visualLineIndex);

-		visualLines[visualLineIndex] = new int[2];

-	}

-	visualLines[visualLineIndex][LINE_OFFSET] = visualLineOffset;

-	visualLines[visualLineIndex][LINE_LENGTH] = visualLineLength;

-	visualLineCount++;

-}

-/** 

- * Recalculates the line wrap for the lines affected by the 

- * text change.

- * <p>

- *

- * @param startOffset	the start offset of the text change

- * @param newLineCount the number of inserted lines

- * @param replaceLineCount the number of deleted lines

- * @param newCharCount the number of new characters

- * @param replaceCharCount the number of deleted characters

- */  

-void textChanged(int startOffset, int newLineCount, int replaceLineCount, int newCharCount, int replaceCharCount) {

-	// do nothing if there are no wrapped lines

-	if (visualLineCount == 0) {

-		return;

-	}

-	int logicalStartLine = logicalContent.getLineAtOffset(startOffset);

-	int visualStartLine = getLineAtOffset(startOffset);

-	int visualReplaceLastLine = visualLineCount - 1;

-	int textChangeDelta = newCharCount - replaceCharCount;

-		

-	if (replaceLineCount > 0) {	

-		visualReplaceLastLine = getLineAtOffset(startOffset + replaceCharCount);

-	    // at the start of a visual line/end of the previous visual line?

-		if (visualReplaceLastLine == 0 || 

-		    visualLines[visualReplaceLastLine][LINE_OFFSET] == visualLines[visualReplaceLastLine - 1][LINE_OFFSET] + visualLines[visualReplaceLastLine - 1][LINE_LENGTH]) {

-			visualReplaceLastLine++;

-		}		

-		visualStartLine = reset(visualStartLine, visualReplaceLastLine - visualStartLine + 1, false);

-	}

-	else {

-		visualStartLine = reset(visualStartLine, 1, false);

-	}

-	visualReplaceLastLine = wrapLineRange(logicalStartLine, logicalStartLine + 1 + newLineCount, visualStartLine);

-	for (int i = visualReplaceLastLine; i < visualLineCount; i++) {

-		visualLines[i][LINE_OFFSET] += textChangeDelta;

-	}

-}

-/**

- * Measure the width of a segment in the specified logical line.

- * <p>

- * 

- * @param line the logical line

- * @param logicalLineOffset start offset of the logical line, relative

- * 	to the start of the document

- * @param visualLineOffset offset to start measuring at/start offset 

- * 	of the visual line

- * @param visualLineLength length of the segment to measure/the visual

- * 	line

- * @param styles StyleRanges to use during measuring

- * @param startX x position of the visual line relative to the start

- * 	of the logical line

- * @param gc GC to use for measuring

- * @param fontData FontData currently set in gc. Used to reduce calls

- * 	to gc.getFont().getFontData()

- */

-private int textWidth(String line, int logicalLineOffset, int visualLineOffset, int visualLineLength, StyleRange[] styles, int startX, GC gc, FontData fontData) {

-	int width;

-	

-	if (styles != null) {

-		// while wrapping a line, the logcial line styles may contain 

-		// style ranges that don't apply (i.e., completely on the previous/next

-		// visual line). Therefore we need to filter the logical lines.

-		styles = parent.getVisualLineStyleData(styles, logicalLineOffset + visualLineOffset, visualLineLength);

-	}

-	if (parent.isBidi()) {

-		String wrappedLine = line.substring(visualLineOffset, visualLineOffset + visualLineLength);

-		StyledTextBidi bidi = parent.getStyledTextBidi(wrappedLine, logicalLineOffset + visualLineOffset, gc, styles);

-		width = bidi.getTextWidth();

-	}				

-	else {

-		width = parent.textWidth(line, logicalLineOffset, visualLineOffset, visualLineLength, styles, startX, gc, fontData);

-	}

-	return width;

-}

-/**

- * Wrap the given logical line at the specified offset.

- * Called repeatedly until the entire logical lines has been split into 

- * visual (wrapped) lines.

- * <p>

- * 

- * @param line the logical line

- * @param logicalLineOffset offset of the logical line, relative to the 

- * 	beginning of the content

- * @param visualLineOffset start offset of the new visual line, relative 

- * 	to the start of the logical line.

- * @param startX x position of visualLineOffset, relative to the beginning

- * 	of the logical line

- * @param width width to wrap the line to

- * @param numChars average number of characters that fit into width

- * @param styles StyleRanges to use for measuring the wrapped line

- * @param gc GC to use for measuring

- * @param fontData FontData currently set in gc. Used to reduce calls to

- * 	gc.getFont().getFontData()

- * @return int[0]=length of the new visual line, int[1]=width in pixels

- * 	of the new visual line

- */

-private int[] wrapLine(String line, int logicalLineOffset, int visualLineOffset, int startX, int width, int numChars, StyleRange[] styles, GC gc, FontData fontData) {

-	int lineLength = line.length();

-	int lineWidth = 0;

-	int visualLineLength;

-	

-	numChars = Math.min(numChars, lineLength - visualLineOffset);			

-    visualLineLength = getWordStart(line, visualLineOffset, numChars);

-	// find a word that is within the client area. make sure at least one 

-	// character is on each line so that line wrap algorithm terminates.

-    if (visualLineLength > 0) {

-		lineWidth = textWidth(line, logicalLineOffset, visualLineOffset, visualLineLength, styles, startX, gc, fontData);

-		if (lineWidth >= width) {		

-			while (visualLineLength > 1 && lineWidth >= width) {

-			    visualLineLength = getWordStart(line, visualLineOffset, visualLineLength);

-			    lineWidth = textWidth(line, logicalLineOffset, visualLineOffset, visualLineLength, styles, startX, gc, fontData);

-			}

-		}

-		else

-		if (lineWidth < width) {

-			while (visualLineOffset + visualLineLength < lineLength) {

-			    int newLineLength = getWordEnd(line, visualLineOffset, visualLineLength);

-			    int newLineWidth = textWidth(line, logicalLineOffset, visualLineOffset, newLineLength, styles, startX, gc, fontData);

-			    // would next word be beyond client area?

-			    if (newLineWidth >= width) {

-			        break;

-			    }

-			    else {

-			        visualLineLength = newLineLength;

-			        lineWidth = newLineWidth;

-			    }

-			}

-		}

-    }

-    if (visualLineLength <= 0) {

-        // no complete word fits on the line. either first word was not within

-        // estimated number of characters or it was beyond the line width even 

-        // though it was within numChars.

-        visualLineLength = numChars;

-        lineWidth = textWidth(line, logicalLineOffset, visualLineOffset, visualLineLength, styles, startX, gc, fontData);

-        if (lineWidth >= width) {

-		    while (visualLineLength > 1 && lineWidth >= width) {

-    	    	visualLineLength--;

-	    	    lineWidth = textWidth(line, logicalLineOffset, visualLineOffset, visualLineLength, styles, startX, gc, fontData);

-		    }

-        }

-        else

-        if (lineWidth < width) {

-			while (visualLineOffset + visualLineLength < lineLength) {

-	   			int newLineWidth = textWidth(line, logicalLineOffset, visualLineOffset, visualLineLength + 1, styles, startX, gc, fontData);

-			    if (newLineWidth >= width) {

-			        break;

-			    }

-			    else {

-			        visualLineLength++;

-			        lineWidth = newLineWidth;

-			    }

-		    }

-        }

-	}

-	return new int[] {visualLineLength, lineWidth};

-}

-/**

- * Wrap the logical lines in the given range at the current client 

- * area width of the StyledText widget

- * <p>

- * 

- * @param startLine first logical line to wrap

- * @param endLine line after last logical line 

- * @param visualLineIndex visual (wrapped) line index that startLine

- * 	corresponds to.

- * @return index of the line following the last wrapped line

- */

-private int wrapLineRange(int startLine, int endLine, int visualLineIndex) {

-	int emptyLineCount = 0;

-		

-	visualLineIndex = wrapLineRange(startLine, endLine, visualLineIndex, parent.getClientArea().width);

-	// is there space left for more visual lines? can happen if there are fewer

-	// visual lines for a given logical line than before

-	for (int i = visualLineIndex; i < visualLines.length; i++, emptyLineCount++) {

-	    if (visualLines[i][LINE_OFFSET] != -1) {

-	        break;

-	    }

-	}

-	if (emptyLineCount > 0) {

-		int copyLineCount = visualLineCount - visualLineIndex;

-		System.arraycopy(visualLines, visualLineIndex + emptyLineCount, visualLines, visualLineIndex, copyLineCount);

-		resetVisualLines(visualLineIndex + copyLineCount, emptyLineCount);

-	}

-	return visualLineIndex;

-}

-/**

- * Wrap the lines in the given range. Skip lines that have already 

- * been wrapped.

- * <p>

- * 

- * @param startLine first logical line to wrap

- * @param endLine line after last logical line 

- * @param visualLineIndex visual (wrapped) line index that startLine

- * 	corresponds to.

- * @param width line width to wrap at

- * @return index of last wrapped line

- */

-private int wrapLineRange(int startLine, int endLine, int visualLineIndex, int width) {

-    GC gc = new GC(parent);

-    FontData fontData = gc.getFont().getFontData()[0];

-	int numChars = Math.max(1, width / gc.getFontMetrics().getAverageCharWidth());

-

-	// if there are no wrapped lines and the width is 0 the widget has

-	// not been made visible/sized yet. don't wrap until the widget size 

-	// is known.

-	if (visualLineCount == 0 && width == 0) {

-		return visualLineIndex;

-	}

-	for (int i = startLine; i < endLine; i++) {

-	    String line = logicalContent.getLine(i);

-   	    int lineOffset = logicalContent.getOffsetAtLine(i);

-   	    int lineLength = line.length();

-

-   		if (lineLength == 0) {

-			setVisualLine(visualLineIndex, lineOffset, 0);

-			visualLineIndex++;

-			continue;

-   		}

-		StyleRange[] styles = null;

-		StyledTextEvent event = parent.getLineStyleData(lineOffset, line);

-		int startOffset = 0;

-		int startX = 0;

-				

-		if (event != null) {

-			styles = parent.filterLineStyles(event.styles);

-		}

-		while (startOffset < lineLength) {	

-		    int[] result = wrapLine(line, lineOffset, startOffset, startX, width, numChars, styles, gc, fontData);

-

-			setVisualLine(visualLineIndex, lineOffset + startOffset, result[WRAP_LINE_LENGTH]);

-			startOffset += result[WRAP_LINE_LENGTH];

-			startX += result[WRAP_LINE_WIDTH];

-			visualLineIndex++;

-		}

-	}

-	gc.dispose();

-	return visualLineIndex;

-}

-/**

- * Wrap all logical lines at the current client area width of the 

- * StyledText widget

- */

-void wrapLines() {

-	wrapLines(parent.getClientArea().width);	

-}

-/**

- * Wrap all logical lines at the given width.

- * <p>

- * 

- * @param width width to wrap lines at

- */

-void wrapLines(int width) {

-    int lineCount = logicalContent.getLineCount();

-

-	visualLineCount = 0;

-	visualLines = new int[lineCount][2];

-	resetVisualLines(0, visualLines.length);		

-	wrapLineRange(0, lineCount, 0, width);	

-}

-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/package.html b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/package.html
deleted file mode 100755
index cb946ce..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/package.html
+++ /dev/null
@@ -1,14 +0,0 @@
- <html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-SWT Custom widgets.
-<h2>
-Package Specification</h2>
-This package contains the custom widgets which were written to provide the
-standard look and feel of the Eclipse platform.
-</body>
-</html>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DND.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DND.java
deleted file mode 100755
index 3e3bcba..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DND.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-import org.eclipse.swt.*;

-

-/**

- *

- * Class DND contains all the constants used in defining a 

- * DragSource or a DropTarget.

- *

- */

-

-

-public class DND {

-	

-	/**

-	 * Drag and Drop Operation: no drag/drop operation is performed

-	 */

-	public final static int DROP_NONE = 0;

-	/**

-	 * Drag and Drop Operation: a copy of the data in the drag source is added to the drop target

-	 */

-	public final static int DROP_COPY = 1;

-	/**

-	 * Drag and Drop Operation: the data is added to the drop target and removed from the drag source

-	 */

-	public final static int DROP_MOVE = 2;

-	/**

-	 * Drag and Drop Operation: the drop target makes a link to the data in the drag source

-	 */

-	public final static int DROP_LINK = 4;

-	

-	public final static int DROP_TARGET_MOVE = 5;

-	/**

-	 * DragSource Event: the drop has successfully completed or has been terminated (such as hitting the ESC key);

-	 *                   perform cleanup such as removing data on a move operation

-	 */

-	public static final int DragEnd		= 2000;

-	/**

-	 * DragSource Event: the data to be dropped is required from the drag source

-	 */

-	public static final int DragSetData = 2001;

-	/**

-	 * DropTarget Event: the cursor has entered the drop target boundaries

-	 */

-	public static final int DragEnter	= 2002;

-	/**

-	 * DropTarget Event: the cursor has left the drop target boundaries

-	 */

-	public static final int DragLeave	= 2003;

-	/**

-	 * DropTarget Event: the cursor is moving over the drop target

-	 */

-	public static final int	DragOver	= 2004;

-	/**

-	 * DropTarget Event: the operation being performed has changed 

-	 *                   (usually due to the user changing the selected key while dragging)

-	 */

-	public static final int DragOperationChanged = 2005;

-	/**

-	 * DropTarget Event: the data is being dropped

-	 */

-	public static final int	Drop		= 2006;

-	/**

-	 * DropTarget Event: the drop target is given a last chance to modify the drop

-	 */

-	public static final int	DropAccept	= 2007;

-	/**

-	 * DragSource Event: a drag is about to begin

-	 */

-	public static final int	DragStart	= 2008;

-

-	public static final int FEEDBACK_NONE = 0;

-	public static final int FEEDBACK_SELECT = 1;

-	public static final int FEEDBACK_INSERT_BEFORE = 2;

-	public static final int FEEDBACK_INSERT_AFTER = 4;

-	public static final int FEEDBACK_SCROLL = 8;

-	public static final int FEEDBACK_EXPAND = 16;

-	

-

-	/**

-	 * Error code for SWTError - drag source can not be initialized

-	 */

-	public static final int ERROR_CANNOT_INIT_DRAG = 2000;

-	/**

-	 * Error code for SWTError - drop target cannot be initialized

-	 */

-	public static final int ERROR_CANNOT_INIT_DROP = 2001;

-	/**

-	 * Error code for SWTError - Data can not be set on system clipboard

-	 */

-	public static final int ERROR_CANNOT_SET_CLIPBOARD = 2002;

-	

-

-	static final String INIT_DRAG_MESSAGE =  "Can not initialize Drag";

-	static final String INIT_DROP_MESSAGE =  "Can not initialize Drop";

-	static final String CANNOT_SET_CLIPBOARD_MESSAGE =  "Can not set data in clipboard";

-	

-public static void error (int code) {

-	error (code, 0);

-}

-

-public static void error (int code, int hresult) {		

-	switch (code) {		

-		/* OS Failure/Limit (fatal, may occur only on some platforms) */

-		case DND.ERROR_CANNOT_INIT_DRAG:{

-			String msg = DND.INIT_DRAG_MESSAGE;

-			if (hresult != 0) msg += "result = "+hresult;

-			throw new SWTError (code, msg);

-		}

-		case DND.ERROR_CANNOT_INIT_DROP:{

-			String msg = DND.INIT_DROP_MESSAGE;

-			if (hresult != 0) msg += "result = "+hresult;

-			throw new SWTError (code, msg);

-		}

-		case DND.ERROR_CANNOT_SET_CLIPBOARD:{

-			String msg = DND.CANNOT_SET_CLIPBOARD_MESSAGE;

-			if (hresult != 0) msg += "result = "+hresult;

-			throw new SWTError (code, msg);

-		}

-	}

-			

-	/* Unknown/Undefined Error */

-	SWT.error(code);

-}

-

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDEvent.java
deleted file mode 100755
index e0dfd61..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDEvent.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.widgets.*;

-

-class DNDEvent extends Event {

-

-	public TransferData dataType;

-	public TransferData[] dataTypes;

-	public int operations;

-	public int feedback;

-	

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDListener.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDListener.java
deleted file mode 100755
index 8c20b73..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDListener.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.internal.SWTEventListener;

-

-

-class DNDListener extends org.eclipse.swt.widgets.TypedListener {

-/**

- * DNDListener constructor comment.

- * @param listener org.eclipse.swt.internal.SWTEventListener

- */

-DNDListener(SWTEventListener listener) {

-	super(listener);

-}

-public void handleEvent (Event e) {

-	switch (e.type) {

-		case DND.DragStart: {

-			DragSourceEvent event = new DragSourceEvent((DNDEvent)e);

-			((DragSourceListener) eventListener).dragStart (event);

-			event.updateEvent((DNDEvent)e);

-			break;

-		}

-		case DND.DragEnd: {

-			DragSourceEvent event = new DragSourceEvent((DNDEvent)e);

-			((DragSourceListener) eventListener).dragFinished (event);

-			event.updateEvent((DNDEvent)e);

-			break;

-		}

-		case DND.DragSetData: {

-			DragSourceEvent event = new DragSourceEvent((DNDEvent)e);

-			((DragSourceListener) eventListener).dragSetData (event);

-			event.updateEvent((DNDEvent)e);

-			break;

-		}

-		case DND.DragEnter: {

-			DropTargetEvent event = new DropTargetEvent((DNDEvent)e);

-			((DropTargetListener) eventListener).dragEnter (event);

-			event.updateEvent((DNDEvent)e);

-			break;

-		}

-		case DND.DragLeave: {

-			DropTargetEvent event = new DropTargetEvent((DNDEvent)e);

-			((DropTargetListener) eventListener).dragLeave (event);

-			event.updateEvent((DNDEvent)e);

-			break;

-		}

-		case DND.DragOver: {

-			DropTargetEvent event = new DropTargetEvent((DNDEvent)e);

-			((DropTargetListener) eventListener).dragOver (event);

-			event.updateEvent((DNDEvent)e);

-			break;

-		}

-		case DND.Drop: {

-			DropTargetEvent event = new DropTargetEvent((DNDEvent)e);

-			((DropTargetListener) eventListener).drop (event);

-			event.updateEvent((DNDEvent)e);

-			break;

-		}

-		case DND.DropAccept: {

-			DropTargetEvent event = new DropTargetEvent((DNDEvent)e);

-			((DropTargetListener) eventListener).dropAccept (event);

-			event.updateEvent((DNDEvent)e);

-			break;

-		}

-		case DND.DragOperationChanged: {

-			DropTargetEvent event = new DropTargetEvent((DNDEvent)e);

-			((DropTargetListener) eventListener).dragOperationChanged (event);

-			event.updateEvent((DNDEvent)e);

-			break;

-		}

-		

-	}

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceAdapter.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceAdapter.java
deleted file mode 100755
index 30a349c..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceAdapter.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-public class DragSourceAdapter implements DragSourceListener {

-	public void dragStart(DragSourceEvent event){};

-	public void dragFinished(DragSourceEvent event){};

-	public void dragSetData(DragSourceEvent event){};

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceEvent.java
deleted file mode 100755
index f47370a..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceEvent.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-import org.eclipse.swt.events.TypedEvent;

-

-/**

- * The DragSourceEvent contains the event information passed in the methods of the DragSourceListener.

- * 

- * <p>dragStart : When a drag operation is about to being, the following fields apply:

- * <ul>

- * <li>widget   - (in) the DragSource object that is initiating the drag

- * <li>time     - (in) the time the drag action occurred

- * <li>doit     - (out) the application can set this value to false to prevent the drag from starting. Set to true by default.

- * </ul></p>

- *

- * <p>dragSetData : When requesting data from the DragSource, the following fields apply:

- * <ul>

- * <li>widget   - (in) the DragSource object that initiated the drag

- * <li>time     - (in) the time the drop occurred

- * <li>dataType - (in) the type of data requested.  This is a TransferData object and can be used with the Transfer subclasses.

- * <li>data     - (out) the application inserts the actual data here (must match the dataType).  This is a Java object and 

- *                      the type of Java object that the application should insert here depends on the data type.  

- *						For example, a TextTransfer requires a Java String containing the text; a FileTransfer requires 

- *						a Java array of String with each String in the array representing the full path of the file.  

- *						To determine what type of object you need to place in this field, consult the description of 

- *						the Transfer subclass

- * </ul></p>

- *

- * <p>dragFinished : When a drag operation has been completed, the following fields apply:

- * <ul>

- * <li>widget   - (in) the DragSource object that initiated the drag

- * <li>time     - (in) the time the drop occurred

- * <li>doit     - (in) true if the operation performed successfully

- * <li>detail   - (in) the operation that was performed (DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)

- * </ul></p>

- *

- */

- 

-public class DragSourceEvent extends TypedEvent {

- 	public int detail;

- 	public boolean doit;

-

- 	/**

-	 *  Platform specific information about the type of data being transferred.

- 	 */

-	public TransferData dataType;

-

-public DragSourceEvent(DNDEvent e) {

-	super(e);

-	this.data = e.data;

-	this.detail = e.detail;

-	this.doit = e.doit;

-	this.dataType = e.dataType;

-}

-void updateEvent(DNDEvent e) {

-	e.widget = this.widget;

-	e.time = this.time;

-	e.data = this.data;

-	e.detail = this.detail;

-	e.doit = this.doit;

-	e.dataType = this.dataType;

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceListener.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceListener.java
deleted file mode 100755
index d952888..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceListener.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-import org.eclipse.swt.internal.SWTEventListener;

-

-/**

- * The <code>DragSourceListener</code> class provides event notification to the application for DragSource events.

- *

- * <p>When the user drops data on a <code>DropTarget</code>, the application which defines the <code>DragSource</code>

- * must provide the dropped data by implementing <code>dragSetData</code>.</p>

- *

- * <p>After the drop has completed successfully or has been aborted, the application which defines the 

- * <code>DragSource</code> is required to take the appropriate cleanup action.  In the case of a successful 

- * <b>move</b> operation, the application must remove the data that was transferred.</p>

- *

- */

-public interface DragSourceListener extends SWTEventListener {

-

-/**

- * The user has begun the actions required to drag the widget. This event gives the application 

- * the chance to decide if a drag should be started.

- *

- * <p>The following fields in the DragSourceEvent apply:

- * <ul>

- * <li>widget   - (in) the DragSource object that initiated the drag

- * <li>time     - (in) the time the drop occurred

- * <li>doit     - (out) set to fase by default.  To cause a drag to begin, set this to true.

- * </ul></p>

- *

- * @param event the information associated with the drag finished event

- *

- */

-public void dragStart(DragSourceEvent event);

-

-/**

- * The data is required from the drag source.

- *

- * <p>The following fields in the DragSourceEvent apply:

- * <ul>

- * <li>widget   - (in) the DragSource object that initiated the drag

- * <li>time     - (in) the time the drop occurred

- * <li>dataType - (in) the type of data requested.  This is a TransferData object and can be used with the Transfer subclasses.

- * <li>data     - (out) the application inserts the actual data here (must match the dataType)

- * </ul></p>

- *

- * @param event the information associated with the drag set data event

- */

-public void dragSetData(DragSourceEvent event);

-

-/**

- * The drop has successfully completed(mouse up over a valid target) or has been terminated (such as hitting 

- * the ESC key). Perform cleanup such as removing data from the source side on a successful move operation.

- *

- * <p>The following fields in the DragSourceEvent apply:

- * <ul>

- * <li>widget   - (in) the DragSource object that initiated the drag

- * <li>time     - (in) the time the drop occurred

- * <li>doit     - (in) true if the operation performed successfully

- * <li>detail   - (in) the operation that was performed (DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)

- * </ul></p>

- *

- * @param event the information associated with the drag finished event

- *

- */

-public void dragFinished(DragSourceEvent event);

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragUnderEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragUnderEffect.java
deleted file mode 100755
index fc55ade..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragUnderEffect.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.widgets.*;

-

-abstract class DragUnderEffect {

-	

-abstract void show(int effect, int x, int y);

-

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetAdapter.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetAdapter.java
deleted file mode 100755
index 2b551b1..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetAdapter.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-public class DropTargetAdapter implements DropTargetListener {

-	

-public void dragEnter(DropTargetEvent event){};

-public void dragLeave(DropTargetEvent event){};

-public void dragOperationChanged(DropTargetEvent event){};

-public void dragOver(DropTargetEvent event){};

-public void drop(DropTargetEvent event){};

-public void dropAccept(DropTargetEvent event){};

-

-

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetEvent.java
deleted file mode 100755
index 19dff63..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetEvent.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-import org.eclipse.swt.events.TypedEvent;

-import org.eclipse.swt.widgets.Widget;

-

-/**

- * The DropTargetEvent contains the event information passed in the methods of the DropTargetListener.

- * 

- * <p>When in dragEnter(), dragOver(), dragLeave(), dragOperationChanged(), dropAccept(), 

- * the following fields apply:

- * <ul>

- * <li>(in)widget        - the object on which the data will be dropped if the mouse is released

- * <li>(in)time          - the time the drop occurred

- * <li>(in)x             - the x-cordinate of the cursor relative to the DropTarget <code>Control</code>

- * <li>(in)y             - the y-cordinate of the cursor relative to the DropTarget <code>Control</code>

- * <li>(in)dataTypes     - a list of the types of data that the DragSource can support

- * <li>(in,out)currentDataType - the specific type of data that will be provided on a drop

- * <li>(in)operations    - a list of the operations that the DragSource can support (e.g. DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK)

- * <li>(in,out)detail   - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)

- * </ul>

- * The application can change the operation that will be performed by modifying the <code>detail</code> field 

- * but the choice must be one of the values in the <code>operations</code> field.  

- * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>

- * field  but the value must be one of the values in the <code>dataTypes list</code>.</p>

- *

- * <p>When in drop(), the following fields apply:

- * <ul>

- * <li>(in)widget - the object on which the data was dropped

- * <li>(in)time    - the time the drop occurred

- * <li>(in)x        - the x-cordinate of the cursor relative to the <code>Display</code>

- * <li>(in)y        - the y-cordinate of the cursor relative to the <code>Display</code>

- * <li>(in,out)detail - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)

- * <li>(in)currentDataType - the specific type of data that is be contained in the <code>data</code> field

- * <li>(in)data     - the data (which is of type currentDataType); the type Java Object contained in this field is

- *						dependant on the Transfer subclass.  For example, the TextTransfer subclass provides a

- *						String with the text in the String.  The FileTransfer object provides an array of String with

- *						each String in the array containing the full path of the file.

- * </ul>

- * The application can cancel the drop operation by setting the detail field to DND.DROP_NONE.</p>

- *

- */

-public class DropTargetEvent extends TypedEvent {

-	public int x;

-	public int y;

-	public int detail;

-	/**

-	 * A list of the operations that the DragSource can support 

-	 * (e.g. DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK).

-	 */

-	public int operations;

-	public int feedback;

-	public Widget item;

-	

-	/*

-	 * Platform specfic data.

-	 */

-	/**

-	 * The type of data that will be dropped.

-	 */

-	public TransferData currentDataType;

-	/**

-	 * A list of the types of data that the DragSource is capable of providing.

-	 * The currentDataType must be a member of this list.

-	 */

-	public TransferData[] dataTypes;

-

-	

-public DropTargetEvent(DNDEvent e) {

-	super(e);

-	this.data = e.data;

-	this.x = e.x;

-	this.y = e.y;

-	this.detail = e.detail;

-	this.currentDataType = e.dataType;

-	this.dataTypes = e.dataTypes;

-	this.operations = e.operations;

-	this.feedback = e.feedback;

-	this.item = e.item;

-}

-void updateEvent(DNDEvent e) {

-	e.widget = this.widget;

-	e.time = this.time;

-	e.data = this.data;

-	e.x = this.x;

-	e.y = this.y;

-	e.detail = this.detail;

-	e.dataType = this.currentDataType;

-	e.dataTypes = this.dataTypes;

-	e.operations = this.operations;

-	e.feedback = this.feedback;

-	e.item = this.item;

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetListener.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetListener.java
deleted file mode 100755
index 5defa79..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetListener.java
+++ /dev/null
@@ -1,171 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.internal.SWTEventListener;

-

-/**

- * The <code>DropTargetListener</code> class provides event notification to the application for DropTarget events.

- *

- * <p>As the user moves the cursor into, over and out of a Control that has been designated as a DropTarget, events

- * indicate what operation can be performed and what data can be transferred if a drop where to occur at that point.

- * The application can respond to these events and change the type of data that will be dropped, change the operation 

- * that will be performed or stop any drop from happening on the current target.</p>

- *

- * <p>When the user causes a drop to happen by releasing the mouse over a valid drop target, the application has one 

- * last chance to change the data type of the drop through the DropAccept event.  If the drop is still allowed, the 

- * DropAccept event is immediately followed by the Drop event.  In the Drop event, the application can still change the

- * operation that is performed but the data type is fixed.</p>

- *

- */

-public interface DropTargetListener extends SWTEventListener {

-/**

- * The cursor has entered the drop target boundaries.

- *

- * <p>The following fields in the DropTargetEvent apply:

- * <ul>

- * <li>(in)widget        - the DragSource object that initiated the drag

- * <li>(in)time          - the time the drop occurred

- * <li>(in)x             - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)y             - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)dataTypes     - a list of the types of data that the <code>DragSource</code> can support

- * <li>(in,out)currentDataType - the specific type of data that will be provided

- * <li>(in)operations    - a list of the operations that the DragSource can support (e.g. <code>DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK</code>)

- * <li>(in,out)detail   - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)

- * </ul></p>

- *

- * <p>The application can change the operation that will be performed by modifying the <code>detail</code> field 

- * but the choice must be one of the values in the <code>operations</code> field.  

- * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>

- * field  but the value must be one of the values in the <code>dataTypes</code> list.</p>

- *

- * @param event  the information associated with the drag enter event

- *

- */

-public void dragEnter(DropTargetEvent event);

-/**

- * The cursor has left the drop target boundaries.

- *

- * <p>The following fields in the DropTargetEvent apply:

- * <ul>

- * <li>(in)widget        - the DragSource object that initiated the drag

- * <li>(in)time          - the time the drop occurred

- * <li>(in)x             - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)y             - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)dataTypes     - a list of the types of data that the <code>DragSource</code> can support

- * <li>(in,out)currentDataType - the specific type of data that will be provided

- * <li>(in)operations    - a list of the operations that the DragSource can support (e.g. <code>DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK</code>)

- * <li>(in,out)detail   - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)

- * </ul></p>

- *

- * <p>The application can change the operation that will be performed by modifying the <code>detail</code> field 

- * but the choice must be one of the values in the <code>operations</code> field.  

- * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>

- * field  but the value must be one of the values in the <code>dataTypes</code> list.</p>

- *

- * @param event  the information associated with the drag leave event

- *

- */

-

-public void dragLeave(DropTargetEvent event);

-/**

- * The operation being performed has changed (usually due to the user changing the selected key while dragging).

- *

- * <p>The following fields in the DropTargetEvent apply:

- * <ul>

- * <li>(in)widget        - the DragSource object that initiated the drag

- * <li>(in)time          - the time the drop occurred

- * <li>(in)x             - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)y             - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)dataTypes     - a list of the types of data that the <code>DragSource</code> can support

- * <li>(in,out)currentDataType - the specific type of data that will be provided

- * <li>(in)operations    - a list of the operations that the DragSource can support (e.g. <code>DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK</code>)

- * <li>(in,out)detail   - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)

- * </ul></p>

- *

- * <p>The application can change the operation that will be performed by modifying the <code>detail</code> field 

- * but the choice must be one of the values in the <code>operations</code> field.  

- * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>

- * field  but the value must be one of the values in the <code>dataTypes</code> list.</p>

- *

- * @param event  the information associated with the drag operation changed event

- */

-

-public void dragOperationChanged(DropTargetEvent event);

-/**

- * The cursor is moving over the drop target.

- *

- * <p>The following fields in the DropTargetEvent apply:

- * <ul>

- * <li>(in)widget        - the DragSource object that initiated the drag

- * <li>(in)time          - the time the drop occurred

- * <li>(in)x             - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)y             - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)dataTypes     - a list of the types of data that the <code>DragSource</code> can support

- * <li>(in,out)currentDataType - the specific type of data that will be provided

- * <li>(in)operations    - a list of the operations that the DragSource can support (e.g. <code>DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK</code>)

- * <li>(in,out)detail   - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)

- * </ul></p>

- *

- * <p>The application can change the operation that will be performed by modifying the <code>detail</code> field 

- * but the choice must be one of the values in the <code>operations</code> field.  

- * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>

- * field  but the value must be one of the values in the <code>dataTypes</code> list.</p>

- *

- * @param event  the information associated with the drag over event

- *

- */

-

-public void dragOver(DropTargetEvent event);

-/**

- * The data is being dropped.

- *

- * <p>The following fields in DropTargetEvent apply:

- * <ul>

- * <li>(in)widget   - the DragSource object that initiated the drag

- * <li>(in)time     - the time the drop occurred

- * <li>(in)x        - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)y        - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in,out)detail - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)

- * <li>(in)currentDataType - the specific type of data that will be provided

- * <li>(in)data     - the data (which is of type currentDataType)

- * </ul></p>

- *

- * <p>The application can refuse to perform the drop operation by setting the detail field to DND.DROP_NONE.</p>

- *

- * @param event the information associated with the drop event

- *

- */

-

-public void drop(DropTargetEvent event);

-/**

- * The drop target is given the chance to change the nature of the drop.  It can veto the drop by setting the 

- * <code>event.detail</code> field to <code>DND.DROP_NONE</code>, it can change the data of data that will be 

- * dropped by setting the <code>event.currentDataType</code> field to a different value or it can change the 

- * operation that will be performed by changing the <code>event.detail</code> field.

- *

- * <p>The following fields in the DropTargetEvent apply:

- * <ul>

- * <li>(in)widget        - the DragSource object that initiated the drag

- * <li>(in)time          - the time the drop occurred

- * <li>(in)x             - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)y             - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>

- * <li>(in)dataTypes     - a list of the types of data that the <code>DragSource</code> can support

- * <li>(in,out)currentDataType - the specific type of data that will be provided

- * <li>(in)operations    - a list of the operations that the DragSource can support (e.g. <code>DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK</code>)

- * <li>(in,out)detail   - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)

- * </ul></p>

- *

- * <p>The application can change the operation that will be performed by modifying the <code>detail</code> field 

- * but the choice must be one of the values in the <code>operations</code> field.  

- * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>

- * field  but the value must be one of the values in the <code>dataTypes</code> list.</p>

- *

- * @param event  the information associated with the drop accept event

- *

- */

-public void dropAccept(DropTargetEvent event);

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/NoDragUnderEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/NoDragUnderEffect.java
deleted file mode 100755
index d3d854a..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/NoDragUnderEffect.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.widgets.*;

-

-class NoDragUnderEffect extends DragUnderEffect {

-

-NoDragUnderEffect(Control control) {}

-void show(int effect, int x, int y){}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/package.html b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/package.html
deleted file mode 100755
index e2adf9d..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/package.html
+++ /dev/null
@@ -1,13 +0,0 @@
- <html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-SWT Drag and Drop support.
-<h2>
-Package Specification</h2>
-This package contains the classes which make up the public API of the SWT Drag and Drop support.
-</body>
-</html>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/ByteArrayTransfer.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/ByteArrayTransfer.java
deleted file mode 100644
index c8c5e4a..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/ByteArrayTransfer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.internal.gtk.*;

-

-/**
- * The class <code>ByteArrayTransfer</code> provides a platform specific mechanism for transforming
- * a Java array of bytes into a format that can be passed around in a Drag and Drop operation and vice
- * versa.
- *
- * <p>This abstract class can be subclassed to provided utilities for transforming Java data types
- * into the byte array based platform specific drag and drop data types.  See TextTransfer and 
- * FileTransfer for examples.  If the data you are transferring <b>does not</b> map to a byte array, 
- * you should sub-class Transfer directly and do your own mapping to the platform data types.</p>
- */ 

-public abstract class ByteArrayTransfer extends Transfer {

-public TransferData[] getSupportedTypes(){

-	return null;

-}

-public boolean isSupportedType(TransferData transferData){

-	return false;

-}

-

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/Clipboard.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/Clipboard.java
deleted file mode 100644
index b368acb..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/Clipboard.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.internal.*;

-import org.eclipse.swt.widgets.*;

-

-/**

- * IMPORTANT: This class is <em>not</em> intended to be subclassed.

- */ 

-public class Clipboard {

-	

-	private Display display;

-

-public Clipboard(Display display) {	

-	checkSubclass ();

-	if (display == null) {

-		display = Display.getCurrent();

-		if (display == null) {

-			display =  Display.getDefault();

-		}

-	}

-	if (display.getThread() != Thread.currentThread()) {

-		SWT.error(SWT.ERROR_THREAD_INVALID_ACCESS);

-	}

-	this.display = display;

-}

-protected void checkSubclass () {

-	String name = getClass().getName ();

-	String validName = Clipboard.class.getName();

-	if (!validName.equals(name)) {

-		DND.error (SWT.ERROR_INVALID_SUBCLASS);

-	}

-}

-public void dispose () {

-	display = null;

-}

-public Object getContents(Transfer transfer) {

-	if (display.isDisposed() || !(transfer instanceof TextTransfer)) return null;

-	return display.getData("TextTransfer");

-}

-public void setContents(Object[] data, Transfer[] transferAgents){

-	

-	if (data == null) {

-		DND.error(SWT.ERROR_NOT_IMPLEMENTED);

-	}

-	if (transferAgents == null || data.length != transferAgents.length) {

-		DND.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	

-	if (display.isDisposed() )

-		DND.error(DND.ERROR_CANNOT_SET_CLIPBOARD);

-	

-	for (int i = 0; i < transferAgents.length; i++) {

-		if (transferAgents[i] instanceof TextTransfer && data[i] instanceof String){

-			display.setData("TextTransfer", data[i]);

-			return;

-		}

-	}

-}

-/*

- * Note: getAvailableTypeNames is a tool for writing a Transfer sub-class only.  It should

- * NOT be used within an application because it provides platform specfic 

- * information.

- */

-public String[] getAvailableTypeNames() {

-	return null;

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DragSource.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DragSource.java
deleted file mode 100644
index 1c41d9e..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DragSource.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-import org.eclipse.swt.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.internal.*;

-import org.eclipse.swt.internal.gtk.*;

-

-/**
- *
- * Class <code>DragSource</code> defines the source object for a drag and drop transfer.
- *
- * IMPORTANT: This class is <em>not</em> intended to be subclassed.
- *
- * <p>This class defines the following items:<ul>
- *   <li>the <code>Control</code> that the user clicks on to intiate a drag;
- *   <li>the data that will be transferred on a successful drop; 
- *   <li>and the modes (move, copy, link) of transfer that are allowed.
- * </ul></p>
- *
- * <p>You may have several DragSources in an application but you can only have one DragSource 
- * per Control.  Data dragged from this DragSource can be dropped on a site within this application 
- * but it can also be dropped on another application such as an external Text editor.</p>
- * 
- * <p>The application supplies the content of the data being transferred by implementing the interface
- * <code>DragSourceListener</code> which uses the class <code>DragSourceEvent</code>.  
- * The application is required to take the appropriate action to remove the data from the drag source
- * when a successful move operation occurs.</p>
- *
- * <code><pre>
- *	// Enable a label as a Drag Source
- *	Label label = new Label(shell, SWT.NONE);
- *	// This example will allow text to be dragged
- *	Transfer[] types = new Transfer[] {TextTransfer.getInstance()};
- *	// This example will allow the text to be copied or moved to the drop target
- *	int operations = DND.DROP_MOVE | DND.DROP_COPY;
- *	
- *	DragSource source = new DragSource (label, operations);
- *	source.setTransfer(types);
- *	source.addDragListener (new DragSourceListener() {
- *		public void dragStart(DragSourceEvent e) {
- *			// Only start the drag if there is actually text in the
- *			// label - this text will be what is dropped on the target.
- *			if (label.getText().length() == 0) {
- *				event.doit = false;
- *			}
- *		};
- *		public void dragSetData (DragSourceEvent event) {
- *			// A drop has been performed, so provide the data of the 
- *			// requested type.
- *			// (Checking the type of the requested data is only 
- *			// necessary if the drag source supports more than 
- *			// one data type but is shown here as an example).
- *			if (TextTransfer.getInstance().isSupportedType(event.dataType)){
- *				event.data = label.getText();
- *			}
- *		}
- *		public void dragFinished(DragSourceEvent event) {
- *			// A Move operation has been performed so remove the data
- *			// from the source
- *			if (event.detail == DND.DROP_MOVE)
- *				label.setText("");
- *		}
- *	});
- * </pre></code>
- *
- *
- * <dl>
- *	<dt><b>Styles</b> <dd>DND.DROP_NONE, DND.DROP_COPY, DND.DROP_MOVE, DND.DROP_LINK 
- *	<dt><b>Events</b> <dd>DND.DragEnd, DND.DragSetData
- * </dl>
- */
-public final class DragSource extends Widget {

-

-/**
- * Creates a new <code>DragSource</code> to handle dragging from the specified <code>Control</code>.
- * 
- * @param control the <code>Control</code> that the user clicks on to initiate the drag
- *
- * @param style the bitwise OR'ing of allowed operations; this may be a combination of any of 
- *					DND.DROP_NONE, DND.DROP_COPY, DND.DROP_MOVE, DND.DROP_LINK
- *
- */
-public DragSource(Control control, int style) {

-	super (control, style);

-}

-/**	 
- * Adds the listener to receive events.
- *
- * @param listener the listener
- *
- * @exception SWTError 
- *	<ul><li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * 		<li>ERROR_WIDGET_DISPOSED  when the widget has been disposed</li>
- * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>
- */

-public void addDragListener(DragSourceListener listener) {

-

-}

-

-public Display getDisplay () {

-	return null;

-}

-/**
- * Returns the list of data types that can be transferred by this DragSource.
- *
- * @return the list of data types that can be transferred by this DragSource
- */
-public Transfer[] getTransfer(){

-	return null;

-}

-

-/**	 
- * Removes the listener.
- *
- * @param listener the listener
- *
- * @exception SWTError
- *	<ul><li>ERROR_THREAD_INVALID_ACCESS	when called from the wrong thread</li>
- * 		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>
- */

-public void removeDragListener(DragSourceListener listener) {

-}

-/**
- * Specifies the list of data types that can be transferred by this DragSource.
- * The application must be able to provide data to match each of these types when
- * a successful drop has occurred.
- */
-public void setTransfer(Transfer[] transferAgents){

-}

-/**

- * @deprecated - use DragSourceListener.dragStart

- */

-public void startDrag() {

-}

-

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DropTarget.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DropTarget.java
deleted file mode 100644
index 1be0fe0..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DropTarget.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-import org.eclipse.swt.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.internal.*;

-import org.eclipse.swt.internal.gtk.*;

-

-/**
- *
- * Class <code>DropTarget</code> defines the target object for a drag and drop transfer.
- *
- * IMPORTANT: This class is <em>not</em> intended to be subclassed.
- *
- * <p>This class identifies the <code>Control</code> over which the user must position the cursor
- * in order to drop the data being transferred.  It also specifies what data types can be dropped on 
- * this control and what operations can be performed.  You may have several DropTragets in an 
- * application but there can only be a one to one mapping between a <code>Control</code> and a <code>DropTarget</code>.
- * The DropTarget can receive data from within the same application or from other applications 
- * (such as text dragged from a text editor like Word).</p>
- *
- * <code><pre>
- *	int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
- *	Transfer[] types = new Transfer[] {TextTransfer.getInstance()};
- *	DropTarget target = new DropTarget(label, operations);
- *	target.setTransfer(types);
- * </code></pre>
- *
- * <p>The application is notified of data being dragged over this control and of when a drop occurs by 
- * implementing the interface <code>DropTargetListener</code> which uses the class 
- * <code>DropTargetEvent</code>.  The application can modify the type of drag being performed 
- * on this Control at any stage of the drag by modifying the <code>event.detail</code> field or the 
- * <code>event.currentDataType</code> field.  When the data is dropped, it is the responsibility of 
- * the application to copy this data for its own purposes.
- *
- * <code><pre>
- *	target.addDropListener (new DropTargetListener() {
- *		public void dragEnter(DropTargetEvent event) {};
- *		public void dragOver(DropTargetEvent event) {};
- *		public void dragLeave(DropTargetEvent event) {};
- *		public void dragOperationChanged(DropTargetEvent event) {};
- *		public void dropAccept(DropTargetEvent event) {}
- *		public void drop(DropTargetEvent event) {
- *			// A drop has occurred, copy over the data
- *			if (event.data == null) { // no data to copy, indicate failure in event.detail
- *				event.detail = DND.DROP_NONE;
- *				return;
- *			}
- *			label.setText ((String) event.data); // data copied to label text
- *		}
- * 	});
- * </pre></code>
- *
- * <dl>
- *	<dt><b>Styles</b> <dd>DND.DROP_NONE, DND.DROP_COPY, DND.DROP_MOVE, DND.DROP_LINK 
- *	<dt><b>Events</b> <dd>DND.DragEnter, DND.DragLeave, DND.DragOver, DND.DragOperationChanged, 
- *                        DND.Drop, DND.DropAccept
- * </dl>
- */
-public final class DropTarget extends Widget {

-	

-/**
- * Creates a new <code>DropTarget</code> to handle dropping on the specified <code>Control</code>.
- * 
- * @param control the <code>Control</code> over which the user positions the cursor to drop data
- *
- * @param style the bitwise OR'ing of allowed operations; this may be a combination of any of 
- *					DND.DROP_NONE, DND.DROP_COPY, DND.DROP_MOVE, DND.DROP_LINK
- *
- */
-public DropTarget(Control control, int style) {

-	super(control, style);

-}

-

-/**	 
- * Adds the listener to receive events.
- *
- * @param listener the listener
- *
- * @exception SWTError 
- *	<ul><li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * 		<li>ERROR_WIDGET_DISPOSED  when the widget has been disposed</li>
- * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>
- */

-public void addDropListener(DropTargetListener listener) {	

-}

-

-/**

- * Returns the Control which is registered for this DropTarget.  This is the control over which the 

- * user positions the cursor to drop the data.

- *

- * @return the Control which is registered for this DropTarget

- *

- */

-public Control getControl () {

-	return null;

-}

-public Display getDisplay () {

-	return null;

-}

-/**

- * Returns the list of data types that can be transferred to this DropTarget.

- *

- * @return the list of data types that can be transferred to this DropTarget

- *

- */ 

-public Transfer[] getTransfer() { return null; }

-public void notifyListener (int eventType, Event event) {}

-/**	 
- * Removes the listener.
- *
- * @param listener the listener
- *
- * @exception SWTError
- *	<ul><li>ERROR_THREAD_INVALID_ACCESS	when called from the wrong thread</li>
- * 		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>
- */

-public void removeDropListener(DropTargetListener listener) {}

-/**
- * Specifies the list of data types that can be transferred to this DropTarget.
- *
- * @param transferAgents a list of Transfer objects which define the types of data that can be
- *						 dropped on this target
- */
-public void setTransfer(Transfer[] transferAgents){}

-

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/FileTransfer.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/FileTransfer.java
deleted file mode 100644
index a3f240b..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/FileTransfer.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-/**
- * The <code>FileTransfer</code> class is used to transfer files in a drag and drop operation.
- */
-public class FileTransfer extends ByteArrayTransfer {

-	

-private FileTransfer() {}

-/**
- * Returns the singleton instance of the FileTransfer class.
- *
- * @return the singleton instance of the FileTransfer class
- */
-public static FileTransfer getInstance () {

-	return null;

-}

-/**
- * Converts a list of filenames to a platform specific representation. 
- * <p>
- * On a successful conversion, the transferData.result field will be set as follows:
- * <ul>
- * <li>Windows: OLE.S_OK
- * <li>Motif: 0
- * </ul>
- * If this transfer agent is unable to perform the conversion,
- * the transferData.result field will be set to a failure value as follows:
- * <ul>
- * <li>Windows: OLE.DV_E_TYMED
- * <li>Motif: 1
- * </ul></p>
- *
- * @param object a list of file names
- * @param transferData an empty TransferData object; this object will be filled in on return
- *        with the platform specific format of the data
- */
-public void javaToNative(Object object, TransferData transferData) {

-}

-/**
- * Converts a platform specific representation of a list of file names to a Java array of String.
- *
- * @param transferData the platform specific representation of the data that has been transferred
- * @return a Java array of String containing a list of file names if the conversion was successful;
- *         otherwise null
- */
-public Object nativeToJava(TransferData transferData) {

-	return null;

-}

-protected String[] getTypeNames(){

-	return null;

-}

-protected int[] getTypeIds(){

-	return null;

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/RTFTransfer.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/RTFTransfer.java
deleted file mode 100644
index 490afae..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/RTFTransfer.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-/**
- * The <code>RTFTransfer</code> class is used to transfer text with the RTF format
- * in a drag and drop operation.
- */
-public class RTFTransfer extends ByteArrayTransfer {

-

-	private static RTFTransfer _instance = new RTFTransfer();

-	private static final String TYPENAME1 = "text/rtf\0";

-	private static final int TYPEID1 = registerType(TYPENAME1);

-	private static final String TYPENAME2 = "TEXT/RTF\0";

-	private static final int TYPEID2 = registerType(TYPENAME2);

-	private static final String TYPENAME3 = "application/rtf\0";

-	private static final int TYPEID3 = registerType(TYPENAME3);

-

-private RTFTransfer() {

-}

-/**
- * Returns the singleton instance of the RTFTransfer class.
- *
- * @return the singleton instance of the RTFTransfer class
- */
-public static RTFTransfer getInstance () {

-	return _instance;

-}

-/**
- * Converts a RTF-formatted Java String to a platform specific representation. 
- * <p>
- * On a successful conversion, the transferData.result field will be set as follows:
- * <ul>
- * <li>Windows: OLE.S_OK
- * <li>Motif: 0
- * </ul>
- * If this transfer agent is unable to perform the conversion,
- * the transferData.result field will be set to a failure value as follows:
- * <ul>
- * <li>Windows: OLE.DV_E_TYMED
- * <li>Motif: 1
- * </ul></p>
- *
- * @param object a Java String containing the data to be transferred
- * @param transferData an empty TransferData object; this object will be filled in on return
- *        with the platform specific format of the data
- */
-public void javaToNative (Object object, TransferData transferData){

-}

-/**
- * Converts a platform specific representation of a string to a Java String.
- *
- * @param transferData the platform specific representation of the data that has been transferred
- * @return a Java String containing the transferred data if the conversion was successful;
- *         otherwise null
- */
-public Object nativeToJava(TransferData transferData){

-	return null;

-}

-protected String[] getTypeNames(){

-	return new String[]{TYPENAME1, TYPENAME2, TYPENAME3};

-}

-protected int[] getTypeIds(){

-	return new int[]{TYPEID1, TYPEID2, TYPEID3};

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TableDragUnderEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TableDragUnderEffect.java
deleted file mode 100644
index 6862a2e..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TableDragUnderEffect.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-class TableDragUnderEffect extends DragUnderEffect {

-	private Table table;

-	private TableItem currentItem;

-	private TableItem[] selection = new TableItem[0];

-	private int currentEffect = DND.FEEDBACK_NONE;

-	

-TableDragUnderEffect(Table table) {

-	this.table = table;

-}

-void show(int effect, int x, int y) {

-	TableItem item = null;

-	if (effect != DND.FEEDBACK_NONE) item = findItem(x, y);

-	if (item == null) effect = DND.FEEDBACK_NONE;

-	if (currentEffect != effect && currentEffect == DND.FEEDBACK_NONE) {

-		selection = table.getSelection();

-		table.setSelection(new TableItem[0]);

-	}

-	boolean restoreSelection = currentEffect != effect && effect == DND.FEEDBACK_NONE;

-	setDragUnderEffect(effect, item);

-	if (restoreSelection) {

-		table.setSelection(selection);

-		selection = new TableItem[0];

-	}

-}

-private TableItem findItem(int x, int y){

-	if (table == null) return null;

-	Point coordinates = new Point(x, y);

-	coordinates = table.toControl(coordinates);

-	return table.getItem(coordinates);

-}

-private void setDragUnderEffect(int effect, TableItem item) {	

-	if (currentItem != item) {

-		if (item == null) {

-			table.setSelection(new TableItem[0]);

-		} else {

-			table.setSelection(new TableItem[] {item});

-		}

-		currentItem = item;

-	}

-	currentEffect = effect;

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TextTransfer.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TextTransfer.java
deleted file mode 100644
index d84cbfe..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TextTransfer.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-/**
- * The <code>TextTransfer</code> class is used to transfer text in a drag and drop operation.
- */
-public class TextTransfer extends ByteArrayTransfer {

-

-	private static TextTransfer _instance = new TextTransfer();

-	private static final String TYPENAME1 = "STRING\0";

-	private static final int TYPEID1 = registerType(TYPENAME1);

-	private static final String TYPENAME2 = "text/plain\0";

-	private static final int TYPEID2 = registerType(TYPENAME2);

-	private static final String TYPENAME3 = "text/text\0";

-	private static final int TYPEID3 = registerType(TYPENAME3);

-

-private TextTransfer() {

-}

-/**
- * Returns the singleton instance of the TextTransfer class.
- *
- * @return the singleton instance of the TextTransfer class
- */
-public static TextTransfer getInstance () {

-	return _instance;

-}

-/**
- * Converts a plain text Java String to a platform specific representation. 
- * <p>
- * On a successful conversion, the transferData.result field will be set as follows:
- * <ul>
- * <li>Windows: OLE.S_OK
- * <li>Motif: 0
- * </ul>
- * If this transfer agent is unable to perform the conversion,
- * the transferData.result field will be set to a failure value as follows:
- * <ul>
- * <li>Windows: OLE.DV_E_TYMED
- * <li>Motif: 1
- * </ul></p>
- *
- * @param object a Java String containing the data to be transferred
- * @param transferData an empty TransferData object; this object will be filled in on return
- *        with the platform specific format of the data
- */
-public void javaToNative (Object object, TransferData transferData){

-}

-/**
- * Converts a platform specific representation of a string to a Java String.
- *
- * @param transferData the platform specific representation of the data that has been transferred
- * @return a Java String containing the transferred data if the conversion was successful;
- *         otherwise null
- */
-public Object nativeToJava(TransferData transferData){

-	return null;

-}

-protected String[] getTypeNames(){

-	return new String[]{TYPENAME1, TYPENAME2, TYPENAME3};

-}

-protected int[] getTypeIds(){

-	return new int[]{TYPEID1, TYPEID2, TYPEID3};

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/Transfer.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/Transfer.java
deleted file mode 100644
index 9dcf84f..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/Transfer.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-import org.eclipse.swt.internal.Converter;

-import org.eclipse.swt.internal.gtk.OS;

-import org.eclipse.swt.widgets.Display;

-

-/**
- * The class <code>Transfer</code> provides a mechanism for converting a Java object to a 
- * platform specific format that can be passed around in a Drag and Drop operation and vice versa.
- *
- * <p>You should only need to become familiar with this class if you are implementing
- * a Transfer subclass and you are unable to subclass the ByteArrayTransfer class.</p>
- */
-public abstract class Transfer {

-/**
- * Returns a list of the data types that can be transferred using this Transfer agent.
- *
- * <p>Only the data type fields of the TransferData Object are filled in.</p>
- *
- * @return a list of the data types that can be transferred using this Transfer agent
- */
-abstract public TransferData[] getSupportedTypes();

-/**
- * Returns true if the transferData data type can be transferred using this Transfer agent.
- *
- * @param transferData a platform specific description of a data type; only the data type fields 
- *                         of the TransferData Object need to be filled in
- *
- * @return true if the transferData data type can be transferred using this Transfer agent
- */
-abstract public boolean isSupportedType(TransferData transferData);

-abstract protected String[] getTypeNames();

-abstract protected int[] getTypeIds();

-abstract protected void javaToNative (Object object, TransferData transferData);

-abstract protected Object nativeToJava(TransferData transferData);

-/**
- * Registers a name for a data type and returns the associated unique identifier.
- *
- * <p>You may register the same type more than once, the same unique identifier will be returned if the
- * type has been previously registered.</p>
- *
- * <p>Note: Do <b>not</b> call this method with pre-defined Clipboard Format types such as CF_TEXT 
- * or CF_BITMAP because the pre-defined value will not be returned</p>
- *
- * @param formatName the name of a data type
- *
- * @return the unique identifier associated with htis data type
- */
-public static int registerType(String formatName){

-	return 0;

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TransferData.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TransferData.java
deleted file mode 100644
index bade8ba..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TransferData.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-/**
- * The <code>TransferData</code> class is a platform specific data structure for describing the type and the
- * contents of data being transferred in a Drag and Drop operation.
- *
- * <p>As an application writer, you do not need to know anything about the specifics of TransferData.  You
- * should just pass the TransferData instances to subclass of Transfer and let the Transfer objects deal 
- * with the platform specific issues.  You can ask a Transfer subclass if it can handle this data by calling 
- * TextTransfer.isSupportedType(transferData).  You can get a list of the types of TransferData supported by a 
- * Transfer object by calling TextTransfer.getSupportedTypes().</p>
- *
- * <p>You should only need to become familiar with the fields in this class if you are implementing
- * a Transfer subclass and you are unable to subclass the ByteArrayTransfer class.</p>
- */
-public class TransferData {

-	/**
-	 * Data Type - a pre-defined clipboard format <b>or</b> the unique identifier of a user defined format
-	 * (Warning: This field is platform dependent)
-	 */
-	public int type;

-	

-	// attributes specific to set/get

-	int length;

-	int format;

-	int pValue;

-

-	int result;

-	

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TreeDragUnderEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TreeDragUnderEffect.java
deleted file mode 100644
index 54ff723..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/TreeDragUnderEffect.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-

-class TreeDragUnderEffect extends DragUnderEffect {

-

-	private Tree tree;

-	private TreeItem currentItem = null;

-	private int currentEffect = DND.FEEDBACK_NONE;

-	private TreeItem[] selection = new TreeItem[0];

-

-TreeDragUnderEffect(Tree tree) {

-	this.tree = tree;

-}

-void show(int effect, int x, int y) {

-	TreeItem item = null;

-	if (effect != DND.FEEDBACK_NONE) item = findItem(x, y);

-	if (item == null) effect = DND.FEEDBACK_NONE;

-	if (currentEffect != effect && currentEffect == DND.FEEDBACK_NONE) {

-		selection = tree.getSelection();

-		tree.setSelection(new TreeItem[0]);

-	}

-	boolean restoreSelection = currentEffect != effect && effect == DND.FEEDBACK_NONE;

-	setDragUnderEffect(effect, item);

-	if (restoreSelection) {

-		tree.setSelection(selection);

-		selection = new TreeItem[0];

-	}

-}

-private TreeItem findItem(int x , int y){

-	Point coordinates = new Point(x, y);

-	coordinates = tree.toControl(coordinates);

-	return tree.getItem(coordinates);

-}

-private void setDragUnderEffect(int effect, TreeItem item) {

-	switch (effect) {				

-		case DND.FEEDBACK_SELECT:

-			if (currentEffect == DND.FEEDBACK_INSERT_AFTER ||

-			    currentEffect == DND.FEEDBACK_INSERT_BEFORE) {

-				setInsertMark(null, false);

-				currentEffect = DND.FEEDBACK_NONE;

-				currentItem = null;

-			}

-			if (currentEffect != effect || currentItem != item) { 

-				setDropSelection(item); 

-				currentEffect = DND.FEEDBACK_SELECT;

-				currentItem = item;

-			}

-			break;

-		case DND.FEEDBACK_INSERT_AFTER:

-		case DND.FEEDBACK_INSERT_BEFORE:

-			if (currentEffect == DND.FEEDBACK_SELECT) {

-				setDropSelection(null);

-				currentEffect = DND.FEEDBACK_NONE;

-				currentItem = null;

-			}

-			if (currentEffect != effect || currentItem != item) { 

-				setInsertMark(item, effect == DND.FEEDBACK_INSERT_AFTER);

-				currentEffect = effect;

-				currentItem = item;

-			}

-			break;			

-		default :

-			if (currentEffect == DND.FEEDBACK_INSERT_AFTER ||

-			    currentEffect == DND.FEEDBACK_INSERT_BEFORE) {

-				setInsertMark(null, false);

-			}

-			if (currentEffect == DND.FEEDBACK_SELECT) {

-				setDropSelection(null);

-			}

-			currentEffect = DND.FEEDBACK_NONE;

-			currentItem = null;

-			break;

-	}

-}

-private void setDropSelection (TreeItem item) {

-	if (item == null) {

-		tree.setSelection(new TreeItem[0]);

-	} else {

-		tree.setSelection(new TreeItem[]{item});

-	}

-}

-private void setInsertMark (TreeItem item, boolean after) {

-	// not currently implemented

-}

-}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/ByteArrayTransfer.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/ByteArrayTransfer.java
deleted file mode 100644
index c8c5e4a..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/ByteArrayTransfer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.internal.gtk.*;

-

-/**
- * The class <code>ByteArrayTransfer</code> provides a platform specific mechanism for transforming
- * a Java array of bytes into a format that can be passed around in a Drag and Drop operation and vice
- * versa.
- *
- * <p>This abstract class can be subclassed to provided utilities for transforming Java data types
- * into the byte array based platform specific drag and drop data types.  See TextTransfer and 
- * FileTransfer for examples.  If the data you are transferring <b>does not</b> map to a byte array, 
- * you should sub-class Transfer directly and do your own mapping to the platform data types.</p>
- */ 

-public abstract class ByteArrayTransfer extends Transfer {

-public TransferData[] getSupportedTypes(){

-	return null;

-}

-public boolean isSupportedType(TransferData transferData){

-	return false;

-}

-

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/Clipboard.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/Clipboard.java
deleted file mode 100644
index b368acb..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/Clipboard.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-

-import org.eclipse.swt.*;

-import org.eclipse.swt.internal.*;

-import org.eclipse.swt.widgets.*;

-

-/**

- * IMPORTANT: This class is <em>not</em> intended to be subclassed.

- */ 

-public class Clipboard {

-	

-	private Display display;

-

-public Clipboard(Display display) {	

-	checkSubclass ();

-	if (display == null) {

-		display = Display.getCurrent();

-		if (display == null) {

-			display =  Display.getDefault();

-		}

-	}

-	if (display.getThread() != Thread.currentThread()) {

-		SWT.error(SWT.ERROR_THREAD_INVALID_ACCESS);

-	}

-	this.display = display;

-}

-protected void checkSubclass () {

-	String name = getClass().getName ();

-	String validName = Clipboard.class.getName();

-	if (!validName.equals(name)) {

-		DND.error (SWT.ERROR_INVALID_SUBCLASS);

-	}

-}

-public void dispose () {

-	display = null;

-}

-public Object getContents(Transfer transfer) {

-	if (display.isDisposed() || !(transfer instanceof TextTransfer)) return null;

-	return display.getData("TextTransfer");

-}

-public void setContents(Object[] data, Transfer[] transferAgents){

-	

-	if (data == null) {

-		DND.error(SWT.ERROR_NOT_IMPLEMENTED);

-	}

-	if (transferAgents == null || data.length != transferAgents.length) {

-		DND.error(SWT.ERROR_INVALID_ARGUMENT);

-	}

-	

-	if (display.isDisposed() )

-		DND.error(DND.ERROR_CANNOT_SET_CLIPBOARD);

-	

-	for (int i = 0; i < transferAgents.length; i++) {

-		if (transferAgents[i] instanceof TextTransfer && data[i] instanceof String){

-			display.setData("TextTransfer", data[i]);

-			return;

-		}

-	}

-}

-/*

- * Note: getAvailableTypeNames is a tool for writing a Transfer sub-class only.  It should

- * NOT be used within an application because it provides platform specfic 

- * information.

- */

-public String[] getAvailableTypeNames() {

-	return null;

-}

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/DragSource.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/DragSource.java
deleted file mode 100644
index 1c41d9e..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/DragSource.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

- 

-import org.eclipse.swt.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.internal.*;

-import org.eclipse.swt.internal.gtk.*;

-

-/**
- *
- * Class <code>DragSource</code> defines the source object for a drag and drop transfer.
- *
- * IMPORTANT: This class is <em>not</em> intended to be subclassed.
- *
- * <p>This class defines the following items:<ul>
- *   <li>the <code>Control</code> that the user clicks on to intiate a drag;
- *   <li>the data that will be transferred on a successful drop; 
- *   <li>and the modes (move, copy, link) of transfer that are allowed.
- * </ul></p>
- *
- * <p>You may have several DragSources in an application but you can only have one DragSource 
- * per Control.  Data dragged from this DragSource can be dropped on a site within this application 
- * but it can also be dropped on another application such as an external Text editor.</p>
- * 
- * <p>The application supplies the content of the data being transferred by implementing the interface
- * <code>DragSourceListener</code> which uses the class <code>DragSourceEvent</code>.  
- * The application is required to take the appropriate action to remove the data from the drag source
- * when a successful move operation occurs.</p>
- *
- * <code><pre>
- *	// Enable a label as a Drag Source
- *	Label label = new Label(shell, SWT.NONE);
- *	// This example will allow text to be dragged
- *	Transfer[] types = new Transfer[] {TextTransfer.getInstance()};
- *	// This example will allow the text to be copied or moved to the drop target
- *	int operations = DND.DROP_MOVE | DND.DROP_COPY;
- *	
- *	DragSource source = new DragSource (label, operations);
- *	source.setTransfer(types);
- *	source.addDragListener (new DragSourceListener() {
- *		public void dragStart(DragSourceEvent e) {
- *			// Only start the drag if there is actually text in the
- *			// label - this text will be what is dropped on the target.
- *			if (label.getText().length() == 0) {
- *				event.doit = false;
- *			}
- *		};
- *		public void dragSetData (DragSourceEvent event) {
- *			// A drop has been performed, so provide the data of the 
- *			// requested type.
- *			// (Checking the type of the requested data is only 
- *			// necessary if the drag source supports more than 
- *			// one data type but is shown here as an example).
- *			if (TextTransfer.getInstance().isSupportedType(event.dataType)){
- *				event.data = label.getText();
- *			}
- *		}
- *		public void dragFinished(DragSourceEvent event) {
- *			// A Move operation has been performed so remove the data
- *			// from the source
- *			if (event.detail == DND.DROP_MOVE)
- *				label.setText("");
- *		}
- *	});
- * </pre></code>
- *
- *
- * <dl>
- *	<dt><b>Styles</b> <dd>DND.DROP_NONE, DND.DROP_COPY, DND.DROP_MOVE, DND.DROP_LINK 
- *	<dt><b>Events</b> <dd>DND.DragEnd, DND.DragSetData
- * </dl>
- */
-public final class DragSource extends Widget {

-

-/**
- * Creates a new <code>DragSource</code> to handle dragging from the specified <code>Control</code>.
- * 
- * @param control the <code>Control</code> that the user clicks on to initiate the drag
- *
- * @param style the bitwise OR'ing of allowed operations; this may be a combination of any of 
- *					DND.DROP_NONE, DND.DROP_COPY, DND.DROP_MOVE, DND.DROP_LINK
- *
- */
-public DragSource(Control control, int style) {

-	super (control, style);

-}

-/**	 
- * Adds the listener to receive events.
- *
- * @param listener the listener
- *
- * @exception SWTError 
- *	<ul><li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
- * 		<li>ERROR_WIDGET_DISPOSED  when the widget has been disposed</li>
- * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>
- */

-public void addDragListener(DragSourceListener listener) {

-

-}

-

-public Display getDisplay () {

-	return null;

-}

-/**
- * Returns the list of data types that can be transferred by this DragSource.
- *
- * @return the list of data types that can be transferred by this DragSource
- */
-public Transfer[] getTransfer(){

-	return null;

-}

-

-/**	 
- * Removes the listener.
- *
- * @param listener the listener
- *
- * @exception SWTError
- *	<ul><li>ERROR_THREAD_INVALID_ACCESS	when called from the wrong thread</li>
- * 		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
- * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>
- */

-public void removeDragListener(DragSourceListener listener) {

-}

-/**
- * Specifies the list of data types that can be transferred by this DragSource.
- * The application must be able to provide data to match each of these types when
- * a successful drop has occurred.
- */
-public void setTransfer(Transfer[] transferAgents){

-}

-/**

- * @deprecated - use DragSourceListener.dragStart

- */

-public void startDrag() {

-}

-

-}

diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/DropTarget.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/DropTarget.java
deleted file mode 100644
index 1be0fe0..0000000
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk1x/org/eclipse/swt/dnd/DropTarget.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package org.eclipse.swt.dnd;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved

- */

-