This commit was manufactured by cvs2svn to create tag 'v3014'.

Sprout from master 2003-07-14 22:28:07 UTC Felipe Heidrich <fheidric> 'v3014'
Cherrypick from master 2003-07-15 20:25:55 UTC Christophe Cornu <ccornu> '*** empty log message ***':
    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/Test_org_eclipse_swt_widgets_Control.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_Monitor.java
Delete:
    bundles/org.eclipse.swt.opengl/.classpath_gtk
    bundles/org.eclipse.swt.opengl/.classpath_motif
    bundles/org.eclipse.swt.opengl/.classpath_win32
    bundles/org.eclipse.swt.opengl/.cvsignore
    bundles/org.eclipse.swt.opengl/.project
    bundles/org.eclipse.swt.opengl/about.html
    bundles/org.eclipse.swt.opengl/common/gl_library/gl.c
    bundles/org.eclipse.swt.opengl/common/gl_library/glu.c
    bundles/org.eclipse.swt.opengl/common/gl_library/swt.h
    bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GL.java
    bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GLU.java
    bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GLYPHMETRICSFLOAT.java
    bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/ImageDataUtil.java
    bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/Library.java
    bundles/org.eclipse.swt.opengl/gtk/gl_library/build.sh
    bundles/org.eclipse.swt.opengl/gtk/gl_library/gtkglext.c
    bundles/org.eclipse.swt.opengl/gtk/gl_library/make_gtk.mak
    bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/GLContext.class
    bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/GLContext.java
    bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/internal/gtk/GTKEXT.class
    bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/internal/gtk/GTKGLEXT.java
    bundles/org.eclipse.swt.opengl/motif/gl_library/build.csh
    bundles/org.eclipse.swt.opengl/motif/gl_library/glx.c
    bundles/org.eclipse.swt.opengl/motif/gl_library/make_aix.mak
    bundles/org.eclipse.swt.opengl/motif/gl_library/make_hpux.mak
    bundles/org.eclipse.swt.opengl/motif/gl_library/make_linux.mak
    bundles/org.eclipse.swt.opengl/motif/gl_library/make_solaris.mak
    bundles/org.eclipse.swt.opengl/motif/gl_library/structs.c
    bundles/org.eclipse.swt.opengl/motif/gl_library/structs.h
    bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/GLContext.java
    bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/internal/motif/XGL.java
    bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/internal/motif/XVisualInfo.java
    bundles/org.eclipse.swt.opengl/plugin.properties
    bundles/org.eclipse.swt.opengl/plugin.xml
    bundles/org.eclipse.swt.opengl/win32/gl_library/build.bat
    bundles/org.eclipse.swt.opengl/win32/gl_library/glw.c
    bundles/org.eclipse.swt.opengl/win32/gl_library/make_win32.mak
    bundles/org.eclipse.swt.opengl/win32/gl_library/structs.c
    bundles/org.eclipse.swt.opengl/win32/gl_library/structs.h
    bundles/org.eclipse.swt.opengl/win32/gl_library/swt.rc
    bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/GLContext.java
    bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/LAYERPLANEDESCRIPTOR.java
    bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/PIXELFORMATDESCRIPTOR.java
    bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/POINTFLOAT.java
    bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/WGL.java
    examples/org.eclipse.swt.examples.controls/.classpath
    examples/org.eclipse.swt.examples.controls/.cvsignore
    examples/org.eclipse.swt.examples.controls/.project
    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/doc-html/swt_customcontrols_ex.html
    examples/org.eclipse.swt.examples.controls/icons/controls_example.gif
    examples/org.eclipse.swt.examples.controls/plugin.properties
    examples/org.eclipse.swt.examples.controls/plugin.xml
    examples/org.eclipse.swt.examples.controls/src/import.properties
    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.controls/src/org/eclipse/swt/examples/controls/CustomControlView.java
    examples/org.eclipse.swt.examples.launcher/.classpath
    examples/org.eclipse.swt.examples.launcher/.cvsignore
    examples/org.eclipse.swt.examples.launcher/.project
    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/plugin.properties
    examples/org.eclipse.swt.examples.launcher/plugin.xml
    examples/org.eclipse.swt.examples.launcher/schema/org.eclipse.swt.examples.launcher.launchItems.exsd
    examples/org.eclipse.swt.examples.launcher/src/import.properties
    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.layouts/.classpath
    examples/org.eclipse.swt.examples.layouts/.cvsignore
    examples/org.eclipse.swt.examples.layouts/.project
    examples/org.eclipse.swt.examples.layouts/about.html
    examples/org.eclipse.swt.examples.layouts/build.properties
    examples/org.eclipse.swt.examples.layouts/doc-html/hglegal.htm
    examples/org.eclipse.swt.examples.layouts/doc-html/ngibmcpy.gif
    examples/org.eclipse.swt.examples.layouts/doc-html/swt_layout_ex.html
    examples/org.eclipse.swt.examples.layouts/icons/layouts_example.gif
    examples/org.eclipse.swt.examples.layouts/plugin.properties
    examples/org.eclipse.swt.examples.layouts/plugin.xml
    examples/org.eclipse.swt.examples.layouts/src/import.properties
    examples/org.eclipse.swt.examples.layouts/src/org/eclipse/swt/examples/layouts/LayoutPlugin.java
    examples/org.eclipse.swt.examples.layouts/src/org/eclipse/swt/examples/layouts/LayoutView.java
    examples/org.eclipse.swt.examples.ole.win32/.classpath
    examples/org.eclipse.swt.examples.ole.win32/.cvsignore
    examples/org.eclipse.swt.examples.ole.win32/.project
    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/plugin.properties
    examples/org.eclipse.swt.examples.ole.win32/plugin.xml
    examples/org.eclipse.swt.examples.ole.win32/src/import.properties
    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/.project
    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/plugin.properties
    examples/org.eclipse.swt.examples.paint/plugin.xml
    examples/org.eclipse.swt.examples.paint/src/import.properties
    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/.project
    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_clipboard_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/plugin.properties
    examples/org.eclipse.swt.examples/plugin.xml
    examples/org.eclipse.swt.examples/src/examples_addressbook.properties
    examples/org.eclipse.swt.examples/src/examples_control.properties
    examples/org.eclipse.swt.examples/src/examples_fileviewer.properties
    examples/org.eclipse.swt.examples/src/examples_helloworld.properties
    examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties
    examples/org.eclipse.swt.examples/src/examples_images.properties
    examples/org.eclipse.swt.examples/src/examples_javaviewer.properties
    examples/org.eclipse.swt.examples/src/examples_layout.properties
    examples/org.eclipse.swt.examples/src/examples_texteditor.properties
    examples/org.eclipse.swt.examples/src/import.properties
    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/clipboard/ClipboardExample.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.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/CComboTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.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/CustomControlExample.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/SashFormTab.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/StyledTextTab.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/TableTreeTab.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/bold.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp
    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/red.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/ImageTransfer.java
    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/layoutexample/FillLayoutTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java
    examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.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
    examples/org.eclipse.swt.opengl.examples/.classpath
    examples/org.eclipse.swt.opengl.examples/.project
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/AntialiasingTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/AreaTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/BezierTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/BitmapTextTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ColorSelectionGroup.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/FogTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/GradientTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/IColorSelectionListener.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/LightTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/NurbTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ObjectsTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OpenGLExample.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OpenGLTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OutlineTextTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ReflectionTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/SelectionTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/StencilTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/TextureTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/TransparencyTab.java
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Ball.jpg
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Box.bmp
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Floor.jpg
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/splash.bmp
    examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/untitled.jpg
diff --git a/bundles/org.eclipse.swt.opengl/.classpath_gtk b/bundles/org.eclipse.swt.opengl/.classpath_gtk
deleted file mode 100644
index 35d4c34..0000000
--- a/bundles/org.eclipse.swt.opengl/.classpath_gtk
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="src" path="common"/>
-    <classpathentry kind="src" path="gtk"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.swt.opengl/.classpath_motif b/bundles/org.eclipse.swt.opengl/.classpath_motif
deleted file mode 100644
index 6f974c1..0000000
--- a/bundles/org.eclipse.swt.opengl/.classpath_motif
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="src" path="common"/>
-    <classpathentry kind="src" path="motif"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.swt.opengl/.classpath_win32 b/bundles/org.eclipse.swt.opengl/.classpath_win32
deleted file mode 100644
index 30299c8..0000000
--- a/bundles/org.eclipse.swt.opengl/.classpath_win32
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="src" path="common"/>
-    <classpathentry kind="src" path="win32"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.swt.opengl/.cvsignore b/bundles/org.eclipse.swt.opengl/.cvsignore
deleted file mode 100644
index 661113b..0000000
--- a/bundles/org.eclipse.swt.opengl/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-.classpath
-ws
diff --git a/bundles/org.eclipse.swt.opengl/.project b/bundles/org.eclipse.swt.opengl/.project
deleted file mode 100644
index 577537a..0000000
--- a/bundles/org.eclipse.swt.opengl/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.swt.opengl</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.swt</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.team.cvs.core.cvsnature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.swt.opengl/about.html b/bundles/org.eclipse.swt.opengl/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/bundles/org.eclipse.swt.opengl/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.opengl/common/gl_library/gl.c b/bundles/org.eclipse.swt.opengl/common/gl_library/gl.c
deleted file mode 100644
index fac5d6a..0000000
--- a/bundles/org.eclipse.swt.opengl/common/gl_library/gl.c
+++ /dev/null
@@ -1,3342 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-#ifdef WIN32

-#include <windows.h>

-#endif

-#include <GL/gl.h>

-#include "swt.h"

-

-#define GL_NATIVE(func) Java_org_eclipse_swt_opengl_GL_##func

-

-JNIEXPORT void JNICALL GL_NATIVE(glAccum)

-	(JNIEnv *env, jclass that, jint arg0, jfloat arg1)

-{

-	DEBUG_CALL("glAccum\n") 

-

-	glAccum(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glAlphaFunc)

-	(JNIEnv *env, jclass that, jint arg0, jfloat arg1)

-{

-	DEBUG_CALL("glAlphaFunc\n")

-

-	glAlphaFunc(arg0, arg1);

-}

-

-JNIEXPORT jboolean JNICALL GL_NATIVE(glAreTexturesResident)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jbooleanArray arg2)

-{

-	jint *lparg1=NULL;

-	jboolean *lparg2=NULL;

-	jboolean rc;

-

-	DEBUG_CALL("glAreTexturesResident\n")

-

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetBooleanArrayElements(env, arg2, NULL);

-	rc = (jboolean)glAreTexturesResident(arg0, (unsigned int *)lparg1, lparg2);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseBooleanArrayElements(env, arg2, lparg2, 0);

-	return rc;

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glArrayElement)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glArrayElement\n")

-

-	glArrayElement(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glBegin)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glBegin\n")

-

-	glBegin(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glBindTexture)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glBindTexture\n")

-

-	glBindTexture(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glBitmap)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat arg2, jfloat arg3, jfloat arg4, jfloat arg5, jbyteArray arg6)

-{

-	jbyte *lparg6=NULL;

-

-	DEBUG_CALL("glBitmap\n")

-

-	if (arg6) lparg6 = (*env)->GetByteArrayElements(env, arg6, NULL);

-	glBitmap(arg0, arg1, arg2, arg3, arg4, arg5, (unsigned char *)lparg6);

-	if (arg6) (*env)->ReleaseByteArrayElements(env, arg6, lparg6, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glBlendFunc)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glBlendFunc\n")

-

-	glBlendFunc(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glCallList)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glCallList\n")

-

-	glCallList(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glCallLists__II_3B)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jbyteArray arg2)

-{

-	jbyte *lparg2=NULL;

-

-	DEBUG_CALL("glCallLists__II_3B\n")

-

-	if (arg2) lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL);

-	glCallLists(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glCallLists__II_3C)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jcharArray arg2)

-{

-	jchar *lparg2=NULL;

-

-	DEBUG_CALL("glCallLists__II_3C\n")

-

-	if (arg2) lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL);

-	glCallLists(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glCallLists__II_3I)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glCallLists__II_3I\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glCallLists(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glClear)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glClear\n")

-

-	glClear(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glClearAccum)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2, jfloat arg3)

-{

-	DEBUG_CALL("glClearAccum\n")

-

-	glClearAccum(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glClearColor)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2, jfloat arg3)

-{

-	DEBUG_CALL("glClearColor\n")

-

-	glClearColor(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glClearDepth)

-	(JNIEnv *env, jclass that, jdouble arg0)

-{

-	DEBUG_CALL("glClearDepth\n")

-

-	glClearDepth(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glClearIndex)

-	(JNIEnv *env, jclass that, jfloat arg0)

-{

-	DEBUG_CALL("glClearIndex\n")

-

-	glClearIndex(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glClearStencil)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glClearStencil\n")

-

-	glClearStencil(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glClipPlane)

-	(JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1)

-{

-	jdouble *lparg1=NULL;

-

-	DEBUG_CALL("glClipPlane\n")

-

-	if (arg1) lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL);

-	glClipPlane(arg0, lparg1);

-	if (arg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3b)

-	(JNIEnv *env, jclass that, jbyte arg0, jbyte arg1, jbyte arg2)

-{

-	DEBUG_CALL("glColor3b\n")

-

-	glColor3b(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3bv)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-

-	DEBUG_CALL("glColor3bv\n")

-

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	glColor3bv(lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2)

-{

-	DEBUG_CALL("glColor3d\n")

-

-	glColor3d(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glColor3dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glColor3dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2)

-{

-	DEBUG_CALL("glColor3f\n")

-

-	glColor3f(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glColor3fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glColor3fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glColor3i\n")

-

-	glColor3i(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glColor3iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glColor3iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2)

-{

-	DEBUG_CALL("glColor3s\n")

-

-	glColor3s(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3ub)

-	(JNIEnv *env, jclass that, jbyte arg0, jbyte arg1, jbyte arg2)

-{

-	DEBUG_CALL("glColor3ub\n")

-

-	glColor3ub(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3ubv)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-

-	DEBUG_CALL("glColor3ubv\n")

-

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	glColor3ubv((unsigned char *)lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3ui)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glColor3ui\n")

-

-	glColor3ui(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3uiv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glColor3uiv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glColor3uiv((unsigned int *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3us)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2)

-{

-	DEBUG_CALL("glColor3us\n")

-

-	glColor3us(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor3usv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glColor3usv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glColor3usv((unsigned short *)lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4b)

-	(JNIEnv *env, jclass that, jbyte arg0, jbyte arg1, jbyte arg2, jbyte arg3)

-{

-	DEBUG_CALL("glColor4b\n")

-

-	glColor4b(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4bv)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-

-	DEBUG_CALL("glColor4bv\n")

-

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	glColor4bv(lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3)

-{

-	DEBUG_CALL("glColor4d\n")

-

-	glColor4d(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glColor4dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glColor4dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2, jfloat arg3)

-{

-	DEBUG_CALL("glColor4f\n")

-

-	glColor4f(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glColor4fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glColor4fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("glColor4i\n")

-

-	glColor4i(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glColor4iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glColor4iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2, jshort arg3)

-{

-	DEBUG_CALL("glColor4s\n")

-

-	glColor4s(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4ub)

-	(JNIEnv *env, jclass that, jbyte arg0, jbyte arg1, jbyte arg2, jbyte arg3)

-{

-	DEBUG_CALL("glColor4ub\n")

-

-	glColor4ub(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4ubv)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-

-	DEBUG_CALL("glColor4ubv\n")

-

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	glColor4ubv((unsigned char *)lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4ui)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("glColor4ui\n")

-

-	glColor4ui(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4uiv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glColor4uiv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glColor4uiv((unsigned int *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4us)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2, jshort arg3)

-{

-	DEBUG_CALL("glColor4us\n")

-

-	glColor4us(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColor4usv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glColor4usv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glColor4usv((unsigned short *)lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColorMask)

-	(JNIEnv *env, jclass that, jboolean arg0, jboolean arg1, jboolean arg2, jboolean arg3)

-{

-	DEBUG_CALL("glColorMask\n")

-

-	glColorMask(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColorMaterial)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glColorMaterial\n")

-

-	glColorMaterial(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glColorPointer)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-	jint *lparg3=NULL;

-

-	DEBUG_CALL("glColorPointer\n")

-

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	glColorPointer(arg0, arg1, arg2, lparg3);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glCopyPixels)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	DEBUG_CALL("glCopyPixels\n")

-

-	glCopyPixels(arg0, arg1, arg2, arg3, arg4);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glCopyTexImage1D)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6)

-{

-	DEBUG_CALL("glCopyTexImage1D\n")

-

-	glCopyTexImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glCopyTexImage2D)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7)

-{

-	DEBUG_CALL("glCopyTexImage2D\n")

-

-	glCopyTexImage2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glCopyTexSubImage1D)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5)

-{

-	DEBUG_CALL("glCopyTexSubImage1D\n")

-

-	glCopyTexSubImage1D(arg0, arg1, arg2, arg3, arg4, arg5);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glCopyTexSubImage2D)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7)

-{

-	DEBUG_CALL("glCopyTexSubImage2D\n")

-

-	glCopyTexSubImage2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glCullFace)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glCullFace\n")

-

-	glCullFace(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDeleteLists)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glDeleteLists\n")

-

-	glDeleteLists(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDeleteTextures)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1)

-{

-	jint *lparg1=NULL;

-

-	DEBUG_CALL("glDeleteTextures\n")

-

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	glDeleteTextures(arg0, (unsigned int *)lparg1);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDepthFunc)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glDepthFunc\n")

-

-	glDepthFunc(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDepthMask)

-	(JNIEnv *env, jclass that, jboolean arg0)

-{

-	DEBUG_CALL("glDepthMask\n")

-

-	glDepthMask(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDepthRange)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1)

-{

-	DEBUG_CALL("glDepthRange\n")

-

-	glDepthRange(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDisable)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glDisable\n")

-

-	glDisable(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDisableClientState)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glDisableClientState\n")

-

-	glDisableClientState(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDrawArrays)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glDrawArrays\n")

-

-	glDrawArrays(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDrawBuffer)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glDrawBuffer\n")

-

-	glDrawBuffer(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDrawElements)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-	jint *lparg3=NULL;

-

-	DEBUG_CALL("glDrawElements\n")

-

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	glDrawElements(arg0, arg1, arg2, lparg3);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glDrawPixels)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)

-{

-	jint *lparg4=NULL;

-

-	DEBUG_CALL("glDrawPixels\n")

-

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	glDrawPixels(arg0, arg1, arg2, arg3, lparg4);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEdgeFlag)

-	(JNIEnv *env, jclass that, jboolean arg0)

-{

-	DEBUG_CALL("glEdgeFlag\n")

-

-	glEdgeFlag(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEdgeFlagPointer)

-	(JNIEnv *env, jclass that, jint arg0, jbooleanArray arg1)

-{

-	jboolean *lparg1=NULL;

-

-	DEBUG_CALL("glEdgeFlagPointer\n")

-

-	if (arg1) lparg1 = (*env)->GetBooleanArrayElements(env, arg1, NULL);

-	glEdgeFlagPointer(arg0, lparg1);

-	if (arg1) (*env)->ReleaseBooleanArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEdgeFlagv)

-	(JNIEnv *env, jclass that, jbooleanArray arg0)

-{

-	jboolean *lparg0=NULL;

-

-	DEBUG_CALL("glEdgeFlagv\n")

-

-	if (arg0) lparg0 = (*env)->GetBooleanArrayElements(env, arg0, NULL);

-	glEdgeFlagv(lparg0);

-	if (arg0) (*env)->ReleaseBooleanArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEnable)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glEnable\n")

-

-	glEnable(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEnableClientState)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glEnableClientState\n")

-

-	glEnableClientState(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEnd)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glEnd\n")

-

-	glEnd();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEndList)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glEndList\n")

-

-	glEndList();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalCoord1d)

-	(JNIEnv *env, jclass that, jdouble arg0)

-{

-	DEBUG_CALL("glEvalCoord1d\n")

-

-	glEvalCoord1d(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalCoord1dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glEvalCoord1dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glEvalCoord1dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalCoord1f)

-	(JNIEnv *env, jclass that, jfloat arg0)

-{

-	DEBUG_CALL("glEvalCoord1f\n")

-

-	glEvalCoord1f(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalCoord1fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glEvalCoord1fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glEvalCoord1fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalCoord2d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1)

-{

-	DEBUG_CALL("glEvalCoord2d\n")

-

-	glEvalCoord2d(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalCoord2dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glEvalCoord2dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glEvalCoord2dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalCoord2f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1)

-{

-	DEBUG_CALL("glEvalCoord2f\n")

-

-	glEvalCoord2f(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalCoord2fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glEvalCoord2fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glEvalCoord2fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalMesh1)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glEvalMesh1\n")

-

-	glEvalMesh1(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalMesh2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	DEBUG_CALL("glEvalMesh2\n")

-

-	glEvalMesh2(arg0, arg1, arg2, arg3, arg4);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalPoint1)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glEvalPoint1\n")

-

-	glEvalPoint1(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glEvalPoint2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glEvalPoint2\n")

-

-	glEvalPoint2(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glFeedbackBuffer)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glFeedbackBuffer\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glFeedbackBuffer(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glFinish)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glFinish\n")

-

-	glFinish();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glFlush)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glFlush\n")

-

-	glFlush();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glFogf)

-	(JNIEnv *env, jclass that, jint arg0, jfloat arg1)

-{

-	DEBUG_CALL("glFogf\n")

-

-	glFogf(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glFogfv)

-	(JNIEnv *env, jclass that, jint arg0, jfloatArray arg1)

-{

-	jfloat *lparg1=NULL;

-

-	DEBUG_CALL("glFogfv\n")

-

-	if (arg1) lparg1 = (*env)->GetFloatArrayElements(env, arg1, NULL);

-	glFogfv(arg0, lparg1);

-	if (arg1) (*env)->ReleaseFloatArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glFogi)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glFogi\n")

-

-	glFogi(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glFogiv)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1)

-{

-	jint *lparg1=NULL;

-

-	DEBUG_CALL("glFogiv\n")

-

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	glFogiv(arg0, (GLint *)lparg1);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glFrontFace)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glFrontFace\n")

-

-	glFrontFace(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glFrustum)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4, jdouble arg5)

-{

-	DEBUG_CALL("glFrustum\n")

-

-	glFrustum(arg0, arg1, arg2, arg3, arg4, arg5);

-}

-

-JNIEXPORT jint JNICALL GL_NATIVE(glGenLists)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glGenLists\n")

-

-	return (jint)glGenLists(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGenTextures)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1)

-{

-	jint *lparg1=NULL;

-

-	DEBUG_CALL("glGenTextures\n")

-

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	glGenTextures(arg0, (unsigned int *)lparg1);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetBooleanv)

-	(JNIEnv *env, jclass that, jint arg0, jbooleanArray arg1)

-{

-	jboolean *lparg1=NULL;

-

-	DEBUG_CALL("glGetBooleanv\n")

-

-	if (arg1) lparg1 = (*env)->GetBooleanArrayElements(env, arg1, NULL);

-	glGetBooleanv(arg0, lparg1);

-	if (arg1) (*env)->ReleaseBooleanArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetClipPlane)

-	(JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1)

-{

-	jdouble *lparg1=NULL;

-

-	DEBUG_CALL("glGetClipPlane\n")

-

-	if (arg1) lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL);

-	glGetClipPlane(arg0, lparg1);

-	if (arg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetDoublev)

-	(JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1)

-{

-	jdouble *lparg1=NULL;

-

-	DEBUG_CALL("glGetDoublev\n")

-

-	if (arg1) lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL);

-	glGetDoublev(arg0, lparg1);

-	if (arg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT jint JNICALL GL_NATIVE(glGetError)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glGetError\n")

-

-	return (jint)glGetError();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetFloatv)

-	(JNIEnv *env, jclass that, jint arg0, jfloatArray arg1)

-{

-	jfloat *lparg1=NULL;

-

-	DEBUG_CALL("glGetFloatv\n")

-

-	if (arg1) lparg1 = (*env)->GetFloatArrayElements(env, arg1, NULL);

-	glGetFloatv(arg0, lparg1);

-	if (arg1) (*env)->ReleaseFloatArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetIntegerv)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1)

-{

-	jint *lparg1=NULL;

-

-	DEBUG_CALL("glGetIntegerv\n")

-

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	glGetIntegerv(arg0, (GLint *)lparg1);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetLightfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glGetLightfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glGetLightfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetLightiv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glGetLightiv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glGetLightiv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetMapdv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jdoubleArray arg2)

-{

-	jdouble *lparg2=NULL;

-

-	DEBUG_CALL("glGetMapdv\n")

-

-	if (arg2) lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL);

-	glGetMapdv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetMapfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glGetMapfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glGetMapfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetMapiv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glGetMapiv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glGetMapiv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetMaterialfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glGetMaterialfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glGetMaterialfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetMaterialiv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glGetMaterialiv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glGetMaterialiv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetPixelMapfv)

-	(JNIEnv *env, jclass that, jint arg0, jfloatArray arg1)

-{

-	jfloat *lparg1=NULL;

-

-	DEBUG_CALL("glGetPixelMapfv\n")

-

-	if (arg1) lparg1 = (*env)->GetFloatArrayElements(env, arg1, NULL);

-	glGetPixelMapfv(arg0, lparg1);

-	if (arg1) (*env)->ReleaseFloatArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetPixelMapuiv)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1)

-{

-	jint *lparg1=NULL;

-

-	DEBUG_CALL("glGetPixelMapuiv\n")

-

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	glGetPixelMapuiv(arg0, (unsigned int *)lparg1);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetPixelMapusv)

-	(JNIEnv *env, jclass that, jint arg0, jshortArray arg1)

-{

-	jshort *lparg1=NULL;

-

-	DEBUG_CALL("glGetPixelMapusv\n")

-

-	if (arg1) lparg1 = (*env)->GetShortArrayElements(env, arg1, NULL);

-	glGetPixelMapusv(arg0, (unsigned short *)lparg1);

-	if (arg1) (*env)->ReleaseShortArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetPointerv)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1)

-{

-	jint *lparg1=NULL;

-

-	DEBUG_CALL("glGetPointerv\n")

-

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	glGetPointerv(arg0, (void **)lparg1);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetPolygonStipple)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-

-	DEBUG_CALL("glGetPolygonStipple\n")

-

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	glGetPolygonStipple((unsigned char *)lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT jint JNICALL GL_NATIVE(glGetString)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glGetString\n")

-

-	printf ("%s,\n",glGetString(arg0));

-	return 1;

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetTexEnvfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glGetTexEnvfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glGetTexEnvfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetTexEnviv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glGetTexEnviv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glGetTexEnviv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetTexGendv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jdoubleArray arg2)

-{

-	jdouble *lparg2=NULL;

-

-	DEBUG_CALL("glGetTexGendv\n")

-

-	if (arg2) lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL);

-	glGetTexGendv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetTexGenfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glGetTexGenfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glGetTexGenfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetTexGeniv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glGetTexGeniv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glGetTexGeniv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetTexImage)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)

-{

-	jint *lparg4=NULL;

-

-	DEBUG_CALL("glGetTexImage\n")

-

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	glGetTexImage(arg0, arg1, arg2, arg3, lparg4);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetTexLevelParameterfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jfloatArray arg3)

-{

-	jfloat *lparg3=NULL;

-

-	DEBUG_CALL("glGetTexLevelParameterfv\n")

-

-	if (arg3) lparg3 = (*env)->GetFloatArrayElements(env, arg3, NULL);

-	glGetTexLevelParameterfv(arg0, arg1, arg2, lparg3);

-	if (arg3) (*env)->ReleaseFloatArrayElements(env, arg3, lparg3, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetTexLevelParameteriv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-	jint *lparg3=NULL;

-

-	DEBUG_CALL("glGetTexLevelParameteriv\n")

-

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	glGetTexLevelParameteriv(arg0, arg1, arg2, (GLint *)lparg3);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetTexParameterfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glGetTexParameterfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glGetTexParameterfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glGetTexParameteriv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glGetTexParameteriv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glGetTexParameteriv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glHint)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glHint\n")

-

-	glHint(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glIndexMask)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glIndexMask\n")

-

-	glIndexMask(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glIndexPointer)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glIndexPointer\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glIndexPointer(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glIndexd)

-	(JNIEnv *env, jclass that, jdouble arg0)

-{

-	DEBUG_CALL("glIndexd\n")

-

-	glIndexd(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glIndexdv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glIndexdv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glIndexdv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glIndexf)

-	(JNIEnv *env, jclass that, jfloat arg0)

-{

-	DEBUG_CALL("glIndexf\n")

-

-	glIndexf(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glIndexfv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glIndexfv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glIndexfv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glIndexi)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glIndexi\n")

-

-	glIndexi(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glIndexiv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glIndexiv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glIndexiv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glIndexs)

-	(JNIEnv *env, jclass that, jshort arg0)

-{

-	DEBUG_CALL("glIndexs\n")

-

-	glIndexs(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glIndexsv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glIndexsv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glIndexsv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glInitNames)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glInitNames\n")

-

-	glInitNames();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glInterleavedArrays)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glInterleavedArrays\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glInterleavedArrays(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT jboolean JNICALL GL_NATIVE(glIsEnabled)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glIsEnabled\n")

-

-	return (jboolean)glIsEnabled(arg0);

-}

-

-JNIEXPORT jboolean JNICALL GL_NATIVE(glIsList)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glIsList\n")

-

-	return (jboolean)glIsList(arg0);

-}

-

-JNIEXPORT jboolean JNICALL GL_NATIVE(glIsTexture)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glIsTexture\n")

-

-	return (jboolean)glIsTexture(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLightModelf)

-	(JNIEnv *env, jclass that, jint arg0, jfloat arg1)

-{

-	DEBUG_CALL("glLightModelf\n")

-

-	glLightModelf(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLightModelfv)

-	(JNIEnv *env, jclass that, jint arg0, jfloatArray arg1)

-{

-	jfloat *lparg1=NULL;

-

-	DEBUG_CALL("glLightModelfv\n")

-

-	if (arg1) lparg1 = (*env)->GetFloatArrayElements(env, arg1, NULL);

-	glLightModelfv(arg0, lparg1);

-	if (arg1) (*env)->ReleaseFloatArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLightModeli)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glLightModeli\n")

-

-	glLightModeli(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLightModeliv)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1)

-{

-	jint *lparg1=NULL;

-

-	DEBUG_CALL("glLightModeliv\n")

-

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	glLightModeliv(arg0, (GLint *)lparg1);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLightf)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat arg2)

-{

-	DEBUG_CALL("glLightf\n")

-

-	glLightf(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLightfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glLightfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glLightfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-/*

-JNIEXPORT void JNICALL GL_NATIVE(glLightfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat *arg2)

-{

-	DEBUG_CALL("glLightfv\n")

-	glLightfv(arg0, arg1, arg2);

-}

-*/

-JNIEXPORT void JNICALL GL_NATIVE(glLighti)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glLighti\n")

-

-	glLighti(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLightiv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glLightiv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glLightiv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLineStipple)

-	(JNIEnv *env, jclass that, jint arg0, jshort arg1)

-{

-	DEBUG_CALL("glLineStipple\n")

-

-	glLineStipple(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLineWidth)

-	(JNIEnv *env, jclass that, jfloat arg0)

-{

-	DEBUG_CALL("glLineWidth\n")

-

-	glLineWidth(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glListBase)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glListBase\n")

-

-	glListBase(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLoadIdentity)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glLoadIdentity\n")

-

-	glLoadIdentity();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLoadMatrixd)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glLoadMatrixd\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glLoadMatrixd(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLoadMatrixf)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glLoadMatrixf\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glLoadMatrixf(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLoadName)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glLoadName\n")

-

-	glLoadName(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glLogicOp)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glLogicOp\n")

-

-	glLogicOp(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMap2f)

-	(JNIEnv *env, jclass that, jint arg0, jfloat arg1, jfloat arg2, jint arg3, jint arg4,

-	  jfloat arg5, jfloat arg6, jint arg7, jint arg8, jfloatArray arg9)

-{

-	jfloat *lparg9=NULL;

-

-	DEBUG_CALL("glMap2f\n")

-

-	if (arg9) lparg9 = (*env)->GetFloatArrayElements(env, arg9, NULL);

-	glMap2f(arg0, arg1, arg2, arg3, arg4 ,arg5, arg6, arg7, arg8, lparg9);

-	if (arg9) (*env)->ReleaseFloatArrayElements(env, arg9, lparg9, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMap2d)

-	(JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jint arg3, jint arg4,

-	  jdouble arg5, jdouble arg6, jint arg7, jint arg8, jdoubleArray arg9)

-{

-	jdouble *lparg9=NULL;

-

-	DEBUG_CALL("glMap2d\n")

-

-	if (arg9) lparg9 = (*env)->GetDoubleArrayElements(env, arg9, NULL);

-	glMap2d(arg0, arg1, arg2, arg3, arg4 ,arg5, arg6, arg7, arg8, lparg9);

-	if (arg9) (*env)->ReleaseDoubleArrayElements(env, arg9, lparg9, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMap1d)

-	(JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jint arg3, jint arg4, jdoubleArray arg5)

-{

-	jdouble *lparg5=NULL;

-

-	DEBUG_CALL("glMap1d\n")

-

-	if (arg5) lparg5 = (*env)->GetDoubleArrayElements(env, arg5, NULL);

-	glMap1d(arg0, arg1, arg2, arg3, arg4, lparg5);

-	if (arg5) (*env)->ReleaseDoubleArrayElements(env, arg5, lparg5, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMap1f)

-	(JNIEnv *env, jclass that, jint arg0, jfloat arg1, jfloat arg2, jint arg3, jint arg4, jfloatArray arg5)

-{

-	jfloat *lparg5=NULL;

-

-	DEBUG_CALL("glMap1f\n")

-

-	if (arg5) lparg5 = (*env)->GetFloatArrayElements(env, arg5, NULL);

-	glMap1f(arg0, arg1, arg2, arg3, arg4, lparg5);

-	if (arg5) (*env)->ReleaseFloatArrayElements(env, arg5, lparg5, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMapGrid1d)

-	(JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2)

-{

-	DEBUG_CALL("glMapGrid1d\n")

-

-	glMapGrid1d(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMapGrid1f)

-	(JNIEnv *env, jclass that, jint arg0, jfloat arg1, jfloat arg2)

-{

-	DEBUG_CALL("glMapGrid1f\n")

-

-	glMapGrid1f(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMapGrid2d)

-	(JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jint arg3, jdouble arg4, jdouble arg5)

-{

-	DEBUG_CALL("glMapGrid2d\n")

-

-	glMapGrid2d(arg0, arg1, arg2, arg3, arg4, arg5);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMapGrid2f)

-	(JNIEnv *env, jclass that, jint arg0, jfloat arg1, jfloat arg2, jint arg3, jfloat arg4, jfloat arg5)

-{

-	DEBUG_CALL("glMapGrid2f\n")

-

-	glMapGrid2f(arg0, arg1, arg2, arg3, arg4, arg5);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMaterialf)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat arg2)

-{

-	DEBUG_CALL("glMaterialf\n")

-

-	glMaterialf(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMaterialfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glMaterialfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glMaterialfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMateriali)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glMateriali\n")

-

-	glMateriali(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMaterialiv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glMaterialiv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glMaterialiv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMatrixMode)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glMatrixMode\n")

-

-	glMatrixMode(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMultMatrixd)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glMultMatrixd\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glMultMatrixd(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glMultMatrixf)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glMultMatrixf\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glMultMatrixf(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNewList)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glNewList\n")

-

-	glNewList(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormal3b)

-	(JNIEnv *env, jclass that, jbyte arg0, jbyte arg1, jbyte arg2)

-{

-	DEBUG_CALL("glNormal3b\n")

-

-	glNormal3b(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormal3bv)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-

-	DEBUG_CALL("glNormal3bv\n")

-

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	glNormal3bv(lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormal3d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2)

-{

-	DEBUG_CALL("glNormal3d\n")

-

-	glNormal3d(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormal3dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glNormal3dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glNormal3dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormal3f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2)

-{

-	DEBUG_CALL("glNormal3f\n")

-

-	glNormal3f(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormal3fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glNormal3fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glNormal3fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormal3i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glNormal3i\n")

-

-	glNormal3i(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormal3iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glNormal3iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glNormal3iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormal3s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2)

-{

-	DEBUG_CALL("glNormal3s\n")

-

-	glNormal3s(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormal3sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glNormal3sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glNormal3sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glNormalPointer)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glNormalPointer\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glNormalPointer(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glOrtho)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4, jdouble arg5)

-{

-	DEBUG_CALL("glOrtho\n")

-

-	glOrtho(arg0, arg1, arg2, arg3, arg4, arg5);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPassThrough)

-	(JNIEnv *env, jclass that, jfloat arg0)

-{

-	DEBUG_CALL("glPassThrough\n")

-

-	glPassThrough(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPixelMapfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glPixelMapfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glPixelMapfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPixelMapuiv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glPixelMapuiv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glPixelMapuiv(arg0, arg1, (unsigned int *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPixelMapusv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jshortArray arg2)

-{

-	jshort *lparg2=NULL;

-

-	DEBUG_CALL("glPixelMapusv\n")

-

-	if (arg2) lparg2 = (*env)->GetShortArrayElements(env, arg2, NULL);

-	glPixelMapusv(arg0, arg1, (unsigned short *)lparg2);

-	if (arg2) (*env)->ReleaseShortArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPixelStoref)

-	(JNIEnv *env, jclass that, jint arg0, jfloat arg1)

-{

-	DEBUG_CALL("glPixelStoref\n")

-

-	glPixelStoref(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPixelStorei)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glPixelStorei\n")

-

-	glPixelStorei(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPixelTransferf)

-	(JNIEnv *env, jclass that, jint arg0, jfloat arg1)

-{

-	DEBUG_CALL("glPixelTransferf\n")

-

-	glPixelTransferf(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPixelTransferi)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glPixelTransferi\n")

-

-	glPixelTransferi(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPixelZoom)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1)

-{

-	DEBUG_CALL("glPixelZoom\n")

-

-	glPixelZoom(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPointSize)

-	(JNIEnv *env, jclass that, jfloat arg0)

-{

-	DEBUG_CALL("glPointSize\n")

-

-	glPointSize(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPolygonMode)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glPolygonMode\n")

-

-	glPolygonMode(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPolygonOffset)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1)

-{

-	DEBUG_CALL("glPolygonOffset\n")

-

-	glPolygonOffset(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPolygonStipple)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-

-	DEBUG_CALL("glPolygonStipple\n")

-

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	glPolygonStipple((unsigned char *)lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPopAttrib)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glPopAttrib\n")

-

-	glPopAttrib();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPopClientAttrib)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glPopClientAttrib\n")

-

-	glPopClientAttrib();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPopMatrix)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glPopMatrix\n")

-

-	glPopMatrix();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPopName)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glPopName\n")

-

-	glPopName();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPrioritizeTextures)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jfloatArray arg2)

-{

-	jint *lparg1=NULL;

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glPrioritizeTextures\n")

-

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glPrioritizeTextures(arg0, (unsigned int *)lparg1, lparg2);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPushAttrib)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glPushAttrib\n")

-

-	glPushAttrib(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPushClientAttrib)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glPushClientAttrib\n")

-

-	glPushClientAttrib(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPushMatrix)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("glPushMatrix\n")

-

-	glPushMatrix();

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glPushName)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glPushName\n")

-

-	glPushName(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos2d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1)

-{

-	DEBUG_CALL("glRasterPos2d\n")

-

-	glRasterPos2d(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos2dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos2dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glRasterPos2dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos2f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1)

-{

-	DEBUG_CALL("glRasterPos2f\n")

-

-	glRasterPos2f(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos2fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos2fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glRasterPos2fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos2i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glRasterPos2i\n")

-

-	glRasterPos2i(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos2iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos2iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glRasterPos2iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos2s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1)

-{

-	DEBUG_CALL("glRasterPos2s\n")

-

-	glRasterPos2s(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos2sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos2sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glRasterPos2sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos3d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2)

-{

-	DEBUG_CALL("glRasterPos3d\n")

-

-	glRasterPos3d(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos3dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos3dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glRasterPos3dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos3f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2)

-{

-	DEBUG_CALL("glRasterPos3f\n")

-

-	glRasterPos3f(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos3fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos3fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glRasterPos3fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos3i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glRasterPos3i\n")

-

-	glRasterPos3i(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos3iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos3iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glRasterPos3iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos3s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2)

-{

-	DEBUG_CALL("glRasterPos3s\n")

-

-	glRasterPos3s(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos3sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos3sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glRasterPos3sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos4d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3)

-{

-	DEBUG_CALL("glRasterPos4d\n")

-

-	glRasterPos4d(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos4dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos4dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glRasterPos4dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos4f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2, jfloat arg3)

-{

-	DEBUG_CALL("glRasterPos4f\n")

-

-	glRasterPos4f(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos4fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos4fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glRasterPos4fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos4i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("glRasterPos4i\n")

-

-	glRasterPos4i(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos4iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos4iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glRasterPos4iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos4s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2, jshort arg3)

-{

-	DEBUG_CALL("glRasterPos4s\n")

-

-	glRasterPos4s(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRasterPos4sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glRasterPos4sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glRasterPos4sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glReadBuffer)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glReadBuffer\n")

-

-	glReadBuffer(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glReadPixels)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jintArray arg6)

-{

-	jint *lparg6=NULL;

-

-	DEBUG_CALL("glReadPixels\n")

-

-	if (arg6) lparg6 = (*env)->GetIntArrayElements(env, arg6, NULL);

-	glReadPixels(arg0, arg1, arg2, arg3, arg4, arg5, lparg6);

-	if (arg6) (*env)->ReleaseIntArrayElements(env, arg6, lparg6, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRectd)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3)

-{

-	DEBUG_CALL("glRectd\n")

-

-	glRectd(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRectdv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0, jdoubleArray arg1)

-{

-	jdouble *lparg0=NULL;

-	jdouble *lparg1=NULL;

-

-	DEBUG_CALL("glRectdv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL);

-	glRectdv(lparg0, lparg1);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRectf)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2, jfloat arg3)

-{

-	DEBUG_CALL("glRectf\n")

-

-	glRectf(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRectfv)

-	(JNIEnv *env, jclass that, jfloatArray arg0, jfloatArray arg1)

-{

-	jfloat *lparg0=NULL;

-	jfloat *lparg1=NULL;

-

-	DEBUG_CALL("glRectfv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetFloatArrayElements(env, arg1, NULL);

-	glRectfv(lparg0, lparg1);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseFloatArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRecti)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("glRecti\n")

-

-	glRecti(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRectiv)

-	(JNIEnv *env, jclass that, jintArray arg0, jintArray arg1)

-{

-	jint *lparg0=NULL;

-	jint *lparg1=NULL;

-

-	DEBUG_CALL("glRectiv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	glRectiv((GLint *)lparg0, (GLint *)lparg1);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRects)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2, jshort arg3)

-{

-	DEBUG_CALL("glRects\n")

-

-	glRects(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRectsv)

-	(JNIEnv *env, jclass that, jshortArray arg0, jshortArray arg1)

-{

-	jshort *lparg0=NULL;

-	jshort *lparg1=NULL;

-

-	DEBUG_CALL("glRectsv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetShortArrayElements(env, arg1, NULL);

-	glRectsv(lparg0, lparg1);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseShortArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT jint JNICALL GL_NATIVE(glRenderMode)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glRenderMode\n")

-

-	return (jint)glRenderMode(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRotated)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3)

-{

-	DEBUG_CALL("glRotated\n")

-

-	glRotated(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glRotatef)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2, jfloat arg3)

-{

-	DEBUG_CALL("glRotatef\n")

-

-	glRotatef(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glScaled)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2)

-{

-	DEBUG_CALL("glScaled\n")

-

-	glScaled(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glScalef)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2)

-{

-	DEBUG_CALL("glScalef\n")

-

-	glScalef(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glScissor)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("glScissor\n")

-

-	glScissor(arg0, arg1, arg2, arg3);

-}

-

-/*

-JNIEXPORT void JNICALL GL_NATIVE(glSelectBuffer)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1)

-{

-	jint *lparg1=NULL;

-

-	DEBUG_CALL("glSelectBuffer\n")

-

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	glSelectBuffer(arg0, lparg1);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-}

-*/

- 

- 

-JNIEXPORT void JNICALL GL_NATIVE(glSelectBuffer)

-	(JNIEnv *env, jclass that, jint arg0, jint *arg1)

-{

-	DEBUG_CALL("glSelectBuffer\n")

-	glSelectBuffer(arg0, (unsigned int *)arg1);

-}

-

-

-JNIEXPORT void JNICALL GL_NATIVE(glShadeModel)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glShadeModel\n")

-

-	glShadeModel(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glStencilFunc)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glStencilFunc\n")

-

-	glStencilFunc(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glStencilMask)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glStencilMask\n")

-

-	glStencilMask(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glStencilOp)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glStencilOp\n")

-

-	glStencilOp(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord1d)

-	(JNIEnv *env, jclass that, jdouble arg0)

-{

-	DEBUG_CALL("glTexCoord1d\n")

-

-	glTexCoord1d(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord1dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord1dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glTexCoord1dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord1f)

-	(JNIEnv *env, jclass that, jfloat arg0)

-{

-	DEBUG_CALL("glTexCoord1f\n")

-

-	glTexCoord1f(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord1fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord1fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glTexCoord1fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord1i)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glTexCoord1i\n")

-

-	glTexCoord1i(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord1iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord1iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glTexCoord1iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord1s)

-	(JNIEnv *env, jclass that, jshort arg0)

-{

-	DEBUG_CALL("glTexCoord1s\n")

-

-	glTexCoord1s(arg0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord1sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord1sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glTexCoord1sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord2d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1)

-{

-	DEBUG_CALL("glTexCoord2d\n")

-

-	glTexCoord2d(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord2dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord2dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glTexCoord2dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord2f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1)

-{

-	DEBUG_CALL("glTexCoord2f\n")

-

-	glTexCoord2f(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord2fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord2fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glTexCoord2fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord2i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glTexCoord2i\n")

-

-	glTexCoord2i(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord2iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord2iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glTexCoord2iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord2s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1)

-{

-	DEBUG_CALL("glTexCoord2s\n")

-

-	glTexCoord2s(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord2sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord2sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glTexCoord2sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord3d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2)

-{

-	DEBUG_CALL("glTexCoord3d\n")

-

-	glTexCoord3d(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord3dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord3dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glTexCoord3dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord3f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2)

-{

-	DEBUG_CALL("glTexCoord3f\n")

-

-	glTexCoord3f(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord3fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord3fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glTexCoord3fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord3i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glTexCoord3i\n")

-

-	glTexCoord3i(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord3iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord3iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glTexCoord3iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord3s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2)

-{

-	DEBUG_CALL("glTexCoord3s\n")

-

-	glTexCoord3s(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord3sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord3sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glTexCoord3sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord4d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3)

-{

-	DEBUG_CALL("glTexCoord4d\n")

-

-	glTexCoord4d(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord4dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord4dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glTexCoord4dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord4f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2, jfloat arg3)

-{

-	DEBUG_CALL("glTexCoord4f\n")

-

-	glTexCoord4f(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord4fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord4fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glTexCoord4fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord4i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("glTexCoord4i\n")

-

-	glTexCoord4i(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord4iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord4iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glTexCoord4iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord4s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2, jshort arg3)

-{

-	DEBUG_CALL("glTexCoord4s\n")

-

-	glTexCoord4s(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoord4sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glTexCoord4sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glTexCoord4sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexCoordPointer)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-	jint *lparg3=NULL;

-

-	DEBUG_CALL("glTexCoordPointer\n")

-

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	glTexCoordPointer(arg0, arg1, arg2, lparg3);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexEnvf)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat arg2)

-{

-	DEBUG_CALL("glTexEnvf\n")

-

-	glTexEnvf(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexEnvfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glTexEnvfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glTexEnvfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexEnvi)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glTexEnvi\n")

-

-	glTexEnvi(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexEnviv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glTexEnviv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glTexEnviv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexGend)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jdouble arg2)

-{

-	DEBUG_CALL("glTexGend\n")

-

-	glTexGend(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexGendv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jdoubleArray arg2)

-{

-	jdouble *lparg2=NULL;

-

-	DEBUG_CALL("glTexGendv\n")

-

-	if (arg2) lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL);

-	glTexGendv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexGenf)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat arg2)

-{

-	DEBUG_CALL("glTexGenf\n")

-

-	glTexGenf(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexGenfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glTexGenfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glTexGenfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexGeni)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glTexGeni\n")

-

-	glTexGeni(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexGeniv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glTexGeniv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glTexGeniv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexImage1D)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jintArray arg7)

-{

-	jint *lparg7=NULL;

-

-	DEBUG_CALL("glTexImage1D\n")

-

-	if (arg7) lparg7 = (*env)->GetIntArrayElements(env, arg7, NULL);

-	glTexImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, lparg7);

-	if (arg7) (*env)->ReleaseIntArrayElements(env, arg7, lparg7, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexImage2D)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jbyteArray arg8)

-{

-	jbyte *lparg8=NULL;

-

-	DEBUG_CALL("glTexImage2D\n")

-

-	if (arg8) lparg8 = (*env)->GetByteArrayElements(env, arg8, NULL);

-	glTexImage2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, lparg8);

-	if (arg8) (*env)->ReleaseByteArrayElements(env, arg8, lparg8, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexParameterf)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat arg2)

-{

-	DEBUG_CALL("glTexParameterf\n")

-

-	glTexParameterf(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexParameterfv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("glTexParameterfv\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	glTexParameterfv(arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexParameteri)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glTexParameteri\n")

-

-	glTexParameteri(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexParameteriv)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-

-	DEBUG_CALL("glTexParameteriv\n")

-

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	glTexParameteriv(arg0, arg1, (GLint *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexSubImage1D)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jintArray arg6)

-{

-	jint *lparg6=NULL;

-

-	DEBUG_CALL("glTexSubImage1D\n")

-

-	if (arg6) lparg6 = (*env)->GetIntArrayElements(env, arg6, NULL);

-	glTexSubImage1D(arg0, arg1, arg2, arg3, arg4, arg5, lparg6);

-	if (arg6) (*env)->ReleaseIntArrayElements(env, arg6, lparg6, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTexSubImage2D)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jintArray arg8)

-{

-	jint *lparg8=NULL;

-

-	DEBUG_CALL("glTexSubImage2D\n")

-

-	if (arg8) lparg8 = (*env)->GetIntArrayElements(env, arg8, NULL);

-	glTexSubImage2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, lparg8);

-	if (arg8) (*env)->ReleaseIntArrayElements(env, arg8, lparg8, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTranslated)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2)

-{

-	DEBUG_CALL("glTranslated\n")

-

-	glTranslated(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glTranslatef)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2)

-{

-	DEBUG_CALL("glTranslatef\n")

-

-	glTranslatef(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex2d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1)

-{

-	DEBUG_CALL("glVertex2d\n")

-

-	glVertex2d(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex2dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glVertex2dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glVertex2dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex2f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1)

-{

-	DEBUG_CALL("glVertex2f\n")

-

-	glVertex2f(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex2fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glVertex2fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glVertex2fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex2i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("glVertex2i\n")

-

-	glVertex2i(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex2iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glVertex2iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glVertex2iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex2s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1)

-{

-	DEBUG_CALL("glVertex2s\n")

-

-	glVertex2s(arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex2sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glVertex2sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glVertex2sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex3d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2)

-{

-	DEBUG_CALL("glVertex3d\n")

-

-	glVertex3d(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex3dv__I)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glVertex3dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glVertex3dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex3dv)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("glVertex3dv\n")

-	glVertex3dv((double*)arg0);

-

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex3f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2)

-{

-	DEBUG_CALL("glVertex3f\n")

-

-	glVertex3f(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex3fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glVertex3fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glVertex3fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex3i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("glVertex3i\n")

-

-	glVertex3i(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex3iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glVertex3iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glVertex3iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex3s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2)

-{

-	DEBUG_CALL("glVertex3s\n")

-

-	glVertex3s(arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex3sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glVertex3sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glVertex3sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex4d)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3)

-{

-	DEBUG_CALL("glVertex4d\n")

-

-	glVertex4d(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex4dv)

-	(JNIEnv *env, jclass that, jdoubleArray arg0)

-{

-	jdouble *lparg0=NULL;

-

-	DEBUG_CALL("glVertex4dv\n")

-

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	glVertex4dv(lparg0);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex4f)

-	(JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2, jfloat arg3)

-{

-	DEBUG_CALL("glVertex4f\n")

-

-	glVertex4f(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex4fv)

-	(JNIEnv *env, jclass that, jfloatArray arg0)

-{

-	jfloat *lparg0=NULL;

-

-	DEBUG_CALL("glVertex4fv\n")

-

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	glVertex4fv(lparg0);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex4i)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("glVertex4i\n")

-

-	glVertex4i(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex4iv)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-

-	DEBUG_CALL("glVertex4iv\n")

-

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	glVertex4iv((GLint *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex4s)

-	(JNIEnv *env, jclass that, jshort arg0, jshort arg1, jshort arg2, jshort arg3)

-{

-	DEBUG_CALL("glVertex4s\n")

-

-	glVertex4s(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertex4sv)

-	(JNIEnv *env, jclass that, jshortArray arg0)

-{

-	jshort *lparg0=NULL;

-

-	DEBUG_CALL("glVertex4sv\n")

-

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	glVertex4sv(lparg0);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glVertexPointer)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-	jint *lparg3=NULL;

-

-	DEBUG_CALL("glVertexPointer\n")

-

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	glVertexPointer(arg0, arg1, arg2, lparg3);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-}

-

-JNIEXPORT void JNICALL GL_NATIVE(glViewport)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("glViewport\n")

-

-	glViewport(arg0, arg1, arg2, arg3);

-}

diff --git a/bundles/org.eclipse.swt.opengl/common/gl_library/glu.c b/bundles/org.eclipse.swt.opengl/common/gl_library/glu.c
deleted file mode 100644
index b1d5168..0000000
--- a/bundles/org.eclipse.swt.opengl/common/gl_library/glu.c
+++ /dev/null
@@ -1,529 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-#ifdef WIN32

-#include <windows.h>

-#endif

-#include <GL/glu.h>

-#include "swt.h"

-

-#define GLU_NATIVE(func) Java_org_eclipse_swt_opengl_GLU_##func

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluBeginCurve)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluBeginCurve\n")

-

-	gluBeginCurve((GLUnurbsObj *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluBeginPolygon)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluBeginPolygon\n")

-

-	gluBeginPolygon((GLUtesselator *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluBeginSurface)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluBeginSurface\n")

-

-	gluBeginSurface((GLUnurbs *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluBeginTrim)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluBeginTrim\n")

-

-	gluBeginTrim((GLUnurbs *)arg0);

-}

-

-JNIEXPORT jint JNICALL GLU_NATIVE(gluBuild1DMipmaps)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5)

-{

-	DEBUG_CALL("gluBuild1DMipmaps\n")

-

-	return (jint)gluBuild1DMipmaps(arg0, arg1, arg2, arg3, arg4, (const void *)arg5);

-}

-

-/*

-JNIEXPORT jint JNICALL GLU_NATIVE(gluBuild2DMipmaps)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6)

-{

-	DEBUG_CALL("gluBuild2DMipmaps\n")

-	

-	return (jint)gluBuild2DMipmaps(arg0, arg1, arg2, arg3, arg4, arg5, (const void *)arg6);

-}

-*/

-

-JNIEXPORT jint JNICALL GLU_NATIVE(gluBuild2DMipmaps)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jbyteArray arg6)

-{

-	jbyte *lparg6=NULL;

-	jint rc;

-	

-	DEBUG_CALL("gluBuild2DMipmaps\n")

-	if (arg6) lparg6 = (*env)->GetByteArrayElements(env, arg6, NULL);

-	rc = (jint)gluBuild2DMipmaps(arg0, arg1, arg2, arg3, arg4, arg5, (const void *)lparg6);

-	if (arg6) (*env)->ReleaseByteArrayElements(env, arg6, lparg6, 0);	

-	return rc;

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluCylinder)

-	(JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3, jint arg4, jint arg5)

-{

-	DEBUG_CALL("gluCylinder\n")

-

-	gluCylinder((GLUquadric *)arg0, arg1, arg2, arg3, arg4, arg5);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluDeleteNurbsRenderer)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluDeleteNurbsRenderer\n")

-

-	gluDeleteNurbsRenderer((GLUnurbs *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluDeleteQuadric)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluDeleteQuadric\n")

-

-	gluDeleteQuadric((GLUquadric *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluDeleteTess)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluDeleteTess\n")

-

-	gluDeleteTess((GLUtesselator *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluDisk)

-	(JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jint arg3, jint arg4)

-{

-	DEBUG_CALL("gluDisk\n")

-

-	gluDisk((GLUquadric *)arg0, arg1, arg2, arg3, arg4);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluEndCurve)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluEndCurve\n")

-

-	gluEndCurve((GLUnurbsObj *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluEndPolygon)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluEndPolygon\n")

-

-	gluEndPolygon((GLUtesselator *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluEndSurface)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluEndSurface\n")

-

-	gluEndSurface((GLUnurbs *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluEndTrim)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluEndTrim\n")

-

-	gluEndTrim((GLUnurbs *)arg0);

-}

-

-JNIEXPORT jint JNICALL GLU_NATIVE(gluErrorString)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluErrorString\n")

-

-	return (jint)gluErrorString(arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluGetNurbsProperty)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("gluGetNurbsProperty\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	gluGetNurbsProperty((GLUnurbs *)arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT jint JNICALL GLU_NATIVE(gluGetString)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluGetString\n")

-

-	return (jint)gluGetString(arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluGetTessProperty)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jdoubleArray arg2)

-{

-	jdouble *lparg2=NULL;

-

-	DEBUG_CALL("gluGetTessProperty\n")

-

-	if (arg2) lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL);

-	gluGetTessProperty((GLUtesselator *)arg0, arg1, lparg2);

-	if (arg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluLoadSamplingMatrices)

-	(JNIEnv *env, jclass that, jint arg0, jfloatArray arg1, jfloatArray arg2, jintArray arg3)

-{

-	jfloat *lparg1=NULL;

-	jfloat *lparg2=NULL;

-	jint *lparg3=NULL;

-

-	DEBUG_CALL("gluLoadSamplingMatrices\n")

-

-	if (arg1) lparg1 = (*env)->GetFloatArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	gluLoadSamplingMatrices((GLUnurbs *)arg0, lparg1, lparg2, (GLint *)lparg3);

-	if (arg1) (*env)->ReleaseFloatArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluLookAt)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4, jdouble arg5, jdouble arg6, jdouble arg7, jdouble arg8)

-{

-	DEBUG_CALL("gluLookAt\n")

-

-	gluLookAt(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);

-}

-

-JNIEXPORT jint JNICALL GLU_NATIVE(gluNewNurbsRenderer)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("gluNewNurbsRenderer\n")

-

-	return (jint)gluNewNurbsRenderer();

-}

-

-JNIEXPORT jint JNICALL GLU_NATIVE(gluNewQuadric)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("gluNewQuadric\n")

-

-	return (jint)gluNewQuadric();

-}

-

-JNIEXPORT jint JNICALL GLU_NATIVE(gluNewTess)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("gluNewTess\n")

-

-	return (jint)gluNewTess();

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluNextContour)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("gluNextContour\n")

-

-	gluNextContour((GLUtesselator *)arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluNurbsCallback)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("gluNurbsCallback\n")

-

-	gluNurbsCallback((GLUnurbs *)arg0, arg1, (GLvoid(*))arg2);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluNurbsCurve)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2, jint arg3, jfloatArray arg4, jint arg5, jint arg6)

-{

-	jfloat *lparg2=NULL;

-	jfloat *lparg4=NULL;

-

-	DEBUG_CALL("gluNurbsCurve\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	if (arg4) lparg4 = (*env)->GetFloatArrayElements(env, arg4, NULL);

-	gluNurbsCurve((GLUnurbs *)arg0, arg1, lparg2, arg3, lparg4, arg5, arg6);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-	if (arg4) (*env)->ReleaseFloatArrayElements(env, arg4, lparg4, 0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluNurbsProperty)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat arg2)

-{

-	DEBUG_CALL("gluNurbsProperty\n")

-

-	gluNurbsProperty((GLUnurbs *)arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluNurbsSurface)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2, jint arg3, jfloatArray arg4, jint arg5, jint arg6, jfloatArray arg7, jint arg8, jint arg9, jint arg10)

-{

-	jfloat *lparg2=NULL;

-	jfloat *lparg4=NULL;

-	jfloat *lparg7=NULL;

-

-	DEBUG_CALL("gluNurbsSurface\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	if (arg4) lparg4 = (*env)->GetFloatArrayElements(env, arg4, NULL);

-	if (arg7) lparg7 = (*env)->GetFloatArrayElements(env, arg7, NULL);

-	gluNurbsSurface((GLUnurbs *)arg0, arg1, lparg2, arg3, lparg4, arg5, arg6, lparg7, arg8, arg9, arg10);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-	if (arg4) (*env)->ReleaseFloatArrayElements(env, arg4, lparg4, 0);

-	if (arg7) (*env)->ReleaseFloatArrayElements(env, arg7, lparg7, 0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluOrtho2D)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3)

-{

-	DEBUG_CALL("gluOrtho2D\n")

-

-	gluOrtho2D(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluPartialDisk)

-	(JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jint arg3, jint arg4, jdouble arg5, jdouble arg6)

-{

-	DEBUG_CALL("gluPartialDisk\n")

-

-	gluPartialDisk((GLUquadric *)arg0, arg1, arg2, arg3, arg4, arg5, arg6);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluPerspective)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3)

-{

-	DEBUG_CALL("gluPerspective\n")

-

-	gluPerspective(arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluPickMatrix)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdouble arg3, jintArray arg4)

-{

-	jint *lparg4=NULL;

-

-	DEBUG_CALL("gluPickMatrix\n")

-

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	gluPickMatrix(arg0, arg1, arg2, arg3, (GLint *)lparg4);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-}

-

-JNIEXPORT jint JNICALL GLU_NATIVE(gluProject)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdoubleArray arg3, jdoubleArray arg4, jintArray arg5, jdoubleArray arg6, jdoubleArray arg7, jdoubleArray arg8)

-{

-	jdouble *lparg3=NULL;

-	jdouble *lparg4=NULL;

-	jint *lparg5=NULL;

-	jdouble *lparg6=NULL;

-	jdouble *lparg7=NULL;

-	jdouble *lparg8=NULL;

-	jint rc;

-

-	DEBUG_CALL("gluProject\n")

-

-	if (arg3) lparg3 = (*env)->GetDoubleArrayElements(env, arg3, NULL);

-	if (arg4) lparg4 = (*env)->GetDoubleArrayElements(env, arg4, NULL);

-	if (arg5) lparg5 = (*env)->GetIntArrayElements(env, arg5, NULL);

-	if (arg6) lparg6 = (*env)->GetDoubleArrayElements(env, arg6, NULL);

-	if (arg7) lparg7 = (*env)->GetDoubleArrayElements(env, arg7, NULL);

-	if (arg8) lparg8 = (*env)->GetDoubleArrayElements(env, arg8, NULL);

-	rc = (jint)gluProject(arg0, arg1, arg2, lparg3, lparg4, (GLint *)lparg5, lparg6, lparg7, lparg8);

-	if (arg3) (*env)->ReleaseDoubleArrayElements(env, arg3, lparg3, 0);

-	if (arg4) (*env)->ReleaseDoubleArrayElements(env, arg4, lparg4, 0);

-	if (arg5) (*env)->ReleaseIntArrayElements(env, arg5, lparg5, 0);

-	if (arg6) (*env)->ReleaseDoubleArrayElements(env, arg6, lparg6, 0);

-	if (arg7) (*env)->ReleaseDoubleArrayElements(env, arg7, lparg7, 0);

-	if (arg8) (*env)->ReleaseDoubleArrayElements(env, arg8, lparg8, 0);

-	return rc;

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluPwlCurve)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloatArray arg2, jint arg3, jint arg4)

-{

-	jfloat *lparg2=NULL;

-

-	DEBUG_CALL("gluPwlCurve\n")

-

-	if (arg2) lparg2 = (*env)->GetFloatArrayElements(env, arg2, NULL);

-	gluPwlCurve((GLUnurbs *)arg0, arg1, lparg2, arg3, arg4);

-	if (arg2) (*env)->ReleaseFloatArrayElements(env, arg2, lparg2, 0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluQuadricCallback)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("gluQuadricCallback\n")

-

-	gluQuadricCallback((GLUquadric *)arg0, arg1, (GLvoid(*))arg2);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluQuadricDrawStyle)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("gluQuadricDrawStyle\n")

-

-	gluQuadricDrawStyle((GLUquadric *)arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluQuadricNormals)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("gluQuadricNormals\n")

-

-	gluQuadricNormals((GLUquadric *)arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluQuadricOrientation)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("gluQuadricOrientation\n")

-

-	gluQuadricOrientation((GLUquadric *)arg0, arg1);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluQuadricTexture)

-	(JNIEnv *env, jclass that, jint arg0, jboolean arg1)

-{

-	DEBUG_CALL("gluQuadricTexture\n")

-

-	gluQuadricTexture((GLUquadric *)arg0, arg1);

-}

-

-JNIEXPORT jint JNICALL GLU_NATIVE(gluScaleImage)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8)

-{

-	DEBUG_CALL("gluScaleImage\n")

-

-	return (jint)gluScaleImage(arg0, arg1, arg2, arg3, (const void *)arg4, arg5, arg6, arg7, (void *)arg8);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluSphere)

-	(JNIEnv *env, jclass that, jint arg0, jdouble arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("gluSphere\n")

-

-	gluSphere((GLUquadric *)arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluTessBeginContour)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluTessBeginContour\n")

-

-	gluTessBeginContour((GLUtesselator *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluTessBeginPolygon)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("gluTessBeginPolygon\n")

-

-	gluTessBeginPolygon((GLUtesselator *)arg0, (void *)arg1);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluTessCallback)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("gluTessCallback\n")

-

-	gluTessCallback((GLUtesselator *)arg0, arg1, (GLvoid(*))arg2);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluTessEndContour)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluTessEndContour\n")

-

-	gluTessEndContour((GLUtesselator *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluTessEndPolygon)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("gluTessEndPolygon\n")

-

-	gluTessEndPolygon((GLUtesselator *)arg0);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluTessNormal)

-	(JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3)

-{

-	DEBUG_CALL("gluTessNormal\n")

-

-	gluTessNormal((GLUtesselator *)arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluTessProperty)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat arg2)

-{

-	DEBUG_CALL("gluTessProperty\n")

-

-	gluTessProperty((GLUtesselator *)arg0, arg1, arg2);

-}

-

-JNIEXPORT void JNICALL GLU_NATIVE(gluTessVertex)

-	(JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jint arg2)

-{

-	jdouble *lparg1=NULL;

-

-	DEBUG_CALL("gluTessVertex\n")

-

-	if (arg1) lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL);

-	gluTessVertex((GLUtesselator *)arg0, lparg1, (void *)arg2);

-	if (arg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);

-}

-

-JNIEXPORT jint JNICALL GLU_NATIVE(gluUnProject)

-	(JNIEnv *env, jclass that, jdouble arg0, jdouble arg1, jdouble arg2, jdoubleArray arg3, jdoubleArray arg4, jintArray arg5, jdoubleArray arg6, jdoubleArray arg7, jdoubleArray arg8)

-{

-	jdouble *lparg3=NULL;

-	jdouble *lparg4=NULL;

-	jint *lparg5=NULL;

-	jdouble *lparg6=NULL;

-	jdouble *lparg7=NULL;

-	jdouble *lparg8=NULL;

-	jint rc;

-

-	DEBUG_CALL("gluUnProject\n")

-

-	if (arg3) lparg3 = (*env)->GetDoubleArrayElements(env, arg3, NULL);

-	if (arg4) lparg4 = (*env)->GetDoubleArrayElements(env, arg4, NULL);

-	if (arg5) lparg5 = (*env)->GetIntArrayElements(env, arg5, NULL);

-	if (arg6) lparg6 = (*env)->GetDoubleArrayElements(env, arg6, NULL);

-	if (arg7) lparg7 = (*env)->GetDoubleArrayElements(env, arg7, NULL);

-	if (arg8) lparg8 = (*env)->GetDoubleArrayElements(env, arg8, NULL);

-	rc = (jint)gluUnProject(arg0, arg1, arg2, lparg3, lparg4, (GLint *)lparg5, lparg6, lparg7, lparg8);

-	if (arg3) (*env)->ReleaseDoubleArrayElements(env, arg3, lparg3, 0);

-	if (arg4) (*env)->ReleaseDoubleArrayElements(env, arg4, lparg4, 0);

-	if (arg5) (*env)->ReleaseIntArrayElements(env, arg5, lparg5, 0);

-	if (arg6) (*env)->ReleaseDoubleArrayElements(env, arg6, lparg6, 0);

-	if (arg7) (*env)->ReleaseDoubleArrayElements(env, arg7, lparg7, 0);

-	if (arg8) (*env)->ReleaseDoubleArrayElements(env, arg8, lparg8, 0);

-	return rc;

-}

diff --git a/bundles/org.eclipse.swt.opengl/common/gl_library/swt.h b/bundles/org.eclipse.swt.opengl/common/gl_library/swt.h
deleted file mode 100644
index 4c6e704..0000000
--- a/bundles/org.eclipse.swt.opengl/common/gl_library/swt.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-

-#ifndef INC_swt_H

-#define INC_swt_H

-

-#include "jni.h"

-

-/* For debugging */

-#define DEBUG_PRINTF(x)

-/*#define DEBUG_PRINTF(x) printf x; */

-

-/* define this to print out debug statements */

-/* #define DEBUG_CALL_PRINTS */
-/* #define DEBUG_CHECK_NULL_EXCEPTIONS */
-
-#ifdef DEBUG_CALL_PRINTS
-#define DEBUG_CALL(func) fprintf(stderr, func);
-#else
-#define DEBUG_CALL(func)
-#endif
-
-#ifdef DEBUG_CHECK_NULL_EXCEPTIONS
-#define DEBUG_CHECK_NULL(env, address) \
-	if (address == 0) { \
-		jclass clazz = (*env)->FindClass(env, "org/eclipse/swt/SWTError"); \
-		if (clazz != NULL) { \
-			(*env)->ThrowNew(env, clazz, "Argument cannot be NULL"); \
-		} \
-		return; \
-	}
-#else
-#define DEBUG_CHECK_NULL(env, address)
-#endif

-

-#define DECL_GLOB(pSym)

-#define PGLOB(x) x

-

-#endif /* ifndef INC_swt_H */

diff --git a/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GL.java b/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GL.java
deleted file mode 100644
index ba4b372..0000000
--- a/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GL.java
+++ /dev/null
@@ -1,1449 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl;
-
-public class GL {
-
-	public static final int GL_VERSION_1_1 = 1;
-
-	/* AccumOp */
-	public static final int GL_ACCUM = 0x0100;
-	public static final int GL_LOAD = 0x0101;
-	public static final int GL_RETURN = 0x0102;
-	public static final int GL_MULT = 0x0103;
-	public static final int GL_ADD = 0x0104;
-
-	/* AlphaFunction */
-	public static final int GL_NEVER = 0x0200;
-	public static final int GL_LESS = 0x0201;
-	public static final int GL_EQUAL = 0x0202;
-	public static final int GL_LEQUAL = 0x0203;
-	public static final int GL_GREATER = 0x0204;
-	public static final int GL_NOTEQUAL = 0x0205;
-	public static final int GL_GEQUAL = 0x0206;
-	public static final int GL_ALWAYS = 0x0207;
-
-	/* AttribMask */
-	public static final int GL_CURRENT_BIT = 0x00000001;
-	public static final int GL_POINT_BIT = 0x00000002;
-	public static final int GL_LINE_BIT = 0x00000004;
-	public static final int GL_POLYGON_BIT = 0x00000008;
-	public static final int GL_POLYGON_STIPPLE_BIT = 0x00000010;
-	public static final int GL_PIXEL_MODE_BIT = 0x00000020;
-	public static final int GL_LIGHTING_BIT = 0x00000040;
-	public static final int GL_FOG_BIT = 0x00000080;
-	public static final int GL_DEPTH_BUFFER_BIT = 0x00000100;
-	public static final int GL_ACCUM_BUFFER_BIT = 0x00000200;
-	public static final int GL_STENCIL_BUFFER_BIT = 0x00000400;
-	public static final int GL_VIEWPORT_BIT = 0x00000800;
-	public static final int GL_TRANSFORM_BIT = 0x00001000;
-	public static final int GL_ENABLE_BIT = 0x00002000;
-	public static final int GL_COLOR_BUFFER_BIT = 0x00004000;
-	public static final int GL_HINT_BIT = 0x00008000;
-	public static final int GL_EVAL_BIT = 0x00010000;
-	public static final int GL_LIST_BIT = 0x00020000;
-	public static final int GL_TEXTURE_BIT = 0x00040000;
-	public static final int GL_SCISSOR_BIT = 0x00080000;
-	public static final int GL_ALL_ATTRIB_BITS = 0x000fffff;
-
-	/* BeginMode */
-	public static final int GL_POINTS = 0x0000;
-	public static final int GL_LINES = 0x0001;
-	public static final int GL_LINE_LOOP = 0x0002;
-	public static final int GL_LINE_STRIP = 0x0003;
-	public static final int GL_TRIANGLES = 0x0004;
-	public static final int GL_TRIANGLE_STRIP = 0x0005;
-	public static final int GL_TRIANGLE_FAN = 0x0006;
-	public static final int GL_QUADS = 0x0007;
-	public static final int GL_QUAD_STRIP = 0x0008;
-	public static final int GL_POLYGON = 0x0009;
-
-	/* BlendingFactorDest */
-	public static final int GL_ZERO = 0;
-	public static final int GL_ONE = 1;
-	public static final int GL_SRC_COLOR = 0x0300;
-	public static final int GL_ONE_MINUS_SRC_COLOR = 0x0301;
-	public static final int GL_SRC_ALPHA = 0x0302;
-	public static final int GL_ONE_MINUS_SRC_ALPHA = 0x0303;
-	public static final int GL_DST_ALPHA = 0x0304;
-	public static final int GL_ONE_MINUS_DST_ALPHA = 0x0305;
-
-	/* BlendingFactorSrc */
-	/*      GL_ZERO */
-	/*      GL_ONE */
-	public static final int GL_DST_COLOR = 0x0306;
-	public static final int GL_ONE_MINUS_DST_COLOR = 0x0307;
-	public static final int GL_SRC_ALPHA_SATURATE = 0x0308;
-	/*      GL_SRC_ALPHA */
-	/*      GL_ONE_MINUS_SRC_ALPHA */
-	/*      GL_DST_ALPHA */
-	/*      GL_ONE_MINUS_DST_ALPHA */
-
-	/* Boolean */
-	public static final int GL_TRUE = 1;
-	public static final int GL_FALSE = 0;
-
-	/* ClearBufferMask */
-	/*      GL_COLOR_BUFFER_BIT */
-	/*      GL_ACCUM_BUFFER_BIT */
-	/*      GL_STENCIL_BUFFER_BIT */
-	/*      GL_DEPTH_BUFFER_BIT */
-
-	/* ClientArrayType */
-	/*      GL_VERTEX_ARRAY */
-	/*      GL_NORMAL_ARRAY */
-	/*      GL_COLOR_ARRAY */
-	/*      GL_INDEX_ARRAY */
-	/*      GL_TEXTURE_COORD_ARRAY */
-	/*      GL_EDGE_FLAG_ARRAY */
-
-	/* ClipPlaneName */
-	public static final int GL_CLIP_PLANE0 = 0x3000;
-	public static final int GL_CLIP_PLANE1 = 0x3001;
-	public static final int GL_CLIP_PLANE2 = 0x3002;
-	public static final int GL_CLIP_PLANE3 = 0x3003;
-	public static final int GL_CLIP_PLANE4 = 0x3004;
-	public static final int GL_CLIP_PLANE5 = 0x3005;
-
-	/* ColorMaterialFace */
-	/*      GL_FRONT */
-	/*      GL_BACK */
-	/*      GL_FRONT_AND_BACK */
-
-	/* ColorMaterialParameter */
-	/*      GL_AMBIENT */
-	/*      GL_DIFFUSE */
-	/*      GL_SPECULAR */
-	/*      GL_EMISSION */
-	/*      GL_AMBIENT_AND_DIFFUSE */
-
-	/* ColorPointerType */
-	/*      GL_BYTE */
-	/*      GL_UNSIGNED_BYTE */
-	/*      GL_SHORT */
-	/*      GL_UNSIGNED_SHORT */
-	/*      GL_INT */
-	/*      GL_UNSIGNED_INT */
-	/*      GL_FLOAT */
-	/*      GL_DOUBLE */
-
-	/* CullFaceMode */
-	/*      GL_FRONT */
-	/*      GL_BACK */
-	/*      GL_FRONT_AND_BACK */
-
-	/* DataType */
-	public static final int GL_BYTE = 0x1400;
-	public static final int GL_UNSIGNED_BYTE = 0x1401;
-	public static final int GL_SHORT = 0x1402;
-	public static final int GL_UNSIGNED_SHORT = 0x1403;
-	public static final int GL_INT = 0x1404;
-	public static final int GL_UNSIGNED_INT = 0x1405;
-	public static final int GL_FLOAT = 0x1406;
-	public static final int GL_2_BYTES = 0x1407;
-	public static final int GL_3_BYTES = 0x1408;
-	public static final int GL_4_BYTES = 0x1409;
-	public static final int GL_DOUBLE = 0x140A;
-
-	/* DepthFunction */
-	/*      GL_NEVER */
-	/*      GL_LESS */
-	/*      GL_EQUAL */
-	/*      GL_LEQUAL */
-	/*      GL_GREATER */
-	/*      GL_NOTEQUAL */
-	/*      GL_GEQUAL */
-	/*      GL_ALWAYS */
-
-	/* DrawBufferMode */
-	public static final int GL_NONE = 0;
-	public static final int GL_FRONT_LEFT = 0x0400;
-	public static final int GL_FRONT_RIGHT = 0x0401;
-	public static final int GL_BACK_LEFT = 0x0402;
-	public static final int GL_BACK_RIGHT = 0x0403;
-	public static final int GL_FRONT = 0x0404;
-	public static final int GL_BACK = 0x0405;
-	public static final int GL_LEFT = 0x0406;
-	public static final int GL_RIGHT = 0x0407;
-	public static final int GL_FRONT_AND_BACK = 0x0408;
-	public static final int GL_AUX0 = 0x0409;
-	public static final int GL_AUX1 = 0x040A;
-	public static final int GL_AUX2 = 0x040B;
-	public static final int GL_AUX3 = 0x040C;
-
-	/* Enable */
-	/*      GL_FOG */
-	/*      GL_LIGHTING */
-	/*      GL_TEXTURE_1D */
-	/*      GL_TEXTURE_2D */
-	/*      GL_LINE_STIPPLE */
-	/*      GL_POLYGON_STIPPLE */
-	/*      GL_CULL_FACE */
-	/*      GL_ALPHA_TEST */
-	/*      GL_BLEND */
-	/*      GL_INDEX_LOGIC_OP */
-	/*      GL_COLOR_LOGIC_OP */
-	/*      GL_DITHER */
-	/*      GL_STENCIL_TEST */
-	/*      GL_DEPTH_TEST */
-	/*      GL_CLIP_PLANE0 */
-	/*      GL_CLIP_PLANE1 */
-	/*      GL_CLIP_PLANE2 */
-	/*      GL_CLIP_PLANE3 */
-	/*      GL_CLIP_PLANE4 */
-	/*      GL_CLIP_PLANE5 */
-	/*      GL_LIGHT0 */
-	/*      GL_LIGHT1 */
-	/*      GL_LIGHT2 */
-	/*      GL_LIGHT3 */
-	/*      GL_LIGHT4 */
-	/*      GL_LIGHT5 */
-	/*      GL_LIGHT6 */
-	/*      GL_LIGHT7 */
-	/*      GL_TEXTURE_GEN_S */
-	/*      GL_TEXTURE_GEN_T */
-	/*      GL_TEXTURE_GEN_R */
-	/*      GL_TEXTURE_GEN_Q */
-	/*      GL_MAP1_VERTEX_3 */
-	/*      GL_MAP1_VERTEX_4 */
-	/*      GL_MAP1_COLOR_4 */
-	/*      GL_MAP1_INDEX */
-	/*      GL_MAP1_NORMAL */
-	/*      GL_MAP1_TEXTURE_COORD_1 */
-	/*      GL_MAP1_TEXTURE_COORD_2 */
-	/*      GL_MAP1_TEXTURE_COORD_3 */
-	/*      GL_MAP1_TEXTURE_COORD_4 */
-	/*      GL_MAP2_VERTEX_3 */
-	/*      GL_MAP2_VERTEX_4 */
-	/*      GL_MAP2_COLOR_4 */
-	/*      GL_MAP2_INDEX */
-	/*      GL_MAP2_NORMAL */
-	/*      GL_MAP2_TEXTURE_COORD_1 */
-	/*      GL_MAP2_TEXTURE_COORD_2 */
-	/*      GL_MAP2_TEXTURE_COORD_3 */
-	/*      GL_MAP2_TEXTURE_COORD_4 */
-	/*      GL_POINT_SMOOTH */
-	/*      GL_LINE_SMOOTH */
-	/*      GL_POLYGON_SMOOTH */
-	/*      GL_SCISSOR_TEST */
-	/*      GL_COLOR_MATERIAL */
-	/*      GL_NORMALIZE */
-	/*      GL_AUTO_NORMAL */
-	/*      GL_VERTEX_ARRAY */
-	/*      GL_NORMAL_ARRAY */
-	/*      GL_COLOR_ARRAY */
-	/*      GL_INDEX_ARRAY */
-	/*      GL_TEXTURE_COORD_ARRAY */
-	/*      GL_EDGE_FLAG_ARRAY */
-	/*      GL_POLYGON_OFFSET_POINT */
-	/*      GL_POLYGON_OFFSET_LINE */
-	/*      GL_POLYGON_OFFSET_FILL */
-
-	/* ErrorCode */
-	public static final int GL_NO_ERROR = 0;
-	public static final int GL_INVALID_ENUM = 0x0500;
-	public static final int GL_INVALID_VALUE = 0x0501;
-	public static final int GL_INVALID_OPERATION = 0x0502;
-	public static final int GL_STACK_OVERFLOW = 0x0503;
-	public static final int GL_STACK_UNDERFLOW = 0x0504;
-	public static final int GL_OUT_OF_MEMORY = 0x0505;
-
-	/* FeedBackMode */
-	public static final int GL_2D = 0x0600;
-	public static final int GL_3D = 0x0601;
-	public static final int GL_3D_COLOR = 0x0602;
-	public static final int GL_3D_COLOR_TEXTURE = 0x0603;
-	public static final int GL_4D_COLOR_TEXTURE = 0x0604;
-
-	/* FeedBackToken */
-	public static final int GL_PASS_THROUGH_TOKEN = 0x0700;
-	public static final int GL_POINT_TOKEN = 0x0701;
-	public static final int GL_LINE_TOKEN = 0x0702;
-	public static final int GL_POLYGON_TOKEN = 0x0703;
-	public static final int GL_BITMAP_TOKEN = 0x0704;
-	public static final int GL_DRAW_PIXEL_TOKEN = 0x0705;
-	public static final int GL_COPY_PIXEL_TOKEN = 0x0706;
-	public static final int GL_LINE_RESET_TOKEN = 0x0707;
-
-	/* FogMode */
-	/*      GL_LINEAR */
-	public static final int GL_EXP = 0x0800;
-	public static final int GL_EXP2 = 0x0801;
-
-	/* FogParameter */
-	/*      GL_FOG_COLOR */
-	/*      GL_FOG_DENSITY */
-	/*      GL_FOG_END */
-	/*      GL_FOG_INDEX */
-	/*      GL_FOG_MODE */
-	/*      GL_FOG_START */
-
-	/* FrontFaceDirection */
-	public static final int GL_CW = 0x0900;
-	public static final int GL_CCW = 0x0901;
-
-	/* GetMapTarget */
-	public static final int GL_COEFF = 0x0A00;
-	public static final int GL_ORDER = 0x0A01;
-	public static final int GL_DOMAIN = 0x0A02;
-
-	/* GetPixelMap */
-	/*      GL_PIXEL_MAP_I_TO_I */
-	/*      GL_PIXEL_MAP_S_TO_S */
-	/*      GL_PIXEL_MAP_I_TO_R */
-	/*      GL_PIXEL_MAP_I_TO_G */
-	/*      GL_PIXEL_MAP_I_TO_B */
-	/*      GL_PIXEL_MAP_I_TO_A */
-	/*      GL_PIXEL_MAP_R_TO_R */
-	/*      GL_PIXEL_MAP_G_TO_G */
-	/*      GL_PIXEL_MAP_B_TO_B */
-	/*      GL_PIXEL_MAP_A_TO_A */
-
-	/* GetPointerTarget */
-	/*      GL_VERTEX_ARRAY_POINTER */
-	/*      GL_NORMAL_ARRAY_POINTER */
-	/*      GL_COLOR_ARRAY_POINTER */
-	/*      GL_INDEX_ARRAY_POINTER */
-	/*      GL_TEXTURE_COORD_ARRAY_POINTER */
-	/*      GL_EDGE_FLAG_ARRAY_POINTER */
-
-	/* GetTarget */
-	public static final int GL_CURRENT_COLOR = 0x0B00;
-	public static final int GL_CURRENT_INDEX = 0x0B01;
-	public static final int GL_CURRENT_NORMAL = 0x0B02;
-	public static final int GL_CURRENT_TEXTURE_COORDS = 0x0B03;
-	public static final int GL_CURRENT_RASTER_COLOR = 0x0B04;
-	public static final int GL_CURRENT_RASTER_INDEX = 0x0B05;
-	public static final int GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06;
-	public static final int GL_CURRENT_RASTER_POSITION = 0x0B07;
-	public static final int GL_CURRENT_RASTER_POSITION_VALID = 0x0B08;
-	public static final int GL_CURRENT_RASTER_DISTANCE = 0x0B09;
-	public static final int GL_POINT_SMOOTH = 0x0B10;
-	public static final int GL_POINT_SIZE = 0x0B11;
-	public static final int GL_POINT_SIZE_RANGE = 0x0B12;
-	public static final int GL_POINT_SIZE_GRANULARITY = 0x0B13;
-	public static final int GL_LINE_SMOOTH = 0x0B20;
-	public static final int GL_LINE_WIDTH = 0x0B21;
-	public static final int GL_LINE_WIDTH_RANGE = 0x0B22;
-	public static final int GL_LINE_WIDTH_GRANULARITY = 0x0B23;
-	public static final int GL_LINE_STIPPLE = 0x0B24;
-	public static final int GL_LINE_STIPPLE_PATTERN = 0x0B25;
-	public static final int GL_LINE_STIPPLE_REPEAT = 0x0B26;
-	public static final int GL_LIST_MODE = 0x0B30;
-	public static final int GL_MAX_LIST_NESTING = 0x0B31;
-	public static final int GL_LIST_BASE = 0x0B32;
-	public static final int GL_LIST_INDEX = 0x0B33;
-	public static final int GL_POLYGON_MODE = 0x0B40;
-	public static final int GL_POLYGON_SMOOTH = 0x0B41;
-	public static final int GL_POLYGON_STIPPLE = 0x0B42;
-	public static final int GL_EDGE_FLAG = 0x0B43;
-	public static final int GL_CULL_FACE = 0x0B44;
-	public static final int GL_CULL_FACE_MODE = 0x0B45;
-	public static final int GL_FRONT_FACE = 0x0B46;
-	public static final int GL_LIGHTING = 0x0B50;
-	public static final int GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51;
-	public static final int GL_LIGHT_MODEL_TWO_SIDE = 0x0B52;
-	public static final int GL_LIGHT_MODEL_AMBIENT = 0x0B53;
-	public static final int GL_SHADE_MODEL = 0x0B54;
-	public static final int GL_COLOR_MATERIAL_FACE = 0x0B55;
-	public static final int GL_COLOR_MATERIAL_PARAMETER = 0x0B56;
-	public static final int GL_COLOR_MATERIAL = 0x0B57;
-	public static final int GL_FOG = 0x0B60;
-	public static final int GL_FOG_INDEX = 0x0B61;
-	public static final int GL_FOG_DENSITY = 0x0B62;
-	public static final int GL_FOG_START = 0x0B63;
-	public static final int GL_FOG_END = 0x0B64;
-	public static final int GL_FOG_MODE = 0x0B65;
-	public static final int GL_FOG_COLOR = 0x0B66;
-	public static final int GL_DEPTH_RANGE = 0x0B70;
-	public static final int GL_DEPTH_TEST = 0x0B71;
-	public static final int GL_DEPTH_WRITEMASK = 0x0B72;
-	public static final int GL_DEPTH_CLEAR_VALUE = 0x0B73;
-	public static final int GL_DEPTH_FUNC = 0x0B74;
-	public static final int GL_ACCUM_CLEAR_VALUE = 0x0B80;
-	public static final int GL_STENCIL_TEST = 0x0B90;
-	public static final int GL_STENCIL_CLEAR_VALUE = 0x0B91;
-	public static final int GL_STENCIL_FUNC = 0x0B92;
-	public static final int GL_STENCIL_VALUE_MASK = 0x0B93;
-	public static final int GL_STENCIL_FAIL = 0x0B94;
-	public static final int GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95;
-	public static final int GL_STENCIL_PASS_DEPTH_PASS = 0x0B96;
-	public static final int GL_STENCIL_REF = 0x0B97;
-	public static final int GL_STENCIL_WRITEMASK = 0x0B98;
-	public static final int GL_MATRIX_MODE = 0x0BA0;
-	public static final int GL_NORMALIZE = 0x0BA1;
-	public static final int GL_VIEWPORT = 0x0BA2;
-	public static final int GL_MODELVIEW_STACK_DEPTH = 0x0BA3;
-	public static final int GL_PROJECTION_STACK_DEPTH = 0x0BA4;
-	public static final int GL_TEXTURE_STACK_DEPTH = 0x0BA5;
-	public static final int GL_MODELVIEW_MATRIX = 0x0BA6;
-	public static final int GL_PROJECTION_MATRIX = 0x0BA7;
-	public static final int GL_TEXTURE_MATRIX = 0x0BA8;
-	public static final int GL_ATTRIB_STACK_DEPTH = 0x0BB0;
-	public static final int GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1;
-	public static final int GL_ALPHA_TEST = 0x0BC0;
-	public static final int GL_ALPHA_TEST_FUNC = 0x0BC1;
-	public static final int GL_ALPHA_TEST_REF = 0x0BC2;
-	public static final int GL_DITHER = 0x0BD0;
-	public static final int GL_BLEND_DST = 0x0BE0;
-	public static final int GL_BLEND_SRC = 0x0BE1;
-	public static final int GL_BLEND = 0x0BE2;
-	public static final int GL_LOGIC_OP_MODE = 0x0BF0;
-	public static final int GL_INDEX_LOGIC_OP = 0x0BF1;
-	public static final int GL_COLOR_LOGIC_OP = 0x0BF2;
-	public static final int GL_AUX_BUFFERS = 0x0C00;
-	public static final int GL_DRAW_BUFFER = 0x0C01;
-	public static final int GL_READ_BUFFER = 0x0C02;
-	public static final int GL_SCISSOR_BOX = 0x0C10;
-	public static final int GL_SCISSOR_TEST = 0x0C11;
-	public static final int GL_INDEX_CLEAR_VALUE = 0x0C20;
-	public static final int GL_INDEX_WRITEMASK = 0x0C21;
-	public static final int GL_COLOR_CLEAR_VALUE = 0x0C22;
-	public static final int GL_COLOR_WRITEMASK = 0x0C23;
-	public static final int GL_INDEX_MODE = 0x0C30;
-	public static final int GL_RGBA_MODE = 0x0C31;
-	public static final int GL_DOUBLEBUFFER = 0x0C32;
-	public static final int GL_STEREO = 0x0C33;
-	public static final int GL_RENDER_MODE = 0x0C40;
-	public static final int GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50;
-	public static final int GL_POINT_SMOOTH_HINT = 0x0C51;
-	public static final int GL_LINE_SMOOTH_HINT = 0x0C52;
-	public static final int GL_POLYGON_SMOOTH_HINT = 0x0C53;
-	public static final int GL_FOG_HINT = 0x0C54;
-	public static final int GL_TEXTURE_GEN_S = 0x0C60;
-	public static final int GL_TEXTURE_GEN_T = 0x0C61;
-	public static final int GL_TEXTURE_GEN_R = 0x0C62;
-	public static final int GL_TEXTURE_GEN_Q = 0x0C63;
-	public static final int GL_PIXEL_MAP_I_TO_I = 0x0C70;
-	public static final int GL_PIXEL_MAP_S_TO_S = 0x0C71;
-	public static final int GL_PIXEL_MAP_I_TO_R = 0x0C72;
-	public static final int GL_PIXEL_MAP_I_TO_G = 0x0C73;
-	public static final int GL_PIXEL_MAP_I_TO_B = 0x0C74;
-	public static final int GL_PIXEL_MAP_I_TO_A = 0x0C75;
-	public static final int GL_PIXEL_MAP_R_TO_R = 0x0C76;
-	public static final int GL_PIXEL_MAP_G_TO_G = 0x0C77;
-	public static final int GL_PIXEL_MAP_B_TO_B = 0x0C78;
-	public static final int GL_PIXEL_MAP_A_TO_A = 0x0C79;
-	public static final int GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0;
-	public static final int GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1;
-	public static final int GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2;
-	public static final int GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3;
-	public static final int GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4;
-	public static final int GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5;
-	public static final int GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6;
-	public static final int GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7;
-	public static final int GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8;
-	public static final int GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9;
-	public static final int GL_UNPACK_SWAP_BYTES = 0x0CF0;
-	public static final int GL_UNPACK_LSB_FIRST = 0x0CF1;
-	public static final int GL_UNPACK_ROW_LENGTH = 0x0CF2;
-	public static final int GL_UNPACK_SKIP_ROWS = 0x0CF3;
-	public static final int GL_UNPACK_SKIP_PIXELS = 0x0CF4;
-	public static final int GL_UNPACK_ALIGNMENT = 0x0CF5;
-	public static final int GL_PACK_SWAP_BYTES = 0x0D00;
-	public static final int GL_PACK_LSB_FIRST = 0x0D01;
-	public static final int GL_PACK_ROW_LENGTH = 0x0D02;
-	public static final int GL_PACK_SKIP_ROWS = 0x0D03;
-	public static final int GL_PACK_SKIP_PIXELS = 0x0D04;
-	public static final int GL_PACK_ALIGNMENT = 0x0D05;
-	public static final int GL_MAP_COLOR = 0x0D10;
-	public static final int GL_MAP_STENCIL = 0x0D11;
-	public static final int GL_INDEX_SHIFT = 0x0D12;
-	public static final int GL_INDEX_OFFSET = 0x0D13;
-	public static final int GL_RED_SCALE = 0x0D14;
-	public static final int GL_RED_BIAS = 0x0D15;
-	public static final int GL_ZOOM_X = 0x0D16;
-	public static final int GL_ZOOM_Y = 0x0D17;
-	public static final int GL_GREEN_SCALE = 0x0D18;
-	public static final int GL_GREEN_BIAS = 0x0D19;
-	public static final int GL_BLUE_SCALE = 0x0D1A;
-	public static final int GL_BLUE_BIAS = 0x0D1B;
-	public static final int GL_ALPHA_SCALE = 0x0D1C;
-	public static final int GL_ALPHA_BIAS = 0x0D1D;
-	public static final int GL_DEPTH_SCALE = 0x0D1E;
-	public static final int GL_DEPTH_BIAS = 0x0D1F;
-	public static final int GL_MAX_EVAL_ORDER = 0x0D30;
-	public static final int GL_MAX_LIGHTS = 0x0D31;
-	public static final int GL_MAX_CLIP_PLANES = 0x0D32;
-	public static final int GL_MAX_TEXTURE_SIZE = 0x0D33;
-	public static final int GL_MAX_PIXEL_MAP_TABLE = 0x0D34;
-	public static final int GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35;
-	public static final int GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36;
-	public static final int GL_MAX_NAME_STACK_DEPTH = 0x0D37;
-	public static final int GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38;
-	public static final int GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39;
-	public static final int GL_MAX_VIEWPORT_DIMS = 0x0D3A;
-	public static final int GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B;
-	public static final int GL_SUBPIXEL_BITS = 0x0D50;
-	public static final int GL_INDEX_BITS = 0x0D51;
-	public static final int GL_RED_BITS = 0x0D52;
-	public static final int GL_GREEN_BITS = 0x0D53;
-	public static final int GL_BLUE_BITS = 0x0D54;
-	public static final int GL_ALPHA_BITS = 0x0D55;
-	public static final int GL_DEPTH_BITS = 0x0D56;
-	public static final int GL_STENCIL_BITS = 0x0D57;
-	public static final int GL_ACCUM_RED_BITS = 0x0D58;
-	public static final int GL_ACCUM_GREEN_BITS = 0x0D59;
-	public static final int GL_ACCUM_BLUE_BITS = 0x0D5A;
-	public static final int GL_ACCUM_ALPHA_BITS = 0x0D5B;
-	public static final int GL_NAME_STACK_DEPTH = 0x0D70;
-	public static final int GL_AUTO_NORMAL = 0x0D80;
-	public static final int GL_MAP1_COLOR_4 = 0x0D90;
-	public static final int GL_MAP1_INDEX = 0x0D91;
-	public static final int GL_MAP1_NORMAL = 0x0D92;
-	public static final int GL_MAP1_TEXTURE_COORD_1 = 0x0D93;
-	public static final int GL_MAP1_TEXTURE_COORD_2 = 0x0D94;
-	public static final int GL_MAP1_TEXTURE_COORD_3 = 0x0D95;
-	public static final int GL_MAP1_TEXTURE_COORD_4 = 0x0D96;
-	public static final int GL_MAP1_VERTEX_3 = 0x0D97;
-	public static final int GL_MAP1_VERTEX_4 = 0x0D98;
-	public static final int GL_MAP2_COLOR_4 = 0x0DB0;
-	public static final int GL_MAP2_INDEX = 0x0DB1;
-	public static final int GL_MAP2_NORMAL = 0x0DB2;
-	public static final int GL_MAP2_TEXTURE_COORD_1 = 0x0DB3;
-	public static final int GL_MAP2_TEXTURE_COORD_2 = 0x0DB4;
-	public static final int GL_MAP2_TEXTURE_COORD_3 = 0x0DB5;
-	public static final int GL_MAP2_TEXTURE_COORD_4 = 0x0DB6;
-	public static final int GL_MAP2_VERTEX_3 = 0x0DB7;
-	public static final int GL_MAP2_VERTEX_4 = 0x0DB8;
-	public static final int GL_MAP1_GRID_DOMAIN = 0x0DD0;
-	public static final int GL_MAP1_GRID_SEGMENTS = 0x0DD1;
-	public static final int GL_MAP2_GRID_DOMAIN = 0x0DD2;
-	public static final int GL_MAP2_GRID_SEGMENTS = 0x0DD3;
-	public static final int GL_TEXTURE_1D = 0x0DE0;
-	public static final int GL_TEXTURE_2D = 0x0DE1;
-	public static final int GL_FEEDBACK_BUFFER_POINTER = 0x0DF0;
-	public static final int GL_FEEDBACK_BUFFER_SIZE = 0x0DF1;
-	public static final int GL_FEEDBACK_BUFFER_TYPE = 0x0DF2;
-	public static final int GL_SELECTION_BUFFER_POINTER = 0x0DF3;
-	public static final int GL_SELECTION_BUFFER_SIZE = 0x0DF4;
-	/*      GL_TEXTURE_BINDING_1D */
-	/*      GL_TEXTURE_BINDING_2D */
-	/*      GL_VERTEX_ARRAY */
-	/*      GL_NORMAL_ARRAY */
-	/*      GL_COLOR_ARRAY */
-	/*      GL_INDEX_ARRAY */
-	/*      GL_TEXTURE_COORD_ARRAY */
-	/*      GL_EDGE_FLAG_ARRAY */
-	/*      GL_VERTEX_ARRAY_SIZE */
-	/*      GL_VERTEX_ARRAY_TYPE */
-	/*      GL_VERTEX_ARRAY_STRIDE */
-	/*      GL_NORMAL_ARRAY_TYPE */
-	/*      GL_NORMAL_ARRAY_STRIDE */
-	/*      GL_COLOR_ARRAY_SIZE */
-	/*      GL_COLOR_ARRAY_TYPE */
-	/*      GL_COLOR_ARRAY_STRIDE */
-	/*      GL_INDEX_ARRAY_TYPE */
-	/*      GL_INDEX_ARRAY_STRIDE */
-	/*      GL_TEXTURE_COORD_ARRAY_SIZE */
-	/*      GL_TEXTURE_COORD_ARRAY_TYPE */
-	/*      GL_TEXTURE_COORD_ARRAY_STRIDE */
-	/*      GL_EDGE_FLAG_ARRAY_STRIDE */
-	/*      GL_POLYGON_OFFSET_FACTOR */
-	/*      GL_POLYGON_OFFSET_UNITS */
-
-	/* GetTextureParameter */
-	/*      GL_TEXTURE_MAG_FILTER */
-	/*      GL_TEXTURE_MIN_FILTER */
-	/*      GL_TEXTURE_WRAP_S */
-	/*      GL_TEXTURE_WRAP_T */
-	public static final int GL_TEXTURE_WIDTH = 0x1000;
-	public static final int GL_TEXTURE_HEIGHT = 0x1001;
-	public static final int GL_TEXTURE_INTERNAL_FORMAT = 0x1003;
-	public static final int GL_TEXTURE_BORDER_COLOR = 0x1004;
-	public static final int GL_TEXTURE_BORDER = 0x1005;
-	/*      GL_TEXTURE_RED_SIZE */
-	/*      GL_TEXTURE_GREEN_SIZE */
-	/*      GL_TEXTURE_BLUE_SIZE */
-	/*      GL_TEXTURE_ALPHA_SIZE */
-	/*      GL_TEXTURE_LUMINANCE_SIZE */
-	/*      GL_TEXTURE_INTENSITY_SIZE */
-	/*      GL_TEXTURE_PRIORITY */
-	/*      GL_TEXTURE_RESIDENT */
-
-	/* HintMode */
-	public static final int GL_DONT_CARE = 0x1100;
-	public static final int GL_FASTEST = 0x1101;
-	public static final int GL_NICEST = 0x1102;
-
-	/* HintTarget */
-	/*      GL_PERSPECTIVE_CORRECTION_HINT */
-	/*      GL_POINT_SMOOTH_HINT */
-	/*      GL_LINE_SMOOTH_HINT */
-	/*      GL_POLYGON_SMOOTH_HINT */
-	/*      GL_FOG_HINT */
-	/*      GL_PHONG_HINT */
-
-	/* IndexPointerType */
-	/*      GL_SHORT */
-	/*      GL_INT */
-	/*      GL_FLOAT */
-	/*      GL_DOUBLE */
-
-	/* LightModelParameter */
-	/*      GL_LIGHT_MODEL_AMBIENT */
-	/*      GL_LIGHT_MODEL_LOCAL_VIEWER */
-	/*      GL_LIGHT_MODEL_TWO_SIDE */
-
-	/* LightName */
-	public static final int GL_LIGHT0 = 0x4000;
-	public static final int GL_LIGHT1 = 0x4001;
-	public static final int GL_LIGHT2 = 0x4002;
-	public static final int GL_LIGHT3 = 0x4003;
-	public static final int GL_LIGHT4 = 0x4004;
-	public static final int GL_LIGHT5 = 0x4005;
-	public static final int GL_LIGHT6 = 0x4006;
-	public static final int GL_LIGHT7 = 0x4007;
-
-	/* LightParameter */
-	public static final int GL_AMBIENT = 0x1200;
-	public static final int GL_DIFFUSE = 0x1201;
-	public static final int GL_SPECULAR = 0x1202;
-	public static final int GL_POSITION = 0x1203;
-	public static final int GL_SPOT_DIRECTION = 0x1204;
-	public static final int GL_SPOT_EXPONENT = 0x1205;
-	public static final int GL_SPOT_CUTOFF = 0x1206;
-	public static final int GL_CONSTANT_ATTENUATION = 0x1207;
-	public static final int GL_LINEAR_ATTENUATION = 0x1208;
-	public static final int GL_QUADRATIC_ATTENUATION = 0x1209;
-
-	/* InterleavedArrays */
-	/*      GL_V2F */
-	/*      GL_V3F */
-	/*      GL_C4UB_V2F */
-	/*      GL_C4UB_V3F */
-	/*      GL_C3F_V3F */
-	/*      GL_N3F_V3F */
-	/*      GL_C4F_N3F_V3F */
-	/*      GL_T2F_V3F */
-	/*      GL_T4F_V4F */
-	/*      GL_T2F_C4UB_V3F */
-	/*      GL_T2F_C3F_V3F */
-	/*      GL_T2F_N3F_V3F */
-	/*      GL_T2F_C4F_N3F_V3F */
-	/*      GL_T4F_C4F_N3F_V4F */
-
-	/* ListMode */
-	public static final int GL_COMPILE = 0x1300;
-	public static final int GL_COMPILE_AND_EXECUTE = 0x1301;
-
-	/* ListNameType */
-	/*      GL_BYTE */
-	/*      GL_UNSIGNED_BYTE */
-	/*      GL_SHORT */
-	/*      GL_UNSIGNED_SHORT */
-	/*      GL_INT */
-	/*      GL_UNSIGNED_INT */
-	/*      GL_FLOAT */
-	/*      GL_2_BYTES */
-	/*      GL_3_BYTES */
-	/*      GL_4_BYTES */
-
-	/* LogicOp */
-	public static final int GL_CLEAR = 0x1500;
-	public static final int GL_AND = 0x1501;
-	public static final int GL_AND_REVERSE = 0x1502;
-	public static final int GL_COPY = 0x1503;
-	public static final int GL_AND_INVERTED = 0x1504;
-	public static final int GL_NOOP = 0x1505;
-	public static final int GL_XOR = 0x1506;
-	public static final int GL_OR = 0x1507;
-	public static final int GL_NOR = 0x1508;
-	public static final int GL_EQUIV = 0x1509;
-	public static final int GL_INVERT = 0x150A;
-	public static final int GL_OR_REVERSE = 0x150B;
-	public static final int GL_COPY_INVERTED = 0x150C;
-	public static final int GL_OR_INVERTED = 0x150D;
-	public static final int GL_NAND = 0x150E;
-	public static final int GL_SET = 0x150F;
-
-	/* MapTarget */
-	/*      GL_MAP1_COLOR_4 */
-	/*      GL_MAP1_INDEX */
-	/*      GL_MAP1_NORMAL */
-	/*      GL_MAP1_TEXTURE_COORD_1 */
-	/*      GL_MAP1_TEXTURE_COORD_2 */
-	/*      GL_MAP1_TEXTURE_COORD_3 */
-	/*      GL_MAP1_TEXTURE_COORD_4 */
-	/*      GL_MAP1_VERTEX_3 */
-	/*      GL_MAP1_VERTEX_4 */
-	/*      GL_MAP2_COLOR_4 */
-	/*      GL_MAP2_INDEX */
-	/*      GL_MAP2_NORMAL */
-	/*      GL_MAP2_TEXTURE_COORD_1 */
-	/*      GL_MAP2_TEXTURE_COORD_2 */
-	/*      GL_MAP2_TEXTURE_COORD_3 */
-	/*      GL_MAP2_TEXTURE_COORD_4 */
-	/*      GL_MAP2_VERTEX_3 */
-	/*      GL_MAP2_VERTEX_4 */
-
-	/* MaterialFace */
-	/*      GL_FRONT */
-	/*      GL_BACK */
-	/*      GL_FRONT_AND_BACK */
-
-	/* MaterialParameter */
-	public static final int GL_EMISSION = 0x1600;
-	public static final int GL_SHININESS = 0x1601;
-	public static final int GL_AMBIENT_AND_DIFFUSE = 0x1602;
-	public static final int GL_COLOR_INDEXES = 0x1603;
-	/*      GL_AMBIENT */
-	/*      GL_DIFFUSE */
-	/*      GL_SPECULAR */
-
-	/* MatrixMode */
-	public static final int GL_MODELVIEW = 0x1700;
-	public static final int GL_PROJECTION = 0x1701;
-	public static final int GL_TEXTURE = 0x1702;
-
-	/* MeshMode1 */
-	/*      GL_POINT */
-	/*      GL_LINE */
-
-	/* MeshMode2 */
-	/*      GL_POINT */
-	/*      GL_LINE */
-	/*      GL_FILL */
-
-	/* NormalPointerType */
-	/*      GL_BYTE */
-	/*      GL_SHORT */
-	/*      GL_INT */
-	/*      GL_FLOAT */
-	/*      GL_DOUBLE */
-
-	/* PixelCopyType */
-	public static final int GL_COLOR = 0x1800;
-	public static final int GL_DEPTH = 0x1801;
-	public static final int GL_STENCIL = 0x1802;
-
-	/* PixelFormat */
-	public static final int GL_COLOR_INDEX = 0x1900;
-	public static final int GL_STENCIL_INDEX = 0x1901;
-	public static final int GL_DEPTH_COMPONENT = 0x1902;
-	public static final int GL_RED = 0x1903;
-	public static final int GL_GREEN = 0x1904;
-	public static final int GL_BLUE = 0x1905;
-	public static final int GL_ALPHA = 0x1906;
-	public static final int GL_RGB = 0x1907;
-	public static final int GL_RGBA = 0x1908;
-	public static final int GL_LUMINANCE = 0x1909;
-	public static final int GL_LUMINANCE_ALPHA = 0x190A;
-
-	/* PixelMap */
-	/*      GL_PIXEL_MAP_I_TO_I */
-	/*      GL_PIXEL_MAP_S_TO_S */
-	/*      GL_PIXEL_MAP_I_TO_R */
-	/*      GL_PIXEL_MAP_I_TO_G */
-	/*      GL_PIXEL_MAP_I_TO_B */
-	/*      GL_PIXEL_MAP_I_TO_A */
-	/*      GL_PIXEL_MAP_R_TO_R */
-	/*      GL_PIXEL_MAP_G_TO_G */
-	/*      GL_PIXEL_MAP_B_TO_B */
-	/*      GL_PIXEL_MAP_A_TO_A */
-
-	/* PixelStore */
-	/*      GL_UNPACK_SWAP_BYTES */
-	/*      GL_UNPACK_LSB_FIRST */
-	/*      GL_UNPACK_ROW_LENGTH */
-	/*      GL_UNPACK_SKIP_ROWS */
-	/*      GL_UNPACK_SKIP_PIXELS */
-	/*      GL_UNPACK_ALIGNMENT */
-	/*      GL_PACK_SWAP_BYTES */
-	/*      GL_PACK_LSB_FIRST */
-	/*      GL_PACK_ROW_LENGTH */
-	/*      GL_PACK_SKIP_ROWS */
-	/*      GL_PACK_SKIP_PIXELS */
-	/*      GL_PACK_ALIGNMENT */
-
-	/* PixelTransfer */
-	/*      GL_MAP_COLOR */
-	/*      GL_MAP_STENCIL */
-	/*      GL_INDEX_SHIFT */
-	/*      GL_INDEX_OFFSET */
-	/*      GL_RED_SCALE */
-	/*      GL_RED_BIAS */
-	/*      GL_GREEN_SCALE */
-	/*      GL_GREEN_BIAS */
-	/*      GL_BLUE_SCALE */
-	/*      GL_BLUE_BIAS */
-	/*      GL_ALPHA_SCALE */
-	/*      GL_ALPHA_BIAS */
-	/*      GL_DEPTH_SCALE */
-	/*      GL_DEPTH_BIAS */
-
-	/* PixelType */
-	public static final int GL_BITMAP = 0x1A00;
-	/*      GL_BYTE */
-	/*      GL_UNSIGNED_BYTE */
-	/*      GL_SHORT */
-	/*      GL_UNSIGNED_SHORT */
-	/*      GL_INT */
-	/*      GL_UNSIGNED_INT */
-	/*      GL_FLOAT */
-
-	/* PolygonMode */
-	public static final int GL_POINT = 0x1B00;
-	public static final int GL_LINE = 0x1B01;
-	public static final int GL_FILL = 0x1B02;
-
-	/* ReadBufferMode */
-	/*      GL_FRONT_LEFT */
-	/*      GL_FRONT_RIGHT */
-	/*      GL_BACK_LEFT */
-	/*      GL_BACK_RIGHT */
-	/*      GL_FRONT */
-	/*      GL_BACK */
-	/*      GL_LEFT */
-	/*      GL_RIGHT */
-	/*      GL_AUX0 */
-	/*      GL_AUX1 */
-	/*      GL_AUX2 */
-	/*      GL_AUX3 */
-
-	/* RenderingMode */
-	public static final int GL_RENDER = 0x1C00;
-	public static final int GL_FEEDBACK = 0x1C01;
-	public static final int GL_SELECT = 0x1C02;
-
-	/* ShadingModel */
-	public static final int GL_FLAT = 0x1D00;
-	public static final int GL_SMOOTH = 0x1D01;
-
-	/* StencilFunction */
-	/*      GL_NEVER */
-	/*      GL_LESS */
-	/*      GL_EQUAL */
-	/*      GL_LEQUAL */
-	/*      GL_GREATER */
-	/*      GL_NOTEQUAL */
-	/*      GL_GEQUAL */
-	/*      GL_ALWAYS */
-
-	/* StencilOp */
-	/*      GL_ZERO */
-	public static final int GL_KEEP = 0x1E00;
-	public static final int GL_REPLACE = 0x1E01;
-	public static final int GL_INCR = 0x1E02;
-	public static final int GL_DECR = 0x1E03;
-	/*      GL_INVERT */
-
-	/* StringName */
-	public static final int GL_VENDOR = 0x1F00;
-	public static final int GL_RENDERER = 0x1F01;
-	public static final int GL_VERSION = 0x1F02;
-	public static final int GL_EXTENSIONS = 0x1F03;
-
-	/* TextureCoordName */
-	public static final int GL_S = 0x2000;
-	public static final int GL_T = 0x2001;
-	public static final int GL_R = 0x2002;
-	public static final int GL_Q = 0x2003;
-
-	/* TexCoordPointerType */
-	/*      GL_SHORT */
-	/*      GL_INT */
-	/*      GL_FLOAT */
-	/*      GL_DOUBLE */
-
-	/* TextureEnvMode */
-	public static final int GL_MODULATE = 0x2100;
-	public static final int GL_DECAL = 0x2101;
-	/*      GL_BLEND */
-	/*      GL_REPLACE */
-
-	/* TextureEnvParameter */
-	public static final int GL_TEXTURE_ENV_MODE = 0x2200;
-	public static final int GL_TEXTURE_ENV_COLOR = 0x2201;
-
-	/* TextureEnvTarget */
-	public static final int GL_TEXTURE_ENV = 0x2300;
-
-	/* TextureGenMode */
-	public static final int GL_EYE_LINEAR = 0x2400;
-	public static final int GL_OBJECT_LINEAR = 0x2401;
-	public static final int GL_SPHERE_MAP = 0x2402;
-
-	/* TextureGenParameter */
-	public static final int GL_TEXTURE_GEN_MODE = 0x2500;
-	public static final int GL_OBJECT_PLANE = 0x2501;
-	public static final int GL_EYE_PLANE = 0x2502;
-
-	/* TextureMagFilter */
-	public static final int GL_NEAREST = 0x2600;
-	public static final int GL_LINEAR = 0x2601;
-
-	/* TextureMinFilter */
-	/*      GL_NEAREST */
-	/*      GL_LINEAR */
-	public static final int GL_NEAREST_MIPMAP_NEAREST = 0x2700;
-	public static final int GL_LINEAR_MIPMAP_NEAREST = 0x2701;
-	public static final int GL_NEAREST_MIPMAP_LINEAR = 0x2702;
-	public static final int GL_LINEAR_MIPMAP_LINEAR = 0x2703;
-
-	/* TextureParameterName */
-	public static final int GL_TEXTURE_MAG_FILTER = 0x2800;
-	public static final int GL_TEXTURE_MIN_FILTER = 0x2801;
-	public static final int GL_TEXTURE_WRAP_S = 0x2802;
-	public static final int GL_TEXTURE_WRAP_T = 0x2803;
-	/*      GL_TEXTURE_BORDER_COLOR */
-	/*      GL_TEXTURE_PRIORITY */
-
-	/* TextureTarget */
-	/*      GL_TEXTURE_1D */
-	/*      GL_TEXTURE_2D */
-	/*      GL_PROXY_TEXTURE_1D */
-	/*      GL_PROXY_TEXTURE_2D */
-
-	/* TextureWrapMode */
-	public static final int GL_CLAMP = 0x2900;
-	public static final int GL_REPEAT = 0x2901;
-
-	/* VertexPointerType */
-	/*      GL_SHORT */
-	/*      GL_INT */
-	/*      GL_FLOAT */
-	/*      GL_DOUBLE */
-
-	/* ClientAttribMask */
-	public static final int GL_CLIENT_PIXEL_STORE_BIT = 0x00000001;
-	public static final int GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002;
-	public static final int GL_CLIENT_ALL_ATTRIB_BITS = 0xffffffff;
-
-	/* polygon_offset */
-	public static final int GL_POLYGON_OFFSET_FACTOR = 0x8038;
-	public static final int GL_POLYGON_OFFSET_UNITS = 0x2A00;
-	public static final int GL_POLYGON_OFFSET_POINT = 0x2A01;
-	public static final int GL_POLYGON_OFFSET_LINE = 0x2A02;
-	public static final int GL_POLYGON_OFFSET_FILL = 0x8037;
-
-	/* texture */
-	public static final int GL_ALPHA4 = 0x803B;
-	public static final int GL_ALPHA8 = 0x803C;
-	public static final int GL_ALPHA12 = 0x803D;
-	public static final int GL_ALPHA16 = 0x803E;
-	public static final int GL_LUMINANCE4 = 0x803F;
-	public static final int GL_LUMINANCE8 = 0x8040;
-	public static final int GL_LUMINANCE12 = 0x8041;
-	public static final int GL_LUMINANCE16 = 0x8042;
-	public static final int GL_LUMINANCE4_ALPHA4 = 0x8043;
-	public static final int GL_LUMINANCE6_ALPHA2 = 0x8044;
-	public static final int GL_LUMINANCE8_ALPHA8 = 0x8045;
-	public static final int GL_LUMINANCE12_ALPHA4 = 0x8046;
-	public static final int GL_LUMINANCE12_ALPHA12 = 0x8047;
-	public static final int GL_LUMINANCE16_ALPHA16 = 0x8048;
-	public static final int GL_INTENSITY = 0x8049;
-	public static final int GL_INTENSITY4 = 0x804A;
-	public static final int GL_INTENSITY8 = 0x804B;
-	public static final int GL_INTENSITY12 = 0x804C;
-	public static final int GL_INTENSITY16 = 0x804D;
-	public static final int GL_R3_G3_B2 = 0x2A10;
-	public static final int GL_RGB4 = 0x804F;
-	public static final int GL_RGB5 = 0x8050;
-	public static final int GL_RGB8 = 0x8051;
-	public static final int GL_RGB10 = 0x8052;
-	public static final int GL_RGB12 = 0x8053;
-	public static final int GL_RGB16 = 0x8054;
-	public static final int GL_RGBA2 = 0x8055;
-	public static final int GL_RGBA4 = 0x8056;
-	public static final int GL_RGB5_A1 = 0x8057;
-	public static final int GL_RGBA8 = 0x8058;
-	public static final int GL_RGB10_A2 = 0x8059;
-	public static final int GL_RGBA12 = 0x805A;
-	public static final int GL_RGBA16 = 0x805B;
-	public static final int GL_TEXTURE_RED_SIZE = 0x805C;
-	public static final int GL_TEXTURE_GREEN_SIZE = 0x805D;
-	public static final int GL_TEXTURE_BLUE_SIZE = 0x805E;
-	public static final int GL_TEXTURE_ALPHA_SIZE = 0x805F;
-	public static final int GL_TEXTURE_LUMINANCE_SIZE = 0x8060;
-	public static final int GL_TEXTURE_INTENSITY_SIZE = 0x8061;
-	public static final int GL_PROXY_TEXTURE_1D = 0x8063;
-	public static final int GL_PROXY_TEXTURE_2D = 0x8064;
-
-	/* texture_object */
-	public static final int GL_TEXTURE_PRIORITY = 0x8066;
-	public static final int GL_TEXTURE_RESIDENT = 0x8067;
-	public static final int GL_TEXTURE_BINDING_1D = 0x8068;
-	public static final int GL_TEXTURE_BINDING_2D = 0x8069;
-
-	/* vertex_array */
-	public static final int GL_VERTEX_ARRAY = 0x8074;
-	public static final int GL_NORMAL_ARRAY = 0x8075;
-	public static final int GL_COLOR_ARRAY = 0x8076;
-	public static final int GL_INDEX_ARRAY = 0x8077;
-	public static final int GL_TEXTURE_COORD_ARRAY = 0x8078;
-	public static final int GL_EDGE_FLAG_ARRAY = 0x8079;
-	public static final int GL_VERTEX_ARRAY_SIZE = 0x807A;
-	public static final int GL_VERTEX_ARRAY_TYPE = 0x807B;
-	public static final int GL_VERTEX_ARRAY_STRIDE = 0x807C;
-	public static final int GL_NORMAL_ARRAY_TYPE = 0x807E;
-	public static final int GL_NORMAL_ARRAY_STRIDE = 0x807F;
-	public static final int GL_COLOR_ARRAY_SIZE = 0x8081;
-	public static final int GL_COLOR_ARRAY_TYPE = 0x8082;
-	public static final int GL_COLOR_ARRAY_STRIDE = 0x8083;
-	public static final int GL_INDEX_ARRAY_TYPE = 0x8085;
-	public static final int GL_INDEX_ARRAY_STRIDE = 0x8086;
-	public static final int GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088;
-	public static final int GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089;
-	public static final int GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A;
-	public static final int GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C;
-	public static final int GL_VERTEX_ARRAY_POINTER = 0x808E;
-	public static final int GL_NORMAL_ARRAY_POINTER = 0x808F;
-	public static final int GL_COLOR_ARRAY_POINTER = 0x8090;
-	public static final int GL_INDEX_ARRAY_POINTER = 0x8091;
-	public static final int GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092;
-	public static final int GL_EDGE_FLAG_ARRAY_POINTER = 0x8093;
-	public static final int GL_V2F = 0x2A20;
-	public static final int GL_V3F = 0x2A21;
-	public static final int GL_C4UB_V2F = 0x2A22;
-	public static final int GL_C4UB_V3F = 0x2A23;
-	public static final int GL_C3F_V3F = 0x2A24;
-	public static final int GL_N3F_V3F = 0x2A25;
-	public static final int GL_C4F_N3F_V3F = 0x2A26;
-	public static final int GL_T2F_V3F = 0x2A27;
-	public static final int GL_T4F_V4F = 0x2A28;
-	public static final int GL_T2F_C4UB_V3F = 0x2A29;
-	public static final int GL_T2F_C3F_V3F = 0x2A2A;
-	public static final int GL_T2F_N3F_V3F = 0x2A2B;
-	public static final int GL_T2F_C4F_N3F_V3F = 0x2A2C;
-	public static final int GL_T4F_C4F_N3F_V4F = 0x2A2D;
-
-	/* Extensions */
-	public static final int GL_EXT_vertex_array = 1;
-	public static final int GL_EXT_bgra = 1;
-	public static final int GL_EXT_paletted_texture = 1;
-	public static final int GL_WIN_swap_hint = 1;
-	public static final int GL_WIN_draw_range_elements = 1;
-	// public static final int GL_WIN_phong_shading              = 1;
-	// public static final int GL_WIN_specular_fog               = 1;
-
-	/* EXT_vertex_array */
-	public static final int GL_VERTEX_ARRAY_EXT = 0x8074;
-	public static final int GL_NORMAL_ARRAY_EXT = 0x8075;
-	public static final int GL_COLOR_ARRAY_EXT = 0x8076;
-	public static final int GL_INDEX_ARRAY_EXT = 0x8077;
-	public static final int GL_TEXTURE_COORD_ARRAY_EXT = 0x8078;
-	public static final int GL_EDGE_FLAG_ARRAY_EXT = 0x8079;
-	public static final int GL_VERTEX_ARRAY_SIZE_EXT = 0x807A;
-	public static final int GL_VERTEX_ARRAY_TYPE_EXT = 0x807B;
-	public static final int GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C;
-	public static final int GL_VERTEX_ARRAY_COUNT_EXT = 0x807D;
-	public static final int GL_NORMAL_ARRAY_TYPE_EXT = 0x807E;
-	public static final int GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F;
-	public static final int GL_NORMAL_ARRAY_COUNT_EXT = 0x8080;
-	public static final int GL_COLOR_ARRAY_SIZE_EXT = 0x8081;
-	public static final int GL_COLOR_ARRAY_TYPE_EXT = 0x8082;
-	public static final int GL_COLOR_ARRAY_STRIDE_EXT = 0x8083;
-	public static final int GL_COLOR_ARRAY_COUNT_EXT = 0x8084;
-	public static final int GL_INDEX_ARRAY_TYPE_EXT = 0x8085;
-	public static final int GL_INDEX_ARRAY_STRIDE_EXT = 0x8086;
-	public static final int GL_INDEX_ARRAY_COUNT_EXT = 0x8087;
-	public static final int GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088;
-	public static final int GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089;
-	public static final int GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A;
-	public static final int GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B;
-	public static final int GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C;
-	public static final int GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D;
-	public static final int GL_VERTEX_ARRAY_POINTER_EXT = 0x808E;
-	public static final int GL_NORMAL_ARRAY_POINTER_EXT = 0x808F;
-	public static final int GL_COLOR_ARRAY_POINTER_EXT = 0x8090;
-	public static final int GL_INDEX_ARRAY_POINTER_EXT = 0x8091;
-	public static final int GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092;
-	public static final int GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093;
-	public static final int GL_DOUBLE_EXT = GL_DOUBLE;
-
-	/* EXT_bgra */
-	public static final int GL_BGR_EXT = 0x80E0;
-	public static final int GL_BGRA_EXT = 0x80E1;
-
-	/* EXT_paletted_texture */
-
-	/* These must match the GL_COLOR_TABLE_*_SGI enumerants */
-	public static final int GL_COLOR_TABLE_FORMAT_EXT = 0x80D8;
-	public static final int GL_COLOR_TABLE_WIDTH_EXT = 0x80D9;
-	public static final int GL_COLOR_TABLE_RED_SIZE_EXT = 0x80DA;
-	public static final int GL_COLOR_TABLE_GREEN_SIZE_EXT = 0x80DB;
-	public static final int GL_COLOR_TABLE_BLUE_SIZE_EXT = 0x80DC;
-	public static final int GL_COLOR_TABLE_ALPHA_SIZE_EXT = 0x80DD;
-	public static final int GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = 0x80DE;
-	public static final int GL_COLOR_TABLE_INTENSITY_SIZE_EXT = 0x80DF;
-
-	public static final int GL_COLOR_INDEX1_EXT = 0x80E2;
-	public static final int GL_COLOR_INDEX2_EXT = 0x80E3;
-	public static final int GL_COLOR_INDEX4_EXT = 0x80E4;
-	public static final int GL_COLOR_INDEX8_EXT = 0x80E5;
-	public static final int GL_COLOR_INDEX12_EXT = 0x80E6;
-	public static final int GL_COLOR_INDEX16_EXT = 0x80E7;
-
-	/* WIN_draw_range_elements */
-	public static final int GL_MAX_ELEMENTS_VERTICES_WIN = 0x80E8;
-	public static final int GL_MAX_ELEMENTS_INDICES_WIN = 0x80E9;
-
-	/* WIN_phong_shading */
-	public static final int GL_PHONG_WIN = 0x80EA;
-	public static final int GL_PHONG_HINT_WIN = 0x80EB;
-
-	/* WIN_specular_fog */
-	public static final int GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC;
-
-	/* For compatibility with OpenGL v1.0 */
-	public static final int GL_LOGIC_OP = GL_INDEX_LOGIC_OP;
-	public static final int GL_TEXTURE_COMPONENTS = GL_TEXTURE_INTERNAL_FORMAT;
-
-	public static final native void glAccum (int op, float value);
-	public static final native void glAlphaFunc (int func, float ref);
-	public static final native boolean glAreTexturesResident (int n, int[] textures, boolean[] residences);
-	public static final native void glArrayElement (int index);
-	public static final native int glBegin (int mode);
-	public static final native int glEnd ();
-	public static final native void glBindTexture (int target, int texture);
-	public static final native void glBitmap (int width, int height, float xorig, float yorig, float xmove, float ymove, byte[] bitmap);
-	public static final native void glBlendFunc (int sfactor, int dfactor);
-	public static final native void glCallList (int list);
-	public static final native void glCallLists (int n, int type, byte[] lists);
-	public static final native void glCallLists (int n, int type, char[] lists);
-	public static final native void glCallLists (int n, int type, int[] lists);
-	public static final native void glClear (int mask);
-	public static final native void glClearAccum (float red, float green, float blue, float alpha);
-	public static final native void glClearColor (float red, float green, float blue, float alpha);
-	public static final native void glClearDepth (double depth);
-	public static final native void glClearIndex (float c);
-	public static final native void glClearStencil (int s);
-	public static final native void glClipPlane (int plane, double[] equation);
-	public static final native void glColor3b (byte red, byte green, byte blue);
-	public static final native void glColor3d (double red, double green, double blue);
-	public static final native void glColor3f (float red, float green, float blue);
-	public static final native void glColor3i (int red, int green, int blue);
-	public static final native void glColor3s (short red, short green, short blue);
-	public static final native void glColor3ub (byte red, byte green, byte blue);
-	public static final native void glColor3ui (int red, int green, int blue);
-	public static final native void glColor3us (short red, short green, short blue);
-	public static final native void glColor4b (byte red, byte green, byte blue, byte alpha);
-	public static final native void glColor4d (double red, double green, double blue, double alpha);
-	public static final native void glColor4f (float red, float green, float blue, float alpha);
-	public static final native void glColor4i (int red, int green, int blue, int alpha);
-	public static final native void glColor4s (short red, short green, short blue, short alpha);
-	public static final native void glColor4ub (byte red, byte green, byte blue, byte alpha);
-	public static final native void glColor4ui (int red, int green, int blue, int alpha);
-	public static final native void glColor4us (short red, short green, short blue, short alpha);
-	public static final native void glColor3bv (byte[] v);
-	public static final native void glColor3dv (double[] v);
-	public static final native void glColor3fv (float[] v);
-	public static final native void glColor3iv (int[] v);
-	public static final native void glColor3sv (short[] v);
-	public static final native void glColor3ubv (byte[] v);
-	public static final native void glColor3uiv (int[] v);
-	public static final native void glColor3usv (short[] v);
-	public static final native void glColor4bv (byte[] v);
-	public static final native void glColor4dv (double[] v);
-	public static final native void glColor4fv (float[] v);
-	public static final native void glColor4iv (int[] v);
-	public static final native void glColor4ubv (byte[] v);
-	public static final native void glColor4uiv (int[] v);
-	public static final native void glColor4usv (short[] v);
-	public static final native void glColor4ubv (short[] v);
-	public static final native void glColorMask (boolean red, boolean green, boolean blue, boolean alpha);
-	public static final native void glColorMaterial (int face, int mode);
-	public static final native void glColorPointer (int size, int type, int stride, int[] pointer);
-	//public static final native void glColorTableEXT (int target, int internalFormat, int width, int format, int type, int[] data);
-	//public static final native void glColorSubTableEXT (int target, int start, int count, int format, int type, int[] data);
-	public static final native void glCopyPixels (int x, int y, int width, int height, int type);
-	public static final native void glCopyTexImage1D (int target, int level, int internalFormat, int x, int y, int width, int border);
-	public static final native void glCopyTexImage2D (int target, int level, int internalFormat, int x, int y, int width, int height, int border);
-	public static final native void glCopyTexSubImage1D (int target, int level, int xoffset, int x, int y, int width); 
-	public static final native void glCopyTexSubImage2D (int target, int level, int xoffset, int yoffset, int x, int y, int width, int height);
-	public static final native void glCullFace (int mode);
-	public static final native void glDeleteLists (int list, int range);
-	public static final native void glDeleteTextures (int n, int[] textures);
-	public static final native void glDepthFunc (int func);
-	public static final native void glDepthMask (boolean flag);
-	public static final native void glDepthRange (double znear, double zfar);
-	public static final native void glDrawArrays (int mode, int first, int count);
-	public static final native void glDrawBuffer (int mode);
-	public static final native void glDrawElements (int mode, int count, int type, int[] indices); /* MULTIPLES TYPES */
-	public static final native void glDrawPixels (int width, int height, int format, int type, int[] pixels); /* MULTIPLES TYPES */
-	public static final native void glEdgeFlag (boolean flag);
-	public static final native void glEdgeFlagv (boolean[] flag);
-	public static final native void glEdgeFlagPointer (int stride, boolean[] pointer);
-	public static final native void glEnable (int cap);
-	public static final native void glDisable (int cap);
-	public static final native void glEnableClientState (int array);
-	public static final native void glDisableClientState (int array);
-	public static final native void glEvalCoord1d (double u);
-	public static final native void glEvalCoord1f (float u);
-	public static final native void glEvalCoord2d (double u, double v);
-	public static final native void glEvalCoord2f (float u, float v);
-	public static final native void glEvalCoord1dv (double[] u);
-	public static final native void glEvalCoord1fv (float[] u);
-	public static final native void glEvalCoord2dv (double[] u);
-	public static final native void glEvalCoord2fv (float[] u);
-	public static final native void glEvalMesh1 (int mode, int i1, int i2);
-	public static final native void glEvalMesh2 (int mode, int i1, int i2, int j1, int j2);
-	public static final native void glEvalPoint1 (int i);
-	public static final native void glEvalPoint2 (int i, int j);
-	public static final native void glFeedbackBuffer (int size, int type, float[] buffer);
-	public static final native void glFinish ();
-	public static final native void glFlush ();
-	public static final native void glFogf (int pname, float param);
-	public static final native void glFogi (int pname, int param);
-	public static final native void glFogfv (int pname, float[] params);
-	public static final native void glFogiv (int pname, int[] params);
-	public static final native void glFrontFace (int mode);
-	public static final native void glFrustum (double left, double right, double bottom, double top, double znear, double zfar);
-	public static final native int glGenLists (int range);
-	public static final native void glGenTextures (int n, int[] textures);
-	public static final native void glGetBooleanv (int pname, boolean[] params);
-	public static final native void glGetDoublev (int pname, double[] params);
-	public static final native void glGetFloatv (int pname, float[] params);
-	public static final native void glGetIntegerv (int pname, int[] params);
-	public static final native void glGetClipPlane (int plane, double[] equation);
-	//public static final native void glGetColorTableEXT (int target, int format, int type, int[] data);
-	//public static final native void glGetColorTableParameterfvEXT (int target, int pname, float[] params);
-	//public static final native void glGetColorTableParameterivEXT (int target, int pname, int[] params);
-	public static final native int glGetError ();
-	public static final native void glGetLightfv (int light, int pname, float[] params);
-	public static final native void glGetLightiv (int light, int pname, int[] params);
-	public static final native void glGetMapdv (int tagert, int query, double[] v);
-	public static final native void glGetMapfv (int tagert, int query, float[] v);
-	public static final native void glGetMapiv (int tagert, int query, int[] v);
-	public static final native void glGetMaterialfv (int face, int pname, float[] params);
-	public static final native void glGetMaterialiv (int face, int pname, int[] params);
-	public static final native void glGetPixelMapfv (int map, float[] values);
-	public static final native void glGetPixelMapuiv (int map, int[] values);
-	public static final native void glGetPixelMapusv (int map, short[] values);
-	public static final native void glGetPointerv (int pname, int[] params);
-	/* TEST */
-	public static final native void glGetPolygonStipple (byte[] mask);
-	public static final native int glGetString (int name);
-	/* SHOULD RETURN A STRING */
-	public static final native void glGetTexEnvfv (int target, int pname, float[] params);
-	public static final native void glGetTexEnviv (int target, int pname, int[] params);
-	public static final native void glGetTexGendv (int coord, int pname, double[] params);
-	public static final native void glGetTexGenfv (int coord, int pname, float[] params);
-	public static final native void glGetTexGeniv (int coord, int pname, int[] params);
-	public static final native void glGetTexImage (int target, int level, int format, int type, int[] pixels); /* MULTIPLES TYPES ARRAY */
-	public static final native void glGetTexLevelParameterfv (int target, int level, int pname, float[] params);
-	public static final native void glGetTexLevelParameteriv (int target, int level, int pname, int[] params);
-	public static final native void glGetTexParameterfv (int target, int pname, float[] params);
-	public static final native void glGetTexParameteriv (int target, int pname, int[] params);
-	public static final native void glHint (int target, int mode);
-	public static final native void glIndexd (double c);
-	public static final native void glIndexf (float c);
-	public static final native void glIndexi (int c);
-	public static final native void glIndexs (short c);
-	public static final native void glIndexdv (double[] c);
-	public static final native void glIndexfv (float[] c);
-	public static final native void glIndexiv (int[] c);
-	public static final native void glIndexsv (short[] c);
-	public static final native void glIndexMask (int mask);
-	public static final native void glIndexPointer (int type, int stride, int[] pointer);
-	/* MULTIPLES TYPES */
-	public static final native void glInitNames ();
-	public static final native void glInterleavedArrays (int format, int stride, int[] pointer);
-	/* CHECK */
-	public static final native boolean glIsEnabled (int cap);
-	public static final native boolean glIsList (int list);
-	public static final native boolean glIsTexture (int texture);
-	public static final native void glLightf (int light, int pname, float param);
-	public static final native void glLighti (int light, int pname, int param);
-	public static final native void glLightfv (int light, int pname, float[] param);
-	//public static final native void glLightfv (int light, int pname, int param);
-	public static final native void glLightiv (int light, int pname, int[] param);
-	public static final native void glLightModelf (int pname, float param);
-	public static final native void glLightModeli (int pname, int param);
-	public static final native void glLightModelfv (int pname, float[] param);
-	public static final native void glLightModeliv (int pname, int[] param);
-	public static final native void glLineStipple (int factor, short pattern);
-	public static final native void glLineWidth (float width);
-	public static final native void glListBase (int base);
-	public static final native void glLoadIdentity ();
-	public static final native void glLoadMatrixd (double[] m);
-	public static final native void glLoadMatrixf (float[] m);
-	public static final native void glLoadName (int name);
-	public static final native void glLogicOp (int opcode);
-	public static final native void glMap1d (int target, double u1, double u2, int stride, int order, double[] points);
-	public static final native void glMap1f (int target, float u1, float u2, int stride, int order, float[] points);
-	public static final native void glMap2d (int target, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double[] points);
-	public static final native void glMap2f (int target, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float[] points);
-	public static final native void glMapGrid1d (int un, double u1, double u2);
-	public static final native void glMapGrid1f (int un, float u1, float u2);
-	public static final native void glMapGrid2d (int un, double u1, double u2, int vm, double v1, double v2);
-	public static final native void glMapGrid2f (int un, float u1, float u2, int vm, float v1, float v2);
-	public static final native void glMaterialf (int face, int pname, float param);
-	public static final native void glMateriali (int face, int pname, int param);
-	public static final native void glMaterialfv (int face, int pname, float[] param);
-	public static final native void glMaterialiv (int face, int pname, int[] param);
-	public static final native void glMatrixMode (int mode);
-	public static final native void glMultMatrixd (double[] m);
-	public static final native void glMultMatrixf (float[] m);
-	public static final native void glNewList (int list, int mode);
-	public static final native void glEndList ();
-	public static final native void glNormal3b (byte nx, byte ny, byte nz);
-	public static final native void glNormal3d (double nx, double ny, double nz);
-	public static final native void glNormal3f (float nx, float ny, float nz);
-	public static final native void glNormal3i (int nx, int ny, int nz);
-	public static final native void glNormal3s (short nx, short ny, short nz);
-	public static final native void glNormal3bv (byte[] v);
-	public static final native void glNormal3dv (double[] v);
-	public static final native void glNormal3fv (float[] v);
-	public static final native void glNormal3iv (int[] v);
-	public static final native void glNormal3sv (short[] v);
-	public static final native void glNormalPointer (int type, int stride, int[] pointer); /* MULTIPLES TYPES ARRAY */
-	public static final native void glOrtho (double left, double right, double bottom, double top, double znear, double zfar);
-	public static final native void glPassThrough (float token);
-	public static final native void glPixelMapfv (int map, int mapsize, float[] values);
-	public static final native void glPixelMapuiv (int map, int mapsize, int[] values);
-	public static final native void glPixelMapusv (int map, int mapsize, short[] values);
-	public static final native void glPixelStoref (int pname, float param);
-	public static final native void glPixelStorei (int pname, int param);
-	public static final native void glPixelTransferf (int pname, float param);
-	public static final native void glPixelTransferi (int pname, int param);
-	public static final native void glPixelZoom (float xfactor, float yfactor);
-	public static final native void glPointSize (float size);
-	public static final native void glPolygonMode (int face, int mode);
-	public static final native void glPolygonOffset (float factor, float units);
-	public static final native void glPolygonStipple (byte[] mask);
-	public static final native void glPrioritizeTextures (int n, int[] textures, float[] priorities);
-	public static final native void glPushAttrib (int mask);
-	public static final native void glPopAttrib ();
-	public static final native void glPushClientAttrib (int mask);
-	public static final native void glPopClientAttrib ();
-	public static final native void glPushMatrix ();
-	public static final native void glPopMatrix ();
-	public static final native void glPushName (int name);
-	public static final native void glPopName ();
-	public static final native void glRasterPos2d (double x, double y);
-	public static final native void glRasterPos2f (float x, float y);
-	public static final native void glRasterPos2i (int x, int y);
-	public static final native void glRasterPos2s (short x, short y);
-	public static final native void glRasterPos3d (double x, double y, double z);
-	public static final native void glRasterPos3f (float x, float y, float z);
-	public static final native void glRasterPos3i (int x, int y, int z);
-	public static final native void glRasterPos3s (short x, short y, short z);
-	public static final native void glRasterPos4d (double x, double y, double z, double w);
-	public static final native void glRasterPos4f (float x, float y, float z, float w);
-	public static final native void glRasterPos4i (int x, int y, int z, int w);
-	public static final native void glRasterPos4s (short x, short y, short z, short w);
-	public static final native void glRasterPos2dv (double[] v);
-	public static final native void glRasterPos2fv (float[] v);
-	public static final native void glRasterPos2iv (int[] v);
-	public static final native void glRasterPos2sv (short[] v);
-	public static final native void glRasterPos3dv (double[] v);
-	public static final native void glRasterPos3fv (float[] v);
-	public static final native void glRasterPos3iv (int[] v);
-	public static final native void glRasterPos3sv (short[] v);
-	public static final native void glRasterPos4dv (double[] v);
-	public static final native void glRasterPos4fv (float[] v);
-	public static final native void glRasterPos4iv (int[] v);
-	public static final native void glRasterPos4sv (short[] v);
-	public static final native void glReadBuffer (int mode);
-	public static final native void glReadPixels (int x, int y, int width, int height, int format, int type, int[] pixels); /* MULTIPLES TYPES ARRAY */
-	public static final native void glRectd (double x1, double y1, double x2, double y2);
-	public static final native void glRectf (float x1, float y1, float x2, float y2);
-	public static final native void glRecti (int x1, int y1, int x2, int y2);
-	public static final native void glRects (short x1, short y1, short x2, short y2);
-	public static final native void glRectdv (double[] v1, double[] v2);
-	public static final native void glRectfv (float[] v1, float[] v2);
-	public static final native void glRectiv (int[] v1, int[] v2);
-	public static final native void glRectsv (short[] v, short[] v2);
-	public static final native int glRenderMode (int mode);
-	public static final native void glRotated (double angle, double x, double y, double z);
-	public static final native void glRotatef (float angle, float x, float y, float z);
-	public static final native void glScaled (double x, double y, double z);
-	public static final native void glScalef (float x, float y, float z);
-	public static final native void glScissor (int x, int y, int width, int height);
-	//public static final native void glSelectBuffer (int size, int[] buffer);
-	public static final native void glSelectBuffer (int size, int buffer);
-	public static final native void glShadeModel (int mode);
-	public static final native void glStencilFunc (int func, int ref, int mask);
-	public static final native void glStencilMask (int mask);
-	public static final native void glStencilOp (int fail, int zfail, int zpass);
-	public static final native void glTexCoord1d (double s);
-	public static final native void glTexCoord1f (float s);
-	public static final native void glTexCoord1i (int s);
-	public static final native void glTexCoord1s (short s);
-	public static final native void glTexCoord2d (double s, double t);
-	public static final native void glTexCoord2f (float s, float t);
-	public static final native void glTexCoord2i (int s, int t);
-	public static final native void glTexCoord2s (short s, short t);
-	public static final native void glTexCoord3d (double s, double t, double r);
-	public static final native void glTexCoord3f (float s, float t, float r);
-	public static final native void glTexCoord3i (int s, int t, int r);
-	public static final native void glTexCoord3s (short s, short t, short r);
-	public static final native void glTexCoord4d (double s, double t, double r, double q);
-	public static final native void glTexCoord4f (float s, float t, float r, float q);
-	public static final native void glTexCoord4i (int s, int t, int r, int q);
-	public static final native void glTexCoord4s (short s, short t, short r, short q);
-	public static final native void glTexCoord1dv (double[] v);
-	public static final native void glTexCoord1fv (float[] v);
-	public static final native void glTexCoord1iv (int[] v);
-	public static final native void glTexCoord1sv (short[] v);
-	public static final native void glTexCoord2dv (double[] v);
-	public static final native void glTexCoord2fv (float[] v);
-	public static final native void glTexCoord2iv (int[] v);
-	public static final native void glTexCoord2sv (short[] v);
-	public static final native void glTexCoord3dv (double[] v);
-	public static final native void glTexCoord3fv (float[] v);
-	public static final native void glTexCoord3iv (int[] v);
-	public static final native void glTexCoord3sv (short[] v);
-	public static final native void glTexCoord4dv (double[] v);
-	public static final native void glTexCoord4fv (float[] v);
-	public static final native void glTexCoord4iv (int[] v);
-	public static final native void glTexCoord4sv (short[] v);
-	public static final native void glTexCoordPointer (int size, int type, int stride, int[] pointer); /*MULTIPLES ARRAYS - CHECK MSDK, COUNT PARAM MISSING */
-	public static final native void glTexEnvf (int target, int pname, float param);
-	public static final native void glTexEnvi (int target, int pname, int param);
-	public static final native void glTexEnvfv (int target, int pname, float[] params);
-	public static final native void glTexEnviv (int target, int pname, int[] params);
-	public static final native void glTexGend (int coord, int pname, double param);
-	public static final native void glTexGenf (int coord, int pname, float param);
-	public static final native void glTexGeni (int coord, int pname, int param);
-	public static final native void glTexGendv (int coord, int pname, double[] params);
-	public static final native void glTexGenfv (int coord, int pname, float[] params);
-	public static final native void glTexGeniv (int coord, int pname, int[] params);
-	public static final native void glTexImage1D (int target, int level, int internalFormat, int width, int border, int format, int type, int[] pixels); /* MULTIPLES ARRAYS */
-	public static final native void glTexImage2D (int target, int level, int internalFormat, int width, int height, int border, int format, int type, byte[] pixels); /* MULTIPLES ARRAYS */
-	public static final native void glTexParameterf (int target, int pname, float param);
-	public static final native void glTexParameteri (int target, int pname, int param);
-	public static final native void glTexParameterfv (int target, int pname, float[] params);
-	public static final native void glTexParameteriv (int target, int pname, int[] params);
-	public static final native void glTexSubImage1D (int target, int level, int xoffset, int width, int format, int type, int[] pixels); /* MULTIPLES ARRAYS */
-	public static final native void glTexSubImage2D (int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, int[] pixels); /* MULTIPLES ARRAYS */
-	public static final native void glTranslated (double x, double y, double z);
-	public static final native void glTranslatef (float x, float y, float z);
-	public static final native void glVertex2d (double x, double y);
-	public static final native void glVertex2f (float x, float y);
-	public static final native void glVertex2i (int x, int y);
-	public static final native void glVertex2s (short x, short y);
-	public static final native void glVertex3d (double x, double y, double z);
-	public static final native void glVertex3f (float x, float y, float z);
-	public static final native void glVertex3i (int x, int y, int z);
-	public static final native void glVertex3s (short x, short y, short z);
-	public static final native void glVertex4d (double x, double y, double z, double w);
-	public static final native void glVertex4f (float x, float y, float z, float w);
-	public static final native void glVertex4i (int x, int y, int z, int w);
-	public static final native void glVertex4s (short x, short y, short z, short w);
-	public static final native void glVertex2dv (double[] v);
-	public static final native void glVertex2fv (float[] v);
-	public static final native void glVertex2iv (int[] v);
-	public static final native void glVertex2sv (short[] v);
-	public static final native int glVertex3dv (double[] v);
-	public static final native int glVertex3dv (int v);
-	public static final native void glVertex3fv (float[] v);
-	public static final native void glVertex3iv (int[] v);
-	public static final native void glVertex3sv (short[] v);
-	public static final native int glVertex4dv (double[] v);
-	public static final native void glVertex4fv (float[] v);
-	public static final native void glVertex4iv (int[] v);
-	public static final native void glVertex4sv (short[] v);
-	public static final native void glVertexPointer (int size, int type, int stride, int[] pointer); /* MULTIPLES ARRAYS */
-	public static final native void glViewport (int x, int y, int width, int height);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GLU.java b/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GLU.java
deleted file mode 100644
index 2f83700..0000000
--- a/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GLU.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl;
-
-
-public class GLU {
-
-	/* Version */
-	public static final int GLU_VERSION_1_1 = 1;
-	public static final int GLU_VERSION_1_2 = 1;
-	
-	/* Errors: (return value 0 = no error) */
-	public static final int GLU_INVALID_ENUM = 100900;
-	public static final int GLU_INVALID_VALUE = 100901;
-	public static final int GLU_OUT_OF_MEMORY = 100902;
-	public static final int GLU_INCOMPATIBLE_GL_VERSION = 100903;
-	
-	/* StringName */
-	public static final int GLU_VERSION = 100800;
-	public static final int GLU_EXTENSIONS = 100801;
-	
-	
-	/****           Quadric constants               ****/
-	
-	/* QuadricNormal */
-	public static final int GLU_SMOOTH = 100000;
-	public static final int GLU_FLAT = 100001;
-	public static final int GLU_NONE = 100002;
-	
-	/* QuadricDrawStyle */
-	public static final int GLU_POINT = 100010;
-	public static final int GLU_LINE = 100011;
-	public static final int GLU_FILL = 100012;
-	public static final int GLU_SILHOUETTE = 100013;
-	
-	/* QuadricOrientation */
-	public static final int GLU_OUTSIDE = 100020;
-	public static final int GLU_INSIDE = 100021;
-	
-	/* Callback types: */
-	/*      GLU_ERROR               100103 */
-	
-	
-	/****           Tesselation constants           ****/
-	
-	public static final double GLU_TESS_MAX_COORD = 1.0e150;
-	
-	/* TessProperty */
-	public static final int GLU_TESS_WINDING_RULE = 100140;
-	public static final int GLU_TESS_BOUNDARY_ONLY = 100141;
-	public static final int GLU_TESS_TOLERANCE = 100142;
-	
-	/* TessWinding */
-	public static final int GLU_TESS_WINDING_ODD = 100130;
-	public static final int GLU_TESS_WINDING_NONZERO = 100131;
-	public static final int GLU_TESS_WINDING_POSITIVE = 100132;
-	public static final int GLU_TESS_WINDING_NEGATIVE = 100133;
-	public static final int GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
-	
-	/* TessCallback */
-	public static final int GLU_TESS_BEGIN = 100100;  /* void (CALLBACK*)(GLenum    type)  */
-	public static final int GLU_TESS_VERTEX = 100101;  /* void (CALLBACK*)(void      *data) */
-	public static final int GLU_TESS_END = 100102;  /* void (CALLBACK*)(void)            */
-	public static final int GLU_TESS_ERROR = 100103;  /* void (CALLBACK*)(GLenum    errno) */
-	public static final int GLU_TESS_EDGE_FLAG = 100104;  /* void (CALLBACK*)(GLboolean boundaryEdge)  */
-	public static final int GLU_TESS_COMBINE = 100105;  /* void (CALLBACK*)(GLdouble  coords[3],
-	                                                            void      *data[4],
-	                                                            GLfloat   weight[4],
-	                                                            void      **dataOut)     */
-	public static final int GLU_TESS_BEGIN_DATA = 100106;  /* void (CALLBACK*)(GLenum    type,  
-	                                                            void      *polygon_data) */
-	public static final int GLU_TESS_VERTEX_DATA = 100107;  /* void (CALLBACK*)(void      *data, 
-	                                                            void      *polygon_data) */
-	public static final int GLU_TESS_END_DATA = 100108;  /* void (CALLBACK*)(void      *polygon_data) */
-	public static final int GLU_TESS_ERROR_DATA = 100109;  /* void (CALLBACK*)(GLenum    errno, 
-	                                                            void      *polygon_data) */
-	public static final int GLU_TESS_EDGE_FLAG_DATA = 100110;  /* void (CALLBACK*)(GLboolean boundaryEdge,
-	                                                            void      *polygon_data) */
-	public static final int GLU_TESS_COMBINE_DATA = 100111;  /* void (CALLBACK*)(GLdouble  coords[3],
-	                                                            void      *data[4],
-	                                                            GLfloat   weight[4],
-	                                                            void      **dataOut,
-	                                                            void      *polygon_data) */
-	
-	/* TessError */
-	public static final int GLU_TESS_ERROR1 = 100151;
-	public static final int GLU_TESS_ERROR2 = 100152;
-	public static final int GLU_TESS_ERROR3 = 100153;
-	public static final int GLU_TESS_ERROR4 = 100154;
-	public static final int GLU_TESS_ERROR5 = 100155;
-	public static final int GLU_TESS_ERROR6 = 100156;
-	public static final int GLU_TESS_ERROR7 = 100157;
-	public static final int GLU_TESS_ERROR8 = 100158;
-	
-	public static final int GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
-	public static final int GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
-	public static final int GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3;
-	public static final int GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4;
-	public static final int GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5;
-	public static final int GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
-	
-	/****           NURBS constants                 ****/
-	
-	/* NurbsProperty */
-	public static final int GLU_AUTO_LOAD_MATRIX = 100200;
-	public static final int GLU_CULLING = 100201;
-	public static final int GLU_SAMPLING_TOLERANCE = 100203;
-	public static final int GLU_DISPLAY_MODE = 100204;
-	public static final int GLU_PARAMETRIC_TOLERANCE = 100202;
-	public static final int GLU_SAMPLING_METHOD = 100205;
-	public static final int GLU_U_STEP = 100206;
-	public static final int GLU_V_STEP = 100207;
-	
-	/* NurbsSampling */
-	public static final int GLU_PATH_LENGTH = 100215;
-	public static final int GLU_PARAMETRIC_ERROR = 100216;
-	public static final int GLU_DOMAIN_DISTANCE = 100217;
-	
-	
-	/* NurbsTrim */
-	public static final int GLU_MAP1_TRIM_2 = 100210;
-	public static final int GLU_MAP1_TRIM_3 = 100211;
-	
-	/* NurbsDisplay */
-	/*      GLU_FILL                100012 */
-	public static final int GLU_OUTLINE_POLYGON = 100240;
-	public static final int GLU_OUTLINE_PATCH = 100241;
-	
-	/* NurbsCallback */
-	/*      GLU_ERROR               100103 */
-	
-	/* NurbsErrors */
-	public static final int GLU_NURBS_ERROR1 = 100251;
-	public static final int GLU_NURBS_ERROR2 = 100252;
-	public static final int GLU_NURBS_ERROR3 = 100253;
-	public static final int GLU_NURBS_ERROR4 = 100254;
-	public static final int GLU_NURBS_ERROR5 = 100255;
-	public static final int GLU_NURBS_ERROR6 = 100256;
-	public static final int GLU_NURBS_ERROR7 = 100257;
-	public static final int GLU_NURBS_ERROR8 = 100258;
-	public static final int GLU_NURBS_ERROR9 = 100259;
-	public static final int GLU_NURBS_ERROR10 = 100260;
-	public static final int GLU_NURBS_ERROR11 = 100261;
-	public static final int GLU_NURBS_ERROR12 = 100262;
-	public static final int GLU_NURBS_ERROR13 = 100263;
-	public static final int GLU_NURBS_ERROR14 = 100264;
-	public static final int GLU_NURBS_ERROR15 = 100265;
-	public static final int GLU_NURBS_ERROR16 = 100266;
-	public static final int GLU_NURBS_ERROR17 = 100267;
-	public static final int GLU_NURBS_ERROR18 = 100268;
-	public static final int GLU_NURBS_ERROR19 = 100269;
-	public static final int GLU_NURBS_ERROR20 = 100270;
-	public static final int GLU_NURBS_ERROR21 = 100271;
-	public static final int GLU_NURBS_ERROR22 = 100272;
-	public static final int GLU_NURBS_ERROR23 = 100273;
-	public static final int GLU_NURBS_ERROR24 = 100274;
-	public static final int GLU_NURBS_ERROR25 = 100275;
-	public static final int GLU_NURBS_ERROR26 = 100276;
-	public static final int GLU_NURBS_ERROR27 = 100277;
-	public static final int GLU_NURBS_ERROR28 = 100278;
-	public static final int GLU_NURBS_ERROR29 = 100279;
-	public static final int GLU_NURBS_ERROR30 = 100280;
-	public static final int GLU_NURBS_ERROR31 = 100281;
-	public static final int GLU_NURBS_ERROR32 = 100282;
-	public static final int GLU_NURBS_ERROR33 = 100283;
-	public static final int GLU_NURBS_ERROR34 = 100284;
-	public static final int GLU_NURBS_ERROR35 = 100285;
-	public static final int GLU_NURBS_ERROR36 = 100286;
-	public static final int GLU_NURBS_ERROR37 = 100287;
-	
-	/* Contours types -- obsolete! */
-	public static final int GLU_CW = 100120;
-	public static final int GLU_CCW = 100121;
-	public static final int GLU_INTERIOR = 100122;
-	public static final int GLU_EXTERIOR = 100123;
-	public static final int GLU_UNKNOWN = 100124;
-	
-	/* Names without "TESS_" prefix */
-	public static final int GLU_BEGIN = GLU_TESS_BEGIN;
-	public static final int GLU_VERTEX = GLU_TESS_VERTEX;
-	public static final int GLU_END = GLU_TESS_END;
-	public static final int GLU_ERROR = GLU_TESS_ERROR;
-	public static final int GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
-	
-	
-	public static final native void gluBeginCurve (int nobj);
-	public static final native void gluEndCurve (int nobj);
-	public static final native void gluBeginPolygon (int tess);
-	public static final native void gluEndPolygon (int tess);
-	public static final native void gluBeginSurface (int nobj);
-	public static final native void gluEndSurface (int nobj);
-	public static final native void gluBeginTrim (int nobj);
-	public static final native void gluEndTrim (int nobj);
-	public static final native int gluBuild1DMipmaps (int target, int componenets, int width, int format, int type, int data); /* MULTIPLES TYPES ARRAY */
-	public static final native int gluBuild2DMipmaps (int target, int componenets, int width, int height, int format, int type, byte[] data); /* MULTIPLES TYPES ARRAY */
-	public static final native void gluCylinder (int qobj, double baseRadius, double topRadius, double height, int slices, int stacks);
-	public static final native void gluDeleteNurbsRenderer (int nobj);
-	public static final native void gluDeleteQuadric (int qobj);
-	public static final native void gluDeleteTess (int tess);
-	public static final native void gluDisk (int qobj, double innerRadius, double outerRadius, int slices, int loops);
-	public static final native int gluErrorString (int errCode);  /* SHOULD RETURN A STRING */
-	public static final native void gluGetNurbsProperty (int nobj, int property, float[] value);
-	public static final native int gluGetString (int name); /* SHOULD RETURN A STRING */
-	public static final native void gluGetTessProperty (int tess, int which, double[] value);
-	public static final native void gluLoadSamplingMatrices (int nobj, float[] modelMatrix, float[] projMatrix, int[] viewport);
-	public static final native void gluLookAt (double eyex, double eyey, double eyez, double centerx, double centery, double centerz, double upx, double upy, double upz);
-	public static final native int gluNewNurbsRenderer ();
-	public static final native int gluNewQuadric ();
-	public static final native int gluNewTess ();
-	public static final native void gluNextContour (int tess, int type);
-	public static final native void gluNurbsCallback (int nobj, int which, int fn);
-	public static final native void gluNurbsCurve (int nobj, int nknots, float[] knot, int stride, float[] ctlarray, int order, int type);
-	public static final native void gluNurbsProperty (int nobj, int property, float value);
-	public static final native void gluNurbsSurface (int nobj, int sknot_count, float[] sknot, int tknot_count, float[] tknot, int s_stride, int t_stride, float[] ctlarray, int sorder, int torder, int type);
-	public static final native void gluOrtho2D (double left, double right, double bottom, double top);
-	public static final native void gluPartialDisk (int qobj, double innerRadius, double outerRadius, int slices, int loops, double startAngle, double sweepAngle);
-	public static final native void gluPerspective (double fovy, double aspect, double zNear, double zFar);
-	public static final native void gluPickMatrix (double x, double y, double width, double height, int[] viewport);
-	public static final native int gluProject (double objx, double objy, double objz,double[] modelMatrix, double[] projMatrix, int[] viewport, double[] winx, double[] winy, double[] winz);
-	public static final native void gluPwlCurve (int nobj, int count, float[] array, int stride, int type);
-	public static final native void gluQuadricCallback (int qobj, int which, int fn);
-	public static final native void gluQuadricDrawStyle (int qobj, int drawStyle);
-	public static final native void gluQuadricNormals (int qobj, int normals);
-	public static final native void gluQuadricOrientation (int qobj, int orientation);
-	public static final native void gluQuadricTexture (int qobj, boolean textureCoords);
-	public static final native int gluScaleImage (int format, int widthin, int heightin, int typein, int datain, int widthout, int heightout, int typeout, int dataout); /*MULTIPLES TYPES ARRAYS*/
-	public static final native void gluSphere (int qobj, double radius, int slices, int stacks);
-	public static final native void gluTessBeginContour (int tess);
-	public static final native void gluTessEndContour (int tess);
-	public static final native void gluTessBeginPolygon (int tess, int polygon_data);
-	public static final native void gluTessEndPolygon (int tess);
-	public static final native void gluTessCallback (int tess, int which, int fn);
-	public static final native void gluTessNormal (int tess, double x, double y, double z);
-	public static final native void gluTessProperty (int tess, int property, double value); /* CHECK MSDN, VALUE'S TYPE IS DOUBLE */
-	public static final native void gluTessVertex (int tess, double[] coords, int data);
-	public static final native int gluUnProject (double winx, double winy, double winz, double[] modelMatrix, double[] projMatrix, int[] viewport, double[] objx, double[] objy, double[] objz);
-}
diff --git a/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GLYPHMETRICSFLOAT.java b/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GLYPHMETRICSFLOAT.java
deleted file mode 100644
index 4da0a94..0000000
--- a/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GLYPHMETRICSFLOAT.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl;
-
-
-public class GLYPHMETRICSFLOAT {
-    public float gmfBlackBoxX;
-    public float gmfBlackBoxY;
-    public float gmfptGlyphOrigin_x;
-    public float gmfptGlyphOrigin_y;
-    public float gmfCellIncX;
-    public float gmfCellIncY;
-	public static final int sizeof = 24;
-}
diff --git a/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/ImageDataUtil.java b/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/ImageDataUtil.java
deleted file mode 100644
index d900285..0000000
--- a/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/ImageDataUtil.java
+++ /dev/null
@@ -1,524 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl;
-
-
-public class ImageDataUtil {
-	/**
-	 * Alpha mode, values 0 - 255 specify global alpha level
-	 */
-	static final int
-		ALPHA_OPAQUE = 255,           // Fully opaque (ignores any alpha data)
-		ALPHA_TRANSPARENT = 0,        // Fully transparent (ignores any alpha data)
-		ALPHA_CHANNEL_SEPARATE = -1,  // Use alpha channel from separate alphaData
-		ALPHA_CHANNEL_SOURCE = -2,    // Use alpha channel embedded in sourceData
-		ALPHA_MASK_UNPACKED = -3,     // Use transparency mask formed by bytes in alphaData (non-zero is opaque)
-		ALPHA_MASK_PACKED = -4,       // Use transparency mask formed by packed bits in alphaData
-		ALPHA_MASK_INDEX = -5,        // Consider source palette indices transparent if in alphaData array
-		ALPHA_MASK_RGB = -6;          // Consider source RGBs transparent if in RGB888 format alphaData array
-		
-	/**
-	 * Data types (internal)
-	 */
-	private static final int
-		// direct / true color formats with arbitrary masks & shifts
-		TYPE_GENERIC_8 = 0,
-		TYPE_GENERIC_16_MSB = 1,
-		TYPE_GENERIC_16_LSB = 2,
-		TYPE_GENERIC_24 = 3,
-		TYPE_GENERIC_32_MSB = 4,
-		TYPE_GENERIC_32_LSB = 5,
-		// palette indexed color formats
-		TYPE_INDEX_8 = 6,
-		TYPE_INDEX_4 = 7,
-		TYPE_INDEX_2 = 8,
-		TYPE_INDEX_1_MSB = 9,
-		TYPE_INDEX_1_LSB = 10;
-		
-	/**
-	 * Byte and bit order constants.
-	 */
-	static final int LSB_FIRST = 0;
-	static final int MSB_FIRST = 1;
-	
-	/**
-	 * Blit operation bits to be OR'ed together to specify the desired operation.
-	 */
-	static final int
-		BLIT_SRC = 1,     // copy source directly, else applies logic operations
-		BLIT_ALPHA = 2,   // enable alpha blending
-		BLIT_DITHER = 4;  // enable dithering in low color modes
-		
-	/**
-	 * Arbitrary channel width data to 8-bit conversion table.
-	 */
-	static final byte[][] ANY_TO_EIGHT = new byte[9][];
-	static {
-		for (int b = 0; b < 9; ++b) {
-			byte[] data = ANY_TO_EIGHT[b] = new byte[1 << b];
-			if (b == 0) continue;
-			int inc = 0;
-			for (int bit = 0x10000; (bit >>= b) != 0;) inc |= bit;
-			for (int v = 0, p = 0; v < 0x10000; v+= inc) data[p++] = (byte)(v >> 8);
-		}
-	}
-
-	/**
-	 * Blits a direct palette image into a direct palette image.
-	 * <p>
-	 * Note: When the source and destination depth, order and masks
-	 * are pairwise equal and the blitter operation is BLIT_SRC,
-	 * the masks are ignored.  Hence when not changing the image
-	 * data format, 0 may be specified for the masks.
-	 * </p>
-	 * 
-	 * @param op the blitter operation: a combination of BLIT_xxx flags
-	 *        (see BLIT_xxx constants)
-	 * @param srcData the source byte array containing image data
-	 * @param srcDepth the source depth: one of 8, 16, 24, 32
-	 * @param srcStride the source number of bytes per line
-	 * @param srcOrder the source byte ordering: one of MSB_FIRST or LSB_FIRST;
-	 *        ignored if srcDepth is not 16 or 32
-	 * @param srcX the top-left x-coord of the source blit region
-	 * @param srcY the top-left y-coord of the source blit region
-	 * @param srcWidth the width of the source blit region
-	 * @param srcHeight the height of the source blit region
-	 * @param srcRedMask the source red channel mask
-	 * @param srcGreenMask the source green channel mask
-	 * @param srcBlueMask the source blue channel mask
-	 * @param alphaMode the alpha blending or mask mode, may be
-	 *        an integer 0-255 for global alpha; ignored if BLIT_ALPHA
-	 *        not specified in the blitter operations
-	 *        (see ALPHA_MODE_xxx constants)
-	 * @param alphaData the alpha blending or mask data, varies depending
-	 *        on the value of alphaMode and sometimes ignored
-	 * @param alphaStride the alpha data number of bytes per line
-	 * @param alphaX the top-left x-coord of the alpha blit region
-	 * @param alphaY the top-left y-coord of the alpha blit region
-	 * @param destData the destination byte array containing image data
-	 * @param destDepth the destination depth: one of 8, 16, 24, 32
-	 * @param destStride the destination number of bytes per line
-	 * @param destOrder the destination byte ordering: one of MSB_FIRST or LSB_FIRST;
-	 *        ignored if destDepth is not 16 or 32
-	 * @param destX the top-left x-coord of the destination blit region
-	 * @param destY the top-left y-coord of the destination blit region
-	 * @param destWidth the width of the destination blit region
-	 * @param destHeight the height of the destination blit region
-	 * @param destRedMask the destination red channel mask
-	 * @param destGreenMask the destination green channel mask
-	 * @param destBlueMask the destination blue channel mask
-	 * @param flipX if true the resulting image is flipped along the vertical axis
-	 * @param flipY if true the resulting image is flipped along the horizontal axis
-	 */
-	static void blit(int op,
-		byte[] srcData, int srcDepth, int srcStride, int srcOrder,
-		int srcX, int srcY, int srcWidth, int srcHeight,
-		int srcRedMask, int srcGreenMask, int srcBlueMask,
-		int alphaMode, byte[] alphaData, int alphaStride, int alphaX, int alphaY,
-		byte[] destData, int destDepth, int destStride, int destOrder,
-		int destX, int destY, int destWidth, int destHeight,
-		int destRedMask, int destGreenMask, int destBlueMask,
-		boolean flipX, boolean flipY) {
-		if ((destWidth <= 0) || (destHeight <= 0) || (alphaMode == ALPHA_TRANSPARENT)) return;
-
-		// these should be supplied as params later
-		final int srcAlphaMask = 0, destAlphaMask = 0;
-
-		/*** Prepare scaling data ***/
-		final int dwm1 = destWidth - 1;
-		final int sfxi = (dwm1 != 0) ? (int)((((long)srcWidth << 16) - 1) / dwm1) : 0;
-		final int dhm1 = destHeight - 1;
-		final int sfyi = (dhm1 != 0) ? (int)((((long)srcHeight << 16) - 1) / dhm1) : 0;
-
-		/*** Prepare source-related data ***/
-		final int sbpp, stype;
-		switch (srcDepth) {
-			case 8:
-				sbpp = 1;
-				stype = TYPE_GENERIC_8;
-				break;
-			case 16:
-				sbpp = 2;
-				stype = (srcOrder == MSB_FIRST) ? TYPE_GENERIC_16_MSB : TYPE_GENERIC_16_LSB;
-				break;
-			case 24:
-				sbpp = 3;
-				stype = TYPE_GENERIC_24;
-				break;
-			case 32:
-				sbpp = 4;
-				stype = (srcOrder == MSB_FIRST) ? TYPE_GENERIC_32_MSB : TYPE_GENERIC_32_LSB;
-				break;
-			default:
-				//throw new IllegalArgumentException("Invalid source type");
-				return;
-		}			
-		int spr = srcY * srcStride + srcX * sbpp;
-
-		/*** Prepare destination-related data ***/
-		final int dbpp, dtype;
-		switch (destDepth) {
-			case 8:
-				dbpp = 1;
-				dtype = TYPE_GENERIC_8;
-				break;
-			case 16:
-				dbpp = 2;
-				dtype = (destOrder == MSB_FIRST) ? TYPE_GENERIC_16_MSB : TYPE_GENERIC_16_LSB;
-				break;
-			case 24:
-				dbpp = 3;
-				dtype = TYPE_GENERIC_24;
-				break;
-			case 32:
-				dbpp = 4;
-				dtype = (destOrder == MSB_FIRST) ? TYPE_GENERIC_32_MSB : TYPE_GENERIC_32_LSB;
-				break;
-			default:
-				//throw new IllegalArgumentException("Invalid destination type");
-				return;
-		}			
-		int dpr = ((flipY) ? destY + dhm1 : destY) * destStride + ((flipX) ? destX + dwm1 : destX) * dbpp;
-		final int dprxi = (flipX) ? -dbpp : dbpp;
-		final int dpryi = (flipY) ? -destStride : destStride;
-
-		/*** Prepare special processing data ***/
-		int apr;
-		if ((op & BLIT_ALPHA) != 0) {
-			switch (alphaMode) {
-				case ALPHA_MASK_UNPACKED:
-				case ALPHA_CHANNEL_SEPARATE:
-					if (alphaData == null) alphaMode = 0x10000;
-					apr = alphaY * alphaStride + alphaX;
-					break;
-				case ALPHA_MASK_PACKED:
-					if (alphaData == null) alphaMode = 0x10000;
-					alphaStride <<= 3;
-					apr = alphaY * alphaStride + alphaX;
-					break;
-				case ALPHA_MASK_INDEX:
-					//throw new IllegalArgumentException("Invalid alpha type");
-					return;
-				case ALPHA_MASK_RGB:
-					if (alphaData == null) alphaMode = 0x10000;
-					apr = 0;
-					break;
-				default:
-					alphaMode = (alphaMode << 16) / 255; // prescale
-				case ALPHA_CHANNEL_SOURCE:
-					apr = 0;
-					break;
-			}
-		} else {
-			alphaMode = 0x10000;
-			apr = 0;
-		}
-
-		/*** Blit ***/
-		int dp = dpr;
-		int sp = spr;
-		if ((alphaMode == 0x10000) && (stype == dtype) &&
-			(srcRedMask == destRedMask) && (srcGreenMask == destGreenMask) &&
-			(srcBlueMask == destBlueMask) && (srcAlphaMask == destAlphaMask)) {
-			/*** Fast blit (straight copy) ***/
-			switch (sbpp) {
-				case 1:
-					for (int dy = destHeight, sfy = sfyi; dy > 0; --dy, sp = spr += (sfy >>> 16) * srcStride, sfy = (sfy & 0xffff) + sfyi, dp = dpr += dpryi) {
-						for (int dx = destWidth, sfx = sfxi; dx > 0; --dx, dp += dprxi, sfx = (sfx & 0xffff) + sfxi) {
-							destData[dp] = srcData[sp];
-							sp += (sfx >>> 16);
-						}
-					}
-					break;					
-				case 2:
-					for (int dy = destHeight, sfy = sfyi; dy > 0; --dy, sp = spr += (sfy >>> 16) * srcStride, sfy = (sfy & 0xffff) + sfyi, dp = dpr += dpryi) {
-						for (int dx = destWidth, sfx = sfxi; dx > 0; --dx, dp += dprxi, sfx = (sfx & 0xffff) + sfxi) {
-							destData[dp] = srcData[sp];
-							destData[dp + 1] = srcData[sp + 1];
-							sp += (sfx >>> 16) * 2;
-						}
-					}
-					break;
-				case 3:
-					for (int dy = destHeight, sfy = sfyi; dy > 0; --dy, sp = spr += (sfy >>> 16) * srcStride, sfy = (sfy & 0xffff) + sfyi, dp = dpr += dpryi) {
-						for (int dx = destWidth, sfx = sfxi; dx > 0; --dx, dp += dprxi, sfx = (sfx & 0xffff) + sfxi) {
-							destData[dp] = srcData[sp];
-							destData[dp + 1] = srcData[sp + 1];
-							destData[dp + 2] = srcData[sp + 2];
-							sp += (sfx >>> 16) * 3;
-						}
-					}
-					break;
-				case 4:
-					for (int dy = destHeight, sfy = sfyi; dy > 0; --dy, sp = spr += (sfy >>> 16) * srcStride, sfy = (sfy & 0xffff) + sfyi, dp = dpr += dpryi) {
-						for (int dx = destWidth, sfx = sfxi; dx > 0; --dx, dp += dprxi, sfx = (sfx & 0xffff) + sfxi) {
-							destData[dp] = srcData[sp];
-							destData[dp + 1] = srcData[sp + 1];
-							destData[dp + 2] = srcData[sp + 2];
-							destData[dp + 3] = srcData[sp + 3];
-							sp += (sfx >>> 16) * 4;
-						}
-					}
-					break;
-			}
-			return;
-		}
-		/*** Comprehensive blit (apply transformations) ***/
-		final int srcRedShift = getChannelShift(srcRedMask);
-		final byte[] srcReds = ANY_TO_EIGHT[getChannelWidth(srcRedMask, srcRedShift)];
-		final int srcGreenShift = getChannelShift(srcGreenMask);
-		final byte[] srcGreens = ANY_TO_EIGHT[getChannelWidth(srcGreenMask, srcGreenShift)];
-		final int srcBlueShift = getChannelShift(srcBlueMask);
-		final byte[] srcBlues = ANY_TO_EIGHT[getChannelWidth(srcBlueMask, srcBlueShift)];
-		final int srcAlphaShift = getChannelShift(srcAlphaMask);
-		final byte[] srcAlphas = ANY_TO_EIGHT[getChannelWidth(srcAlphaMask, srcAlphaShift)];
-
-		final int destRedShift = getChannelShift(destRedMask);
-		final int destRedWidth = getChannelWidth(destRedMask, destRedShift);
-		final byte[] destReds = ANY_TO_EIGHT[destRedWidth];
-		final int destRedPreShift = 8 - destRedWidth;
-		final int destGreenShift = getChannelShift(destGreenMask);
-		final int destGreenWidth = getChannelWidth(destGreenMask, destGreenShift);
-		final byte[] destGreens = ANY_TO_EIGHT[destGreenWidth];
-		final int destGreenPreShift = 8 - destGreenWidth;
-		final int destBlueShift = getChannelShift(destBlueMask);
-		final int destBlueWidth = getChannelWidth(destBlueMask, destBlueShift);
-		final byte[] destBlues = ANY_TO_EIGHT[destBlueWidth];
-		final int destBluePreShift = 8 - destBlueWidth;
-		final int destAlphaShift = getChannelShift(destAlphaMask);
-		final int destAlphaWidth = getChannelWidth(destAlphaMask, destAlphaShift);
-		final byte[] destAlphas = ANY_TO_EIGHT[destAlphaWidth];
-		final int destAlphaPreShift = 8 - destAlphaWidth;
-
-		int ap = apr, alpha = alphaMode;
-		int r = 0, g = 0, b = 0, a = 0;
-		int rq = 0, gq = 0, bq = 0, aq = 0;
-		for (int dy = destHeight, sfy = sfyi; dy > 0; --dy,
-				sp = spr += (sfy >>> 16) * srcStride,
-				ap = apr += (sfy >>> 16) * alphaStride,
-				sfy = (sfy & 0xffff) + sfyi,
-				dp = dpr += dpryi) {
-			for (int dx = destWidth, sfx = sfxi; dx > 0; --dx,
-					dp += dprxi,
-					sfx = (sfx & 0xffff) + sfxi) {
-				/*** READ NEXT PIXEL ***/
-				switch (stype) {
-					case TYPE_GENERIC_8: {
-						final int data = srcData[sp] & 0xff;
-						sp += (sfx >>> 16);
-						r = srcReds[(data & srcRedMask) >>> srcRedShift] & 0xff;
-						g = srcGreens[(data & srcGreenMask) >>> srcGreenShift] & 0xff;
-						b = srcBlues[(data & srcBlueMask) >>> srcBlueShift] & 0xff;
-						a = srcAlphas[(data & srcAlphaMask) >>> srcAlphaShift] & 0xff;
-					} break;
-					case TYPE_GENERIC_16_MSB: {
-						final int data = ((srcData[sp] & 0xff) << 8) | (srcData[sp + 1] & 0xff);
-						sp += (sfx >>> 16) * 2;
-						r = srcReds[(data & srcRedMask) >>> srcRedShift] & 0xff;
-						g = srcGreens[(data & srcGreenMask) >>> srcGreenShift] & 0xff;
-						b = srcBlues[(data & srcBlueMask) >>> srcBlueShift] & 0xff;
-						a = srcAlphas[(data & srcAlphaMask) >>> srcAlphaShift] & 0xff;
-					} break;
-					case TYPE_GENERIC_16_LSB: {
-						final int data = ((srcData[sp + 1] & 0xff) << 8) | (srcData[sp] & 0xff);
-						sp += (sfx >>> 16) * 2;
-						r = srcReds[(data & srcRedMask) >>> srcRedShift] & 0xff;
-						g = srcGreens[(data & srcGreenMask) >>> srcGreenShift] & 0xff;
-						b = srcBlues[(data & srcBlueMask) >>> srcBlueShift] & 0xff;
-						a = srcAlphas[(data & srcAlphaMask) >>> srcAlphaShift] & 0xff;
-					} break;
-					case TYPE_GENERIC_24: {
-						final int data = (( ((srcData[sp] & 0xff) << 8) |
-							(srcData[sp + 1] & 0xff)) << 8) |
-							(srcData[sp + 2] & 0xff);
-						sp += (sfx >>> 16) * 3;
-						r = srcReds[(data & srcRedMask) >>> srcRedShift] & 0xff;
-						g = srcGreens[(data & srcGreenMask) >>> srcGreenShift] & 0xff;
-						b = srcBlues[(data & srcBlueMask) >>> srcBlueShift] & 0xff;
-						a = srcAlphas[(data & srcAlphaMask) >>> srcAlphaShift] & 0xff;
-					} break;
-					case TYPE_GENERIC_32_MSB: {
-						final int data = (( (( ((srcData[sp] & 0xff) << 8) |
-							(srcData[sp + 1] & 0xff)) << 8) |
-							(srcData[sp + 2] & 0xff)) << 8) |
-							(srcData[sp + 3] & 0xff);
-						sp += (sfx >>> 16) * 4;
-						r = srcReds[(data & srcRedMask) >>> srcRedShift] & 0xff;
-						g = srcGreens[(data & srcGreenMask) >>> srcGreenShift] & 0xff;
-						b = srcBlues[(data & srcBlueMask) >>> srcBlueShift] & 0xff;
-						a = srcAlphas[(data & srcAlphaMask) >>> srcAlphaShift] & 0xff;
-					} break;
-					case TYPE_GENERIC_32_LSB: {
-						final int data = (( (( ((srcData[sp + 3] & 0xff) << 8) |
-							(srcData[sp + 2] & 0xff)) << 8) |
-							(srcData[sp + 1] & 0xff)) << 8) |
-							(srcData[sp] & 0xff);
-						sp += (sfx >>> 16) * 4;
-						r = srcReds[(data & srcRedMask) >>> srcRedShift] & 0xff;
-						g = srcGreens[(data & srcGreenMask) >>> srcGreenShift] & 0xff;
-						b = srcBlues[(data & srcBlueMask) >>> srcBlueShift] & 0xff;
-						a = srcAlphas[(data & srcAlphaMask) >>> srcAlphaShift] & 0xff;
-					} break;
-				}
-
-				/*** DO SPECIAL PROCESSING IF REQUIRED ***/
-				switch (alphaMode) {
-					case ALPHA_CHANNEL_SEPARATE:
-						alpha = ((alphaData[ap] & 0xff) << 16) / 255;
-						ap += (sfx >> 16);
-						break;
-					case ALPHA_CHANNEL_SOURCE:
-						alpha = (a << 16) / 255;
-						break;
-					case ALPHA_MASK_UNPACKED:
-						alpha = (alphaData[ap] != 0) ? 0x10000 : 0;
-						ap += (sfx >> 16);
-						break;						
-					case ALPHA_MASK_PACKED:
-						alpha = (alphaData[ap >> 3] << ((ap & 7) + 9)) & 0x10000;
-						ap += (sfx >> 16);
-						break;
-					case ALPHA_MASK_RGB:
-						alpha = 0x10000;
-						for (int i = 0; i < alphaData.length; i += 3) {
-							if ((r == alphaData[i]) && (g == alphaData[i + 1]) && (b == alphaData[i + 2])) {
-								alpha = 0x0000;
-								break;
-							}
-						}
-						break;
-				}
-				if (alpha != 0x10000) {
-					if (alpha == 0x0000) continue;
-					switch (dtype) {
-						case TYPE_GENERIC_8: {
-							final int data = destData[dp] & 0xff;
-							rq = destReds[(data & destRedMask) >>> destRedShift] & 0xff;
-							gq = destGreens[(data & destGreenMask) >>> destGreenShift] & 0xff;
-							bq = destBlues[(data & destBlueMask) >>> destBlueShift] & 0xff;
-							aq = destAlphas[(data & destAlphaMask) >>> destAlphaShift] & 0xff;
-						} break;
-						case TYPE_GENERIC_16_MSB: {
-							final int data = ((destData[dp] & 0xff) << 8) | (destData[dp + 1] & 0xff);
-							rq = destReds[(data & destRedMask) >>> destRedShift] & 0xff;
-							gq = destGreens[(data & destGreenMask) >>> destGreenShift] & 0xff;
-							bq = destBlues[(data & destBlueMask) >>> destBlueShift] & 0xff;
-							aq = destAlphas[(data & destAlphaMask) >>> destAlphaShift] & 0xff;
-						} break;
-						case TYPE_GENERIC_16_LSB: {
-							final int data = ((destData[dp + 1] & 0xff) << 8) | (destData[dp] & 0xff);
-							rq = destReds[(data & destRedMask) >>> destRedShift] & 0xff;
-							gq = destGreens[(data & destGreenMask) >>> destGreenShift] & 0xff;
-							bq = destBlues[(data & destBlueMask) >>> destBlueShift] & 0xff;
-							aq = destAlphas[(data & destAlphaMask) >>> destAlphaShift] & 0xff;
-						} break;
-						case TYPE_GENERIC_24: {
-							final int data = (( ((destData[dp] & 0xff) << 8) |
-								(destData[dp + 1] & 0xff)) << 8) |
-								(destData[dp + 2] & 0xff);
-							rq = destReds[(data & destRedMask) >>> destRedShift] & 0xff;
-							gq = destGreens[(data & destGreenMask) >>> destGreenShift] & 0xff;
-							bq = destBlues[(data & destBlueMask) >>> destBlueShift] & 0xff;
-							aq = destAlphas[(data & destAlphaMask) >>> destAlphaShift] & 0xff;
-						} break;
-						case TYPE_GENERIC_32_MSB: {
-							final int data = (( (( ((destData[dp] & 0xff) << 8) |
-								(destData[dp + 1] & 0xff)) << 8) |
-								(destData[dp + 2] & 0xff)) << 8) |
-								(destData[dp + 3] & 0xff);
-							rq = destReds[(data & destRedMask) >>> destRedShift] & 0xff;
-							gq = destGreens[(data & destGreenMask) >>> destGreenShift] & 0xff;
-							bq = destBlues[(data & destBlueMask) >>> destBlueShift] & 0xff;
-							aq = destAlphas[(data & destAlphaMask) >>> destAlphaShift] & 0xff;
-						} break;
-						case TYPE_GENERIC_32_LSB: {
-							final int data = (( (( ((destData[dp + 3] & 0xff) << 8) |
-								(destData[dp + 2] & 0xff)) << 8) |
-								(destData[dp + 1] & 0xff)) << 8) |
-								(destData[dp] & 0xff);
-							rq = destReds[(data & destRedMask) >>> destRedShift] & 0xff;
-							gq = destGreens[(data & destGreenMask) >>> destGreenShift] & 0xff;
-							bq = destBlues[(data & destBlueMask) >>> destBlueShift] & 0xff;
-							aq = destAlphas[(data & destAlphaMask) >>> destAlphaShift] & 0xff;
-						} break;
-					}
-					// Perform alpha blending
-					a = aq + ((a - aq) * alpha >> 16);
-					r = rq + ((r - rq) * alpha >> 16);
-					g = gq + ((g - gq) * alpha >> 16);
-					b = bq + ((b - bq) * alpha >> 16);
-				}
-
-				/*** WRITE NEXT PIXEL ***/
-				final int data = 
-					(r >>> destRedPreShift << destRedShift) |
-					(g >>> destGreenPreShift << destGreenShift) |
-					(b >>> destBluePreShift << destBlueShift) |
-					(a >>> destAlphaPreShift << destAlphaShift);
-				switch (dtype) {
-					case TYPE_GENERIC_8: {
-						destData[dp] = (byte) data;
-					} break;
-					case TYPE_GENERIC_16_MSB: {
-						destData[dp] = (byte) (data >>> 8);
-						destData[dp + 1] = (byte) (data & 0xff);
-					} break;
-					case TYPE_GENERIC_16_LSB: {
-						destData[dp] = (byte) (data & 0xff);
-						destData[dp + 1] = (byte) (data >>> 8);
-					} break;
-					case TYPE_GENERIC_24: {
-						destData[dp] = (byte) (data >>> 16);
-						destData[dp + 1] = (byte) (data >>> 8);
-						destData[dp + 2] = (byte) (data & 0xff);
-					} break;
-					case TYPE_GENERIC_32_MSB: {
-						destData[dp] = (byte) (data >>> 24);
-						destData[dp + 1] = (byte) (data >>> 16);
-						destData[dp + 2] = (byte) (data >>> 8);
-						destData[dp + 3] = (byte) (data & 0xff);
-					} break;
-					case TYPE_GENERIC_32_LSB: {
-						destData[dp] = (byte) (data & 0xff);
-						destData[dp + 1] = (byte) (data >>> 8);
-						destData[dp + 2] = (byte) (data >>> 16);
-						destData[dp + 3] = (byte) (data >>> 24);
-					} break;
-				}
-			}
-		}			
-	}
-
-	/**
-	 * Computes the required channel shift from a mask.
-	 */
-	static int getChannelShift(int mask) {
-		if (mask == 0) return 0;
-		int i;
-		for (i = 0; ((mask & 1) == 0) && (i < 32); ++i) {
-			mask >>>= 1;
-		}
-		return i;
-	}
-	
-	/**
-	 * Computes the required channel width (depth) from a mask.
-	 */
-	static int getChannelWidth(int mask, int shift) {
-		if (mask == 0) return 0;
-		int i;
-		mask >>>= shift;
-		for (i = shift; ((mask & 1) != 0) && (i < 32); ++i) {
-			mask >>>= 1;
-		}
-		return i - shift;
-	}
-}
diff --git a/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/Library.java b/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/Library.java
deleted file mode 100644
index 7a486e3..0000000
--- a/bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/Library.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl;
-
-
-public class Library {
-
-/**
- * Returns the platform name.
- *
- * @return the platform name of the currently running SWT
- */
-static String getPlatform () {
-	String [] names = new String [] {"motif", "gtk", "win32", "photon", "carbon"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-	for (int i = 0; i < names.length; i++) {
-		try {
-			Class.forName("org.eclipse.swt.internal."+names[i]+".OS"); //$NON-NLS-1$ //$NON-NLS-2$
-			return names[i];
-		} catch (ClassNotFoundException e) {
-		}
-	}
-	return "unknown"; //$NON-NLS-1$
-}
-
-/**
- * Loads the shared library that matches the version of the
- * Java code which is currently running.  SWT shared libraries
- * follow an encoding scheme where the major, minor and revision
- * numbers are embedded in the library name and this along with
- * <code>name</code> is used to load the library.  If this fails,
- * <code>name</code> is used in another attempt to load the library,
- * this time ignoring the SWT version encoding scheme.
- *
- * @param name the name of the library to load
- */
-public static void loadLibrary (String name) {
-	/*
-     * Include platform name to support different windowing systems
-     * on same operating system.
-	 */
-	String platform = getPlatform ();
-	
-	try {
-		String newName = name + "-" + platform; //$NON-NLS-1$ //$NON-NLS-2$
-		System.loadLibrary (newName);
-		return;
-	} catch (UnsatisfiedLinkError e1) {		
-		throw e1;
-	}
-}
-
-}
diff --git a/bundles/org.eclipse.swt.opengl/gtk/gl_library/build.sh b/bundles/org.eclipse.swt.opengl/gtk/gl_library/build.sh
deleted file mode 100644
index 176fd07..0000000
--- a/bundles/org.eclipse.swt.opengl/gtk/gl_library/build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#*******************************************************************************
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Kevin Cornell (Rational Software Corporation)
-#     Tom Tromey (Red Hat, Inc.)
-#*******************************************************************************
-
-#!/bin/sh
-
-# Some UNIX/Linux compilers don't like <CR>'s in files (DOS format).
-fixup_files=`grep -l "\
-" *.[ch]`
-if test -n "$fixup_files"; then
-    echo "Converting files from DOS to UNIX format:"
-    for file in $fixup_files; do
-	echo "    $file"
-	ex $file << EOF 2> /dev/null
-g/\$/s///
-w
-EOF
-    done
-fi
-
-# Determine the operating system being built
-
-make -f make_gtk.mak ${1+"$@"}
diff --git a/bundles/org.eclipse.swt.opengl/gtk/gl_library/gtkglext.c b/bundles/org.eclipse.swt.opengl/gtk/gl_library/gtkglext.c
deleted file mode 100644
index 7d6c122..0000000
--- a/bundles/org.eclipse.swt.opengl/gtk/gl_library/gtkglext.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-#include "swt.h"
-#include <gtk/gtkgl.h>
-#include <gdk/gdkgl.h>
-
-#ifndef NO_gdk_1gl_1config_1new
-JNIEXPORT jint JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gdk_1gl_1config_1new
-	(JNIEnv *env, jclass that, jintArray arg0)
-{
-	jint *lparg0=NULL;
-	jint rc;
-
-	DEBUG_CALL("gdk_1gl_1config_1new\n")
-
-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);
-	rc = (jint)gdk_gl_config_new(lparg0);
-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);
-	return rc;
-}
-#endif
-
-#ifndef NO_gdk_1gl_1config_1new_1by_1mode
-JNIEXPORT jint JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gdk_1gl_1config_1new_1by_1mode
-	(JNIEnv *env, jclass that, jint arg0)
-{
-	DEBUG_CALL("gdk_1gl_1config_1new_1by_1mode\n")
-
-	return (jint)gdk_gl_config_new_by_mode(arg0);
-}
-#endif
-
-#ifndef NO_gdk_1gl_1context_1destroy
-JNIEXPORT void JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gdk_1gl_1context_1destroy
-	(JNIEnv *env, jclass that, jint arg0)
-{
-	DEBUG_CALL("gdk_1gl_1context_1destroy\n")
-
-	gdk_gl_context_destroy((GdkGLContext *)arg0);
-}
-#endif
-
-#ifndef NO_gdk_1gl_1context_1get_1current
-JNIEXPORT jint JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gdk_1gl_1context_1get_1current
-	(JNIEnv *env, jclass that)
-{
-	DEBUG_CALL("gdk_1gl_1context_1get_1current\n")
-
-	return (jint)gdk_gl_context_get_current();
-}
-#endif
-
-#ifndef NO_gdk_1gl_1context_1get_1gl_1drawable
-JNIEXPORT jint JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gdk_1gl_1context_1get_1gl_1drawable
-	(JNIEnv *env, jclass that, jint arg0)
-{
-	DEBUG_CALL("gdk_1gl_1context_1get_1gl_1drawable\n")
-
-	return (jint)gdk_gl_context_get_gl_drawable((GdkGLContext *)arg0);
-}
-#endif
-
-#ifndef NO_gdk_1gl_1drawable_1gl_1begin
-JNIEXPORT jboolean JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gdk_1gl_1drawable_1gl_1begin
-	(JNIEnv *env, jclass that, jint arg0, jint arg1)
-{
-	DEBUG_CALL("gdk_1gl_1drawable_1gl_1begin\n")
-
-	return (jboolean)gdk_gl_drawable_gl_begin((GdkGLDrawable *)arg0, (GdkGLContext *)arg1);
-}
-#endif
-
-#ifndef NO_gdk_1gl_1drawable_1gl_1end
-JNIEXPORT void JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gdk_1gl_1drawable_1gl_1end
-	(JNIEnv *env, jclass that, jint arg0)
-{
-	DEBUG_CALL("gdk_1gl_1drawable_1gl_1end\n")
-
-	gdk_gl_drawable_gl_end((GdkGLDrawable *)arg0);
-}
-#endif
-
-#ifndef NO_gdk_1gl_1drawable_1make_1current
-JNIEXPORT void JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gdk_1gl_1drawable_1make_1current
-	(JNIEnv *env, jclass that, jint arg0, jint arg1)
-{
-	DEBUG_CALL("gdk_1gl_1drawable_1make_1current\n")
-
-	gdk_gl_drawable_make_current((GdkGLDrawable *)arg0, (GdkGLContext *)arg1);
-}
-#endif
-
-#ifndef NO_gdk_1gl_1drawable_1swap_1buffers
-JNIEXPORT void JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gdk_1gl_1drawable_1swap_1buffers
-	(JNIEnv *env, jclass that, jint arg0)
-{
-	DEBUG_CALL("gdk_1gl_1drawable_1swap_1buffers\n")
-
-	gdk_gl_drawable_swap_buffers((GdkGLDrawable *)arg0);
-}
-#endif
-
-#ifndef NO_gdk_1gl_1font_1use_1pango_1font
-JNIEXPORT void JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gdk_1gl_1font_1use_1pango_1font
-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
-{
-	DEBUG_CALL("gdk_1gl_1font_1use_1pango_1font\n")
-
-	gdk_gl_font_use_pango_font((PangoFontDescription *)arg0, arg1, arg2, arg3);
-}
-#endif
-
-#ifndef NO_gtk_1gl_1init
-JNIEXPORT void JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gtk_1gl_1init
-	(JNIEnv *env, jclass that, jint arg0, jint arg1)
-{
-	DEBUG_CALL("gtk_1gl_1init\n")
-
-	gtk_gl_init((int *)arg0, (char ***)arg1);
-}
-#endif
-
-#ifndef NO_gtk_1widget_1create_1gl_1context
-JNIEXPORT jint JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gtk_1widget_1create_1gl_1context
-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2, jint arg3)
-{
-	DEBUG_CALL("gtk_1widget_1create_1gl_1context\n")
-
-	return (jint)gtk_widget_create_gl_context((GtkWidget *)arg0, (GdkGLContext *)arg1, arg2, arg3);
-}
-#endif
-
-#ifndef NO_gtk_1widget_1get_1gl_1context
-JNIEXPORT jint JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gtk_1widget_1get_1gl_1context
-	(JNIEnv *env, jclass that, jint arg0)
-{
-	DEBUG_CALL("gtk_1widget_1get_1gl_1context\n")
-
-	return (jint)gtk_widget_get_gl_context((GtkWidget *)arg0);
-}
-#endif
-
-#ifndef NO_gtk_1widget_1get_1gl_1drawable
-JNIEXPORT jint JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gtk_1widget_1get_1gl_1drawable
-	(JNIEnv *env, jclass that, jint arg0)
-{
-	DEBUG_CALL("gtk_1widget_1get_1gl_1drawable\n")
-
-	return (jint)gtk_widget_get_gl_drawable((GtkWidget *)arg0);
-}
-#endif
-
-#ifndef NO_gtk_1widget_1get_1gl_1window
-JNIEXPORT jint JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gtk_1widget_1get_1gl_1window
-	(JNIEnv *env, jclass that, jint arg0)
-{
-	DEBUG_CALL("gtk_1widget_1get_1gl_1window\n")
-
-	return (jint)gtk_widget_get_gl_window((GtkWidget *)arg0);
-}
-#endif
-
-#ifndef NO_gtk_1widget_1set_1gl_1capability
-JNIEXPORT jboolean JNICALL Java_org_eclipse_swt_opengl_internal_gtk_GTKGLEXT_gtk_1widget_1set_1gl_1capability
-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jboolean arg3, jint arg4)
-{
-	DEBUG_CALL("gtk_1widget_1set_1gl_1capability\n")
-
-	return (jboolean)gtk_widget_set_gl_capability((GtkWidget *)arg0, (GdkGLConfig *)arg1, (GdkGLContext *)arg2, arg3, arg4);
-}
-#endif
diff --git a/bundles/org.eclipse.swt.opengl/gtk/gl_library/make_gtk.mak b/bundles/org.eclipse.swt.opengl/gtk/gl_library/make_gtk.mak
deleted file mode 100644
index f6302df..0000000
--- a/bundles/org.eclipse.swt.opengl/gtk/gl_library/make_gtk.mak
+++ /dev/null
@@ -1,41 +0,0 @@
-#*******************************************************************************
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#*******************************************************************************
-
-# Define the installation directories for various products.
-JAVA_HOME   = /bluebird/teamswt/swt-builddir/ive/bin
-
-# Define the various shared libraries to be made.
-SWT_PREFIX   = gl
-WS_PREFIX    = gtk
-SWT_DLL      = lib$(SWT_PREFIX)-$(WS_PREFIX).so
-SWT_OBJ      = gl.c glu.c gtkglext.c
-
-GTKLIBS = `pkg-config --libs gthread-2.0 gtk+-2.0 gdkglext-1.0 gtkglext-1.0` -L/usr/X11R6/lib -lGL -lGLU -lm 
-GTKCFLAGS = `pkg-config --cflags gtk+-2.0 gdkglext-1.0 gtkglext-1.0`
-
-#
-# The following CFLAGS are for compiling the SWT OpenGL library.
-#
-CFLAGS = -O -s -shared \
-	-I./ \
-	-I$(JAVA_HOME)/include \
-	$(GTKCFLAGS) \
-	-Wall
-
-all: make_swt
-
-make_swt: $(SWT_DLL)
-
-$(SWT_DLL): $(SWT_OBJ)
-	gcc  $(CFLAGS) $(GTKLIBS) -o $(SWT_DLL) $(SWT_OBJ)
-	
-clean:
-	rm -f *.so *.o
diff --git a/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/GLContext.class b/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/GLContext.class
deleted file mode 100644
index 9765347..0000000
--- a/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/GLContext.class
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/GLContext.java b/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/GLContext.java
deleted file mode 100644
index 73fba4e..0000000
--- a/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/GLContext.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.internal.gtk.*;
-import org.eclipse.swt.opengl.internal.gtk.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * Instances of <code>GLContext</code> are used to draw on swt <code>Drawable</code>s 
- * through invocations of provided OpenGL functions.
- * <p>
- * Application code must explicitly invoke the <code>GLContext.dispose ()</code> 
- * method to release the operating system resources managed by each instance
- * when those instances are no longer required. This is <em>particularly</em>
- * important on Windows95 and Windows98 where the operating system has a limited
- * number of device contexts available.
- * </p>
- */
-public class GLContext {
-	int handle;
-	int gc;
-	GCData data;
-	Widget widget;
-	int selectBufferPtr = 0;
-
-	static final int MSB_FIRST = 1;
-	static final int LSB_FIRST = 2;
-
-	/**
-	 * Constructs a new instance of this class which has been
-	 * configured to draw on the specified drawable.
-	 * <p>
-	 * You must dispose the <code>GLContext</code> when it is no longer required. 
-	 * </p>
-	 * 
-	 * @param drawable the drawable to draw on
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the drawable is null</li>
-	 * </ul>
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_NO_HANDLES if a handle could not be obtained for gc creation</li>
-	 *    <li>ERROR_UNSUPPORTED_DEPTH - if the current display depth is not supported</li>
-	 * </ul>
-	 */
-	public GLContext (Drawable drawable) {
-		if (drawable == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-		this.data = new GCData ();
-		gc = drawable.internal_new_GC (data);
-		if (gc == 0) SWT.error (SWT.ERROR_NO_HANDLES);
-
-//		int attrib [] = {
-////			GTKGLEXT.GLX_LEVEL,
-////			0,
-////			GTKGLEXT.GDK_GL_MODE_RGBA,
-//			GTKGLEXT.GDK_GL_MODE_DOUBLE,
-//			GTKGLEXT.GDK_GL_MODE_DEPTH,
-//			24,//			depth,
-//			0
-//		};
-
-		// adding to next line causes badness: XGL.GDK_GL_MODE_INDEX |
-		int mode = GTKGLEXT.GDK_GL_MODE_RGB | GTKGLEXT.GDK_GL_MODE_DOUBLE | GTKGLEXT.GDK_GL_MODE_DEPTH;
-		int glconfig = GTKGLEXT.gdk_gl_config_new_by_mode (mode);
-//		int glconfig = GTKGLEXT.gdk_gl_config_new (attrib);
-		// for now assume that the Drawable is a Widget
-		this.widget = (Widget) drawable;
-
-		OS.gtk_widget_unrealize (widget.handle);
-		boolean success = GTKGLEXT.gtk_widget_set_gl_capability (
-			widget.handle,
-			glconfig,
-			0,
-			true,
-			GTKGLEXT.GDK_GL_RGBA_TYPE);
-		OS.gtk_widget_realize(widget.handle);
-		
-		handle = GTKGLEXT.gtk_widget_create_gl_context (widget.handle, 0, true, GTKGLEXT.GDK_GL_RGBA_TYPE);
-		if (handle == 0) SWT.error (SWT.ERROR_NO_HANDLES);
-	}
-	
-	public ImageData convertImageData (ImageData source) {
-		PaletteData palette = new PaletteData (0xff0000, 0xff00, 0xff);
-		ImageData newSource = new ImageData (source.width, source.height, 24, palette);
-		ImageDataUtil.blit (
-			1,
-			source.data,
-			source.depth,
-			source.bytesPerLine,
-			(source.depth != 16) ? MSB_FIRST : LSB_FIRST,
-			0,
-			0,
-			source.width,
-			source.height,
-			source.palette.redMask,
-			source.palette.greenMask,
-			source.palette.blueMask,
-			255,
-			null,
-			0,
-			0,
-			0,
-			newSource.data,
-			newSource.depth,
-			newSource.bytesPerLine,
-			(newSource.depth != 16) ? MSB_FIRST : LSB_FIRST,
-			0,
-			0,
-			newSource.width,
-			newSource.height,
-			newSource.palette.redMask,
-			newSource.palette.greenMask,
-			newSource.palette.blueMask,
-			false,
-			true);
-
-		return newSource;
-	}
-
-	/**
-	 * Disposes of the operating system resources associated with
-	 * the receiver. Applications must dispose of all <code>GLContext</code>s
-	 * that they allocate.
-	 */
-	public void dispose () {
-		if (handle == 0) return;
-
-// the following causes problems
-//		int current = GTKGLEXT.gdk_gl_context_get_current ();  
-//		if (current == handle) {
-//			GTKGLEXT.gdk_gl_drawable_make_current (0, 0);
-//		}
-		
-//		int xDisplay = data.display;
-//		if (XGL.glXGetCurrentContext () == handle) {
-//			XGL.glXMakeCurrent (xDisplay, 0, 0);
-//		}
-		if (selectBufferPtr != 0) OS.g_free(selectBufferPtr);
-		GTKGLEXT.gdk_gl_context_destroy (handle); 		
-//		XGL.glXDestroyContext (xDisplay, handle);
-
-		handle = 0;
-//		gdkDrawable = 0;
-		// drawable may be disposed
-		try {
-			((Drawable)widget).internal_dispose_GC (gc, data);
-		} catch (SWTException e) {
-		}
-		gc = 0;
-		data.context = data.drawable = data.layout = 0;
-		data.font = data.clipRgn = data.lineStyle = 0;
-		widget = null;
-		data.device = null;
-		data.image = null;
-		data = null;
-	}
-
-	public int[] getSelectBuffer (int selectBufferPtr, int[] selectBuffer) {
-		OS.memmove (selectBuffer, selectBufferPtr, selectBuffer.length * 4);
-		return selectBuffer;
-	}
-
-	public int getSelectBufferPtr (int[] selectBuffer) {
-		if (selectBufferPtr == 0) {
-			selectBufferPtr = OS.g_malloc (selectBuffer.length * 4);
-		}
-		OS.memmove (selectBufferPtr, selectBuffer, selectBuffer.length * 4);
-		return selectBufferPtr;
-	}
-
-	/**
-	 * Returns a boolean indicating whether the receiver is the current
-	 * <code>GLContext</code>.
-	 *  
-	 * @return true if the receiver is the current <code>GLContext</code>,
-	 * false otherwise
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_GRAPHIC_DISPOSED if the receiver is disposed</li>
-	 * </ul>
-	 */
-	public boolean isCurrent () {
-		if (isDisposed ()) 	SWT.error (SWT.ERROR_GRAPHIC_DISPOSED);
-		return GTKGLEXT.gdk_gl_context_get_current () == handle;  
-	}
-
-	/**
-	 * Returns a boolean indicating whether the <code>GLContext</code> has been
-	 * disposed.
-	 * <p>
-	 * This method gets the dispose state for the <code>GLContext</code>.
-	 * When a <code>GLContext</code> has been disposed, it is an error to
-	 * invoke any other method using the <code>GLContext</code>.
-	 *
-	 * @return true if the <code>GLContext</code> is disposed, false otherwise
-	 */
-	public boolean isDisposed () {
-		return handle == 0;
-	}
-
-	/**
-	 * Loads the specified bitmap font.
-	 * 
-	 * @param fdata
-	 * @param device
-	 * @param base
-	 * @param first
-	 * @param count
-	 */
-	public void loadBitmapFont (FontData fdata, Device device, int base, int startIndex, int length) {
-		Font font = new Font (device, fdata);
-//		int oldFont = OS.SelectObject (hDC, font.handle);
-		GTKGLEXT.gdk_gl_font_use_pango_font (font.handle, startIndex, length, base);
-//		OS.SelectObject (hDC, oldFont);
-		font.dispose ();
-	}
-
-	/**
-	 * Loads the specified outline font.
-	 * 
-	 * @param fdata
-	 * @param device
-	 * @param base
-	 * @param first
-	 * @param count
-	 * @param deviation
-	 * @param extrusion
-	 * @param format
-	 * @param lpgmf
-	 */
-	public void loadOutlineFont (FontData fdata, Device device, int base, int first,
-	int count, float deviation, float extrusion, int format, GLYPHMETRICSFLOAT[] lpgmf) {
-		// stub
-	}
-
-	/**
-	 * Resizes the receiver.
-	 * 
-	 * @param x
-	 * @param y
-	 * @param width
-	 * @param height
-	 */
-	public void resize (int x, int y, int width, int height) {
-		if (height == 0) height = 1;
-		GL.glViewport (x, y, width, height);
-		GL.glMatrixMode (GL.GL_PROJECTION);
-		GL.glLoadIdentity ();
-		GLU.gluPerspective (45.0f, (float) width / (float) height, 0.1f, 100.0f);
-		GL.glMatrixMode (GL.GL_MODELVIEW);
-		GL.glLoadIdentity ();
-	}
-
-	/**
-	 * Sets the receiver to be the current <code>GLContext</code>.
-	 * 
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_GRAPHIC_DISPOSED if the receiver is disposed</li>
-	 * </ul>
-	 */
-	public void setCurrent () {
-		if (isDisposed ()) SWT.error (SWT.ERROR_GRAPHIC_DISPOSED);
-		int currentContext = GTKGLEXT.gdk_gl_context_get_current ();
-		if (currentContext == handle) return;
-		if (currentContext != 0) {
-			int drawable = GTKGLEXT.gdk_gl_context_get_gl_drawable(currentContext);
-			GTKGLEXT.gdk_gl_drawable_gl_end (drawable);
-		}
-		int gdkDrawable = GTKGLEXT.gtk_widget_get_gl_drawable (widget.handle);
-		GTKGLEXT.gdk_gl_drawable_gl_begin (gdkDrawable, handle);
-		GTKGLEXT.gdk_gl_drawable_make_current (gdkDrawable, handle);
-	}
-
-	/**
-	 * Swaps the receiver's buffers.
-	 * 
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_GRAPHIC_DISPOSED if the receiver is disposed</li>
-	 * </ul>
-	 */
-	public void swapBuffers () {
-		if (isDisposed ()) SWT.error (SWT.ERROR_GRAPHIC_DISPOSED);
-		int gdkDrawable = GTKGLEXT.gtk_widget_get_gl_drawable (widget.handle); 
-		GTKGLEXT.gdk_gl_drawable_swap_buffers (gdkDrawable);
-	}
-}
diff --git a/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/internal/gtk/GTKEXT.class b/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/internal/gtk/GTKEXT.class
deleted file mode 100644
index 5b71e55..0000000
--- a/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/internal/gtk/GTKEXT.class
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/internal/gtk/GTKGLEXT.java b/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/internal/gtk/GTKGLEXT.java
deleted file mode 100644
index 8e1c3e3..0000000
--- a/bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/internal/gtk/GTKGLEXT.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.internal.gtk;
-
-import org.eclipse.swt.opengl.Library;
-
-public class GTKGLEXT {
-	
-	static {
-		Library.loadLibrary("gl");
-		GTKGLEXT.gtk_gl_init (0, 0);
-	}
-
-	public static final native int gdk_gl_config_new (int [] mode);
-	public static final native int gdk_gl_config_new_by_mode (int mode);
-	public static final native void gdk_gl_context_destroy (int glContext);
-	public static final native int gdk_gl_context_get_current ();
-	public static final native int gdk_gl_context_get_gl_drawable (int glContext);
-	public static final native boolean gdk_gl_drawable_gl_begin (int glDrawable, int glContext);
-	public static final native void gdk_gl_drawable_gl_end (int glDrawable);
-	public static final native void gdk_gl_drawable_make_current (int glDrawable, int glContext);
-	public static final native void gdk_gl_drawable_swap_buffers (int glDrawable);
-	public static final native void gdk_gl_font_use_pango_font (int font_desc, int first, int count, int list_base);
-	public static final native void gtk_gl_init (int argc, int argv);
-	public static final native int gtk_widget_create_gl_context (int widget, int share_list, boolean direct, int render_type);
-	public static final native int gtk_widget_get_gl_context (int widget);
-	public static final native int gtk_widget_get_gl_drawable (int widget);
-	public static final native int gtk_widget_get_gl_window (int widget);
-	public static final native boolean gtk_widget_set_gl_capability (int widget, int glconfig, int share_list, boolean direct, int render_type);
-	public static final int GDK_GL_MODE_DEPTH = 1 << 4;
-	public static final int GDK_GL_MODE_DOUBLE = 1 << 1;
-	public static final int GDK_GL_MODE_INDEX = 1 << 0;
-	public static final int GDK_GL_MODE_RGB = 0;
-	public static final int GDK_GL_MODE_RGBA = 0;
-	public static final int GDK_GL_RGBA_TYPE = 0x8014;
-}
diff --git a/bundles/org.eclipse.swt.opengl/motif/gl_library/build.csh b/bundles/org.eclipse.swt.opengl/motif/gl_library/build.csh
deleted file mode 100644
index dd0b6d9..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/gl_library/build.csh
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.swt.opengl/motif/gl_library/glx.c b/bundles/org.eclipse.swt.opengl/motif/gl_library/glx.c
deleted file mode 100644
index 4fca4eb..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/gl_library/glx.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-#include <GL/glx.h>
-#include "swt.h"
-#include "structs.h"
-
-#define XGL_NATIVE(func) Java_org_eclipse_swt_opengl_internal_motif_XGL_##func
-
-JNIEXPORT jint JNICALL XGL_NATIVE(glXChooseVisual)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)
-{
-	jint *lparg2=NULL;
-	jint rc;
-
-	DEBUG_CALL("glXChooseVisual\n")
-
-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);
-	rc = (jint)glXChooseVisual((Display *)arg0, arg1, (int *)lparg2);
-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);
-	return rc;
-}
-
-JNIEXPORT void JNICALL XGL_NATIVE(glXCopyContext)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
-{
-	DEBUG_CALL("glXCopyContext\n")
-
-	glXCopyContext((Display *)arg0, (GLXContext)arg1, (GLXContext)arg2, arg3);
-}
-
-JNIEXPORT jint JNICALL XGL_NATIVE(glXCreateContext)
-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2, jboolean arg3)
-{
-	XVisualInfo _arg1, *lparg1=NULL;
-	jint rc;
-
-	DEBUG_CALL("glXCreateContext\n")
-
-	if (arg1) lparg1 = getXVisualInfoFields(env, arg1, &_arg1);
-	rc = (jint)glXCreateContext((Display *)arg0, lparg1, (GLXContext)arg2, arg3);
-	if (arg1) setXVisualInfoFields(env, arg1, lparg1);
-	return rc;
-}
-
-JNIEXPORT jint JNICALL XGL_NATIVE(glXCreateGLXPixmap)
-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)
-{
-	XVisualInfo _arg1, *lparg1=NULL;
-	jint rc;
-
-	DEBUG_CALL("glXCreateGLXPixmap\n")
-
-	if (arg1) lparg1 = getXVisualInfoFields(env, arg1, &_arg1);
-	rc = (jint)glXCreateGLXPixmap((Display *)arg0, lparg1, arg2);
-	if (arg1) setXVisualInfoFields(env, arg1, lparg1);
-	return rc;
-}
-
-JNIEXPORT void JNICALL XGL_NATIVE(glXDestroyContext)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1)
-{
-	DEBUG_CALL("glXDestroyContext\n")
-
-	glXDestroyContext((Display *)arg0, (GLXContext)arg1);
-}
-
-JNIEXPORT void JNICALL XGL_NATIVE(glXDestroyGLXPixmap)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1)
-{
-	DEBUG_CALL("glXDestroyGLXPixmap\n")
-
-	glXDestroyGLXPixmap((Display *)arg0, arg1);
-}
-
-JNIEXPORT jint JNICALL XGL_NATIVE(glXGetClientString)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1)
-{
-	DEBUG_CALL("glXGetClientString\n")
-
-	return (jint)glXGetClientString((Display *)arg0, arg1);
-}
-
-JNIEXPORT jint JNICALL XGL_NATIVE(glXGetConfig)
-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2, jintArray arg3)
-{
-	XVisualInfo _arg1, *lparg1=NULL;
-	jint *lparg3=NULL;
-	jint rc;
-
-	DEBUG_CALL("glXGetConfig\n")
-
-	if (arg1) lparg1 = getXVisualInfoFields(env, arg1, &_arg1);
-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);
-	rc = (jint)glXGetConfig((Display *)arg0, lparg1, arg2, (int *)lparg3);
-	if (arg1) setXVisualInfoFields(env, arg1, lparg1);
-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);
-	return rc;
-}
-
-JNIEXPORT jint JNICALL XGL_NATIVE(glXGetCurrentContext)
-	(JNIEnv *env, jclass that)
-{
-	DEBUG_CALL("glXGetCurrentContext\n")
-
-	return (jint)glXGetCurrentContext();
-}
-
-JNIEXPORT jint JNICALL XGL_NATIVE(glXGetCurrentDrawable)
-	(JNIEnv *env, jclass that)
-{
-	DEBUG_CALL("glXGetCurrentDrawable\n")
-
-	return (jint)glXGetCurrentDrawable();
-}
-
-JNIEXPORT jboolean JNICALL XGL_NATIVE(glXIsDirect)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1)
-{
-	DEBUG_CALL("glXIsDirect\n")
-
-	return (jboolean)glXIsDirect((Display *)arg0, (GLXContext)arg1);
-}
-
-JNIEXPORT jboolean JNICALL XGL_NATIVE(glXMakeCurrent)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
-{
-	DEBUG_CALL("glXMakeCurrent\n")
-
-	return (jboolean)glXMakeCurrent((Display *)arg0, (GLXDrawable)arg1, (GLXContext)arg2);
-}
-
-JNIEXPORT jboolean JNICALL XGL_NATIVE(glXQueryExtension)
-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2)
-{
-	jint *lparg1=NULL;
-	jint *lparg2=NULL;
-	jboolean rc;
-
-	DEBUG_CALL("glXQueryExtension\n")
-
-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);
-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);
-	rc = (jboolean)glXQueryExtension((Display *)arg0, (int *)lparg1, (int *)lparg2);
-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);
-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);
-	return rc;
-}
-
-JNIEXPORT jint JNICALL XGL_NATIVE(glXQueryExtensionsString)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1)
-{
-	DEBUG_CALL("glXQueryExtensionsString\n")
-
-	return (jint)glXQueryExtensionsString((Display *)arg0, arg1);
-}
-
-JNIEXPORT jint JNICALL XGL_NATIVE(glXQueryServerString)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
-{
-	DEBUG_CALL("glXQueryServerString\n")
-
-	return (jint)glXQueryServerString((Display *)arg0, arg1, arg2);
-}
-
-JNIEXPORT jboolean JNICALL XGL_NATIVE(glXQueryVersion)
-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2)
-{
-	jint *lparg1=NULL;
-	jint *lparg2=NULL;
-	jboolean rc;
-
-	DEBUG_CALL("glXQueryVersion\n")
-
-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);
-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);
-	rc = (jboolean)glXQueryVersion((Display *)arg0, (int *)lparg1, (int *)lparg2);
-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);
-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);
-	return rc;
-}
-
-JNIEXPORT void JNICALL XGL_NATIVE(glXSwapBuffers)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1)
-{
-	DEBUG_CALL("glXSwapBuffers\n")
-
-	glXSwapBuffers((Display *)arg0, (GLXDrawable)arg1);
-}
-
-JNIEXPORT void JNICALL XGL_NATIVE(glXUseXFont)
-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
-{
-	DEBUG_CALL("glXUseXFont\n")
-
-	glXUseXFont(arg0, arg1, arg2, arg3);
-}
-
-JNIEXPORT void JNICALL XGL_NATIVE(glXWaitGL)
-	(JNIEnv *env, jclass that)
-{
-	DEBUG_CALL("glXWaitGL\n")
-
-	glXWaitGL();
-}
-
-JNIEXPORT void JNICALL XGL_NATIVE(glXWaitX)
-	(JNIEnv *env, jclass that)
-{
-	DEBUG_CALL("glXWaitX\n")
-
-	glXWaitX();
-}
-
-JNIEXPORT void JNICALL XGL_NATIVE(memmove__Lorg_eclipse_swt_opengl_internal_motif_XVisualInfo_2II)
-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)
-{
-	XVisualInfo _arg0, *lparg0=NULL;
-
-	DEBUG_CALL("memmove__Lorg_eclipse_swt_opengl_internal_motif_XVisualInfo_2II\n")
-
-	if (arg0) lparg0 = &_arg0;
-	memmove((void *)lparg0, (const void *)arg1, (size_t)arg2);
-	if (arg0) setXVisualInfoFields(env, arg0, lparg0);
-}
diff --git a/bundles/org.eclipse.swt.opengl/motif/gl_library/make_aix.mak b/bundles/org.eclipse.swt.opengl/motif/gl_library/make_aix.mak
deleted file mode 100644
index 6928cab..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/gl_library/make_aix.mak
+++ /dev/null
@@ -1,40 +0,0 @@
-#*******************************************************************************
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#*******************************************************************************
-
-# Define the installation directories for various products.
-#    JAVA_HOME  - The JDK > 1.3
-JAVA_HOME   = /usr/java131
-
-# Define the various shared libraries to be made.
-SWT_PREFIX   = swt
-WS_PREFIX    = motif
-SWT_DLL      = lib$(SWT_PREFIX)-$(WS_PREFIX).so
-SWT_OBJ      = gl.o glu.o structs.o glx.o
-SWT_LIB      = -G -bnoentry -lc_r -lC_r -lm -bexpall -lMrm -lX11 -lXext -liconv -lGL -lGLU
-
-#
-# The following CFLAGS are for compiling the SWT OpenGL library.
-#
-CFLAGS = -O -s \
-	-DAIX \
-	-DNO_XINERAMA_EXTENSIONS \
-	-q mbcs -qlanglvl=extended -qmaxmem=8192 \
-	-I$(JAVA_HOME)/include
-
-all: make_swt
-
-make_swt: $(SWT_DLL)
-
-$(SWT_DLL): $(SWT_OBJ)
-	ld $(SWT_LIB) -o $(SWT_DLL) $(SWT_OBJ)
-
-clean:
-	rm -f *.o *.so *.a
diff --git a/bundles/org.eclipse.swt.opengl/motif/gl_library/make_hpux.mak b/bundles/org.eclipse.swt.opengl/motif/gl_library/make_hpux.mak
deleted file mode 100644
index 16648de..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/gl_library/make_hpux.mak
+++ /dev/null
@@ -1,44 +0,0 @@
-#*******************************************************************************
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#*******************************************************************************
-
-# Define the installation directories for various products.
-JAVA_HOME  = /opt/java1.3
-
-# Define the various shared libraries to be made.
-SWT_PREFIX   = gl
-WS_PREFIX    = motif
-SWT_DLL      = lib$(SWT_PREFIX)-$(WS_PREFIX).sl
-SWT_OBJ      = gl.o glu.o structs.o glx.o
-SWT_LIB      = -L/usr/lib -L/opt/graphics/OpenGL/lib -G -lGL -lGLU -lc -ldld -lm
-
-#
-# The following CFLAGS are for compiling the SWT OpenGL library.
-#
-# Note:
-#   The flag -xarch=generic ensure the compiled modules will be targeted
-#   for 32-bit architectures. If this flag is not
-#
-CFLAGS = -Ae +z \
-	-DNO_XINERAMA_EXTENSIONS \
-	-D_HPUX -D_POSIX_C_SOURCE=199506L \
-	-I./ \
-	-I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/hp-ux \
-	-I/opt/graphics/OpenGL/include
-
-all: make_swt
-
-make_swt: $(SWT_DLL)
-
-$(SWT_DLL): $(SWT_OBJ)
-	ld -b -z -o $@ $(SWT_OBJ) $(SWT_LIB)
-
-clean:
-	rm -f *.sl *.o
diff --git a/bundles/org.eclipse.swt.opengl/motif/gl_library/make_linux.mak b/bundles/org.eclipse.swt.opengl/motif/gl_library/make_linux.mak
deleted file mode 100644
index 755895f..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/gl_library/make_linux.mak
+++ /dev/null
@@ -1,38 +0,0 @@
-#*******************************************************************************
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#*******************************************************************************
-
-# Define the installation directories for various products.
-JAVA_HOME   = /bluebird/teamswt/swt-builddir/ive/bin
-
-
-# Define the various shared libraries to be made.
-SWT_PREFIX   = gl
-WS_PREFIX    = motif
-SWT_DLL      = lib$(SWT_PREFIX)-$(WS_PREFIX).so
-SWT_OBJ      = gl.o glu.o structs.o glx.o
-SWT_LIB      = -shared -L/usr/X11R6/lib -lGL -lGLU -lm
-
-#
-# The following CFLAGS are for compiling the SWT OpenGL library.
-#
-CFLAGS = -O -s \
-	-I./ \
-	-I$(JAVA_HOME)/include
-
-all: make_swt
-
-make_swt: $(SWT_DLL)
-
-$(SWT_DLL): $(SWT_OBJ)
-	ld -o $@ $(SWT_OBJ) $(SWT_LIB)
-
-clean:
-	rm -f *.so *.o
diff --git a/bundles/org.eclipse.swt.opengl/motif/gl_library/make_solaris.mak b/bundles/org.eclipse.swt.opengl/motif/gl_library/make_solaris.mak
deleted file mode 100644
index 1b08b07..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/gl_library/make_solaris.mak
+++ /dev/null
@@ -1,45 +0,0 @@
-#*******************************************************************************
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#*******************************************************************************
-
-# Define the installation directories for various products.
-JAVA_HOME   = /bluebird/teamswt/swt-builddir/ive/bin
-
-# Define the various shared libraries to be made.
-SWT_PREFIX   = gl
-WS_PREFIX    = motif
-SWT_DLL      = lib$(SWT_PREFIX)-$(WS_PREFIX).so
-SWT_OBJ      = gl.o glu.o structs.o glx.o
-SWT_LIB      = -G -L/usr/lib -lm -lGL -lGLU
-
-#
-# The following CFLAGS are for compiling the SWT OpenGL library.
-#
-# Note:
-#   The flag -xarch=generic ensure the compiled modules will be targeted
-#   for 32-bit architectures.
-#
-CFLAGS = -O -s \
-	-xarch=generic \
-	-KPIC \
-	-I./ \
-	-I$(JAVA_HOME)/include
-
-all: make_swt
-
-make_swt: $(SWT_DLL)
-
-$(SWT_DLL): $(SWT_OBJ)
-	ld -o $@ $(SWT_OBJ) $(SWT_LIB)
-
-clean:
-	rm -f *.so *.o
-
-
diff --git a/bundles/org.eclipse.swt.opengl/motif/gl_library/structs.c b/bundles/org.eclipse.swt.opengl/motif/gl_library/structs.c
deleted file mode 100644
index 368852d..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/gl_library/structs.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-#include <X11/X.h>

-#include <X11/Xlib.h>

-#include "swt.h"

-#include "structs.h"

-

-typedef struct XVisualInfo_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID visual, visualid, screen, depth, cclass, red_mask, green_mask, blue_mask, colormap_size, bits_per_rgb;

-} XVisualInfo_FID_CACHE;

-typedef XVisualInfo_FID_CACHE *PXVisualInfo_FID_CACHE;

-

-XVisualInfo_FID_CACHE XVisualInfoFc;

-

-void cacheXVisualInfoFids(JNIEnv *env, jobject lpObject, PXVisualInfo_FID_CACHE lpCache)

-{

-	if (lpCache->cached) return;

-	lpCache->clazz = (*env)->GetObjectClass(env, lpObject);

-	lpCache->visual = (*env)->GetFieldID(env, lpCache->clazz, "visual", "I");

-	lpCache->visualid = (*env)->GetFieldID(env, lpCache->clazz, "visualid", "I");

-	lpCache->screen = (*env)->GetFieldID(env, lpCache->clazz, "screen", "I");

-	lpCache->depth = (*env)->GetFieldID(env, lpCache->clazz, "depth", "I");

-	lpCache->cclass = (*env)->GetFieldID(env, lpCache->clazz, "cclass", "I");

-	lpCache->red_mask = (*env)->GetFieldID(env, lpCache->clazz, "red_mask", "I");

-	lpCache->green_mask = (*env)->GetFieldID(env, lpCache->clazz, "green_mask", "I");

-	lpCache->blue_mask = (*env)->GetFieldID(env, lpCache->clazz, "blue_mask", "I");

-	lpCache->colormap_size = (*env)->GetFieldID(env, lpCache->clazz, "colormap_size", "I");

-	lpCache->bits_per_rgb = (*env)->GetFieldID(env, lpCache->clazz, "bits_per_rgb", "I");

-	lpCache->cached = 1;

-}

-

-XVisualInfo *getXVisualInfoFields(JNIEnv *env, jobject lpObject, XVisualInfo *lpStruct)

-{

-	PXVisualInfo_FID_CACHE lpCache = &XVisualInfoFc;

-	if (!lpCache->cached) cacheXVisualInfoFids(env, lpObject, lpCache);

-	lpStruct->visual = (Visual *)(*env)->GetIntField(env, lpObject, lpCache->visual);

-	lpStruct->visualid = (*env)->GetIntField(env, lpObject, lpCache->visualid);

-	lpStruct->screen = (*env)->GetIntField(env, lpObject, lpCache->screen);

-	lpStruct->depth = (*env)->GetIntField(env, lpObject, lpCache->depth);

-	lpStruct->class = (*env)->GetIntField(env, lpObject, lpCache->cclass);

-	lpStruct->red_mask = (*env)->GetIntField(env, lpObject, lpCache->red_mask);

-	lpStruct->green_mask = (*env)->GetIntField(env, lpObject, lpCache->green_mask);

-	lpStruct->blue_mask = (*env)->GetIntField(env, lpObject, lpCache->blue_mask);

-	lpStruct->colormap_size = (*env)->GetIntField(env, lpObject, lpCache->colormap_size);

-	lpStruct->bits_per_rgb = (*env)->GetIntField(env, lpObject, lpCache->bits_per_rgb);

-	return lpStruct;

-}

-

-void setXVisualInfoFields(JNIEnv *env, jobject lpObject, XVisualInfo *lpStruct)

-{

-	PXVisualInfo_FID_CACHE lpCache = &XVisualInfoFc;

-	if (!lpCache->cached) cacheXVisualInfoFids(env, lpObject, lpCache);

-	(*env)->SetIntField(env, lpObject, lpCache->visual, (jint)lpStruct->visual);

-	(*env)->SetIntField(env, lpObject, lpCache->visualid, (jint)lpStruct->visualid);

-	(*env)->SetIntField(env, lpObject, lpCache->screen, (jint)lpStruct->screen);

-	(*env)->SetIntField(env, lpObject, lpCache->depth, (jint)lpStruct->depth);

-	(*env)->SetIntField(env, lpObject, lpCache->cclass, (jint)lpStruct->class);

-	(*env)->SetIntField(env, lpObject, lpCache->red_mask, (jint)lpStruct->red_mask);

-	(*env)->SetIntField(env, lpObject, lpCache->green_mask, (jint)lpStruct->green_mask);

-	(*env)->SetIntField(env, lpObject, lpCache->blue_mask, (jint)lpStruct->blue_mask);

-	(*env)->SetIntField(env, lpObject, lpCache->colormap_size, (jint)lpStruct->colormap_size);

-	(*env)->SetIntField(env, lpObject, lpCache->bits_per_rgb, (jint)lpStruct->bits_per_rgb);

-}

diff --git a/bundles/org.eclipse.swt.opengl/motif/gl_library/structs.h b/bundles/org.eclipse.swt.opengl/motif/gl_library/structs.h
deleted file mode 100644
index 8079149..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/gl_library/structs.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-#include <X11/X.h>

-#include <X11/Xutil.h>

-

-XVisualInfo *getXVisualInfoFields(JNIEnv *env, jobject lpObject, XVisualInfo *lpStruct);

-void setXVisualInfoFields(JNIEnv *env, jobject lpObject, XVisualInfo *lpStruct);

-

diff --git a/bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/GLContext.java b/bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/GLContext.java
deleted file mode 100644
index 8bab074..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/GLContext.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.internal.motif.*;
-import org.eclipse.swt.opengl.internal.motif.*;
-
-/**
- * Instances of <code>GLContext</code> are used to draw on swt <code>Drawable</code>s 
- * through invocations of provided OpenGL functions.
- * <p>
- * Application code must explicitly invoke the <code>GLContext.dispose ()</code> 
- * method to release the operating system resources managed by each instance
- * when those instances are no longer required. This is <em>particularly</em>
- * important on Windows95 and Windows98 where the operating system has a limited
- * number of device contexts available.
- * </p>
- */
-public class GLContext {
-	int handle;
-	int gc;
-	GCData data;
-	Drawable drawable;
-	int selectBufferPtr = 0;
-
-	static final int MSB_FIRST = 1;
-	static final int LSB_FIRST = 2;
-
-	/**
-	 * Constructs a new instance of this class which has been
-	 * configured to draw on the specified drawable.
-	 * <p>
-	 * You must dispose the <code>GLContext</code> when it is no longer required. 
-	 * </p>
-	 * 
-	 * @param drawable the drawable to draw on
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the drawable is null</li>
-	 * </ul>
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_NO_HANDLES if a handle could not be obtained for gc creation</li>
-	 *    <li>ERROR_UNSUPPORTED_DEPTH - if the current display depth is not supported</li>
-	 * </ul>
-	 */
-	public GLContext (Drawable drawable) {
-		if (drawable == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-		this.drawable = drawable;
-		this.data = new GCData ();
-		gc = drawable.internal_new_GC (data);
-		if (gc == 0) SWT.error (SWT.ERROR_NO_HANDLES);
-		int xDisplay = data.display;
-		int screen = OS.XDefaultScreen (xDisplay);
-		int depth = OS.XDefaultDepthOfScreen (OS.XDefaultScreenOfDisplay (xDisplay));
-		int attrib [] = {
-			XGL.GLX_LEVEL,
-			0,
-			XGL.GLX_RGBA,
-			XGL.GLX_DOUBLEBUFFER,
-			XGL.GLX_DEPTH_SIZE,
-			depth,
-			0
-		};
-		int infoPtr = XGL.glXChooseVisual (xDisplay, screen, attrib);
-		if (infoPtr == 0) SWT.error (SWT.ERROR_UNSUPPORTED_DEPTH);
-		XVisualInfo info = new XVisualInfo ();
-		XGL.memmove (info, infoPtr, XVisualInfo.sizeof);
-		OS.XFree (infoPtr);
-		handle = XGL.glXCreateContext (xDisplay, info, 0, false);
-		if (handle == 0) SWT.error (SWT.ERROR_NO_HANDLES);
-	}
-	
-	public ImageData convertImageData (ImageData source) {
-		PaletteData palette = new PaletteData (0xff0000, 0xff00, 0xff);
-		ImageData newSource = new ImageData (source.width, source.height, 24, palette);
-		ImageDataUtil.blit (
-			1,
-			source.data,
-			source.depth,
-			source.bytesPerLine,
-			(source.depth != 16) ? MSB_FIRST : LSB_FIRST,
-			0,
-			0,
-			source.width,
-			source.height,
-			source.palette.redMask,
-			source.palette.greenMask,
-			source.palette.blueMask,
-			255,
-			null,
-			0,
-			0,
-			0,
-			newSource.data,
-			newSource.depth,
-			newSource.bytesPerLine,
-			(newSource.depth != 16) ? MSB_FIRST : LSB_FIRST,
-			0,
-			0,
-			newSource.width,
-			newSource.height,
-			newSource.palette.redMask,
-			newSource.palette.greenMask,
-			newSource.palette.blueMask,
-			false,
-			true);
-
-		return newSource;
-	}
-
-	/**
-	 * Disposes of the operating system resources associated with
-	 * the receiver. Applications must dispose of all <code>GLContext</code>s
-	 * that they allocate.
-	 */
-	public void dispose () {
-		if (handle == 0) return;
-		int xDisplay = data.display;
-		if (XGL.glXGetCurrentContext () == handle) {
-			XGL.glXMakeCurrent (xDisplay, 0, 0);
-		}
-		if (selectBufferPtr != 0) OS.XtFree (selectBufferPtr);
-		XGL.glXDestroyContext (xDisplay, handle);
-		handle = 0;
-		// drawable may be disposed
-		try {
-			drawable.internal_dispose_GC (gc, data);
-		} catch (SWTException e) {
-		}
-		gc = 0;
-		data.display = data.drawable = data.colormap = 0;
-		data.fontList = data.clipRgn = data.renderTable = 0;
-		drawable = null;
-		data.device = null;
-		data.image = null;
-		data.codePage = null;
-		data = null;
-	}
-
-	public int[] getSelectBuffer (int selectBufferPtr, int[] selectBuffer) {
-		OS.memmove (selectBuffer, selectBufferPtr, selectBuffer.length * 4);
-		return selectBuffer;
-	}
-
-	public int getSelectBufferPtr (int[] selectBuffer) {
-		if (selectBufferPtr == 0) {
-			selectBufferPtr = OS.XtMalloc (selectBuffer.length * 4);
-		}
-		OS.memmove (selectBufferPtr, selectBuffer, selectBuffer.length * 4);
-		return selectBufferPtr;
-	}
-
-	/**
-	 * Returns a boolean indicating whether the receiver is the current
-	 * <code>GLContext</code>.
-	 *  
-	 * @return true if the receiver is the current <code>GLContext</code>,
-	 * false otherwise
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_GRAPHIC_DISPOSED if the receiver is disposed</li>
-	 * </ul>
-	 */
-	public boolean isCurrent () {
-		if (isDisposed ()) 	SWT.error (SWT.ERROR_GRAPHIC_DISPOSED);
-		return XGL.glXGetCurrentContext () == handle;
-	}
-
-	/**
-	 * Returns a boolean indicating whether the <code>GLContext</code> has been
-	 * disposed.
-	 * <p>
-	 * This method gets the dispose state for the <code>GLContext</code>.
-	 * When a <code>GLContext</code> has been disposed, it is an error to
-	 * invoke any other method using the <code>GLContext</code>.
-	 *
-	 * @return true if the <code>GLContext</code> is disposed, false otherwise
-	 */
-	public boolean isDisposed () {
-		return handle == 0;
-	}
-
-	/**
-	 * Loads the specified bitmap font.
-	 * 
-	 * @param fdata
-	 * @param device
-	 * @param base
-	 * @param first
-	 * @param count
-	 */
-	public void loadBitmapFont (FontData fdata, Device device, int base, int startIndex, int length) {
-		/* Temporaly code, due some problems when running on UTF-8 loadBitmapFont ()
-		 * is restrict to works only for ascii. 
-		 * Note: en_US.ISO8859-1 also code be used.
-		 */
-		fdata.setLocale ("C");
-		Font font = new Font (device, fdata);
-		int fontList = font.handle;
-		int[] buffer = new int [1];
-		if (!OS.XmFontListInitFontContext (buffer, fontList)) return;
-		int context = buffer [0];
-		XFontStruct fontStruct = new XFontStruct ();
-		int fontListEntry;
-		int[] fontStructPtr = new int [1];
-		int[] fontNamePtr = new int [1];
-		int xfont = 0;
-		// go through each entry in the font list
-		while ((fontListEntry = OS.XmFontListNextEntry (context)) != 0) {
-			int fontPtr = OS.XmFontListEntryGetFont (fontListEntry, buffer);
-			if (buffer [0] == OS.XmFONT_IS_FONT) {
-				// FontList contains a single font
-				OS.memmove (fontStruct, fontPtr, 20 * 4);
-				xfont = fontStruct.fid;
-			} else {
-				// FontList contains a fontSet
-				int nFonts = OS.XFontsOfFontSet (fontPtr, fontStructPtr, fontNamePtr);
-				int[] fontStructs = new int [nFonts];
-				OS.memmove (fontStructs, fontStructPtr [0], nFonts * 4);
-				// Go through each fontStruct in the font set.
-				for (int i = 0; i < nFonts; i++) {
-					OS.memmove (fontStruct, fontStructs [i], XFontStruct.sizeof);
-					xfont = fontStruct.fid;
-				}
-			}
-		}
-		if (xfont != 0) {
-			XGL.glXUseXFont (xfont, startIndex, length, base);
-		}
-		font.dispose ();
-		OS.XmFontListFreeFontContext (context);
-	}
-
-	/**
-	 * Loads the specified outline font.
-	 * 
-	 * @param fdata
-	 * @param device
-	 * @param base
-	 * @param first
-	 * @param count
-	 * @param deviation
-	 * @param extrusion
-	 * @param format
-	 * @param lpgmf
-	 */
-	public void loadOutlineFont (FontData fdata, Device device, int base, int first,
-	int count, float deviation, float extrusion, int format, GLYPHMETRICSFLOAT[] lpgmf) {
-		// stub
-	}
-
-	/**
-	 * Resizes the receiver.
-	 * 
-	 * @param x
-	 * @param y
-	 * @param width
-	 * @param height
-	 */
-	public void resize (int x, int y, int width, int height) {
-		if (height == 0) height = 1;
-		GL.glViewport (x, y, width, height);
-		GL.glMatrixMode (GL.GL_PROJECTION);
-		GL.glLoadIdentity ();
-		GLU.gluPerspective (45.0f, (float) width / (float) height, 0.1f, 100.0f);
-		GL.glMatrixMode (GL.GL_MODELVIEW);
-		GL.glLoadIdentity ();
-	}
-
-	/**
-	 * Sets the receiver to be the current <code>GLContext</code>.
-	 * 
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_GRAPHIC_DISPOSED if the receiver is disposed</li>
-	 * </ul>
-	 */
-	public void setCurrent () {
-		if (isDisposed ()) SWT.error (SWT.ERROR_GRAPHIC_DISPOSED);
-		if (XGL.glXGetCurrentContext () == handle) return;
-		XGL.glXMakeCurrent (data.display, data.drawable, handle);
-	}
-
-	/**
-	 * Swaps the receiver's buffers.
-	 * 
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_GRAPHIC_DISPOSED if the receiver is disposed</li>
-	 * </ul>
-	 */
-	public void swapBuffers () {
-		if (isDisposed ()) SWT.error (SWT.ERROR_GRAPHIC_DISPOSED);
-		XGL.glXSwapBuffers (data.display, data.drawable);
-	}
-}
diff --git a/bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/internal/motif/XGL.java b/bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/internal/motif/XGL.java
deleted file mode 100644
index ce3705a..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/internal/motif/XGL.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.internal.motif;
-
-import org.eclipse.swt.opengl.Library;
-
-public class XGL {
-	
-static {
-	Library.loadLibrary("gl");
-}
-
-public static final int GLX_VERSION_1_1 = 1;
-public static final int GLX_VERSION_1_2 = 1;
-public static final int GLX_VERSION_1_3 = 1;
-
-/*
-** Visual Config Attributes (glXGetConfig, glXGetFBConfigAttrib)
-*/
-public static final int GLX_USE_GL		= 1;	/* support GLX rendering */
-public static final int GLX_BUFFER_SIZE		= 2;	/* depth of the color buffer */
-public static final int GLX_LEVEL		= 3;	/* level in plane stacking */
-public static final int GLX_RGBA		= 4;	/* true if RGBA mode */
-public static final int GLX_DOUBLEBUFFER	= 5;	/* double buffering supported */
-public static final int GLX_STEREO		= 6;	/* stereo buffering supported */
-public static final int GLX_AUX_BUFFERS		= 7;	/* number of aux buffers */
-public static final int GLX_RED_SIZE		= 8;	/* number of red component bits */
-public static final int GLX_GREEN_SIZE		= 9;	/* number of green component bits */
-public static final int GLX_BLUE_SIZE		= 10;	/* number of blue component bits */
-public static final int GLX_ALPHA_SIZE		= 11;	/* number of alpha component bits */
-public static final int GLX_DEPTH_SIZE		= 12;	/* number of depth bits */
-public static final int GLX_STENCIL_SIZE	= 13;	/* number of stencil bits */
-public static final int GLX_ACCUM_RED_SIZE	= 14;	/* number of red accum bits */
-public static final int GLX_ACCUM_GREEN_SIZE	= 15;	/* number of green accum bits */
-public static final int GLX_ACCUM_BLUE_SIZE	= 16;	/* number of blue accum bits */
-public static final int GLX_ACCUM_ALPHA_SIZE	= 17;	/* number of alpha accum bits */
-/*
-** FBConfig-specific attributes
-*/
-public static final int GLX_X_VISUAL_TYPE		= 0x22;
-public static final int GLX_CONFIG_CAVEAT		= 0x20;	/* Like visual_info VISUAL_CAVEAT_EXT */
-public static final int GLX_TRANSPARENT_TYPE		= 0x23;
-public static final int GLX_TRANSPARENT_INDEX_VALUE	= 0x24;
-public static final int GLX_TRANSPARENT_RED_VALUE	= 0x25;
-public static final int GLX_TRANSPARENT_GREEN_VALUE	= 0x26;
-public static final int GLX_TRANSPARENT_BLUE_VALUE	= 0x27;
-public static final int GLX_TRANSPARENT_ALPHA_VALUE	= 0x28;
-public static final int GLX_DRAWABLE_TYPE		= 0x8010;
-public static final int GLX_RENDER_TYPE			= 0x8011;
-public static final int GLX_X_RENDERABLE		= 0x8012;
-public static final int GLX_FBCONFIG_ID			= 0x8013;
-public static final int GLX_MAX_PBUFFER_WIDTH		= 0x8016;
-public static final int GLX_MAX_PBUFFER_HEIGHT		= 0x8017;
-public static final int GLX_MAX_PBUFFER_PIXELS		= 0x8018;
-public static final int GLX_VISUAL_ID			= 0x800B;
-
-/*
-** Error return values from glXGetConfig.  Success is indicated by
-** a value of 0.
-*/
-public static final int GLX_BAD_SCREEN		= 1;	/* screen # is bad */
-public static final int GLX_BAD_ATTRIBUTE	= 2;	/* attribute to get is bad */
-public static final int GLX_NO_EXTENSION	= 3;	/* no glx extension on server */
-public static final int GLX_BAD_VISUAL		= 4;	/* visual # not known by GLX */
-public static final int GLX_BAD_CONTEXT		= 5;	/* returned only by import_context EXT? */
-public static final int GLX_BAD_VALUE		= 6;	/* returned only by glXSwapIntervalSGI? */
-public static final int GLX_BAD_ENUM		= 7;	/* unused? */
-
-/* FBConfig attribute values */
-
-/*
-** Generic "don't care" value for glX ChooseFBConfig attributes (except
-** GLX_LEVEL)
-*/
-public static final int GLX_DONT_CARE			= 0xFFFFFFFF;
-
-/* GLX_RENDER_TYPE bits */
-public static final int GLX_RGBA_BIT			= 0x00000001;
-public static final int GLX_COLOR_INDEX_BIT		= 0x00000002;
-
-/* GLX_DRAWABLE_TYPE bits */
-public static final int GLX_WINDOW_BIT			= 0x00000001;
-public static final int GLX_PIXMAP_BIT			= 0x00000002;
-public static final int GLX_PBUFFER_BIT			= 0x00000004;
-
-/* GLX_CONFIG_CAVEAT attribute values */
-public static final int GLX_NONE			= 0x8000;
-public static final int GLX_SLOW_CONFIG			= 0x8001;
-public static final int GLX_NON_CONFORMANT_CONFIG	= 0x800D;
-
-/* GLX_X_VISUAL_TYPE attribute values */
-public static final int GLX_TRUE_COLOR			= 0x8002;
-public static final int GLX_DIRECT_COLOR		= 0x8003;
-public static final int GLX_PSEUDO_COLOR		= 0x8004;
-public static final int GLX_STATIC_COLOR		= 0x8005;
-public static final int GLX_GRAY_SCALE			= 0x8006;
-public static final int GLX_STATIC_GRAY			= 0x8007;
-
-/* GLX_TRANSPARENT_TYPE attribute values */
-/* public static final int GLX_NONE			   0x8000 */
-public static final int GLX_TRANSPARENT_RGB		= 0x8008;
-public static final int GLX_TRANSPARENT_INDEX		= 0x8009;
-
-/* glXCreateGLXPbuffer attributes */
-public static final int GLX_PRESERVED_CONTENTS		= 0x801B;
-public static final int GLX_LARGEST_PBUFFER		= 0x801C;
-public static final int GLX_PBUFFER_HEIGHT		= 0x8040;	/* New for GLX 1.3 */
-public static final int GLX_PBUFFER_WIDTH		= 0x8041;	/* New for GLX 1.3 */
-
-/* glXQueryGLXPBuffer attributes */
-public static final int GLX_WIDTH			= 0x801D;
-public static final int GLX_HEIGHT			= 0x801E;
-public static final int GLX_EVENT_MASK			= 0x801F;
-
-/* glXCreateNewContext render_type attribute values */
-public static final int GLX_RGBA_TYPE			= 0x8014;
-public static final int GLX_COLOR_INDEX_TYPE		= 0x8015;
-
-/* glXQueryContext attributes */
-/* public static final int GLX_FBCONFIG_ID		  0x8013 */
-/* public static final int GLX_RENDER_TYPE		  0x8011 */
-public static final int GLX_SCREEN			= 0x800C;
-
-/* glXSelectEvent event mask bits */
-public static final int GLX_PBUFFER_CLOBBER_MASK	= 0x08000000;
-
-/* GLXPbufferClobberEvent event_type values */
-public static final int GLX_DAMAGED			= 0x8020;
-public static final int GLX_SAVED			= 0x8021;
-
-/* GLXPbufferClobberEvent draw_type values */
-public static final int GLX_WINDOW			= 0x8022;
-public static final int GLX_PBUFFER			= 0x8023;
-
-/* GLXPbufferClobberEvent buffer_mask bits */
-public static final int GLX_FRONT_LEFT_BUFFER_BIT	= 0x00000001;
-public static final int GLX_FRONT_RIGHT_BUFFER_BIT	= 0x00000002;
-public static final int GLX_BACK_LEFT_BUFFER_BIT	= 0x00000004;
-public static final int GLX_BACK_RIGHT_BUFFER_BIT	= 0x00000008;
-public static final int GLX_AUX_BUFFERS_BIT		= 0x00000010;
-public static final int GLX_DEPTH_BUFFER_BIT		= 0x00000020;
-public static final int GLX_STENCIL_BUFFER_BIT		= 0x00000040;
-public static final int GLX_ACCUM_BUFFER_BIT		= 0x00000080;
-
-/*
-** Extension return values from glXGetConfig.  These are also
-** accepted as parameter values for glXChooseVisual.
-*/
-
-public static final int GLX_X_VISUAL_TYPE_EXT	= 0x22;	/* visual_info extension type */
-public static final int GLX_TRANSPARENT_TYPE_EXT = 0x23;	/* visual_info extension */
-public static final int GLX_TRANSPARENT_INDEX_VALUE_EXT = 0x24;	/* visual_info extension */
-public static final int GLX_TRANSPARENT_RED_VALUE_EXT	= 0x25;	/* visual_info extension */
-public static final int GLX_TRANSPARENT_GREEN_VALUE_EXT = 0x26;	/* visual_info extension */
-public static final int GLX_TRANSPARENT_BLUE_VALUE_EXT	= 0x27;	/* visual_info extension */
-public static final int GLX_TRANSPARENT_ALPHA_VALUE_EXT = 0x28;	/* visual_info extension */
-
-/* Property values for visual_type */
-public static final int GLX_TRUE_COLOR_EXT	= 0x8002;
-public static final int GLX_DIRECT_COLOR_EXT	= 0x8003;
-public static final int GLX_PSEUDO_COLOR_EXT	= 0x8004;
-public static final int GLX_STATIC_COLOR_EXT	= 0x8005;
-public static final int GLX_GRAY_SCALE_EXT	= 0x8006;
-public static final int GLX_STATIC_GRAY_EXT	= 0x8007;
-
-/* Property values for transparent pixel */
-public static final int GLX_NONE_EXT		= 0x8000;
-public static final int GLX_TRANSPARENT_RGB_EXT		= 0x8008;
-public static final int GLX_TRANSPARENT_INDEX_EXT	= 0x8009;
-
-/* Property values for visual_rating */
-public static final int GLX_VISUAL_CAVEAT_EXT		= 0x20;  /* visual_rating extension type */
-public static final int GLX_SLOW_VISUAL_EXT		= 0x8001;
-public static final int GLX_NON_CONFORMANT_VISUAL_EXT	= 0x800D;
-
-/*
-** Names for attributes to glXGetClientString.
-*/
-public static final int GLX_VENDOR		= 0x1;
-public static final int GLX_VERSION		= 0x2;
-public static final int GLX_EXTENSIONS		= 0x3;
-
-/*
-** Names for attributes to glXQueryContextInfoEXT.
-*/
-public static final int GLX_SHARE_CONTEXT_EXT	= 0x800A;	/* id of share context */
-public static final int GLX_VISUAL_ID_EXT	= 0x800B;	/* id of context's visual */
-public static final int GLX_SCREEN_EXT		= 0x800C;	/* screen number */
-
-/* GLX Extension Strings */
-public static final int GLX_EXT_import_context	= 1;
-public static final int GLX_EXT_visual_info	= 1;
-public static final int GLX_EXT_visual_rating	= 1;
-public static final int GLX_ARB_get_proc_address = 1;
-
-public static final native int glXChooseVisual(int dpy, int screen, int[] attribList);
-public static final native void glXCopyContext(int dpy, int src, int dst, int mask);
-//public static final native int glXCreateContext(int dpy, int vis, int shareList, boolean direct);
-public static final native int glXCreateContext(int dpy, XVisualInfo vis, int shareList, boolean direct);
-public static final native int glXCreateGLXPixmap(int dpy, XVisualInfo vis, int pixmap);
-public static final native void glXDestroyContext(int dpy, int ctx);
-public static final native void glXDestroyGLXPixmap(int dpy, int pix);
-public static final native int glXGetConfig(int dpy, XVisualInfo vis, int attrib, int[] value);
-public static final native int glXGetCurrentContext();
-public static final native int glXGetCurrentDrawable();
-public static final native boolean glXIsDirect(int dpy, int ctx);
-public static final native boolean glXMakeCurrent(int dpy, int drawable, int ctx);
-public static final native boolean glXQueryExtension(int dpy, int[] errorBase, int[] eventBase);
-public static final native boolean glXQueryVersion(int dpy, int[] major, int[] minor);
-public static final native void glXSwapBuffers(int dpy, int drawable);
-public static final native void glXUseXFont(int font, int first, int count, int listBase);
-public static final native void glXWaitGL();
-public static final native void glXWaitX();
-public static final native int glXGetClientString(int dpy, int name);
-public static final native int glXQueryServerString(int dpy, int screen, int name);
-public static final native int glXQueryExtensionsString(int dpy, int screen);
-public static final native void memmove(XVisualInfo dest, int src, int size);
-
-}
diff --git a/bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/internal/motif/XVisualInfo.java b/bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/internal/motif/XVisualInfo.java
deleted file mode 100644
index d6cba4a..0000000
--- a/bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/internal/motif/XVisualInfo.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.internal.motif;
-
- 
-public class XVisualInfo {
-	public int visual;
-	public int visualid;
-	public int screen;
-	public int depth;
-	public int cclass;
-	public int red_mask, green_mask, blue_mask;
-	public int colormap_size;
-	public int bits_per_rgb;
-	public static final int sizeof = 40;
-}
diff --git a/bundles/org.eclipse.swt.opengl/plugin.properties b/bundles/org.eclipse.swt.opengl/plugin.properties
deleted file mode 100644
index 72fe2d9..0000000
--- a/bundles/org.eclipse.swt.opengl/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Standard Widget Toolkit OpenGL Bindings
-providerName = Eclipse.org
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.opengl/plugin.xml b/bundles/org.eclipse.swt.opengl/plugin.xml
deleted file mode 100644
index 0e85963..0000000
--- a/bundles/org.eclipse.swt.opengl/plugin.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-   id="org.eclipse.swt.opengl"
-   name="%pluginName"
-   version="2.1.0"
-   provider-name="%providerName">
-
-   <runtime>
-      <library name="$ws$/swt.jar">
-         <export name="*"/>
-         <packages prefixes="org.eclipse.swt.opengl"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.swt"/>
-   </requires>
-
-
-</plugin>
diff --git a/bundles/org.eclipse.swt.opengl/win32/gl_library/build.bat b/bundles/org.eclipse.swt.opengl/win32/gl_library/build.bat
deleted file mode 100644
index 7f34398..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/gl_library/build.bat
+++ /dev/null
@@ -1,34 +0,0 @@
-rem *******************************************************************************

-rem  Copyright (c) 2000, 2003 IBM Corporation and others.

-rem  All rights reserved. This program and the accompanying materials 

-rem  are made available under the terms of the Common Public License v1.0

-rem  which accompanies this distribution, and is available at

-rem  http://www.eclipse.org/legal/cpl-v10.html

-rem  

-rem  Contributors:

-rem      IBM Corporation - initial API and implementation

-rem *******************************************************************************

-

-@echo off

-

-IF NOT "%JAVA_HOME%"=="" GOTO MAKE

-

-rem *****

-rem Javah

-rem *****

-set JAVA_HOME=j:\teamswt\swt-builddir\ive\bin

-set path=%JAVA_HOME%;%path%

-

-rem ********

-rem MSVC 6.0

-rem ********

-call k:\dev\products\msvc60\vc98\bin\vcvars32.bat

-

-rem ****** 

-rem MS-SDK

-rem ******

-set Mssdk=j:\teamswt\swt-builddir\mssdk

-call %mssdk%\setenv.bat

-

-:MAKE

-nmake -f make_win32.mak %1 %2 %3 %4

diff --git a/bundles/org.eclipse.swt.opengl/win32/gl_library/glw.c b/bundles/org.eclipse.swt.opengl/win32/gl_library/glw.c
deleted file mode 100644
index ebe0238..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/gl_library/glw.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-#include <windows.h>

-#include <wingdi.h>

-#include "jni.h"

-#include "swt.h"

-#include "structs.h"

-

-#define WGL_NATIVE(func) Java_org_eclipse_swt_opengl_internal_win32_WGL_##func

-

-JNIEXPORT jint JNICALL WGL_NATIVE(ChoosePixelFormat)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	PIXELFORMATDESCRIPTOR _arg1, *lparg1=NULL;

-	jint rc;

-

-	DEBUG_CALL("ChoosePixelFormat\n")

-

-	if (arg1) lparg1 = getPIXELFORMATDESCRIPTORFields(env, arg1, &_arg1);

-	rc = (jint)ChoosePixelFormat((HDC)arg0, (CONST PIXELFORMATDESCRIPTOR *)lparg1);

-	if (arg1) setPIXELFORMATDESCRIPTORFields(env, arg1, lparg1);

-	return rc;

-}

-

-JNIEXPORT jint JNICALL WGL_NATIVE(DescribePixelFormat)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	PIXELFORMATDESCRIPTOR _arg3, *lparg3=NULL;

-	jint rc;

-

-	DEBUG_CALL("DescribePixelFormat\n")

-

-	if (arg3) lparg3 = getPIXELFORMATDESCRIPTORFields(env, arg3, &_arg3);

-	rc = (jint)DescribePixelFormat((HDC)arg0, arg1, arg2, (LPPIXELFORMATDESCRIPTOR)lparg3);

-	if (arg3) setPIXELFORMATDESCRIPTORFields(env, arg3, lparg3);

-	return rc;

-}

-

-JNIEXPORT jint JNICALL WGL_NATIVE(GetPixelFormat)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("GetPixelFormat\n")

-

-	return (jint)GetPixelFormat((HDC)arg0);

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(SetPixelFormat)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	PIXELFORMATDESCRIPTOR _arg2, *lparg2=NULL;

-	jboolean rc;

-

-	DEBUG_CALL("SetPixelFormat\n")

-

-	if (arg2) lparg2 = getPIXELFORMATDESCRIPTORFields(env, arg2, &_arg2);

-	rc = (jboolean)SetPixelFormat((HDC)arg0, arg1, (CONST PIXELFORMATDESCRIPTOR *)lparg2);

-	if (arg2) setPIXELFORMATDESCRIPTORFields(env, arg2, lparg2);

-	return rc;

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(SwapBuffers)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("SwapBuffers\n")

-

-	return (jboolean)SwapBuffers((HDC)arg0);

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglCopyContext)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	DEBUG_CALL("wglCopyContext\n")

-

-	return (jboolean)wglCopyContext((HGLRC)arg0, (HGLRC)arg1, (UINT)arg2);

-}

-

-JNIEXPORT jint JNICALL WGL_NATIVE(wglCreateContext)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("wglCreateContext\n")

-

-	return (jint)wglCreateContext((HDC)arg0);

-}

-

-JNIEXPORT jint JNICALL WGL_NATIVE(wglCreateLayerContext)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("wglCreateLayerContext\n")

-

-	return (jint)wglCreateLayerContext((HDC)arg0, arg1);

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglDeleteContext)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	DEBUG_CALL("wglDeleteContext\n")

-

-	return (jboolean)wglDeleteContext((HGLRC)arg0);

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglDescribeLayerPlane)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jobject arg4)

-{

-	LAYERPLANEDESCRIPTOR _arg4, *lparg4=NULL;

-	jboolean rc;

-

-	DEBUG_CALL("wglDescribeLayerPlane\n")

-

-	if (arg4) lparg4 = getLAYERPLANEDESCRIPTORFields(env, arg4, &_arg4);

-	rc = (jboolean)wglDescribeLayerPlane((HDC)arg0, arg1, arg2, arg3, (LPLAYERPLANEDESCRIPTOR)lparg4);

-	if (arg4) setLAYERPLANEDESCRIPTORFields(env, arg4, lparg4);

-	return rc;

-}

-

-JNIEXPORT jint JNICALL WGL_NATIVE(wglGetCurrentContext)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("wglGetCurrentContext\n")

-

-	return (jint)wglGetCurrentContext();

-}

-

-JNIEXPORT jint JNICALL WGL_NATIVE(wglGetCurrentDC)

-	(JNIEnv *env, jclass that)

-{

-	DEBUG_CALL("wglGetCurrentDC\n")

-

-	return (jint)wglGetCurrentDC();

-}

-

-JNIEXPORT jint JNICALL WGL_NATIVE(wglGetLayerPaletteEntries)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)

-{

-	jint *lparg4=NULL;

-	jint rc;

-

-	DEBUG_CALL("wglGetLayerPaletteEntries\n")

-

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	rc = (jint)wglGetLayerPaletteEntries((HDC)arg0, arg1, arg2, arg3, (COLORREF *)lparg4);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-	return rc;

-}

-

-JNIEXPORT jint JNICALL WGL_NATIVE(wglGetProcAddress)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-	jint rc;

-

-	DEBUG_CALL("wglGetProcAddress\n")

-

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	rc = (jint)wglGetProcAddress((LPCSTR)lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	return rc;

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglMakeCurrent)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("wglMakeCurrent\n")

-

-	return (jboolean)wglMakeCurrent((HDC)arg0, (HGLRC)arg1);

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglRealizeLayerPalette)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2)

-{

-	DEBUG_CALL("wglRealizeLayerPalette\n")

-

-	return (jboolean)wglRealizeLayerPalette((HDC)arg0, arg1, (BOOL)arg2);

-}

-

-JNIEXPORT jint JNICALL WGL_NATIVE(wglSetLayerPaletteEntries)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)

-{

-	jint *lparg4=NULL;

-	jint rc;

-

-	DEBUG_CALL("wglSetLayerPaletteEntries\n")

-

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	rc = (jint)wglSetLayerPaletteEntries((HDC)arg0, arg1, arg2, arg3, (CONST COLORREF *)lparg4);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-	return rc;

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglShareLists)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("wglShareLists\n")

-

-	return (jboolean)wglShareLists((HGLRC)arg0, (HGLRC)arg1);

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglSwapLayerBuffers)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	DEBUG_CALL("wglSwapLayerBuffers\n")

-

-	return (jboolean)wglSwapLayerBuffers((HDC)arg0, arg1);

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontBitmapsA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("wglUseFontBitmapsA\n")

-

-	return (jboolean)wglUseFontBitmapsA((HDC)arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontBitmapsW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	DEBUG_CALL("wglUseFontBitmapsW\n")

-

-	return (jboolean)wglUseFontBitmapsW((HDC)arg0, arg1, arg2, arg3);

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontOutlinesA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jfloat arg4, jfloat arg5, jint arg6, jobject arg7)

-{

-//	GLYPHMETRICSFLOAT _arg7, *lparg7=NULL;

-	jboolean rc;

-

-	DEBUG_CALL("wglUseFontOutlinesA\n")

-

-//	if (arg7) lparg7 = getGLYPHMETRICSFLOATFields(env, arg7, &_arg7);

-	rc = (jboolean)wglUseFontOutlinesA((HDC)arg0, arg1, arg2, arg3, (FLOAT)arg4, (FLOAT)arg5, arg6, (LPGLYPHMETRICSFLOAT)arg7);

-//	if (arg7) setGLYPHMETRICSFLOATFields(env, arg7, lparg7);

-	return rc;

-}

-

-JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontOutlinesW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jfloat arg4, jfloat arg5, jint arg6, jobject arg7)

-{

-//	GLYPHMETRICSFLOAT _arg7, *lparg7=NULL;

-	jboolean rc;

-

-	DEBUG_CALL("wglUseFontOutlinesW\n")

-

-//	if (arg7) lparg7 = getGLYPHMETRICSFLOATFields(env, arg7, &_arg7);

-	rc = (jboolean)wglUseFontOutlinesW((HDC)arg0, arg1, arg2, arg3, (FLOAT)arg4, (FLOAT)arg5, arg6, (LPGLYPHMETRICSFLOAT)arg7);

-//	if (arg7) setGLYPHMETRICSFLOATFields(env, arg7, lparg7);

-	return rc;

-}

-

-JNIEXPORT void JNICALL WGL_NATIVE(MoveMemoryW__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	GLYPHMETRICSFLOAT _arg0, *lparg0=NULL;

-

-	DEBUG_CALL("MoveMemoryW__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II\n")

-	DEBUG_CHECK_NULL(env, arg1)

-	

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setGLYPHMETRICSFLOATFields(env, arg0, lparg0);

-}

-

-JNIEXPORT void JNICALL WGL_NATIVE(MoveMemoryA__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	GLYPHMETRICSFLOAT _arg0, *lparg0=NULL;

-

-	DEBUG_CALL("MoveMemoryA__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II\n")

-	DEBUG_CHECK_NULL(env, arg1)

-	

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setGLYPHMETRICSFLOATFields(env, arg0, lparg0);

-}

-

-

diff --git a/bundles/org.eclipse.swt.opengl/win32/gl_library/make_win32.mak b/bundles/org.eclipse.swt.opengl/win32/gl_library/make_win32.mak
deleted file mode 100644
index 30df1a6..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/gl_library/make_win32.mak
+++ /dev/null
@@ -1,56 +0,0 @@
-#*******************************************************************************

-# Copyright (c) 2000, 2003 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials 

-# are made available under the terms of the Common Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/cpl-v10.html

-# 

-# Contributors:

-#     IBM Corporation - initial API and implementation

-#*******************************************************************************

-

-# assumes JAVA_HOME is set in the environment from which nmake is run

-

-APPVER=5.0

-!include <win32.mak>

-

-pgm_ver_str="SWT $(maj_ver).$(min_ver) for Windows"

-timestamp_str=__DATE__\" \"__TIME__\" (EST)\"

-copyright = "Copyright (C) 1999, 2003 IBM Corp.  All rights reserved."

-

-SWT_PREFIX=gl

-WS_PREFIX=win32

-SWT_LIB     = $(SWT_PREFIX)-$(WS_PREFIX).dll

-

-LINK_LIBS = opengl32.lib glu32.lib gdi32.lib

-

-# note: thoroughly test all examples after changing any optimization flags

-SWT_CDEBUG = #-Zi -Odi

-SWT_LDEBUG = #/DEBUG /DEBUGTYPE:both

-CFLAGS = -c -W3 -G6 -GD -O1 $(SWT_CDEBUG) -nologo -D_X86_=1 -D_WIN32 -D_WIN95 -D_WIN32_WINDOWS=0x0400 -D_MT -MT -DWIN32 -D_WIN32_DCOM /I$(JAVA_HOME)\include /I.

-RCFLAGS = -DSWT_COMMA_VERSION=$(comma_ver)

-LFLAGS = /INCREMENTAL:NO /PDB:NONE /RELEASE /NOLOGO $(SWT_LDEBUG) -entry:_DllMainCRTStartup@12 -dll /BASE:0x10000000 /comment:$(pgm_ver_str) /comment:$(copyright) /DLL

-

-SWT_OBJS = gl.obj glu.obj glw.obj structs.obj

-

-all: $(SWT_LIB)

-

-.c.obj:

-	cl $(CFLAGS) $*.c

-

-$(SWT_LIB): $(SWT_OBJS) swt.res

-	echo $(LFLAGS) >templrf

-	echo $(LINK_LIBS) >>templrf

-	echo -machine:IX86 >>templrf

-	echo -subsystem:windows >>templrf

-	echo -out:$(SWT_LIB) >>templrf

-	echo $(SWT_OBJS) >>templrf

-	echo swt.res >>templrf

-	link @templrf

-	del templrf

-	

-swt.res:

-	rc $(RCFLAGS) -DSWT_ORG_FILENAME=\"$(SWT_LIB)\" -r -fo swt.res swt.rc

-	

-clean:

-    del *.obj *.res *.dll *.lib *.exp

diff --git a/bundles/org.eclipse.swt.opengl/win32/gl_library/structs.c b/bundles/org.eclipse.swt.opengl/win32/gl_library/structs.c
deleted file mode 100644
index 7c1c26e..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/gl_library/structs.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-

-#include "swt.h"

-#include "structs.h"

-

-typedef struct GLYPHMETRICSFLOAT_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID gmfCellIncY, gmfCellIncX, gmfptGlyphOrigin_y, gmfptGlyphOrigin_x, gmfBlackBoxY, gmfBlackBoxX;

-} GLYPHMETRICSFLOAT_FID_CACHE;

-typedef GLYPHMETRICSFLOAT_FID_CACHE *PGLYPHMETRICSFLOAT_FID_CACHE;

-

-GLYPHMETRICSFLOAT_FID_CACHE GLYPHMETRICSFLOATFc;

-

-void cacheGLYPHMETRICSFLOATFids(JNIEnv *env, jobject lpObject, PGLYPHMETRICSFLOAT_FID_CACHE lpCache)

-{

-	if (lpCache->cached) return;

-	lpCache->clazz = (*env)->GetObjectClass(env, lpObject);

-	lpCache->gmfCellIncY = (*env)->GetFieldID(env, lpCache->clazz, "gmfCellIncY", "F");

-	lpCache->gmfCellIncX = (*env)->GetFieldID(env, lpCache->clazz, "gmfCellIncX", "F");

-	lpCache->gmfptGlyphOrigin_y = (*env)->GetFieldID(env, lpCache->clazz, "gmfptGlyphOrigin_y", "F");

-	lpCache->gmfptGlyphOrigin_x = (*env)->GetFieldID(env, lpCache->clazz, "gmfptGlyphOrigin_x", "F");

-	lpCache->gmfBlackBoxY = (*env)->GetFieldID(env, lpCache->clazz, "gmfBlackBoxY", "F");

-	lpCache->gmfBlackBoxX = (*env)->GetFieldID(env, lpCache->clazz, "gmfBlackBoxX", "F");

-	lpCache->cached = 1;

-}

-

-GLYPHMETRICSFLOAT *getGLYPHMETRICSFLOATFields(JNIEnv *env, jobject lpObject, GLYPHMETRICSFLOAT *lpStruct)

-{

-	PGLYPHMETRICSFLOAT_FID_CACHE lpCache = &GLYPHMETRICSFLOATFc;

-	if (!lpCache->cached) cacheGLYPHMETRICSFLOATFids(env, lpObject, lpCache);

-	lpStruct->gmfCellIncY = (*env)->GetFloatField(env, lpObject, lpCache->gmfCellIncY);

-	lpStruct->gmfCellIncX = (*env)->GetFloatField(env, lpObject, lpCache->gmfCellIncX);

-	lpStruct->gmfptGlyphOrigin.y = (*env)->GetFloatField(env, lpObject, lpCache->gmfptGlyphOrigin_y);

-	lpStruct->gmfptGlyphOrigin.x = (*env)->GetFloatField(env, lpObject, lpCache->gmfptGlyphOrigin_x);

-	lpStruct->gmfBlackBoxY = (*env)->GetFloatField(env, lpObject, lpCache->gmfBlackBoxY);

-	lpStruct->gmfBlackBoxX = (*env)->GetFloatField(env, lpObject, lpCache->gmfBlackBoxX);

-	return lpStruct;

-}

-

-void setGLYPHMETRICSFLOATFields(JNIEnv *env, jobject lpObject, GLYPHMETRICSFLOAT *lpStruct)

-{

-	PGLYPHMETRICSFLOAT_FID_CACHE lpCache = &GLYPHMETRICSFLOATFc;

-	if (!lpCache->cached) cacheGLYPHMETRICSFLOATFids(env, lpObject, lpCache);

-	(*env)->SetFloatField(env, lpObject, lpCache->gmfCellIncY, (jfloat)lpStruct->gmfCellIncY);

-	(*env)->SetFloatField(env, lpObject, lpCache->gmfCellIncX, (jfloat)lpStruct->gmfCellIncX);

-	(*env)->SetFloatField(env, lpObject, lpCache->gmfptGlyphOrigin_y, (jfloat)lpStruct->gmfptGlyphOrigin.y);

-	(*env)->SetFloatField(env, lpObject, lpCache->gmfptGlyphOrigin_x, (jfloat)lpStruct->gmfptGlyphOrigin.x);

-	(*env)->SetFloatField(env, lpObject, lpCache->gmfBlackBoxY, (jfloat)lpStruct->gmfBlackBoxY);

-	(*env)->SetFloatField(env, lpObject, lpCache->gmfBlackBoxX, (jfloat)lpStruct->gmfBlackBoxX);

-}

-

-typedef struct LAYERPLANEDESCRIPTOR_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID crTransparent, bReserved, iLayerPlane, cAuxBuffers, cStencilBits, cDepthBits, cAccumAlphaBits, cAccumBlueBits, cAccumGreenBits, cAccumRedBits, cAccumBits, cAlphaShift, cAlphaBits, cBlueShift, cBlueBits, cGreenShift, cGreenBits, cRedShift, cRedBits, cColorBits, iPixelType, dwFlags, nVersion, nSize;

-} LAYERPLANEDESCRIPTOR_FID_CACHE;

-typedef LAYERPLANEDESCRIPTOR_FID_CACHE *PLAYERPLANEDESCRIPTOR_FID_CACHE;

-

-LAYERPLANEDESCRIPTOR_FID_CACHE LAYERPLANEDESCRIPTORFc;

-

-void cacheLAYERPLANEDESCRIPTORFids(JNIEnv *env, jobject lpObject, PLAYERPLANEDESCRIPTOR_FID_CACHE lpCache)

-{

-	if (lpCache->cached) return;

-	lpCache->clazz = (*env)->GetObjectClass(env, lpObject);

-	lpCache->crTransparent = (*env)->GetFieldID(env, lpCache->clazz, "crTransparent", "I");

-	lpCache->bReserved = (*env)->GetFieldID(env, lpCache->clazz, "bReserved", "B");

-	lpCache->iLayerPlane = (*env)->GetFieldID(env, lpCache->clazz, "iLayerPlane", "B");

-	lpCache->cAuxBuffers = (*env)->GetFieldID(env, lpCache->clazz, "cAuxBuffers", "B");

-	lpCache->cStencilBits = (*env)->GetFieldID(env, lpCache->clazz, "cStencilBits", "B");

-	lpCache->cDepthBits = (*env)->GetFieldID(env, lpCache->clazz, "cDepthBits", "B");

-	lpCache->cAccumAlphaBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumAlphaBits", "B");

-	lpCache->cAccumBlueBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumBlueBits", "B");

-	lpCache->cAccumGreenBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumGreenBits", "B");

-	lpCache->cAccumRedBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumRedBits", "B");

-	lpCache->cAccumBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumBits", "B");

-	lpCache->cAlphaShift = (*env)->GetFieldID(env, lpCache->clazz, "cAlphaShift", "B");

-	lpCache->cAlphaBits = (*env)->GetFieldID(env, lpCache->clazz, "cAlphaBits", "B");

-	lpCache->cBlueShift = (*env)->GetFieldID(env, lpCache->clazz, "cBlueShift", "B");

-	lpCache->cBlueBits = (*env)->GetFieldID(env, lpCache->clazz, "cBlueBits", "B");

-	lpCache->cGreenShift = (*env)->GetFieldID(env, lpCache->clazz, "cGreenShift", "B");

-	lpCache->cGreenBits = (*env)->GetFieldID(env, lpCache->clazz, "cGreenBits", "B");

-	lpCache->cRedShift = (*env)->GetFieldID(env, lpCache->clazz, "cRedShift", "B");

-	lpCache->cRedBits = (*env)->GetFieldID(env, lpCache->clazz, "cRedBits", "B");

-	lpCache->cColorBits = (*env)->GetFieldID(env, lpCache->clazz, "cColorBits", "B");

-	lpCache->iPixelType = (*env)->GetFieldID(env, lpCache->clazz, "iPixelType", "B");

-	lpCache->dwFlags = (*env)->GetFieldID(env, lpCache->clazz, "dwFlags", "I");

-	lpCache->nVersion = (*env)->GetFieldID(env, lpCache->clazz, "nVersion", "S");

-	lpCache->nSize = (*env)->GetFieldID(env, lpCache->clazz, "nSize", "S");

-	lpCache->cached = 1;

-}

-

-LAYERPLANEDESCRIPTOR *getLAYERPLANEDESCRIPTORFields(JNIEnv *env, jobject lpObject, LAYERPLANEDESCRIPTOR *lpStruct)

-{

-	PLAYERPLANEDESCRIPTOR_FID_CACHE lpCache = &LAYERPLANEDESCRIPTORFc;

-	if (!lpCache->cached) cacheLAYERPLANEDESCRIPTORFids(env, lpObject, lpCache);

-	lpStruct->crTransparent = (*env)->GetIntField(env, lpObject, lpCache->crTransparent);

-	lpStruct->bReserved = (*env)->GetByteField(env, lpObject, lpCache->bReserved);

-	lpStruct->iLayerPlane = (*env)->GetByteField(env, lpObject, lpCache->iLayerPlane);

-	lpStruct->cAuxBuffers = (*env)->GetByteField(env, lpObject, lpCache->cAuxBuffers);

-	lpStruct->cStencilBits = (*env)->GetByteField(env, lpObject, lpCache->cStencilBits);

-	lpStruct->cDepthBits = (*env)->GetByteField(env, lpObject, lpCache->cDepthBits);

-	lpStruct->cAccumAlphaBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumAlphaBits);

-	lpStruct->cAccumBlueBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumBlueBits);

-	lpStruct->cAccumGreenBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumGreenBits);

-	lpStruct->cAccumRedBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumRedBits);

-	lpStruct->cAccumBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumBits);

-	lpStruct->cAlphaShift = (*env)->GetByteField(env, lpObject, lpCache->cAlphaShift);

-	lpStruct->cAlphaBits = (*env)->GetByteField(env, lpObject, lpCache->cAlphaBits);

-	lpStruct->cBlueShift = (*env)->GetByteField(env, lpObject, lpCache->cBlueShift);

-	lpStruct->cBlueBits = (*env)->GetByteField(env, lpObject, lpCache->cBlueBits);

-	lpStruct->cGreenShift = (*env)->GetByteField(env, lpObject, lpCache->cGreenShift);

-	lpStruct->cGreenBits = (*env)->GetByteField(env, lpObject, lpCache->cGreenBits);

-	lpStruct->cRedShift = (*env)->GetByteField(env, lpObject, lpCache->cRedShift);

-	lpStruct->cRedBits = (*env)->GetByteField(env, lpObject, lpCache->cRedBits);

-	lpStruct->cColorBits = (*env)->GetByteField(env, lpObject, lpCache->cColorBits);

-	lpStruct->iPixelType = (*env)->GetByteField(env, lpObject, lpCache->iPixelType);

-	lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, lpCache->dwFlags);

-	lpStruct->nVersion = (*env)->GetShortField(env, lpObject, lpCache->nVersion);

-	lpStruct->nSize = (*env)->GetShortField(env, lpObject, lpCache->nSize);

-	return lpStruct;

-}

-

-void setLAYERPLANEDESCRIPTORFields(JNIEnv *env, jobject lpObject, LAYERPLANEDESCRIPTOR *lpStruct)

-{

-	PLAYERPLANEDESCRIPTOR_FID_CACHE lpCache = &LAYERPLANEDESCRIPTORFc;

-	if (!lpCache->cached) cacheLAYERPLANEDESCRIPTORFids(env, lpObject, lpCache);

-	(*env)->SetIntField(env, lpObject, lpCache->crTransparent, (jint)lpStruct->crTransparent);

-	(*env)->SetByteField(env, lpObject, lpCache->bReserved, (jbyte)lpStruct->bReserved);

-	(*env)->SetByteField(env, lpObject, lpCache->iLayerPlane, (jbyte)lpStruct->iLayerPlane);

-	(*env)->SetByteField(env, lpObject, lpCache->cAuxBuffers, (jbyte)lpStruct->cAuxBuffers);

-	(*env)->SetByteField(env, lpObject, lpCache->cStencilBits, (jbyte)lpStruct->cStencilBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cDepthBits, (jbyte)lpStruct->cDepthBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAccumAlphaBits, (jbyte)lpStruct->cAccumAlphaBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAccumBlueBits, (jbyte)lpStruct->cAccumBlueBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAccumGreenBits, (jbyte)lpStruct->cAccumGreenBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAccumRedBits, (jbyte)lpStruct->cAccumRedBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAccumBits, (jbyte)lpStruct->cAccumBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAlphaShift, (jbyte)lpStruct->cAlphaShift);

-	(*env)->SetByteField(env, lpObject, lpCache->cAlphaBits, (jbyte)lpStruct->cAlphaBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cBlueShift, (jbyte)lpStruct->cBlueShift);

-	(*env)->SetByteField(env, lpObject, lpCache->cBlueBits, (jbyte)lpStruct->cBlueBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cGreenShift, (jbyte)lpStruct->cGreenShift);

-	(*env)->SetByteField(env, lpObject, lpCache->cGreenBits, (jbyte)lpStruct->cGreenBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cRedShift, (jbyte)lpStruct->cRedShift);

-	(*env)->SetByteField(env, lpObject, lpCache->cRedBits, (jbyte)lpStruct->cRedBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cColorBits, (jbyte)lpStruct->cColorBits);

-	(*env)->SetByteField(env, lpObject, lpCache->iPixelType, (jbyte)lpStruct->iPixelType);

-	(*env)->SetIntField(env, lpObject, lpCache->dwFlags, (jint)lpStruct->dwFlags);

-	(*env)->SetShortField(env, lpObject, lpCache->nVersion, (jshort)lpStruct->nVersion);

-	(*env)->SetShortField(env, lpObject, lpCache->nSize, (jshort)lpStruct->nSize);

-}

-

-typedef struct POINTFLOAT_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID y, x;

-} POINTFLOAT_FID_CACHE;

-typedef POINTFLOAT_FID_CACHE *PPOINTFLOAT_FID_CACHE;

-

-POINTFLOAT_FID_CACHE POINTFLOATFc;

-

-void cachePOINTFLOATFids(JNIEnv *env, jobject lpObject, PPOINTFLOAT_FID_CACHE lpCache)

-{

-	if (lpCache->cached) return;

-	lpCache->clazz = (*env)->GetObjectClass(env, lpObject);

-	lpCache->y = (*env)->GetFieldID(env, lpCache->clazz, "y", "F");

-	lpCache->x = (*env)->GetFieldID(env, lpCache->clazz, "x", "F");

-	lpCache->cached = 1;

-}

-

-POINTFLOAT *getPOINTFLOATFields(JNIEnv *env, jobject lpObject, POINTFLOAT *lpStruct)

-{

-	PPOINTFLOAT_FID_CACHE lpCache = &POINTFLOATFc;

-	if (!lpCache->cached) cachePOINTFLOATFids(env, lpObject, lpCache);

-	lpStruct->y = (*env)->GetFloatField(env, lpObject, lpCache->y);

-	lpStruct->x = (*env)->GetFloatField(env, lpObject, lpCache->x);

-	return lpStruct;

-}

-

-void setPOINTFLOATFields(JNIEnv *env, jobject lpObject, POINTFLOAT *lpStruct)

-{

-	PPOINTFLOAT_FID_CACHE lpCache = &POINTFLOATFc;

-	if (!lpCache->cached) cachePOINTFLOATFids(env, lpObject, lpCache);

-	(*env)->SetFloatField(env, lpObject, lpCache->y, (jfloat)lpStruct->y);

-	(*env)->SetFloatField(env, lpObject, lpCache->x, (jfloat)lpStruct->x);

-}

-

-typedef struct PIXELFORMATDESCRIPTOR_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID dwDamageMask, dwVisibleMask, dwLayerMask, bReserved, iLayerType, cAuxBuffers, cStencilBits, cDepthBits, cAccumAlphaBits, cAccumBlueBits, cAccumGreenBits, cAccumRedBits, cAccumBits, cAlphaShift, cAlphaBits, cBlueShift, cBlueBits, cGreenShift, cGreenBits, cRedShift, cRedBits, cColorBits, iPixelType, dwFlags, nVersion, nSize;

-} PIXELFORMATDESCRIPTOR_FID_CACHE;

-typedef PIXELFORMATDESCRIPTOR_FID_CACHE *PPIXELFORMATDESCRIPTOR_FID_CACHE;

-

-PIXELFORMATDESCRIPTOR_FID_CACHE PIXELFORMATDESCRIPTORFc;

-

-void cachePIXELFORMATDESCRIPTORFids(JNIEnv *env, jobject lpObject, PPIXELFORMATDESCRIPTOR_FID_CACHE lpCache)

-{

-	if (lpCache->cached) return;

-	lpCache->clazz = (*env)->GetObjectClass(env, lpObject);

-	lpCache->dwDamageMask = (*env)->GetFieldID(env, lpCache->clazz, "dwDamageMask", "I");

-	lpCache->dwVisibleMask = (*env)->GetFieldID(env, lpCache->clazz, "dwVisibleMask", "I");

-	lpCache->dwLayerMask = (*env)->GetFieldID(env, lpCache->clazz, "dwLayerMask", "I");

-	lpCache->bReserved = (*env)->GetFieldID(env, lpCache->clazz, "bReserved", "B");

-	lpCache->iLayerType = (*env)->GetFieldID(env, lpCache->clazz, "iLayerType", "B");

-	lpCache->cAuxBuffers = (*env)->GetFieldID(env, lpCache->clazz, "cAuxBuffers", "B");

-	lpCache->cStencilBits = (*env)->GetFieldID(env, lpCache->clazz, "cStencilBits", "B");

-	lpCache->cDepthBits = (*env)->GetFieldID(env, lpCache->clazz, "cDepthBits", "B");

-	lpCache->cAccumAlphaBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumAlphaBits", "B");

-	lpCache->cAccumBlueBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumBlueBits", "B");

-	lpCache->cAccumGreenBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumGreenBits", "B");

-	lpCache->cAccumRedBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumRedBits", "B");

-	lpCache->cAccumBits = (*env)->GetFieldID(env, lpCache->clazz, "cAccumBits", "B");

-	lpCache->cAlphaShift = (*env)->GetFieldID(env, lpCache->clazz, "cAlphaShift", "B");

-	lpCache->cAlphaBits = (*env)->GetFieldID(env, lpCache->clazz, "cAlphaBits", "B");

-	lpCache->cBlueShift = (*env)->GetFieldID(env, lpCache->clazz, "cBlueShift", "B");

-	lpCache->cBlueBits = (*env)->GetFieldID(env, lpCache->clazz, "cBlueBits", "B");

-	lpCache->cGreenShift = (*env)->GetFieldID(env, lpCache->clazz, "cGreenShift", "B");

-	lpCache->cGreenBits = (*env)->GetFieldID(env, lpCache->clazz, "cGreenBits", "B");

-	lpCache->cRedShift = (*env)->GetFieldID(env, lpCache->clazz, "cRedShift", "B");

-	lpCache->cRedBits = (*env)->GetFieldID(env, lpCache->clazz, "cRedBits", "B");

-	lpCache->cColorBits = (*env)->GetFieldID(env, lpCache->clazz, "cColorBits", "B");

-	lpCache->iPixelType = (*env)->GetFieldID(env, lpCache->clazz, "iPixelType", "B");

-	lpCache->dwFlags = (*env)->GetFieldID(env, lpCache->clazz, "dwFlags", "I");

-	lpCache->nVersion = (*env)->GetFieldID(env, lpCache->clazz, "nVersion", "S");

-	lpCache->nSize = (*env)->GetFieldID(env, lpCache->clazz, "nSize", "S");

-	lpCache->cached = 1;

-}

-

-PIXELFORMATDESCRIPTOR *getPIXELFORMATDESCRIPTORFields(JNIEnv *env, jobject lpObject, PIXELFORMATDESCRIPTOR *lpStruct)

-{

-	PPIXELFORMATDESCRIPTOR_FID_CACHE lpCache = &PIXELFORMATDESCRIPTORFc;

-	if (!lpCache->cached) cachePIXELFORMATDESCRIPTORFids(env, lpObject, lpCache);

-	lpStruct->dwDamageMask = (*env)->GetIntField(env, lpObject, lpCache->dwDamageMask);

-	lpStruct->dwVisibleMask = (*env)->GetIntField(env, lpObject, lpCache->dwVisibleMask);

-	lpStruct->dwLayerMask = (*env)->GetIntField(env, lpObject, lpCache->dwLayerMask);

-	lpStruct->bReserved = (*env)->GetByteField(env, lpObject, lpCache->bReserved);

-	lpStruct->iLayerType = (*env)->GetByteField(env, lpObject, lpCache->iLayerType);

-	lpStruct->cAuxBuffers = (*env)->GetByteField(env, lpObject, lpCache->cAuxBuffers);

-	lpStruct->cStencilBits = (*env)->GetByteField(env, lpObject, lpCache->cStencilBits);

-	lpStruct->cDepthBits = (*env)->GetByteField(env, lpObject, lpCache->cDepthBits);

-	lpStruct->cAccumAlphaBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumAlphaBits);

-	lpStruct->cAccumBlueBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumBlueBits);

-	lpStruct->cAccumGreenBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumGreenBits);

-	lpStruct->cAccumRedBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumRedBits);

-	lpStruct->cAccumBits = (*env)->GetByteField(env, lpObject, lpCache->cAccumBits);

-	lpStruct->cAlphaShift = (*env)->GetByteField(env, lpObject, lpCache->cAlphaShift);

-	lpStruct->cAlphaBits = (*env)->GetByteField(env, lpObject, lpCache->cAlphaBits);

-	lpStruct->cBlueShift = (*env)->GetByteField(env, lpObject, lpCache->cBlueShift);

-	lpStruct->cBlueBits = (*env)->GetByteField(env, lpObject, lpCache->cBlueBits);

-	lpStruct->cGreenShift = (*env)->GetByteField(env, lpObject, lpCache->cGreenShift);

-	lpStruct->cGreenBits = (*env)->GetByteField(env, lpObject, lpCache->cGreenBits);

-	lpStruct->cRedShift = (*env)->GetByteField(env, lpObject, lpCache->cRedShift);

-	lpStruct->cRedBits = (*env)->GetByteField(env, lpObject, lpCache->cRedBits);

-	lpStruct->cColorBits = (*env)->GetByteField(env, lpObject, lpCache->cColorBits);

-	lpStruct->iPixelType = (*env)->GetByteField(env, lpObject, lpCache->iPixelType);

-	lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, lpCache->dwFlags);

-	lpStruct->nVersion = (*env)->GetShortField(env, lpObject, lpCache->nVersion);

-	lpStruct->nSize = (*env)->GetShortField(env, lpObject, lpCache->nSize);

-	return lpStruct;

-}

-

-void setPIXELFORMATDESCRIPTORFields(JNIEnv *env, jobject lpObject, PIXELFORMATDESCRIPTOR *lpStruct)

-{

-	PPIXELFORMATDESCRIPTOR_FID_CACHE lpCache = &PIXELFORMATDESCRIPTORFc;

-	if (!lpCache->cached) cachePIXELFORMATDESCRIPTORFids(env, lpObject, lpCache);

-	(*env)->SetIntField(env, lpObject, lpCache->dwDamageMask, (jint)lpStruct->dwDamageMask);

-	(*env)->SetIntField(env, lpObject, lpCache->dwVisibleMask, (jint)lpStruct->dwVisibleMask);

-	(*env)->SetIntField(env, lpObject, lpCache->dwLayerMask, (jint)lpStruct->dwLayerMask);

-	(*env)->SetByteField(env, lpObject, lpCache->bReserved, (jbyte)lpStruct->bReserved);

-	(*env)->SetByteField(env, lpObject, lpCache->iLayerType, (jbyte)lpStruct->iLayerType);

-	(*env)->SetByteField(env, lpObject, lpCache->cAuxBuffers, (jbyte)lpStruct->cAuxBuffers);

-	(*env)->SetByteField(env, lpObject, lpCache->cStencilBits, (jbyte)lpStruct->cStencilBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cDepthBits, (jbyte)lpStruct->cDepthBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAccumAlphaBits, (jbyte)lpStruct->cAccumAlphaBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAccumBlueBits, (jbyte)lpStruct->cAccumBlueBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAccumGreenBits, (jbyte)lpStruct->cAccumGreenBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAccumRedBits, (jbyte)lpStruct->cAccumRedBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAccumBits, (jbyte)lpStruct->cAccumBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cAlphaShift, (jbyte)lpStruct->cAlphaShift);

-	(*env)->SetByteField(env, lpObject, lpCache->cAlphaBits, (jbyte)lpStruct->cAlphaBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cBlueShift, (jbyte)lpStruct->cBlueShift);

-	(*env)->SetByteField(env, lpObject, lpCache->cBlueBits, (jbyte)lpStruct->cBlueBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cGreenShift, (jbyte)lpStruct->cGreenShift);

-	(*env)->SetByteField(env, lpObject, lpCache->cGreenBits, (jbyte)lpStruct->cGreenBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cRedShift, (jbyte)lpStruct->cRedShift);

-	(*env)->SetByteField(env, lpObject, lpCache->cRedBits, (jbyte)lpStruct->cRedBits);

-	(*env)->SetByteField(env, lpObject, lpCache->cColorBits, (jbyte)lpStruct->cColorBits);

-	(*env)->SetByteField(env, lpObject, lpCache->iPixelType, (jbyte)lpStruct->iPixelType);

-	(*env)->SetIntField(env, lpObject, lpCache->dwFlags, (jint)lpStruct->dwFlags);

-	(*env)->SetShortField(env, lpObject, lpCache->nVersion, (jshort)lpStruct->nVersion);

-	(*env)->SetShortField(env, lpObject, lpCache->nSize, (jshort)lpStruct->nSize);

-}

-

diff --git a/bundles/org.eclipse.swt.opengl/win32/gl_library/structs.h b/bundles/org.eclipse.swt.opengl/win32/gl_library/structs.h
deleted file mode 100644
index 031dadf..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/gl_library/structs.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-#include <windows.h>

-

-GLYPHMETRICSFLOAT *getGLYPHMETRICSFLOATFields(JNIEnv *env, jobject lpObject, GLYPHMETRICSFLOAT *lpStruct);

-void setGLYPHMETRICSFLOATFields(JNIEnv *env, jobject lpObject, GLYPHMETRICSFLOAT *lpStruct);

-

-LAYERPLANEDESCRIPTOR *getLAYERPLANEDESCRIPTORFields(JNIEnv *env, jobject lpObject, LAYERPLANEDESCRIPTOR *lpStruct);

-void setLAYERPLANEDESCRIPTORFields(JNIEnv *env, jobject lpObject, LAYERPLANEDESCRIPTOR *lpStruct);

-

-POINTFLOAT *getPOINTFLOATFields(JNIEnv *env, jobject lpObject, POINTFLOAT *lpStruct);

-void setPOINTFLOATFields(JNIEnv *env, jobject lpObject, POINTFLOAT *lpStruct);

-

-PIXELFORMATDESCRIPTOR *getPIXELFORMATDESCRIPTORFields(JNIEnv *env, jobject lpObject, PIXELFORMATDESCRIPTOR *lpStruct);

-void setPIXELFORMATDESCRIPTORFields(JNIEnv *env, jobject lpObject, PIXELFORMATDESCRIPTOR *lpStruct);

-

diff --git a/bundles/org.eclipse.swt.opengl/win32/gl_library/swt.rc b/bundles/org.eclipse.swt.opengl/win32/gl_library/swt.rc
deleted file mode 100644
index 68b7074..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/gl_library/swt.rc
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
- 
-#include "windows.h"
-
-VS_VERSION_INFO VERSIONINFO
- PRODUCTVERSION 0,0,0,0
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x40000L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904b0"
-        BEGIN
-            VALUE "CompanyName", "IBM Corporation\0"
-            VALUE "FileDescription", "Standard Widget Toolkit\0"
-            VALUE "InternalName", "SWT\0"
-            VALUE "LegalCopyright", "© Copyright 2000, 2003 IBM Corp.  All Rights Reserved.\0"
-            VALUE "OriginalFilename", SWT_ORG_FILENAME
-            VALUE "ProductName", "\0"
-            VALUE "ProductVersion", "0,0,0,0\0"
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1200
-    END
-END
-
-/* SHMENUBAR Pocket PC 
- * ID_MENU SHMENUBAR DISCARDABLE
- * BEGIN
- * 	ID_MENU, 1,
- *  IMAGE_NONE, ID_MENU_ITEM1, 0, 0,
- *  0, 0, 0,
- * END
- * ID_MENU MENU DISCARDABLE
- * BEGIN
- *  MENUITEM "", ID_MENU_ITEM1
- * END
- */
-100 RCDATA DISCARDABLE 
-BEGIN
-    100, 1,
-    -2, 101, 0, 0, 
-    0, 0, 0,
-END
-
-100 MENU DISCARDABLE
-BEGIN
-	MENUITEM "", 101
-END
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/GLContext.java b/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/GLContext.java
deleted file mode 100644
index b2863df..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/GLContext.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.opengl.internal.win32.*;
-import org.eclipse.swt.internal.win32.*;
-
-/**
- * Instances of <code>GLContext</code> are used to draw on swt <code>Drawable</code>s 
- * through invocations of provided OpenGL functions.
- * <p>
- * Application code must explicitly invoke the <code>GLContext.dispose ()</code> 
- * method to release the operating system resources managed by each instance
- * when those instances are no longer required. This is <em>particularly</em>
- * important on Windows95 and Windows98 where the operating system has a limited
- * number of device contexts available.
- * </p>
- */
-public class GLContext {
-	int handle;
-	int hDC;
-	GCData data;
-	Drawable drawable;
-	int selectBufferPtr = 0;
-
-	static final int MSB_FIRST = 1;
-	static final int LSB_FIRST = 2;
-
-	/**
-	 * Constructs a new instance of this class which has been
-	 * configured to draw on the specified drawable.
-	 * <p>
-	 * You must dispose the <code>GLContext</code> when it is no longer required. 
-	 * </p>
-	 * 
-	 * @param drawable the drawable to draw on
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the drawable is null</li>
-	 * </ul>
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_NO_HANDLES if a handle could not be obtained for gc creation</li>
-	 *    <li>ERROR_UNSUPPORTED_DEPTH - if the current display depth is not supported</li>
-	 * </ul>
-	 */
-	public GLContext (Drawable drawable) {
-		if (drawable == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-		this.drawable = drawable;
-		this.data = new GCData ();
-		hDC = drawable.internal_new_GC (data);
-		if (hDC == 0) SWT.error (SWT.ERROR_NO_HANDLES);
-		int bits = OS.GetDeviceCaps (hDC, OS.BITSPIXEL);
-		int planes = OS.GetDeviceCaps (hDC, OS.PLANES);
-		int depth = bits * planes;
-		PIXELFORMATDESCRIPTOR pfd = new PIXELFORMATDESCRIPTOR ();
-		pfd.nSize = (short) PIXELFORMATDESCRIPTOR.sizeof;
-		pfd.nVersion = 1;
-		pfd.dwFlags =
-			WGL.PFD_DRAW_TO_WINDOW
-				| WGL.PFD_SUPPORT_OPENGL
-				| WGL.PFD_DOUBLEBUFFER;
-		pfd.dwLayerMask = WGL.PFD_MAIN_PLANE;
-		pfd.iPixelType = (byte) WGL.PFD_TYPE_RGBA;
-		pfd.cColorBits = (byte) depth;
-		pfd.cDepthBits = (byte) depth;
-		pfd.cAccumBits = 0;
-		pfd.cStencilBits = 0;
-		int pixelFormat = WGL.ChoosePixelFormat (hDC, pfd);
-		if (pixelFormat == 0) {
-			drawable.internal_dispose_GC (hDC, data);
-			SWT.error (SWT.ERROR_UNSUPPORTED_DEPTH);
-		}
-		if (!WGL.SetPixelFormat (hDC, pixelFormat, pfd)) {
-			drawable.internal_dispose_GC (hDC, data);
-			SWT.error (SWT.ERROR_UNSUPPORTED_DEPTH);
-		}
-		handle = WGL.wglCreateContext (hDC);
-		if (handle == 0) SWT.error (SWT.ERROR_NO_HANDLES);
-	}
-
-	public ImageData convertImageData (ImageData source) {
-		PaletteData palette = new PaletteData (0xff0000, 0xff00, 0xff);
-		ImageData newSource = new ImageData (source.width, source.height, 24, palette);
-
-		ImageDataUtil.blit (
-			1,
-			source.data,
-			source.depth,
-			source.bytesPerLine,
-			(source.depth != 16) ? MSB_FIRST : LSB_FIRST,
-			0,
-			0,
-			source.width,
-			source.height,
-			source.palette.redMask,
-			source.palette.greenMask,
-			source.palette.blueMask,
-			255,
-			null,
-			0,
-			0,
-			0,
-			newSource.data,
-			newSource.depth,
-			newSource.bytesPerLine,
-			(newSource.depth != 16) ? MSB_FIRST : LSB_FIRST,
-			0,
-			0,
-			newSource.width,
-			newSource.height,
-			newSource.palette.redMask,
-			newSource.palette.greenMask,
-			newSource.palette.blueMask,
-			false,
-			true);
-
-		return newSource;
-	}
-
-	/**
-	 * Disposes of the operating system resources associated with
-	 * the receiver. Applications must dispose of all <code>GLContext</code>s
-	 * that they allocate.
-	 */
-	public void dispose () {
-		if (handle == 0) return;
-		if (WGL.wglGetCurrentContext () == handle) {
-			WGL.wglMakeCurrent (0, 0);
-		}
-		WGL.wglDeleteContext (handle);
-		handle = 0;
-
-		// drawable may be disposed
-		try {
-			drawable.internal_dispose_GC (hDC, data);
-		} catch (SWTException e) {
-		}
-		int hHeap = OS.GetProcessHeap ();
-		if (selectBufferPtr != 0) {
-			OS.HeapFree (hHeap, 0, selectBufferPtr);
-		}
-		hDC = 0;
-		drawable = null;
-		data.device = null;
-		data = null;
-	}
-
-	public int[] getSelectBuffer (int selectBufferPtr, int[] selectBuffer) {
-		OS.MoveMemory (selectBuffer, selectBufferPtr, selectBuffer.length * 4);
-		return selectBuffer;
-	}
-
-	public int getSelectBufferPtr (int[] selectBuffer) {
-		if (selectBufferPtr == 0) {
-			int hHeap = OS.GetProcessHeap ();
-			selectBufferPtr =
-				OS.HeapAlloc (
-					hHeap,
-					OS.HEAP_ZERO_MEMORY,
-					selectBuffer.length * 4);
-		}
-		OS.MoveMemory (selectBufferPtr, selectBuffer, selectBuffer.length * 4);
-		return selectBufferPtr;
-	}
-
-	/**
-	 * Returns a boolean indicating whether the receiver is the current
-	 * <code>GLContext</code>.
-	 *  
-	 * @return true if the receiver is the current <code>GLContext</code>,
-	 * false otherwise
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_GRAPHIC_DISPOSED if the receiver is disposed</li>
-	 * </ul>
-	 */
-	public boolean isCurrent () {
-		if (isDisposed ()) SWT.error (SWT.ERROR_GRAPHIC_DISPOSED);
-		return WGL.wglGetCurrentContext () == handle;
-	}
-
-	/**
-	 * Returns a boolean indicating whether the <code>GLContext</code> has been
-	 * disposed.
-	 * <p>
-	 * This method gets the dispose state for the <code>GLContext</code>.
-	 * When a <code>GLContext</code> has been disposed, it is an error to
-	 * invoke any other method using the <code>GLContext</code>.
-	 *
-	 * @return true if the <code>GLContext</code> is disposed, false otherwise
-	 */
-	public boolean isDisposed () {
-		return handle == 0;
-	}
-
-	/**
-	 * Loads the specified bitmap font.
-	 * 
-	 * @param fdata
-	 * @param device
-	 * @param base
-	 * @param first
-	 * @param count
-	 */
-	public void loadBitmapFont (FontData fdata,	Device device, int base, int first,	int count) {
-		Font font = new Font (device, fdata);
-		int oldFont = OS.SelectObject (hDC, font.handle);
-		WGL.wglUseFontBitmaps (hDC, first, count, base);
-		OS.SelectObject (hDC, oldFont);
-		font.dispose ();
-	}
-
-	/**
-	 * Loads the specified outline font.
-	 * 
-	 * @param fdata
-	 * @param device
-	 * @param base
-	 * @param first
-	 * @param count
-	 * @param deviation
-	 * @param extrusion
-	 * @param format
-	 * @param lpgmf
-	 */
-	public void loadOutlineFont (FontData fdata, Device device, int base, int first,
-	int count, float deviation, float extrusion, int format, GLYPHMETRICSFLOAT[] lpgmf) {
-		int ptr = 0;
-		int hHeap = 0;
-		if (lpgmf != null && lpgmf.length == count + 1) {
-			hHeap = OS.GetProcessHeap ();
-			ptr =
-				OS.HeapAlloc (
-					hHeap,
-					OS.HEAP_ZERO_MEMORY,
-					count * GLYPHMETRICSFLOAT.sizeof);
-		}
-
-		if (format == GL.GL_POLYGON) {
-			format = WGL.WGL_FONT_POLYGONS;
-		} 
-		if (format == GL.GL_LINE) {
-			format = WGL.WGL_FONT_LINES;
-		} 
-
-		Font font = new Font (device, fdata);
-		int oldFont = OS.SelectObject (hDC, font.handle);
-		WGL.wglUseFontOutlines (hDC, first, count, base, deviation, extrusion, format, ptr);
-		OS.SelectObject (hDC, oldFont);
-		font.dispose ();
-		if (ptr != 0) {
-			int sizeof = GLYPHMETRICSFLOAT.sizeof;
-			for (int i = 0; i < lpgmf.length; i++) {
-				WGL.MoveMemory (lpgmf [i], ptr + (sizeof * i), sizeof);
-			};
-			OS.HeapFree (hHeap, 0, ptr);
-		}
-	}
-
-	/**
-	 * Resizes the receiver.
-	 * 
-	 * @param x
-	 * @param y
-	 * @param width
-	 * @param height
-	 */
-	public void resize (int x, int y, int width, int height) {
-		if (height == 0) height = 1;
-		GL.glViewport (0, 0, width, height);
-		float nRange = 200.0f;
-		GL.glMatrixMode (GL.GL_PROJECTION);
-		GL.glLoadIdentity ();
-		// load projection
-		GLU.gluPerspective (45.0f, (float) width / (float) height, 0.1f, 100.0f);
-		GL.glMatrixMode (GL.GL_MODELVIEW);
-		GL.glLoadIdentity ();
-	}
-
-	/**
-	 * Sets the receiver to be the current <code>GLContext</code>.
-	 * 
- 	 * @exception SWTError <ul>
-	 *    <li>ERROR_GRAPHIC_DISPOSED if the receiver is disposed</li>
-	 * </ul>
-	 */
-	public void setCurrent () {
-		if (isDisposed ()) SWT.error (SWT.ERROR_GRAPHIC_DISPOSED);
-		if (WGL.wglGetCurrentContext () == handle) return;
-		WGL.wglMakeCurrent (hDC, handle);
-	}
-
-	/**
-	 * Swaps the receiver's buffers.
-	 * 
-	 * @exception SWTError <ul>
-	 *    <li>ERROR_GRAPHIC_DISPOSED if the receiver is disposed</li>
-	 * </ul>
-	 */
-	public void swapBuffers () {
-		if (isDisposed ()) SWT.error (SWT.ERROR_GRAPHIC_DISPOSED);
-		WGL.SwapBuffers (hDC);
-	}
-}
diff --git a/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/LAYERPLANEDESCRIPTOR.java b/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/LAYERPLANEDESCRIPTOR.java
deleted file mode 100644
index ec410a1..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/LAYERPLANEDESCRIPTOR.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.internal.win32;
-
-
-public class LAYERPLANEDESCRIPTOR {
-    public short nSize;
-    public short nVersion;
-    public int dwFlags;
-    public byte iPixelType;
-    public byte cColorBits;
-    public byte cRedBits;
-    public byte cRedShift;
-    public byte cGreenBits;
-    public byte cGreenShift;
-    public byte cBlueBits;
-    public byte cBlueShift;
-    public byte cAlphaBits;
-    public byte cAlphaShift;
-    public byte cAccumBits;
-    public byte cAccumRedBits;
-    public byte cAccumGreenBits;
-    public byte cAccumBlueBits;
-    public byte cAccumAlphaBits;
-    public byte cDepthBits;
-    public byte cStencilBits;
-    public byte cAuxBuffers;
-    public byte iLayerPlane;
-    public byte bReserved;
-    public int crTransparent;
-	public static final int sizeof = 36;
-}
diff --git a/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/PIXELFORMATDESCRIPTOR.java b/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/PIXELFORMATDESCRIPTOR.java
deleted file mode 100644
index 254f868..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/PIXELFORMATDESCRIPTOR.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.internal.win32;
-
-
-public class PIXELFORMATDESCRIPTOR {
-   	public short nSize;
-    public short nVersion;
-    public int dwFlags;
-    public byte iPixelType;
-    public byte cColorBits;
-    public byte cRedBits;
-    public byte cRedShift;
-    public byte cGreenBits;
-    public byte cGreenShift;
-    public byte cBlueBits;
-    public byte cBlueShift;
-    public byte cAlphaBits;
-    public byte cAlphaShift;
-    public byte cAccumBits;
-    public byte cAccumRedBits;
-    public byte cAccumGreenBits;
-    public byte cAccumBlueBits;
-    public byte cAccumAlphaBits;
-    public byte cDepthBits;
-    public byte cStencilBits;
-    public byte cAuxBuffers;
-    public byte iLayerType;
-    public byte bReserved;
-    public int dwLayerMask;
-    public int dwVisibleMask;
-    public int dwDamageMask;
-	public static final int sizeof = 40;
-}
diff --git a/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/POINTFLOAT.java b/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/POINTFLOAT.java
deleted file mode 100644
index b0601f1..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/POINTFLOAT.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.internal.win32;
-
-
-public class POINTFLOAT {
-	public float x;
-	public float y;
-	public static final int sizeof = 8;
-}
diff --git a/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/WGL.java b/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/WGL.java
deleted file mode 100644
index 000f528..0000000
--- a/bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/WGL.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.internal.win32;
-
-
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.opengl.Library;
-import org.eclipse.swt.internal.win32.OS;
-
-public class WGL {
-	
-static {
-	Library.loadLibrary("gl");
-}
-	
-public static final int WGL_FONT_LINES      = 0;
-public static final int WGL_FONT_POLYGONS   = 1;
-
-/* LAYERPLANEDESCRIPTOR flags */
-public static final int LPD_DOUBLEBUFFER        = 0x00000001;
-public static final int LPD_STEREO              = 0x00000002;
-public static final int LPD_SUPPORT_GDI         = 0x00000010;
-public static final int LPD_SUPPORT_OPENGL      = 0x00000020;
-public static final int LPD_SHARE_DEPTH         = 0x00000040;
-public static final int LPD_SHARE_STENCIL       = 0x00000080;
-public static final int LPD_SHARE_ACCUM         = 0x00000100;
-public static final int LPD_SWAP_EXCHANGE       = 0x00000200;
-public static final int LPD_SWAP_COPY           = 0x00000400;
-public static final int LPD_TRANSPARENT         = 0x00001000;
-
-public static final int LPD_TYPE_RGBA        = 0;
-public static final int LPD_TYPE_COLORINDEX  = 1;
-
-/* wglSwapLayerBuffers flags */
-public static final int WGL_SWAP_MAIN_PLANE     = 0x00000001;
-public static final int WGL_SWAP_OVERLAY1       = 0x00000002;
-public static final int WGL_SWAP_OVERLAY2       = 0x00000004;
-public static final int WGL_SWAP_OVERLAY3       = 0x00000008;
-public static final int WGL_SWAP_OVERLAY4       = 0x00000010;
-public static final int WGL_SWAP_OVERLAY5       = 0x00000020;
-public static final int WGL_SWAP_OVERLAY6       = 0x00000040;
-public static final int WGL_SWAP_OVERLAY7       = 0x00000080;
-public static final int WGL_SWAP_OVERLAY8       = 0x00000100;
-public static final int WGL_SWAP_OVERLAY9       = 0x00000200;
-public static final int WGL_SWAP_OVERLAY10      = 0x00000400;
-public static final int WGL_SWAP_OVERLAY11      = 0x00000800;
-public static final int WGL_SWAP_OVERLAY12      = 0x00001000;
-public static final int WGL_SWAP_OVERLAY13      = 0x00002000;
-public static final int WGL_SWAP_OVERLAY14      = 0x00004000;
-public static final int WGL_SWAP_OVERLAY15      = 0x00008000;
-public static final int WGL_SWAP_UNDERLAY1      = 0x00010000;
-public static final int WGL_SWAP_UNDERLAY2      = 0x00020000;
-public static final int WGL_SWAP_UNDERLAY3      = 0x00040000;
-public static final int WGL_SWAP_UNDERLAY4      = 0x00080000;
-public static final int WGL_SWAP_UNDERLAY5      = 0x00100000;
-public static final int WGL_SWAP_UNDERLAY6      = 0x00200000;
-public static final int WGL_SWAP_UNDERLAY7      = 0x00400000;
-public static final int WGL_SWAP_UNDERLAY8      = 0x00800000;
-public static final int WGL_SWAP_UNDERLAY9      = 0x01000000;
-public static final int WGL_SWAP_UNDERLAY10     = 0x02000000;
-public static final int WGL_SWAP_UNDERLAY11     = 0x04000000;
-public static final int WGL_SWAP_UNDERLAY12     = 0x08000000;
-public static final int WGL_SWAP_UNDERLAY13     = 0x10000000;
-public static final int WGL_SWAP_UNDERLAY14     = 0x20000000;
-public static final int WGL_SWAP_UNDERLAY15     = 0x40000000;
-
-/* pixel types */
-public static final int PFD_TYPE_RGBA        = 0;
-public static final int PFD_TYPE_COLORINDEX  = 1;
-
-/* layer types */
-public static final int PFD_MAIN_PLANE       = 0;
-public static final int PFD_OVERLAY_PLANE    = 1;
-public static final int PFD_UNDERLAY_PLANE   = (-1);
-
-/* PIXELFORMATDESCRIPTOR flags */
-public static final int PFD_DOUBLEBUFFER            = 0x00000001;
-public static final int PFD_STEREO                  = 0x00000002;
-public static final int PFD_DRAW_TO_WINDOW          = 0x00000004;
-public static final int PFD_DRAW_TO_BITMAP          = 0x00000008;
-public static final int PFD_SUPPORT_GDI             = 0x00000010;
-public static final int PFD_SUPPORT_OPENGL          = 0x00000020;
-public static final int PFD_GENERIC_FORMAT          = 0x00000040;
-public static final int PFD_NEED_PALETTE            = 0x00000080;
-public static final int PFD_NEED_SYSTEM_PALETTE     = 0x00000100;
-public static final int PFD_SWAP_EXCHANGE           = 0x00000200;
-public static final int PFD_SWAP_COPY               = 0x00000400;
-public static final int PFD_SWAP_LAYER_BUFFERS      = 0x00000800;
-public static final int PFD_GENERIC_ACCELERATED     = 0x00001000;
-public static final int PFD_SUPPORT_DIRECTDRAW      = 0x00002000;
-
-/* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */
-public static final int PFD_DEPTH_DONTCARE          = 0x20000000;
-public static final int PFD_DOUBLEBUFFER_DONTCARE   = 0x40000000;
-public static final int PFD_STEREO_DONTCARE         = 0x80000000;
-
-public static final native int ChoosePixelFormat(int hdc, PIXELFORMATDESCRIPTOR ppfd);
-public static final native int DescribePixelFormat(int hdc, int iPixelFormat, int nBytes, PIXELFORMATDESCRIPTOR ppfd);
-public static final native int GetPixelFormat(int hdc);
-public static final native boolean SetPixelFormat(int hdc, int iPixelFormat, PIXELFORMATDESCRIPTOR ppfd);
-public static final native boolean SwapBuffers(int hdc);
-public static final native boolean wglCopyContext(int hglrcSrc, int hglrcDst, int mask);
-public static final native int wglCreateContext(int hdc);
-public static final native int wglCreateLayerContext(int hdc, int iLayerPlane);
-public static final native boolean wglDeleteContext(int hglrc);
-public static final native int wglGetCurrentContext();
-public static final native int wglGetCurrentDC();
-public static final native int wglGetProcAddress(byte[] lpszProc);
-public static final native boolean wglMakeCurrent(int hdc, int hglrc);
-public static final native boolean wglShareLists(int hglrc1, int hglrc2);
-public static final native boolean wglUseFontBitmapsA(int hdc, int first, int count, int listBase);
-public static final native boolean wglUseFontBitmapsW(int hdc, int first, int count, int listBase);
-public static final boolean wglUseFontBitmaps(int hdc, int first, int count, int listBase) {
-	if (OS.IsUnicode) return wglUseFontBitmapsW(hdc, first, count, listBase);
-	return wglUseFontBitmapsA(hdc, first, count, listBase);
-}
-public static final native boolean wglUseFontOutlinesA(int hdc, int first, int count, int listBase, float deviation, float extrusion, int format, int lpgmf);
-public static final native boolean wglUseFontOutlinesW(int hdc, int first, int count, int listBase, float deviation, float extrusion, int format, int lpgmf);
-public static final boolean wglUseFontOutlines(int hdc, int first, int count, int listBase, float deviation, float extrusion, int format, int lpgmf) {
-	if (OS.IsUnicode) return wglUseFontOutlinesW(hdc, first, count, listBase, deviation, extrusion, format, lpgmf);
-	return wglUseFontOutlinesA(hdc, first, count, listBase, deviation, extrusion, format, lpgmf);
-}
-public static final native boolean wglDescribeLayerPlane(int hdc, int iPixelFormat, int iLayerPlane, int nBytes, LAYERPLANEDESCRIPTOR plpd);
-public static final native int wglSetLayerPaletteEntries(int hdc, int iLayerPlane, int iStart, int cEntries, int[] pcr);
-public static final native int wglGetLayerPaletteEntries(int hdc, int iLayerPlane, int iStart, int cEntries, int[] pcr);
-public static final native boolean wglRealizeLayerPalette(int hdc, int iLayerPlane, boolean bRealize);
-public static final native boolean wglSwapLayerBuffers(int hdc, int fuPlanes);
-public static final void MoveMemory (GLYPHMETRICSFLOAT Destination, int Source, int Length) {
-	if (OS.IsUnicode) MoveMemoryW (Destination, Source, Length);
-	else MoveMemoryA(Destination, Source, Length);
-}
-public static final native void MoveMemoryA (GLYPHMETRICSFLOAT Destination, int Source, int Length);
-public static final native void MoveMemoryW (GLYPHMETRICSFLOAT Destination, int Source, int Length);
-}
diff --git a/examples/org.eclipse.swt.examples.controls/.classpath b/examples/org.eclipse.swt.examples.controls/.classpath
deleted file mode 100755
index da6f3cc..0000000
--- a/examples/org.eclipse.swt.examples.controls/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="/org.eclipse.swt.examples"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.core.runtime_2.1.0/runtime.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.ui.workbench_2.1.0/workbench.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jface_2.1.0/jface.jar"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.swt.examples.controls/.cvsignore b/examples/org.eclipse.swt.examples.controls/.cvsignore
deleted file mode 100755
index c5e82d7..0000000
--- a/examples/org.eclipse.swt.examples.controls/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.controls/.project b/examples/org.eclipse.swt.examples.controls/.project
deleted file mode 100644
index 6dd25a0..0000000
--- a/examples/org.eclipse.swt.examples.controls/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.swt.examples.controls</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.swt</project>
-		<project>org.eclipse.swt.examples</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.swt.examples.controls/about.html b/examples/org.eclipse.swt.examples.controls/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/examples/org.eclipse.swt.examples.controls/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.controls/build.properties b/examples/org.eclipse.swt.examples.controls/build.properties
deleted file mode 100755
index ca7f7ae..0000000
--- a/examples/org.eclipse.swt.examples.controls/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = doc-html/,\
-               icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-	           *.jar
-
-src.includes = about.html
-	       
-source.controls.jar = src/
diff --git a/examples/org.eclipse.swt.examples.controls/doc-html/hglegal.htm b/examples/org.eclipse.swt.examples.controls/doc-html/hglegal.htm
deleted file mode 100755
index f5871b7..0000000
--- a/examples/org.eclipse.swt.examples.controls/doc-html/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="../../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples.controls/doc-html/ngibmcpy.gif b/examples/org.eclipse.swt.examples.controls/doc-html/ngibmcpy.gif
deleted file mode 100755
index c786e43..0000000
--- a/examples/org.eclipse.swt.examples.controls/doc-html/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.controls/doc-html/swt_controls_ex.html b/examples/org.eclipse.swt.examples.controls/doc-html/swt_controls_ex.html
deleted file mode 100755
index 1d0347c..0000000
--- a/examples/org.eclipse.swt.examples.controls/doc-html/swt_controls_ex.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Controls Overview</title>
-</head>
-<body>
-
-<h2>SWT example - Controls</h2>
-
-<p>
-The Controls Example is a simple demonstration of common SWT controls. 
-It consists of a tab folder where each tab in the folder allows the user 
-to interact with a different control.
-The user can change styles and settings and view how this affects each control.
-</p>
-
-<h3>Running the example</h3>
-<p>
-Follow the <a href="../../org.eclipse.swt.examples/doc-html/swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.controlexample.ControlExample</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>Controls</strong> item from the <strong>Workbench Views</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples.controls/doc-html/swt_customcontrols_ex.html b/examples/org.eclipse.swt.examples.controls/doc-html/swt_customcontrols_ex.html
deleted file mode 100644
index ba717a2..0000000
--- a/examples/org.eclipse.swt.examples.controls/doc-html/swt_customcontrols_ex.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Controls Overview</title>
-</head>
-<body>
-
-<h2>SWT example - Custom Controls</h2>
-
-<p>
-The Custom Controls example is a simple demonstration of emulated SWT controls. 
-It consists of a tab folder where each tab in the folder allows the user 
-to interact with a different emulated control.
-The user can change styles and settings and view how this affects each control.
-</p>
-
-<h3>Running the example</h3>
-<p>
-Follow the <a href="../../org.eclipse.swt.examples/doc-html/swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.controlexample.CustomControlExample</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>Custom Controls</strong> item from the <strong>Workbench Views</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples.controls/icons/controls_example.gif b/examples/org.eclipse.swt.examples.controls/icons/controls_example.gif
deleted file mode 100755
index cbdee97..0000000
--- a/examples/org.eclipse.swt.examples.controls/icons/controls_example.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.controls/plugin.properties b/examples/org.eclipse.swt.examples.controls/plugin.properties
deleted file mode 100755
index ee2fea2..0000000
--- a/examples/org.eclipse.swt.examples.controls/plugin.properties
+++ /dev/null
@@ -1,34 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName = Eclipse.org
-plugin.SWTControlsExample.name = SWT Controls Example Plugin
-category.SWTExamples.name = SWT Examples
-view.ControlsExample.name = SWT Controls
-view.CustomControlsExample.name = SWT Custom Controls
-
-launchcategory.SWTViewExamples.name = Workbench Views
-launchcategory.SWTViewExamples.description = \
-	A collection of Standard Widget Toolkit examples that run as Views inside the Workbench.  \
-	These examples will create a new View in the current Perspective.
-
-launchitem.ControlsExample.name = Controls
-launchitem.ControlsExample.description = \
-	This example is a simple demonstration of native SWT controls.\n\n\
-	It consists of a tab folder where each tab allows the user \
-	to interact with a different SWT control. \
-	The user can change styles and settings and view how this affects the control.
-	
-launchitem.CustomControlsExample.name = Custom Controls
-launchitem.CustomControlsExample.description = \
-	This example is a simple demonstration of custom SWT controls.\n\n\
-	It consists of a tab folder where each tab allows the user \
-	to interact with a different SWT custom control. \
-	The user can change styles and settings and view how this affects the control.
diff --git a/examples/org.eclipse.swt.examples.controls/plugin.xml b/examples/org.eclipse.swt.examples.controls/plugin.xml
deleted file mode 100755
index b3ab8e1..0000000
--- a/examples/org.eclipse.swt.examples.controls/plugin.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-   id="org.eclipse.swt.examples.controls"
-   name="%plugin.SWTControlsExample.name"
-   version="2.1.0"
-   provider-name="%providerName"
-   class="org.eclipse.swt.examples.controls.ControlPlugin">
-
-<!-- Runtime -->
-<!-- Runtime -->
-   <runtime>
-      <library name="controls.jar">
-            <packages prefixes="org.eclipse.swt.examples.controls"/>
-      </library>
-   </runtime>
-<!-- Required plugins -->
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.swt"/>
-      <import plugin="org.eclipse.swt.examples"/>
-   </requires>
-
-
-<!-- Extension points -->
-<!-- Extensions -->
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="%view.ControlsExample.name"
-            icon="icons/controls_example.gif"
-            category="org.eclipse.swt.examples.category"
-            class="org.eclipse.swt.examples.controls.ControlView"
-            id="org.eclipse.swt.examples.controls.view">
-      </view>
-      <view
-            name="%view.CustomControlsExample.name"
-            icon="icons/controls_example.gif"
-            category="org.eclipse.swt.examples.category"
-            class="org.eclipse.swt.examples.controls.CustomControlView"
-            id="org.eclipse.swt.examples.customcontrols.view">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.swt.examples.launcher.launchItems">
-      <category
-            name="%launchcategory.SWTViewExamples.name"
-            description="%launchcategory.SWTViewExamples.description"
-            id="org.eclipse.swt.examples.launchViewCategory">
-      </category>
-      <item
-            name="%launchitem.ControlsExample.name"
-            icon="icons/controls_example.gif"
-            description="%launchitem.ControlsExample.description"
-            category="org.eclipse.swt.examples.launchViewCategory"
-            id="org.eclipse.swt.examples.controls.viewlauncher">
-         <view
-               viewId="org.eclipse.swt.examples.controls.view">
-         </view>
-      </item>
-      <item
-            name="%launchitem.CustomControlsExample.name"
-            icon="icons/controls_example.gif"
-            description="%launchitem.CustomControlsExample.description"
-            category="org.eclipse.swt.examples.launchViewCategory"
-            id="org.eclipse.swt.examples.customcontrols.viewlauncher">
-         <view
-               viewId="org.eclipse.swt.examples.customcontrols.view">
-         </view>
-      </item>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.swt.examples.controls/src/import.properties b/examples/org.eclipse.swt.examples.controls/src/import.properties
deleted file mode 100644
index 58344f0..0000000
--- a/examples/org.eclipse.swt.examples.controls/src/import.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# Persist project settings for later import 
-natures = org.eclipse.jdt.core.javanature; org.eclipse.pde.PluginNature
-builders = org.eclipse.jdt.core.javabuilder; org.eclipse.pde.ManifestBuilder; org.eclipse.pde.SchemaBuilder
-var.ECLIPSE_PLUGINS = <<ECLIPSE_PLUGINS>>
diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ControlPlugin.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ControlPlugin.java
deleted file mode 100755
index 11469ba..0000000
--- a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ControlPlugin.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controls;
-
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.plugin.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class ControlPlugin extends AbstractUIPlugin {
-	/**
-	 * The constructor.
-	 */
-	public ControlPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-	}
-	
-	/**
-	 * Clean up
-	 */
-	public void shutdown() throws CoreException {
-		super.shutdown();
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ControlView.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ControlView.java
deleted file mode 100755
index 5024641..0000000
--- a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ControlView.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controls;
-
- 
-import org.eclipse.swt.examples.controlexample.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.part.*;
-
-/**
- * <code>Controls</code> is a simple demonstration
- * of the native controls defined by SWT.  It consists of a workbench
- * view and tab folder where each tab in the folder allows the
- * user to interact with a control.
- * 
- * @see ViewPart
- */
-public class ControlView extends ViewPart {
-	ControlExample instance = null;
-	
-	/**
-	 * Create the example
-	 * 
-	 * @see ViewPart#createPartControl
-	 */
-	public void createPartControl(Composite frame) {
-		instance = new ControlExample(frame);
-	}
-
-	/**
-	 * Called when we must grab focus.
-	 * 
-	 * @see org.eclipse.ui.part.ViewPart#setFocus
-	 */
-	public void setFocus() {
-		instance.setFocus();
-	}
-
-	/**
-	 * Called when the View is to be disposed
-	 */	
-	public void dispose() {
-		instance.dispose();
-		instance = null;
-		super.dispose();
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/CustomControlView.java b/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/CustomControlView.java
deleted file mode 100644
index ec66fd4..0000000
--- a/examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/CustomControlView.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controls;
-
-
-import org.eclipse.swt.examples.controlexample.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * <code>CustomControls</code> is a simple demonstration
- * of the custom controls defined by SWT.  It consists of a workbench
- * view and tab folder where each tab in the folder allows the
- * user to interact with a control.
- * 
- * @see ViewPart
- */
-public class CustomControlView extends ControlView {
-
-	/**
-	 * Create the example
-	 * 
-	 * @see ViewPart#createPartControl
-	 */
-	public void createPartControl(Composite frame) {
-		instance = new CustomControlExample(frame);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.launcher/.classpath b/examples/org.eclipse.swt.examples.launcher/.classpath
deleted file mode 100755
index eafbb18..0000000
--- a/examples/org.eclipse.swt.examples.launcher/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="src" path="/org.eclipse.swt.examples"/>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.core.boot_2.1.0/boot.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.core.runtime_2.1.0/runtime.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.ui.workbench_2.1.0/workbench.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jface_2.1.0/jface.jar"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.swt.examples.launcher/.cvsignore b/examples/org.eclipse.swt.examples.launcher/.cvsignore
deleted file mode 100755
index c5e82d7..0000000
--- a/examples/org.eclipse.swt.examples.launcher/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.launcher/.project b/examples/org.eclipse.swt.examples.launcher/.project
deleted file mode 100644
index bcb6941..0000000
--- a/examples/org.eclipse.swt.examples.launcher/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.swt.examples.launcher</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.swt</project>
-		<project>org.eclipse.swt.examples</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.swt.examples.launcher/about.html b/examples/org.eclipse.swt.examples.launcher/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/examples/org.eclipse.swt.examples.launcher/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.launcher/build.properties b/examples/org.eclipse.swt.examples.launcher/build.properties
deleted file mode 100755
index 2ca3829..0000000
--- a/examples/org.eclipse.swt.examples.launcher/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = doc/,\
-               doc-html/,\
-               icons/,\
-               schema/,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-	           *.jar
-	           
-src.includes = about.html
-
-source.launcher.jar = src/
diff --git a/examples/org.eclipse.swt.examples.launcher/doc-html/hglegal.htm b/examples/org.eclipse.swt.examples.launcher/doc-html/hglegal.htm
deleted file mode 100755
index f5871b7..0000000
--- a/examples/org.eclipse.swt.examples.launcher/doc-html/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="../../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples.launcher/doc-html/ngibmcpy.gif b/examples/org.eclipse.swt.examples.launcher/doc-html/ngibmcpy.gif
deleted file mode 100755
index c786e43..0000000
--- a/examples/org.eclipse.swt.examples.launcher/doc-html/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html b/examples/org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html
deleted file mode 100755
index 99697ac..0000000
--- a/examples/org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Example Launcher</title>
-</head>
-<body>
-
-<h2>SWT Example Launcher</h2>
-
-<p>
-The Example Launcher is used to launch SWT examples, which can either be Workbench views 
-or standalone applications.
-</p>
-
-<ul>
-<li>Workbench views are examples that are integrated into Eclipse.  When the launcher
-starts a Workbench view, it is opened in the currently active perspective.
-<li>Standalone applications are launched in a separate window.
-</ul>
-
-<p>
-For information on how to run the standalone examples without the SWT Example Launcher, 
-refer to <a href="../../org.eclipse.swt.examples/doc-html/swt_manual_setup.html">SWT standalone examples setup</a>.
-</p>
-<p>
-The SWT Workbench view examples can also be launched directly without using the SWT Example 
-Launcher.  SWT Workbench view examples can be found under the <strong>SWT Examples</strong> category of the 
-<strong>Show Views</strong> dialog.
-</p>
-
-<h3>Running the Example Launcher</h3>
-
-<p>
-From Eclipse's <strong>Window</strong> menu, select <strong>Show View &gt; Other</strong>. 
-In the <strong>Show View</strong> dialog, expand <strong>SWT Examples</strong> and select the <strong>SWT Example Launcher</strong> view. 
-A view containing a list of examples will appear in your current perspective.
-When you select an example from the list a brief description of the example is displayed.
-Click on the <strong>Run</strong> button to launch the example.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples.launcher/doc/org.eclipse.swt.examples.launcher.launchItems.html b/examples/org.eclipse.swt.examples.launcher/doc/org.eclipse.swt.examples.launcher.launchItems.html
deleted file mode 100755
index 3edf918..0000000
--- a/examples/org.eclipse.swt.examples.launcher/doc/org.eclipse.swt.examples.launcher.launchItems.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HEAD>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<HTML>
-<BODY>
-<H1><CENTER>Launch Items</CENTER></H1>
-<H2>Identifier</H2>
-org.eclipse.swt.examples.launcher.launchItems<H2>Description</H2>
-This extension point is used to add 'standalone program' and
-'Workbench view'
-launch items to the Launcher, optionally grouping them into
-categories so as to form a multi-tiered hierarchy.
-Standalone programs are executed using the platform's event loop.
-Workbench views are created within the active Workbench Perspective.<H2>Markup</H2>
-<p><samp>&nbsp;&nbsp; &lt;!ELEMENT extension EMPTY&gt;</samp>
-<br><samp>&nbsp;&nbsp; &lt;!ATTLIST extension</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;point&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;&nbsp;CDATA #IMPLIED</samp>
-<br><samp>&nbsp;&nbsp; &gt;</samp>
-<ul>
-<li><b>point</b> - </li><li><b>id</b> - </li><li><b>name</b> - </li></ul>
-<p><samp>&nbsp;&nbsp; &lt;!ELEMENT program EMPTY&gt;</samp>
-<br><samp>&nbsp;&nbsp; &lt;!ATTLIST program</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mainClass&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pluginId&nbsp;&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp; &gt;</samp>
-<ul>
-<li><b>mainClass</b> - The fully-qualified name of the class whose main() method is to be launched.</li><li><b>pluginId</b> - The unique id of the Eclipse Platform plugin containing the program.</li></ul>
-<p><samp>&nbsp;&nbsp; &lt;!ELEMENT view EMPTY&gt;</samp>
-<br><samp>&nbsp;&nbsp; &lt;!ATTLIST view</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;viewId&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp; &gt;</samp>
-<ul>
-<li><b>viewId</b> - The unique id of the Workbench View to be activated when the item is launched.</li></ul>
-<p><samp>&nbsp;&nbsp; &lt;!ELEMENT category EMPTY&gt;</samp>
-<br><samp>&nbsp;&nbsp; &lt;!ATTLIST category</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;category&nbsp;CDATA #IMPLIED</samp>
-<br><samp>&nbsp;&nbsp; &gt;</samp>
-<ul>
-<li><b>name</b> - The localized name of this category.</li><li><b>id</b> - The unique id of this category.  Categories with duplicate id's will be discarded.</li><li><b>category</b> - The unique id of the parent category.</li></ul>
-<p><samp>&nbsp;&nbsp; &lt;!ELEMENT item EMPTY&gt;</samp>
-<br><samp>&nbsp;&nbsp; &lt;!ATTLIST item</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;category&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(true | false) "false""true"</samp>
-<br><samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description&nbsp;CDATA #IMPLIED</samp>
-<br><samp>&nbsp;&nbsp; &gt;</samp>
-<ul>
-<li><b>name</b> - The localized name of this launch item.</li><li><b>id</b> - The unique id of this launch item. Launch items with duplicate id's will be discarded.</li><li><b>category</b> - The unique id of the category this launch item belongs to.</li><li><b>icon</b> - The declaring plugin relative path of an icon to display with this launch item in the Launcher.</li><li><b>enabled</b> - Set to "false" to disable this launch item, or to "true" to enable it (default).</li><li><b>description</b> - The localized plain-text description of this launch item.</li></ul>
-<H2>Example</H2>
-<H2>API Information</H2>
-<H2>Supplied Implementation</H2>
-</BODY>
-</HTML>
diff --git a/examples/org.eclipse.swt.examples.launcher/icons/closedFolder.gif b/examples/org.eclipse.swt.examples.launcher/icons/closedFolder.gif
deleted file mode 100755
index beb6ed1..0000000
--- a/examples/org.eclipse.swt.examples.launcher/icons/closedFolder.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.launcher/icons/generic_example.gif b/examples/org.eclipse.swt.examples.launcher/icons/generic_example.gif
deleted file mode 100755
index f9fb6b0..0000000
--- a/examples/org.eclipse.swt.examples.launcher/icons/generic_example.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.launcher/icons/launcher_example.gif b/examples/org.eclipse.swt.examples.launcher/icons/launcher_example.gif
deleted file mode 100755
index 3ab4d32..0000000
--- a/examples/org.eclipse.swt.examples.launcher/icons/launcher_example.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.launcher/icons/openFolder.gif b/examples/org.eclipse.swt.examples.launcher/icons/openFolder.gif
deleted file mode 100755
index a9c77734..0000000
--- a/examples/org.eclipse.swt.examples.launcher/icons/openFolder.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.launcher/plugin.properties b/examples/org.eclipse.swt.examples.launcher/plugin.properties
deleted file mode 100755
index 7b0f95c..0000000
--- a/examples/org.eclipse.swt.examples.launcher/plugin.properties
+++ /dev/null
@@ -1,49 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName = Eclipse.org
-plugin.SWTLauncherExample.name = SWT Launcher Example Plugin
-category.SWTExamples.name = SWT Examples
-view.LauncherExample.name = SWT Example Launcher
-
-extension-point.launchItems.name = Launch Items
-
-launchcategory.SWTViewExamples.name = Workbench Views
-launchcategory.SWTViewExamples.description = \
-	A collection of Standard Widget Toolkit examples that run as Views inside the Workbench.  \
-	These examples will create a new View in the current Perspective.
-
-launchitem.LauncherExample.name = Launcher
-launchitem.LauncherExample.description = \
-	The Example Launcher is used to launch SWT examples which can either be \
-	Workbench Views, or Standalone applications.\n\n\
-	Workbench Views are examples that are integrated into Eclipse.  When the Launcher \
-	starts a Workbench View, it is opened in the currently active perspective.\n\n\
-	Standalone applications are launched in a separate window.
-
-error.CouldNotLoadResources = Unable to load resources
-error.CouldNotFindRegisteredExtensions = Could Not Find Registered Extensions
-error.IncompleteProgramLaunchItem = Incomplete XML ProgramLaunchItem definition, id = {0}
-error.IncompleteViewLaunchItem = Incomplete XML ViewLaunchItem definition, id = {0}
-error.IncompleteLaunchItem = Incomplete or unrecognized XML LaunchItem definition, id = {0}
-
-launchitem.Null.description = <<no item selected>>
-
-launchitem.Missing.name = <<unnamed>>
-launchitem.Missing.description = <<no description available>>
-
-view.launchGroup.text = Examples
-view.launchButton.text = Run
-view.descriptionGroup.text = Description
-
-run.error.Invocation = A fatal error occurred while launching the program.
-run.error.DoesNotImplementMethod = The class does not implement the open() method.
-run.error.CouldNotFindClass = Could not find the class to run.
-run.error.CouldNotInstantiateClass = Could not instantiate the class to run.
diff --git a/examples/org.eclipse.swt.examples.launcher/plugin.xml b/examples/org.eclipse.swt.examples.launcher/plugin.xml
deleted file mode 100755
index 821bcd1..0000000
--- a/examples/org.eclipse.swt.examples.launcher/plugin.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-   id="org.eclipse.swt.examples.launcher"
-   name="%plugin.SWTLauncherExample.name"
-   version="2.1.0"
-   provider-name="%providerName"
-   class="org.eclipse.swt.examples.launcher.LauncherPlugin">
-
-<!-- Runtime -->
-<!-- Runtime -->
-<!-- Runtime -->
-<!-- Runtime -->
-   <runtime>
-      <library name="launcher.jar">
-            <packages prefixes="org.eclipse.swt.examples.launcher"/>
-      </library>
-   </runtime>
-<!-- Required plugins -->
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.swt"/>
-      <import plugin="org.eclipse.jdt.launching"/>
-      <import plugin="org.eclipse.debug.core"/>
-      <import plugin="org.eclipse.core.boot"/>
-      <import plugin="org.eclipse.jdt.core"/>
-      <import plugin="org.eclipse.swt.examples"/>
-   </requires>
-
-
-<!-- Extension points -->
-   <extension-point id="launchItems" name="%extension-point.launchItems.name" schema="schema/org.eclipse.swt.examples.launcher.launchItems.exsd"/>
-
-<!-- Extensions -->
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%category.SWTExamples.name"
-            id="org.eclipse.swt.examples.category">
-      </category>
-      <view
-            name="%view.LauncherExample.name"
-            icon="icons/launcher_example.gif"
-            category="org.eclipse.swt.examples.category"
-            class="org.eclipse.swt.examples.launcher.LauncherView"
-            id="org.eclipse.swt.examples.launcher.view">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.swt.examples.launcher.launchItems">
-      <category
-            name="%launchcategory.SWTViewExamples.name"
-            description="%launchcategory.SWTViewExamples.description"
-            id="org.eclipse.swt.examples.launchViewCategory">
-      </category>
-      <item
-            name="%launchitem.LauncherExample.name"
-            enabled="false"
-            icon="icons/launcher_example.gif"
-            description="%launchitem.LauncherExample.description"
-            category="org.eclipse.swt.examples.launchViewCategory"
-            id="org.eclipse.swt.examples.launcher.viewlauncher">
-         <view
-               viewId="org.eclipse.swt.examples.launcher.view">
-         </view>
-      </item>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.swt.examples.launcher/schema/org.eclipse.swt.examples.launcher.launchItems.exsd b/examples/org.eclipse.swt.examples.launcher/schema/org.eclipse.swt.examples.launcher.launchItems.exsd
deleted file mode 100644
index 3813c9d..0000000
--- a/examples/org.eclipse.swt.examples.launcher/schema/org.eclipse.swt.examples.launcher.launchItems.exsd
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.swt.examples.launcher">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.swt.examples.launcher" id="launchItems" name="Launch Items"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to add &apos;standalone program&apos; and
-&apos;Workbench view&apos;
-launch items to the Launcher, optionally grouping them into
-categories so as to form a multi-tiered hierarchy.
-Standalone programs are executed using the platform&apos;s event loop.
-Workbench views are created within the active Workbench Perspective.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice minOccurs="0" maxOccurs="unbounded">
-            <element ref="category"/>
-            <element ref="item"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="program">
-      <annotation>
-         <documentation>
-            Specifies a &quot;Standalone Program&quot; for a launch item to run.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="mainClass" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The fully-qualified name of the class whose main() method is to be launched.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="pluginId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique id of the Eclipse Platform plugin containing the program.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="view">
-      <annotation>
-         <documentation>
-            Specifies a &quot;Workbench View&quot; for a launch item to activate.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="viewId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique id of the Workbench View to be activated when the item is launched.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="category">
-      <annotation>
-         <documentation>
-            Specifies a launch item category heading.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The localized name of this category.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique id of this category.  Categories with duplicate id&apos;s will be discarded.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="category" type="string">
-            <annotation>
-               <documentation>
-                  The unique id of the parent category.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  Specifies a launch item category description.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="item">
-      <annotation>
-         <documentation>
-            Specifies a launch item.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="view"/>
-            <element ref="program"/>
-         </choice>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The localized name of this launch item.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique id of this launch item. Launch items with duplicate id&apos;s will be discarded.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="category" type="string">
-            <annotation>
-               <documentation>
-                  The unique id of the category this launch item belongs to.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="icon" type="string">
-            <annotation>
-               <documentation>
-                  The declaring plugin relative path of an icon to display with this launch item in the Launcher.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="enabled" type="boolean" use="default" value="true">
-            <annotation>
-               <documentation>
-                  Set to &quot;false&quot; to disable this launch item, or to &quot;true&quot; to enable it (default).
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  The localized plain-text description of this launch item.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/examples/org.eclipse.swt.examples.launcher/src/import.properties b/examples/org.eclipse.swt.examples.launcher/src/import.properties
deleted file mode 100644
index 58344f0..0000000
--- a/examples/org.eclipse.swt.examples.launcher/src/import.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# Persist project settings for later import 
-natures = org.eclipse.jdt.core.javanature; org.eclipse.pde.PluginNature
-builders = org.eclipse.jdt.core.javabuilder; org.eclipse.pde.ManifestBuilder; org.eclipse.pde.SchemaBuilder
-var.ECLIPSE_PLUGINS = <<ECLIPSE_PLUGINS>>
diff --git a/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ItemDescriptor.java b/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ItemDescriptor.java
deleted file mode 100755
index 7ec1019..0000000
--- a/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ItemDescriptor.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.launcher;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * ItemDescriptor collects information about a launch item.
- */
-class ItemDescriptor {
-	private String id;
-	private String name;
-	private String description;
-	private Image  icon;
-	private String view;
-	private String mainType;
-	private String pluginId;
-	
-	
-	/**
-	 * Constructs an ItemDescriptor.
-	 *
-	 * @param id the id
-	 * @param name the name
-	 * @param description the description
-	 * @param icon the icon
-	 * @param view the host view may be null if it is a standalone application
-	 * @param mainType the fully qualified class name to run may be null if it is a view
-	 * @param pluginId the name of the plugin which contains the main class
-	 */
-	public ItemDescriptor(String id, String name, String description,
-		Image icon, String view, String mainType, String pluginId) {
-		this.id = id;
-		this.name = name;
-		this.description = description;
-		this.icon = icon;
-		this.view = view;
-		this.mainType = mainType;
-		this.pluginId = pluginId;
-	}
-
-	/**
-	 * Returns the ID for this program.
-	 *
-	 * @return the user-specified ID for this program
-	 */
-	public String getId() {
-		return id;
-	}
-	
-	/**
-	 * Returns the translated name for the program.
-	 * 
-	 * @return the name of the program
-	 */
-	public String getName() {
-		return name;
-	}
-	
-	/**
-	 * Returns a short description for the program.
-	 * 
-	 * @return a newline-delimited string describing the program, null if no description is available
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Returns an icon for this descriptor
-	 * 
-	 * @returns an icon, null if the item is a folder
-	 */
-	public Image getIcon() {
-		return icon;
-	}
-	
-	/**
-	 * Returns the host view for the program.
-	 * 
-	 * @return the host view, null if the item is a standalone program.
-	 */
-	public String getView () {
-		return view;
-	}
-	
-	/**
-	 * Returns the fully qualified class to run
-	 * for the program.
-	 * 
-	 * @return the class to run for the program.
-	 */
-	public String getMainType () {
-		return mainType;
-	}
-	
-	/**
-	 * Returns the name of the plugin that contains the program.
-	 * 
-	 * @return the name of the plugin that contains the program.
-	 */
-	public String getPluginId () {
-		return pluginId;
-	}
-	
-	/**
-	 * Determines if an item is a folder.
-	 *
-	 * @return true if the item is a folder
-	 */
-	public boolean isFolder() {
-		return (mainType == null && view == null);
-	}
-	
-	/**
-	 * Determines the equality of descriptors.
-	 * 
-	 * @return true if this.getId().equalsIgnoreCase(other.getId())
-	 */
-	public boolean equals(Object other) {
-		if (other instanceof ItemDescriptor) {
-			ItemDescriptor otherDescriptor = (ItemDescriptor) other;
-			return getId().equalsIgnoreCase(otherDescriptor.getId());
-		}
-		return false;
-	}
-	
-	/**
-	 * Produces a hashcode.
-	 * 
-	 * @return the hashcode
-	 */
-	public int hashCode() {
-		return id.toUpperCase().hashCode();
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ItemTreeNode.java b/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ItemTreeNode.java
deleted file mode 100755
index 6088090..0000000
--- a/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ItemTreeNode.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.launcher;
-
-
-/**
- * Internal class used to store tree structures of ItemDescriptors
- */
-class ItemTreeNode {
-	private ItemTreeNode nextSibling;
-	private ItemTreeNode firstChild;
-	private ItemDescriptor descriptor;
-
-	/**
-	 * Constructs a leaf ItemTreeNode with a given descriptor.
-	 * 
-	 * @param descriptor the descriptor
-	 */
-	public ItemTreeNode(ItemDescriptor descriptor) {
-		this.descriptor = descriptor;
-	}
-
-	/**
-	 * Adds a node to the Tree in sorted order by name.
-	 * 
-	 * @param node the node to add. Note that node.nextSibling must be null
-	 */
-	public void addSortedNode(ItemTreeNode node) {
-		if (firstChild == null) {
-			firstChild = node;
-		} else if (firstChild.descriptor.getName().compareTo(node.descriptor.getName()) > 0) {
-			node.nextSibling = firstChild;
-			firstChild = node;
-		} else {
-			ItemTreeNode cursor;
-			for (cursor = firstChild; cursor.nextSibling != null; cursor = cursor.nextSibling) {
-				ItemTreeNode sibling = cursor.nextSibling;
-				if (sibling.descriptor.getName().compareTo(node.descriptor.getName()) > 0) break;
-			}
-			node.nextSibling = cursor.nextSibling;
-			cursor.nextSibling = node;
-		}
-	}
-	
-	/**
-	 * Returns the descriptor for this node.
-	 * 
-	 * @return the descriptor
-	 */
-	public ItemDescriptor getDescriptor() {
-		return descriptor;
-	}
-
-	/**
-	 * Returns the next sibling of this node.
-	 * 
-	 * @return the next sibling, or null if none
-	 */
-	public ItemTreeNode getNextSibling() {
-		return nextSibling;
-	}
-
-	/**
-	 * Returns the first child of this node.
-	 * 
-	 * @return the first child, or null if none
-	 */
-	public ItemTreeNode getFirstChild() {
-		return firstChild;
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LauncherPlugin.java b/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LauncherPlugin.java
deleted file mode 100755
index 2d6abb3..0000000
--- a/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LauncherPlugin.java
+++ /dev/null
@@ -1,390 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.launcher;
-
-
-import java.io.*;
-import java.net.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.ui.plugin.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class LauncherPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static LauncherPlugin plugin;
-	private static ResourceBundle resourceBundle;
-
-	private static final String
-		LAUNCH_ITEMS_POINT_ID = "org.eclipse.swt.examples.launcher.launchItems",
-		LAUNCH_ITEMS_XML_CATEGORY = "category",
-		LAUNCH_ITEMS_XML_ITEM = "item",
-		LAUNCH_ITEMS_XML_ITEM_ICON = "icon",
-		LAUNCH_ITEMS_XML_ITEM_DESCRIPTION = "description",
-		LAUNCH_ITEMS_XML_PROGRAM = "program",
-		LAUNCH_ITEMS_XML_PROGRAM_PLUGIN = "pluginId",
-		LAUNCH_ITEMS_XML_PROGRAM_CLASS = "mainClass",
-		LAUNCH_ITEMS_XML_VIEW = "view",
-		LAUNCH_ITEMS_XML_VIEW_VIEWID = "viewId",
-		LAUNCH_ITEMS_XML_ATTRIB_ID = "id",
-		LAUNCH_ITEMS_XML_ATTRIB_NAME = "name",
-		LAUNCH_ITEMS_XML_ATTRIB_ENABLED = "enabled",
-		LAUNCH_ITEMS_XML_ATTRIB_CATEGORY = "category",
-		LAUNCH_ITEMS_XML_VALUE_TRUE = "true",
-		LAUNCH_ITEMS_XML_VALUE_FALSE = "false";		
-
-	static final int
-		liClosedFolder = 0,
-		liOpenFolder = 1,
-		liGenericExample = 2;
-	static final String[] imageLocations = {
-		"icons/closedFolder.gif",
-		"icons/openFolder.gif",
-		"icons/generic_example.gif" };
-	static Image images[];
-
-	/**
-	 * Constructs the LauncherPlugin.
-	 */
-	public LauncherPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-		plugin = this;
-		resourceBundle = descriptor.getResourceBundle();
-	}
-
-	/**
-	 * Clean up
-	 */
-	public void shutdown() throws CoreException {
-		super.shutdown();
-		freeResources();
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static LauncherPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Loads the resources
-	 */
-	public static void initResources() {
-		if (images == null) {
-			images = new Image[imageLocations.length];
-				
-			for (int i = 0; i < imageLocations.length; ++i) {
-				images[i] = getImageFromPlugin(plugin.getDescriptor(), imageLocations[i]);
-				if (images[i] == null) {
-					freeResources();
-					logError(getResourceString("error.CouldNotLoadResources"), null);
-					throw new IllegalStateException();
-				}
-			}
-		}	
-	}
-
-	/**
-	 * Frees the resources
-	 */
-	public static void freeResources() {
-		if (images != null) {
-			for (int i = 0; i < images.length; ++i) {
-				final Image image = images[i];
-				if (image != null) image.dispose();
-			}
-			images = null;
-		}
-	}
-
-	/**
-	 * Log an error to the ILog for this plugin
-	 * 
-	 * @param message the localized error message text
-	 * @param exception the associated exception, or null
-	 */
-	public static void logError(String message, Throwable exception) {
-		plugin.getLog().log(new Status(IStatus.ERROR, plugin.getDescriptor().getUniqueIdentifier(),
-			0, message, exception));
-	}
-
-	/**
-	 * Returns a string from the resource bundle.
-	 * We don't want to crash because of a missing String.
-	 * Returns the key if not found.
-	 */
-	public static String getResourceString(String key) {
-		try {
-			return resourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}			
-	}
-
-	/**
-	 * Returns a string from the resource bundle and binds it
-	 * with the given arguments. If the key is not found,
-	 * return the key.
-	 */
-	public static String getResourceString(String key, Object[] args) {
-		try {
-			return MessageFormat.format(getResourceString(key), args);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}
-	}
-
-	/**
-     * Constructs a list of available programs from registered extensions.
-     * 
-     * @return an ItemTreeNode representing the root of a tree of items (the root is not to be displayed)
-	 */
-	public static ItemTreeNode getLaunchItemTree() {
-		ItemTreeNode categoryTree =
-			new ItemTreeNode(new ItemDescriptor("<<Root>>", "<<Root>>", null, null, null, null, null));
-
-		// get the platform's public plugin registry
-		IPluginRegistry pluginRegistry = Platform.getPluginRegistry();
-		// retrieve all configuration elements registered at our launchItems extension-point
-		IConfigurationElement[] configurationElements =
-			pluginRegistry.getConfigurationElementsFor(LAUNCH_ITEMS_POINT_ID);
-			
-		if (configurationElements == null || configurationElements.length == 0) {
-			logError(getResourceString("error.CouldNotFindRegisteredExtensions"), null);
-			return categoryTree;
-		}
-		
-		/* Collect all launch categories -- coalesce those with same ID */
-		HashMap idMap = new HashMap();
-		for (int i = 0; i < configurationElements.length; ++i) {
-			final IConfigurationElement ce = configurationElements[i];
-			final String ceName = ce.getName();
-			final String attribId = getItemAttribute(ce, LAUNCH_ITEMS_XML_ATTRIB_ID, null);
-			
-			if (idMap.containsKey(attribId)) continue;
-			if (ceName.equalsIgnoreCase(LAUNCH_ITEMS_XML_CATEGORY)) {
-				final String attribName = getItemName(ce); 
-				ItemDescriptor theDescriptor = new ItemDescriptor(attribId, attribName,
-					getItemDescription(ce), null, null, null, null);
-				idMap.put(attribId, new ItemTreeNode(theDescriptor));
-			}
-		}
-		
-		/* Generate launch category hierarchy */
-		Set tempIdSet = new HashSet(); // used to prevent duplicates from being entered into the tree
-		for (int i = 0; i < configurationElements.length; ++i) {
-			final IConfigurationElement ce = configurationElements[i];
-			final String ceName = ce.getName();
-			final String attribId = getItemAttribute(ce, LAUNCH_ITEMS_XML_ATTRIB_ID, null);
-			
-			if (tempIdSet.contains(attribId)) continue;
-			if (ceName.equalsIgnoreCase(LAUNCH_ITEMS_XML_CATEGORY)) {
-				final ItemTreeNode theNode = (ItemTreeNode) idMap.get(attribId);
-				addItemByCategory(ce, categoryTree, theNode, idMap);
-				tempIdSet.add(attribId);
-			}
-		}
-		
-		/* Generate program tree */
-		for (int i = 0; i < configurationElements.length; ++i) {
-			final IConfigurationElement ce = configurationElements[i];
-			final String ceName = ce.getName();
-			final String attribId = getItemAttribute(ce, LAUNCH_ITEMS_XML_ATTRIB_ID, null);
-
-			if (idMap.containsKey(attribId)) continue;
-			if (ceName.equalsIgnoreCase(LAUNCH_ITEMS_XML_CATEGORY)) {
-				// ignore
-			} else if (ceName.equalsIgnoreCase(LAUNCH_ITEMS_XML_ITEM)) {
-				final String enabled = getItemAttribute(ce, LAUNCH_ITEMS_XML_ATTRIB_ENABLED, 
-					LAUNCH_ITEMS_XML_VALUE_TRUE);
-				if (enabled.equalsIgnoreCase(LAUNCH_ITEMS_XML_VALUE_FALSE)) continue;
-				ItemDescriptor theDescriptor = createItemDescriptor(ce, attribId);				
-			
-				if (theDescriptor != null) {
-					final ItemTreeNode theNode = new ItemTreeNode(theDescriptor);
-					addItemByCategory(ce, categoryTree, theNode, idMap);
-					idMap.put(attribId, theNode);
-				}
-			}
-		}
-		return categoryTree;
-	}
-
-				
-	/**
-	 * Adds an item to the category tree.
-	 */
-	private static void addItemByCategory(IConfigurationElement ce, ItemTreeNode root,
-		ItemTreeNode theNode, HashMap idMap) {
-		final String attribCategory = getItemAttribute(ce, LAUNCH_ITEMS_XML_ATTRIB_CATEGORY, null);
-				
-		// locate the parent node
-		ItemTreeNode parentNode = null;
-		if (attribCategory != null) {
-			parentNode = (ItemTreeNode) idMap.get(attribCategory);
-		}
-		if (parentNode == null) parentNode = root;
-				
-		// add the item
-		parentNode.addSortedNode(theNode);
-	}
-
-	/**
-	 * Creates an ItemDescriptor from an XML definition.
-	 * 
-	 * @param ce the IConfigurationElement describing the item
-	 * @param attribId the attribute id
-	 * @return a new ItemDescriptor, or null if an error occurs
-	 */
-	private static ItemDescriptor createItemDescriptor(IConfigurationElement ce, String attribId) {
-		final String attribName = getItemName(ce);
-		final Image  attribIcon = getItemIcon(ce);
-		final String attribDescription = getItemDescription(ce);
-
-		IConfigurationElement viewCE = getItemElement(ce, LAUNCH_ITEMS_XML_VIEW);
-		if (viewCE != null) {
-			//Item is a view
-			final String attribView = getItemAttribute(viewCE, LAUNCH_ITEMS_XML_VIEW_VIEWID, null);		
-			if (attribView == null) {
-				logError(getResourceString("error.IncompleteViewLaunchItem",
-					new Object[] { attribId } ), null);
-				return null;
-			}
-			return new ItemDescriptor(attribId, attribName, attribDescription,
-					attribIcon, attribView, null, null);
-		} else {
-			//Item is a standalone
-			IConfigurationElement programCE = getItemElement(ce, LAUNCH_ITEMS_XML_PROGRAM);
-			if (programCE != null) {
-				final String attribPluginId = getItemAttribute(programCE, LAUNCH_ITEMS_XML_PROGRAM_PLUGIN, null);
-				final String attribClass    = getItemAttribute(programCE, LAUNCH_ITEMS_XML_PROGRAM_CLASS, null);
-				if (attribClass == null || attribPluginId == null) {
-					logError(getResourceString("error.IncompleteProgramLaunchItem",
-					new Object[] { attribId } ), null);
-					return null;
-				}
-				return new ItemDescriptor(attribId, attribName, attribDescription,
-					attribIcon, null, attribClass, attribPluginId);
-			} else {
-				logError(getResourceString("error.IncompleteLaunchItem",
-					new Object[] { attribId } ), null);
-				return null;
-			}
-		}
-	}
-
-	/**
-	 * Returns the first instance of a particular child XML element.
-	 * 
-	 * @param ce the IConfigurationElement parent
-	 * @param element the name of the element to fetch
-	 * @return the element's IConfigurationElement, or null if not found
-	 */
-	private static IConfigurationElement getItemElement(IConfigurationElement ce, String element) {
-		IConfigurationElement[] elementCEs = ce.getChildren(element);
-		return (elementCEs != null && elementCEs.length != 0) ? elementCEs[0] : null;
-	}
-
-	/**
-	 * Returns the value of an XML attribute for an item.
-	 * 
-	 * @param ce the IConfigurationElement describing the item
-	 * @param attribute the attribute to fetch
-	 * @param defaultValue the value to return if the attribute is not found
-	 * @return the attribute value
-	 */
-	private static String getItemAttribute(IConfigurationElement ce, String attribute, String defaultValue) {
-		String value = ce.getAttribute(attribute);
-		return (value != null) ? value : defaultValue;
-	}
-
-	/**
-	 * Returns the description string given the IConfigurationElement for an item.
-	 * 
-	 * @param ce the IConfigurationElement describing the item
-	 * @return a newline-delimited string that describes this item, or null if none
-	 */
-	private static String getItemDescription(IConfigurationElement ce) {
-		String description = getItemAttribute(ce, LAUNCH_ITEMS_XML_ITEM_DESCRIPTION, "");
-		return (description.length() == 0) ? null : description;
-	}
-
-	/**
-	 * Returns the name of an item.
-	 * 
-	 * @param ce the IConfigurationElement describing the item
-	 * @return the attribute value
-	 */
-	private static String getItemName(IConfigurationElement ce) {
-		return getItemAttribute(ce, LAUNCH_ITEMS_XML_ATTRIB_NAME,
-			getResourceString("launchitem.Missing.name"));
-	}
-
-
-	/**
-	 * Returns the icon for an item.
-	 * 
-	 * @param ce the IConfigurationElement describing the item
-	 * @return an icon
-	 */
-	private static Image getItemIcon(IConfigurationElement ce) {
-		String iconPath = getItemAttribute(ce, LAUNCH_ITEMS_XML_ITEM_ICON, "");
-		if (iconPath.length() != 0) {
-			Image icon = getImageFromPlugin(ce.getDeclaringExtension().getDeclaringPluginDescriptor(),
-				iconPath);
-			if (icon != null) {
-				Image[] newImages = new Image[images.length + 1];
-				System.arraycopy(images, 0, newImages, 0, images.length);
-				newImages[images.length] = icon;
-				images = newImages;
-				return icon;
-			}
-		}
-		return images[liGenericExample];
-	}
-
-	/**
-	 * Gets an image from a path relative to the plugin install directory.
-	 *
-	 * @param pd the plugin descriptor for the plugin with the image
-	 * @param iconPath the path relative to the install directory
-	 * @return the image, or null if not found
-	 */
-	private static Image getImageFromPlugin(IPluginDescriptor pd, String iconPath) {
-		InputStream is = null;
-		try {
-			URL installUrl = pd.getInstallURL();
-			URL url = new URL(installUrl, iconPath);
-			is = url.openConnection().getInputStream();
-			ImageData source = new ImageData(is);
-			ImageData mask = source.getTransparencyMask();
-			Image image = new Image(null, source, mask);
-			return image;
-		} catch (Throwable ex) {
-			return null;
-		} finally {
-			try {
-				if (is != null) is.close();
-			} catch (IOException e) {
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LauncherView.java b/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LauncherView.java
deleted file mode 100755
index 663dfd6..0000000
--- a/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LauncherView.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.launcher;
-
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.part.*;
-import java.lang.reflect.*;
-
-/**
- * Launcher uses <code>org.eclipse.swt</code> 
- * to launch the other registered examples.
- * 
- * @see ViewPart
- */
-public class LauncherView extends ViewPart {
-	private Shell workbenchShell;
-	
-	private Tree launchTree;
-	private Text descriptionText;
-	private Button runButton;
-
-	/**
-	 * Constructs a LauncherView.
-	 */
-	public LauncherView() {
-		LauncherPlugin.initResources();
-	}
-
-	/**
-	 * Creates the example.
-	 * 
-	 * @see ViewPart#createPartControl
-	 */
-	public void createPartControl(Composite parent) {
-		workbenchShell = getSite().getShell();
-		parent.setLayout(new SplitLayout());
-				
-		Group launchGroup = new Group(parent, SWT.NULL);
-		launchGroup.setText(LauncherPlugin.getResourceString("view.launchGroup.text"));
-		
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 2;
-		launchGroup.setLayout(gridLayout);
-
-		launchTree = new Tree(launchGroup, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-		gridData.horizontalSpan = 2;
-		launchTree.setLayoutData(gridData);
-		launchTree.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				final ItemDescriptor item = getSelectedItem();
-				setDescriptionByItem(item);
-			}
-			public void widgetDefaultSelected(SelectionEvent event) {
-				final ItemDescriptor item = getSelectedItem();
-				setDescriptionByItem(item);
-				launchItem(getSelectedItem());
-			}
-		});
-		launchTree.addTreeListener(new TreeListener() {
-			public void treeCollapsed(TreeEvent event) {
-				final TreeItem item = (TreeItem) event.item;
-				if (item == null) return;
-				item.setImage(LauncherPlugin.images[LauncherPlugin.liClosedFolder]);
-			}
-			public void treeExpanded(TreeEvent event) {
-				final TreeItem item = (TreeItem) event.item;
-				if (item == null) return;
-				item.setImage(LauncherPlugin.images[LauncherPlugin.liOpenFolder]);
-			}
-		});
-
-		runButton = new Button(launchGroup, SWT.PUSH);
-		runButton.setText(LauncherPlugin.getResourceString("view.launchButton.text"));
-		runButton.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				launchItem(getSelectedItem());
-			}
-			public void widgetDefaultSelected(SelectionEvent event) {
-			}
-		});
-
-		Group descriptionGroup = new Group(parent, SWT.NULL);
-		descriptionGroup.setText(LauncherPlugin.getResourceString("view.descriptionGroup.text"));
-		descriptionGroup.setLayout(new FillLayout());
-		
-		descriptionText = new Text(descriptionGroup, SWT.MULTI | SWT.BORDER |
-			SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY);
-
-		setDescriptionByItem(null);
-		setItemDescriptors(LauncherPlugin.getLaunchItemTree());
-	}
-
-	/**
-	 * Called when we must grab focus.
-	 * 
-	 * @see org.eclipse.ui.part.ViewPart#setFocus
-	 */
-	public void setFocus()  {
-		launchTree.setFocus();
-		runButton.getShell().setDefaultButton(runButton);
-	}
-
-	/**
-	 * Called when the View is to be disposed
-	 */	
-	public void dispose() {
-		workbenchShell = null;
-		launchTree = null;
-		descriptionText = null;
-		runButton = null;		
-		super.dispose();
-	}
-
-	/**
-	 * Installs a new launch list.
-	 * 
-	 * @param newRoot the new tree of launch items for the UI
-	 */
-	public void setItemDescriptors(final ItemTreeNode newRoot) {
-		if (workbenchShell == null) return;
-		workbenchShell.getDisplay().syncExec(new Runnable() {
-			public void run() {
-				if ((launchTree == null) || (launchTree.isDisposed())) return;
-				launchTree.removeAll();
-			
-				for (ItemTreeNode node = newRoot.getFirstChild(); node != null;
-					node = node.getNextSibling()) {
-					doNode(node, new TreeItem(launchTree, SWT.NONE)); // top-level TreeItem
-				}
-			}
-			private void addGroup(TreeItem parent, ItemTreeNode node) {
-				for (;node != null; node = node.getNextSibling()) {
-					doNode(node, new TreeItem(parent, SWT.NONE)); // TreeItem at depth > 0
-				}
-			}
-			private void doNode(ItemTreeNode node, TreeItem treeItem) {
-				final ItemDescriptor item = node.getDescriptor();
-				treeItem.setText(item.getName());
-				treeItem.setData(item);
-				if (node.getDescriptor().isFolder()) {
-					treeItem.setExpanded(false);
-					treeItem.setImage(LauncherPlugin.images[LauncherPlugin.liClosedFolder]);
-				} else {
-					treeItem.setImage(node.getDescriptor().getIcon());
-				}
-				addGroup(treeItem, node.getFirstChild());
-			}
-		});
-	}
-
-	/**
-	 * Runs the specified launch item.
-	 * 
-	 * @param itemDescriptor the launch item to execute
-	 */
-	private void launchItem(ItemDescriptor itemDescriptor) {
-		/* Case 1: The launch item is a view */
-		String pluginViewId = itemDescriptor.getView ();
-		if (pluginViewId != null) {
-			final IWorkbenchPart workbenchPart = this;
-			final IWorkbenchPartSite workbenchPartSite = workbenchPart.getSite();
-			final IWorkbenchPage workbenchPage = workbenchPartSite.getPage();
-			try {
-				workbenchPage.showView(pluginViewId);
-			} catch (PartInitException e) {
-				LauncherPlugin.logError(LauncherPlugin.getResourceString("run.error.Invocation"), e);
-			}
-			return;
-		}
-		/* Case 2: The launch item is a standalone program */
-		if (workbenchShell == null) return;
-		try {
-			Class cl = Class.forName(itemDescriptor.getMainType());
-			Display display = workbenchShell.getDisplay();
-			Object exampleInstance = cl.newInstance();
-			Method openMethod = cl.getDeclaredMethod("open", new Class[] {Display.class});
-			openMethod.invoke(exampleInstance, new Object[] {display});
-		} catch (NoSuchMethodException e) {
-			LauncherPlugin.logError(LauncherPlugin.getResourceString("run.error.DoesNotImplementMethod"), null);
-		} catch (ClassNotFoundException e) {
-			LauncherPlugin.logError(LauncherPlugin.getResourceString("run.error.CouldNotFindClass"), e);
-		} catch (Exception e) {
-			LauncherPlugin.logError(LauncherPlugin.getResourceString("run.error.CouldNotInstantiateClass"), e);
-		}		
-	}
-
-	/**
-	 * Obtains the selected launch item.
-	 * 
-	 * @return the currently selected ItemDescriptor
-	 */
-	private ItemDescriptor getSelectedItem() {
-		final TreeItem[] selections = launchTree.getSelection();
-		if (selections.length == 0) return null;
-		final ItemDescriptor itemDescriptor = (ItemDescriptor) selections[0].getData();
-		return itemDescriptor;
-	}
-	
-	/**
-	 * Sets the currently visible description text to reflect that of a particular ItemDescriptor.
-	 *
-	 * @param itemDescriptor the launch item whose description is to be displayed, or null if none
-	 */
-	private void setDescriptionByItem(ItemDescriptor itemDescriptor) {
-		String description;
-		if (itemDescriptor == null) {
-			description = LauncherPlugin.getResourceString("launchitem.Null.description");
-			if (runButton != null) runButton.setEnabled(false);
-		} else {
-			description = itemDescriptor.getDescription();
-			if (description == null)
-				description = LauncherPlugin.getResourceString("launchitem.Missing.description");
-			if (runButton != null) {
-				runButton.setEnabled(itemDescriptor.getView() != null || itemDescriptor.getMainType() != null);
-			}
-		}
-		descriptionText.setText(description);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/SplitLayout.java b/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/SplitLayout.java
deleted file mode 100755
index 47dbfdd..0000000
--- a/examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/SplitLayout.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.launcher;
-
- 
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * A Layout class that automatically switches from a horizontal split to a vertical
- * split layout to accomodate changing size conditions.
- * 
- * Later on we might improve this class to take into account the "preferred" size of
- * the widgets.
- */
-public class SplitLayout extends Layout {
-	private static final int
-		splitHorizontally = 0,
-		splitVertically = 1;
-	private int splitDirection = splitHorizontally;
-
-	public int spacing = 3;
-	public int marginTop = 3;
-	public int marginLeft = 3;
-	public int marginRight = 3;
-	public int marginBottom = 3;
-
-	/**
-	 * Creates a new layout
-	 */
-	public SplitLayout() {
-	}
-
-	/**
-	 * @see Layout#computeSize(Composite, int, int, boolean)
-	 */
-	protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) {
-		if (wHint == SWT.DEFAULT) {
-			if (hHint == SWT.DEFAULT) {
-				Point hSplitSize = computeHSplitSize(composite, wHint, hHint, flushCache);
-				Point vSplitSize = computeVSplitSize(composite, wHint, hHint, false);
-				int hSplitArea = hSplitSize.x * hSplitSize.y;
-				int vSplitArea = vSplitSize.x * vSplitSize.y;
-				// Choose direction consuming least area
-				if (hSplitArea < vSplitArea) {
-					splitDirection = splitHorizontally;
-					return hSplitSize;
-				} else {
-					splitDirection = splitVertically;
-					return vSplitSize;
-				}
-			} else {
-				// Constrained in height: split vertically
-				splitDirection = splitVertically;
-				return computeVSplitSize(composite, wHint, hHint, flushCache);
-			}
-		} else {
-			if (hHint == SWT.DEFAULT) {
-				// Constrained in width: split horizontally
-				splitDirection = splitHorizontally;
-				return computeHSplitSize(composite, wHint, hHint, flushCache);
-			} else {
-				if (hHint < wHint) {
-					splitDirection = splitVertically;
-					return computeVSplitSize(composite, wHint, hHint, flushCache);
-				} else {
-					splitDirection = splitHorizontally;
-					return computeHSplitSize(composite, wHint, hHint, flushCache);
-				}					
-			}
-		}
-	}
-	/**
-	 * @see Layout#layout(Composite, boolean)
-	 */
-	protected void layout(Composite composite, boolean flushCache) {
-		Rectangle clientArea = composite.getClientArea();
-		computeSize(composite, clientArea.width, clientArea.height, false);
-		
-		Control[] children = composite.getChildren();
-		clientArea.x += marginLeft;
-		clientArea.y += marginTop;
-		clientArea.width -= marginRight + marginLeft;
-		clientArea.height -= marginBottom + marginTop;
-		Point position = new Point(clientArea.x, clientArea.y);
-
-		for (int i = 0; i < children.length; ++i) {
-			final Control child = children[i];
-			final Rectangle bounds;
-			if (splitDirection == splitHorizontally) {
-				int height = clientArea.height / children.length;
-				bounds = new Rectangle(position.x, position.y, clientArea.width, height);
-				position.y += height + spacing;
-			} else {
-				int width = clientArea.width / children.length;
-				bounds = new Rectangle(position.x, position.y, width, clientArea.height);
-				position.x += width + spacing;
-			}
-			bounds.width = Math.max(bounds.width, 0);
-			bounds.height = Math.max(bounds.height, 0);
-			child.setBounds(bounds);
-		}
-	}
-
-	private Point computeHSplitSize(Composite composite, int wHint, int hHint, boolean flushCache) {
-		Point size = new Point(marginLeft + marginRight, marginTop + marginBottom);
-		Control[] children = composite.getChildren();
-		for (int i = 0; i < children.length; ++i) {
-			final Control child = children[i];
-
-			Point childSize = child.computeSize(wHint, hHint, flushCache);
-			size.x = Math.max(size.x, childSize.x);
-			size.y += childSize.y + spacing;
-		}
-		return size;
-	}
-
-	private Point computeVSplitSize(Composite composite, int wHint, int hHint, boolean flushCache) {
-		Point size = new Point(marginLeft + marginRight, marginTop + marginBottom);
-		Control[] children = composite.getChildren();
-		for (int i = 0; i < children.length; ++i) {
-			final Control child = children[i];
-
-			Point childSize = child.computeSize(wHint, hHint, flushCache);
-			size.x += childSize.x + spacing;
-			size.y = Math.max(size.y, childSize.y);
-		}
-		return size;
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.layouts/.classpath b/examples/org.eclipse.swt.examples.layouts/.classpath
deleted file mode 100644
index da6f3cc..0000000
--- a/examples/org.eclipse.swt.examples.layouts/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="/org.eclipse.swt.examples"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.core.runtime_2.1.0/runtime.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.ui.workbench_2.1.0/workbench.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jface_2.1.0/jface.jar"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.swt.examples.layouts/.cvsignore b/examples/org.eclipse.swt.examples.layouts/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/examples/org.eclipse.swt.examples.layouts/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.layouts/.project b/examples/org.eclipse.swt.examples.layouts/.project
deleted file mode 100644
index e5d7079..0000000
--- a/examples/org.eclipse.swt.examples.layouts/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.swt.examples.layouts</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.swt</project>
-		<project>org.eclipse.swt.examples</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.swt.examples.layouts/about.html b/examples/org.eclipse.swt.examples.layouts/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/examples/org.eclipse.swt.examples.layouts/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.layouts/build.properties b/examples/org.eclipse.swt.examples.layouts/build.properties
deleted file mode 100644
index 1c236e8..0000000
--- a/examples/org.eclipse.swt.examples.layouts/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = doc-html/,\
-               icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               *.jar
-
-src.includes = about.html
-
-source.layouts.jar = src/
diff --git a/examples/org.eclipse.swt.examples.layouts/doc-html/hglegal.htm b/examples/org.eclipse.swt.examples.layouts/doc-html/hglegal.htm
deleted file mode 100644
index f5871b7..0000000
--- a/examples/org.eclipse.swt.examples.layouts/doc-html/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="../../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples.layouts/doc-html/ngibmcpy.gif b/examples/org.eclipse.swt.examples.layouts/doc-html/ngibmcpy.gif
deleted file mode 100644
index c786e43..0000000
--- a/examples/org.eclipse.swt.examples.layouts/doc-html/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.layouts/doc-html/swt_layout_ex.html b/examples/org.eclipse.swt.examples.layouts/doc-html/swt_layout_ex.html
deleted file mode 100644
index 2eb39e4..0000000
--- a/examples/org.eclipse.swt.examples.layouts/doc-html/swt_layout_ex.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Layout Example</title>
-</head>
-<body>
-
-<h2>SWT example - Layouts</h2>
-
-<p>
-This example is a simple demonstration of common SWT layouts. 
-It consists of a tab folder where each tab in the folder allows the 
-user to interact with a different SWT layout.
-The user can insert widgets into a layout and set the values of the layout data
-using a property sheet.  When the user has a suitable arrangement, the underlying
-code can be generated by clicking on the <strong>Code</strong> button.
-</p>
-
-<h3>Running the example</h3>
-<p>
-Follow the <a href="../../org.eclipse.swt.examples/doc-html/swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.layoutexample.LayoutExample</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>Layouts</strong> item from the <strong>Workbench Views</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.layouts/icons/layouts_example.gif b/examples/org.eclipse.swt.examples.layouts/icons/layouts_example.gif
deleted file mode 100644
index d945dde..0000000
--- a/examples/org.eclipse.swt.examples.layouts/icons/layouts_example.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.layouts/plugin.properties b/examples/org.eclipse.swt.examples.layouts/plugin.properties
deleted file mode 100644
index 59ffc92..0000000
--- a/examples/org.eclipse.swt.examples.layouts/plugin.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName = Eclipse.org
-plugin.SWTLayoutExample.name = SWT Layout Example Plugin
-category.SWTExamples.name = SWT Examples
-view.LayoutExample.name = SWT Layouts
-
-launchcategory.SWTViewExamples.name = Workbench Views
-launchcategory.SWTViewExamples.description = \
-	A collection of Standard Widget Toolkit examples that run as Views inside the Workbench.  \
-	These examples will create a new View in the current Perspective.
-
-launchitem.LayoutExample.name = Layouts
-launchitem.LayoutExample.description = \
-	This example is a simple demonstration of common SWT layouts. \n\n\
-	It consists of a tab folder where each tab allows the \
-	user to interact with a different SWT layout.\
-	The user can insert widgets into a layout and set the values of the layout data \
-	using a property sheet.  When the user has a suitable arrangement, code can be \
-	generated by clicking on the Code button.
diff --git a/examples/org.eclipse.swt.examples.layouts/plugin.xml b/examples/org.eclipse.swt.examples.layouts/plugin.xml
deleted file mode 100644
index a2428dd..0000000
--- a/examples/org.eclipse.swt.examples.layouts/plugin.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-   id="org.eclipse.swt.examples.layouts"
-   name="%plugin.SWTLayoutExample.name"
-   version="2.1.0"
-   provider-name="%providerName"
-   class="org.eclipse.swt.examples.layouts.LayoutPlugin">
-
-<!-- Runtime -->
-<!-- Runtime -->
-   <runtime>
-      <library name="layouts.jar">
-            <packages prefixes="org.eclipse.swt.examples.layouts"/>
-      </library>
-   </runtime>
-<!-- Required plugins -->
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.swt"/>
-      <import plugin="org.eclipse.swt.examples"/>
-   </requires>
-
-
-<!-- Extension points -->
-<!-- Extensions -->
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="%view.LayoutExample.name"
-            icon="icons/layouts_example.gif"
-            category="org.eclipse.swt.examples.category"
-            class="org.eclipse.swt.examples.layouts.LayoutView"
-            id="org.eclipse.swt.examples.layouts.view">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.swt.examples.launcher.launchItems">
-      <category
-            name="%launchcategory.SWTViewExamples.name"
-            description="%launchcategory.SWTViewExamples.description"
-            id="org.eclipse.swt.examples.launchViewCategory">
-      </category>
-      <item
-            name="%launchitem.LayoutExample.name"
-            icon="icons/layouts_example.gif"
-            description="%launchitem.LayoutExample.description"
-            category="org.eclipse.swt.examples.launchViewCategory"
-            id="org.eclipse.swt.examples.layouts.viewlauncher">
-         <view
-               viewId="org.eclipse.swt.examples.layouts.view">
-         </view>
-      </item>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.swt.examples.layouts/src/import.properties b/examples/org.eclipse.swt.examples.layouts/src/import.properties
deleted file mode 100644
index 58344f0..0000000
--- a/examples/org.eclipse.swt.examples.layouts/src/import.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# Persist project settings for later import 
-natures = org.eclipse.jdt.core.javanature; org.eclipse.pde.PluginNature
-builders = org.eclipse.jdt.core.javabuilder; org.eclipse.pde.ManifestBuilder; org.eclipse.pde.SchemaBuilder
-var.ECLIPSE_PLUGINS = <<ECLIPSE_PLUGINS>>
diff --git a/examples/org.eclipse.swt.examples.layouts/src/org/eclipse/swt/examples/layouts/LayoutPlugin.java b/examples/org.eclipse.swt.examples.layouts/src/org/eclipse/swt/examples/layouts/LayoutPlugin.java
deleted file mode 100644
index d207dfd..0000000
--- a/examples/org.eclipse.swt.examples.layouts/src/org/eclipse/swt/examples/layouts/LayoutPlugin.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layouts;
-
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.plugin.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class LayoutPlugin extends AbstractUIPlugin {
-	/**
-	 * The constructor.
-	 */
-	public LayoutPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-	}
-	
-	/**
-	 * Clean up
-	 */
-	public void shutdown() throws CoreException {
-		super.shutdown();
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.layouts/src/org/eclipse/swt/examples/layouts/LayoutView.java b/examples/org.eclipse.swt.examples.layouts/src/org/eclipse/swt/examples/layouts/LayoutView.java
deleted file mode 100644
index a765800..0000000
--- a/examples/org.eclipse.swt.examples.layouts/src/org/eclipse/swt/examples/layouts/LayoutView.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layouts;
-
- 
-import org.eclipse.swt.examples.layoutexample.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.part.*;
-
-/**
- * <code>Layouts</code> is a simple demonstration
- * of the layouts defined by SWT.  It consists of a workbench
- * view and tab folder where each tab in the folder allows the
- * user to interact with a layout.
- * 
- * @see ViewPart
- */
-public class LayoutView extends ViewPart {
-	LayoutExample instance = null;
-	
-	/**
-	 * Create the example
-	 * 
-	 * @see ViewPart#createPartControl
-	 */
-	public void createPartControl(Composite frame) {
-		instance = new LayoutExample(frame);
-	}
-
-	/**
-	 * Called when we must grab focus.
-	 * 
-	 * @see org.eclipse.ui.part.ViewPart#setFocus
-	 */
-	public void setFocus() {
-		instance.setFocus();
-	}
-
-	/**
-	 * Called when the View is to be disposed
-	 */	
-	public void dispose() {
-		instance.dispose();
-		instance = null;
-		super.dispose();
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.ole.win32/.classpath b/examples/org.eclipse.swt.examples.ole.win32/.classpath
deleted file mode 100755
index 34eb16e..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.core.runtime_2.1.0/runtime.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.ui.workbench_2.1.0/workbench.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jface_2.1.0/jface.jar"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.swt.examples.ole.win32/.cvsignore b/examples/org.eclipse.swt.examples.ole.win32/.cvsignore
deleted file mode 100755
index c5e82d7..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.ole.win32/.project b/examples/org.eclipse.swt.examples.ole.win32/.project
deleted file mode 100644
index 9ea059d..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.swt.examples.ole.win32</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.swt</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.swt.examples.ole.win32/about.html b/examples/org.eclipse.swt.examples.ole.win32/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.ole.win32/build.properties b/examples/org.eclipse.swt.examples.ole.win32/build.properties
deleted file mode 100755
index c30cc18..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = doc-html/,\
-               icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               *.jar
-
-src.includes = about.html
-            
-source.olewin32.jar = src/
diff --git a/examples/org.eclipse.swt.examples.ole.win32/doc-html/hglegal.htm b/examples/org.eclipse.swt.examples.ole.win32/doc-html/hglegal.htm
deleted file mode 100755
index f5871b7..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/doc-html/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="../../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples.ole.win32/doc-html/ngibmcpy.gif b/examples/org.eclipse.swt.examples.ole.win32/doc-html/ngibmcpy.gif
deleted file mode 100755
index c786e43..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/doc-html/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.ole.win32/doc-html/swt_ole_ex.html b/examples/org.eclipse.swt.examples.ole.win32/doc-html/swt_ole_ex.html
deleted file mode 100755
index 834035c..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/doc-html/swt_ole_ex.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - OLE Web Browser</title>
-</head>
-<body>
-
-<h2>SWT example - OLE Web Browser</h2>
-
-<p>
-This example shows how to embed an Active X control into an SWT application or an Eclipse view.
-<p>
-</p>
-When the view is opened, it will create an instance of the Windows Internet Explorer
-control.  The OLE web browser has
-<strong>Back</strong> and <strong>Forward</strong> buttons to take you to recently visited pages.  The browser also contains
-a <strong>Home</strong> button to take you to the web browser's home page, a <strong>Stop</strong> button which stops the 
-current transfer, a <strong>Search</strong> button which will search for text typed in the <strong>Address</strong> text field, and
-a <strong>Refresh</strong> button which re-draws the contents of the currently displayed page. There is also a
-<strong>Go</strong> button which, when clicked, will attempt to load the page specified in the <strong>Address</strong> field.
-</p>
-
-<h3>Running the example</h3>
-
-<p>
-From Eclipse's <strong>Window</strong> menu select <strong>Show View</strong> &gt; <strong>Other</strong>.  
-In the <strong>Show View</strong> dialog, expand <strong>SWT Examples</strong> and select
-the view named <strong>OLE Web Browser (win32)</strong>. A view containing a web browser will appear.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>OLE Web Browser</strong> item from the <strong>Win32 only</strong> category and click <strong>Run</strong>.
-</p>
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples.ole.win32/icons/backward_nav.gif b/examples/org.eclipse.swt.examples.ole.win32/icons/backward_nav.gif
deleted file mode 100755
index 5fcf41b..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/icons/backward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.ole.win32/icons/forward_nav.gif b/examples/org.eclipse.swt.examples.ole.win32/icons/forward_nav.gif
deleted file mode 100755
index 3b9b6af..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/icons/forward_nav.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.ole.win32/icons/home_nav.gif b/examples/org.eclipse.swt.examples.ole.win32/icons/home_nav.gif
deleted file mode 100755
index 77a2306..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/icons/home_nav.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.ole.win32/icons/refresh_nav.gif b/examples/org.eclipse.swt.examples.ole.win32/icons/refresh_nav.gif
deleted file mode 100755
index e270e18..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/icons/refresh_nav.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.ole.win32/icons/search_nav.gif b/examples/org.eclipse.swt.examples.ole.win32/icons/search_nav.gif
deleted file mode 100755
index 73ac91b..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/icons/search_nav.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.ole.win32/icons/stop_nav.gif b/examples/org.eclipse.swt.examples.ole.win32/icons/stop_nav.gif
deleted file mode 100755
index 653d347..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/icons/stop_nav.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.ole.win32/icons/webbrowser_example.gif b/examples/org.eclipse.swt.examples.ole.win32/icons/webbrowser_example.gif
deleted file mode 100755
index 895e221..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/icons/webbrowser_example.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.ole.win32/plugin.properties b/examples/org.eclipse.swt.examples.ole.win32/plugin.properties
deleted file mode 100755
index f7fa735..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/plugin.properties
+++ /dev/null
@@ -1,60 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName = Eclipse.org
-plugin.SWTOLEExample.name = SWT OLE Example Plugin (Win32)
-category.SWTExamples.name = SWT Examples
-view.OLEWebBrowserExample.name = OLE Web Browser (Win32)
-
-launchcategory.SWTWin32OnlyExamples.name = Win32 only
-launchcategory.SWTWin32OnlyExamples.description = \
-	A collection of Standard Widget Toolkit examples for Windows systems only.
-
-launchitem.OLEWebBrowserExample.name = OLE Web Browser
-launchitem.OLEWebBrowserExample.description = \
-	This example demonstrates how to embed an Active X control into an SWT application or an Eclipse view.\n\n\
-	When the view is opened, it will create an instance of the Windows Internet Explorer \
-	control.  The OLE Web Browser has \
-	Back and Forward buttons to take you to recently visited pages.  The browser also contains \
-	a Home button to take you to the web browser's home page, a Stop button which stops the \
-	current transfer, a Search button which will search for text typed in the Address text field, and \
-	a Refresh button which re-draws the contents of the currently displayed page. There is also a \
-	Go button which, when clicked, will attempt to load the page specified in the Address field.
-
-browser.Back.text = Backward
-browser.Back.tooltip = Go to previous Web site in the history list
-
-browser.Forward.text = Forward
-browser.Forward.tooltip = Go to next Web site in the history list
-
-browser.Home.text = Home
-browser.Home.tooltip = Go to home Web site
-
-browser.Stop.text = Stop
-browser.Stop.tooltip = Stop loading current Web site
-
-browser.Refresh.text = Refresh
-browser.Refresh.tooltip = Refresh current Web site
-
-browser.Search.text = Search
-browser.Search.tooltip = Search the Web
-
-browser.Address.label = Address :
-
-browser.Go.text = Go
-
-browser.State.Uninitialized.text = Not ready.
-browser.State.Loading.text = Loading Web site...
-browser.State.Loaded.text = Ready.
-browser.State.Interactive.text = Loading Web site...
-browser.State.Complete.text = Done.
-
-error.CouldNotLoadResources = Unable to load resources
-error.CouldNotCreateBrowserControl = Unable to create <<Browser Control>>
diff --git a/examples/org.eclipse.swt.examples.ole.win32/plugin.xml b/examples/org.eclipse.swt.examples.ole.win32/plugin.xml
deleted file mode 100755
index 0fdfb59..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/plugin.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- File written by PDE 1.0 -->
-<plugin
-   id="org.eclipse.swt.examples.ole.win32"
-   name="%plugin.SWTOLEExample.name"
-   version="2.1.0"
-   provider-name="%providerName"
-   class="org.eclipse.swt.examples.ole.win32.OlePlugin">
-<!-- Required plugins -->
-<requires>
-   <import plugin="org.eclipse.core.runtime"/>
-   <import plugin="org.eclipse.core.resources"/>
-   <import plugin="org.eclipse.ui"/>
-   <import plugin="org.eclipse.swt"/>
-</requires>
-
-<!-- Runtime -->
-<!-- Runtime -->
-<runtime>
-   <library name="olewin32.jar">
-      <packages prefixes="org.eclipse.swt.examples.ole"/>
-   </library>
-</runtime>
-
-<!-- Extensions -->
-<!-- Extension points -->
-<extension
-      point="org.eclipse.ui.views">
-   <view
-         name="%view.OLEWebBrowserExample.name"
-         icon="icons/webbrowser_example.gif"
-         category="org.eclipse.swt.examples.category"
-         class="org.eclipse.swt.examples.ole.win32.OleBrowserView"
-         id="org.eclipse.swt.examples.ole.win32.browserView">
-   </view>
-</extension>
-<extension
-      point="org.eclipse.swt.examples.launcher.launchItems">
-   <category
-         name="%launchcategory.SWTWin32OnlyExamples.name"
-         description="%launchcategory.SWTWin32OnlyExamples.description"
-         id="org.eclipse.swt.examples.launchWin32OnlyCategory">
-   </category>
-   <item
-         name="%launchitem.OLEWebBrowserExample.name"
-         icon="icons/webbrowser_example.gif"
-         description="%launchitem.OLEWebBrowserExample.description"
-         category="org.eclipse.swt.examples.launchWin32OnlyCategory"
-         id="org.eclipse.swt.examples.ole.win32.viewlauncher">
-      <view
-            viewId="org.eclipse.swt.examples.ole.win32.browserView">
-      </view>
-   </item>
-</extension>
-</plugin>
diff --git a/examples/org.eclipse.swt.examples.ole.win32/src/import.properties b/examples/org.eclipse.swt.examples.ole.win32/src/import.properties
deleted file mode 100644
index 58344f0..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/src/import.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# Persist project settings for later import 
-natures = org.eclipse.jdt.core.javanature; org.eclipse.pde.PluginNature
-builders = org.eclipse.jdt.core.javabuilder; org.eclipse.pde.ManifestBuilder; org.eclipse.pde.SchemaBuilder
-var.ECLIPSE_PLUGINS = <<ECLIPSE_PLUGINS>>
diff --git a/examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OleBrowserView.java b/examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OleBrowserView.java
deleted file mode 100755
index 84323f8..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OleBrowserView.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.ole.win32;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.ole.win32.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.part.*;
-
-/**
- * Ole uses <code>org.eclipse.swt</code> to demonstrate Win32 OLE / ActiveX
- * integration.
- * 
- * @see ViewPart
- */
-public class OleBrowserView extends ViewPart {
-
-	private Composite      displayArea;
-
-	private OleFrame       webFrame;
-	private OleWebBrowser  webBrowser;
-	private Text           webUrl;
-	private OleControlSite webControlSite;
-	private ProgressBar    webProgress;
-	private Label          webStatus;
-	private Button         webNavigateButton;
-	
-	private ToolItem webCommandBackward;
-	private ToolItem webCommandForward;
-	private ToolItem webCommandHome;
-	private ToolItem webCommandStop;
-	private ToolItem webCommandRefresh;
-	private ToolItem webCommandSearch;
-	
-	private boolean activated = false;
-
-	private static final int DISPID_AMBIENT_DLCONTROL = -5512;
-	private static final int DLCTL_NO_SCRIPTS = 0x80;
-	
-	/**
-	 * Constructs the OLE browser view.
-	 */
-	public OleBrowserView() {
-		OlePlugin.initResources();
-	}
-
-	/**
-	 * Creates the example.
-	 * 
-	 * @see ViewPart#createPartControl
-	 */
-	public void createPartControl(Composite parent) {
-		displayArea = new Composite(parent, SWT.NONE);
-
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 3;
-		displayArea.setLayout(gridLayout);
-		
-		createToolbar();
-		createBrowserFrame();		
-		createStatusArea();
-		createBrowserControl();	
-	}
-	
-	/**
-	 * Cleanup
-	 */
-	public void dispose() {
-		if (activated) {
-			webControlSite.deactivateInPlaceClient();
-			activated = false;
-		}
-		if (webBrowser != null) webBrowser.dispose();
-		webBrowser = null;
-		super.dispose();
-	}
-	
-	/**
-	 * Called when we must grab focus.
-	 * 
-	 * @see org.eclipse.ui.part.ViewPart#setFocus
-	 */
-	public void setFocus()  {
-		webUrl.setFocus();
-	}
-
-	/**
-	 * Creates the Web browser toolbar.
-	 */
-	private void createToolbar() {
-		// Add a toolbar
-		ToolBar bar = new ToolBar(displayArea, SWT.NONE);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.horizontalSpan = 3;
-		bar.setLayoutData(gridData);
-		
-		// Add a button to navigate backwards through previously visited web sites
-		webCommandBackward = new ToolItem(bar, SWT.NONE);
-		webCommandBackward.setToolTipText(OlePlugin.getResourceString("browser.Back.tooltip"));
-		webCommandBackward.setText(OlePlugin.getResourceString("browser.Back.text"));
-		webCommandBackward.setImage(OlePlugin.images[OlePlugin.biBack]);
-		webCommandBackward.setEnabled(false);
-		webCommandBackward.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (webBrowser == null) return;
-				webBrowser.GoBack();
-			}
-		});
-	
-		// Add a button to navigate forward through previously visited web sites
-		webCommandForward = new ToolItem(bar, SWT.NONE);
-		webCommandForward.setToolTipText(OlePlugin.getResourceString("browser.Forward.tooltip"));
-		webCommandForward.setText(OlePlugin.getResourceString("browser.Forward.text"));
-		webCommandForward.setImage(OlePlugin.images[OlePlugin.biForward]);
-		webCommandForward.setEnabled(false);
-		webCommandForward.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (webBrowser == null) return;
-				webBrowser.GoForward();
-			}
-		});
-
-		// Add a separator
-		new ToolItem(bar, SWT.SEPARATOR);
-		
-		// Add a button to navigate to the Home page
-		webCommandHome = new ToolItem(bar, SWT.NONE);
-		webCommandHome.setToolTipText(OlePlugin.getResourceString("browser.Home.tooltip"));
-		webCommandHome.setText(OlePlugin.getResourceString("browser.Home.text"));
-		webCommandHome.setImage(OlePlugin.images[OlePlugin.biHome]);
-		webCommandHome.setEnabled(false);
-		webCommandHome.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (webBrowser == null) return;
-				webBrowser.GoHome();
-			}
-		});
-
-		// Add a button to abort web page loading
-		webCommandStop = new ToolItem(bar, SWT.NONE);
-		webCommandStop.setToolTipText(OlePlugin.getResourceString("browser.Stop.tooltip"));
-		webCommandStop.setText(OlePlugin.getResourceString("browser.Stop.text"));
-		webCommandStop.setImage(OlePlugin.images[OlePlugin.biStop]);
-		webCommandStop.setEnabled(false);
-		webCommandStop.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (webBrowser == null) return;
-				webBrowser.Stop();
-			}
-		});
-
-		// Add a button to refresh the current web page
-		webCommandRefresh = new ToolItem(bar, SWT.NONE);
-		webCommandRefresh.setToolTipText(OlePlugin.getResourceString("browser.Refresh.tooltip"));
-		webCommandRefresh.setText(OlePlugin.getResourceString("browser.Refresh.text"));
-		webCommandRefresh.setImage(OlePlugin.images[OlePlugin.biRefresh]);
-		webCommandRefresh.setEnabled(false);
-		webCommandRefresh.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (webBrowser == null) return;
-				webBrowser.Refresh();
-			}
-		});
-
-		// Add a separator
-		new ToolItem(bar, SWT.SEPARATOR);
-
-		// Add a button to search the web
-		webCommandSearch = new ToolItem(bar, SWT.NONE);
-		webCommandSearch.setToolTipText(OlePlugin.getResourceString("browser.Search.tooltip"));
-		webCommandSearch.setText(OlePlugin.getResourceString("browser.Search.text"));
-		webCommandSearch.setImage(OlePlugin.images[OlePlugin.biSearch]);
-		webCommandSearch.setEnabled(false);
-		webCommandSearch.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (webBrowser == null) return;
-				webBrowser.GoSearch();
-			}
-		});
-
-		// Add a text area for Users to enter a url
-		Composite addressBar = new Composite(displayArea, SWT.NONE);
-		gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-		gridData.horizontalSpan = 3;
-		addressBar.setLayoutData(gridData);
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 3;
-		addressBar.setLayout(gridLayout);
-
-		Label addressLabel = new Label(addressBar, SWT.NONE);
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
-		addressLabel.setLayoutData(gridData);
-		addressLabel.setText(OlePlugin.getResourceString("browser.Address.label"));
-		addressLabel.setFont(OlePlugin.browserFont);
-		
-		webUrl = new Text(addressBar, SWT.SINGLE | SWT.BORDER);
-		webUrl.setFont(OlePlugin.browserFont);
-		gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-		webUrl.setLayoutData(gridData);
-		webUrl.addFocusListener(new FocusAdapter() {
-			public void focusGained(FocusEvent e) {
-				webNavigateButton.getShell().setDefaultButton(webNavigateButton);
-			}
-		});
-	
-		// Add a button to navigate to the web site specified in the Text area defined above
-		webNavigateButton = new Button(addressBar, SWT.PUSH);
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
-		webNavigateButton.setLayoutData(gridData);
-		webNavigateButton.setText(OlePlugin.getResourceString("browser.Go.text"));
-		webNavigateButton.setFont(OlePlugin.browserFont);
-		webNavigateButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				if (webBrowser == null) return;
-				webBrowser.Navigate(webUrl.getText());
-			}
-		});
-	}
-
-	/**
-	 * Creates the Web browser OleFrame.
-	 */
-	private void createBrowserFrame() {
-		// Every control must have an associated OleFrame:
-		webFrame = new OleFrame(displayArea, SWT.NONE);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-		gridData.horizontalSpan = 3;
-		webFrame.setLayoutData(gridData);
-	}
-	
-	/**
-	 * Creates the Web browser status area.
-	 */
-	private void createStatusArea() {
-		// Add a progress bar to display downloading progress information
-		webProgress = new ProgressBar(displayArea, SWT.BORDER);
-		GridData gridData = new GridData();
-		gridData.horizontalAlignment = GridData.BEGINNING;
-		gridData.verticalAlignment = GridData.FILL;
-		webProgress.setLayoutData(gridData);		
-
-		// Add a label for displaying status messages as they are received from the control
-		webStatus = new Label(displayArea, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-		gridData.horizontalSpan = 2;
-		webStatus.setLayoutData(gridData);
-		webStatus.setFont(OlePlugin.browserFont);
-	}	
-
-	/**
-	 * Creates Web browser control.
-	 */
-	private void createBrowserControl() {
-		try {
-			// Create an Automation object for access to extended capabilities
-			webControlSite = new OleControlSite(webFrame, SWT.NONE, "Shell.Explorer");
-			Variant download = new Variant(DLCTL_NO_SCRIPTS);
-			webControlSite.setSiteProperty(DISPID_AMBIENT_DLCONTROL, download);
-			OleAutomation oleAutomation = new OleAutomation(webControlSite);
-			webBrowser = new OleWebBrowser(oleAutomation);
-		} catch (SWTException ex) {
-			// Creation may have failed because control is not installed on machine
-			Label label = new Label(webFrame, SWT.BORDER);
-			OlePlugin.logError(OlePlugin.getResourceString("error.CouldNotCreateBrowserControl"), ex);
-			label.setText(OlePlugin.getResourceString("error.CouldNotCreateBrowserControl"));
-			return;
-		}
-
-		// Respond to ProgressChange events by updating the Progress bar
-		webControlSite.addEventListener(OleWebBrowser.ProgressChange, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				Variant progress = event.arguments[0];
-				Variant maxProgress = event.arguments[1];
-				if (progress == null || maxProgress == null)
-					return;
-				webProgress.setMaximum(maxProgress.getInt());
-				webProgress.setSelection(progress.getInt());
-			}
-		});
-		
-		// Respond to StatusTextChange events by updating the Status Text label
-		webControlSite.addEventListener(OleWebBrowser.StatusTextChange, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				Variant statusText = event.arguments[0];
-				if (statusText == null)	return;
-				String text = statusText.getString();
-				if (text != null)
-					webStatus.setText(text);
-			}
-		});
-		
-		// Listen for changes to the ready state and print out the current state 
-		webControlSite.addPropertyListener(OleWebBrowser.DISPID_READYSTATE, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				if (event.detail == OLE.PROPERTY_CHANGING) return;
-				int state = webBrowser.getReadyState();
-				switch (state) {
-					case OleWebBrowser.READYSTATE_UNINITIALIZED:
-						webStatus.setText(
-							OlePlugin.getResourceString("browser.State.Uninitialized.text"));
-						webCommandBackward.setEnabled(false);
-						webCommandForward.setEnabled(false);
-						webCommandHome.setEnabled(false);
-						webCommandRefresh.setEnabled(false);
-						webCommandStop.setEnabled(false);
-						webCommandSearch.setEnabled(false);
-						break;
-					case OleWebBrowser.READYSTATE_LOADING:
-						webStatus.setText(
-							OlePlugin.getResourceString("browser.State.Loading.text"));
-						webCommandHome.setEnabled(true);
-						webCommandRefresh.setEnabled(true);
-						webCommandStop.setEnabled(true);
-						webCommandSearch.setEnabled(true);
-						break;
-					case OleWebBrowser.READYSTATE_LOADED:
-						webStatus.setText(
-							OlePlugin.getResourceString("browser.State.Loaded.text"));
-						webCommandStop.setEnabled(true);
-						break;
-					case OleWebBrowser.READYSTATE_INTERACTIVE:
-						webStatus.setText(
-							OlePlugin.getResourceString("browser.State.Interactive.text"));
-						webCommandStop.setEnabled(true);
-						break;
-					case OleWebBrowser.READYSTATE_COMPLETE:
-						webStatus.setText(
-							OlePlugin.getResourceString("browser.State.Complete.text"));
-						webCommandStop.setEnabled(false);
-						break;
-				}
-			}
-		});
-
-		// Listen for changes to the active command states
-		webControlSite.addEventListener(OleWebBrowser.CommandStateChange, new OleListener() {
-			public void handleEvent(OleEvent event) {
-				if (event.type != OleWebBrowser.CommandStateChange) return;
-				final int commandID =
-					(event.arguments[0] != null) ? event.arguments[0].getInt() : 0;
-				final boolean commandEnabled =
-					(event.arguments[1] != null) ? event.arguments[1].getBoolean() : false;
-				
-				switch (commandID) {
-					case OleWebBrowser.CSC_NAVIGATEBACK:
-					 	webCommandBackward.setEnabled(commandEnabled);
-					 	break;
-					case OleWebBrowser.CSC_NAVIGATEFORWARD:
-					 	webCommandForward.setEnabled(commandEnabled);
-						break;
-				}
-			}
-		});
-
-		// in place activate the ActiveX control		
-		activated = (webControlSite.doVerb(OLE.OLEIVERB_INPLACEACTIVATE) == OLE.S_OK);
-		if (activated) webBrowser.GoHome();
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OlePlugin.java b/examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OlePlugin.java
deleted file mode 100755
index e70dc54..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OlePlugin.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.ole.win32;
-
-
-import java.io.*;
-import java.net.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.ui.plugin.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class OlePlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static OlePlugin plugin;
-	private static ResourceBundle resourceBundle;
-
-	static final int
-		biBack = 0,
-		biForward = 1,
-		biHome = 2,
-		biStop = 3,
-		biRefresh = 4,
-		biSearch = 5;
-	static final String[] imageLocations = {
-		"icons/backward_nav.gif",
-		"icons/forward_nav.gif",
-		"icons/home_nav.gif",
-		"icons/stop_nav.gif",
-		"icons/refresh_nav.gif",
-		"icons/search_nav.gif" };
-	static Image images[];
-	static Font  browserFont;
-   
-	/**
-	 * Constructs an OLE plugin.
-	 */
-	public OlePlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-		plugin = this;
-		resourceBundle = descriptor.getResourceBundle();
-	}
-	
-	/**
-	 * Clean up
-	 */
-	public void shutdown() throws CoreException {
-		super.shutdown();
-		freeResources();
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static OlePlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns a string from the resource bundle.
-	 * We don't want to crash because of a missing String.
-	 * Returns the key if not found.
-	 */
-	public static String getResourceString(String key) {
-		try {
-			return resourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}			
-	}
-
-	/**
-	 * Returns a string from the resource bundle and binds it
-	 * with the given arguments. If the key is not found,
-	 * return the key.
-	 */
-	public static String getResourceString(String key, Object[] args) {
-		try {
-			return MessageFormat.format(getResourceString(key), args);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}
-	}
-
-	/**
-	 * Log an error to the ILog for this plugin
-	 * 
-	 * @param message the localized error message text
-	 * @param exception the associated exception, or null
-	 */
-	public static void logError(String message, Throwable exception) {
-		plugin.getLog().log(new Status(IStatus.ERROR, plugin.getDescriptor().getUniqueIdentifier(),
-			0, message, exception));
-	}
-
-	/**
-	 * Loads the resources.
-	 */
-	public static void initResources() {
-		if (images == null) {
-			images = new Image[imageLocations.length];
-				
-			for (int i = 0; i < imageLocations.length; ++i) {
-				images[i] = getImageFromPlugin(plugin.getDescriptor(), imageLocations[i]);
-				if (images[i] == null) {
-					freeResources();
-					logError(getResourceString("error.CouldNotLoadResources"), null);
-					throw new IllegalStateException();
-				}
-			}
-		}
-		if (browserFont == null) {
-			try {
-				browserFont = new Font (null, "MS Sans Serif", 8, SWT.NULL);
-			} catch (Throwable ex) {
-			}
-		}
-		if (images == null || browserFont == null) {
-			freeResources();
-			logError(getResourceString("error.CouldNotLoadResources"), null);
-			throw new IllegalStateException();
-		}
-	}
-
-	/**
-	 * Frees the resources
-	 */
-	public static void freeResources() {
-		if (images != null) {
-			for (int i = 0; i < images.length; ++i) {
-				final Image image = images[i];
-				if (image != null) image.dispose();
-			}
-			images = null;
-		}
-		if (browserFont != null) browserFont.dispose ();
-		browserFont = null;
-	}
-	
-	/**
-	 * Gets an image from a path relative to the plugin install directory.
-	 *
-	 * @param pd the plugin descriptor for the plugin with the image
-	 * @param iconPath the path relative to the install directory
-	 * @return the image, or null if not found
-	 */
-	private static Image getImageFromPlugin(IPluginDescriptor pd, String iconPath) {
-		InputStream is = null;
-		try {
-			URL installUrl = pd.getInstallURL();
-			URL url = new URL(installUrl, iconPath);
-			is = url.openConnection().getInputStream();
-			ImageData source = new ImageData(is);
-			ImageData mask = source.getTransparencyMask();
-			Image image = new Image(null, source, mask);
-			return image;
-		} catch (Throwable ex) {
-			return null;
-		} finally {
-			try {
-				if (is != null) is.close();
-			} catch (IOException e) {
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OleWebBrowser.java b/examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OleWebBrowser.java
deleted file mode 100755
index 38d3534..0000000
--- a/examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OleWebBrowser.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.ole.win32;
-
-
-import org.eclipse.swt.ole.win32.*;
-
-/**
- * Wrapper for an OleAutomation object used to send commands
- * to a Win32 "Shell.Explorer" OLE control.
- * 
- * Instances of this class manage the setup, typical use and teardown of
- * a simple web browser.
- */
-class OleWebBrowser {
-	/* See the Windows Platform SDK documentation for more information about the
-	 * OLE control used here and its usage.
-	 */
-	// Generated from typelib filename: shdocvw.dll
-
-	// Constants for WebBrowser CommandStateChange
-	public static final int CSC_UPDATECOMMANDS = -1;
-	public static final int CSC_NAVIGATEFORWARD = 1;
-	public static final int CSC_NAVIGATEBACK = 2;
-
-	// COnstants for Web Browser ReadyState
-	public static final int READYSTATE_UNINITIALIZED = 0;
-	public static final int READYSTATE_LOADING = 1;
-	public static final int READYSTATE_LOADED = 2;
-	public static final int READYSTATE_INTERACTIVE = 3;
-	public static final int READYSTATE_COMPLETE = 4;
-	
-	// Web Browser Control Events 
-	public static final int BeforeNavigate        = 100; // Fired when a new hyperlink is being navigated to.
-	public static final int NavigateComplete      = 101; // Fired when the document being navigated to becomes visible and enters the navigation stack.
-	public static final int StatusTextChange      = 102; // Statusbar text changed.
-	public static final int ProgressChange        = 108; // Fired when download progress is updated.
-	public static final int DownloadComplete      = 104; // Download of page complete.
-	public static final int CommandStateChange    = 105; // The enabled state of a command changed
-	public static final int DownloadBegin         = 106; // Download of a page started.
-	public static final int NewWindow             = 107; // Fired when a new window should be created.
-	public static final int TitleChange           = 113; // Document title changed.
-	public static final int FrameBeforeNavigate   = 200; // Fired when a new hyperlink is being navigated to in a frame.
-	public static final int FrameNavigateComplete = 201; // Fired when a new hyperlink is being navigated to in a frame.
-	public static final int FrameNewWindow        = 204; // Fired when a new window should be created.
-	public static final int Quit                  = 103; // Fired when application is quiting.
-	public static final int WindowMove            = 109; // Fired when window has been moved.
-	public static final int WindowResize          = 110; // Fired when window has been sized.
-	public static final int WindowActivate        = 111; // Fired when window has been activated.
-	public static final int PropertyChange        = 112; // Fired when the PutProperty method has been called.
-
-	// Web Browser properties
-	public static final int DISPID_READYSTATE = -525;
-
-	private OleAutomation  oleAutomation;
-
-	/**
-	 * Creates a Web browser control.
-	 * <p>
-	 * Typical use:<br>
-	 * <code>
-	 * OleControlSite oleControlSite = new OleControlSite(oleFrame, style, "Shell.Explorer");<br>
-	 * OleAutomation oleAutomation = new OleAutomation(oleControlSite);<br>
-	 * OleWebBrowser webBrowser = new OleWebBrowser(oleControlSite, oleAutomation);<br>
-	 * </code>
-	 * 
-     * @param oleAutomation the OleAutomation object for this control.
-     * @param oleControlSite the OleControlSite object for this control.
-	 */
-	public OleWebBrowser(OleAutomation oleAutomation) {
-		this.oleAutomation = oleAutomation;
-	}
-	
-	
-	/**
-	 * Disposes of the Web browser control.
-	 */
-	public void dispose() {
-		if (oleAutomation != null) oleAutomation.dispose();
-		oleAutomation = null;
-	}
-	
-	/*
-	 * Interact with the Control via OLE Automation
-	 * 
-	 * Note: You can hard code the DISPIDs if you know them beforehand
-	 *       this is of course the fastest way, but you increase coupling
-	 *       to the control.
-	 */
-	 
-	/**
-	 * Returns the current web page title.
-	 * 
-	 * @return the current web page title String
-	 */
-	public String getLocationName() {
-		// dispid=210, type=PROPGET, name="LocationName"
-		int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"LocationName"}); 
-		int dispIdMember = rgdispid[0];
-		Variant pVarResult = oleAutomation.getProperty(dispIdMember);
-		if (pVarResult == null || pVarResult.getType() != OLE.VT_BSTR) return null;
-		return pVarResult.getString();
-	}
-	
-	/**
-	 * Returns the current URL.
-	 * 
-	 * @return the current URL String
-	 */
-	public String getLocationURL() {
-		// dispid=211, type=PROPGET, name="LocationURL"
-		int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"LocationURL"}); 
-		int dispIdMember = rgdispid[0];
-		
-		Variant pVarResult = oleAutomation.getProperty(dispIdMember);
-		if (pVarResult == null || pVarResult.getType() != OLE.VT_BSTR) return null;
-		return pVarResult.getString();
-	}
-	
-	/**
-	 * Returns the current state of the control.
-	 * 
-	 * @return the current state of the control, one of:
-	 *         READYSTATE_UNINITIALIZED;
-	 *         READYSTATE_LOADING;
-	 *         READYSTATE_LOADED;
-	 *         READYSTATE_INTERACTIVE;
-	 *         READYSTATE_COMPLETE.
-	 */
-	public int getReadyState() {
-		// dispid=4294966771, type=PROPGET, name="ReadyState"
-		int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"ReadyState"}); 
-		int dispIdMember = rgdispid[0];
-		
-		Variant pVarResult = oleAutomation.getProperty(dispIdMember);
-		if (pVarResult == null || pVarResult.getType() != OLE.VT_I4) return -1;
-		return pVarResult.getInt();
-	}
-	
-	/**
-	 * Navigates backwards through previously visited web sites.
-	 */
-	public void GoBack() {
-	
-		// dispid=100, type=METHOD, name="GoBack"
-		int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"GoBack"}); 
-		int dispIdMember = rgdispid[0];
-		oleAutomation.invoke(dispIdMember);
-	}
-	
-	/**
-	 * Navigates backwards through previously visited web sites.
-	 */
-	public void GoForward() {
-	
-		// dispid=101, type=METHOD, name="GoForward"
-		int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"GoForward"}); 
-		int dispIdMember = rgdispid[0];
-		oleAutomation.invoke(dispIdMember);
-	}
-	
-	/**
-	 * Navigates to home page.
-	 */
-	public void GoHome() {
-		// dispid=102, type=METHOD, name="GoHome"
-		int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"GoHome"}); 
-		int dispIdMember = rgdispid[0];
-		oleAutomation.invoke(dispIdMember);
-	}
-	
-	/**
-	 * Navigates to user-specified Web search gateway.
-	 */
-	public void GoSearch() {
-		// dispid=103, type=METHOD, name="GoSearch"
-		int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"GoSearch"}); 
-		int dispIdMember = rgdispid[0];
-		oleAutomation.invoke(dispIdMember);
-	}
-	
-	/**
-	 * Navigates to a particular URL.
-	 */
-	public void Navigate(String url) {
-		// dispid=104, type=METHOD, name="Navigate"
-		int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"Navigate", "URL"}); 
-		int dispIdMember = rgdispid[0];
-		
-		Variant[] rgvarg = new Variant[1];
-		rgvarg[0] = new Variant(url);
-		int[] rgdispidNamedArgs = new int[1];
-		rgdispidNamedArgs[0] = rgdispid[1]; // identifier of argument
-		oleAutomation.invoke(dispIdMember, rgvarg, rgdispidNamedArgs);
-	}
-	
-	/**
-	 * Refreshes the currently viewed page.
-	 *
-	 * @return the platform-defined result code for the "Refresh" method invocation
-	 */
-	public void Refresh(){
-		// dispid= 4294966746, type=METHOD, name="Refresh"
-		int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"Refresh"}); 
-		int dispIdMember = rgdispid[0];
-		oleAutomation.invokeNoReply(dispIdMember);
-	}
-	
-	/**
-	 * Aborts loading of the currnet page.
-	 *
-	 * @return the platform-defined result code for the "Stop" method invocation
-	 */
-	public void Stop() {
-		// dispid=106, type=METHOD, name="Stop"
-		int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"Stop"}); 
-		int dispIdMember = rgdispid[0];
-		oleAutomation.invoke(dispIdMember);
-	}	
-}
diff --git a/examples/org.eclipse.swt.examples.paint/.classpath b/examples/org.eclipse.swt.examples.paint/.classpath
deleted file mode 100755
index bba8e78..0000000
--- a/examples/org.eclipse.swt.examples.paint/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.core.runtime_2.1.0/runtime.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.jface_2.1.0/jface.jar"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.ui.workbench_2.1.0/workbench.jar"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.swt.examples.paint/.cvsignore b/examples/org.eclipse.swt.examples.paint/.cvsignore
deleted file mode 100755
index c5e82d7..0000000
--- a/examples/org.eclipse.swt.examples.paint/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.paint/.project b/examples/org.eclipse.swt.examples.paint/.project
deleted file mode 100644
index be659d3..0000000
--- a/examples/org.eclipse.swt.examples.paint/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.swt.examples.paint</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.swt</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.swt.examples.paint/about.html b/examples/org.eclipse.swt.examples.paint/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/examples/org.eclipse.swt.examples.paint/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples.paint/build.properties b/examples/org.eclipse.swt.examples.paint/build.properties
deleted file mode 100755
index c899ccc..0000000
--- a/examples/org.eclipse.swt.examples.paint/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = doc-html/,\
-               icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               *.jar
-
-src.includes = about.html
-
-source.paint.jar = src/
diff --git a/examples/org.eclipse.swt.examples.paint/doc-html/hglegal.htm b/examples/org.eclipse.swt.examples.paint/doc-html/hglegal.htm
deleted file mode 100755
index f5871b7..0000000
--- a/examples/org.eclipse.swt.examples.paint/doc-html/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="../../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples.paint/doc-html/ngibmcpy.gif b/examples/org.eclipse.swt.examples.paint/doc-html/ngibmcpy.gif
deleted file mode 100755
index c786e43..0000000
--- a/examples/org.eclipse.swt.examples.paint/doc-html/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/doc-html/swt_paint_ex.html b/examples/org.eclipse.swt.examples.paint/doc-html/swt_paint_ex.html
deleted file mode 100755
index ea6311b..0000000
--- a/examples/org.eclipse.swt.examples.paint/doc-html/swt_paint_ex.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Paint Tool</title>
-</head>
-<body>
-
-<h2>SWT example - Paint Tool</h2>
-
-<p>	
-This example demonstrates the use of SWT graphics operations in the form of a
-rudimentary bitmap painting program.  The Paint Tool implementation also 
-demonstrates a mechanism for managing timed GUI operations in the background 
-that are triggered by user input.
-</p>
-<p>	
-Select a tool with which to draw in the drawing area.  There are a number of tools
-to choose from on the toolbar.  To change the color selection, click on a color in the
-palette below the drawing area; left-click to set the foreground color, right-click to set the
-background color.
-</p>
-
-<h3>Running the example</h3>
-
-<p>
-From Eclipse's <strong>Window</strong> menu select <strong>Show View</strong> &gt; <strong>Other</strong>.  
-In the <strong>Show View</strong> dialog, expand <strong>SWT Examples</strong> and select
-the view named <strong>Paint</strong>. A view containing the paint program will appear.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>Paint</strong> item from the <strong>Workbench Views</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples.paint/icons/fill_none.gif b/examples/org.eclipse.swt.examples.paint/icons/fill_none.gif
deleted file mode 100755
index d26dd58..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/fill_none.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/fill_outline.gif b/examples/org.eclipse.swt.examples.paint/icons/fill_outline.gif
deleted file mode 100755
index c6ccfee..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/fill_outline.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/fill_solid.gif b/examples/org.eclipse.swt.examples.paint/icons/fill_solid.gif
deleted file mode 100755
index cb34e64..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/fill_solid.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/linestyle_dash.gif b/examples/org.eclipse.swt.examples.paint/icons/linestyle_dash.gif
deleted file mode 100644
index fb57bb3..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/linestyle_dash.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/linestyle_dashdot.gif b/examples/org.eclipse.swt.examples.paint/icons/linestyle_dashdot.gif
deleted file mode 100644
index 322968c..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/linestyle_dashdot.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/linestyle_dot.gif b/examples/org.eclipse.swt.examples.paint/icons/linestyle_dot.gif
deleted file mode 100644
index 4937ccb..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/linestyle_dot.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/linestyle_solid.gif b/examples/org.eclipse.swt.examples.paint/icons/linestyle_solid.gif
deleted file mode 100644
index 70a57ce..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/linestyle_solid.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/options_font.gif b/examples/org.eclipse.swt.examples.paint/icons/options_font.gif
deleted file mode 100755
index 965fe08..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/options_font.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/paint_example.gif b/examples/org.eclipse.swt.examples.paint/icons/paint_example.gif
deleted file mode 100755
index c48d9a9..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/paint_example.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/tool_airbrush.gif b/examples/org.eclipse.swt.examples.paint/icons/tool_airbrush.gif
deleted file mode 100755
index a310edd..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/tool_airbrush.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/tool_ellipse.gif b/examples/org.eclipse.swt.examples.paint/icons/tool_ellipse.gif
deleted file mode 100755
index dc2142f..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/tool_ellipse.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/tool_line.gif b/examples/org.eclipse.swt.examples.paint/icons/tool_line.gif
deleted file mode 100755
index 2ff819f..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/tool_line.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/tool_pencil.gif b/examples/org.eclipse.swt.examples.paint/icons/tool_pencil.gif
deleted file mode 100755
index f16a234..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/tool_pencil.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/tool_polyline.gif b/examples/org.eclipse.swt.examples.paint/icons/tool_polyline.gif
deleted file mode 100755
index aa384e9..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/tool_polyline.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/tool_rectangle.gif b/examples/org.eclipse.swt.examples.paint/icons/tool_rectangle.gif
deleted file mode 100755
index d26dd58..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/tool_rectangle.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/tool_roundedrectangle.gif b/examples/org.eclipse.swt.examples.paint/icons/tool_roundedrectangle.gif
deleted file mode 100755
index bf845d7..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/tool_roundedrectangle.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/icons/tool_text.gif b/examples/org.eclipse.swt.examples.paint/icons/tool_text.gif
deleted file mode 100755
index 0d7457f..0000000
--- a/examples/org.eclipse.swt.examples.paint/icons/tool_text.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples.paint/plugin.properties b/examples/org.eclipse.swt.examples.paint/plugin.properties
deleted file mode 100755
index 4e0a80b..0000000
--- a/examples/org.eclipse.swt.examples.paint/plugin.properties
+++ /dev/null
@@ -1,134 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName = Eclipse.org
-plugin.SWTPaintExample.name = SWT Paint Example Plugin
-category.SWTExamples.name = SWT Examples
-view.PaintExample.name = Paint
-
-launchcategory.SWTViewExamples.name = Workbench Views
-launchcategory.SWTViewExamples.description = \
-	A collection of Standard Widget Toolkit examples that run as Views inside the Workbench.  \
-	These examples will create a new View in the current Perspective.
-
-launchitem.PaintExample.name = Paint
-launchitem.PaintExample.description = \
-	This example demonstrates the use of SWT graphics operations in the form of a \
-	rudimentary bitmap painting program.  The Airbrush Tool implementation also \
-	demonstrates a mechanism for managing timed GUI operations in the background \
-	that are triggered by user input.\n\n\
-	Select a tool with which to draw in the drawing area.  There are a number of tools \
-	to choose from on the toolbar.  To change the color selection, click on a color in the \
-	palette below the drawing area: left-click for the foreground color, right-click for the \
-	background color.\n\n\
-	Uses SWT's GC and FontDialog, and JFace's InputDialog and action set support.
-
-menu.Tools.label = Tools
-menu.Options.label = Options
-
-tool.Pencil.label = Pencil
-tool.Pencil.tooltip = Pencil tool
-tool.Pencil.image = icons/tool_pencil.gif
-tool.Pencil.description = Selects the Pencil tool.
-
-tool.Airbrush.label = Airbrush
-tool.Airbrush.tooltip = Airbrush tool
-tool.Airbrush.image = icons/tool_airbrush.gif
-tool.Airbrush.description = Selects the Airbrush tool.
-
-tool.Line.label = Line
-tool.Line.tooltip = Line tool
-tool.Line.image = icons/tool_line.gif
-tool.Line.description = Selects the Line tool.
-
-tool.PolyLine.label = Polygon
-tool.PolyLine.tooltip = Polygon tool
-tool.PolyLine.image = icons/tool_polyline.gif
-tool.PolyLine.description = Selects the PolyLine tool.
-
-tool.Rectangle.label = Rectangle
-tool.Rectangle.tooltip = Rectangle tool
-tool.Rectangle.image = icons/tool_rectangle.gif
-tool.Rectangle.description = Selects the Rectangle tool.
-
-tool.Ellipse.label = Ellipse
-tool.Ellipse.tooltip = Ellipse tool
-tool.Ellipse.image = icons/tool_ellipse.gif
-tool.Ellipse.description = Selects the Ellipse tool.
-
-tool.RoundedRectangle.label = Rounded Rectangle
-tool.RoundedRectangle.tooltip = Rounded Rectangle
-tool.RoundedRectangle.image = icons/tool_roundedrectangle.gif
-tool.RoundedRectangle.description = Selects the Rounded Rectangle tool.
-
-tool.Text.label = Text
-tool.Text.tooltip = Text tool
-tool.Text.image = icons/tool_text.gif
-tool.Text.description = Selects the Text tool.
-tool.Text.settings.defaulttext = Hello!
-tool.Text.dialog.title = Text Tool Settings
-tool.Text.dialog.message = Please enter the new text string to be painted.
-
-tool.Null.label = <none>
-
-fill.None.label = No Fill
-fill.None.tooltip = No fill mode
-fill.None.image = icons/fill_none.gif
-fill.None.description = Selects No Fill mode.
-
-fill.Outline.label = Outline Fill
-fill.Outline.tooltip = Outline fill mode
-fill.Outline.image = icons/fill_outline.gif
-fill.Outline.description = Selects Outline Fill mode.
-
-fill.Solid.label = Solid Fill
-fill.Solid.tooltip = Solid fill mode
-fill.Solid.image = icons/fill_solid.gif
-fill.Solid.description = Selects Solid Fill mode.
-
-linestyle.Solid.label = Solid Line
-linestyle.Solid.tooltip = Solid line style
-linestyle.Solid.image = icons/linestyle_solid.gif
-linestyle.Solid.description = Select Solid Line style.
-
-linestyle.Dot.label = Dotted Line
-linestyle.Dot.tooltip = Dotted line style
-linestyle.Dot.image = icons/linestyle_dot.gif
-linestyle.Dot.description = Select Dotted Line style.
-
-linestyle.Dash.label = Dashed Line
-linestyle.Dash.tooltip = Dashed line style
-linestyle.Dash.image = icons/linestyle_dash.gif
-linestyle.Dash.description = Select Dashed Line style.
-
-linestyle.DashDot.label = Dash-Dot Line
-linestyle.DashDot.tooltip = Dash-Dot line style
-linestyle.DashDot.image = icons/linestyle_dashdot.gif
-linestyle.DashDot.description = Select Dash-Dot Line style.
-
-options.Font.label = Text Tool Font
-options.Font.tooltip = Select Text Tool font
-options.Font.image = icons/options_font.gif
-options.Font.description = Selects Text Tool font.
-options.Font.dialog.title = Text Tool Font
-
-settings.AirbrushRadius.text = Airbrush Radius
-settings.AirbrushIntensity.text = Airbrush Intensity
-
-session.Null.message = Select a tool...
-session.ContinuousPaint.message = Click and drag to draw...
-session.DragInteractivePaint.message = Click and drag to preview, release to draw, right-click to cancel...
-session.SegmentedInteractivePaint.message.anchorMode = Click to set anchor...
-session.SegmentedInteractivePaint.message.interactiveMode = Click to draw, double-click to close figure, right-click to cancel...
-session.Text.message = Click to draw text, right-click to edit text...
-
-status.Coord.format = ({0}, {1})
-status.CoordRange.format = ({0}, {1}) - ({2}, {3})
-status.Bar.format = {0} : {1}   {2}
diff --git a/examples/org.eclipse.swt.examples.paint/plugin.xml b/examples/org.eclipse.swt.examples.paint/plugin.xml
deleted file mode 100755
index 4754261..0000000
--- a/examples/org.eclipse.swt.examples.paint/plugin.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-   id="org.eclipse.swt.examples.paint"
-   name="%plugin.SWTPaintExample.name"
-   version="2.1.0"
-   provider-name="%providerName"
-   class="org.eclipse.swt.examples.paint.PaintPlugin">
-
-<!-- Runtime -->
-   <runtime>
-      <library name="paint.jar">
-         <packages prefixes="org.eclipse.swt.examples.paint"/>
-      </library>
-   </runtime>
-<!-- Required plugins -->
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.swt"/>
-   </requires>
-
-
-<!-- Extension points -->
-<!-- Extensions -->
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="%view.PaintExample.name"
-            icon="icons/paint_example.gif"
-            category="org.eclipse.swt.examples.category"
-            class="org.eclipse.swt.examples.paint.PaintView"
-            id="org.eclipse.swt.examples.paint.view">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.swt.examples.launcher.launchItems">
-      <category
-            name="%launchcategory.SWTViewExamples.name"
-            description="%launchcategory.SWTViewExamples.description"
-            id="org.eclipse.swt.examples.launchViewCategory">
-      </category>
-      <item
-            name="%launchitem.PaintExample.name"
-            icon="icons/paint_example.gif"
-            description="%launchitem.PaintExample.description"
-            category="org.eclipse.swt.examples.launchViewCategory"
-            id="org.eclipse.swt.examples.paint.viewlauncher">
-         <view
-               viewId="org.eclipse.swt.examples.paint.view">
-         </view>
-      </item>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.swt.examples.paint/src/import.properties b/examples/org.eclipse.swt.examples.paint/src/import.properties
deleted file mode 100644
index 58344f0..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/import.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# Persist project settings for later import 
-natures = org.eclipse.jdt.core.javanature; org.eclipse.pde.PluginNature
-builders = org.eclipse.jdt.core.javabuilder; org.eclipse.pde.ManifestBuilder; org.eclipse.pde.SchemaBuilder
-var.ECLIPSE_PLUGINS = <<ECLIPSE_PLUGINS>>
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/AirbrushTool.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/AirbrushTool.java
deleted file mode 100755
index 5730b4d..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/AirbrushTool.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import java.util.Random;
-import org.eclipse.swt.graphics.*;
-
-/**
- * An airbrush tool.
- */
-public class AirbrushTool extends ContinuousPaintSession implements PaintTool {
-	private ToolSettings settings;
-	private Random random;
-	private int cachedRadiusSquared;
-	private int cachedNumPoints;
-	
-	/**
-	 * Constructs a Tool.
-	 * 
-	 * @param toolSettings the new tool settings
-	 * @param paintSurface the PaintSurface we will render on.
-	 */
-	public AirbrushTool(ToolSettings toolSettings, PaintSurface paintSurface) {
-		super(paintSurface);
-		random = new Random();
-		setRetriggerTimer(10);
-		set(toolSettings);
-	}
-	
-	/**
-	 * Sets the tool's settings.
-	 * 
-	 * @param toolSettings the new tool settings
-	 */
-	public void set(ToolSettings toolSettings) {
-		// compute things we need to know for drawing
-		settings = toolSettings;
-		cachedRadiusSquared = settings.airbrushRadius * settings.airbrushRadius;
-		cachedNumPoints = 314 * settings.airbrushIntensity * cachedRadiusSquared / 250000;
-		if (cachedNumPoints == 0 && settings.airbrushIntensity != 0)
-			cachedNumPoints = 1;
-	}
-
-	/**
-	 * Returns the name associated with this tool.
-	 * 
-	 * @return the localized name of this tool
-	 */
-	public String getDisplayName() {
-		return PaintPlugin.getResourceString("tool.Airbrush.label");
-	}
-
-	/*
-	 * Template method for drawing
-	 */
-	protected void render(Point point) {
-		// Draws a bunch (cachedNumPoints) of random pixels within a specified circle (cachedRadiusSquared).
-		ContainerFigure cfig = new ContainerFigure();
-
-		for (int i = 0; i < cachedNumPoints; ++i) {
-			int randX, randY;
-			do {
-				randX = (int) ((random.nextDouble() - 0.5) * settings.airbrushRadius * 2.0);
-				randY = (int) ((random.nextDouble() - 0.5) * settings.airbrushRadius * 2.0);
-			} while (randX * randX + randY * randY > cachedRadiusSquared);
-			cfig.add(new PointFigure(settings.commonForegroundColor, point.x + randX, point.y + randY));
-		}
-		getPaintSurface().drawFigure(cfig);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/BasicPaintSession.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/BasicPaintSession.java
deleted file mode 100755
index 9732189..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/BasicPaintSession.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-public abstract class BasicPaintSession implements PaintSession {
-	/**
-	 * The paint surface
-	 */
-	private PaintSurface paintSurface;
-
-	/**
-	 * Constructs a PaintSession.
-	 * 
-	 * @param paintSurface the drawing surface to use
-	 */
-	protected BasicPaintSession(PaintSurface paintSurface) {
-		this.paintSurface = paintSurface;
-	}
-
-	/**
-	 * Returns the paint surface associated with this paint session.
-	 * 
-	 * @return the associated PaintSurface
-	 */
-	public PaintSurface getPaintSurface() {
-		return paintSurface;
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ContainerFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ContainerFigure.java
deleted file mode 100755
index 135067c..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ContainerFigure.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * Container for Figure objects with stacking preview mechanism.
- */
-public class ContainerFigure extends Figure {
-	private static final int INITIAL_ARRAY_SIZE = 16;
-	
-	Figure[]   objectStack = null;
-	int      nextIndex = 0;
-
-	/**
-	 * Constructs an empty Container
-	 */
-	public ContainerFigure() {
-	}
-	/**
-	 * Adds an object to the container for later drawing.
-	 * 
-	 * @param object the object to add to the drawing list
-	 */
-	public void add(Figure object) {
-		if (objectStack == null) {
-			objectStack = new Figure[INITIAL_ARRAY_SIZE];
-		} else if (objectStack.length <= nextIndex) {
-			Figure[] newObjectStack = new Figure[objectStack.length * 2];
-			System.arraycopy(objectStack, 0, newObjectStack, 0, objectStack.length);
-			objectStack = newObjectStack;
-		}
-		objectStack[nextIndex] = object;
-		++nextIndex;
-	}
-	/**
-	 * Determines if the container is empty.
-	 * @return true if the container is empty
-	 */
-	public boolean isEmpty() {
-		return nextIndex == 0;
-	}
-	/**
-	 * Adds an object to the container and draws its preview then updates the supplied preview state.
-	 * 
-	 * @param object the object to add to the drawing list
-	 * @param gc the GC to draw on
-	 * @param offset the offset to add to virtual coordinates to get display coordinates
-	 * @param rememberedState the state returned by a previous drawPreview() or addAndPreview()
-	 *        using this Container, may be null if there was no such previous call
-	 * @return object state that must be passed to erasePreview() later to erase this object
-	 */
-//	public Object addAndPreview(Figure object, GC gc, Point offset, Object rememberedState) {
-//		Object[] stateStack = (Object[]) rememberedState;
-//		if (stateStack == null) {
-//			stateStack = new Object[INITIAL_ARRAY_SIZE];
-//		} else if (stateStack.length <= nextIndex) {
-//			Object[] newStateStack = new Object[stateStack.length * 2];
-//			System.arraycopy(stateStack, 0, newStateStack, 0, stateStack.length);
-//			stateStack = newStateStack;
-//		}
-//		add(object);
-//		stateStack[nextIndex - 1] = object.drawPreview(gc, offset);
-//		return stateStack;
-//	}
-	/**
-	 * Clears the container.
-	 * <p>
-	 * Note that erasePreview() cannot be called after this point to erase any previous
-	 * drawPreview()'s.
-	 * </p>
-	 */
-	public void clear() {
-		while (--nextIndex > 0) objectStack[nextIndex] = null;
-		nextIndex = 0;
-	}
-	public void draw(FigureDrawContext fdc) {
-		for (int i = 0; i < nextIndex; ++i) objectStack[i].draw(fdc);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		for (int i = 0; i < nextIndex; ++i) objectStack[i].addDamagedRegion(fdc, region);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ContinuousPaintSession.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ContinuousPaintSession.java
deleted file mode 100755
index 49a724c..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ContinuousPaintSession.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * The superclass for paint tools that draw continuously along the path
- * traced by the mouse's movement while the button is depressed
- */
-public abstract class ContinuousPaintSession extends BasicPaintSession {
-	/**
-	 * True if a click-drag is in progress.
-	 */
-	private boolean dragInProgress = false;
-	
-	/**
-	 * A cached Point array for drawing.
-	 */
-	private Point[] points = new Point[] { new Point(-1, -1), new Point(-1, -1) };
-
-	/**
-	 * The time to wait between retriggers in milliseconds.
-	 */
-	private int retriggerInterval = 0;
-	
-	/**
-	 * The currently valid RetriggerHandler
-	 */
-	protected Runnable retriggerHandler = null;
-
-	/**
-	 * Constructs a ContinuousPaintSession.
-	 * 
-	 * @param paintSurface the drawing surface to use
-	 */
-	protected ContinuousPaintSession(PaintSurface paintSurface) {
-		super(paintSurface);
-	}
-
-	/**
-	 * Sets the retrigger timer.
-	 * <p>
-	 * After the timer elapses, if the mouse is still hovering over the same point with the
-	 * drag button pressed, a new render order is issued and the timer is restarted.
-	 * </p>
-	 * @param interval the time in milliseconds to wait between retriggers, 0 to disable
-	 */
-	public void setRetriggerTimer(int interval) {
-		retriggerInterval = interval;
-	}
-
-	/**
-	 * Activates the tool.
-	 */
-	public void beginSession() {
-		getPaintSurface().
-			setStatusMessage(PaintPlugin.getResourceString("session.ContinuousPaint.message"));
-		dragInProgress = false;
-	}
-	
-	/**
-	 * Deactivates the tool.
-     */
-	public void endSession() {
-		abortRetrigger();
-	}
-	
-	/**
-	 * Aborts the current operation.
-	 */
-	public void resetSession() {
-		abortRetrigger();
-	}
-
-	/**
-	 * Handles a mouseDown event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public final void mouseDown(MouseEvent event) {
-		if (event.button != 1) return;
-		if (dragInProgress) return; // spurious event
-		dragInProgress = true;
-
-		points[0].x = event.x;
-		points[0].y = event.y;
-		render(points[0]);
-		prepareRetrigger();
-	}
-
-	/**
-	 * Handles a mouseDoubleClick event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public final void mouseDoubleClick(MouseEvent event) {
-	}
-
-	/**
-	 * Handles a mouseUp event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public final void mouseUp(MouseEvent event) {
-		if (event.button != 1) return;
-		if (! dragInProgress) return; // spurious event
-		abortRetrigger();
-		mouseSegmentFinished(event);
-		dragInProgress = false;
-	}
-	
-	/**
-	 * Handles a mouseMove event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public final void mouseMove(MouseEvent event) {
-		final PaintSurface ps = getPaintSurface();
-		ps.setStatusCoord(ps.getCurrentPosition());
-		if (! dragInProgress) return;
-		mouseSegmentFinished(event);
-		prepareRetrigger();
-	}
-	
-	/**
-	 * Handle a rendering segment
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	private final void mouseSegmentFinished(MouseEvent event) {
-		if (points[0].x == -1) return; // spurious event
-		if (points[0].x != event.x || points[0].y != event.y) {
-			// draw new segment
-			points[1].x = event.x;
-			points[1].y = event.y;
-			renderContinuousSegment();
-		}
-	}
-
-	/**
-	 * Draws a continuous segment from points[0] to points[1].
-	 * Assumes points[0] has been drawn already.
-	 * 
-	 * @post points[0] will refer to the same point as points[1]
-	 */
-	protected void renderContinuousSegment() {
-		/* A lazy but effective line drawing algorithm */
-		final int dX = points[1].x - points[0].x;
-		final int dY = points[1].y - points[0].y;
-		int absdX = Math.abs(dX);
-		int absdY = Math.abs(dY);
-
-		if ((dX == 0) && (dY == 0)) return;
-		
-		if (absdY > absdX) {
-			final int incfpX = (dX << 16) / absdY;
-			final int incY = (dY > 0) ? 1 : -1;
-			int fpX = points[0].x << 16; // X in fixedpoint format
-
-			while (--absdY >= 0) {
-				points[0].y += incY;
-				points[0].x = (fpX += incfpX) >> 16;
-				render(points[0]);
-			}
-			if (points[0].x == points[1].x) return;
-			points[0].x = points[1].x;
-		} else {
-			final int incfpY = (dY << 16) / absdX;
-			final int incX = (dX > 0) ? 1 : -1;
-			int fpY = points[0].y << 16; // Y in fixedpoint format
-
-			while (--absdX >= 0) {
-				points[0].x += incX;
-				points[0].y = (fpY += incfpY) >> 16;
-				render(points[0]);
-			}
-			if (points[0].y == points[1].y) return;
-			points[0].y = points[1].y;
-		}
-		render(points[0]);
-	}		
-
-	/**
-	 * Prepare the retrigger timer
-	 */
-	private final void prepareRetrigger() {
-		if (retriggerInterval > 0) {
-			/*
-			 * timerExec() provides a lightweight mechanism for running code at intervals from within
-			 * the event loop when timing accuracy is not important.
-			 *
-			 * Since it is not possible to cancel a timerExec(), we remember the Runnable that is
-			 * active in order to distinguish the valid one from the stale ones.  In practice,
-			 * if the interval is 1/100th of a second, then creating a few hundred new RetriggerHandlers
-			 * each second will not cause a significant performance hit.
-			 */
-			Display display = getPaintSurface().getDisplay();
-			retriggerHandler = new Runnable() {
-				public void run() {
-					if (retriggerHandler == this) {
-						render(points[0]);
-						prepareRetrigger();
-					}
-				}
-			};			
-			display.timerExec(retriggerInterval, retriggerHandler);
-		}
-	}
-
-	/**
-	 * Aborts the retrigger timer
-	 */
-	private final void abortRetrigger() {
-		retriggerHandler = null;
-	}
-	
-	/**
-	 * Template method: Renders a point.
-	 * @param point, the point to render
-	 */
-	protected abstract void render(Point point);
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/DragPaintSession.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/DragPaintSession.java
deleted file mode 100755
index 539c3b5..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/DragPaintSession.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.*;
-
-/**
- * The superclass for paint tools that use click-drag-release motions to
- * draw objects.
- */
-public abstract class DragPaintSession extends BasicPaintSession {
-	/**
-	 * True if a click-drag is in progress
-	 */
-	private boolean dragInProgress = false;
-	
-	/**
-	 * The position of the first click in a click-drag
-	 */
-	private Point anchorPosition = new Point(-1, -1);
-
-	/**
-	 * A temporary point
-	 */
-	private Point tempPosition = new Point(-1, -1);
-	
-	/**
-	 * Constructs a PaintSession.
-	 * 
-	 * @param getPaintSurface() the drawing surface to use
-	 */
-	protected DragPaintSession(PaintSurface paintSurface) {
-		super(paintSurface);
-	}
-
-	/**
-	 * Activates the tool.
-	 */
-	public void beginSession() {
-		getPaintSurface().
-			setStatusMessage(PaintPlugin.getResourceString("session.DragInteractivePaint.message"));
-		anchorPosition.x = -1;
-		dragInProgress = false;
-	}
-	
-	/**
-	 * Deactivates the tool.
-     */
-	public void endSession() {
-	}
-	
-	/**
-	 * Resets the tool.
-	 * Aborts any operation in progress.
-	 */
-	public void resetSession() {
-		getPaintSurface().clearRubberbandSelection();
-		anchorPosition.x = -1;
-		dragInProgress = false;
-	}
-
-	/**
-	 * Handles a mouseDown event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseDown(MouseEvent event) {
-		if (event.button != 1) return;
-		if (dragInProgress) return; // spurious event
-		dragInProgress = true;
-		
-		anchorPosition.x = event.x;
-		anchorPosition.y = event.y;
-	}
-
-	/**
-	 * Handles a mouseDoubleClick event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseDoubleClick(MouseEvent event) {
-	}
-
-	/**
-	 * Handles a mouseUp event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseUp(MouseEvent event) {
-		if (event.button != 1) {
-			resetSession(); // abort if right or middle mouse button pressed
-			return;
-		}
-		if (! dragInProgress) return; // spurious event
-		dragInProgress = false;
-		if (anchorPosition.x == -1) return; // spurious event
-		
-		getPaintSurface().commitRubberbandSelection();
-	}
-	
-	/**
-	 * Handles a mouseMove event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseMove(MouseEvent event) {
-		final PaintSurface ps = getPaintSurface();
-		if (! dragInProgress) {
-			ps.setStatusCoord(ps.getCurrentPosition());
-			return;
-		}
-		ps.setStatusCoordRange(anchorPosition, ps.getCurrentPosition());
-		ps.clearRubberbandSelection();
-		tempPosition.x = event.x;
-		tempPosition.y = event.y;
-		ps.addRubberbandSelection(createFigure(anchorPosition, tempPosition));
-	}
-	
-	/**
-	 * Template Method: Creates a Figure for drawing rubberband entities and the final product
-	 * 
-	 * @param anchor the anchor point
-	 * @param cursor the point marking the current pointer location
-	 */
-	protected abstract Figure createFigure(Point anchor, Point cursor);
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/EllipseFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/EllipseFigure.java
deleted file mode 100755
index e6a5907..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/EllipseFigure.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Ellipse object
- */
-public class EllipseFigure extends Figure {
-	private Color foregroundColor, backgroundColor;
-	private int lineStyle, x1, y1, x2, y2;
-	/**
-	 * Constructs an Ellipse
-	 * These objects are defined by any two diametrically opposing corners of a box
-	 * bounding the ellipse.
-	 * 
-	 * @param color the color for this object
-	 * @param lineStyle the line style for this object
-	 * @param x1 the virtual X coordinate of the first corner
-	 * @param y1 the virtual Y coordinate of the first corner
-	 * @param x2 the virtual X coordinate of the second corner
-	 * @param y2 the virtual Y coordinate of the second corner
-	 */
-	public EllipseFigure(Color foregroundColor, Color backgroundColor, int lineStyle, int x1, int y1, int x2, int y2) {
-		this.foregroundColor = foregroundColor;
-		this.backgroundColor = backgroundColor;
-		this.lineStyle = lineStyle;
-		this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
-	}
-	public void draw(FigureDrawContext fdc) {
-		Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
-		fdc.gc.setForeground(foregroundColor);
-		fdc.gc.setBackground(backgroundColor);
-		fdc.gc.setLineStyle(lineStyle);
-		fdc.gc.drawOval(r.x, r.y, r.width - 1, r.height - 1);
-		fdc.gc.setLineStyle(SWT.LINE_SOLID);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		region.add(fdc.toClientRectangle(x1, y1, x2, y2));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/EllipseTool.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/EllipseTool.java
deleted file mode 100755
index 785879c..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/EllipseTool.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A drawing tool.
- */
-public class EllipseTool extends DragPaintSession implements PaintTool {
-	private ToolSettings settings;
-
-	/**
-	 * Constructs a EllipseTool.
-	 * 
-	 * @param toolSettings the new tool settings
-	 * @param paintSurface the PaintSurface we will render on.
-	 */
-	public EllipseTool(ToolSettings toolSettings, PaintSurface paintSurface) {
-		super(paintSurface);
-		set(toolSettings);
-	}
-
-	/**
-	 * Sets the tool's settings.
-	 * 
-	 * @param toolSettings the new tool settings
-	 */
-	public void set(ToolSettings toolSettings) {
-		settings = toolSettings;
-	}
-
-	/**
-	 * Returns name associated with this tool.
-	 * 
-	 * @return the localized name of this tool
-	 */
-	public String getDisplayName() {
-		return PaintPlugin.getResourceString("tool.Ellipse.label");
-	}
-
-	/*
-	 * Template methods for drawing
-	 */
-	protected Figure createFigure(Point a, Point b) {
-		ContainerFigure container = new ContainerFigure();
-		if (settings.commonFillType != ToolSettings.ftNone)
-			container.add(new SolidEllipseFigure(settings.commonBackgroundColor, a.x, a.y, b.x, b.y));
-		if (settings.commonFillType != ToolSettings.ftSolid)
-			container.add(new EllipseFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
-				a.x, a.y, b.x, b.y));
-		return container;
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/Figure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/Figure.java
deleted file mode 100755
index 6eb305b..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/Figure.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * Superinterface for all drawing objects.
- * All drawing objects know how to render themselved to the screen and can draw a
- * temporary version of themselves for previewing the general appearance of the
- * object onscreen before it gets committed.
- */
-public abstract class Figure {
-	/**
-	 * Draws this object.
-	 * 
-	 * @param fdc a parameter block specifying drawing-related information
-	 */
-	public abstract void draw(FigureDrawContext fdc);
-
-	/**
-	 * Computes the damaged screen region caused by drawing this object (imprecise), then
-	 * appends it to the supplied region.
-	 * 
-	 * @param fdc a parameter block specifying drawing-related information
-	 * @param region a region to which additional damage areas will be added
-	 */
-	public abstract void addDamagedRegion(FigureDrawContext fdc, Region region);
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/FigureDrawContext.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/FigureDrawContext.java
deleted file mode 100644
index b020ff4..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/FigureDrawContext.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-public class FigureDrawContext {
-	/*
-	 * <p>
-	 * The GC must be set up as follows
-	 * (it will be returned to this state upon completion of drawing operations)
-	 * <ul>
-	 *   <li>setXORMode(false)
-	 * </ul>
-	 * </p>
-	 */
-	public GC gc = null;
-	public int xOffset = 0, yOffset = 0; // substract to get GC coords
-	public int xScale = 1, yScale = 1;
-	
-	public Rectangle toClientRectangle(int x1, int y1, int x2, int y2) {
-		return new Rectangle(
-			Math.min(x1, x2) * xScale - xOffset,
-			Math.min(y1, y2) * yScale - yOffset,
-			(Math.abs(x2 - x1) + 1) * xScale,
-			(Math.abs(y2 - y1) + 1) * yScale);
-	}
-	public Point toClientPoint(int x, int y) {
-		return new Point(x * xScale - xOffset, y * yScale - yOffset);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/LineFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/LineFigure.java
deleted file mode 100755
index ab07a8a..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/LineFigure.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Line object
- */
-public class LineFigure extends Figure {
-	private Color foregroundColor, backgroundColor;
-	private int lineStyle, x1, y1, x2, y2;
-	/**
-	 * Constructs a Line
-	 * These objects are defined by their two end-points.
-	 * 
-	 * @param color the color for this object
-	 * @param lineStyle the line style for this object
-	 * @param x1 the virtual X coordinate of the first end-point
-	 * @param y1 the virtual Y coordinate of the first end-point
-	 * @param x2 the virtual X coordinate of the second end-point
-	 * @param y2 the virtual Y coordinate of the second end-point
-	 */
-	public LineFigure(Color foregroundColor, Color backgroundColor, int lineStyle, int x1, int y1, int x2, int y2) {
-		this.foregroundColor = foregroundColor;
-		this.backgroundColor = backgroundColor;
-		this.lineStyle = lineStyle;
-		this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
-	}
-	public void draw(FigureDrawContext fdc) {
-		Point p1 = fdc.toClientPoint(x1, y1);
-		Point p2 = fdc.toClientPoint(x2, y2);
-		fdc.gc.setForeground(foregroundColor);
-		fdc.gc.setBackground(backgroundColor);
-		fdc.gc.setLineStyle(lineStyle);
-		fdc.gc.drawLine(p1.x, p1.y, p2.x, p2.y);
-		fdc.gc.setLineStyle(SWT.LINE_SOLID);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		region.add(fdc.toClientRectangle(x1, y1, x2, y2));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/LineTool.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/LineTool.java
deleted file mode 100755
index 32d0399..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/LineTool.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A line drawing tool
- */
-public class LineTool extends DragPaintSession implements PaintTool {
-	private ToolSettings settings;
-
-	/**
-	 * Constructs a LineTool.
-	 * 
-	 * @param toolSettings the new tool settings
-	 * @param paintSurface the PaintSurface we will render on.
-	 */
-	public LineTool(ToolSettings toolSettings, PaintSurface paintSurface) {
-		super(paintSurface);
-		set(toolSettings);
-	}
-	
-	/**
-	 * Sets the tool's settings.
-	 * 
-	 * @param toolSettings the new tool settings
-	 */
-	public void set(ToolSettings toolSettings) {
-		settings = toolSettings;
-	}
-	
-	/**
-	 * Returns name associated with this tool.
-	 * 
-	 * @return the localized name of this tool
-	 */
-	public String getDisplayName() {
-		return PaintPlugin.getResourceString("tool.Line.label");
-	}
-
-	/*
-	 * Template methods for drawing
-	 */
-	protected Figure createFigure(Point a, Point b) {
-		return new LineFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
-			a.x, a.y, b.x, b.y);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintPlugin.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintPlugin.java
deleted file mode 100755
index d2f314e..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintPlugin.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.plugin.*;
-
-import java.text.*;
-import java.util.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class PaintPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static PaintPlugin plugin;
-	private static ResourceBundle resourceBundle;
-
-	/**
-	 * Constructs the Paint plugin.
-	 */
-	public PaintPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-		plugin = this;
-		resourceBundle = descriptor.getResourceBundle();
-	}
-	
-	/**
-	 * Returns the shared instance.
-	 */
-	public static PaintPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Log an error to the ILog for this plugin
-	 * 
-	 * @param message the localized error message text
-	 * @param exception the associated exception, or null
-	 */
-	public static void logError(String message, Throwable exception) {
-		plugin.getLog().log(new Status(IStatus.ERROR, plugin.getDescriptor().getUniqueIdentifier(),
-			0, message, exception));
-	}
-
-	/**
-	 * Returns a string from the resource bundle.
-	 * We don't want to crash because of a missing String.
-	 * Returns the key if not found.
-	 */
-	public static String getResourceString(String key) {
-		try {
-			return resourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}			
-	}
-
-	/**
-	 * Returns a string from the resource bundle and binds it
-	 * with the given arguments. If the key is not found,
-	 * return the key.
-	 */
-	public static String getResourceString(String key, Object[] args) {
-		try {
-			return MessageFormat.format(getResourceString(key), args);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintSession.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintSession.java
deleted file mode 100755
index 1d6eda2..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintSession.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.events.*;
-
-/**
- * Manages an interactive paint session.
- * Note that the coordinates received via the listener interfaces are virtualized to zero-origin
- * relative to the painting surface.
- */ 
-public interface PaintSession extends MouseListener, MouseMoveListener {
-	/**
-	 * Returns the paint surface associated with this paint session
-	 * 
-	 * @return the associated PaintSurface
-	 */
-	public PaintSurface getPaintSurface();
-
-	/**
-	 * Activates the session.
-	 * 
-	 * Note: When overriding this method, call super.beginSession() at method start.
-	 */
-	public abstract void beginSession();
-	
-	/**
-	 * Deactivates the session.
-     *
-	 * Note: When overriding this method, call super.endSession() at method exit.
-     */
-	public abstract void endSession();
-	
-	/**
-	 * Resets the session.
-	 * Aborts any operation in progress.
-	 * 
-	 * Note: When overriding this method, call super.resetSession() at method exit.
-	 */
-	public abstract void resetSession();
-	
-	
-	/**
-	 * Returns the name associated with this tool.
-	 * 
-	 * @return the localized name of this tool
-	 */
-	public String getDisplayName();
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintSurface.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintSurface.java
deleted file mode 100755
index a58af26..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintSurface.java
+++ /dev/null
@@ -1,523 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * Manages a simple drawing surface.
- */
-public class PaintSurface {
-	private Point currentPosition = new Point(0, 0);
-	private Canvas paintCanvas;
-
-	private PaintSession paintSession;
-	private Image image;
-	private Image paintImage; // buffer for refresh blits
-	private int   imageWidth, imageHeight;
-	private int   visibleWidth, visibleHeight;
-
-	private FigureDrawContext displayFDC = new FigureDrawContext();
-	private FigureDrawContext imageFDC = new FigureDrawContext();
-	private FigureDrawContext paintFDC = new FigureDrawContext();
-
-	/* Rubberband */
-	private ContainerFigure rubberband = new ContainerFigure();
-		// the active rubberband selection
-	private int rubberbandHiddenNestingCount = 0;
-		// always >= 0, if > 0 rubberband has been hidden
-
-	/* Status */
-	private Text statusText;
-	private String statusActionInfo, statusMessageInfo, statusCoordInfo;
-
-	/**
-	 * Constructs a PaintSurface.
-	 * <p>
-	 * paintCanvas must have SWT.NO_REDRAW_RESIZE and SWT.NO_BACKGROUND styles,
-	 *     and may have SWT.V_SCROLL and/or SWT.H_SCROLL.
-	 * </p>
-	 * @param paintCanvas the Canvas object in which to render
-	 * @param paintStatus the PaintStatus object to use for providing user feedback
-	 * @param fillColor the color to fill the canvas with initially
-	 */
-	public PaintSurface(Canvas paintCanvas, Text statusText, Color fillColor) {
-		this.paintCanvas = paintCanvas;
-		this.statusText = statusText;
-		clearStatus();
-
-		/* Set up the drawing surface */
-		Rectangle displayRect = paintCanvas.getDisplay().getClientArea();
-		imageWidth = displayRect.width;
-		imageHeight = displayRect.height;
-		image = new Image(paintCanvas.getDisplay(), imageWidth, imageHeight);
-
-		imageFDC.gc = new GC(image);
-		imageFDC.gc.setBackground(fillColor);
-		imageFDC.gc.fillRectangle(0, 0, imageWidth, imageHeight);
-		displayFDC.gc = new GC(paintCanvas);
-
-		/* Initialize the session */
-		setPaintSession(null);
-
-		/* Add our listeners */
-		paintCanvas.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				displayFDC.gc.dispose();
-			}			
-		});
-		paintCanvas.addMouseListener(new MouseAdapter() {
-			public void mouseDown(MouseEvent event) {
-				processMouseEventCoordinates(event);
-				if (paintSession != null) paintSession.mouseDown(event);
-			}
-			public void mouseUp(MouseEvent event) {
-				processMouseEventCoordinates(event);
-				if (paintSession != null) paintSession.mouseUp(event);
-			}
-			public void mouseDoubleClick(MouseEvent event) {
-				processMouseEventCoordinates(event);
-				if (paintSession != null) paintSession.mouseDoubleClick(event);
-			}			
-		});
-		paintCanvas.addMouseMoveListener(new MouseMoveListener() {
-			public void mouseMove(MouseEvent event) {
-				processMouseEventCoordinates(event);
-				if (paintSession != null) paintSession.mouseMove(event);
-			}
-		});
-		paintCanvas.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				if (rubberband.isEmpty()) {
-					// Nothing to merge, so we just refresh
-					event.gc.drawImage(image,
-						displayFDC.xOffset + event.x, displayFDC.yOffset + event.y, event.width, event.height,
-						event.x, event.y, event.width, event.height);
-				} else {
-					/*
-					 * Avoid flicker when merging overlayed objects by constructing the image on
-					 * a backbuffer first, then blitting it to the screen.
-					 */
-					// Check that the backbuffer is large enough
-					if (paintImage != null) {
-						Rectangle rect = paintImage.getBounds();
-						if ((event.width + event.x > rect.width) ||
-							(event.height + event.y > rect.height)) {
-							paintFDC.gc.dispose();
-							paintImage.dispose();
-							paintImage = null;
-						}
-					}
-					if (paintImage == null) {
-						Display display = getDisplay();
-						Rectangle rect = display.getClientArea();
-						paintImage = new Image(display,
-							Math.max(rect.width, event.width + event.x),
-							Math.max(rect.height, event.height + event.y));
-						paintFDC.gc = new GC(paintImage);
-					}
-					// Setup clipping and the FDC
-					Region clipRegion = new Region();
-					event.gc.getClipping(clipRegion);					
-					paintFDC.gc.setClipping(clipRegion);
-					clipRegion.dispose();
-
-					paintFDC.xOffset = displayFDC.xOffset;
-					paintFDC.yOffset = displayFDC.yOffset;
-					paintFDC.xScale = displayFDC.xScale;
-					paintFDC.yScale = displayFDC.yScale;
-					
-					// Merge the overlayed objects into the image, then blit
-					paintFDC.gc.drawImage(image,
-						displayFDC.xOffset + event.x, displayFDC.yOffset + event.y, event.width, event.height,
-						event.x, event.y, event.width, event.height);
-					rubberband.draw(paintFDC);
-					event.gc.drawImage(paintImage,
-						event.x, event.y, event.width, event.height,
-						event.x, event.y, event.width, event.height);
-				}
-			}
-		});
-		paintCanvas.addControlListener(new ControlAdapter() {
-			public void controlResized(ControlEvent event) {
-				handleResize();
-			}			
-		});
-
-		/* Set up the paint canvas scroll bars */
-		ScrollBar horizontal = paintCanvas.getHorizontalBar();
-		horizontal.setVisible(true);
-		horizontal.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				scrollHorizontally((ScrollBar)event.widget);
-			}
-		});
-		ScrollBar vertical = paintCanvas.getVerticalBar();
-		vertical.setVisible(true);
-		vertical.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				scrollVertically((ScrollBar)event.widget);
-			}
-		});
-		handleResize();
-	}
-	
-	/**
-	 * Disposes of the PaintSurface's resources.
-	 */
-	public void dispose() {
-		imageFDC.gc.dispose();
-		image.dispose();
-		if (paintImage != null) {
-			paintImage.dispose();
-			paintFDC.gc.dispose();
-		}
-
-		currentPosition = null;
-		paintCanvas = null;
-		paintSession = null;
-		image = null;
-		paintImage = null;
-		displayFDC = null;
-		imageFDC = null;
-		paintFDC = null;
-		rubberband = null;
-		statusText = null;
-		statusActionInfo = null;
-		statusMessageInfo = null;
-		statusCoordInfo = null;
-	}
-
-	/**
-	 * Called when we must grab focus.
-	 */
-	public void setFocus()  {
-		paintCanvas.setFocus();
-	}
-
-	/**
-	 * Returns the Display on which the PaintSurface resides.
-	 * @return the Display
-	 */
-	public Display getDisplay() {
-		return paintCanvas.getDisplay();
-	}
-
-	/**
-	 * Returns the Shell in which the PaintSurface resides.
-	 * @return the Shell
-	 */
-	public Shell getShell() {
-		return paintCanvas.getShell();
-	}
-
-	/**
-	 * Sets the current paint session.
-	 * <p>
-	 * If oldPaintSession != paintSession calls oldPaintSession.end()
-	 * and paintSession.begin()
-	 * </p>
-	 * 
-	 * @param paintSession the paint session to activate; null to disable all sessions
-	 */
-	public void setPaintSession(PaintSession paintSession) {
-		if (this.paintSession != null) {
-			if (this.paintSession == paintSession) return;
-			this.paintSession.endSession();
-		}
-		this.paintSession = paintSession;
-		clearStatus();
-		if (paintSession != null) {
-			setStatusAction(paintSession.getDisplayName());
-			paintSession.beginSession();
-		} else {
-			setStatusAction(PaintPlugin.getResourceString("tool.Null.label"));
-			setStatusMessage(PaintPlugin.getResourceString("session.Null.message"));
-		}
-	}
-
-	/**
-	 * Returns the current paint session.
-	 * 
-	 * @return the current paint session, null if none is active
-	 */
-	public PaintSession getPaintSession() {
-		return paintSession;
-	}
-
-	/**
-	 * Returns the current paint tool.
-	 * 
-	 * @return the current paint tool, null if none is active (though some other session
-	 *         might be)
-	 */
-	public PaintTool getPaintTool() {
-		return (paintSession != null && paintSession instanceof PaintTool) ?
-			(PaintTool)paintSession : null;
-	}
-
-	/**
-	 * Returns the current position in an interactive operation.
-	 *
-	 * @return the last known position of the pointer
-	 */
-	public Point getCurrentPosition() {
-		return currentPosition;
-	}
-
-	/**
-	 * Draws a Figure object to the screen and to the backing store permanently.
-	 * 
-	 * @param object the object to draw onscreen
-	 */
-	public void drawFigure(Figure object) {
-		object.draw(imageFDC);
-		object.draw(displayFDC);
-	}
-
-	/**
-	 * Adds a Figure object to the active rubberband selection.
-	 * <p>
-	 * This object will be drawn to the screen as a preview and refreshed appropriately
-	 * until the selection is either cleared or committed.
-	 * </p>
-	 * 
-	 * @param object the object to add to the selection
-	 */
-	public void addRubberbandSelection(Figure object) {
-		rubberband.add(object);
-		if (! isRubberbandHidden()) object.draw(displayFDC);
-	}
-
-	/**
-	 * Clears the active rubberband selection.
-	 * <p>
-	 * Erases any rubberband objects on the screen then clears the selection.
-	 * </p>
-	 */
-	public void clearRubberbandSelection() {
-		if (! isRubberbandHidden()) {
-			Region region = new Region();
-			rubberband.addDamagedRegion(displayFDC, region);
-			Rectangle r = region.getBounds();
-			paintCanvas.redraw(r.x, r.y, r.width, r.height, true);
-			region.dispose();
-		}
-		rubberband.clear();
-
-	}
-
-	/**
-	 * Commits the active rubberband selection.
-	 * <p>
-	 * Redraws any rubberband objects on the screen as permanent objects then clears the selection.
-	 * </p>
-	 */
-	public void commitRubberbandSelection() {
-		rubberband.draw(imageFDC);
-		if (isRubberbandHidden()) rubberband.draw(displayFDC);
-		rubberband.clear();
-	}
-	
-	/**
-	 * Hides the rubberband (but does not eliminate it).
-	 * <p>
-	 * Increments by one the rubberband "hide" nesting count.  The rubberband
-	 * is hidden from view (but remains active) if it wasn't already hidden.
-	 * </p>
-	 */
-	public void hideRubberband() {
-		if (rubberbandHiddenNestingCount++ <= 0) {
-			Region region = new Region();
-			rubberband.addDamagedRegion(displayFDC, region);
-			Rectangle r = region.getBounds();
-			paintCanvas.redraw(r.x, r.y, r.width, r.height, true);
-			region.dispose();
-		}
-	}		
-
-	/**
-	 * Shows (un-hides) the rubberband.
-	 * <p>
-	 * Decrements by one the rubberband "hide" nesting count.  The rubberband
-	 * is only made visible when showRubberband() has been called once for each
-	 * previous hideRubberband().  It is not permitted to call showRubberband() if
-	 * the rubber band is not presently hidden.
-	 * </p>
-	 */
-	public void showRubberband() {
-		if (rubberbandHiddenNestingCount <= 0)
-			throw new IllegalStateException("rubberbandHiddenNestingCount > 0");
-		if (--rubberbandHiddenNestingCount == 0) {
-			rubberband.draw(displayFDC);
-		}
-	}
-	
-	/**
-	 * Determines if the rubberband is hidden.
-	 * 
-	 * @return true iff the rubber is hidden
-	 */
-	public boolean isRubberbandHidden() {
-		return rubberbandHiddenNestingCount > 0;
-	}
-
-	/**
-	 * Handles a horizontal scroll event
-	 * 
-	 * @param scrollbar the horizontal scroll bar that posted this event
-	 */
-	public void scrollHorizontally(ScrollBar scrollBar) {
-		if (image == null) return;
-		if (imageWidth > visibleWidth) {
-			final int oldOffset = displayFDC.xOffset;
-			final int newOffset = Math.min(scrollBar.getSelection(), imageWidth - visibleWidth);
-			if (oldOffset != newOffset) {
-				paintCanvas.update();
-				displayFDC.xOffset = newOffset;
-				paintCanvas.scroll(Math.max(oldOffset - newOffset, 0), 0, Math.max(newOffset - oldOffset, 0), 0,
-					visibleWidth, visibleHeight, false);
-			}
-		}
-	}
-
-	/**
-	 * Handles a vertical scroll event
-	 * 
-	 * @param scrollbar the vertical scroll bar that posted this event
-	 */
-	public void scrollVertically(ScrollBar scrollBar) {
-		if (image == null) return;
-		if (imageHeight > visibleHeight) {
-			final int oldOffset = displayFDC.yOffset;
-			final int newOffset = Math.min(scrollBar.getSelection(), imageHeight - visibleHeight);
-			if (oldOffset != newOffset) {
-				paintCanvas.update();
-				displayFDC.yOffset = newOffset;
-				paintCanvas.scroll(0, Math.max(oldOffset - newOffset, 0), 0, Math.max(newOffset - oldOffset, 0),
-					visibleWidth, visibleHeight, false);
-			}
-		}
-	}
-	
-	/**
-	 * Handles resize events
-	 */
-	private void handleResize() {
-		paintCanvas.update();
-
-		Rectangle visibleRect = paintCanvas.getClientArea();
-		visibleWidth = visibleRect.width;
-		visibleHeight = visibleRect.height;
-
-		ScrollBar horizontal = paintCanvas.getHorizontalBar();
-		if (horizontal != null) {
-			displayFDC.xOffset = Math.min(horizontal.getSelection(), imageWidth - visibleWidth);
-			if (imageWidth <= visibleWidth) {
-				horizontal.setEnabled(false);
-				horizontal.setSelection(0);
-			} else {
-				final int max = imageWidth - visibleWidth;
-				horizontal.setEnabled(true);
-				horizontal.setValues(displayFDC.xOffset, 0, imageWidth, visibleWidth,
-					8, visibleWidth);
-			}
-		}
-
-		ScrollBar vertical = paintCanvas.getVerticalBar();
-		if (vertical != null) {
-			displayFDC.yOffset = Math.min(vertical.getSelection(), imageHeight - visibleHeight);
-			if (imageHeight <= visibleHeight) {
-				vertical.setEnabled(false);
-				vertical.setSelection(0);
-			} else {
-				final int max = imageHeight - visibleHeight;
-				vertical.setEnabled(true);
-				vertical.setValues(displayFDC.yOffset, 0, imageHeight, visibleHeight,
-					8, visibleHeight);
-			}
-		}
-	}
-
-	/**
-	 * Virtualizes MouseEvent coordinates and stores the current position.
-	 */
-	private void processMouseEventCoordinates(MouseEvent event) {
-		currentPosition.x = event.x =
-			Math.min(Math.max(event.x, 0), visibleWidth - 1) + displayFDC.xOffset;
-		currentPosition.y = event.y =
-			Math.min(Math.max(event.y, 0), visibleHeight - 1) + displayFDC.yOffset;
-	}
-	
-	/**
-	 * Clears the status bar.
-	 */
-	public void clearStatus() {
-		statusActionInfo = "";
-		statusMessageInfo = "";
-		statusCoordInfo = "";
-		updateStatus();
-	}
-
-	/**
-	 * Sets the status bar action text.
-	 *
-	 * @param action the action in progress, null to clear
-	 */
-	public void setStatusAction(String action) {
-		statusActionInfo = (action != null) ? action : "";
-		updateStatus();
-	}
-	
-	/**
-	 * Sets the status bar message text.
-	 * 
-	 * @param message the message to display, null to clear
-	 */
-	public void setStatusMessage(String message) {
-		statusMessageInfo = (message != null) ? message : "";
-		updateStatus();
-	}
-
-	/**
-	 * Sets the coordinates in the status bar.
-	 * 
-	 * @param coord the coordinates to display, null to clear
-	 */
-	public void setStatusCoord(Point coord) {
-		statusCoordInfo = (coord != null) ? PaintPlugin.getResourceString("status.Coord.format", new Object[]
-			{ new Integer(coord.x), new Integer(coord.y)}) : "";
-		updateStatus();
-	}
-
-	/**
-	 * Sets the coordinate range in the status bar.
-	 * 
-	 * @param a the "from" coordinate, must not be null
-	 * @param b the "to" coordinate, must not be null
-	 */
-	public void setStatusCoordRange(Point a, Point b) {
-		statusCoordInfo = PaintPlugin.getResourceString("status.CoordRange.format", new Object[]
-			{ new Integer(a.x), new Integer(a.y), new Integer(b.x), new Integer(b.y)});
-		updateStatus();
-	}
-
-	/**
-	 * Updates the display.
-	 */
-	private void updateStatus() {
-		statusText.setText(
-			PaintPlugin.getResourceString("status.Bar.format", new Object[]
-			{ statusActionInfo, statusMessageInfo, statusCoordInfo }));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintTool.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintTool.java
deleted file mode 100755
index 7ec50d9..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintTool.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-public interface PaintTool extends PaintSession {
-	/**
-	 * Sets the tool's settings.
-	 * 
-	 * @param toolSettings the new tool settings
-	 */
-	public void set(ToolSettings toolSettings);
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintView.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintView.java
deleted file mode 100755
index 5fb8970..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintView.java
+++ /dev/null
@@ -1,500 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.resource.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.part.*;
-
-import java.net.*;
-import java.util.*;
-
-/**
- * The view for the paint application.
- * All rendering happens inside the area created by createPartControl().
- * 
- * @see ViewPart
- */
-public class PaintView extends ViewPart {
-	private Display workbenchDisplay;
-
-	// current active settings
-	private ToolSettings toolSettings;
-
-	// paint surface for drawing
-	private PaintSurface paintSurface;
-
-	// map action ids to useful data
-	private HashMap /* of String to PaintTool */ paintToolMap;
-	private HashMap /* of String to Integer */ paintFillTypeMap;
-	private HashMap /* of String to Integer */ paintLineStyleMap;
-	
-	/** UI data **/
-	// handle of currently active tool IAction on the UI
-	private IAction activeToolAction;
-	// handle of currently active filltype IAction on the UI
-	private IAction activeFillTypeAction;
-	// handle of currently active linetype IAction on the UI
-	private IAction activeLineStyleAction;
-
-	// handle of active foreground color box Canvas widget
-	private Canvas activeForegroundColorCanvas;
-	// handle of active background color box Canvas widget
-	private Canvas activeBackgroundColorCanvas;
-	
-	private static final int numPaletteRows = 3;
-	private static final int numPaletteCols = 50;
-
-	// shared data	
-	private Color paintColorBlack, paintColorWhite; // alias for paintColors[0] and [1]
-	private Color[] paintColors;
-	private Font paintDefaultFont; // do not free
-
-	/**
-	 * Constructs a Paint view.
-	 */
-	public PaintView() {
-	}
-
-	/**
-	 * Cleanup
-	 */
-	public void dispose() {
-		if (paintSurface != null) paintSurface.dispose();		
-		if (paintColors != null) {
-			for (int i = 0; i < paintColors.length; ++i) {
-				final Color color = paintColors[i];
-				if (color != null) color.dispose();
-			}
-		}
-		paintDefaultFont = null;
-		paintColors = null;
-		paintSurface = null;
-		super.dispose();
-	}
-	
-	/**
-	 * Called when we must grab focus.
-	 * 
-	 * @see org.eclipse.ui.part.ViewPart#setFocus
-	 */
-	public void setFocus() {
-		paintSurface.setFocus();
-	}
-
-	/**
-	 * Creates the example.
-	 * 
-	 * @see ViewPart#createPartControl
-	 */
-	public void createPartControl(Composite parent) {
-		/*** Initialize shared data ***/
-		workbenchDisplay = parent.getDisplay();
-		
-		paintColorWhite = new Color(workbenchDisplay, 255, 255, 255);
-		paintColorBlack = new Color(workbenchDisplay, 0, 0, 0);
-		
-		paintDefaultFont = workbenchDisplay.getSystemFont();
-
-		paintColors = new Color[numPaletteCols * numPaletteRows];
-		paintColors[0] = paintColorBlack;
-		paintColors[1] = paintColorWhite;
-		for (int i = 2; i < paintColors.length; i++) {
-			paintColors[i] = new Color(workbenchDisplay,
-				((i*7)%255),((i*23)%255), ((i*51)%255));
-		}
-
-		toolSettings = new ToolSettings();
-		toolSettings.commonForegroundColor = paintColorBlack;
-		toolSettings.commonBackgroundColor = paintColorWhite;
-		toolSettings.commonFont = paintDefaultFont;
-
-		/*** Add toolbar contributions ***/
-		final IActionBars actionBars = getViewSite().getActionBars();
-		IToolBarManager toolbarManager = actionBars.getToolBarManager();
-
-		toolbarManager.add(new GroupMarker("group.tools"));
-		toolbarManager.appendToGroup("group.tools", new SelectPaintToolAction("tool.Pencil"));
-		toolbarManager.appendToGroup("group.tools", new SelectPaintToolAction("tool.Airbrush"));
-		toolbarManager.appendToGroup("group.tools", new SelectPaintToolAction("tool.Line"));
-		toolbarManager.appendToGroup("group.tools", new SelectPaintToolAction("tool.PolyLine"));
-		toolbarManager.appendToGroup("group.tools", new SelectPaintToolAction("tool.Rectangle"));
-		toolbarManager.appendToGroup("group.tools", new SelectPaintToolAction("tool.RoundedRectangle"));
-		toolbarManager.appendToGroup("group.tools", new SelectPaintToolAction("tool.Ellipse"));
-		toolbarManager.appendToGroup("group.tools", new SelectPaintToolAction("tool.Text"));
-		toolbarManager.add(new Separator());
-		toolbarManager.add(new GroupMarker("group.options.fill"));
-		toolbarManager.appendToGroup("group.options.fill", new SelectFillTypeAction("fill.None"));
-		toolbarManager.appendToGroup("group.options.fill", new SelectFillTypeAction("fill.Outline"));
-		toolbarManager.appendToGroup("group.options.fill", new SelectFillTypeAction("fill.Solid"));
-		toolbarManager.add(new Separator());
-		toolbarManager.add(new GroupMarker("group.options.linestyle"));
-		toolbarManager.appendToGroup("group.options.linestyle", new SelectLineStyleAction("linestyle.Solid"));
-		toolbarManager.appendToGroup("group.options.linestyle", new SelectLineStyleAction("linestyle.Dash"));
-		toolbarManager.appendToGroup("group.options.linestyle", new SelectLineStyleAction("linestyle.Dot"));
-		toolbarManager.appendToGroup("group.options.linestyle", new SelectLineStyleAction("linestyle.DashDot"));
-		toolbarManager.add(new Separator());
-		toolbarManager.add(new GroupMarker("group.options"));
-		toolbarManager.appendToGroup("group.options", new SelectFontAction("options.Font"));
-		actionBars.updateActionBars();
-
-		/*** Build GUI ***/
-		createGUI(parent);
-
-		/*** Set defaults ***/
-		setPaintToolByID("tool.Pencil");
-		setFillTypeByID("fill.None");
-		setLineStyleByID("linestyle.Solid");
-		setForegroundColor(paintColorBlack);
-		setBackgroundColor(paintColorWhite);
-	}
-
-	/**
-	 * Creates the GUI.
-	 */
-	private void createGUI(Composite parent) {
-		GridLayout gridLayout;
-		GridData gridData;
-
-		/*** Create principal GUI layout elements ***/		
-		Composite displayArea = new Composite(parent, SWT.NONE);
-		gridLayout = new GridLayout();
-		gridLayout.numColumns = 1;
-		displayArea.setLayout(gridLayout);
-
-		// Creating these elements here avoids the need to instantiate the GUI elements
-		// in strict layout order.  The natural layout ordering is an artifact of using
-		// SWT layouts, but unfortunately it is not the same order as that required to
-		// instantiate all of the non-GUI application elements to satisfy referential
-		// dependencies.  It is possible to reorder the initialization to some extent, but
-		// this can be very tedious.
-		
-		// paint canvas
-		final Canvas paintCanvas = new Canvas(displayArea, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL |
-			SWT.NO_REDRAW_RESIZE | SWT.NO_BACKGROUND);
-		gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-		paintCanvas.setLayoutData(gridData);
-		paintCanvas.setBackground(paintColorWhite);
-		
-		// color selector frame
-		final Composite colorFrame = new Composite(displayArea, SWT.NONE);
-		gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-		colorFrame.setLayoutData(gridData);
-
-		// tool settings frame
-		final Composite toolSettingsFrame = new Composite(displayArea, SWT.NONE);
-		gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-		toolSettingsFrame.setLayoutData(gridData);
-
-		// status text
-		final Text statusText = new Text(displayArea, SWT.BORDER | SWT.SINGLE | SWT.READ_ONLY);
-		gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-		statusText.setLayoutData(gridData);
-
-		/*** Create the remaining application elements inside the principal GUI layout elements ***/	
-		// paintSurface
-		paintSurface = new PaintSurface(paintCanvas, statusText, paintColorWhite);
-
-		// paintToolMap
-		paintToolMap = new HashMap();
-		paintToolMap.put("tool.Pencil", new PencilTool(toolSettings, paintSurface));
-		paintToolMap.put("tool.Airbrush", new AirbrushTool(toolSettings, paintSurface));
-		paintToolMap.put("tool.Line", new LineTool(toolSettings, paintSurface));
-		paintToolMap.put("tool.PolyLine", new PolyLineTool(toolSettings, paintSurface));
-		paintToolMap.put("tool.Rectangle", new RectangleTool(toolSettings, paintSurface));
-		paintToolMap.put("tool.RoundedRectangle", new RoundedRectangleTool(toolSettings, paintSurface));
-		paintToolMap.put("tool.Ellipse", new EllipseTool(toolSettings, paintSurface));
-		paintToolMap.put("tool.Text", new TextTool(toolSettings, paintSurface));
-		paintToolMap.put("tool.Null", null);
-
-		// paintFillTypeMap
-		paintFillTypeMap = new HashMap();
-		paintFillTypeMap.put("fill.None", new Integer(ToolSettings.ftNone));
-		paintFillTypeMap.put("fill.Outline", new Integer(ToolSettings.ftOutline));
-		paintFillTypeMap.put("fill.Solid", new Integer(ToolSettings.ftSolid));
-
-		// paintLineStyleMap
-		paintLineStyleMap = new HashMap();
-		paintLineStyleMap.put("linestyle.Solid", new Integer(SWT.LINE_SOLID));
-		paintLineStyleMap.put("linestyle.Dash", new Integer(SWT.LINE_DASH));
-		paintLineStyleMap.put("linestyle.Dot", new Integer(SWT.LINE_DOT));
-		paintLineStyleMap.put("linestyle.DashDot", new Integer(SWT.LINE_DASHDOT));
-
-		// colorFrame		
-		gridLayout = new GridLayout();
-		gridLayout.numColumns = 3;
-		gridLayout.marginHeight = 0;
-		gridLayout.marginWidth = 0;
-		colorFrame.setLayout(gridLayout);
-
-		// activeForegroundColorCanvas, activeBackgroundColorCanvas
-		activeForegroundColorCanvas = new Canvas(colorFrame, SWT.BORDER);
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gridData.heightHint = 24;
-		gridData.widthHint = 24;
-		activeForegroundColorCanvas.setLayoutData(gridData);
-
-		activeBackgroundColorCanvas = new Canvas(colorFrame, SWT.BORDER);
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gridData.heightHint = 24;
-		gridData.widthHint = 24;
-		activeBackgroundColorCanvas.setLayoutData(gridData);
-
-		// paletteCanvas
-		final Canvas paletteCanvas = new Canvas(colorFrame, SWT.BORDER | SWT.NO_BACKGROUND);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.heightHint = 24;
-		paletteCanvas.setLayoutData(gridData);
-		paletteCanvas.addListener(SWT.MouseDown, new Listener() {
-			public void handleEvent(Event e) {
-				Rectangle bounds = paletteCanvas.getClientArea();
-				Color color = getColorAt(bounds, e.x, e.y);				
-					
-				if (e.button == 1) setForegroundColor(color);
-				else setBackgroundColor(color);
-			}
-			private Color getColorAt(Rectangle bounds, int x, int y) {
-				if (bounds.height <= 1 && bounds.width <= 1) return paintColorWhite;
-				final int row = (y - bounds.y) * numPaletteRows / bounds.height;
-				final int col = (x - bounds.x) * numPaletteCols / bounds.width;
-				return paintColors[Math.min(Math.max(row * numPaletteCols + col, 0), paintColors.length - 1)];
-			}
-		});
-		Listener refreshListener = new Listener() {
-			public void handleEvent(Event e) {
-				if (e.gc == null) return;
-				Rectangle bounds = paletteCanvas.getClientArea();
-				for (int row = 0; row < numPaletteRows; ++row) {
-					for (int col = 0; col < numPaletteCols; ++col) {
-						final int x = bounds.width * col / numPaletteCols;
-						final int y = bounds.height * row / numPaletteRows;
-						final int width = Math.max(bounds.width * (col + 1) / numPaletteCols - x, 1);
-						final int height = Math.max(bounds.height * (row + 1) / numPaletteRows - y, 1);
-						e.gc.setBackground(paintColors[row * numPaletteCols + col]);
-						e.gc.fillRectangle(bounds.x + x, bounds.y + y, width, height);
-					}
-				}
-			}
-		};
-		paletteCanvas.addListener(SWT.Resize, refreshListener);
-		paletteCanvas.addListener(SWT.Paint, refreshListener);
-		//paletteCanvas.redraw();
-		
-		// toolSettingsFrame
-		gridLayout = new GridLayout();
-		gridLayout.numColumns = 4;
-		gridLayout.marginHeight = 0;
-		gridLayout.marginWidth = 0;
-		toolSettingsFrame.setLayout(gridLayout);
-
-		Label label = new Label(toolSettingsFrame, SWT.NONE);
-		label.setText(PaintPlugin.getResourceString("settings.AirbrushRadius.text"));
-
-		final Scale airbrushRadiusScale = new Scale(toolSettingsFrame, SWT.HORIZONTAL);
-		airbrushRadiusScale.setMinimum(5);
-		airbrushRadiusScale.setMaximum(50);
-		airbrushRadiusScale.setSelection(toolSettings.airbrushRadius);
-		airbrushRadiusScale.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
-		airbrushRadiusScale.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				toolSettings.airbrushRadius = airbrushRadiusScale.getSelection();
-				updateToolSettings();
-			}
-		});
-
-		label = new Label(toolSettingsFrame, SWT.NONE);
-		label.setText(PaintPlugin.getResourceString("settings.AirbrushIntensity.text"));
-
-		final Scale airbrushIntensityScale = new Scale(toolSettingsFrame, SWT.HORIZONTAL);
-		airbrushIntensityScale.setMinimum(1);
-		airbrushIntensityScale.setMaximum(100);
-		airbrushIntensityScale.setSelection(toolSettings.airbrushIntensity);
-		airbrushIntensityScale.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
-		airbrushIntensityScale.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				toolSettings.airbrushIntensity = airbrushIntensityScale.getSelection();
-				updateToolSettings();
-			}
-		});
-	}
-		
-	/**
-	 * Notifies the tool that its settings have changed.
-	 */
-	private void updateToolSettings() {
-		final PaintTool activePaintTool = paintSurface.getPaintTool();
-		if (activePaintTool == null) return;
-		
-		activePaintTool.endSession();
-		activePaintTool.set(toolSettings);
-		activePaintTool.beginSession();
-	}
-
-	/**
-	 * Sets the tool foreground color.
-	 * 
-	 * @param color the new color to use
-	 */
-	public void setForegroundColor(Color color) {
-		if (activeForegroundColorCanvas != null)
-			activeForegroundColorCanvas.setBackground(color);
-		toolSettings.commonForegroundColor = color;
-		updateToolSettings();
-	}
-
-	/**
-	 * Set the tool background color.
-	 * 
-	 * @param color the new color to use
-	 */
-	public void setBackgroundColor(Color color) {
-		if (activeBackgroundColorCanvas != null)
-			activeBackgroundColorCanvas.setBackground(color);
-		toolSettings.commonBackgroundColor = color;
-		updateToolSettings();
-	}
-
-	/**
-	 * Selects a tool given its ID.
-	 */
-	public void setPaintToolByID(String id) {
-		activeToolAction = handleRadioAction(activeToolAction, id);
-		
-		final PaintTool paintTool = (PaintTool) paintToolMap.get(id);
-		paintSurface.setPaintSession(paintTool);
-		updateToolSettings();
-	}
-	
-	/**
-	 * Selects a filltype given its ID.
-	 */
-	public void setFillTypeByID(String id) {
-		activeFillTypeAction = handleRadioAction(activeFillTypeAction, id);
-		
-		final Integer fillType = (Integer) paintFillTypeMap.get(id);
-		toolSettings.commonFillType = fillType.intValue();
-		updateToolSettings();		
-	}
-
-	/**
-	 * Selects line type given its ID.
-	 */
-	public void setLineStyleByID(String id) {
-		activeLineStyleAction = handleRadioAction(activeLineStyleAction, id);
-		
-		final Integer lineType = (Integer) paintLineStyleMap.get(id);
-		toolSettings.commonLineStyle = lineType.intValue();
-		updateToolSettings();		
-	}
-
-	/**
-	 * Gets the IAction for an ID belonging to a set of mutually exclusive actions, and
-	 * toggles the old action off if necessary.
-	 */
-	private IAction handleRadioAction(IAction oldAction, String id) {
-		IAction action = getActionByID(id);
-		if (action != null) {
-			if (oldAction != null) oldAction.setChecked(false);
-			if (! action.isChecked()) action.setChecked(true);
-			return action;
-		}
-		return oldAction;
-	}
-
-	/**
-	 * Gets the IAction representing the UI toolbar button with the specified ID.
-	 */
-	private IAction getActionByID(String id) {
-		final IActionBars actionBars = getViewSite().getActionBars();
-		IToolBarManager toolbarManager = actionBars.getToolBarManager();
-		ActionContributionItem contributionItem = (ActionContributionItem) toolbarManager.find(id);
-		if (contributionItem == null) return null;
-		return contributionItem.getAction();
-	}
-
-	/**
-	 * Returns the Display.
-	 * 
-	 * @return the display we're using
-	 */
-	public Display getDisplay() {
-		return workbenchDisplay;
-	}
-	
-	/**
-	 * Action set glue.
-	 */
-	abstract class PaintAction extends Action {
-		public PaintAction(String id) {
-			super();
-			setId(id);
-
-			try {
-				final URL installUrl = PaintPlugin.getDefault().getDescriptor().getInstallURL();
-				final URL imageUrl = new URL(installUrl, PaintPlugin.getResourceString(id + ".image"));
-				setImageDescriptor(ImageDescriptor.createFromURL(imageUrl));
-			} catch (MalformedURLException e) {
-				PaintPlugin.logError("", e);	
-			}
-
-			setText(PaintPlugin.getResourceString(id + ".label"));
-			setToolTipText(PaintPlugin.getResourceString(id + ".tooltip"));
-			setDescription(PaintPlugin.getResourceString(id + ".description"));
-		}
-	}
-	class SelectPaintToolAction extends PaintAction {
-		public SelectPaintToolAction(String id) { super(id); }
-		public int getStyle() { return IAction.AS_CHECK_BOX; }
-		public void run() { setPaintToolByID(getId()); }
-		
-	}
-	class SelectFillTypeAction extends PaintAction {
-		public SelectFillTypeAction(String id) { super(id); }
-		public int getStyle() { return IAction.AS_CHECK_BOX; }
-		public void run() { setFillTypeByID(getId()); }
-	}
-	class SelectLineStyleAction extends PaintAction {
-		public SelectLineStyleAction(String id) { super(id); }
-		public int getStyle() { return IAction.AS_CHECK_BOX; }
-		public void run() { setLineStyleByID(getId()); }
-	}
-	class SelectFontAction extends PaintAction {
-		public SelectFontAction(String id) { super(id); }
-		public int getStyle() { return IAction.AS_PUSH_BUTTON; }
-		public void run() {
-			FontDialog fontDialog = new FontDialog(paintSurface.getShell(), SWT.PRIMARY_MODAL);
-			FontData[] fontDatum = toolSettings.commonFont.getFontData();
-			if (fontDatum != null && fontDatum.length > 0) {
-				fontDialog.setFontList(fontDatum);
-			}
-			fontDialog.setText(PaintPlugin.getResourceString("options.Font.dialog.title"));
-
-			paintSurface.hideRubberband();
-			FontData fontData = fontDialog.open();
-			paintSurface.showRubberband();
-			if (fontData != null) {
-				try {
-					Font font = new Font(workbenchDisplay, fontData);
-					toolSettings.commonFont = font;
-					updateToolSettings();
-				} catch (SWTException e) {
-				}
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PencilTool.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PencilTool.java
deleted file mode 100755
index 08d1dab9..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PencilTool.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A pencil tool.
- */
-public class PencilTool extends ContinuousPaintSession implements PaintTool {
-	private ToolSettings settings;
-	
-	/**
-	 * Constructs a pencil tool.
-	 * 
-	 * @param toolSettings the new tool settings
-	 * @param getPaintSurface() the PaintSurface we will render on.
-	 */
-	public PencilTool(ToolSettings toolSettings, PaintSurface paintSurface) {
-		super(paintSurface);
-		set(toolSettings);
-	}
-	
-	/**
-	 * Sets the tool's settings.
-	 * 
-	 * @param toolSettings the new tool settings
-	 */
-	public void set(ToolSettings toolSettings) {
-		settings = toolSettings;
-	}
-
-	/**
-	 * Returns the name associated with this tool.
-	 * 
-	 * @return the localized name of this tool
-	 */
-	public String getDisplayName() {
-		return PaintPlugin.getResourceString("tool.Pencil.label");
-	}
-
-	/*
-	 * Template method for drawing
-	 */
-	public void render(final Point point) {
-		final PaintSurface ps = getPaintSurface();
-		ps.drawFigure(new PointFigure(settings.commonForegroundColor, point.x, point.y));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PointFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PointFigure.java
deleted file mode 100644
index 4b85369..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PointFigure.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Point object
- */
-public class PointFigure extends Figure {
-	private Color color;
-	private int x, y;
-	/**
-	 * Constructs a Point
-	 * 
-	 * @param color the color for this object
-	 * @param x the virtual X coordinate of the first end-point
-	 * @param y the virtual Y coordinate of the first end-point
-	 */
-	public PointFigure(Color color, int x, int y) {
-		this.color = color; this.x = x; this.y = y;
-	}
-	public void draw(FigureDrawContext fdc) {
-		Point p = fdc.toClientPoint(x, y);
-		fdc.gc.setBackground(color);
-		fdc.gc.fillRectangle(p.x, p.y, 1, 1);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		region.add(fdc.toClientRectangle(x, y, x, y));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PolyLineTool.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PolyLineTool.java
deleted file mode 100755
index 03d1583..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PolyLineTool.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A polyline drawing tool.
- */
-public class PolyLineTool extends SegmentedPaintSession implements PaintTool {
-	private ToolSettings settings;
-
-	/**
-	 * Constructs a PolyLineTool.
-	 * 
-	 * @param toolSettings the new tool settings
-	 * @param paintSurface the PaintSurface we will render on.
-	 */
-	public PolyLineTool(ToolSettings toolSettings, PaintSurface paintSurface) {
-		super(paintSurface);
-		set(toolSettings);
-	}
-	
-	/**
-	 * Sets the tool's settings.
-	 * 
-	 * @param toolSettings the new tool settings
-	 */
-	public void set(ToolSettings toolSettings) {
-		settings = toolSettings;
-	}
-
-	/**
-	 * Returns the name associated with this tool.
-	 * 
-	 * @return the localized name of this tool
-	 */
-	public String getDisplayName() {
-		return PaintPlugin.getResourceString("tool.PolyLine.label");
-	}
-
-	/*
-	 * Template methods for drawing
-	 */
-	protected Figure createFigure(Point[] points, int numPoints, boolean closed) {
-		ContainerFigure container = new ContainerFigure();
-		if (closed && settings.commonFillType != ToolSettings.ftNone && numPoints >= 3) {
-			container.add(new SolidPolygonFigure(settings.commonBackgroundColor, points, numPoints));
-		}
-		if (! closed || settings.commonFillType != ToolSettings.ftSolid || numPoints < 3) {
-			for (int i = 0; i < numPoints - 1; ++i) {
-				final Point a = points[i];
-				final Point b = points[i + 1];
-				container.add(new LineFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
-					a.x, a.y, b.x, b.y));
-			}
-			if (closed) {
-				final Point a = points[points.length - 1];
-				final Point b = points[0];
-				container.add(new LineFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
-					a.x, a.y, b.x, b.y));
-			}
-		}
-		return container;
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RectangleFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RectangleFigure.java
deleted file mode 100755
index 1f416f8..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RectangleFigure.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Rectangle object
- */
-public class RectangleFigure extends Figure {
-	private Color foregroundColor, backgroundColor;
-	private int lineStyle, x1, y1, x2, y2;
-	/**
-	 * Constructs a Rectangle
-	 * These objects are defined by any two diametrically opposing corners.
-	 * 
-	 * @param color the color for this object
-	 * @param lineStyle the line style for this object
-	 * @param x1 the virtual X coordinate of the first corner
-	 * @param y1 the virtual Y coordinate of the first corner
-	 * @param x2 the virtual X coordinate of the second corner
-	 * @param y2 the virtual Y coordinate of the second corner
-	 */
-	public RectangleFigure(Color foregroundColor, Color backgroundColor, int lineStyle, int x1, int y1, int x2, int y2) {
-		this.foregroundColor = foregroundColor;
-		this.backgroundColor = backgroundColor;
-		this.lineStyle = lineStyle;
-		this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
-	}
-	public void draw(FigureDrawContext fdc) {
-		Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
-		fdc.gc.setForeground(foregroundColor);
-		fdc.gc.setBackground(backgroundColor);
-		fdc.gc.setLineStyle(lineStyle);
-		fdc.gc.drawRectangle(r.x, r.y, r.width - 1, r.height - 1);
-		fdc.gc.setLineStyle(SWT.LINE_SOLID);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		region.add(fdc.toClientRectangle(x1, y1, x2, y2));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RectangleTool.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RectangleTool.java
deleted file mode 100755
index d9d6329..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RectangleTool.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A drawing tool.
- */
-public class RectangleTool extends DragPaintSession implements PaintTool {
-	private ToolSettings settings;
-
-	/**
-	 * Constructs a RectangleTool.
-	 * 
-	 * @param toolSettings the new tool settings
-	 * @param paintSurface the PaintSurface we will render on.
-	 */
-	public RectangleTool(ToolSettings toolSettings, PaintSurface paintSurface) {
-		super(paintSurface);
-		set(toolSettings);
-	}
-	
-	/**
-	 * Sets the tool's settings.
-	 * 
-	 * @param toolSettings the new tool settings
-	 */
-	public void set(ToolSettings toolSettings) {
-		settings = toolSettings;
-	}
-	
-	/**
-	 * Returns name associated with this tool.
-	 * 
-	 * @return the localized name of this tool
-	 */
-	public String getDisplayName() {
-		return PaintPlugin.getResourceString("tool.Rectangle.label");
-	}
-
-	/*
-	 * Template method for drawing
-	 */
-	protected Figure createFigure(Point a, Point b) {
-		switch (settings.commonFillType) {
-			default:
-			case ToolSettings.ftNone:
-				return new RectangleFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
-					a.x, a.y, b.x, b.y);
-			case ToolSettings.ftSolid:
-				return new SolidRectangleFigure(settings.commonBackgroundColor, a.x, a.y, b.x, b.y);
-			case ToolSettings.ftOutline: {
-				ContainerFigure container = new ContainerFigure();
-				container.add(new SolidRectangleFigure(settings.commonBackgroundColor, a.x, a.y, b.x, b.y));
-				container.add(new RectangleFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
-					a.x, a.y, b.x, b.y));
-				return container;
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java
deleted file mode 100755
index 8b62e49..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Rectangle object
- */
-public class RoundedRectangleFigure extends Figure {
-	private Color foregroundColor, backgroundColor;
-	private int lineStyle, x1, y1, x2, y2, diameter;
-	/**
-	 * Constructs a Rectangle
-	 * These objects are defined by any two diametrically opposing corners.
-	 * 
-	 * @param color the color for this object
-	 * @param lineStyle the line style for this object
-	 * @param x1 the virtual X coordinate of the first corner
-	 * @param y1 the virtual Y coordinate of the first corner
-	 * @param x2 the virtual X coordinate of the second corner
-	 * @param y2 the virtual Y coordinate of the second corner
-	 * @param diameter the diameter of curvature of all four corners
-	 */
-	public RoundedRectangleFigure(Color foregroundColor, Color backgroundColor, int lineStyle, int x1, int y1, int x2, int y2, int diameter) {
-		this.foregroundColor = foregroundColor;
-		this.backgroundColor = backgroundColor;
-		this.lineStyle = lineStyle;
-		this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
-		this.diameter = diameter;
-	}
-	public void draw(FigureDrawContext fdc) {
-		Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
-		fdc.gc.setForeground(foregroundColor);
-		fdc.gc.setBackground(backgroundColor);
-		fdc.gc.setLineStyle(lineStyle);
-		fdc.gc.drawRoundRectangle(r.x, r.y, r.width - 1, r.height - 1, diameter, diameter);
-		fdc.gc.setLineStyle(SWT.LINE_SOLID);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		region.add(fdc.toClientRectangle(x1, y1, x2, y2));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RoundedRectangleTool.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RoundedRectangleTool.java
deleted file mode 100755
index 052bbb6..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RoundedRectangleTool.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A drawing tool.
- */
-public class RoundedRectangleTool extends DragPaintSession implements PaintTool {
-	private ToolSettings settings;
-
-	/**
-	 * Constructs a RoundedRectangleTool.
-	 * 
-	 * @param toolSettings the new tool settings
-	 * @param paintSurface the PaintSurface we will render on.
-	 */
-	public RoundedRectangleTool(ToolSettings toolSettings, PaintSurface paintSurface) {
-		super(paintSurface);
-		set(toolSettings);
-	}
-	
-	/**
-	 * Sets the tool's settings.
-	 * 
-	 * @param toolSettings the new tool settings
-	 */
-	public void set(ToolSettings toolSettings) {
-		settings = toolSettings;
-	}
-	
-	/**
-	 * Returns name associated with this tool.
-	 * 
-	 * @return the localized name of this tool
-	 */
-	public String getDisplayName() {
-		return PaintPlugin.getResourceString("tool.RoundedRectangle.label");
-	}
-
-	/*
-	 * Template methods for drawing
-	 */
-	protected Figure createFigure(Point a, Point b) {
-		ContainerFigure container = new ContainerFigure();
-		if (settings.commonFillType != ToolSettings.ftNone)
-			container.add(new SolidRoundedRectangleFigure(settings.commonBackgroundColor,
-				a.x, a.y, b.x, b.y, settings.roundedRectangleCornerDiameter));
-		if (settings.commonFillType != ToolSettings.ftSolid)
-			container.add(new RoundedRectangleFigure(settings.commonForegroundColor, settings.commonBackgroundColor,
-				settings.commonLineStyle, a.x, a.y, b.x, b.y, settings.roundedRectangleCornerDiameter));
-		return container;
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SegmentedPaintSession.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SegmentedPaintSession.java
deleted file mode 100755
index 342edb1..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SegmentedPaintSession.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-
-import java.util.*;
-
-/**
- * The superclass for paint tools that contruct objects from individually
- * picked segments.
- */
-public abstract class SegmentedPaintSession extends BasicPaintSession {
-	/**
-	 * The set of control points making up the segmented selection
-	 */
-	private Vector /* of Point */ controlPoints = new Vector();
-
-	/**
-	 * The previous figure (so that we can abort with right-button)
-	 */
-	private Figure previousFigure = null;
-
-	/**
-	 * The current figure (so that we can abort with right-button)
-	 */
-	private Figure currentFigure = null;
-
-	/**
-	 * Constructs a PaintSession.
-	 * 
-	 * @param paintSurface the drawing surface to use
-	 */
-	protected SegmentedPaintSession(PaintSurface paintSurface) {
-		super(paintSurface);
-	}
-
-	/**
-	 * Activates the tool.
-	 */
-	public void beginSession() {
-		getPaintSurface().setStatusMessage(PaintPlugin.getResourceString(
-			"session.SegmentedInteractivePaint.message.anchorMode"));
-		previousFigure = null;
-		currentFigure = null;
-		controlPoints.clear();
-	}
-	
-	/**
-	 * Deactivates the tool.
-     */
-	public void endSession() {
-		getPaintSurface().clearRubberbandSelection();
-		if (previousFigure != null) getPaintSurface().drawFigure(previousFigure);
-	}
-	
-	/**
-	 * Resets the tool.
-	 * Aborts any operation in progress.
-	 */
-	public void resetSession() {
-		getPaintSurface().clearRubberbandSelection();
-		if (previousFigure != null) getPaintSurface().drawFigure(previousFigure);
-		
-		getPaintSurface().setStatusMessage(PaintPlugin.getResourceString(
-			"session.SegmentedInteractivePaint.message.anchorMode"));
-		previousFigure = null;
-		currentFigure = null;
-		controlPoints.clear();
-	}
-
-	/**
-	 * Handles a mouseDown event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseDown(MouseEvent event) {
-		if (event.button != 1) return;
-
-		getPaintSurface().setStatusMessage(PaintPlugin.getResourceString(
-			"session.SegmentedInteractivePaint.message.interactiveMode"));
-		previousFigure = currentFigure;
-
-		if (controlPoints.size() > 0) {
-			final Point lastPoint = (Point) controlPoints.elementAt(controlPoints.size() - 1);
-			if (lastPoint.x == event.x || lastPoint.y == event.y) return; // spurious event
-		}
-		controlPoints.add(new Point(event.x, event.y));
-	}
-
-	/**
-	 * Handles a mouseDoubleClick event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseDoubleClick(MouseEvent event) {
-		if (event.button != 1) return;
-		if (controlPoints.size() >= 2) {
-			getPaintSurface().clearRubberbandSelection();
-			previousFigure = createFigure(
-				(Point[]) controlPoints.toArray(new Point[controlPoints.size()]),
-				controlPoints.size(), true);
-		}
-		resetSession();
-	}
-
-	/**
-	 * Handles a mouseUp event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseUp(MouseEvent event) {
-		if (event.button != 1) {
-			resetSession(); // abort if right or middle mouse button pressed
-			return;
-		}
-	}
-	
-	/**
-	 * Handles a mouseMove event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseMove(MouseEvent event) {
-		final PaintSurface ps = getPaintSurface();
-		if (controlPoints.size() == 0) {
-			ps.setStatusCoord(ps.getCurrentPosition());
-			return; // spurious event
-		} else {
-			ps.setStatusCoordRange((Point) controlPoints.elementAt(controlPoints.size() - 1),
-				ps.getCurrentPosition());
-		}
-
-		ps.clearRubberbandSelection();
-		Point[] points = (Point[]) controlPoints.toArray(new Point[controlPoints.size() + 1]);
-		points[controlPoints.size()] = ps.getCurrentPosition();
-		currentFigure = createFigure(points, points.length, false);
-		ps.addRubberbandSelection(currentFigure);
-	}	
-
-	/**
-	 * Template Method: Creates a Figure for drawing rubberband entities and the final product
-	 * 
-	 * @param points the array of control points
-	 * @param numPoints the number of valid points in the array (n >= 2)
-	 * @param closed true if the user double-clicked on the final control point
-	 */
-	protected abstract Figure createFigure(Point[] points, int numPoints, boolean closed);
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidEllipseFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidEllipseFigure.java
deleted file mode 100755
index e23263d..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidEllipseFigure.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Solid Ellipse object
- */
-public class SolidEllipseFigure extends Figure {
-	private Color color;
-	private int x1, y1, x2, y2;
-	/**
-	 * Constructs a SolidEllipse
-	 * These objects are defined by any two diametrically opposing corners of a box
-	 * bounding the ellipse.
-	 * 
-	 * @param color the color for this object
-	 * @param x1 the virtual X coordinate of the first corner
-	 * @param y1 the virtual Y coordinate of the first corner
-	 * @param x2 the virtual X coordinate of the second corner
-	 * @param y2 the virtual Y coordinate of the second corner
-	 */
-	public SolidEllipseFigure(Color color, int x1, int y1, int x2, int y2) {
-		this.color = color; this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
-	}
-	public void draw(FigureDrawContext fdc) {
-		Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
-		fdc.gc.setBackground(color);
-		fdc.gc.fillOval(r.x, r.y, r.width, r.height);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		region.add(fdc.toClientRectangle(x1, y1, x2, y2));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidPolygonFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidPolygonFigure.java
deleted file mode 100755
index a5aca3d..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidPolygonFigure.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Line object
- */
-public class SolidPolygonFigure extends Figure {
-	private Color color;
-	private int[] points;
-	/**
-	 * Constructs a SolidPolygon
-	 * These objects are defined by a sequence of vertices.
-	 * 
-	 * @param color the color for this object
-	 * @param vertices the array of vertices making up the polygon
-	 * @param numPoint the number of valid points in the array (n >= 3)
-	 */
-	public SolidPolygonFigure(Color color, Point[] vertices, int numPoints) {
-		this.color = color;
-		this.points = new int[numPoints * 2];
-		for (int i = 0; i < numPoints; ++i) {
-			points[i * 2] = vertices[i].x;
-			points[i * 2 + 1] = vertices[i].y;
-		}
-	}
-	public void draw(FigureDrawContext fdc) {
-		int[] drawPoints = new int[points.length];
-		for (int i = 0; i < points.length; i += 2) {
-			drawPoints[i] = points[i] * fdc.xScale - fdc.xOffset;
-			drawPoints[i + 1] = points[i + 1] * fdc.yScale - fdc.yOffset;
-		}
-		fdc.gc.setBackground(color);
-		fdc.gc.fillPolygon(drawPoints);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		int xmin = Integer.MAX_VALUE, ymin = Integer.MAX_VALUE;
-		int xmax = Integer.MIN_VALUE, ymax = Integer.MIN_VALUE;
-
-		for (int i = 0; i < points.length; i += 2) {
-			if (points[i] < xmin) xmin = points[i];
-			if (points[i] > xmax) xmax = points[i];
-			if (points[i+1] < ymin) ymin = points[i+1];
-			if (points[i+1] > ymax) ymax = points[i+1];
-		}		
-		region.add(fdc.toClientRectangle(xmin, ymin, xmax, ymax));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidRectangleFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidRectangleFigure.java
deleted file mode 100755
index 608a58c..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidRectangleFigure.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D SolidRectangle object
- */
-public class SolidRectangleFigure extends Figure {
-	private Color color;
-	private int x1, y1, x2, y2;
-	/**
-	 * Constructs a SolidRectangle
-	 * These objects are defined by any two diametrically opposing corners.
-	 * 
-	 * @param color the color for this object
-	 * @param x1 the virtual X coordinate of the first corner
-	 * @param y1 the virtual Y coordinate of the first corner
-	 * @param x2 the virtual X coordinate of the second corner
-	 * @param y2 the virtual Y coordinate of the second corner
-	 */
-	public SolidRectangleFigure(Color color, int x1, int y1, int x2, int y2) {
-		this.color = color; this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
-	}
-	public void draw(FigureDrawContext fdc) {
-		Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
-		fdc.gc.setBackground(color);
-		fdc.gc.fillRectangle(r.x, r.y, r.width, r.height);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		region.add(fdc.toClientRectangle(x1, y1, x2, y2));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java
deleted file mode 100755
index 7b4146a..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D SolidRectangle object
- */
-public class SolidRoundedRectangleFigure extends Figure {
-	private Color color;
-	private int x1, y1, x2, y2, diameter;
-	/**
-	 * Constructs a SolidRectangle
-	 * These objects are defined by any two diametrically opposing corners.
-	 * 
-	 * @param color the color for this object
-	 * @param x1 the virtual X coordinate of the first corner
-	 * @param y1 the virtual Y coordinate of the first corner
-	 * @param x2 the virtual X coordinate of the second corner
-	 * @param y2 the virtual Y coordinate of the second corner
-	 * @param diameter the diameter of curvature of all four corners
-	 */
-	public SolidRoundedRectangleFigure(Color color, int x1, int y1, int x2, int y2, int diameter) {
-		this.color = color; this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
-		this.diameter = diameter;
-	}
-	public void draw(FigureDrawContext fdc) {
-		Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
-		fdc.gc.setBackground(color);
-		fdc.gc.fillRoundRectangle(r.x, r.y, r.width, r.height, diameter, diameter);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		region.add(fdc.toClientRectangle(x1, y1, x2, y2));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/TextFigure.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/TextFigure.java
deleted file mode 100755
index cdb8929..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/TextFigure.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Rectangle object
- */
-public class TextFigure extends Figure {
-	private Color  color;
-	private Font   font;
-	private String text;
-	private int x, y;
-	/**
-	 * Constructs a TextFigure
-	 * 
-	 * @param color the color for this object
-	 * @param font  the font for this object
-	 * @param text  the text to draw, tab and new-line expansion is performed
-	 * @param x     the virtual X coordinate of the top-left corner of the text bounding box
-	 * @param y     the virtual Y coordinate of the top-left corner of the text bounding box
-	 */
-	public TextFigure(Color color, Font font, String text, int x, int y) {
-		this.color = color; this.font = font; this.text = text; this.x = x; this.y = y;
-	}
-	public void draw(FigureDrawContext fdc) {
-		Point p = fdc.toClientPoint(x, y);
-		fdc.gc.setFont(font);
-		fdc.gc.setForeground(color);
-		fdc.gc.drawText(text, p.x, p.y, true);
-	}
-	public void addDamagedRegion(FigureDrawContext fdc, Region region) {
-		Font oldFont = fdc.gc.getFont();
-		fdc.gc.setFont(font);
-		Point textExtent = fdc.gc.textExtent(text);
-		fdc.gc.setFont(oldFont);
-		region.add(fdc.toClientRectangle(x, y, x + textExtent.x, y + textExtent.y));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/TextTool.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/TextTool.java
deleted file mode 100755
index b580796..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/TextTool.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.swt.events.*;
-
-/**
- * A text drawing tool.
- */
-public class TextTool extends BasicPaintSession implements PaintTool {
-	private ToolSettings settings;
-	private String drawText = PaintPlugin.getResourceString("tool.Text.settings.defaulttext");
-
-	/**
-	 * Constructs a PaintTool.
-	 * 
-	 * @param toolSettings the new tool settings
-	 * @param paintSurface the PaintSurface we will render on.
-	 */
-	public TextTool(ToolSettings toolSettings, PaintSurface paintSurface) {
-		super(paintSurface);
-		set(toolSettings);
-	}
-	
-	/**
-	 * Sets the tool's settings.
-	 * 
-	 * @param toolSettings the new tool settings
-	 */
-	public void set(ToolSettings toolSettings) {
-		settings = toolSettings;
-	}
-	
-	/**
-	 * Returns name associated with this tool.
-	 * 
-	 * @return the localized name of this tool
-	 */
-	public String getDisplayName() {
-		return PaintPlugin.getResourceString("tool.Text.label");
-	}
-	
-	/**
-	 * Activates the tool.
-	 */
-	public void beginSession() {
-		getPaintSurface().setStatusMessage(PaintPlugin.getResourceString(
-			"session.Text.message"));
-	}
-	
-	/**
-	 * Deactivates the tool.
-     */
-	public void endSession() {
-		getPaintSurface().clearRubberbandSelection();
-	}
-	
-	/**
-	 * Aborts the current operation.
-	 */
-	public void resetSession() {
-		getPaintSurface().clearRubberbandSelection();
-	}
-	
-	/**
-	 * Handles a mouseDown event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseDown(MouseEvent event) {
-		if (event.button == 1) {
-			// draw with left mouse button
-			getPaintSurface().commitRubberbandSelection();
-		} else {
-			// set text with right mouse button
-			getPaintSurface().clearRubberbandSelection();
-			InputDialog inputDialog = new InputDialog(getPaintSurface().getShell(),
-				PaintPlugin.getResourceString("tool.Text.dialog.title"),
-				PaintPlugin.getResourceString("tool.Text.dialog.message"),
-				drawText, null);
-			inputDialog.setBlockOnOpen(true);
-			inputDialog.open();
-			if (inputDialog.getReturnCode() == InputDialog.OK) drawText = inputDialog.getValue();
-			inputDialog.close();
-		}	
-	}
-
-	/**
-	 * Handles a mouseDoubleClick event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseDoubleClick(MouseEvent event) {
-	}
-
-	/**
-	 * Handles a mouseUp event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseUp(MouseEvent event) {
-	}
-	
-	/**
-	 * Handles a mouseMove event.
-	 * 
-	 * @param event the mouse event detail information
-	 */
-	public void mouseMove(MouseEvent event) {
-		final PaintSurface ps = getPaintSurface();
-		ps.setStatusCoord(ps.getCurrentPosition());
-		ps.clearRubberbandSelection();
-		ps.addRubberbandSelection(
-			new TextFigure(settings.commonForegroundColor, settings.commonFont,
-				drawText, event.x, event.y));
-	}
-}
diff --git a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ToolSettings.java b/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ToolSettings.java
deleted file mode 100755
index 02fb877..0000000
--- a/examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ToolSettings.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * Tool Settings objects group tool-related configuration information.
- */
-public class ToolSettings {
-	public static final int ftNone = 0, ftOutline = 1, ftSolid = 2;
-
-	/**
-	 * commonForegroundColor: current tool foreground colour
-	 */
-	public Color commonForegroundColor;
-
-	/**
-	 * commonBackgroundColor: current tool background colour
-	 */
-	public Color commonBackgroundColor;
-
-	/**
-	 * commonFont: current font
-	 */
-	public Font commonFont;
-
-	/**
-	 * commonFillType: current fill type
-	 * <p>One of ftNone, ftOutline, ftSolid.</p>
-	 */
-	public int commonFillType = ftNone;
-
-	/**
-	 * commonLineStyle: current line type
-	 */
-	public int commonLineStyle = SWT.LINE_SOLID;
-	
-	/**
-	 * airbrushRadius: coverage radius in pixels
-	 */
-	public int airbrushRadius = 10;
-	
-	/**
-	 * airbrushIntensity: average surface area coverage in region defined by radius per "jot"
-	 */
-	public int airbrushIntensity = 30;
-	
-	/**
-	 * roundedRectangleCornerDiameter: the diameter of curvature of corners in a rounded rectangle
-	 */
-	public int roundedRectangleCornerDiameter = 16;
-}
diff --git a/examples/org.eclipse.swt.examples/.classpath b/examples/org.eclipse.swt.examples/.classpath
deleted file mode 100755
index 07ce282..0000000
--- a/examples/org.eclipse.swt.examples/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JRE_LIB"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.swt.examples/.cvsignore b/examples/org.eclipse.swt.examples/.cvsignore
deleted file mode 100755
index c5e82d7..0000000
--- a/examples/org.eclipse.swt.examples/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/.project b/examples/org.eclipse.swt.examples/.project
deleted file mode 100644
index 069b3a1..0000000
--- a/examples/org.eclipse.swt.examples/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.swt.examples</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.swt</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.swt.examples/about.html b/examples/org.eclipse.swt.examples/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/examples/org.eclipse.swt.examples/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/build.properties b/examples/org.eclipse.swt.examples/build.properties
deleted file mode 100755
index fb675c8..0000000
--- a/examples/org.eclipse.swt.examples/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = doc-html/,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               swtexamples.jar
-
-src.includes = about.html
-               
-source.swtexamples.jar = src/
diff --git a/examples/org.eclipse.swt.examples/doc-html/hglegal.htm b/examples/org.eclipse.swt.examples/doc-html/hglegal.htm
deleted file mode 100755
index f5871b7..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="../../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples/doc-html/ngibmcpy.gif b/examples/org.eclipse.swt.examples/doc-html/ngibmcpy.gif
deleted file mode 100755
index c786e43..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/doc-html/swt_addressbook_ex.html b/examples/org.eclipse.swt.examples/doc-html/swt_addressbook_ex.html
deleted file mode 100755
index a416a8f..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/swt_addressbook_ex.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Address Book Example</title>
-</head>
-<body>
-
-<h2>SWT standalone example - Address Book</h2>
-
-<p>
-The AddressBook example shows how a Table control can be used to
-present information in a tabular format. The application can save and load data 
-from a file, sort the entries, and search for strings within the fields.
-</p>
-
-<h3>Running the example</h3>
-<p>
-Follow the <a href="swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.addressbook.AddressBook</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>Address Book</strong> item from the <strong>Standalone</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples/doc-html/swt_clipboard_ex.html b/examples/org.eclipse.swt.examples/doc-html/swt_clipboard_ex.html
deleted file mode 100644
index fa976db..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/swt_clipboard_ex.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Clipboard Example</title>
-</head>
-<body>
-
-<h2>SWT standalone example - Clipboard</h2>
-
-<p>
-The Clipboard example shows the various SWT clipboard transfer types in use.  The example can
-cut, copy and paste using Text, RTF, Binary and File transfer types.
-</p>
-
-<h3>Running the example</h3>
-<p>
-Follow the <a href="swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.clipboard.ClipboardExample</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>Clipboard</strong> item from the <strong>Standalone</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples/doc-html/swt_fileviewer_ex.html b/examples/org.eclipse.swt.examples/doc-html/swt_fileviewer_ex.html
deleted file mode 100755
index 03ca6d6..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/swt_fileviewer_ex.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - File Viewer Example</title>
-</head>
-<body>
-
-<h2>SWT standalone example - File Viewer</h2>
-
-<p>
-The File Viewer example shows how a simple application can be implemented using SWT.
-This application provides the ability to navigate files and folders on the local file system and manipulate them using drag and drop.
-It uses alternate threads for long actions and demonstrates the use of the Tree,
-Table, and Toolbar widgets and the Program class.
-</p>
-
-<h3>Running the example</h3>
-<p>
-Follow the <a href="swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.fileviewer.FileViewer</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>File Viewer</strong> item from the <strong>Standalone</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples/doc-html/swt_helloworld_ex.html b/examples/org.eclipse.swt.examples/doc-html/swt_helloworld_ex.html
deleted file mode 100755
index b80bfac..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/swt_helloworld_ex.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Hello World Examples</title>
-</head>
-<body>
-
-<h2>SWT standalone example - Hello World</h2>
-
-<p>
-The Hello World examples are a set of introductory examples that show how to get started 
-on creating an application with SWT.  They cover the creation of a shell, the use of event listeners, 
-using layouts, processing events in an event loop, and drawing with a Graphics Context.
-</p>
-
-<h4>Hello World 1</h4>
-<p>
-This example demonstrates how to open a Shell and process the events.
-</p>
-
-<h4>Hello World 2</h4>
-<p>
-This example builds on HelloWorld1 and demonstrates how to display a Label inside of the Shell.
-</p>
-
-<h4>Hello World 3</h4>
-<p>
-This example builds on HelloWorld2 and demonstrates how to use a listener mechanism to resize the Label
-when the Shell size changes.
-</p>
-
-<h4>Hello World 4</h4>
-<p>
-This example builds on HelloWorld2 and demonstrates how to use a Layout to resize the Label
-when the Shell size changes.
-</p>
-
-<h4>Hello World 5</h4>
-<p>
-This example builds on HelloWorld1 and demonstrates how to draw directly
-on an SWT Control using a Graphics Context.
-</p>
-
-<h3>Running the example</h3>
-
-<p>
-Follow the <a href="swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.helloworld.HelloWorld[1-5]</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select one of the <strong>Hello World</strong> items from the <strong>Standalone</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples/doc-html/swt_hoverhelp_ex.html b/examples/org.eclipse.swt.examples/doc-html/swt_hoverhelp_ex.html
deleted file mode 100755
index dcfddba..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/swt_hoverhelp_ex.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Hover Help Example</title>
-</head>
-<body>
-
-<h2>SWT standalone example - Hover Help</h2>
-
-<p>
-The Hover Help example shows how to implement custom tooltips and hover help support
-on various SWT controls including Buttons, TableItems, ToolItems and TreeItems.
-To see the custom tooltips in action, hover over an item or button in the UI, and
-notice that images appear in the left-hand corner of the tooltip.
-To see the custom hover help in action, hover over an item or button in the UI until
-the tooltip is displayed.  Then, without moving the mouse, press <strong>F1</strong> and a new
-Shell will be shown with the extended hover help information for the UI element.
-</p>	
-
-<h3>Running the example</h3>
-<p>
-Follow the <a href="swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.hoverhelp.HoverHelp</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>Hover Help</strong> item from the <strong>Standalone</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples/doc-html/swt_imageanalyzer_ex.html b/examples/org.eclipse.swt.examples/doc-html/swt_imageanalyzer_ex.html
deleted file mode 100755
index 7caaced..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/swt_imageanalyzer_ex.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Image Analyzer Example</title>
-</head>
-<body>
-
-<h2>SWT standalone example - Image Analyzer</h2>
-
-<p>
-The ImageAnalyzer example opens image files and displays their visual contents and
-an image data summary.
-The user can make adjustments to various elements of the image such as scaling and Alpha
-blending, and can save these changes to a file.
-</p>
-<p>
-The ImageAnalyzer can load and display image files of type GIF, JPEG, BMP, ICO, and PNG.
-If a loaded file is an interlaced GIF or PNG, or a progressive JPEG, and <strong>Incremental Display</strong> is selected,
-then the ImageAnalyzer will display the image increments as they are loaded.
-If the file contains an animated GIF, then the <strong>Next</strong>, <strong>Previous</strong>, and <strong>Animate</strong> buttons become enabled,
-and can be used to cycle through and animate the images in the file. If a GIF defines a background color,
-as many animated GIFs do, then selecting <strong>Background</strong> will use the GIF's background color.
-If the image has transparency, which is possible with images of type GIF, PNG, and ICO, then selecting <strong>Display Mask</strong> will draw the image's transparency
-mask to the right of the image. You can change the background color of the ImageAnalyzer in order to see the transparency work.
-To turn off transparency, deselect <strong>Display Transparency</strong>.
-After an image is loaded, it can be scaled with the <strong>Scale</strong> combo, or have alpha transparency applied to it using the <strong>Alpha-K</strong> combo
-and <strong>Alpha</strong> menu. <strong>File</strong> &gt; <strong>Reopen</strong> restores the scaling and alpha attributes to their default values and reloads the current image file.
-If the image has transparency,
-<strong>File</strong> &gt; <strong>Save Mask As...</strong> can be used to save the image's transparency mask.
-</p>
-<p>
-When SWT loads an image file, an instance of <code>org.eclipse.swt.graphics.ImageData</code> is created (though in the case of an ICO file or
-multi-image GIF an array of <code>ImageData</code> instances is created). The ImageAnalyzer displays all of the data stored in the <code>ImageData</code>
-instance(s) for the currently loaded image file, including the pixel data. Hovering over a pixel in the image display will show the RGB
-color data for that pixel. For certain images, particularly animated GIFs, additional data is stored in the <code>org.eclipse.swt.graphics.ImageLoader</code>
-instance that is used to load the image. The ImageAnalyzer displays this data as well.
-</p>
-
-<h3>Running the example</h3>
-
-<p>
-Follow the <a href="swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.imageanalyzer.ImageAnalyzer</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>Image Analyzer</strong> item from the <strong>Standalone</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples/doc-html/swt_javaviewer_ex.html b/examples/org.eclipse.swt.examples/doc-html/swt_javaviewer_ex.html
deleted file mode 100755
index 7563f86..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/swt_javaviewer_ex.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Java Syntax Viewer Example</title>
-</head>
-<body>
-
-<h2>SWT standalone example - Java Syntax Viewer</h2>
-
-<p>
-This example shows how to implement a user-defined line styler for the StyledText widget.
-The example provides a typical editor interface.
-To see the effect of the line styler, open a *.java file, and
-when the contents of the file are displayed in the editor area, notice that the keywords have been highlighted.
-</p>
-
-<h3>Running the example</h3>
-<p>
-Follow the <a href="swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.javaviewer.JavaViewer</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>Java Syntax Viewer</strong> item from the <strong>Standalone</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples/doc-html/swt_manual_setup.html b/examples/org.eclipse.swt.examples/doc-html/swt_manual_setup.html
deleted file mode 100755
index 44b5ca2..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/swt_manual_setup.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT Standalone Examples Setup</title>
-</head>
-<body>
-
-<h2>SWT standalone examples setup</h2>
-
-<h3>Importing example source</h3>
-
-<p>
-*** In the following description, substitute the location in which you installed Eclipse for INSTALLDIR ***
-</p>
-
-<p>Import the example code and all its required resources into your workspace:</p>
-
-<ol>
-<li>Create a Java Project called "SWT Examples".
-<li>Select the project "SWT Examples" in the Packages view.
-<li>Select the <strong>File</strong> &gt; <strong>Import</strong> menu, then select <strong>Zip File</strong> from the subsequent dialog and click <strong>Next</strong>.
-<li>Locate the source zip file for the SWT examples.  For example:
-	<ul>
-    <li><em>win32: </em><code>INSTALLDIR\eclipse\plugins\org.eclipse.swt.examples_2.1.0\swtexamplessrc.zip</code>
-    <li><em>*ix: </em><code>INSTALLDIR/eclipse/plugins/org.eclipse.swt.examples_2.1.0/swtexamplessrc.zip</code>
-    </ul>
-<li>Click <strong>Finish</strong>.
-<li>Select the <strong>File</strong> &gt; <strong>Import</strong> menu, then select <strong>Zip File</strong> from the subsequent dialog and click <strong>Next</strong>.
-<li>Locate the jar file for the SWT examples.  For example:
-    <ul>
-    <li><em>win32: </em><code>INSTALLDIR\eclipse\plugins\org.eclipse.swt.examples_2.1.0\swtexamples.jar</code>
-    <li><em>*ix: </em><code>INSTALLDIR/eclipse/plugins/org.eclipse.swt.examples_2.1.0/swtexamples.jar</code>
-    </ul>
-<li>Expand the top level directory of the jar file (/), uncheck "META-INF", and click <strong>Finish</strong>.
-<li>In the resulting "<em>Overwrite?</em>" prompter click <strong>No To All</strong> so that only non-class resources will be imported.
-</ol>
-
-<p>Now you need to compile the SWT examples.  In order to do this, you must add the SWT jar(s) to 
-the compile path:</p>
-<ol>
-<li>Select the project "SWT Examples" in the Packages view, and from its context menu select <strong>Properties</strong>.
-<li>Select the <strong>Java Build Path</strong> page, and then select its <strong>Libraries</strong> tab.
-<li>Click on the <strong>Add External JARs...</strong> button.
-<li>Locate the swt jar for the platform on which you wish to run:<br>
-    <ul>
-    <li><em>win32: </em><code>INSTALLDIR\eclipse\plugins\org.eclipse.swt.win32_2.1.0\ws\win32\swt.jar</code>
-    <li><em>gtk: </em><code>INSTALLDIR/eclipse/plugins/org.eclipse.swt.gtk_2.1.0/ws/gtk/swt.jar</code>
-    <li><em>motif: </em><code>INSTALLDIR/eclipse/plugins/org.eclipse.swt.motif_2.1.0/ws/motif/swt.jar</code>
-    <li><em>photon: </em><code>INSTALLDIR/eclipse/plugins/org.eclipse.swt.photon_2.1.0/ws/photon/swt.jar</code>
-    <li><em>macosx: </em><code>INSTALLDIR/eclipse/plugins/org.eclipse.swt.carbon_2.1.0/ws/carbon/swt.jar</code>
-    </ul>
-<li>Click on OK.
-</ol>
-<p><strong>NOTE:</strong> For some platforms, such as GTK, more than one jar is required to run SWT (on
-GTK there is a swt.jar and a swt-pi.jar file).  In this case all of the required jars must 
-be added to the class path.  This is done by repeating the steps above for each jar file.
-All jar files are located in the same directory/folder.</p>
-
-<p>At this point your SWT examples should be compiled without any errors.  Check the Tasks 
-view for errors.  If you get an error like "<code>java.lang.Object</code> not found" it means 
-you have not configured a JRE.  Go to the <strong>Window</strong> &gt; <strong>Preferences</strong> dialog
-and select the <strong>Java</strong> &gt; <strong>Installed JREs</strong> preference page and ensure that a JRE is installed 
-and that the path to the JRE is correct.</p>
-
-<h3><a NAME="Run"></a>Running the Example</h3>
-
-<p>Now you have to configure Eclipse to run the example.  This requires putting the SWT
-JNI libraries on the library path so that the VM can find them:
-
-<ol>
-<li>Open the Java perspective.
-<li>In the Packages view, select the main class that you want to run.  
-    For example, the main class for the Address Book example is 
-    &nbsp;&nbsp;&nbsp;&nbsp;<code>org.eclipse.swt.examples.addressbook.AddressBook</code>.
-<li>Select <strong>Run</strong> &gt; <strong>Run...</strong> from the main menu.  
-<li>In the Launch Configurations dialog that appears, select <strong>Java Application</strong> and click 
-    on the <strong>New</strong> button.
-<li>Fill in the <strong>Name</strong>, <strong>Project</strong> and <strong>Main</strong> class fields according to the example that you wish to run.
-<li>Select the <strong>Arguments</strong> tab.  In the <strong>VM Arguments</strong> area specify the location of the SWT 
-    library depending on your target platform as follows:
-    <ul>
-	<li><em>win32: </em><code>-Djava.library.path=INSTALLDIR\plugins\org.eclipse.swt.win32_2.1.0\os\win32\x86</code>
-	<li><em>linux gtk: </em><code>-Djava.library.path=INSTALLDIR/eclipse/plugins/org.eclipse.swt.gtk_2.1.0/os/linux/x86</code>
-	<li><em>linux motif: </em><code>-Djava.library.path=INSTALLDIR/eclipse/plugins/org.eclipse.swt.motif_2.1.0/os/linux/x86</code>
-	<li><em>solaris motif: </em><code>-Djava.library.path=INSTALLDIR/eclipse/plugins/org.eclipse.swt.motif_2.1.0/os/solaris/sparc</code>
-	<li><em>aix motif: </em><code>-Djava.library.path=INSTALLDIR/eclipse/plugins/org.eclipse.swt.motif_2.1.0/os/aix/ppc</code>
-	<li><em>hpux motif: </em><code>-Djava.library.path=INSTALLDIR/eclipse/plugins/org.eclipse.swt.motif_2.1.0/os/hpux/PA_RISC</code>
-	<li><em>photon qnx: </em><code>-Djava.library.path=INSTALLDIR/eclipse/plugins/org.eclipse.swt.photon_2.1.0/os/qnx/x86</code>
-	<li><em>macosx: </em><code>-Djava.library.path=INSTALLDIR/eclipse/plugins/org.eclipse.swt.carbon_2.1.0/os/macosx/ppc</code>
-	</ul>
-<li>Click on the <strong>Run</strong> button.
-</ol>
-
-
-<h3>Examples Overview</h3>
-<p>
-Consult the documentation of each individual example for the name of
-its main class and additional details.
-The following examples are included in the <code>swtexamples.jar</code>:
-</p>
-<ul>
-<li><a href="swt_addressbook_ex.html">Address Book</a>
-<li><a href="swt_clipboard_ex.html">Clipboard</a>
-<li><a href="../../org.eclipse.swt.examples.controls/doc-html/swt_controls_ex.html">Controls</a>
-<li><a href="../../org.eclipse.swt.examples.controls/doc-html/swt_customcontrols_ex.html">Custom Controls</a>
-<li><a href="swt_fileviewer_ex.html">File Viewer</a>
-<li><a href="swt_helloworld_ex.html">Hello World [1-5]</a>
-<li><a href="swt_hoverhelp_ex.html">Hover Help</a>
-<li><a href="swt_imageanalyzer_ex.html">Image Analyzer</a>
-<li><a href="swt_javaviewer_ex.html">Java Syntax Viewer</a>
-<li><a href="../../org.eclipse.swt.examples.layouts/doc-html/swt_layout_ex.html">Layouts</a>
-<li><a href="swt_texteditor_ex.html">Text Editor</a>
-</ul>
-
-<p><br><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples/doc-html/swt_texteditor_ex.html b/examples/org.eclipse.swt.examples/doc-html/swt_texteditor_ex.html
deleted file mode 100755
index 528fe6f..0000000
--- a/examples/org.eclipse.swt.examples/doc-html/swt_texteditor_ex.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>SWT - Text Editor Example</title>
-</head>
-<body>
-
-<h2>SWT standalone example - Text Editor</h2>
-
-<p>
-This example demonstrates how to use a StyledText widget to implement
-a text editor with formatting support.
-The example has a typical text editor interface.
-The <strong>Edit</strong> menu contains <strong>Cut</strong>, <strong>Copy</strong>, <strong>Paste</strong> and <strong>Set Font</strong> items.  The toolbar
-provides a bold text toggle, three colour tools, and a reset button, all of which operate on the current selection.
-</p>
-
-<h3>Running the example</h3>
-<p>
-Follow the <a href="swt_manual_setup.html">SWT standalone examples setup</a> 
-instructions to install and run the example from your workspace.
-</p>
-<p>
-The "Main" class is <code>org.eclipse.swt.examples.texteditor.TextEditor</code>.
-</p>
-<p>
-This example can also be run using the <a href="../../org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html">Example Launcher</a>.
-Select the <strong>Text Editor</strong> item from the <strong>Standalone</strong> category and click <strong>Run</strong>.
-</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003.  All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.swt.examples/plugin.properties b/examples/org.eclipse.swt.examples/plugin.properties
deleted file mode 100755
index 1517738..0000000
--- a/examples/org.eclipse.swt.examples/plugin.properties
+++ /dev/null
@@ -1,127 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName = Eclipse.org
-plugin.SWTStandaloneExampleSet.name = SWT Standalone Examples Plugin
-
-launchcategory.SWTStandaloneExamples.name = Standalone
-launchcategory.SWTStandaloneExamples.description = \
-	A collection of Standard Widget Toolkit examples that run independant \
-	of the Eclipse Platform.
-
-launchitem.AddressBook.name = Address Book
-launchitem.AddressBook.description = \
-	The AddressBook example shows how the Table control can be used to \
-	present information in a tabular format.\n\n\
-	The application can save and load data from a file, sort the entries, and \
-	search for strings within the fields.
-
-launchitem.Clipboard.name = Clipboard
-launchitem.Clipboard.description = \
-	The Clipboard example shows the various SWT clipboard transfer types in use.
-
-launchitem.ControlExample.name = SWT Controls Example
-launchitem.ControlExample.description = \
-	The Controls example is a simple demonstration of common SWT controls. \n\n\
-	It consists of a tab folder where each tab in the folder allows the user \
-	to interact with a different control. \
-	The user can change styles and settings and view how this affects the control.
-
-launchitem.FileViewer.name = File Viewer
-launchitem.FileViewer.description = \
-	The File Viewer example shows how a simple application can be implemented using SWT.\n\n\
-	This application provides the ability to navigate files and folders and manipulate them via Drag and Drop.  \
-	It includes the use of alternate threads for long actions and demonstrates the use of the Tree, \
-	Table, Toolbar and Program.
-
-launchitem.HoverHelp.name = Hover Help
-launchitem.HoverHelp.description = \
-	The Hover Help example shows how to implement custom tooltips and hover help support \
-	on a number of different SWT controls including Buttons, TableItems, ToolItems and TreeItems.\n\n\
-	The example implements its own tooltip and hover help support.  \
-	To see the custom tooltips in action, hover over an item or button in the UI.  \
-	An image appears in the left-hand corner of the tooltip.\n\n\
-	To see the custom hover help in action, hover over an item or button in the UI until \
-	the tooltip is displayed.  Without moving the mouse, hit F1.  A new Shell will pop up with the \
-	extended hover help information for the UI element in question
-
-launchitem.HelloWorld1.name = Hello World (1)
-launchitem.HelloWorld1.description = \
-	This example demonstrates how to open a Shell and process the events.
-
-launchitem.HelloWorld2.name = Hello World (2)
-launchitem.HelloWorld2.description = \
-	This example builds on HelloWorld1 and demonstrates how to display a Label inside the Shell.
-
-launchitem.HelloWorld3.name = Hello World (3)
-launchitem.HelloWorld3.description = \
-	This example builds on HelloWorld2 and demonstrates how to resize the Label \
-	when the Shell resizes using a Listener mechanism.
-
-launchitem.HelloWorld4.name = Hello World (4)
-launchitem.HelloWorld4.description = \
-	This example builds on HelloWorld2 and demonstrates how to resize the Label \
-	when the Shell resizes using a Layout.
-
-launchitem.HelloWorld5.name = Hello World (5)
-launchitem.HelloWorld5.description = \
-	This example builds on HelloWorld1 and demonstrates how to draw directly on an SWT Control using a graphic context.
-
-launchitem.ImageAnalyzer.name = Image Analyzer
-launchitem.ImageAnalyzer.description = \
-	The ImageAnalyzer opens image files and displays the visual contents of the file along with a \
-	summary of the data in the image file.\n\n\
-	The user can make adjustments to various elements of the image such as scaling and Alpha \
-	blending and can save these changes to a file.\n\n\
-	The ImageAnalyzer will load and display image files of type GIF, JPEG, BMP, ICO, and PNG.  \
-	To open a file, use the File->Open... menu item, and select the image file in the FileDialog.\n\n\
-	If the file is an interlaced GIF or PNG or a progressive JPEG, and Incremental Display is selected, \
-	then the ImageAnalyzer displays the image increments as they are being loaded.\n\n\
-	If the file contains an animated GIF, then the Next, Previous, and Animate buttons become enabled, \
-	and they can be used to cycle through the images in the file, or animate them. If a GIF defines a background color, \
-	as many animated GIFs do, selecting Background will use the GIF's background color.\n\n\
-	If the image has transparency (possible with GIF, PNG, or ICO), then selecting Display Mask will draw the image's transparency \
-	mask to the right of the image. You can change the background color of the ImageAnalyzer to see the transparency work. \
-	To turn off the transparency, deselect Display Transparency.\n\n\
-	After an image is loaded, it can be scaled or have alpha transparency applied, using the Scale and Alpha-K combos, \
-	and the Alpha menu. File->Reopen restores scaling and Alpha to their default values and reloads the current image file.\n\n\
-	File->Save As... can be used to save the currently loaded image to another type of image file. If the image has transparency, \
-	File->Save Mask As... saves the image's transparency mask.\n\n\
-	When SWT loads an image file, an instance of org.eclipse.swt.graphics.ImageData is created. (In the case of an ICO file or \
-	multi-image GIF, an array of ImageData instances is created). The ImageAnalyzer displays all of the data stored in the ImageData \
-	instance(s) for the currently loaded image file, including the pixel data. Hovering over a pixel in the image display will show the RGB \
-	color data for that pixel. For certain images (particularly animated GIFs) additional data is stored in the org.eclipse.swt.graphics.ImageLoader \
-	instance used to load the image. The ImageAnalyzer displays this data as well.
-
-launchitem.JavaViewer.name = Java Syntax Viewer
-launchitem.JavaViewer.description = \
-	This example demonstrates how to implement a user-defined line styler for the StyledText widget.\n\n\
-	The example provides a typical editor interface.  \
-	To see the effect of the line styler, open a *.java file.  \
-	When the contents of the file are displayed in the editor area, notice that the keywords have been highlighted.
-
-launchitem.LayoutExample.name = Layout Example
-launchitem.LayoutExample.description = \
-	This example is a simple demonstration of common SWT layouts. \n\n\
-	It consists of a tab folder where each tab in the folder allows the \
-	user to interact with a different SWT layout. \
-	The user can insert widgets into a layout and set the values of the layout data \
-	using a property sheet.  When the user has a suitable arrangement, code can be \
-	generated by clicking on the Code button.
-
-launchitem.TextEditor.name = Text Editor
-launchitem.TextEditor.description = \
-	This example demonstrates how to use the StyledText widget to implement \
-	a text editor with formatting support.\n\n\
-	The example has a typical text editor interface.  \
-	The Edit menu contains Cut, Copy, Paste and Set Font items and the toolbar \
-	provides a bold text toggle, three colour tools that operate on the current \
-	selection, and a reset to defaults button that also operates on the current selection.
-	
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/plugin.xml b/examples/org.eclipse.swt.examples/plugin.xml
deleted file mode 100755
index 61e4698..0000000
--- a/examples/org.eclipse.swt.examples/plugin.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- File written by PDE 1.0 -->
-<plugin
-   id="org.eclipse.swt.examples"
-   name="%plugin.SWTStandaloneExampleSet.name"
-   version="2.1.0"
-   provider-name="%providerName"
-   class="">
-<!-- Required plugins -->
-<requires>
-   <import plugin="org.eclipse.swt"/>
-</requires>
-
-<!-- Runtime -->
-<runtime>
-   <library name="swtexamples.jar">
-      <export name="*"/>
-      <packages prefixes="org.eclipse.swt.examples"/>
-   </library>
-</runtime>
-
-<!-- Extensions -->
-<!-- Extension points -->
-<extension
-      point="org.eclipse.swt.examples.launcher.launchItems">
-   <category
-         name="%launchcategory.SWTStandaloneExamples.name"
-         description="%launchcategory.SWTStandaloneExamples.description"
-         id="org.eclipse.swt.examples.launchStandaloneCategory">
-   </category>
-   <item
-         name="%launchitem.AddressBook.name"
-         description="%launchitem.AddressBook.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.addressbook.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.addressbook.AddressBook">
-      </program>
-   </item>
-   <item
-         name="%launchitem.Clipboard.name"
-         description="%launchitem.Clipboard.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.clipboard.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.clipboard.ClipboardExample">
-      </program>
-   </item>
-   <item
-         name="%launchitem.FileViewer.name"
-         description="%launchitem.FileViewer.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.fileviewer.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.fileviewer.FileViewer">
-      </program>
-   </item>
-   <item
-         name="%launchitem.HoverHelp.name"
-         description="%launchitem.HoverHelp.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.hoverhelp.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.hoverhelp.HoverHelp">
-      </program>
-   </item>
-   <item
-         name="%launchitem.HelloWorld1.name"
-         description="%launchitem.HelloWorld1.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.helloworld1.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.helloworld.HelloWorld1">
-      </program>
-   </item>
-   <item
-         name="%launchitem.HelloWorld2.name"
-         description="%launchitem.HelloWorld2.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.helloworld2.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.helloworld.HelloWorld2">
-      </program>
-   </item>
-   <item
-         name="%launchitem.HelloWorld3.name"
-         description="%launchitem.HelloWorld3.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.helloworld3.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.helloworld.HelloWorld3">
-      </program>
-   </item>
-   <item
-         name="%launchitem.HelloWorld4.name"
-         description="%launchitem.HelloWorld4.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.helloworld4.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.helloworld.HelloWorld4">
-      </program>
-   </item>
-   <item
-         name="%launchitem.HelloWorld5.name"
-         description="%launchitem.HelloWorld5.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.helloworld5.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.helloworld.HelloWorld5">
-      </program>
-   </item>
-   <item
-         name="%launchitem.ImageAnalyzer.name"
-         description="%launchitem.ImageAnalyzer.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.imageanalyzer.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.imageanalyzer.ImageAnalyzer">
-      </program>
-   </item>
-   <item
-         name="%launchitem.JavaViewer.name"
-         description="%launchitem.JavaViewer.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.javaviewer.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.javaviewer.JavaViewer">
-      </program>
-   </item>
-   <item
-         name="%launchitem.TextEditor.name"
-         description="%launchitem.TextEditor.description"
-         category="org.eclipse.swt.examples.launchStandaloneCategory"
-         id="org.eclipse.swt.examples.texteditor.standalonelauncher">
-      <program
-            pluginId="org.eclipse.swt.examples"
-            mainClass="org.eclipse.swt.examples.texteditor.TextEditor">
-      </program>
-   </item>
-</extension>
-</plugin>
diff --git a/examples/org.eclipse.swt.examples/src/examples_addressbook.properties b/examples/org.eclipse.swt.examples/src/examples_addressbook.properties
deleted file mode 100644
index 19e36dd..0000000
--- a/examples/org.eclipse.swt.examples/src/examples_addressbook.properties
+++ /dev/null
@@ -1,69 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Last_name = Last Name
-First_name = First Name
-Business_phone = Business Phone
-Home_phone = Home Phone
-Email = Email
-Fax = Fax
-Close_save = The address book contents have changed.\nDo you want to save the changes?
-New_title = Untitled
-Column = Column:
-Book_extension = .adr
-Book_filter_name = Address Books
-All_filter_name = All Files
-File = File 
-Does_not_exist = does not exist.
-File_not_found = File not found:
-IO_error_read = IO error reading text file:
-IO_error_write = IO error writing text file:
-IO_error_close = IO error closing text file:
-Title_bar = Address Book - 
-Save_as_title = Save As
-Query_overwrite = already exists.\nDo you want to replace it?
-File_menu_title = &File
-New_contact = &New Contact...\tCtrl+N
-Edit_contact = &Edit Contact...\tCtrl+E
-New_address_book = New Address &Book\tCtrl+B
-Open_address_book = &Open Address Book...\tCtrl+O
-Save_address_book = &Save Address Book\tCtrl+S
-Save_book_as = Save &Address Book As...\tCtrl+A
-Exit = E&xit
-Edit_menu_title = &Edit
-Edit = &Edit...\tCtrl+E
-Copy = &Copy\tCtrl+C
-Paste = &Paste\tCtrl+V
-Delete = De&lete\tDel
-Sort = &Sort
-Search_menu_title = &Search
-Find = &Find...\tCtrl+F
-Find_next = Find &Next...\tF3
-Pop_up_new = &New...
-Pop_up_edit = &Edit...
-Pop_up_copy = &Copy
-Pop_up_paste = &Paste
-Pop_up_delete = &Delete
-Pop_up_find = &Find...
-Help_menu_title = &Help
-About = &About Address Book...
-About_1 = About 
-About_2 = \nversion 1.0
-OK = OK
-Cancel = Cancel
-Search_dialog_title = Find
-Dialog_find_what = Fi&nd what:
-Dialog_match_case = Match &case
-Dialog_match_word = Match &whole word
-Dialog_direction = Direction
-Dialog_dir_up = &Up
-Dialog_dir_down = &Down
-Dialog_find = &Find
-Cannot_find = Cannot find 
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/examples_control.properties b/examples/org.eclipse.swt.examples/src/examples_control.properties
deleted file mode 100644
index 3dd5ebf..0000000
--- a/examples/org.eclipse.swt.examples/src/examples_control.properties
+++ /dev/null
@@ -1,163 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-error.CouldNotLoadResources = Unable to load resources
-window.title = SWT Controls
-custom.window.title = SWT Custom Controls
-
-Text_Buttons		= Text Buttons
-Size 				= Size
-Alignment			= Alignment
-Left				= Left
-Right				= Right
-Up					= Up
-Down				= Down
-Center				= Center
-One					= One
-Two					= Two
-Three				= Three
-Image_Buttons		= Image Buttons
-Control_Example		= Control Example
-Parameters			= Parameters
-State				= State
-Enabled				= Enabled
-Visible				= Visible
-Preferred 			= Preferred
-Styles	 			= Styles
-Text_Labels			= Text Labels
-Image_Labels		= Image Labels
-Custom_Labels		= Custom Labels
-Custom_Combo		= Custom Combo
-One_Two_Three		= One Two Three
-Text_ToolBar 		= Text ToolBar
-Image_ToolBar 		= Image ToolBar
-Maximum				= Maximum
-Minimum				= Minimum
-Selection			= Selection
-Increment			= Increment
-Page_Increment		= Page Increment
-Thumb				= Thumb
-Tree_With_Images	= Tree With Images
-Dialog_Type			= Dialog Type
-Create_Dialog		= Create Dialog
-Button_Styles		= Button Styles
-Icon_Styles			= Icon Styles
-Modal_Styles		= Modal Styles
-File_Dialog_Styles	= File Dialog Styles
-Item_Styles			= Item Styles
-Dialog_Result		= Dialog Result
-ColorDialog			= ColorDialog
-DirectoryDialog		= DirectoryDialog
-FileDialog			= FileDialog
-FontDialog			= FontDialog
-PrintDialog			= PrintDialog
-MessageBox			= MessageBox
-Multi_line			= A multi line text widget.
-Example_string		= The quick brown fox jumps over the lazy dog.
-Header_Visible		= Header Visible
-Lines_Visible		= Lines Visible
-Locked				= Locked
-Node_1				= Node 1
-Node_2				= Node 2
-Node_3				= Node 3
-Node_4				= Node 4
-Node_1_1			= Node 1.1
-Node_2_1			= Node 2.1
-Node_3_1			= Node 3.1
-Node_2_2			= Node 2.2
-Node_2_2_1			= Node 2.2.1
-Parent				= Parent
-No_Parent			= No Parent
-Decoration_Styles	= Decoration Styles
-Create_Shell		= Create Shell
-Close_All_Shells	= Close All Shells
-Push				= Push
-Radio				= Radio
-Check				= Check
-Drop_Down			= Drop Down
-Images_failed		= Warning: Failed to load images
-readme_txt			= readme.txt
-Index				= Index:
-Title				= Title:
-Close				= Close
-Result				= Result: {0}
-FilterName_0		= Text Files
-FilterName_1		= Batch Files
-FilterName_2		= Doc Files
-TableTitle_0		= Name
-TableTitle_1		= Type
-TableTitle_2		= Size
-TableTitle_3		= Modified
-TableLine0_0		= <empty>
-TableLine0_1		= classes
-TableLine0_2		= 0
-TableLine0_3		= today
-TableLine1_0		= <empty>
-TableLine1_1		= databases
-TableLine1_2		= 2556
-TableLine1_3		= <empty>
-TableLine2_0		= <empty>
-TableLine2_1		= images
-TableLine2_2		= 91571
-TableLine2_3		= yesterday
-ListData0_0			= Line 1
-ListData0_1			= Line 2
-ListData0_2			= Line 3
-ListData0_3			= Line 4
-ListData0_4			= Line 5
-ListData0_5			= Line 6
-ListData0_6			= Line 7
-ListData0_7			= Line 8
-ListData0_8			= Longest Line In List
-ListData1_0			= Apples
-ListData1_1			= Oranges
-ListData1_2			= Bananas
-ListData1_3			= Grapefruit
-ListData1_4			= Peaches
-ListData1_5			= Kiwi
-ListData1_6			= Apricots
-ListData1_7			= Strawberries
-ListData1_8			= The Longest String
-DropDownData_0			= Apples
-DropDownData_1			= Oranges
-DropDownData_2			=
-DropDownData_3			= Grapefruit
-DropDownData_4			= Peaches
-DropDownData_5			= Kiwi
-DropDownData_6			=
-DropDownData_7			= Strawberries
-DropDownData_8			= The Longest String
-Colors 				= Colors and Font
-Table_Item_Colors	= Index:0 Table Item Colors
-Background_Color	= Background Color
-Foreground_Color	= Foreground Color
-Item_Background_Color	= Item Background Color
-Item_Foreground_Color  	= Item Foreground Color
-Font				= Set Font...
-Wrap_Text			= Jack and Jill went up the hill to fetch a pail of water, \
-					  Jack fell down and broke his crown and Jill came tumbling after!
-Foreground_Style	= Foreground Style
-Background_Style 	= Background Style
-StyledText_Styles	= StyledText Styles
-StyledText_Style_Instructions	= Select text, then style.
-Bold				= Bold
-Fill				= Horizontal Fill
-CTabItem1_0			= CTab 0
-CTabItem1_1			= CTab 1
-CTabItem1_2			= CTab 2
-CItem_Colors		= CTabItem Colors
-CTabItem_content	= CTabItem Content
-TableTree_column	= Column
-Menu_Controls = Control
-MenuItem_Log = &Log Events
-MenuItem_Exit = E&xit
-MenuItem_Copy = &Copy
-MenuItem_SelectAll = Select &All
-MenuItem_Clear = C&lear
diff --git a/examples/org.eclipse.swt.examples/src/examples_fileviewer.properties b/examples/org.eclipse.swt.examples/src/examples_fileviewer.properties
deleted file mode 100644
index 9948e09..0000000
--- a/examples/org.eclipse.swt.examples/src/examples_fileviewer.properties
+++ /dev/null
@@ -1,69 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Title = SWT FileViewer - {0}
-
-menu.File.text = &File
-menu.File.Close.text = &Close
-menu.File.SimulateOnly.text = Simulate File Operations
-menu.Help.text = &Help
-menu.Help.About.text = &About
-
-tool.Cut.tiptext = Cut
-tool.Copy.tiptext = Copy
-tool.Delete.tiptext = Delete
-tool.Parent.tiptext = Parent
-tool.Paste.tiptext = Paste
-tool.Print.tiptext = Print
-tool.Refresh.tiptext = Refresh
-tool.Rename.tiptext = Rename
-tool.Search.tiptext = Search
-
-details.AllFolders.text = All Folders
-details.ContentsOf.text = Contents of ''{0}''
-details.FileSize.text = {0} bytes
-details.DirNumberOfObjects.text = {0} object(s)
-details.NumberOfSelectedFiles.text = {0} object(s) selected
-
-table.Name.title = Name
-table.Size.title = Size
-table.Type.title = Type
-table.Modified.title = Modified
-
-filetype.Unknown = {0} File
-filetype.None = File
-filetype.Folder = Folder
-filesize.KB = {0} kb
-
-dialog.About.title = About SWT FileViewer
-dialog.About.description = SWT FileViewer\n\nVersion: 0.9\n\nRunning on: {0}
-
-dialog.NotImplemented.title = Not Implemented
-dialog.ActionNotImplemented.description = Sorry!  The action you selected has not been implemented.
-
-dialog.FailedCopy.title = Copy Files Error
-dialog.FailedCopy.description = An error occured while trying to copy "{0}" to "{1}".
-
-dialog.FailedDelete.title = Delete Files Error
-dialog.FailedDelete.description = An error occured while trying to delete "{0}".
-
-progressDialog.cancelButton.text = Cancel
-progressDialog.Copy.title = Copy Files
-progressDialog.Copy.description = Copying files.
-progressDialog.Copy.operation = Copying... {0}
-progressDialog.Move.title = Move Files
-progressDialog.Move.description = Moving files.
-progressDialog.Delete.operation = Deleting... {0}
-
-simulate.CopyFromTo.text = Simulated copy from "{0}" to "{1}".
-simulate.DirectoriesCreated.text = Simulated directories created for "{0}".
-simulate.Delete.text = Simulated delete of "{0}".
-
-error.FailedLaunch.message = Could not launch "{0}"
diff --git a/examples/org.eclipse.swt.examples/src/examples_helloworld.properties b/examples/org.eclipse.swt.examples/src/examples_helloworld.properties
deleted file mode 100644
index a8cb9f6..0000000
--- a/examples/org.eclipse.swt.examples/src/examples_helloworld.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Hello_world = Hello World
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties b/examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties
deleted file mode 100644
index 69300e3..0000000
--- a/examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-error.CouldNotLoadResources = Unable to load resources : {0}
-
-ToolItem.text = ToolItem {0}
-ToolItem.tooltip = Tooltip for {0}. Try F1 on me.
-ToolItem.help = Help text for {0}.
-
-TableItem.text = TableItem {0}
-TableItem.tooltip = Tooltip for {0}. Try F1 on me.
-TableItem.help = Help text for {0}.
-
-TreeItem.text = TreeItem {0}
-TreeItem.tooltip = Tooltip for {0}. Try F1 on me.
-TreeItem.help = Help text for {0}.
-
-Hello.text = Hello
-Hello.tooltip = Greetings!
diff --git a/examples/org.eclipse.swt.examples/src/examples_images.properties b/examples/org.eclipse.swt.examples/src/examples_images.properties
deleted file mode 100644
index 859d256..0000000
--- a/examples/org.eclipse.swt.examples/src/examples_images.properties
+++ /dev/null
@@ -1,111 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Image_analyzer 				= Image Analyzer
-None 						= None
-White 						= White
-Black 						= Black
-Red 						= Red
-Green 						= Green
-Blue 						= Blue
-X_scale 					= X Scale
-Y_scale 					= Y Scale
-Alpha_K 					= Alpha-K
-Display 					= Display
-Incremental 				= Incremental
-Transparent 				= Transparent
-Transparent_lc 				= transparent
-Mask 						= Mask
-Background 					= Background
-Animation 					= Animation
-Previous 					= < &Previous
-Next 						= &Next >
-Animate 					= &Animate
-Type_initial 				= Type:
-Type_string 				= Type: {0}
-Type_index 					= Type: {0} [{1,number,integer} of {2,number,integer}]
-Size_initial 				= Size:
-Size_value 					= Size: {0,number,integer} x {1,number,integer}
-Depth_initial 				= Depth:
-Depth_value 				= Depth: {0}
-Transparent_pixel_initial 	= Transparent pixel:
-Transparent_pixel_value		= Transparent pixel: {0}
-Time_to_load_initial 		= Time to load:
-Time_to_load_value			= Time to load: {0} ms
-Animation_size_initial 		= Animation size:
-Animation_size_value 		= Animation size: {0,number,integer} x {1,number,integer}
-Background_pixel_initial 	= Background pixel:
-Background_pixel_value 		= Background pixel: {0}
-Image_location_initial 		= Image location:
-Image_location_value 		= Image location: ({0,number,integer}, {1,number,integer})
-Disposal_initial 			= Disposal:
-Disposal_value 				= Disposal: {0,number,integer} ({1})
-Delay_initial 				= Delay:
-Delay_value 				= Delay: {0,number,integer} ms (using {1,number,integer} ms)
-Delay_used 					= Delay: {0,number,integer} ms
-Repeats_initial 			= Repeats:
-Repeats_value 				= Repeats: {0,number,integer}
-Repeats_forever 			= Repeats: {0,number,integer} (forever)
-Palette_initial 			= Palette:
-Palette_direct 				= Palette: Direct
-Palette_value 				= Palette size: {0,number,integer}
-Pixel_data_initial 			= Pixel data:
-Pixel_data_value 			= Pixel data:  Bytes per line: {0,number,integer}  \
-							  Scanline pad: {1,number,integer} {2}
-File 						= &File
-OpenFile 					= &Open File...\tCtrl+O
-OpenURL						= Open &URL...\tCtrl+U
-Reopen 						= &Reopen
-Save 						= &Save\tCtrl+S
-Save_as 					= Save &As...
-Save_mask_as 				= Save &Mask As...
-Print 						= &Print\tCtrl+P
-Exit 						= E&xit
-Alpha 						= Alpha
-OpenURLDialog				= Open URL
-EnterURL					= Enter the URL for an image (bmp, gif, ico, jpg, jpeg, png):
-All_images 					= All Image Files
-Loading_lc 					= loading
-Saving_lc 					= saving
-Unknown_extension 			= Unknown file extension: {0}\nPlease use bmp, gif, ico, \
-							  jpg, jpeg, or png.
-Overwrite 					= Overwrite {0}?
-Analyzer_on 				= Image Analyzer on: {0}
-Reloading_lc 				= reloading
-Color_at 					= Image color at ({0,number,integer}, {1,number,integer}) \
-							  index {2,number,integer} (0x{3}) is {4}
-Color_at_trans 				= Image color at ({0,number,integer}, {1,number,integer}) \
-							  index {2,number,integer} (0x{3}) is {4} (transparent)
-Creating_image 				= Creating image # {0,number,integer} from 
-OK							= OK
-Cancel						= Cancel
-Stop 						= &Stop
-Creating_from 				= Creating image read from
-Palette_direct 				= Palette: Direct
-Palette_size 				= Palette size: {0,number,integer}
-Bytes_per_line 				= Bytes per line:
-Scanline_pad 				= Scanline pad:
-Printing_error				= Printing error: 
-Error 						= Error {0} file\n{1}\n\n
-Pixels_per_byte 			= pixels per byte
-Byte_per_pixel 				= byte per pixel
-Bytes_per_pixel 			= bytes per pixel
-Unsupported_lc 				= unsupported
-None_lc 					= none
-Background_lc 				= background
-Previous_lc 				= previous
-Unspecified_lc 				= unspecified
-Unknown_ac 					= UNKNOWN
-Forever_lc 					= forever
-Depth_info 					= Depth: {0,number,integer} -- {1}
-One_byte 					= 1 byte per pixel
-Multi_bytes 				= {0,number,integer} bytes per pixel
-Multi_pixels 				= {0,number,integer} pixels per byte {1}
-Max_length_string 			= Transparent pixel: -1 (none)
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/examples_javaviewer.properties b/examples/org.eclipse.swt.examples/src/examples_javaviewer.properties
deleted file mode 100644
index c877154..0000000
--- a/examples/org.eclipse.swt.examples/src/examples_javaviewer.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Open_menuitem=&Open...\tCtrl+O
-Exit_menuitem=E&xit
-File_menuitem=&File
-Window_title=SWT Java Viewer
-Err_file_no_exist=File {0} does not exist.
-Err_file_io=IO error reading file:\n{0}
-Err_file_not_found=File not found:\n{0}
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/examples_layout.properties b/examples/org.eclipse.swt.examples/src/examples_layout.properties
deleted file mode 100644
index 5e01c8f..0000000
--- a/examples/org.eclipse.swt.examples/src/examples_layout.properties
+++ /dev/null
@@ -1,51 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-window.title = SWT Layouts
-
-Add					= &Add
-Delete	 			= &Delete
-Clear				= &Clear
-Children			= Children
-Type				= Type
-Layout				= Layout
-Preferred_Size		= Preferred Size
-Code				= C&ode
-Generated_Code		= Generated Code
-Parameters			= Parameters
-Properties			= Properties
-Margins				= Margins
-Margins_Spacing		= Margins and Spacing
-Columns				= Columns
-Attach_Edit			= Edit
-Left_Attachment		= Edit Left Attachment
-Right_Attachment	= Edit Right Attachment
-Top_Attachment		= Edit Top Attachment
-Bottom_Attachment	= Edit Bottom Attachment
-Position			= Position
-Control				= Control
-Offset				= Offset [+/-]
-Item				= Item {0}
-Combo_Index			= Combo {0}
-Group_Index			= Group {0}
-Label_Index			= Label {0}
-Button_Index		= Button {0}
-StyledText_Index	= StyledText {0}
-Text_Index			= Text {0}
-OK					= OK
-Cancel				= Cancel
-Edit				= &Edit
-Select_All			= Select &All\tCtrl+A
-Copy				= &Copy\tCtrl+C
-Exit				= E&xit
-Name_Title			= Enter Names
-Name_Label			= Enter names for your controls
-Invalid_Name 		= Invalid Name - Please enter valid variable names for your controls
-Default				= Default
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/examples_texteditor.properties b/examples/org.eclipse.swt.examples/src/examples_texteditor.properties
deleted file mode 100644
index b66d829..0000000
--- a/examples/org.eclipse.swt.examples/src/examples_texteditor.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Exit_menuitem=E&xit
-Cut_menuitem=Cu&t\tCtrl+X
-Copy_menuitem=&Copy\tCtrl+C
-Paste_menuitem=&Paste\tCtrl+V
-Window_title=SWT Text Editor
-Font_menuitem=Set &Font...
-Edit_menuitem=&Edit
-File_menuitem=&File
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/import.properties b/examples/org.eclipse.swt.examples/src/import.properties
deleted file mode 100644
index 6f750b8..0000000
--- a/examples/org.eclipse.swt.examples/src/import.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# Persist project settings for later import 
-natures = org.eclipse.jdt.core.javanature; org.eclipse.pde.PluginNature
-builders = org.eclipse.jdt.core.javabuilder; org.eclipse.pde.ManifestBuilder; org.eclipse.pde.SchemaBuilder
-var.ECLIPSE_PLUGINS = <<ECLIPSE_PLUGINS>>
-vmargs.org/eclipse/swt/examples/addressbook/AddressBook.java%AddressBook = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/controlexample/ControlExample.java%ControlExample = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/fileviewer/FileViewer.java%FileViewer = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/helloworld/HelloWorld1.java%HelloWorld1 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/helloworld/HelloWorld2.java%HelloWorld2 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/helloworld/HelloWorld3.java%HelloWorld3 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/helloworld/HelloWorld4.java%HelloWorld4 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/helloworld/HelloWorld5.java%HelloWorld5 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/hoverhelp/HoverHelp.java%HoverHelp = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java%ImageAnalyzer = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/javaviewer/JavaViewer.java%JavaViewer = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/texteditor/TextEditor.java%TextEditor = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java
deleted file mode 100755
index f73fa4e..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java
+++ /dev/null
@@ -1,873 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.addressbook;
-
-
-/* Imports */
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * AddressBookExample is an example that uses <code>org.eclipse.swt</code> 
- * libraries to implement a simple address book.  This application has 
- * save, load, sorting, and searching functions common
- * to basic address books.
- */
-public class AddressBook {
-
-	private static ResourceBundle resAddressBook = ResourceBundle.getBundle("examples_addressbook");
-	private Shell shell;
-	
-	private Table table;
-	private SearchDialog searchDialog;
-	
-	private File file;
-	private boolean isModified;
-	
-	private String[] copyBuffer;
-
-	private int lastSortColumn= -1;
-	
-	private static final String DELIMITER = "\t";
-	private static final String[] columnNames = {resAddressBook.getString("Last_name"),
-												 resAddressBook.getString("First_name"),
-												 resAddressBook.getString("Business_phone"),
-												 resAddressBook.getString("Home_phone"),
-												 resAddressBook.getString("Email"),
-												 resAddressBook.getString("Fax")};
-	
-public static void main(String[] args) {
-	Display display = new Display();
-	AddressBook application = new AddressBook();
-	Shell shell = application.open(display);
-	while(!shell.isDisposed()){
-		if(!display.readAndDispatch())
-			display.sleep();
-	}
-	display.dispose();
-}
-public Shell open(Display display) {
-	shell = new Shell(display);
-	shell.setLayout(new FillLayout());
-	shell.addShellListener(new ShellAdapter() {
-		public void shellClosed(ShellEvent e) {
-			e.doit = closeAddressBook();
-		}
-	});
-	
-	createMenuBar();
-
-	searchDialog = new SearchDialog(shell);
-	searchDialog.setSearchAreaNames(columnNames);
-	searchDialog.setSearchAreaLabel(resAddressBook.getString("Column"));
-	searchDialog.addFindListener(new FindListener () {
-		public boolean find() {
-			return findEntry();
-		}
-	});
-					
-	table = new Table(shell, SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
-	table.setHeaderVisible(true);	
-	table.setMenu(createPopUpMenu());	
-	table.addSelectionListener(new SelectionAdapter() {
-		public void widgetDefaultSelected(SelectionEvent e) {
-			TableItem[] items = table.getSelection();
-			if (items.length > 0) editEntry(items[0]);
-		}
-	});
-	for(int i = 0; i < columnNames.length; i++) {
-		TableColumn column = new TableColumn(table, SWT.NONE);
-		column.setText(columnNames[i]);
-		column.setWidth(150);
-		final int columnIndex = i;
-		column.addSelectionListener(new SelectionAdapter() {		
-			public void widgetSelected(SelectionEvent e) {
-				sort(columnIndex);
-			}
-		});
-	}
-
-	newAddressBook();
-
-	shell.setSize(table.computeSize(SWT.DEFAULT, SWT.DEFAULT).x, 300);
-	shell.open();
-	return shell;
-}
-
-private boolean closeAddressBook() {
-	if(isModified) {
-		//ask user if they want to save current address book
-		MessageBox box = new MessageBox(shell, SWT.ICON_WARNING | SWT.YES | SWT.NO | SWT.CANCEL);
-		box.setText(shell.getText());
-		box.setMessage(resAddressBook.getString("Close_save"));
-	
-		int choice = box.open();
-		if(choice == SWT.CANCEL) {
-			return false;
-		} else if(choice == SWT.YES) {
-			if (!save()) return false;
-		}
-	}
-		
-	TableItem[] items = table.getItems();
-	for (int i = 0; i < items.length; i ++) {
-		items[i].dispose();
-	}
-	
-	return true;
-}
-/**
- * Creates the menu at the top of the shell where most
- * of the programs functionality is accessed.
- *
- * @return		The <code>Menu</code> widget that was created
- */
-private Menu createMenuBar() {
-	Menu menuBar = new Menu(shell, SWT.BAR);
-	shell.setMenuBar(menuBar);
-	
-	//create each header and subMenu for the menuBar
-	createFileMenu(menuBar);
-	createEditMenu(menuBar);
-	createSearchMenu(menuBar);
-	createHelpMenu(menuBar);
-	
-	return menuBar;
-}
-
-/**
- * Converts an encoded <code>String</code> to a String array representing a table entry.
- */
-private String[] decodeLine(String line) {
-	if(line == null) return null;
-	
-	String[] parsedLine = new String[table.getColumnCount()];
-	for(int i = 0; i < parsedLine.length - 1; i++) {
-		int index = line.indexOf(DELIMITER);
-		if (index > -1) {
-			parsedLine[i] = line.substring(0, index);
-			line = line.substring(index + DELIMITER.length(), line.length());
-		} else {
-			return null;
-		}
-	}
-	
-	if (line.indexOf(DELIMITER) != -1) return null;
-	
-	parsedLine[parsedLine.length - 1] = line;
-
-	return parsedLine;
-}
-private void displayError(String msg) {
-	MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
-	box.setMessage(msg);
-	box.open();
-}
-private void editEntry(TableItem item) {
-	DataEntryDialog dialog = new DataEntryDialog(shell);
-	dialog.setLabels(columnNames);
-	String[] values = new String[table.getColumnCount()];
-	for (int i = 0; i < values.length; i++) {
-		values[i] = item.getText(i);
-	}
-	dialog.setValues(values);
-	values = dialog.open();
-	if (values != null) {
-		item.setText(values);
-		isModified = true;
-	}
-}
-private String encodeLine(String[] tableItems) {
-	String line = "";
-	for (int i = 0; i < tableItems.length - 1; i++) {
-		line += tableItems[i] + DELIMITER;
-	}
-	line += tableItems[tableItems.length - 1] + "\n";
-	
-	return line;
-}
-private boolean findEntry() {
-	Cursor waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
-	shell.setCursor(waitCursor);
-	
-	boolean matchCase = searchDialog.getMatchCase();
-	boolean matchWord = searchDialog.getMatchWord();
-	String searchString = searchDialog.getSearchString();
-	int column = searchDialog.getSelectedSearchArea();
-	
-	searchString = matchCase ? searchString : searchString.toLowerCase();
-	
-	boolean found = false;
-	if (searchDialog.getSearchDown()) {
-		for(int i = table.getSelectionIndex() + 1; i < table.getItemCount(); i++) {
-			if (found = findMatch(searchString, table.getItem(i), column, matchWord, matchCase)){
-				table.setSelection(i);
-				break;
-			}
-		}
-	} else {
-		for(int i = table.getSelectionIndex() - 1; i > -1; i--) {
-			if (found = findMatch(searchString, table.getItem(i), column, matchWord, matchCase)){
-				table.setSelection(i);
-				break;
-			}
-		}
-	}
-	
-	shell.setCursor(null);
-	if (waitCursor != null)
-		waitCursor.dispose();
-		
-	return found;
-}
-private boolean findMatch(String searchString, TableItem item, int column, boolean matchWord, boolean matchCase) {
-	
-	String tableText = matchCase ? item.getText(column) : item.getText(column).toLowerCase();
-	if (matchWord) {
-		if (tableText != null && tableText.equals(searchString)) {
-			return true;
-		}
-		
-	} else {
-		if(tableText!= null && tableText.indexOf(searchString) != -1) {
-			return true;
-		}
-	}
-	return false;
-}
-private void newAddressBook() {	
-	shell.setText(resAddressBook.getString("Title_bar") + resAddressBook.getString("New_title"));
-	file = null;
-	isModified = false;
-}
-private void newEntry() {
-	DataEntryDialog dialog = new DataEntryDialog(shell);
-	dialog.setLabels(columnNames);
-	String[] data = dialog.open();
-	if (data != null) {
-		TableItem item = new TableItem(table, SWT.NONE);
-		item.setText(data);
-		isModified = true;
-	}
-}
-
-private void openAddressBook() {	
-	FileDialog fileDialog = new FileDialog(shell, SWT.OPEN);
-
-	fileDialog.setFilterExtensions(new String[] {"*.adr;", "*.*"});
-	fileDialog.setFilterNames(new String[] {resAddressBook.getString("Book_filter_name") + " (*.adr)", 
-											resAddressBook.getString("All_filter_name") + " (*.*)"});
-	String name = fileDialog.open();
-
-	if(name == null) return;
-	File file = new File(name);
-	if (!file.exists()) {
-		displayError(resAddressBook.getString("File")+file.getName()+" "+resAddressBook.getString("Does_not_exist")); 
-		return;
-	}
-	
-	Cursor waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
-	shell.setCursor(waitCursor);
-	
-	FileReader fileReader = null;
-	BufferedReader bufferedReader = null;
-	String[] data = new String[0];
-	try {
-		fileReader = new FileReader(file.getAbsolutePath());
-		bufferedReader = new BufferedReader(fileReader);
-		String nextLine = bufferedReader.readLine();
-		while (nextLine != null){
-			String[] newData = new String[data.length + 1];
-			System.arraycopy(data, 0, newData, 0, data.length);
-			newData[data.length] = nextLine;
-			data = newData;
-			nextLine = bufferedReader.readLine();
-		}
-	} catch(FileNotFoundException e) {
-		displayError(resAddressBook.getString("File_not_found") + "\n" + file.getName());
-		return;
-	} catch (IOException e ) {
-		displayError(resAddressBook.getString("IO_error_read") + "\n" + file.getName());
-		return;
-	} finally {	
-		
-		shell.setCursor(null);
-		waitCursor.dispose();
-	
-		if(fileReader != null) {
-			try {
-				fileReader.close();
-			} catch(IOException e) {
-				displayError(resAddressBook.getString("IO_error_close") + "\n" + file.getName());
-				return;
-			}
-		}
-	}
-	
-	String[][] tableInfo = new String[data.length][table.getColumnCount()];
-	for (int i = 0; i < data.length; i++) {
-		tableInfo[i] = decodeLine(data[i]);
-	}
-
-	Arrays.sort(tableInfo, new RowComparator(0));
-
-	for (int i = 0; i < tableInfo.length; i++) {
-		TableItem item = new TableItem(table, SWT.NONE);
-		item.setText(tableInfo[i]);
-	}
-	shell.setText(resAddressBook.getString("Title_bar")+fileDialog.getFileName());
-	isModified = false;
-	this.file = file;
-}
-private boolean save() {
-	if(file == null) return saveAs();
-	
-	Cursor waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
-	shell.setCursor(waitCursor);
-	
-	TableItem[] items = table.getItems();
-	String[] lines = new String[items.length];
-	for(int i = 0; i < items.length; i++) {
-		String[] itemText = new String[table.getColumnCount()];
-		for (int j = 0; j < itemText.length; j++) {
-			itemText[j] = items[i].getText(j);
-		}
-		lines[i] = encodeLine(itemText);
-	}
-		
-	FileWriter fileWriter = null;
-	try { 
-		fileWriter = new FileWriter(file.getAbsolutePath(), false);
-		for (int i = 0; i < lines.length; i++) {
-			fileWriter.write(lines[i]);
-		}
-	} catch(FileNotFoundException e) {
-		displayError(resAddressBook.getString("File_not_found") + "\n" + file.getName());
-		return false;
-	} catch(IOException e ) {
-		displayError(resAddressBook.getString("IO_error_write") + "\n" + file.getName());
-		return false;
-	} finally {
-		shell.setCursor(null);
-		waitCursor.dispose();
-		
-		if(fileWriter != null) {
-			try {
-				fileWriter.close();
-			} catch(IOException e) {
-				displayError(resAddressBook.getString("IO_error_close") + "\n" + file.getName());
-				return false;
-			}
-		}
-	}
-
-	shell.setText(resAddressBook.getString("Title_bar")+file.getName());
-	isModified = false;
-	return true;
-}
-private boolean saveAs() {
-		
-	FileDialog saveDialog = new FileDialog(shell, SWT.SAVE);
-	saveDialog.setFilterExtensions(new String[] {"*.adr;",  "*.*"});
-	saveDialog.setFilterNames(new String[] {"Address Books (*.adr)", "All Files "});
-	
-	saveDialog.open();
-	String name = saveDialog.getFileName();
-		
-	if(name.equals("")) return false;
-
-	if(name.indexOf(".adr") != name.length() - 4) {
-		name += ".adr";
-	}
-
-	File file = new File(saveDialog.getFilterPath(), name);
-	if(file.exists()) {
-		MessageBox box = new MessageBox(shell, SWT.ICON_WARNING | SWT.YES | SWT.NO);
-		box.setText(resAddressBook.getString("Save_as_title"));
-		box.setMessage(resAddressBook.getString("File") + file.getName()+" "+resAddressBook.getString("Query_overwrite"));
-		if(box.open() != SWT.YES) {
-			return false;
-		}
-	}
-	this.file = file;
-	return save();	
-}
-private void sort(int column) {
-	if(table.getItemCount() <= 1)	return;
-
-	TableItem[] items = table.getItems();
-	String[][] data = new String[items.length][table.getColumnCount()];
-	for(int i = 0; i < items.length; i++) {
-		for(int j = 0; j < table.getColumnCount(); j++) {
-			data[i][j] = items[i].getText(j);
-		}
-	}
-	
-	Arrays.sort(data, new RowComparator(column));
-	
-	if (lastSortColumn != column) {
-		for (int i = 0; i < data.length; i++) {
-			items[i].setText(data[i]);
-		}
-		lastSortColumn = column;
-	} else {
-		// reverse order if the current column is selected again
-		int j = data.length -1;
-		for (int i = 0; i < data.length; i++) {
-			items[i].setText(data[j--]);
-		}
-		lastSortColumn = -1;
-	}
-	
-}
-/**
- * Creates all the items located in the File submenu and
- * associate all the menu items with their appropriate
- * functions.
- *
- * @param	menuBar Menu
- *				the <code>Menu</code> that file contain
- *				the File submenu.
- */
-private void createFileMenu(Menu menuBar) {
-	//File menu.
-	MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
-	item.setText(resAddressBook.getString("File_menu_title"));
-	Menu menu = new Menu(shell, SWT.DROP_DOWN);
-	item.setMenu(menu);
-	/** 
-	 * Adds a listener to handle enabling and disabling 
-	 * some items in the Edit submenu.
-	 */
-	menu.addMenuListener(new MenuAdapter() {
-		public void menuShown(MenuEvent e) {
-			Menu menu = (Menu)e.widget;
-			MenuItem[] items = menu.getItems();
-			items[1].setEnabled(table.getSelectionCount() != 0); // edit contact
-			items[5].setEnabled((file != null) && isModified); // save
-			items[6].setEnabled(table.getItemCount() != 0); // save as
-		}
-	});
-
-
-	//File -> New Contact
-	MenuItem subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("New_contact"));
-	subItem.setAccelerator(SWT.MOD1 + 'N');
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			newEntry();
-		}
-	});
-	subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("Edit_contact"));
-	subItem.setAccelerator(SWT.MOD1 + 'E');
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			TableItem[] items = table.getSelection();
-			if (items.length == 0) return;
-			editEntry(items[0]);
-		}
-	});
-
-	
-	new MenuItem(menu, SWT.SEPARATOR);
-	
-	//File -> New Address Book
-	subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("New_address_book"));
-	subItem.setAccelerator(SWT.MOD1 + 'B');
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			if (closeAddressBook()) {
-				newAddressBook();
-			}
-		}
-	});
-
-	//File -> Open
-	subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("Open_address_book"));
-	subItem.setAccelerator(SWT.MOD1 + 'O');
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			if (closeAddressBook()) {
-				openAddressBook();
-			}
-		}
-	});
-
-	//File -> Save.
-	subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("Save_address_book"));
-	subItem.setAccelerator(SWT.MOD1 + 'S');
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			save();
-		}
-	});
-	
-	//File -> Save As.
-	subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("Save_book_as"));
-	subItem.setAccelerator(SWT.MOD1 + 'A');
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			saveAs();
-		}
-	});
-
-		
-	new MenuItem(menu, SWT.SEPARATOR);
-	
-	//File -> Exit.
-	subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("Exit"));
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			shell.close();
-		}
-	});
-}
-
-/**
- * Creates all the items located in the Edit submenu and
- * associate all the menu items with their appropriate
- * functions.
- *
- * @param	menuBar Menu
- *				the <code>Menu</code> that file contain
- *				the Edit submenu.
- *
- * @see	#createSortMenu()
- */
-private MenuItem createEditMenu(Menu menuBar) {
-	//Edit menu.
-	MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
-	item.setText(resAddressBook.getString("Edit_menu_title"));
-	Menu menu = new Menu(shell, SWT.DROP_DOWN);
-	item.setMenu(menu);
-	
-	/** 
-	 * Add a listener to handle enabling and disabling 
-	 * some items in the Edit submenu.
-	 */
-	menu.addMenuListener(new MenuAdapter() {
-		public void menuShown(MenuEvent e) {
-			Menu menu = (Menu)e.widget;
-			MenuItem[] items = menu.getItems();
-			int count = table.getSelectionCount();
-			items[0].setEnabled(count != 0); // edit
-			items[1].setEnabled(count != 0); // copy
-			items[2].setEnabled(copyBuffer != null); // paste
-			items[3].setEnabled(count != 0); // delete
-			items[5].setEnabled(table.getItemCount() != 0); // sort
-		}
-	});
-	
-	//Edit -> Edit
-	MenuItem subItem = new MenuItem(menu, SWT.CASCADE);
-	subItem.setText(resAddressBook.getString("Edit"));
-	subItem.setAccelerator(SWT.MOD1 + 'E');
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			TableItem[] items = table.getSelection();
-			if (items.length == 0) return;
-			editEntry(items[0]);
-		}
-	});
-
-	//Edit -> Copy
-	subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("Copy"));
-	subItem.setAccelerator(SWT.MOD1 + 'C');
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			TableItem[] items = table.getSelection();
-			if (items.length == 0) return;
-			copyBuffer = new String[table.getColumnCount()];
-			for (int i = 0; i < copyBuffer.length; i++) {
-				copyBuffer[i] = items[0].getText(i);
-			}
-		}
-	});
-	
-	//Edit -> Paste
-	subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("Paste"));
-	subItem.setAccelerator(SWT.MOD1 + 'V');
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			if (copyBuffer == null) return;
-			TableItem item = new TableItem(table, SWT.NONE);
-			item.setText(copyBuffer);
-			isModified = true;
-		}
-	});
-	
-	//Edit -> Delete
-	subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("Delete"));
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			TableItem[] items = table.getSelection();
-			if (items.length == 0) return;
-			items[0].dispose();
-			isModified = true;		}
-	});
-	
-	new MenuItem(menu, SWT.SEPARATOR);
-	
-	//Edit -> Sort(Cascade)
-	subItem = new MenuItem(menu, SWT.CASCADE);
-	subItem.setText(resAddressBook.getString("Sort"));
-	Menu submenu = createSortMenu();
-	subItem.setMenu(submenu);
-	
-	return item;
-	
-}
-
-/**
- * Creates all the items located in the Sort cascading submenu and
- * associate all the menu items with their appropriate
- * functions.
- *
- * @return	Menu
- *			The cascading menu with all the sort menu items on it.
- */
-private Menu createSortMenu() {
-	Menu submenu = new Menu(shell, SWT.DROP_DOWN);
-	MenuItem subitem;
-	for(int i = 0; i < columnNames.length; i++) {
-		subitem = new MenuItem (submenu, SWT.NULL);
-		subitem.setText(columnNames [i]);
-		final int column = i;
-		subitem.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				sort(column);
-			}
-		});
-
-	}
-	
-	return submenu;
-}
-
-/**
- * Creates all the items located in the Search submenu and
- * associate all the menu items with their appropriate
- * functions.
- *
- * @param	menuBar	Menu
- *				the <code>Menu</code> that file contain
- *				the Search submenu.
- */
-private void createSearchMenu(Menu menuBar) {
-	//Search menu.
-	MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
-	item.setText(resAddressBook.getString("Search_menu_title"));
-	Menu searchMenu = new Menu(shell, SWT.DROP_DOWN);
-	item.setMenu(searchMenu);
-
-	//Search -> Find...
-	item = new MenuItem(searchMenu, SWT.NULL);
-	item.setText(resAddressBook.getString("Find"));
-	item.setAccelerator(SWT.MOD1 + 'F');
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			searchDialog.setMatchCase(false);
-			searchDialog.setMatchWord(false);
-			searchDialog.setSearchDown(true);
-			searchDialog.setSearchString("");
-			searchDialog.setSelectedSearchArea(0);
-			searchDialog.open();
-		}
-	});
-
-	//Search -> Find Next
-	item = new MenuItem(searchMenu, SWT.NULL);
-	item.setText(resAddressBook.getString("Find_next"));
-	item.setAccelerator(SWT.F3);
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			searchDialog.open();
-		}
-	});
-}
-
-/** 
- * Creates all items located in the popup menu and associates
- * all the menu items with their appropriate functions.
- *
- * @return	Menu
- *			The created popup menu.
- */
-private Menu createPopUpMenu() {
-	Menu popUpMenu = new Menu(shell, SWT.POP_UP);
-
-	/** 
-	 * Adds a listener to handle enabling and disabling 
-	 * some items in the Edit submenu.
-	 */
-	popUpMenu.addMenuListener(new MenuAdapter() {
-		public void menuShown(MenuEvent e) {
-			Menu menu = (Menu)e.widget;
-			MenuItem[] items = menu.getItems();
-			int count = table.getSelectionCount();
-			items[2].setEnabled(count != 0); // edit
-			items[3].setEnabled(count != 0); // copy
-			items[4].setEnabled(copyBuffer != null); // paste
-			items[5].setEnabled(count != 0); // delete
-			items[7].setEnabled(table.getItemCount() != 0); // find
-		}
-	});
-
-	//New
-	MenuItem item = new MenuItem(popUpMenu, SWT.CASCADE);
-	item.setText(resAddressBook.getString("Pop_up_new"));
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			newEntry();
-		}
-	});
-	
-	new MenuItem(popUpMenu, SWT.SEPARATOR);	
-	
-	//Edit
-	item = new MenuItem(popUpMenu, SWT.CASCADE);
-	item.setText(resAddressBook.getString("Pop_up_edit"));
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			TableItem[] items = table.getSelection();
-			if (items.length == 0) return;
-			editEntry(items[0]);
-		}
-	});
-
-	//Copy
-	item = new MenuItem(popUpMenu, SWT.CASCADE);
-	item.setText(resAddressBook.getString("Pop_up_copy"));
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			TableItem[] items = table.getSelection();
-			if (items.length == 0) return;
-			copyBuffer = new String[table.getColumnCount()];
-			for (int i = 0; i < copyBuffer.length; i++) {
-				copyBuffer[i] = items[0].getText(i);
-			}
-		}
-	});
-	
-	//Paste
-	item = new MenuItem(popUpMenu, SWT.CASCADE);
-	item.setText(resAddressBook.getString("Pop_up_paste"));
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			if (copyBuffer == null) return;
-			TableItem item = new TableItem(table, SWT.NONE);
-			item.setText(copyBuffer);
-			isModified = true;
-		}
-	});
-	
-	//Delete
-	item = new MenuItem(popUpMenu, SWT.CASCADE);
-	item.setText(resAddressBook.getString("Pop_up_delete"));
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			TableItem[] items = table.getSelection();
-			if (items.length == 0) return;
-			items[0].dispose();
-			isModified = true;
-		}
-	});
-	
-	new MenuItem(popUpMenu, SWT.SEPARATOR);	
-	
-	//Find...
-	item = new MenuItem(popUpMenu, SWT.NULL);
-	item.setText(resAddressBook.getString("Pop_up_find"));
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			searchDialog.open();
-		}
-	});
-
-	return popUpMenu;
-}
-
-/**
- * Creates all the items located in the Help submenu and
- * associate all the menu items with their appropriate
- * functions.
- *
- * @param	menuBar	Menu
- *				the <code>Menu</code> that file contain
- *				the Help submenu.
- */
-private void createHelpMenu(Menu menuBar) {
-	
-	//Help Menu
-	MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
-	item.setText(resAddressBook.getString("Help_menu_title"));	
-	Menu menu = new Menu(shell, SWT.DROP_DOWN);
-	item.setMenu(menu);
-	
-	//Help -> About Text Editor
-	MenuItem subItem = new MenuItem(menu, SWT.NULL);
-	subItem.setText(resAddressBook.getString("About"));
-	subItem.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			MessageBox box = new MessageBox(shell, SWT.NONE);
-			box.setText(resAddressBook.getString("About_1") + shell.getText());
-			box.setMessage(shell.getText() + resAddressBook.getString("About_2"));
-			box.open();		
-		}
-	});
-}
-
-/**
- * To compare entries (rows) by the given column
- */
-private class RowComparator implements Comparator {
-	private int column;
-	
-	/**
-	 * Constructs a RowComparator given the column index
-	 * @param col The index (starting at zero) of the column
-	 */
-	public RowComparator(int col) {
-		column = col;
-	}
-	
-	/**
-	 * Compares two rows (type String[]) using the specified
-	 * column entry.
-	 * @param obj1 First row to compare
-	 * @param obj2 Second row to compare
-	 * @return negative if obj1 less than obj2, positive if
-	 * 			obj1 greater than obj2, and zero if equal.
-	 */
-	public int compare(Object obj1, Object obj2) {
-		String[] row1 = (String[])obj1;
-		String[] row2 = (String[])obj2;
-		
-		return row1[column].compareTo(row2[column]);
-	}
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java
deleted file mode 100755
index 17b4866..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.addressbook;
-
-
-/* Imports */
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import java.util.ResourceBundle;
-
-/**
- * DataEntryDialog class uses <code>org.eclipse.swt</code> 
- * libraries to implement a dialog that accepts basic personal information that
- * is added to a <code>Table</code> widget or edits a <code>TableItem</code> entry 
- * to represent the entered data.
- */
-public class DataEntryDialog {
-
-	private static ResourceBundle resAddressBook = ResourceBundle.getBundle("examples_addressbook");
-	
-	Shell shell;
-	String[] values;
-	String[] labels;
-	
-public DataEntryDialog(Shell parent) {
-	shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.PRIMARY_MODAL);
-	shell.setLayout(new GridLayout());		
-}
-
-private void addTextListener(final Text text) {
-	text.addModifyListener(new ModifyListener() {
-		public void modifyText(ModifyEvent e){
-			Integer index = (Integer)(text.getData("index"));
-			values[index.intValue()] = text.getText();
-		}
-	});
-}
-private void createControlButtons() {
-	Composite composite = new Composite(shell, SWT.NULL);
-	composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
-	GridLayout layout = new GridLayout();
-	layout.numColumns = 2;
-	composite.setLayout(layout);
-	
-	Button okButton = new Button(composite, SWT.PUSH);
-	okButton.setText(resAddressBook.getString("OK"));
-	okButton.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			shell.close();
-		}
-	});
-	
-	Button cancelButton = new Button(composite, SWT.PUSH);
-	cancelButton.setText(resAddressBook.getString("Cancel"));
-	cancelButton.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			values = null;
-			shell.close();
-		}
-	});
-	
-	shell.setDefaultButton(okButton);
-}
-
-private void createTextWidgets() {
-	if (labels == null) return;
-	
-	Composite composite = new Composite(shell, SWT.NULL);
-	composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-	GridLayout layout= new GridLayout();
-	layout.numColumns = 2;
-	composite.setLayout(layout);
-	
-	if (values == null)
-		values = new String[labels.length];
-	
-	for (int i = 0; i < labels.length; i++) {
-		Label label = new Label(composite, SWT.RIGHT);
-		label.setText(labels[i]);	
-		Text text = new Text(composite, SWT.BORDER);
-		GridData gridData = new GridData();
-		gridData.widthHint = 400;
-		text.setLayoutData(gridData);
-		if (values[i] != null) {
-			text.setText(values[i]);
-		}
-		text.setData("index", new Integer(i));
-		addTextListener(text);	
-	}
-}
-
-public String[] getLabels() {
-	return labels;
-}
-public String getTitle() {
-	return shell.getText();
-}
-/**
- * Returns the contents of the <code>Text</code> widgets in the dialog in a 
- * <code>String</code> array.
- *
- * @return	String[]	
- *			The contents of the text widgets of the dialog.
- *			May return null if all text widgets are empty.
- */ 
-public String[] getValues() {
-	return values;
-}
-/** 
- * Opens the dialog in the given state.  Sets <code>Text</code> widget contents 
- * and dialog behaviour accordingly.
- *
- * @param 	dialogState	int
- *					The state the dialog should be opened in.
- */
-public String[] open() {
-	createTextWidgets();
-	createControlButtons();
-	shell.pack();
-	shell.open();
-	Display display = shell.getDisplay();
-	while(!shell.isDisposed()){
-		if(!display.readAndDispatch())
-			display.sleep();
-	}
-	
-	return getValues();
-}
-public void setLabels(String[] labels) {
-	this.labels = labels;
-}
-public void setTitle(String title) {
-	shell.setText(title);
-}
-/**
- * Sets the values of the <code>Text</code> widgets of the dialog to
- * the values supplied in the parameter array.
- *
- * @param	itemInfo	String[]
- * 						The values to which the dialog contents will be set.
- */
-public void setValues(String[] itemInfo) {
-	if (labels == null) return;
-	
-	if (values == null)
-		values = new String[labels.length];
-
-	int numItems = Math.min(values.length, itemInfo.length);
-	for(int i = 0; i < numItems; i++) {
-		values[i] = itemInfo[i];
-	}	
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java
deleted file mode 100755
index 12ad2d7..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.addressbook;
-
-
-public interface FindListener {
-
-public boolean find();
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java
deleted file mode 100755
index 0c42630..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.addressbook;
-
-
-/* Imports */
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-import java.util.ResourceBundle;
-
-/**
- * SearchDialog is a simple class that uses <code>org.eclipse.swt</code> 
- * libraries to implement a basic search dialog.
- */
-public class SearchDialog {
-
-	private static ResourceBundle resAddressBook = ResourceBundle.getBundle("examples_addressbook");
-
-	Shell shell;
-	Text searchText;
-	Combo searchArea;
-	Label searchAreaLabel;
-	Button matchCase;
-	Button matchWord;
-	Button findButton;
-	Button down;
-	FindListener findHandler;
-
-/**
- * Class constructor that sets the parent shell and the table widget that
- * the dialog will search.
- *
- * @param parent	Shell 
- *			The shell that is the parent of the dialog.
- */
-public SearchDialog(Shell parent) {
-	shell = new Shell(parent, SWT.CLOSE | SWT.BORDER | SWT.TITLE);
-	GridLayout layout = new GridLayout();
-	layout.numColumns = 2;
-	shell.setLayout(layout);
-	shell.setText(resAddressBook.getString("Search_dialog_title"));
-	shell.addShellListener(new ShellAdapter(){
-		public void shellClosed(ShellEvent e) {
-			// don't dispose of the shell, just hide it for later use
-			e.doit = false;
-			shell.setVisible(false);
-		}
-	});
-		
-	Label label = new Label(shell, SWT.LEFT);
-	label.setText(resAddressBook.getString("Dialog_find_what"));	
-	searchText = new Text(shell, SWT.BORDER);
-	GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-	gridData.widthHint = 200;
-	searchText.setLayoutData(gridData);
-	searchText.addModifyListener(new ModifyListener() {
-		public void modifyText(ModifyEvent e) {
-			boolean enableFind = (searchText.getCharCount() != 0);
-			findButton.setEnabled(enableFind);
-		}
-	});
-
-	searchAreaLabel = new Label(shell, SWT.LEFT);
-	searchArea = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY);
-	gridData = new GridData(GridData.FILL_HORIZONTAL);
-	gridData.widthHint = 200;
-	searchArea.setLayoutData(gridData);
-	
-	matchCase = new Button(shell, SWT.CHECK);
-	matchCase.setText(resAddressBook.getString("Dialog_match_case"));
-	gridData = new GridData();
-	gridData.horizontalSpan = 2;
-	matchCase.setLayoutData(gridData);
-	
-	matchWord = new Button(shell, SWT.CHECK);
-	matchWord.setText(resAddressBook.getString("Dialog_match_word"));
-	gridData = new GridData();
-	gridData.horizontalSpan = 2;
-	matchWord.setLayoutData(gridData);
-	
-	Group direction = new Group(shell, SWT.NONE);
-	gridData = new GridData();
-	gridData.horizontalSpan = 2;
-	direction.setLayoutData(gridData);
-	direction.setLayout (new FillLayout ());	
-	direction.setText(resAddressBook.getString("Dialog_direction"));
-	
-	Button up = new Button(direction, SWT.RADIO);
-	up.setText(resAddressBook.getString("Dialog_dir_up"));
-	up.setSelection(false);
-		
-	down = new Button(direction, SWT.RADIO);
-	down.setText(resAddressBook.getString("Dialog_dir_down"));
-	down.setSelection(true);
-
-	Composite composite = new Composite(shell, SWT.NONE);
-	gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-	gridData.horizontalSpan = 2;
-	composite.setLayoutData(gridData);
-	layout = new GridLayout();
-	layout.numColumns = 2;
-	layout.makeColumnsEqualWidth = true;
-	composite.setLayout(layout);
-	
-	findButton = new Button(composite, SWT.PUSH);
-	findButton.setText(resAddressBook.getString("Dialog_find"));
-	findButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-	findButton.setEnabled(false);
-	findButton.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			if (!findHandler.find()){
-				MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK | SWT.PRIMARY_MODAL);
-				box.setText(shell.getText());
-				box.setMessage(resAddressBook.getString("Cannot_find") + "\"" + searchText.getText() + "\"");
-				box.open();	
-			}		
-		}
-	});
-			
-	Button cancelButton = new Button(composite, SWT.PUSH);
-	cancelButton.setText(resAddressBook.getString("Cancel"));
-	cancelButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
-	cancelButton.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			shell.setVisible(false);
-		}
-	});
-	
-	shell.pack();
-}
-public String getSearchAreaLabel(String label) {
-	return searchAreaLabel.getText();
-}
-
-public String[] getsearchAreaNames() {
-	return searchArea.getItems();
-}
-public boolean getMatchCase() {
-	return matchCase.getSelection();
-}
-public boolean getMatchWord() {
-	return matchWord.getSelection();
-}
-public String getSearchString() {
-	return searchText.getText();
-}
-public boolean getSearchDown(){
-	return down.getSelection();
-}
-public int getSelectedSearchArea() {
-	return searchArea.getSelectionIndex();
-}
-public void open() {
-	if (shell.isVisible()) {
-		shell.setFocus();
-	} else {
-		shell.open();
-	}
-	searchText.setFocus();
-}
-public void setSearchAreaNames(String[] names) {
-	for (int i = 0; i < names.length; i++) {
-		searchArea.add(names[i]);
-	}
-	searchArea.select(0);
-}
-public void setSearchAreaLabel(String label) {
-	searchAreaLabel.setText(label);
-}
-public void setMatchCase(boolean match) {
-	matchCase.setSelection(match);
-}
-public void setMatchWord(boolean match) {
-	matchWord.setSelection(match);
-}
-public void setSearchDown(boolean searchDown){
-	down.setSelection(searchDown);
-}
-public void setSearchString(String searchString) {
-	searchText.setText(searchString);
-}
-
-public void setSelectedSearchArea(int index) {
-	searchArea.select(index);
-}
-public void addFindListener(FindListener listener) {
-	this.findHandler = listener;	
-}
-public void removeFindListener(FindListener listener) {
-	this.findHandler = null;
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java
deleted file mode 100644
index d7e9086..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.clipboard;
- 
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-public class ClipboardExample {
-
-	Clipboard clipboard;
-	Shell shell;
-	Text copyText;
-	Text pasteText;
-	Text copyRtfText;
-	Text pasteRtfText;
-	Table copyFileTable;
-	Table pasteFileTable;
-	Text text;
-	Combo combo;
-	StyledText styledText;
-	Label status;
-	static final int SIZE = 60;
-	
-public static void main( String[] args) {
-	Display display = new Display();
-	new ClipboardExample().open(display);
-	display.dispose();
-}
-public void open(Display display) {
-	clipboard = new Clipboard(display);
-	shell = new Shell (display);
-	shell.setText("SWT Clipboard");
-	shell.setLayout(new GridLayout(2, true));
-	
-	Group copyGroup = new Group(shell, SWT.NONE);
-	copyGroup.setText("Copy From:");
-	GridData data = new GridData(GridData.FILL_BOTH);
-	copyGroup.setLayoutData(data);
-	copyGroup.setLayout(new GridLayout(3, false));
-	
-	Group pasteGroup = new Group(shell, SWT.NONE);
-	pasteGroup.setText("Paste To:");
-	data = new GridData(GridData.FILL_BOTH);
-	pasteGroup.setLayoutData(data);
-	pasteGroup.setLayout(new GridLayout(3, false));
-	
-	Group controlGroup = new Group(shell, SWT.NONE);
-	controlGroup.setText("Control API:");
-	data = new GridData(GridData.FILL_BOTH);
-	data.horizontalSpan = 2;
-	controlGroup.setLayoutData(data);
-	controlGroup.setLayout(new GridLayout(5, false));
-	
-	Group typesGroup = new Group(shell, SWT.NONE);
-	typesGroup.setText("Available Types");
-	data = new GridData(GridData.FILL_BOTH);
-	data.horizontalSpan = 2;
-	typesGroup.setLayoutData(data);
-	typesGroup.setLayout(new GridLayout(2, false));
-	
-	status = new Label(shell, SWT.BORDER);
-	data = new GridData(GridData.FILL_HORIZONTAL);
-	data.horizontalSpan = 2;
-	data.heightHint = 60;
-	status.setLayoutData(data);
-	
-	createTextTransfer(copyGroup, pasteGroup);
-	createRTFTransfer(copyGroup, pasteGroup);
-	createFileTransfer(copyGroup, pasteGroup);
-	createMyTransfer(copyGroup, pasteGroup);
-	createControlTransfer(controlGroup);
-	createAvailableTypes(typesGroup);
-	
-	shell.pack();
-	shell.open();
-	while (!shell.isDisposed ()) {
-		if (!display.readAndDispatch ()) display.sleep ();
-	}
-	clipboard.dispose();
-}
-void createTextTransfer(Composite copyParent, Composite pasteParent) {
-	
-	// TextTransfer
-	Label l = new Label(copyParent, SWT.NONE);
-	l.setText("TextTransfer:"); //$NON-NLS-1$
-	copyText = new Text(copyParent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
-	copyText.setText("some\nplain\ntext");
-	GridData data = new GridData(GridData.FILL_HORIZONTAL);
-	data.heightHint = data.widthHint = SIZE;
-	copyText.setLayoutData(data);
-	Button b = new Button(copyParent, SWT.PUSH);
-	b.setText("Copy");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			String data = copyText.getText();
-			if (data.length() > 0) {
-				status.setText("");
-				clipboard.setContents(new Object[] {data}, new Transfer[] {TextTransfer.getInstance()});
-			} else {
-				status.setText("nothing to copy");
-			}
-		}
-	});
-	
-	l = new Label(pasteParent, SWT.NONE);
-	l.setText("TextTransfer:"); //$NON-NLS-1$
-	pasteText = new Text(pasteParent, SWT.READ_ONLY | SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
-	data = new GridData(GridData.FILL_HORIZONTAL);
-	data.heightHint = data.widthHint = SIZE;
-	pasteText.setLayoutData(data);
-	b = new Button(pasteParent, SWT.PUSH);
-	b.setText("Paste");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			String data = (String)clipboard.getContents(TextTransfer.getInstance());
-			if (data != null && data.length() > 0) {
-				status.setText("");
-				pasteText.setText("begin paste>"+data+"<end paste");
-			} else {
-				status.setText("nothing to paste");
-			}
-		}
-	});
-}
-void createRTFTransfer(Composite copyParent, Composite pasteParent){
-	//	RTF Transfer
-	Label l = new Label(copyParent, SWT.NONE);
-	l.setText("RTFTransfer:"); //$NON-NLS-1$
-	copyRtfText = new Text(copyParent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
-	copyRtfText.setText("some\nrtf\ntext");
-	GridData data = new GridData(GridData.FILL_HORIZONTAL);
-	data.heightHint = data.widthHint = SIZE;
-	copyRtfText.setLayoutData(data);
-	Button b = new Button(copyParent, SWT.PUSH);
-	b.setText("Copy");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			String data = copyRtfText.getText();
-			if (data.length() > 0) {
-				status.setText("");
-				data = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\uc1\\b\\i " + data + "}";
-				clipboard.setContents(new Object[] {data}, new Transfer[] {RTFTransfer.getInstance()});
-			} else {
-				status.setText("nothing to copy");
-			}
-		}
-	});
-	  
-	l = new Label(pasteParent, SWT.NONE);
-	l.setText("RTFTransfer:"); //$NON-NLS-1$
-	pasteRtfText = new Text(pasteParent, SWT.READ_ONLY | SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
-	data = new GridData(GridData.FILL_HORIZONTAL);
-	data.heightHint = data.widthHint = SIZE;
-	pasteRtfText.setLayoutData(data);
-	b = new Button(pasteParent, SWT.PUSH);
-	b.setText("Paste");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			String data = (String)clipboard.getContents(RTFTransfer.getInstance());
-			if (data != null && data.length() > 0) {
-				status.setText("");
-				pasteRtfText.setText("start paste>"+data+"<end paste");
-			} else {
-				status.setText("nothing to paste");
-			}
-		}
-	});
-}
-void createFileTransfer(Composite copyParent, Composite pasteParent){
-	//File Transfer
-	Label l = new Label(copyParent, SWT.NONE);
-	l.setText("FileTransfer:"); //$NON-NLS-1$
-	
-	Composite c = new Composite(copyParent, SWT.NONE);
-	c.setLayout(new GridLayout(2, false));
-	GridData data = new GridData(GridData.FILL_HORIZONTAL);
-	c.setLayoutData(data);
-	
-	copyFileTable = new Table(c, SWT.MULTI | SWT.BORDER);
-	data = new GridData(GridData.FILL_HORIZONTAL);
-	data.heightHint = data.widthHint = SIZE;
-	data.horizontalSpan = 2;
-	copyFileTable.setLayoutData(data);
-	
-	Button b = new Button(c, SWT.PUSH);
-	b.setText("Select file(s)");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			FileDialog dialog = new FileDialog(shell, SWT.OPEN | SWT.MULTI);
-			String result = dialog.open();
-			if (result != null && result.length() > 0){
-				//copyFileTable.removeAll();
-				String separator = System.getProperty("file.separator");
-				String path = dialog.getFilterPath();
-				String[] names = dialog.getFileNames();
-				for (int i = 0; i < names.length; i++) {
-					TableItem item = new TableItem(copyFileTable, SWT.NONE);
-					item.setText(path+separator+names[i]);
-				}
-			}
-		}
-	});
-	b = new Button(c, SWT.PUSH);
-	b.setText("Select directory");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			DirectoryDialog dialog = new DirectoryDialog(shell, SWT.OPEN);
-			String result = dialog.open();
-			if (result != null && result.length() > 0){
-				//copyFileTable.removeAll();
-				TableItem item = new TableItem(copyFileTable, SWT.NONE);
-				item.setText(result);
-			}
-		}
-	});
-	
-	b = new Button(copyParent, SWT.PUSH);
-	b.setText("Copy");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			TableItem[] items = copyFileTable.getItems();
-			if (items.length > 0){
-				status.setText("");
-				String[] data = new String[items.length];
-				for (int i = 0; i < data.length; i++) {
-					data[i] = items[i].getText();
-				}
-				clipboard.setContents(new Object[] {data}, new Transfer[] {FileTransfer.getInstance()});
-			} else {
-				status.setText("nothing to copy");
-			}
-		}
-	});
-	
-	l = new Label(pasteParent, SWT.NONE);
-	l.setText("FileTransfer:"); //$NON-NLS-1$
-	pasteFileTable = new Table(pasteParent, SWT.MULTI | SWT.BORDER);
-	data = new GridData(GridData.FILL_HORIZONTAL);
-	data.heightHint = data.widthHint = SIZE;
-	pasteFileTable.setLayoutData(data);
-	b = new Button(pasteParent, SWT.PUSH);
-	b.setText("Paste");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			String[] data = (String[])clipboard.getContents(FileTransfer.getInstance());
-			if (data != null && data.length > 0) {
-				status.setText("");
-				pasteFileTable.removeAll();
-				for (int i = 0; i < data.length; i++) {
-					TableItem item = new TableItem(pasteFileTable, SWT.NONE);
-					item.setText(data[i]);
-				}
-			} else {
-				status.setText("nothing to paste");
-			}
-		}
-	});	 
-}
-void createMyTransfer(Composite copyParent, Composite pasteParent){
-	//	MyType Transfer
-	// TODO
-}
-void createControlTransfer(Composite parent){
-	Label l = new Label(parent, SWT.NONE);
-	l.setText("Text:");
-	Button b = new Button(parent, SWT.PUSH);
-	b.setText("Cut");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			text.cut();
-		}
-	});
-	b = new Button(parent, SWT.PUSH);
-	b.setText("Copy");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			text.copy();
-		}
-	});
-	b = new Button(parent, SWT.PUSH);
-	b.setText("Paste");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			text.paste();
-		}
-	});
-	text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-	GridData data = new GridData(GridData.FILL_HORIZONTAL);
-	data.heightHint = data.widthHint = SIZE;
-	text.setLayoutData(data);
-	
-	l = new Label(parent, SWT.NONE);
-	l.setText("Combo:");
-	b = new Button(parent, SWT.PUSH);
-	b.setText("Cut");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			combo.cut();
-		}
-	});
-	b = new Button(parent, SWT.PUSH);
-	b.setText("Copy");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			combo.copy();
-		}
-	});
-	b = new Button(parent, SWT.PUSH);
-	b.setText("Paste");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			combo.paste();
-		}
-	});
-	combo = new Combo(parent, SWT.NONE);
-	combo.setItems(new String[] {"Item 1", "Item 2", "Item 3", "A longer Item"});
-	
-	l = new Label(parent, SWT.NONE);
-	l.setText("StyledText:");
-	l = new Label(parent, SWT.NONE);
-	l.setVisible(false);
-	b = new Button(parent, SWT.PUSH);
-	b.setText("Copy");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			styledText.copy();
-		}
-	});
-	b = new Button(parent, SWT.PUSH);
-	b.setText("Paste");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			styledText.paste();
-		}
-	});
-	styledText = new StyledText(parent, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-	data = new GridData(GridData.FILL_HORIZONTAL);
-	data.heightHint = data.widthHint = SIZE;
-	styledText.setLayoutData(data);
-}
-void createAvailableTypes(Composite parent){
-	final List list = new List(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-	GridData data = new GridData(GridData.FILL_BOTH);
-	data.heightHint = 100;
-	list.setLayoutData(data);
-	Button b = new Button(parent, SWT.PUSH);
-	b.setText("Get Available Types");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			list.removeAll();
-			String[] names = clipboard.getAvailableTypeNames();
-			for (int i = 0; i < names.length; i++) {
-				list.add(names[i]);
-			}
-		}
-	});
-}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java
deleted file mode 100644
index f1fb79a..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.swt.examples.clipboard;

-

-public class MyType {

-	String firstName;

-	String lastName;

-}

diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java
deleted file mode 100644
index 306a5de..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.swt.examples.clipboard;

-

-import java.io.*;

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

-

-public class MyTypeTransfer extends ByteArrayTransfer {

-	

-	private static final String MYTYPENAME = "name_list"; //$NON-NLS-1$

-	private static final int MYTYPEID = registerType(MYTYPENAME);

-	private static MyTypeTransfer _instance = new MyTypeTransfer();

-	

-public static MyTypeTransfer getInstance () {

-	return _instance;

-}

-public void javaToNative (Object object, TransferData transferData) {

-	if (object == null || !(object instanceof MyType[])) return;

-	

-	if (isSupportedType(transferData)) {

-		MyType[] myTypes = (MyType[]) object;	

-		try {

-			// write data to a byte array and then ask super to convert to pMedium

-			ByteArrayOutputStream out = new ByteArrayOutputStream();

-			DataOutputStream writeOut = new DataOutputStream(out);

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

-				byte[] buffer = myTypes[i].firstName.getBytes();

-				writeOut.writeInt(buffer.length);

-				writeOut.write(buffer);

-				buffer = myTypes[i].firstName.getBytes();

-				writeOut.writeInt(buffer.length);

-				writeOut.write(buffer);

-			}

-			byte[] buffer = out.toByteArray();

-			writeOut.close();

-

-			super.javaToNative(buffer, transferData);

-			

-		} catch (IOException e) {

-		}

-	}

-}

-public Object nativeToJava(TransferData transferData){	

-

-	if (isSupportedType(transferData)) {

-		

-		byte[] buffer = (byte[])super.nativeToJava(transferData);

-		if (buffer == null) return null;

-		

-		MyType[] myData = new MyType[0];

-		try {

-			ByteArrayInputStream in = new ByteArrayInputStream(buffer);

-			DataInputStream readIn = new DataInputStream(in);

-			while(readIn.available() > 20) {

-				MyType datum = new MyType();

-				int size = readIn.readInt();

-				byte[] name = new byte[size];

-				readIn.read(name);

-				datum.firstName = new String(name);

-				size = readIn.readInt();

-				name = new byte[size];

-				readIn.read(name);

-				datum.lastName = new String(name);

-				MyType[] newMyData = new MyType[myData.length + 1];

-				System.arraycopy(myData, 0, newMyData, 0, myData.length);

-				newMyData[myData.length] = datum;

-				myData = newMyData;

-			}

-			readIn.close();

-		} catch (IOException ex) {

-			return null;

-		}

-		return myData;

-	}

-

-	return null;

-}

-protected String[] getTypeNames(){

-	return new String[]{MYTYPENAME};

-}

-protected int[] getTypeIds(){

-	return new int[] {MYTYPEID};

-}

-}

diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java
deleted file mode 100755
index 271a9ca..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-/**
- * <code>AlignableTab</code> is the abstract
- * superclass of example controls that can be
- * aligned.
- */
-abstract class AlignableTab extends Tab {
-
-	/* Alignment Controls */
-	Button leftButton, rightButton, centerButton;
-
-	/* Alignment Group */
-	Group alignmentGroup;
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	AlignableTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Creates the "Control" group. 
-	 */
-	void createControlGroup () {
-		super.createControlGroup ();
-		
-		/* Create the group */
-		alignmentGroup = new Group (controlGroup, SWT.NONE);
-		alignmentGroup.setLayout (new GridLayout ());
-		alignmentGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL |
-			GridData.VERTICAL_ALIGN_FILL));
-		alignmentGroup.setText (ControlExample.getResourceString("Alignment"));
-	
-		/* Create the controls */
-		leftButton = new Button (alignmentGroup, SWT.RADIO);
-		leftButton.setText (ControlExample.getResourceString("Left"));
-		centerButton = new Button (alignmentGroup, SWT.RADIO);
-		centerButton.setText(ControlExample.getResourceString("Center"));
-		rightButton = new Button (alignmentGroup, SWT.RADIO);
-		rightButton.setText (ControlExample.getResourceString("Right"));
-	
-		/* Add the listeners */
-		SelectionListener selectionListener = new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent event) {
-				if (!((Button) event.widget).getSelection ()) return;
-				setExampleWidgetAlignment ();
-			};
-		};
-		leftButton.addSelectionListener (selectionListener);
-		centerButton.addSelectionListener (selectionListener);
-		rightButton.addSelectionListener (selectionListener);
-	}
-	
-	/**
-	 * Sets the alignment of the "Example" widgets.
-	 */
-	abstract void setExampleWidgetAlignment ();
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		Control [] controls = getExampleWidgets ();
-		if (controls.length != 0) {
-			leftButton.setSelection ((controls [0].getStyle () & SWT.LEFT) != 0);
-			centerButton.setSelection ((controls [0].getStyle () & SWT.CENTER) != 0);
-			rightButton.setSelection ((controls [0].getStyle () & SWT.RIGHT) != 0);
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java
deleted file mode 100755
index 344819d..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-/**
- * <code>ButtonTab</code> is the class that
- * demonstrates SWT buttons.
- */
-class ButtonTab extends AlignableTab {
-
-	/* Example widgets and groups that contain them */
-	Button button1, button2, button3, button4, button5, button6;
-	Group textButtonGroup, imageButtonGroup;
-
-	/* Alignment widgets added to the "Control" group */
-	Button upButton, downButton;
-
-	/* Style widgets added to the "Style" group */
-	Button pushButton, checkButton, radioButton, toggleButton, arrowButton, flatButton;
-	
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	ButtonTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the "Control" group. 
-	 */
-	void createControlGroup () {
-		super.createControlGroup ();
-	
-		/* Create the controls */
-		upButton = new Button (alignmentGroup, SWT.RADIO);
-		upButton.setText (ControlExample.getResourceString("Up"));
-		downButton = new Button (alignmentGroup, SWT.RADIO);
-		downButton.setText (ControlExample.getResourceString("Down"));
-	
-		/* Add the listeners */
-		SelectionListener selectionListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				if (!((Button) event.widget).getSelection()) return;
-				setExampleWidgetAlignment ();
-			};
-		};
-		upButton.addSelectionListener(selectionListener);
-		downButton.addSelectionListener(selectionListener);
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for text buttons */
-		textButtonGroup = new Group(exampleGroup, SWT.NONE);
-		GridLayout gridLayout = new GridLayout ();
-		textButtonGroup.setLayout(gridLayout);
-		gridLayout.numColumns = 3;
-		textButtonGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		textButtonGroup.setText (ControlExample.getResourceString("Text_Buttons"));
-	
-		/* Create a group for the image buttons */
-		imageButtonGroup = new Group(exampleGroup, SWT.NONE);
-		gridLayout = new GridLayout();
-		imageButtonGroup.setLayout(gridLayout);
-		gridLayout.numColumns = 3;
-		imageButtonGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		imageButtonGroup.setText (ControlExample.getResourceString("Image_Buttons"));
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-	
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (pushButton.getSelection()) style |= SWT.PUSH;
-		if (checkButton.getSelection()) style |= SWT.CHECK;
-		if (radioButton.getSelection()) style |= SWT.RADIO;
-		if (toggleButton.getSelection()) style |= SWT.TOGGLE;
-		if (flatButton.getSelection()) style |= SWT.FLAT;
-		if (borderButton.getSelection()) style |= SWT.BORDER;
-		if (leftButton.getSelection()) style |= SWT.LEFT;
-		if (rightButton.getSelection()) style |= SWT.RIGHT;
-		if (arrowButton.getSelection()) {
-			style |= SWT.ARROW; 
-			if (upButton.getSelection()) style |= SWT.UP;
-			if (downButton.getSelection()) style |= SWT.DOWN;
-		} else {
-			if (centerButton.getSelection()) style |= SWT.CENTER;			
-		}
-	
-		/* Create the example widgets */
-		button1 = new Button(textButtonGroup, style);
-		button1.setText(ControlExample.getResourceString("One"));
-		button2 = new Button(textButtonGroup, style);
-		button2.setText(ControlExample.getResourceString("Two"));
-		button3 = new Button(textButtonGroup, style);
-		button3.setText(ControlExample.getResourceString("Three"));
-		button4 = new Button(imageButtonGroup, style);
-		button4.setImage(instance.images[ControlExample.ciClosedFolder]);
-		button5 = new Button(imageButtonGroup, style);
-		button5.setImage(instance.images[ControlExample.ciOpenFolder]);
-		button6 = new Button(imageButtonGroup, style);
-		button6.setImage(instance.images[ControlExample.ciTarget]);
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup() {
-		super.createStyleGroup ();
-	
-		/* Create the extra widgets */
-		pushButton = new Button (styleGroup, SWT.RADIO);
-		pushButton.setText("SWT.PUSH");
-		checkButton = new Button (styleGroup, SWT.RADIO);
-		checkButton.setText ("SWT.CHECK");
-		radioButton = new Button (styleGroup, SWT.RADIO);
-		radioButton.setText ("SWT.RADIO");
-		toggleButton = new Button (styleGroup, SWT.RADIO);
-		toggleButton.setText ("SWT.TOGGLE");
-		arrowButton = new Button (styleGroup, SWT.RADIO);
-		arrowButton.setText ("SWT.ARROW");
-		flatButton = new Button (styleGroup, SWT.CHECK);
-		flatButton.setText ("SWT.FLAT");
-		borderButton = new Button (styleGroup, SWT.CHECK);
-		borderButton.setText ("SWT.BORDER");
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {button1, button2, button3, button4, button5, button6};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "Button";
-	}
-	
-	/**
-	 * Sets the alignment of the "Example" widgets.
-	 */
-	void setExampleWidgetAlignment () {
-		int alignment = 0;
-		if (leftButton.getSelection ()) alignment = SWT.LEFT;
-		if (centerButton.getSelection ()) alignment = SWT.CENTER;
-		if (rightButton.getSelection ()) alignment = SWT.RIGHT;
-		if (upButton.getSelection ()) alignment = SWT.UP;
-		if (downButton.getSelection ()) alignment = SWT.DOWN;
-		button1.setAlignment (alignment);
-		button2.setAlignment (alignment);
-		button3.setAlignment (alignment);
-		button4.setAlignment (alignment);
-		button5.setAlignment (alignment);
-		button6.setAlignment (alignment);
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		if (arrowButton.getSelection ()) {
-			upButton.setEnabled (true);
-			centerButton.setEnabled (false);
-			downButton.setEnabled (true);
-		} else {
-			upButton.setEnabled (false);
-			centerButton.setEnabled (true);
-			downButton.setEnabled (false);
-		}
-		upButton.setSelection ((button1.getStyle () & SWT.UP) != 0);
-		downButton.setSelection ((button1.getStyle () & SWT.DOWN) != 0);
-		pushButton.setSelection ((button1.getStyle () & SWT.PUSH) != 0);
-		checkButton.setSelection ((button1.getStyle () & SWT.CHECK) != 0);
-		radioButton.setSelection ((button1.getStyle () & SWT.RADIO) != 0);
-		toggleButton.setSelection ((button1.getStyle () & SWT.TOGGLE) != 0);
-		arrowButton.setSelection ((button1.getStyle () & SWT.ARROW) != 0);
-		flatButton.setSelection ((button1.getStyle () & SWT.FLAT) != 0);
-		borderButton.setSelection ((button1.getStyle () & SWT.BORDER) != 0);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CComboTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CComboTab.java
deleted file mode 100644
index ec91d48..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CComboTab.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.layout.*;
-
-class CComboTab extends Tab {
-
-	/* Example widgets and groups that contain them */
-	CCombo combo1;
-	Group comboGroup;
-	
-	/* Style widgets added to the "Style" group */
-	Button flatButton, readOnlyButton;
-	
-	static String [] ListData = {ControlExample.getResourceString("ListData0_0"),
-								 ControlExample.getResourceString("ListData0_1"),
-								 ControlExample.getResourceString("ListData0_2"),
-								 ControlExample.getResourceString("ListData0_3"),
-								 ControlExample.getResourceString("ListData0_4"),
-								 ControlExample.getResourceString("ListData0_5"),
-								 ControlExample.getResourceString("ListData0_6"),
-								 ControlExample.getResourceString("ListData0_7"),
-								 ControlExample.getResourceString("ListData0_8")};
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	CComboTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the combo box */
-		comboGroup = new Group (exampleGroup, SWT.NONE);
-		comboGroup.setLayout (new GridLayout ());
-		comboGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		comboGroup.setText (ControlExample.getResourceString("Custom_Combo"));
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (flatButton.getSelection ()) style |= SWT.FLAT;
-		if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY;
-		if (borderButton.getSelection ()) style |= SWT.BORDER;
-		
-		/* Create the example widgets */
-		combo1 = new CCombo (comboGroup, style);
-		combo1.setItems (ListData);
-		if (ListData.length >= 3) {
-			combo1.setText(ListData [2]);
-		}
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup () {
-		super.createStyleGroup ();
-	
-		/* Create the extra widgets */
-		readOnlyButton = new Button (styleGroup, SWT.CHECK);
-		readOnlyButton.setText ("SWT.READ_ONLY");
-		borderButton = new Button (styleGroup, SWT.CHECK);
-		borderButton.setText ("SWT.BORDER");
-		flatButton = new Button (styleGroup, SWT.CHECK);
-		flatButton.setText ("SWT.FLAT");
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {combo1};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "CCombo";
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		flatButton.setSelection ((combo1.getStyle () & SWT.FLAT) != 0);
-		readOnlyButton.setSelection ((combo1.getStyle () & SWT.READ_ONLY) != 0);
-		borderButton.setSelection ((combo1.getStyle () & SWT.BORDER) != 0);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java
deleted file mode 100644
index 55eacdc..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class CLabelTab extends AlignableTab {
-	/* Example widgets and groups that contain them */
-	CLabel label1, label2, label3;
-	Group textLabelGroup;
-
-	/* Style widgets added to the "Style" group */
-	Button shadowInButton, shadowOutButton, shadowNoneButton;
-	
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	CLabelTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the text labels */
-		textLabelGroup = new Group(exampleGroup, SWT.NONE);
-		GridLayout gridLayout = new GridLayout ();
-		textLabelGroup.setLayout (gridLayout);
-		gridLayout.numColumns = 3;
-		textLabelGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		textLabelGroup.setText (ControlExample.getResourceString("Custom_Labels"));
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (shadowInButton.getSelection ()) style |= SWT.SHADOW_IN;
-		if (shadowNoneButton.getSelection ()) style |= SWT.SHADOW_NONE;
-		if (shadowOutButton.getSelection ()) style |= SWT.SHADOW_OUT;
-	
-		/* Create the example widgets */
-		label1 = new CLabel (textLabelGroup, style);
-		label1.setText(ControlExample.getResourceString("One"));
-		label1.setImage (instance.images[ControlExample.ciClosedFolder]);
-		label2 = new CLabel (textLabelGroup, style);
-		label2.setImage (instance.images[ControlExample.ciTarget]);
-		label3 = new CLabel (textLabelGroup, style);
-		label3.setText(ControlExample.getResourceString("Three"));
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup() {
-		super.createStyleGroup ();
-		
-		/* Create the extra widgets */
-		shadowNoneButton = new Button (styleGroup, SWT.RADIO);
-		shadowNoneButton.setText ("SWT.SHADOW_NONE");
-		shadowInButton = new Button (styleGroup, SWT.RADIO);
-		shadowInButton.setText ("SWT.SHADOW_IN");
-		shadowOutButton = new Button (styleGroup, SWT.RADIO);
-		shadowOutButton.setText ("SWT.SHADOW_OUT");
-	
-		/* Add the listeners */
-		SelectionListener selectionListener = new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent event) {
-				if ((event.widget.getStyle() & SWT.RADIO) != 0) {
-					if (!((Button) event.widget).getSelection ()) return;
-				}
-				recreateExampleWidgets ();
-			};
-		};
-		shadowInButton.addSelectionListener (selectionListener);
-		shadowOutButton.addSelectionListener (selectionListener);
-		shadowNoneButton.addSelectionListener (selectionListener);
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {label1, label2, label3};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "CLabel";
-	}
-	
-	/**
-	 * Sets the alignment of the "Example" widgets.
-	 */
-	void setExampleWidgetAlignment () {
-		int alignment = 0;
-		if (leftButton.getSelection ()) alignment = SWT.LEFT;
-		if (centerButton.getSelection ()) alignment = SWT.CENTER;
-		if (rightButton.getSelection ()) alignment = SWT.RIGHT;
-		label1.setAlignment (alignment);
-		label2.setAlignment (alignment);
-		label3.setAlignment (alignment);
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		leftButton.setSelection ((label1.getStyle () & SWT.LEFT) != 0);
-		centerButton.setSelection ((label1.getStyle () & SWT.CENTER) != 0);
-		rightButton.setSelection ((label1.getStyle () & SWT.RIGHT) != 0);
-		shadowInButton.setSelection ((label1.getStyle () & SWT.SHADOW_IN) != 0);
-		shadowOutButton.setSelection ((label1.getStyle () & SWT.SHADOW_OUT) != 0);
-		shadowNoneButton.setSelection ((label1.getStyle () & (SWT.SHADOW_IN | SWT.SHADOW_OUT)) == 0);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java
deleted file mode 100644
index ef700bc..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class CTabFolderTab extends Tab {
-	int lastSelectedTab = 0;
-	
-	/* Example widgets and groups that contain them */
-	CTabFolder tabFolder1;
-	Group tabFolderGroup;
-	
-	/* Style widgets added to the "Style" group */
-	Button topButton, bottomButton, borderButton, flatButton;
-
-	static String [] CTabItems1 = {ControlExample.getResourceString("CTabItem1_0"),
-								  ControlExample.getResourceString("CTabItem1_1"),
-								  ControlExample.getResourceString("CTabItem1_2")};
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	CTabFolderTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the CTabFolder */
-		tabFolderGroup = new Group (exampleGroup, SWT.NONE);
-		tabFolderGroup.setLayout (new GridLayout ());
-		tabFolderGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		tabFolderGroup.setText ("CTabFolder");
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (topButton.getSelection ()) style |= SWT.TOP;
-		if (bottomButton.getSelection ()) style |= SWT.BOTTOM;
-		if (borderButton.getSelection ()) style |= SWT.BORDER;
-		if (flatButton.getSelection ()) style |= SWT.FLAT;
-
-		/* Create the example widgets */
-		tabFolder1 = new CTabFolder (tabFolderGroup, style);
-		for (int i = 0; i < CTabItems1.length; i++) {
-			CTabItem item = new CTabItem(tabFolder1, SWT.NONE);
-			item.setText(CTabItems1[i]);
-			Label label = new Label(tabFolder1,SWT.NONE);
-			label.setText(ControlExample.getResourceString("CTabItem_content" + ": " + i));
-			item.setControl(label);
-		}
-		tabFolder1.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				lastSelectedTab = tabFolder1.getSelectionIndex();
-			}
-		});
-		tabFolder1.setSelection(lastSelectedTab);
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup() {
-		super.createStyleGroup ();
-		
-		/* Create the extra widgets */
-		topButton = new Button (styleGroup, SWT.RADIO);
-		topButton.setText ("SWT.TOP");
-		topButton.setSelection(true);
-		bottomButton = new Button (styleGroup, SWT.RADIO);
-		bottomButton.setText ("SWT.BOTTOM");
-		borderButton = new Button (styleGroup, SWT.CHECK);
-		borderButton.setText ("SWT.BORDER");
-		flatButton = new Button (styleGroup, SWT.CHECK);
-		flatButton.setText ("SWT.FLAT");
-		flatButton.setEnabled(false);
-	
-		/* Add the listeners */
-		SelectionListener selectionListener = new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent event) {
-				if ((event.widget.getStyle() & SWT.RADIO) != 0) {
-					if (!((Button) event.widget).getSelection ()) return;
-				}
-				recreateExampleWidgets ();
-			};
-		};
-		topButton.addSelectionListener (selectionListener);
-		bottomButton.addSelectionListener (selectionListener);
-		borderButton.addSelectionListener (selectionListener);
-		flatButton.addSelectionListener (selectionListener);
-		borderButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				flatButton.setEnabled(borderButton.getSelection());
-			}
-		});
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {tabFolder1};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "CTabFolder";
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java
deleted file mode 100755
index 1838200..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class ComboTab extends Tab {
-
-	/* Example widgets and groups that contain them */
-	Combo combo1;
-	Group comboGroup;
-	
-	/* Style widgets added to the "Style" group */
-	Button dropDownButton, readOnlyButton, simpleButton;
-	
-	static String [] ListData = {ControlExample.getResourceString("ListData0_0"),
-								 ControlExample.getResourceString("ListData0_1"),
-								 ControlExample.getResourceString("ListData0_2"),
-								 ControlExample.getResourceString("ListData0_3"),
-								 ControlExample.getResourceString("ListData0_4"),
-								 ControlExample.getResourceString("ListData0_5"),
-								 ControlExample.getResourceString("ListData0_6"),
-								 ControlExample.getResourceString("ListData0_7"),
-								 ControlExample.getResourceString("ListData0_8")};
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	ComboTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the combo box */
-		comboGroup = new Group (exampleGroup, SWT.NONE);
-		comboGroup.setLayout (new GridLayout ());
-		comboGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		comboGroup.setText ("Combo");
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (dropDownButton.getSelection ()) style |= SWT.DROP_DOWN;
-		if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY;
-		if (simpleButton.getSelection ()) style |= SWT.SIMPLE;
-		
-		/* Create the example widgets */
-		combo1 = new Combo (comboGroup, style);
-		combo1.setItems (ListData);
-		if (ListData.length >= 3) {
-			combo1.setText(ListData [2]);
-		}
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup () {
-		super.createStyleGroup ();
-	
-		/* Create the extra widgets */
-		dropDownButton = new Button (styleGroup, SWT.RADIO);
-		dropDownButton.setText ("SWT.DROP_DOWN");
-		simpleButton = new Button (styleGroup, SWT.RADIO);
-		simpleButton.setText("SWT.SIMPLE");
-		readOnlyButton = new Button (styleGroup, SWT.CHECK);
-		readOnlyButton.setText ("SWT.READ_ONLY");
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {combo1};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "Combo";
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		dropDownButton.setSelection ((combo1.getStyle () & SWT.DROP_DOWN) != 0);
-		simpleButton.setSelection ((combo1.getStyle () & SWT.SIMPLE) != 0);
-		readOnlyButton.setSelection ((combo1.getStyle () & SWT.READ_ONLY) != 0);
-		readOnlyButton.setEnabled(!simpleButton.getSelection());
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java
deleted file mode 100755
index e5a1bb5..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import java.text.*;
-import java.util.*;
-
-public class ControlExample {
-	private static ResourceBundle resourceBundle =
-		ResourceBundle.getBundle("examples_control");
-	private ShellTab shellTab;
-	private SashForm form;
-	private TabFolder tabFolder;
-	private Text eventConsole;
-	private boolean logging = false;
-	private boolean [] eventsFilter = new boolean [35];
-	static boolean standAlone = false;
-	Image images[];
-
-	static final int ciClosedFolder = 0, ciOpenFolder = 1, ciTarget = 2;
-	static final String[] imageLocations = {
-		"closedFolder.gif",
-		"openFolder.gif",
-		"target.gif" };
-	static final String [] EVENT_TYPES = { "",
-		"KeyDown", "KeyUp", "MouseDown", "MouseUp", "MouseMove", "MouseEnter",		
-		"MouseExit", "MouseDoubleClick", "Paint", "Move", "Resize", "Dispose",
-		"Selection", "DefaultSelection", "FocusIn", "FocusOut", "Expand", "Collapse",
-		"Iconify", "Deiconify", "Close", "Show", "Hide", "Modify",
-		"Verify", "Activate", "Deactivate", "Help", "DragDetect", "Arm",
-		"Traverse", "MouseHover", "HardKeyDown", "HardKeyUp"
-	};
-	static final int [] DEFAULT_FILTER = {
-		SWT.KeyDown, SWT.KeyUp, SWT.MouseDown, SWT.MouseUp, SWT.MouseDoubleClick, SWT.Selection,
-		SWT.DefaultSelection, SWT.Expand, SWT.Collapse, SWT.Iconify, SWT.Deiconify, SWT.Close,
-		SWT.Show, SWT.Hide, SWT.Modify, SWT.Verify, SWT.Activate, SWT.Deactivate,
-		SWT.Help, SWT.DragDetect, SWT.Arm, SWT.Traverse, SWT.HardKeyDown, SWT.HardKeyUp
-	};
-
-	/**
-	 * Creates an instance of a ControlExample embedded inside
-	 * the supplied parent Composite.
-	 * 
-	 * @param parent the container of the example
-	 */
-	public ControlExample(Composite parent) {
-		initResources();
-		form = new SashForm (parent,SWT.VERTICAL);
-		tabFolder = new TabFolder (form, SWT.NONE);
-		Tab [] tabs = createTabs();
-		for (int i=0; i<tabs.length; i++) {
-			TabItem item = new TabItem (tabFolder, SWT.NONE);
-		    item.setText (tabs [i].getTabText ());
-		    item.setControl (tabs [i].createTabFolderPage (tabFolder));
-		    item.setData (tabs [i]);
-		}
-		if (standAlone) {
-			createControlExampleMenu (parent.getShell ());
-			eventConsole = new Text(form, SWT.MULTI | SWT.V_SCROLL);
-			form.setWeights(new int[] {100, 0});
-			createEventConsolePopup (eventConsole);
-			for (int i = 0; i < DEFAULT_FILTER.length; i++) {
-				eventsFilter [DEFAULT_FILTER [i]] = true;
-			}
-		}
-	}
-
-	/**
-	 * Hide the event logger.
-	 */
-	void closeEventConsole() {
-		logging = false;
-		form.setWeights(new int[] {100, 0});
-		eventConsole.setEnabled (false);
-		TabItem[] tabs = tabFolder.getItems ();
-		for (int i = 0; i < tabs.length; i++) {
-			Tab tab = (Tab) tabs[i].getData ();
-			tab.recreateExampleWidgets ();
-		}
-	}
-
-	/**
-	 * Create the menubar
-	 */
-	void createControlExampleMenu(final Shell shell) {
-		Menu bar = new Menu (shell, SWT.BAR);
-		MenuItem consoleItem = new MenuItem (bar, SWT.CASCADE);
-		consoleItem.setText (ControlExample.getResourceString("Menu_Controls"));
-		shell.setMenuBar (bar);
-		Menu dropDown = new Menu (bar);
-		consoleItem.setMenu (dropDown);
-
-		final MenuItem showEvents = new MenuItem (dropDown, SWT.CHECK);
-		showEvents.setText (ControlExample.getResourceString("MenuItem_Log"));
-		showEvents.addListener (SWT.Selection, new Listener () {
-			public void handleEvent (Event e) {
-				if (showEvents.getSelection()) {
-					openEventConsole (shell);
-				} else {
-					closeEventConsole ();
-				}
-			}
-		});
-		
-		final MenuItem exit = new MenuItem (dropDown, SWT.NONE);
-		exit.setText (ControlExample.getResourceString("MenuItem_Exit"));
-		exit.addListener (SWT.Selection, new Listener () {
-			public void handleEvent (Event e) {
-				shell.dispose();
-			}
-		});
-	}
-
-	/**
-	 * Create the menubar
-	 */
-	void createEventConsolePopup (final Text console) {
-		Menu popup = new Menu (console.getShell (), SWT.POP_UP);
-		console.setMenu (popup);
-
-		MenuItem copy = new MenuItem (popup, SWT.PUSH);
-		copy.setAccelerator(SWT.MOD1 + 'C');
-		copy.setText (ControlExample.getResourceString("MenuItem_Copy") + "\tCtrl+C");
-		copy.addListener (SWT.Selection, new Listener () {
-			public void handleEvent (Event event) {
-				console.copy ();
-			}
-		});
-		MenuItem selectAll = new MenuItem (popup, SWT.PUSH);
-		selectAll.setAccelerator(SWT.MOD1 + 'A');
-		selectAll.setText(ControlExample.getResourceString("MenuItem_SelectAll"));
-		selectAll.addListener (SWT.Selection, new Listener () {
-			public void handleEvent (Event event) {
-				console.selectAll ();
-			}
-		});
-		MenuItem clear = new MenuItem (popup, SWT.PUSH);
-		clear.setText (ControlExample.getResourceString("MenuItem_Clear"));
-		clear.addListener (SWT.Selection, new Listener () {
-			public void handleEvent (Event event) {
-				console.setText ("");
-			}
-		});
-	}
-
-	/**
-	 * Answers the set of example Tabs
-	 */
-	Tab[] createTabs() {
-		return new Tab [] {
-			new ButtonTab (this),
-			new ComboTab (this),
-			new CoolBarTab (this),
-			new DialogTab (this),
-			new LabelTab (this),
-			new ListTab (this),
-			new ProgressBarTab (this),
-			new SashTab (this),
-			shellTab = new ShellTab(this),
-			new SliderTab (this),
-			new TableTab (this),
-			new TextTab (this),
-			new ToolBarTab (this),
-			new TreeTab (this),
-		};
-	}
-
-	/**
-	 * Disposes of all resources associated with a particular
-	 * instance of the ControlExample.
-	 */	
-	public void dispose() {
-		/*
-		 * Destroy any shells that may have been created
-		 * by the Shells tab.  When a shell is disposed,
-		 * all child shells are also disposed.  Therefore
-		 * it is necessary to check for disposed shells
-		 * in the shells list to avoid disposing a shell
-		 * twice.
-		 */
-		if (shellTab != null) shellTab.closeAllShells ();
-		shellTab = null;
-		tabFolder = null;
-		freeResources();
-	}
-
-	/**
-	 * Frees the resources
-	 */
-	void freeResources() {
-		if (images != null) {
-			for (int i = 0; i < images.length; ++i) {
-				final Image image = images[i];
-				if (image != null) image.dispose();
-			}
-			images = null;
-		}
-	}
-	
-	/**
-	 * Gets a string from the resource bundle.
-	 * We don't want to crash because of a missing String.
-	 * Returns the key if not found.
-	 */
-	static String getResourceString(String key) {
-		try {
-			return resourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}			
-	}
-
-	/**
-	 * Gets a string from the resource bundle and binds it
-	 * with the given arguments. If the key is not found,
-	 * return the key.
-	 */
-	static String getResourceString(String key, Object[] args) {
-		try {
-			return MessageFormat.format(getResourceString(key), args);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}
-	}
-
-	/**
-	 * Loads the resources
-	 */
-	void initResources() {
-		final Class clazz = ControlExample.class;
-		if (resourceBundle != null) {
-			try {
-				if (images == null) {
-					images = new Image[imageLocations.length];
-					
-					for (int i = 0; i < imageLocations.length; ++i) {
-						ImageData source = new ImageData(clazz.getResourceAsStream(
-							imageLocations[i]));
-						ImageData mask = source.getTransparencyMask();
-						images[i] = new Image(null, source, mask);
-					}
-				}
-				return;
-			} catch (Throwable t) {
-			}
-		}
-		String error = (resourceBundle != null) ?
-			getResourceString("error.CouldNotLoadResources") :
-			"Unable to load resources";
-		freeResources();
-		throw new RuntimeException(error);
-	}
-
-	/**
-	 * Answers true if this example is currently logging all
-	 * events, and false otherwise.
-	 */
-	public boolean isLogging () {
-		return logging;
-	}
-	/**
-	 * Logs an event to the event console.
-	 */
-	void log(Event event) {
-		if (logging && eventsFilter [event.type]) {
-			StringBuffer output = new StringBuffer (EVENT_TYPES[event.type]);
-			output.append (": ");
-			output.append (event.widget.toString ());
-			output.append (" X: ");
-			output.append (event.x);
-			output.append (" Y: ");
-			output.append (event.y);
-			output.append ("\n");
-			eventConsole.append (output.toString ());
-		}
-	}
-	
-	/**
-	 * Invokes as a standalone program.
-	 */
-	public static void main(String[] args) {
-		standAlone = true;
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		ControlExample instance = new ControlExample(shell);
-		shell.setText(getResourceString("window.title"));
-		shell.open();
-		while (! shell.isDisposed()) {
-			if (! display.readAndDispatch()) display.sleep();
-		}
-		instance.dispose();
-	}
-	
-	/**
-	 * Open the event logger.
-	 */
-	void openEventConsole(Shell shell) {
-		logging = true;
-		form.setWeights(new int[] {80,20});
-		eventConsole.setEnabled (true);
-		TabItem[] tabs = tabFolder.getItems ();
-		for (int i = 0; i < tabs.length; i++) {
-			Tab tab = (Tab) tabs[i].getData ();
-			tab.recreateExampleWidgets ();
-		}
-	}
-	
-	/**
-	 * Grabs input focus.
-	 */
-	public void setFocus() {
-		tabFolder.setFocus();
-	}
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java
deleted file mode 100644
index 2b6d3d8..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java
+++ /dev/null
@@ -1,430 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
- 
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class CoolBarTab extends Tab {
-	Button dropDownButton, lockedButton;
-
-	/* Example widgets and group that contains them */
-	CoolBar coolBar;
-	CoolItem pushItem, dropDownItem, radioItem, checkItem;
-	Group coolBarGroup;
-	
-	Point[] sizes;
-	int[] wrapIndices;
-	int[] order;
-	
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	CoolBarTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the "Display" group.
-	 */
-	void createDisplayGroup () {
-		super.createDisplayGroup ();
-	
-		/* Create display controls specific to this example */
-		lockedButton = new Button (displayGroup, SWT.CHECK);
-		lockedButton.setText (ControlExample.getResourceString("Locked"));
-	
-		/* Add the listeners */
-		lockedButton.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setWidgetLocked ();
-			}
-		});
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		coolBarGroup = new Group (exampleGroup, SWT.NONE);
-		coolBarGroup.setLayout (new GridLayout ());
-		coolBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		coolBarGroup.setText ("CoolBar");
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		int style = 0, itemStyle = 0;
-
-		/* Compute the widget style */
-		int toolBarStyle = SWT.FLAT;
-		if (borderButton.getSelection()) style |= SWT.BORDER;
-		if (dropDownButton.getSelection()) itemStyle |= SWT.DROP_DOWN;
-	
-		/*
-		* Create the example widgets.
-		*/
-		coolBar = new CoolBar (coolBarGroup, style);
-		
-		/* create the push button toolbar */
-		ToolBar toolBar = new ToolBar (coolBar, toolBarStyle);
-		ToolItem item = new ToolItem (toolBar, SWT.PUSH);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText ("SWT.PUSH");
-		item = new ToolItem (toolBar, SWT.PUSH);
-		item.setImage (instance.images[ControlExample.ciOpenFolder]);
-		item.setToolTipText ("SWT.PUSH");
-		item = new ToolItem (toolBar, SWT.PUSH);
-		item.setImage (instance.images[ControlExample.ciTarget]);
-		item.setToolTipText ("SWT.PUSH");
-		item = new ToolItem (toolBar, SWT.SEPARATOR);
-		item = new ToolItem (toolBar, SWT.PUSH);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText ("SWT.PUSH");
-		item = new ToolItem (toolBar, SWT.PUSH);
-		item.setImage (instance.images[ControlExample.ciOpenFolder]);
-		item.setToolTipText ("SWT.PUSH");		
-		pushItem = new CoolItem (coolBar, itemStyle);
-		pushItem.setControl (toolBar);
-		Point pushSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		pushSize = pushItem.computeSize(pushSize.x, pushSize.y);
-		pushItem.setSize(pushSize);
-		pushItem.setMinimumSize(item.getWidth(), pushSize.y);
-        pushItem.addSelectionListener (new CoolItemSelectionListener());
-				
-		/* create the dropdown toolbar */
-		toolBar = new ToolBar (coolBar, toolBarStyle);
-		item = new ToolItem (toolBar, SWT.DROP_DOWN);
-		item.setImage (instance.images[ControlExample.ciOpenFolder]);
-		item.setToolTipText ("SWT.DROP_DOWN");
-		item.addSelectionListener (new DropDownSelectionListener());
-		item = new ToolItem (toolBar, SWT.DROP_DOWN);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText ("SWT.DROP_DOWN");
-		item.addSelectionListener (new DropDownSelectionListener());
-		dropDownItem = new CoolItem (coolBar, itemStyle);
-		dropDownItem.setControl (toolBar);
-		Point dropSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		dropSize = dropDownItem.computeSize(dropSize.x, dropSize.y);
-		dropDownItem.setSize(dropSize);
-		dropDownItem.setMinimumSize(item.getWidth(), dropSize.y);
-        dropDownItem.addSelectionListener (new CoolItemSelectionListener());
-				
-		/* create the radio button toolbar */
-		toolBar = new ToolBar (coolBar, toolBarStyle);
-		item = new ToolItem (toolBar, SWT.RADIO);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText ("SWT.RADIO");
-		item = new ToolItem (toolBar, SWT.RADIO);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText ("SWT.RADIO");
-		item = new ToolItem (toolBar, SWT.RADIO);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText ("SWT.RADIO");
-		radioItem = new CoolItem (coolBar, itemStyle);
-		radioItem.setControl (toolBar);
-		Point radioSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		radioSize = radioItem.computeSize(radioSize.x, radioSize.y);
-		radioItem.setSize(radioSize);
-		radioItem.setMinimumSize(item.getWidth(), radioSize.y);
-        radioItem.addSelectionListener (new CoolItemSelectionListener());
-		
-		/* create the check button toolbar */
-		toolBar = new ToolBar (coolBar, toolBarStyle);
-		item = new ToolItem (toolBar, SWT.CHECK);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText ("SWT.CHECK");
-		item = new ToolItem (toolBar, SWT.CHECK);
-		item.setImage (instance.images[ControlExample.ciTarget]);
-		item.setToolTipText ("SWT.CHECK");
-		item = new ToolItem (toolBar, SWT.CHECK);
-		item.setImage (instance.images[ControlExample.ciOpenFolder]);
-		item.setToolTipText ("SWT.CHECK");
-		item = new ToolItem (toolBar, SWT.CHECK);
-		item.setImage (instance.images[ControlExample.ciTarget]);
-		item.setToolTipText ("SWT.CHECK");
-		checkItem = new CoolItem (coolBar, itemStyle);
-		checkItem.setControl (toolBar);
-		Point checkSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		checkSize = checkItem.computeSize(checkSize.x, checkSize.y);
-		checkItem.setSize(checkSize);
-		checkItem.setMinimumSize(item.getWidth(), checkSize.y);
-        checkItem.addSelectionListener (new CoolItemSelectionListener());
-		
-		/* if we have saved state, restore it */
-		if (order != null) {
-			coolBar.setItemLayout(order, wrapIndices, sizes);
-			/* 
-			 * special case: because setItemLayout will restore the items
-			 * to the sizes the user left them at, the preferred size may not
-			 * be the same as the actual size. Thus we must explicitly set
-			 * the preferred sizes.
-			 */
-			pushItem.setPreferredSize(pushSize);
-			dropDownItem.setPreferredSize(dropSize);
-			radioItem.setPreferredSize(radioSize);
-			checkItem.setPreferredSize(checkSize);
-		}
-		else {
-			coolBar.setWrapIndices(new int[] {1, 3});
-		}
-		
-		/* add a listener to resize the group box to match the coolbar */
-		coolBar.addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event event) {
-				exampleGroup.layout();
-			}
-		});
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup() {
-		super.createStyleGroup();
-	
-		/* Create the extra widget */
-		borderButton = new Button (styleGroup, SWT.CHECK);
-		borderButton.setText ("SWT.BORDER");
-		Group itemGroup = new Group(styleGroup, SWT.NONE);
-		itemGroup.setLayout (new GridLayout ());
-		itemGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		itemGroup.setText(ControlExample.getResourceString("Item_Styles"));
-		dropDownButton = new Button (itemGroup, SWT.CHECK);
-		dropDownButton.setText ("SWT.DROP_DOWN");
-		dropDownButton.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				recreateExampleWidgets ();
-			}
-		});
-	}
-	
-	/**
-	 * Disposes the "Example" widgets.
-	 */
-	void disposeExampleWidgets () {
-		/* store the state of the toolbar if applicable */
-		if (coolBar != null) {
-			sizes = coolBar.getItemSizes();
-			wrapIndices = coolBar.getWrapIndices();
-			order = coolBar.getItemOrder();
-		}
-		super.disposeExampleWidgets();	
-	}
-
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {coolBar};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "CoolBar";
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		borderButton.setSelection ((coolBar.getStyle () & SWT.BORDER) != 0);
-		dropDownButton.setSelection ((coolBar.getItem(0).getStyle () & SWT.DROP_DOWN) != 0);
-		setWidgetLocked ();
-	}
-	
-	/**
-	 * Sets the header visible state of the "Example" widgets.
-	 */
-	void setWidgetLocked () {
-		coolBar.setLocked (lockedButton.getSelection ());
-	}
-	
-	/**
-	 * Listens to widgetSelected() events on SWT.DROP_DOWN type ToolItems
-	 * and opens/closes a menu when appropriate.
-	 */
-	class DropDownSelectionListener extends SelectionAdapter {
-		private Menu menu = null;
-		private boolean visible = false;
-		
-		public void widgetSelected(SelectionEvent event) {
-			// Create the menu if it has not already been created
-			if (menu == null) {
-				// Lazy create the menu.
-				Shell shell = tabFolderPage.getShell();
-				menu = new Menu(shell);
-				for (int i = 0; i < 9; ++i) {
-					final String text = ControlExample.getResourceString("DropDownData_" + i);
-					if (text.length() != 0) {
-						MenuItem menuItem = new MenuItem(menu, SWT.NONE);
-						menuItem.setText(text);
-						/*
-						 * Add a menu selection listener so that the menu is hidden
-						 * when the user selects an item from the drop down menu.
-						 */
-						menuItem.addSelectionListener(new SelectionAdapter() {
-							public void widgetSelected(SelectionEvent e) {
-								setMenuVisible(false);
-							}
-						});
-					} else {
-						new MenuItem(menu, SWT.SEPARATOR);
-					}
-				}
-			}
-			
-			/**
-			 * A selection event will be fired when a drop down tool
-			 * item is selected in the main area and in the drop
-			 * down arrow.  Examine the event detail to determine
-			 * where the widget was selected.
-			 */		
-			if (event.detail == SWT.ARROW) {
-				/*
-				 * The drop down arrow was selected.
-				 */
-				if (visible) {
-					// Hide the menu to give the Arrow the appearance of being a toggle button.
-					setMenuVisible(false);
-				} else {	
-					// Position the menu below and vertically aligned with the the drop down tool button.
-					final ToolItem toolItem = (ToolItem) event.widget;
-					final ToolBar  toolBar = toolItem.getParent();
-					
-					Rectangle toolItemBounds = toolItem.getBounds();
-					Point point = toolBar.toDisplay(new Point(toolItemBounds.x, toolItemBounds.y));
-					menu.setLocation(point.x, point.y + toolItemBounds.height);
-					setMenuVisible(true);
-				}
-			} else {
-				/*
-				 * Main area of drop down tool item selected.
-				 * An application would invoke the code to perform the action for the tool item.
-				 */
-			}
-		}
-		private void setMenuVisible(boolean visible) {
-			menu.setVisible(visible);
-			this.visible = visible;
-		}
-	}
-
-	/**
-	 * Listens to widgetSelected() events on SWT.DROP_DOWN type CoolItems
-	 * and opens/closes a menu when appropriate.
-	 */
-	class CoolItemSelectionListener extends SelectionAdapter {
-		private Menu menu = null;
-		
-		public void widgetSelected(SelectionEvent event) {
-			/**
-			 * A selection event will be fired when the cool item
-			 * is selected by its gripper or if the drop down arrow
-			 * (or 'chevron') is selected. Examine the event detail
-			 * to determine where the widget was selected.
-			 */
-			if (event.detail == SWT.ARROW) {
-				/* If the popup menu is already up (i.e. user pressed arrow twice),
-				 * then dispose it.
-				 */
-				if (menu != null) {
-					menu.dispose();
-					menu = null;
-					return;
-				}
-				
-				/* Get the cool item and convert its bounds to display coordinates. */
-				CoolItem coolItem = (CoolItem) event.widget;
-				Rectangle itemBounds = coolItem.getBounds ();
-				Point pt = coolBar.toDisplay(new Point (itemBounds.x, itemBounds.y));
-				itemBounds.x = pt.x;
-				itemBounds.y = pt.y;
-				
-				/* Get the toolbar from the cool item. */
-				ToolBar toolBar = (ToolBar) coolItem.getControl ();
-				ToolItem[] tools = toolBar.getItems ();
-				int toolCount = tools.length;
-								
-				/* Convert the bounds of each tool item to display coordinates,
-				 * and determine which ones are past the bounds of the cool item.
-				 */
-				int i = 0;
-				while (i < toolCount) {
-					Rectangle toolBounds = tools[i].getBounds ();
-					pt = toolBar.toDisplay(new Point(toolBounds.x, toolBounds.y));
-					toolBounds.x = pt.x;
-					toolBounds.y = pt.y;
-			  		Rectangle intersection = itemBounds.intersection (toolBounds);
-			  		if (!intersection.equals (toolBounds)) break;
-			  		i++;
-				}
-				
-				/* Create a pop-up menu with items for each of the hidden buttons. */
-				menu = new Menu (coolBar);
-				for (int j = i; j < toolCount; j++) {
-					ToolItem tool = tools[j];
-					Image image = tool.getImage();
-					if (image == null) {
-						new MenuItem (menu, SWT.SEPARATOR);
-					} else {
-						if ((tool.getStyle() & SWT.DROP_DOWN) != 0) {
-							MenuItem menuItem = new MenuItem (menu, SWT.CASCADE);
-							menuItem.setImage(image);
-							Menu m = new Menu(menu);
-							menuItem.setMenu(m);
-							for (int k = 0; k < 9; ++k) {
-								String text = ControlExample.getResourceString("DropDownData_" + k);
-								if (text.length() != 0) {
-									MenuItem mi = new MenuItem(m, SWT.NONE);
-									mi.setText(text);
-									/* Application code to perform the action for the submenu item would go here. */
-								} else {
-									new MenuItem(m, SWT.SEPARATOR);
-								}
-							}
-						} else {
-							MenuItem menuItem = new MenuItem (menu, SWT.NONE);
-							menuItem.setImage(image);
-						}
-						/* Application code to perform the action for the menu item would go here. */
-
-					}
-				}
-				
-				/* Display the pop-up menu at the lower left corner of the arrow button.
-				 * Dispose the menu when the user is done with it.
-				 */
-				pt = coolBar.toDisplay(new Point(event.x, event.y));
-				menu.setLocation (pt.x, pt.y);
-				menu.setVisible (true);
-				Display display = coolBar.getDisplay ();
-				while (menu != null && menu.isVisible ()) {
-					if (!display.readAndDispatch ()) display.sleep ();
-				}
-				if (menu != null) {
-					menu.dispose ();
-					menu = null;
-				}
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CustomControlExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CustomControlExample.java
deleted file mode 100644
index c5b6431..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CustomControlExample.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-
-public class CustomControlExample extends ControlExample {
-
-	/**
-	 * Creates an instance of a CustomControlExample embedded
-	 * inside the supplied parent Composite.
-	 * 
-	 * @param parent the container of the example
-	 */
-	public CustomControlExample(Composite parent) {
-		super (parent);
-	}
-	
-	/**
-	 * Answers the set of example Tabs
-	 */
-	Tab[] createTabs() {
-		return new Tab [] {
-			new CComboTab (this),
-			new CLabelTab (this),
-			new CTabFolderTab (this),
-			new SashFormTab (this),
-			new StyledTextTab (this),
-			new TableTreeTab (this),
-		};
-	}
-	
-	/**
-	 * Invokes as a standalone program.
-	 */
-	public static void main(String[] args) {
-		standAlone = true;
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		CustomControlExample instance = new CustomControlExample(shell);
-		shell.setText(getResourceString("custom.window.title"));
-		shell.open();
-		while (! shell.isDisposed()) {
-			if (! display.readAndDispatch()) display.sleep();
-		}
-		instance.dispose();
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java
deleted file mode 100755
index ea89bcf..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java
+++ /dev/null
@@ -1,458 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.printing.*;
-import org.eclipse.swt.events.*;
-
-class DialogTab extends Tab {
-	/* Example widgets and groups that contain them */
-	Group dialogStyleGroup, resultGroup;
-	Text textWidget;
-	
-	/* Style widgets added to the "Style" group */
-	Combo dialogCombo;
-	Button okButton, cancelButton;
-	Button yesButton, noButton;
-	Button retryButton;
-	Button abortButton, ignoreButton;
-	Button iconErrorButton, iconInformationButton, iconQuestionButton;
-	Button iconWarningButton, iconWorkingButton;
-	Button modelessButton, primaryModalButton, applicationModalButton, systemModalButton;
-	Button saveButton, openButton;
-
-	static String [] FilterExtensions	= {"*.txt", "*.bat", "*.doc"};
-	static String [] FilterNames		= {ControlExample.getResourceString("FilterName_0"),
-										   ControlExample.getResourceString("FilterName_1"),
-										   ControlExample.getResourceString("FilterName_2")};
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	DialogTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Handle a button style selection event.
-	 *
-	 * @param event the selection event
-	 */
-	void buttonStyleSelected(SelectionEvent event) {
-		/*
-		 * Only certain combinations of button styles are
-		 * supported for various dialogs.  Make sure the
-		 * control widget reflects only valid combinations.
-		 */
-		okButton.setEnabled (
-			!(yesButton.getSelection () || noButton.getSelection () || 
-				retryButton.getSelection () || abortButton.getSelection () ||
-					ignoreButton.getSelection ()));
-		cancelButton.setEnabled (
-			!(abortButton.getSelection () || ignoreButton.getSelection () ||
-				(yesButton.getSelection () != noButton.getSelection ())));
-		yesButton.setEnabled (
-			!(okButton.getSelection () || retryButton.getSelection () ||
-				abortButton.getSelection () || ignoreButton.getSelection () ||
-					(cancelButton.getSelection () && !yesButton.getSelection () && !noButton.getSelection ())));
-		noButton.setEnabled (
-			!(okButton.getSelection () || retryButton.getSelection () ||
-				abortButton.getSelection () || ignoreButton.getSelection () ||
-					(cancelButton.getSelection () && !yesButton.getSelection () && !noButton.getSelection ())));
-		retryButton.setEnabled (
-			!(okButton.getSelection() || yesButton.getSelection() || noButton.getSelection ()));
-		abortButton.setEnabled (
-			!(okButton.getSelection () || cancelButton.getSelection () ||
-				yesButton.getSelection () || noButton.getSelection ()));
-		ignoreButton.setEnabled (
-			!(okButton.getSelection () || cancelButton.getSelection () |
-				yesButton.getSelection () || noButton.getSelection ()));
-	}
-	
-	/**
-	 * Handle the create button selection event.
-	 *
-	 * @param event org.eclipse.swt.events.SelectionEvent
-	 */
-	void createButtonSelected(SelectionEvent event) {
-	
-		/* Compute the appropriate dialog style */
-		int style = SWT.NONE;
-		if (okButton.getEnabled () && okButton.getSelection ()) style |= SWT.OK;
-		if (cancelButton.getEnabled () && cancelButton.getSelection ()) style |= SWT.CANCEL;
-		if (yesButton.getEnabled () && yesButton.getSelection ()) style |= SWT.YES;
-		if (noButton.getEnabled () && noButton.getSelection ()) style |= SWT.NO;
-		if (retryButton.getEnabled () && retryButton.getSelection ()) style |= SWT.RETRY;
-		if (abortButton.getEnabled () && abortButton.getSelection ()) style |= SWT.ABORT;
-		if (ignoreButton.getEnabled () && ignoreButton.getSelection ()) style |= SWT.IGNORE;
-		if (iconErrorButton.getEnabled () && iconErrorButton.getSelection ()) style |= SWT.ICON_ERROR;
-		if (iconInformationButton.getEnabled () && iconInformationButton.getSelection ()) style |= SWT.ICON_INFORMATION;
-		if (iconQuestionButton.getEnabled () && iconQuestionButton.getSelection ()) style |= SWT.ICON_QUESTION;
-		if (iconWarningButton.getEnabled () && iconWarningButton.getSelection ()) style |= SWT.ICON_WARNING;
-		if (iconWorkingButton.getEnabled () && iconWorkingButton.getSelection ()) style |= SWT.ICON_WORKING;
-		if (primaryModalButton.getEnabled () && primaryModalButton.getSelection ()) style |= SWT.PRIMARY_MODAL;
-		if (applicationModalButton.getEnabled () && applicationModalButton.getSelection ()) style |= SWT.APPLICATION_MODAL;
-		if (systemModalButton.getEnabled () && systemModalButton.getSelection ()) style |= SWT.SYSTEM_MODAL;
-		if (saveButton.getEnabled () && saveButton.getSelection ()) style |= SWT.SAVE;
-		if (openButton.getEnabled () && openButton.getSelection ()) style |= SWT.OPEN;
-	
-		/* Open the appropriate dialog type */
-		String name = dialogCombo.getText ();
-		Shell shell = tabFolderPage.getShell ();
-		
-		if (name.equals (ControlExample.getResourceString("ColorDialog"))) {
-			ColorDialog dialog = new ColorDialog (shell ,style);
-			dialog.setRGB (new RGB (100, 100, 100));
-			dialog.setText (ControlExample.getResourceString("Title"));
-			RGB result = dialog.open ();
-			textWidget.append (ControlExample.getResourceString("ColorDialog") + Text.DELIMITER);
-			textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
-			return;
-		}
-		
-		if (name.equals (ControlExample.getResourceString("DirectoryDialog"))) {
-			DirectoryDialog dialog = new DirectoryDialog (shell, style);
-			dialog.setMessage (ControlExample.getResourceString("Example_string"));
-			dialog.setText (ControlExample.getResourceString("Title"));
-			String result = dialog.open ();
-			textWidget.append (ControlExample.getResourceString("DirectoryDialog") + Text.DELIMITER);
-			textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
-			return;
-		}
-		
-		if (name.equals (ControlExample.getResourceString("FileDialog"))) {
-			FileDialog dialog = new FileDialog (shell, style);
-			dialog.setFileName (ControlExample.getResourceString("readme_txt"));
-			dialog.setFilterNames (FilterNames);
-			dialog.setFilterExtensions (FilterExtensions);
-			dialog.setText (ControlExample.getResourceString("Title"));
-			String result = dialog.open();
-			textWidget.append (ControlExample.getResourceString("FileDialog") + Text.DELIMITER);
-			textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
-			return;
-		}
-		
-		if (name.equals (ControlExample.getResourceString("FontDialog"))) {
-			FontDialog dialog = new FontDialog (shell, style);
-			dialog.setText (ControlExample.getResourceString("Title"));
-			FontData result = dialog.open ();
-			textWidget.append (ControlExample.getResourceString("FontDialog") + Text.DELIMITER);
-			textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
-			return;
-		}
-		
-		if (name.equals (ControlExample.getResourceString("PrintDialog"))) {
-			PrintDialog dialog = new PrintDialog (shell, style);
-			dialog.setText(ControlExample.getResourceString("Title"));
-			PrinterData result = dialog.open ();
-			textWidget.append (ControlExample.getResourceString("PrintDialog") + Text.DELIMITER);
-			textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
-			return;
-		}
-	
-		if (name.equals(ControlExample.getResourceString("MessageBox"))) {
-			MessageBox dialog = new MessageBox (shell, style);
-			dialog.setMessage (ControlExample.getResourceString("Example_string"));
-			dialog.setText (ControlExample.getResourceString("Title"));
-			int result = dialog.open ();
-			textWidget.append (ControlExample.getResourceString("MessageBox") + Text.DELIMITER);
-			/*
-			 * The resulting integer depends on the original
-			 * dialog style.  Decode the result and display it.
-			 */
-			switch (result) {
-				case SWT.OK:
-					textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.OK"}));
-					break;
-				case SWT.YES:
-					textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.YES"}));
-					break;
-				case SWT.NO:
-					textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.NO"}));
-					break;
-				case SWT.CANCEL:
-					textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.CANCEL"}));
-					break;
-				case SWT.ABORT: 
-					textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.ABORT"}));
-					break;
-				case SWT.RETRY:
-					textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.RETRY"}));
-					break;
-				case SWT.IGNORE:
-					textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.IGNORE"}));
-					break;
-				default:
-					textWidget.append(ControlExample.getResourceString("Result", new String [] {"" + result}));
-					break;
-			}
-			textWidget.append (Text.DELIMITER + Text.DELIMITER);
-		}
-	}
-	
-	/**
-	 * Creates the "Control" group. 
-	 */
-	void createControlGroup () {
-		/*
-		 * Create the "Control" group.  This is the group on the
-		 * left half of each example tab.  It consists of the
-		 * style group, the display group and the size group.
-		 */			
-		controlGroup = new Group (tabFolderPage, SWT.NONE);
-		GridLayout gridLayout= new GridLayout ();
-		controlGroup.setLayout(gridLayout);
-		gridLayout.numColumns = 2;
-		gridLayout.makeColumnsEqualWidth = true;
-		controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		controlGroup.setText (ControlExample.getResourceString("Parameters"));
-		
-		/*
-		 * Create a group to hold the dialog style combo box and
-		 * create dialog button.
-		 */
-		dialogStyleGroup = new Group (controlGroup, SWT.NONE);
-		dialogStyleGroup.setLayout (new GridLayout ());
-		GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER);
-		gridData.horizontalSpan = 2;
-		dialogStyleGroup.setLayoutData (gridData);
-		dialogStyleGroup.setText (ControlExample.getResourceString("Dialog_Type"));
-	}
-	
-	/**
-	 * Creates the "Control" widget children.
-	 */
-	void createControlWidgets () {
-	
-		/* Create the combo */
-		String [] strings = {
-			ControlExample.getResourceString("ColorDialog"), 
-			ControlExample.getResourceString("DirectoryDialog"),
-			ControlExample.getResourceString("FileDialog"),
-			ControlExample.getResourceString("FontDialog"),
-			ControlExample.getResourceString("PrintDialog"),
-			ControlExample.getResourceString("MessageBox"),
-		};
-		dialogCombo = new Combo (dialogStyleGroup, SWT.READ_ONLY);
-		dialogCombo.setItems (strings);
-		dialogCombo.setText (strings [0]);
-	
-		/* Create the create dialog button */
-		Button createButton = new Button(dialogStyleGroup, SWT.NONE);
-		createButton.setText (ControlExample.getResourceString("Create_Dialog"));
-		createButton.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
-	
-		/* Create a group for the various dialog button style controls */
-		Group buttonStyleGroup = new Group (controlGroup, SWT.NONE);
-		buttonStyleGroup.setLayout (new GridLayout ());
-		buttonStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		buttonStyleGroup.setText (ControlExample.getResourceString("Button_Styles"));
-	
-		/* Create the button style buttons */
-		okButton = new Button (buttonStyleGroup, SWT.CHECK);
-		okButton.setText ("SWT.OK");
-		cancelButton = new Button (buttonStyleGroup, SWT.CHECK);
-		cancelButton.setText ("SWT.CANCEL");
-		yesButton = new Button (buttonStyleGroup, SWT.CHECK);
-		yesButton.setText ("SWT.YES");
-		noButton = new Button (buttonStyleGroup, SWT.CHECK);
-		noButton.setText ("SWT.NO");
-		retryButton = new Button (buttonStyleGroup, SWT.CHECK);
-		retryButton.setText ("SWT.RETRY");
-		abortButton = new Button (buttonStyleGroup, SWT.CHECK);
-		abortButton.setText ("SWT.ABORT");
-		ignoreButton = new Button (buttonStyleGroup, SWT.CHECK);
-		ignoreButton.setText ("SWT.IGNORE");
-	
-		/* Create a group for the icon style controls */
-		Group iconStyleGroup = new Group (controlGroup, SWT.NONE);
-		iconStyleGroup.setLayout (new GridLayout ());
-		iconStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		iconStyleGroup.setText (ControlExample.getResourceString("Icon_Styles"));
-	
-		/* Create the icon style buttons */
-		iconErrorButton = new Button (iconStyleGroup, SWT.RADIO);
-		iconErrorButton.setText ("SWT.ICON_ERROR");
-		iconInformationButton = new Button (iconStyleGroup, SWT.RADIO);
-		iconInformationButton.setText ("SWT.ICON_INFORMATION");
-		iconQuestionButton = new Button (iconStyleGroup, SWT.RADIO);
-		iconQuestionButton.setText ("SWT.ICON_QUESTION");
-		iconWarningButton = new Button (iconStyleGroup, SWT.RADIO);
-		iconWarningButton.setText ("SWT.ICON_WARNING");
-		iconWorkingButton = new Button (iconStyleGroup, SWT.RADIO);
-		iconWorkingButton.setText ("SWT.ICON_WORKING");
-	
-		/* Create a group for the modal style controls */
-		Group modalStyleGroup = new Group (controlGroup, SWT.NONE);
-		modalStyleGroup.setLayout (new GridLayout ());
-		modalStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		modalStyleGroup.setText (ControlExample.getResourceString("Modal_Styles"));
-	
-		/* Create the modal style buttons */
-		modelessButton = new Button (modalStyleGroup, SWT.RADIO);
-		modelessButton.setText ("SWT.MODELESS");
-		primaryModalButton = new Button (modalStyleGroup, SWT.RADIO);
-		primaryModalButton.setText ("SWT.PRIMARY_MODAL");
-		applicationModalButton = new Button (modalStyleGroup, SWT.RADIO);
-		applicationModalButton.setText ("SWT.APPLICATION_MODAL");
-		systemModalButton = new Button (modalStyleGroup, SWT.RADIO);
-		systemModalButton.setText ("SWT.SYSTEM_MODAL");
-	
-		/* Create a group for the file dialog style controls */
-		Group fileDialogStyleGroup = new Group (controlGroup, SWT.NONE);
-		fileDialogStyleGroup.setLayout (new GridLayout ());
-		fileDialogStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		fileDialogStyleGroup.setText (ControlExample.getResourceString("File_Dialog_Styles"));
-	
-		/* Create the file dialog style buttons */
-		saveButton = new Button (fileDialogStyleGroup, SWT.RADIO);
-		saveButton.setText ("SWT.SAVE");
-		openButton = new Button(fileDialogStyleGroup, SWT.RADIO);
-		openButton.setText("SWT.OPEN");
-	
-		/* Add the listeners */
-		dialogCombo.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				dialogSelected (event);
-			};
-		});
-		createButton.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				createButtonSelected (event);
-			};
-		});
-		SelectionListener buttonStyleListener = new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				buttonStyleSelected (event);
-			};
-		};
-		okButton.addSelectionListener (buttonStyleListener);
-		cancelButton.addSelectionListener (buttonStyleListener);
-		yesButton.addSelectionListener (buttonStyleListener);
-		noButton.addSelectionListener (buttonStyleListener);
-		retryButton.addSelectionListener (buttonStyleListener);
-		abortButton.addSelectionListener (buttonStyleListener);
-		ignoreButton.addSelectionListener (buttonStyleListener);
-	
-		/* Set default values for style buttons */
-		okButton.setEnabled (false);
-		cancelButton.setEnabled (false);
-		yesButton.setEnabled (false);
-		noButton.setEnabled (false);
-		retryButton.setEnabled (false);
-		abortButton.setEnabled (false);
-		ignoreButton.setEnabled (false);
-		iconErrorButton.setEnabled (false);
-		iconInformationButton.setEnabled (false);
-		iconQuestionButton.setEnabled (false);
-		iconWarningButton.setEnabled (false);
-		iconWorkingButton.setEnabled (false);
-		saveButton.setEnabled (false);
-		openButton.setEnabled (false);
-		openButton.setSelection (true);
-		iconInformationButton.setSelection (true);
-		modelessButton.setSelection (true);
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/*
-		 * Create a group for the text widget to display
-		 * the results returned by the example dialogs.
-		 */
-		resultGroup = new Group (exampleGroup, SWT.NONE);
-		resultGroup.setLayout (new GridLayout ());
-		resultGroup.setLayoutData (new GridData (GridData.FILL_BOTH));
-		resultGroup.setText (ControlExample.getResourceString("Dialog_Result"));
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		/*
-		 * Create a multi lined, scrolled text widget for output.
-		 */
-		textWidget = new Text(resultGroup, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		GridData gridData = new GridData (GridData.FILL_BOTH);
-		textWidget.setLayoutData (gridData);	
-	}
-	
-	/**
-	 * Handle a dialog type combo selection event.
-	 *
-	 * @param event the selection event
-	 */
-	void dialogSelected (SelectionEvent event) {
-	
-		/* Enable/Disable the buttons */
-		String name = dialogCombo.getText ();
-		boolean isMessageBox = name.equals (ControlExample.getResourceString("MessageBox"));
-		boolean isFileDialog = name.equals (ControlExample.getResourceString("FileDialog"));
-		okButton.setEnabled (isMessageBox);
-		cancelButton.setEnabled (isMessageBox);
-		yesButton.setEnabled (isMessageBox);
-		noButton.setEnabled (isMessageBox);
-		retryButton.setEnabled (isMessageBox);
-		abortButton.setEnabled (isMessageBox);
-		ignoreButton.setEnabled (isMessageBox);
-		iconErrorButton.setEnabled (isMessageBox);
-		iconInformationButton.setEnabled (isMessageBox);
-		iconQuestionButton.setEnabled (isMessageBox);
-		iconWarningButton.setEnabled (isMessageBox);
-		iconWorkingButton.setEnabled  (isMessageBox);
-		saveButton.setEnabled (isFileDialog);
-		openButton.setEnabled (isFileDialog);
-	
-		/* Unselect the buttons */
-		if (!isMessageBox) {
-			okButton.setSelection (false);
-			cancelButton.setSelection (false);
-			yesButton.setSelection (false);
-			noButton.setSelection (false);
-			retryButton.setSelection (false);
-			abortButton.setSelection (false);
-			ignoreButton.setSelection (false);
-		}
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [0];
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "Dialog";
-	}
-	
-	/**
-	 * Recreates the "Example" widgets.
-	 */
-	void recreateExampleWidgets () {
-		if (textWidget == null) {
-			super.recreateExampleWidgets ();
-		} 
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java
deleted file mode 100755
index 06bdfc2..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class LabelTab extends AlignableTab {
-	/* Example widgets and groups that contain them */
-	Label label1, label2, label3, label4, label5, label6;
-	Group textLabelGroup, imageLabelGroup;
-
-	/* Style widgets added to the "Style" group */
-	Button wrapButton, separatorButton, horizontalButton, verticalButton, shadowInButton, shadowOutButton, shadowNoneButton;
-	
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	LabelTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the text labels */
-		textLabelGroup = new Group(exampleGroup, SWT.NONE);
-		GridLayout gridLayout = new GridLayout ();
-		textLabelGroup.setLayout (gridLayout);
-		gridLayout.numColumns = 3;
-		textLabelGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		textLabelGroup.setText (ControlExample.getResourceString("Text_Labels"));
-	
-		/* Create a group for the image labels */
-		imageLabelGroup = new Group (exampleGroup, SWT.SHADOW_NONE);
-		gridLayout = new GridLayout ();
-		imageLabelGroup.setLayout (gridLayout);
-		gridLayout.numColumns = 3;
-		imageLabelGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		imageLabelGroup.setText (ControlExample.getResourceString("Image_Labels"));
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (wrapButton.getSelection ()) style |= SWT.WRAP;
-		if (separatorButton.getSelection ()) style |= SWT.SEPARATOR;
-		if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL;
-		if (verticalButton.getSelection ()) style |= SWT.VERTICAL;
-		if (shadowInButton.getSelection ()) style |= SWT.SHADOW_IN;
-		if (shadowOutButton.getSelection ()) style |= SWT.SHADOW_OUT;
-		if (shadowNoneButton.getSelection ()) style |= SWT.SHADOW_NONE;
-		if (borderButton.getSelection ()) style |= SWT.BORDER;
-		if (leftButton.getSelection ()) style |= SWT.LEFT;
-		if (centerButton.getSelection ()) style |= SWT.CENTER;
-		if (rightButton.getSelection ()) style |= SWT.RIGHT;
-	
-		/* Create the example widgets */
-		label1 = new Label (textLabelGroup, style);
-		label1.setText(ControlExample.getResourceString("One"));
-		label2 = new Label (textLabelGroup, style);
-		label2.setText(ControlExample.getResourceString("Two"));
-		label3 = new Label (textLabelGroup, style);
-		if (wrapButton.getSelection ()) {
-			label3.setText (ControlExample.getResourceString("Wrap_Text"));
-		} else {
-			label3.setText (ControlExample.getResourceString("Three"));
-		}
-		label4 = new Label (imageLabelGroup, style);
-		label4.setImage (instance.images[ControlExample.ciClosedFolder]);
-		label5 = new Label (imageLabelGroup, style);
-		label5.setImage (instance.images[ControlExample.ciOpenFolder]);
-		label6 = new Label(imageLabelGroup, style);
-		label6.setImage (instance.images[ControlExample.ciTarget]);
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup() {
-		super.createStyleGroup ();
-		
-		/* Create the extra widgets */
-		wrapButton = new Button (styleGroup, SWT.CHECK);
-		wrapButton.setText ("SWT.WRAP");
-		separatorButton = new Button (styleGroup, SWT.CHECK);
-		separatorButton.setText ("SWT.SEPARATOR");
-		horizontalButton = new Button (styleGroup, SWT.RADIO);
-		horizontalButton.setText ("SWT.HORIZONTAL");
-		verticalButton = new Button (styleGroup, SWT.RADIO);
-		verticalButton.setText ("SWT.VERTICAL");
-		Group styleSubGroup = new Group (styleGroup, SWT.NONE);
-		styleSubGroup.setLayout (new GridLayout ());
-		shadowInButton = new Button (styleSubGroup, SWT.RADIO);
-		shadowInButton.setText ("SWT.SHADOW_IN");
-		shadowOutButton = new Button (styleSubGroup, SWT.RADIO);
-		shadowOutButton.setText ("SWT.SHADOW_OUT");
-		shadowNoneButton = new Button (styleSubGroup, SWT.RADIO);
-		shadowNoneButton.setText ("SWT.SHADOW_NONE");
-		borderButton = new Button(styleGroup, SWT.CHECK);
-		borderButton.setText("SWT.BORDER");
-	
-		/* Add the listeners */
-		SelectionListener selectionListener = new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent event) {
-				if ((event.widget.getStyle() & SWT.RADIO) != 0) {
-					if (!((Button) event.widget).getSelection ()) return;
-				}
-				recreateExampleWidgets ();
-			};
-		};
-		shadowInButton.addSelectionListener (selectionListener);
-		shadowOutButton.addSelectionListener (selectionListener);
-		shadowNoneButton.addSelectionListener (selectionListener);
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {label1, label2, label3, label4, label5, label6};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "Label";
-	}
-	
-	/**
-	 * Sets the alignment of the "Example" widgets.
-	 */
-	void setExampleWidgetAlignment () {
-		int alignment = 0;
-		if (leftButton.getSelection ()) alignment = SWT.LEFT;
-		if (centerButton.getSelection ()) alignment = SWT.CENTER;
-		if (rightButton.getSelection ()) alignment = SWT.RIGHT;
-		label1.setAlignment (alignment);
-		label2.setAlignment (alignment);
-		label3.setAlignment (alignment);
-		label4.setAlignment (alignment);
-		label5.setAlignment (alignment);
-		label6.setAlignment (alignment);
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		boolean isSeparator = (label1.getStyle () & SWT.SEPARATOR) != 0;
-		wrapButton.setSelection (!isSeparator && (label1.getStyle () & SWT.WRAP) != 0);
-		leftButton.setSelection (!isSeparator && (label1.getStyle () & SWT.LEFT) != 0);
-		centerButton.setSelection (!isSeparator && (label1.getStyle () & SWT.CENTER) != 0);
-		rightButton.setSelection (!isSeparator && (label1.getStyle () & SWT.RIGHT) != 0);
-		shadowInButton.setSelection (isSeparator && (label1.getStyle () & SWT.SHADOW_IN) != 0);
-		shadowOutButton.setSelection (isSeparator && (label1.getStyle () & SWT.SHADOW_OUT) != 0);
-		shadowNoneButton.setSelection (isSeparator && (label1.getStyle () & SWT.SHADOW_NONE) != 0);
-		horizontalButton.setSelection (isSeparator && (label1.getStyle () & SWT.HORIZONTAL) != 0);
-		verticalButton.setSelection (isSeparator && (label1.getStyle () & SWT.VERTICAL) != 0);		
-		wrapButton.setEnabled (!isSeparator);
-		leftButton.setEnabled (!isSeparator);
-		centerButton.setEnabled (!isSeparator);
-		rightButton.setEnabled (!isSeparator);
-		shadowInButton.setEnabled (isSeparator);
-		shadowOutButton.setEnabled (isSeparator);
-		shadowNoneButton.setEnabled (isSeparator);
-		horizontalButton.setEnabled (isSeparator);
-		verticalButton.setEnabled (isSeparator);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java
deleted file mode 100755
index e25ad59..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class ListTab extends ScrollableTab {
-
-	/* Example widgets and groups that contain them */
-	List list1;
-	Group listGroup;
-	
-	static String [] ListData1 = {ControlExample.getResourceString("ListData1_0"),
-								  ControlExample.getResourceString("ListData1_1"),
-								  ControlExample.getResourceString("ListData1_2"),
-								  ControlExample.getResourceString("ListData1_3"),
-								  ControlExample.getResourceString("ListData1_4"),
-								  ControlExample.getResourceString("ListData1_5"),
-								  ControlExample.getResourceString("ListData1_6"),
-								  ControlExample.getResourceString("ListData1_7"),
-								  ControlExample.getResourceString("ListData1_8")};
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	ListTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the list */
-		listGroup = new Group (exampleGroup, SWT.NONE);
-		listGroup.setLayout (new GridLayout ());
-		listGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		listGroup.setText ("List");
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (singleButton.getSelection ()) style |= SWT.SINGLE;
-		if (multiButton.getSelection ()) style |= SWT.MULTI;
-		if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL;
-		if (verticalButton.getSelection ()) style |= SWT.V_SCROLL;
-		if (borderButton.getSelection ()) style |= SWT.BORDER;
-	
-		/* Create the example widgets */
-		list1 = new List (listGroup, style);
-		list1.setItems (ListData1);
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {list1};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "List";
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java
deleted file mode 100755
index 89f900b..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class ProgressBarTab extends RangeTab {
-	/* Example widgets and groups that contain them */
-	ProgressBar progressBar1;
-	Group progressBarGroup;
-
-	/* Style widgets added to the "Style" group */
-	Button smoothButton;
-	Button indeterminateButton;
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	ProgressBarTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup() {
-		super.createExampleGroup ();
-
-		/* Create a group for the progress bar */
-		progressBarGroup = new Group (exampleGroup, SWT.NONE);
-		progressBarGroup.setLayout (new GridLayout ());
-		progressBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		progressBarGroup.setText ("ProgressBar");
-	}
-
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL;
-		if (verticalButton.getSelection ()) style |= SWT.VERTICAL;
-		if (smoothButton.getSelection ()) style |= SWT.SMOOTH;
-		if (borderButton.getSelection ()) style |= SWT.BORDER;
-		if (indeterminateButton.getSelection ()) style |= SWT.INDETERMINATE;
-
-		/* Create the example widgets */
-		progressBar1 = new ProgressBar (progressBarGroup, style);
-		progressBar1.setMaximum (100);
-		progressBar1.setSelection (50);
-	}
-
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup () {
-		super.createStyleGroup ();
-
-		/* Create the extra widgets */
-		smoothButton = new Button (styleGroup, SWT.CHECK);
-		smoothButton.setText ("SWT.SMOOTH");
-		indeterminateButton = new Button (styleGroup, SWT.CHECK);
-		indeterminateButton.setText ("SWT.INDETERMINATE");
-	}
-
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {progressBar1};
-	}
-
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "ProgressBar";
-	}
-
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		if (indeterminateButton.getSelection ()) {
-			selectionScale.setEnabled (false);
-			minimumScale.setEnabled (false);
-			maximumScale.setEnabled (false);
-		} else {
-			selectionScale.setEnabled (true);
-			minimumScale.setEnabled (true);
-			maximumScale.setEnabled (true);
-		}
-		maximumScale.setMaximum (progressBar1.getMaximum ());
-		smoothButton.setSelection ((progressBar1.getStyle () & SWT.SMOOTH) != 0);
-		indeterminateButton.setSelection ((progressBar1.getStyle () & SWT.INDETERMINATE) != 0);
-	}
-
-	/**
-	 * Sets the maximum of the "Example" widgets.
-	 */
-	void setWidgetMaximum () {
-		progressBar1.setMaximum (maximumScale.getSelection ());
-		updateScales ();
-	}
-
-	/**
-	 * Sets the minimim of the "Example" widgets.
-	 */
-	void setWidgetMinimum () {
-		progressBar1.setMinimum (minimumScale.getSelection ());
-		updateScales ();
-	}
-
-	/**
-	 * Sets the selection of the "Example" widgets.
-	 */
-	void setWidgetSelection () {
-		progressBar1.setSelection (selectionScale.getSelection ());
-		updateScales ();
-	}
-
-	/**
-	 * Update the scale widgets to reflect the actual value set 
-	 * on the "Example" widget.
-	 */
-	void updateScales () {
-		minimumScale.setSelection (progressBar1.getMinimum ());
-		selectionScale.setSelection (progressBar1.getSelection ());
-		maximumScale.setSelection (progressBar1.getMaximum ());
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java
deleted file mode 100755
index 5662814..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-abstract class RangeTab extends Tab {
-	/* Style widgets added to the "Style" group */
-	Button horizontalButton, verticalButton;
-
-	/* Scale widgets added to the "Control" group */
-	Scale minimumScale, selectionScale, maximumScale;
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	RangeTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Creates the "Control" widget children.
-	 */
-	void createControlWidgets () {
-		/* Create controls specific to this example */
-		createMinimumGroup ();
-		createMaximumGroup ();
-		createSelectionGroup ();
-	}
-	
-	/**
-	 * Create a group of widgets to control the maximum
-	 * attribute of the example widget.
-	 */
-	void createMaximumGroup() {
-	
-		/* Create the group */
-		Group maximumGroup = new Group (controlGroup, SWT.NONE);
-		maximumGroup.setLayout (new GridLayout ());
-		maximumGroup.setText (ControlExample.getResourceString("Maximum"));
-		maximumGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-	
-		/* Create a scale widget */
-		maximumScale = new Scale (maximumGroup, SWT.NONE);
-		maximumScale.setMaximum (100);
-		maximumScale.setSelection (100);
-		maximumScale.setPageIncrement (10);
-		maximumScale.setIncrement (5);
-		
-		GridData data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 100;
-		maximumScale.setLayoutData (data);
-	
-		/* Add the listeners */
-		maximumScale.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setWidgetMaximum ();
-			};
-		});
-	}
-	
-	/**
-	 * Create a group of widgets to control the minimum
-	 * attribute of the example widget.
-	 */
-	void createMinimumGroup() {
-	
-		/* Create the group */
-		Group minimumGroup = new Group (controlGroup, SWT.NONE);
-		minimumGroup.setLayout (new GridLayout ());
-		minimumGroup.setText (ControlExample.getResourceString("Minimum"));
-		minimumGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-	
-		/* Create a scale widget */
-		minimumScale = new Scale (minimumGroup, SWT.NONE);
-		minimumScale.setMaximum (100);
-		minimumScale.setPageIncrement (10);
-		minimumScale.setIncrement (5);
-	
-		GridData data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 100;
-		minimumScale.setLayoutData (data);
-
-		/* Add the listeners */
-		minimumScale.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setWidgetMinimum ();
-			};
-		});
-	
-	}
-	
-	/**
-	 * Create a group of widgets to control the selection
-	 * attribute of the example widget.
-	 */
-	void createSelectionGroup() {
-	
-		/* Create the group */
-		Group selectionGroup = new Group(controlGroup, SWT.NONE);
-		selectionGroup.setLayout(new GridLayout());
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		selectionGroup.setLayoutData(gridData);
-		selectionGroup.setText(ControlExample.getResourceString("Selection"));
-	
-		/* Create a scale widget */
-		selectionScale = new Scale (selectionGroup, SWT.NONE);
-		selectionScale.setMaximum (100);
-		selectionScale.setSelection (50);
-		selectionScale.setPageIncrement (10);
-		selectionScale.setIncrement (5);
-	
-		GridData data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 100;
-		selectionScale.setLayoutData (data);
-
-		/* Add the listeners */
-		selectionScale.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				setWidgetSelection ();
-			};
-		});
-		
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup () {
-		super.createStyleGroup ();
-	
-		/* Create the extra widgets */
-		horizontalButton = new Button (styleGroup, SWT.RADIO);
-		horizontalButton.setText ("SWT.HORIZONTAL");
-		verticalButton = new Button (styleGroup, SWT.RADIO);
-		verticalButton.setText ("SWT.VERTICAL");
-		borderButton = new Button (styleGroup, SWT.CHECK);
-		borderButton.setText ("SWT.BORDER");
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		setWidgetMinimum ();
-		setWidgetMaximum ();
-		setWidgetSelection ();
-		Control [] controls = getExampleWidgets ();
-		if (controls.length != 0){
-			horizontalButton.setSelection ((controls [0].getStyle () & SWT.HORIZONTAL) != 0);
-			verticalButton.setSelection ((controls [0].getStyle () & SWT.VERTICAL) != 0);
-			borderButton.setSelection ((controls [0].getStyle () & SWT.BORDER) != 0);
-		}
-	}
-	
-	/**
-	 * Sets the maximum of the "Example" widgets.
-	 */
-	abstract void setWidgetMaximum ();
-	
-	/**
-	 * Sets the minimim of the "Example" widgets.
-	 */
-	abstract void setWidgetMinimum ();
-	
-	/**
-	 * Sets the selection of the "Example" widgets.
-	 */
-	abstract void setWidgetSelection ();
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashFormTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashFormTab.java
deleted file mode 100644
index f28c7d2..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashFormTab.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class SashFormTab extends Tab {
-	/* Example widgets and groups that contain them */
-	SashForm fullForm, topForm;
-	List list1, list2, list3;
-	Text text;
-
-	static String [] ListData0 = {ControlExample.getResourceString("ListData0_0"),
-								  ControlExample.getResourceString("ListData0_1"),
-								  ControlExample.getResourceString("ListData0_2"),
-								  ControlExample.getResourceString("ListData0_3"),
-								  ControlExample.getResourceString("ListData0_4"),
-								  ControlExample.getResourceString("ListData0_5"),
-								  ControlExample.getResourceString("ListData0_6"),
-								  ControlExample.getResourceString("ListData0_7"),
-								  ControlExample.getResourceString("ListData0_8")};
-								  
-	static String [] ListData1 = {ControlExample.getResourceString("ListData1_0"),
-								  ControlExample.getResourceString("ListData1_1"),
-								  ControlExample.getResourceString("ListData1_2"),
-								  ControlExample.getResourceString("ListData1_3"),
-								  ControlExample.getResourceString("ListData1_4"),
-								  ControlExample.getResourceString("ListData1_5"),
-								  ControlExample.getResourceString("ListData1_6"),
-								  ControlExample.getResourceString("ListData1_7"),
-								  ControlExample.getResourceString("ListData1_8")};
-
-	/* Constants */
-	static final int SASH_WIDTH = 3;
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	SashFormTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Creates the tab folder page.
-	 */
-	Composite createTabFolderPage (TabFolder tabFolder) {
-		tabFolderPage = new Composite(tabFolder, SWT.BORDER);
-		tabFolderPage.setLayout(new FillLayout());
-		
-		fullForm = new SashForm (tabFolderPage, SWT.HORIZONTAL);
-		fullForm.setLayout(new FillLayout());
-		topForm = new SashForm (fullForm, SWT.VERTICAL);
-		topForm.setLayout(new FillLayout());
-		
-		list1 = new List (topForm, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
-		list1.setItems (ListData0);
-		list2 = new List (topForm, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
-		list2.setItems (ListData1);
-		text = new Text (fullForm, SWT.MULTI | SWT.BORDER);
-		text.setText (ControlExample.getResourceString("Multi_line"));
-
-		fullForm.setWeights(new int[] {50, 50});
-		topForm.setWeights(new int[] {50, 50});
-		
-		return tabFolderPage; 
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {fullForm, topForm};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "SashForm";
-	}
-	
-	/**
-	 * Recreates the "Example" widgets.
-	 */
-	void recreateExampleWidgets () {
-		// this tab does not use this framework mechanism
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java
deleted file mode 100755
index 98bbc1f..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-
-class SashTab extends Tab {
-	/* Example widgets and groups that contain them */
-	Sash hSash, vSash;
-	List list1, list2, list3;
-	Text text;
-
-	static String [] ListData0 = {ControlExample.getResourceString("ListData0_0"),
-								  ControlExample.getResourceString("ListData0_1"),
-								  ControlExample.getResourceString("ListData0_2"),
-								  ControlExample.getResourceString("ListData0_3"),
-								  ControlExample.getResourceString("ListData0_4"),
-								  ControlExample.getResourceString("ListData0_5"),
-								  ControlExample.getResourceString("ListData0_6"),
-								  ControlExample.getResourceString("ListData0_7"),
-								  ControlExample.getResourceString("ListData0_8")};
-								  
-	static String [] ListData1 = {ControlExample.getResourceString("ListData1_0"),
-								  ControlExample.getResourceString("ListData1_1"),
-								  ControlExample.getResourceString("ListData1_2"),
-								  ControlExample.getResourceString("ListData1_3"),
-								  ControlExample.getResourceString("ListData1_4"),
-								  ControlExample.getResourceString("ListData1_5"),
-								  ControlExample.getResourceString("ListData1_6"),
-								  ControlExample.getResourceString("ListData1_7"),
-								  ControlExample.getResourceString("ListData1_8")};
-
-	/* Constants */
-	static final int SASH_WIDTH = 3;
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	SashTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Creates the tab folder page.
-	 */
-	Composite createTabFolderPage (TabFolder tabFolder) {
-		/*
-		 * Create the page.  This example does not use layouts.
-		 */
-		tabFolderPage = new Composite(tabFolder, SWT.BORDER);
-	
-		/* Create the list and text widgets */
-		list1 = new List (tabFolderPage, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
-		list1.setItems (ListData0);
-		list2 = new List (tabFolderPage, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
-		list2.setItems (ListData1);
-		text = new Text (tabFolderPage, SWT.MULTI | SWT.BORDER);
-		text.setText (ControlExample.getResourceString("Multi_line"));
-	
-		/* Create the sashes */
-		vSash = new Sash (tabFolderPage, SWT.VERTICAL);
-		hSash = new Sash (tabFolderPage, SWT.HORIZONTAL);
-		
-		/* Add the listeners */
-		hSash.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				if (event.detail != SWT.DRAG) {
-					hSash.setBounds (event.x, event.y, event.width, event.height);
-					layout ();
-				}
-			}
-		});
-		vSash.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				if (event.detail != SWT.DRAG) {
-					vSash.setBounds(event.x, event.y, event.width, event.height);
-					layout ();
-				}
-			}
-		});
-		tabFolderPage.addControlListener (new ControlAdapter () {
-			public void controlResized (ControlEvent event) {
-				shellResized ();
-			}
-		});
-	
-		/*
-		* Do not set the bounds of the lists, text and sashes here 
-		* because this method is run before the widget is opened 
-		* so we do not know how big the tabComposite is going to be.
-		* When the widget is opened a resize event will occur 
-		* and the contained widgets can be sized accordingly.
-		*/
-		return tabFolderPage; 
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {hSash, vSash};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "Sash";
-	}
-	
-	/**
-	 * Layout the list and text widgets according to the new
-	 * positions of the sashes..events.SelectionEvent
-	 */
-	void layout () {
-		
-		Rectangle tabCompositeBounds = tabFolderPage.getClientArea ();
-		Rectangle hSashBounds = hSash.getBounds ();
-		Rectangle vSashBounds = vSash.getBounds ();
-		
-		list1.setBounds (0, 0, vSashBounds.x, hSashBounds.y);
-		list2.setBounds (vSashBounds.x + vSashBounds.width, 0, tabCompositeBounds.width - (vSashBounds.x + vSashBounds.width), hSashBounds.y);
-		text.setBounds (0, hSashBounds.y + hSashBounds.height, tabCompositeBounds.width, tabCompositeBounds.height - (hSashBounds.y + hSashBounds.height));
-	
-		/**
-		* If the horizontal sash has been moved then the vertical
-		* sash is either too long or too short and its size must
-		* be adjusted.
-		*/
-		vSashBounds.height = hSashBounds.y;
-		vSash.setBounds (vSashBounds);
-	}
-	
-	/**
-	 * Recreates the "Example" widgets.
-	 */
-	void recreateExampleWidgets () {
-		// this tab does not use this framework mechanism
-	}
-	
-	/**
-	 * Handle the shell resized event.
-	 */
-	void shellResized () {
-	
-		/* Get the client area for the shell */
-		Rectangle tabFolderPageBounds = tabFolderPage.getClientArea ();
-		
-		/*
-		* Make list 1 half the width and half the height of the tab leaving room for the sash.
-		* Place list 1 in the top left quadrant of the tab.
-		*/
-		Rectangle list1Bounds = new Rectangle (0, 0, (tabFolderPageBounds.width - SASH_WIDTH) / 2, (tabFolderPageBounds.height - SASH_WIDTH) / 2);
-		list1.setBounds (list1Bounds);
-	
-		/*
-		* Make list 2 half the width and half the height of the tab leaving room for the sash.
-		* Place list 2 in the top right quadrant of the tab.
-		*/
-		list2.setBounds (list1Bounds.width + SASH_WIDTH, 0, tabFolderPageBounds.width - (list1Bounds.width + SASH_WIDTH), list1Bounds.height);
-	
-		/*
-		* Make the text area the full width and half the height of the tab leaving room for the sash.
-		* Place the text area in the bottom half of the tab.
-		*/
-		text.setBounds (0, list1Bounds.height + SASH_WIDTH, tabFolderPageBounds.width, tabFolderPageBounds.height - (list1Bounds.height + SASH_WIDTH));
-	
-		/* Position the sashes */
-		vSash.setBounds (list1Bounds.width, 0, SASH_WIDTH, list1Bounds.height);
-		hSash.setBounds (0, list1Bounds.height, tabFolderPageBounds.width, SASH_WIDTH);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java
deleted file mode 100755
index dd0b4a2..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-
-abstract class ScrollableTab extends Tab {
-	/* Style widgets added to the "Style" group */	
-	Button singleButton, multiButton, horizontalButton, verticalButton, borderButton;
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	ScrollableTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup () {
-		super.createStyleGroup ();
-	
-		/* Create the extra widgets */
-		singleButton = new Button (styleGroup, SWT.RADIO);
-		singleButton.setText ("SWT.SINGLE");
-		multiButton = new Button (styleGroup, SWT.RADIO);
-		multiButton.setText ("SWT.MULTI");
-		horizontalButton = new Button (styleGroup, SWT.CHECK);
-		horizontalButton.setText ("SWT.H_SCROLL");
-		horizontalButton.setSelection(true);
-		verticalButton = new Button (styleGroup, SWT.CHECK);
-		verticalButton.setText ("SWT.V_SCROLL");
-		verticalButton.setSelection(true);
-		borderButton = new Button (styleGroup, SWT.CHECK);
-		borderButton.setText ("SWT.BORDER");
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		Control [] controls = getExampleWidgets ();
-		if (controls.length != 0){
-			singleButton.setSelection ((controls [0].getStyle () & SWT.SINGLE) != 0);
-			multiButton.setSelection ((controls [0].getStyle () & SWT.MULTI) != 0);
-			horizontalButton.setSelection ((controls [0].getStyle () & SWT.H_SCROLL) != 0);
-			verticalButton.setSelection ((controls [0].getStyle () & SWT.V_SCROLL) != 0);
-			borderButton.setSelection ((controls [0].getStyle () & SWT.BORDER) != 0);
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java
deleted file mode 100755
index ac8d357..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class ShellTab extends Tab {	
-	/* Style widgets added to the "Style" group */
-	Button noParentButton, parentButton;
-	Button noTrimButton, closeButton, titleButton, minButton, maxButton, borderButton, resizeButton, onTopButton;
-	Button createButton, closeAllButton;
-	Button modelessButton, primaryModalButton, applicationModalButton, systemModalButton;
-	Group parentStyleGroup, modalStyleGroup;
-
-	/* Variables used to track the open shells */
-	int shellCount = 0;
-	Shell [] shells = new Shell [4];
-	
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	ShellTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Close all the example shells.
-	 */
-	void closeAllShells() {
-		for (int i = 0; i<shellCount; i++) {
-			if (shells[i] != null & !shells [i].isDisposed ()) {
-				shells [i].dispose();
-			}
-		}
-		shellCount = 0;
-	}
-	
-	/**
-	 * Handle the Create button selection event.
-	 *
-	 * @param event org.eclipse.swt.events.SelectionEvent
-	 */
-	public void createButtonSelected(SelectionEvent event) {
-	
-		/*
-		 * Remember the example shells so they
-		 * can be disposed by the user.
-		 */
-		if (shellCount >= shells.length) {
-			Shell [] newShells = new Shell [shells.length + 4];
-			System.arraycopy (shells, 0, newShells, 0, shells.length);
-			shells = newShells;
-		}
-	
-		/* Compute the shell style */
-		int style = SWT.NONE;
-		if (noTrimButton.getSelection()) style |= SWT.NO_TRIM;
-		if (closeButton.getSelection()) style |= SWT.CLOSE;
-		if (titleButton.getSelection()) style |= SWT.TITLE;
-		if (minButton.getSelection()) style |= SWT.MIN;
-		if (maxButton.getSelection()) style |= SWT.MAX;
-		if (borderButton.getSelection()) style |= SWT.BORDER;
-		if (resizeButton.getSelection()) style |= SWT.RESIZE;
-		if (onTopButton.getSelection()) style |= SWT.ON_TOP;
-		if (modelessButton.getSelection()) style |= SWT.MODELESS;
-		if (primaryModalButton.getSelection()) style |= SWT.PRIMARY_MODAL;
-		if (applicationModalButton.getSelection()) style |= SWT.APPLICATION_MODAL;
-		if (systemModalButton.getSelection()) style |= SWT.SYSTEM_MODAL;
-	
-		/* Create the shell with or without a parent */
-		if (noParentButton.getSelection ()) {
-			shells [shellCount] = new Shell (style);
-		} else {
-			Shell shell = tabFolderPage.getShell ();
-			shells [shellCount] = new Shell (shell, style);
-		}
-		final Shell currentShell = shells [shellCount];
-		Button button = new Button(currentShell, SWT.PUSH);
-		button.setBounds(20, 20, 120, 30);
-		Button closeButton = new Button(currentShell, SWT.PUSH);
-		closeButton.setBounds(160, 20, 120, 30);
-		closeButton.setText(ControlExample.getResourceString("Close"));
-		closeButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				currentShell.dispose();
-			}
-		});
-	
-		/* Set the size, title and open the shell */
-		currentShell.setSize (300, 100);
-		currentShell.setText (ControlExample.getResourceString("Title") + shellCount);
-		currentShell.open ();
-		shellCount++;
-	}
-	
-	/**
-	 * Creates the "Control" group. 
-	 */
-	void createControlGroup () {
-		/*
-		 * Create the "Control" group.  This is the group on the
-		 * left half of each example tab.  It consists of the
-		 * style group, the display group and the size group.
-		 */		
-		controlGroup = new Group (tabFolderPage, SWT.NONE);
-		GridLayout gridLayout= new GridLayout ();
-		controlGroup.setLayout (gridLayout);
-		gridLayout.numColumns = 1;
-		gridLayout.makeColumnsEqualWidth = true;
-		controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		controlGroup.setText (ControlExample.getResourceString("Parameters"));
-	
-		/* Create individual groups inside the "Control" group */
-		styleGroup = new Group (controlGroup, SWT.NONE);
-		gridLayout = new GridLayout ();
-		styleGroup.setLayout (gridLayout);
-		gridLayout.numColumns = 2;
-		gridLayout.makeColumnsEqualWidth = true;
-		styleGroup.setLayoutData (new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		styleGroup.setText (ControlExample.getResourceString("Styles"));
-	
-		/* Create a group for the parent style controls */
-		parentStyleGroup = new Group (styleGroup, SWT.NONE);
-		parentStyleGroup.setLayout (new GridLayout ());
-		GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		parentStyleGroup.setLayoutData (gridData);
-		parentStyleGroup.setText (ControlExample.getResourceString("Parent"));
-	}
-	
-	/**
-	 * Creates the "Control" widget children.
-	 */
-	void createControlWidgets () {
-	
-		/* Create the parent style buttons */
-		noParentButton = new Button (parentStyleGroup, SWT.RADIO);
-		noParentButton.setText (ControlExample.getResourceString("No_Parent"));
-		parentButton = new Button (parentStyleGroup, SWT.RADIO);
-		parentButton.setText (ControlExample.getResourceString("Parent"));
-	
-		/* Create a group for the decoration style controls */
-		Group decorationStyleGroup = new Group(styleGroup, SWT.NONE);
-		decorationStyleGroup.setLayout (new GridLayout ());
-		GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_FILL);
-		gridData.verticalSpan = 2;
-		decorationStyleGroup.setLayoutData (gridData);
-		decorationStyleGroup.setText (ControlExample.getResourceString("Decoration_Styles"));
-	
-		/* Create the decoration style buttons */
-		noTrimButton = new Button (decorationStyleGroup, SWT.CHECK);
-		noTrimButton.setText ("SWT.NO_TRIM");
-		closeButton = new Button (decorationStyleGroup, SWT.CHECK);
-		closeButton.setText ("SWT.CLOSE");
-		titleButton = new Button (decorationStyleGroup, SWT.CHECK);
-		titleButton.setText ("SWT.TITLE");
-		minButton = new Button (decorationStyleGroup, SWT.CHECK);
-		minButton.setText ("SWT.MIN");
-		maxButton = new Button (decorationStyleGroup, SWT.CHECK);
-		maxButton.setText ("SWT.MAX");
-		borderButton = new Button (decorationStyleGroup, SWT.CHECK);
-		borderButton.setText ("SWT.BORDER");
-		resizeButton = new Button (decorationStyleGroup, SWT.CHECK);
-		resizeButton.setText ("SWT.RESIZE");
-		onTopButton = new Button (decorationStyleGroup, SWT.CHECK);
-		onTopButton.setText ("SWT.ON_TOP");
-	
-		/* Create a group for the modal style controls */
-		modalStyleGroup = new Group (styleGroup, SWT.NONE);
-		modalStyleGroup.setLayout (new GridLayout ());
-		modalStyleGroup.setText (ControlExample.getResourceString("Modal_Styles"));
-		gridData = new GridData ();
-		gridData.verticalAlignment = GridData.FILL;
-		modalStyleGroup.setLayoutData(gridData);
-		
-		/* Create the modal style buttons */
-		modelessButton = new Button (modalStyleGroup, SWT.RADIO);
-		modelessButton.setText ("SWT.MODELESS");
-		primaryModalButton = new Button (modalStyleGroup, SWT.RADIO);
-		primaryModalButton.setText ("SWT.PRIMARY_MODAL");
-		applicationModalButton = new Button (modalStyleGroup, SWT.RADIO);
-		applicationModalButton.setText ("SWT.APPLICATION_MODAL");
-		systemModalButton = new Button (modalStyleGroup, SWT.RADIO);
-		systemModalButton.setText ("SWT.SYSTEM_MODAL");
-	
-		/* Create the "create" and "closeAll" buttons */
-		createButton = new Button (styleGroup, SWT.NONE);
-		gridData = new GridData (GridData.HORIZONTAL_ALIGN_END);
-		createButton.setLayoutData (gridData);
-		createButton.setText (ControlExample.getResourceString("Create_Shell"));
-		closeAllButton = new Button (styleGroup, SWT.NONE);
-		gridData = new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING);
-		closeAllButton.setText (ControlExample.getResourceString("Close_All_Shells"));
-		closeAllButton.setLayoutData (gridData);
-	
-		/* Add the listeners */
-		createButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				createButtonSelected(e);
-			};
-		});
-		closeAllButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				closeAllShells ();
-			};
-		});
-		SelectionListener decorationButtonListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				decorationButtonSelected(event);
-			};
-		};
-		noTrimButton.addSelectionListener (decorationButtonListener);
-		closeButton.addSelectionListener (decorationButtonListener);
-		titleButton.addSelectionListener (decorationButtonListener);
-		minButton.addSelectionListener (decorationButtonListener);
-		maxButton.addSelectionListener (decorationButtonListener);
-		borderButton.addSelectionListener (decorationButtonListener);
-		resizeButton.addSelectionListener (decorationButtonListener);
-		applicationModalButton.addSelectionListener (decorationButtonListener);
-		systemModalButton.addSelectionListener (decorationButtonListener);
-	
-		/* Set the default state */
-		noParentButton.setSelection (true);
-		modelessButton.setSelection (true);
-	}
-	
-	/**
-	 * Handle a decoration button selection event.
-	 *
-	 * @param event org.eclipse.swt.events.SelectionEvent
-	 */
-	public void decorationButtonSelected(SelectionEvent event) {
-	
-		/* Make sure if the modal style is SWT.APPLICATION_MODAL or 
-		 * SWT.SYSTEM_MODAL the style SWT.CLOSE is also selected.
-		 * This is to make sure the user can close the shell.
-		 */
-		Button widget = (Button) event.widget;
-		if (widget == applicationModalButton || widget == systemModalButton) {
-			if (widget.getSelection()) {
-				closeButton.setSelection (true);
-				noTrimButton.setSelection (false);
-			} 
-			return;
-		}
-		if (widget == closeButton) {
-			if (applicationModalButton.getSelection() || systemModalButton.getSelection()) {
-				closeButton.setSelection (true);
-			}
-		}	
-		/*
-		 * Make sure if the No Trim button is selected then
-		 * all other decoration buttons are deselected.
-		 */
-		if (widget.getSelection() && widget != noTrimButton) {
-			noTrimButton.setSelection (false);
-			return;
-		}
-		if (widget.getSelection() && widget == noTrimButton) {
-			if (applicationModalButton.getSelection() || systemModalButton.getSelection()) {
-				noTrimButton.setSelection (false);
-				return;
-			}
-			closeButton.setSelection (false);
-			titleButton.setSelection (false);
-			minButton.setSelection (false);
-			maxButton.setSelection (false);
-			borderButton.setSelection (false);
-			resizeButton.setSelection (false);
-			return;
-		}
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "Shell";
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java
deleted file mode 100755
index f5282ff..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class SliderTab extends RangeTab {
-	/* Example widgets and groups that contain them */
-	Scale scale1;
-	Slider slider1;
-	Group sliderGroup, scaleGroup;
-
-	/* Scale widgets added to the "Control" group */
-	Scale incrementScale, pageIncrementScale, thumbScale;
-	
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	SliderTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Creates the "Control" widget children.
-	 */
-	void createControlWidgets () {
-		super.createControlWidgets ();
-		createThumbGroup ();
-		createIncrementGroup ();
-		createPageIncrementGroup ();
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the slider */
-		sliderGroup = new Group (exampleGroup, SWT.NONE);
-		sliderGroup.setLayout (new GridLayout ());
-		sliderGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		sliderGroup.setText ("Slider");
-	
-		/* Create a group for the scale */
-		scaleGroup = new Group (exampleGroup, SWT.NONE);
-		scaleGroup.setLayout (new GridLayout ());
-		scaleGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		scaleGroup.setText ("Scale");
-	
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL;
-		if (verticalButton.getSelection ()) style |= SWT.VERTICAL;
-		if (borderButton.getSelection ()) style |= SWT.BORDER;
-	
-		/* Create the example widgets */
-		scale1 = new Scale (scaleGroup, style);
-		scale1.setMaximum (100);
-		scale1.setSelection (50);
-		scale1.setIncrement (5);
-		scale1.setPageIncrement (10);
-		slider1 = new Slider(sliderGroup, style);
-		slider1.setMaximum (100);
-		slider1.setSelection (50);
-		slider1.setIncrement(5);
-		slider1.setPageIncrement (10);
-		slider1.setThumb (10);
-	}
-	
-	/**
-	 * Create a group of widgets to control the increment
-	 * attribute of the example widget.
-	 */
-	void createIncrementGroup() {
-	
-		/* Create the group */
-		Group incrementGroup = new Group (controlGroup, SWT.NONE);
-		incrementGroup.setLayout (new GridLayout ());
-		incrementGroup.setText (ControlExample.getResourceString("Increment"));
-		incrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-	
-		/* Create the scale widget */
-		incrementScale = new Scale (incrementGroup, SWT.NONE);
-		incrementScale.setMaximum (100);
-		incrementScale.setSelection (5);
-		incrementScale.setPageIncrement (10);
-		incrementScale.setIncrement (5);
-
-		GridData data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 100;
-		incrementScale.setLayoutData (data);
-	
-		/* Add the listeners */
-		incrementScale.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent e) {		
-				setWidgetIncrement ();
-			};
-		});
-	}
-	
-	/**
-	 * Create a group of widgets to control the page increment
-	 * attribute of the example widget.
-	 */
-	void createPageIncrementGroup() {
-	
-		/* Create the group */
-		Group pageIncrementGroup = new Group (controlGroup, SWT.NONE);
-		pageIncrementGroup.setLayout (new GridLayout ());
-		pageIncrementGroup.setText (ControlExample.getResourceString("Page_Increment"));
-		pageIncrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-			
-		/* Create the scale widget */
-		pageIncrementScale = new Scale (pageIncrementGroup, SWT.NONE);
-		pageIncrementScale.setMaximum (100);
-		pageIncrementScale.setSelection (10);
-		pageIncrementScale.setPageIncrement (10);
-		pageIncrementScale.setIncrement (5);
-	
-		GridData data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 100;
-		pageIncrementScale.setLayoutData (data);
-
-		/* Add the listeners */
-		pageIncrementScale.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setWidgetPageIncrement ();
-			}
-		});
-	}
-	
-	/**
-	 * Create a group of widgets to control the thumb
-	 * attribute of the example widget.
-	 */
-	void createThumbGroup() {
-	
-		/* Create the group */
-		Group thumbGroup = new Group (controlGroup, SWT.NONE);
-		thumbGroup.setLayout (new GridLayout ());
-		thumbGroup.setText (ControlExample.getResourceString("Thumb"));
-		thumbGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-		
-		/* Create the scale widget */
-		thumbScale = new Scale (thumbGroup, SWT.NONE);
-		thumbScale.setMaximum (100);
-		thumbScale.setSelection (10);
-		thumbScale.setPageIncrement (10);
-		thumbScale.setIncrement (5);
-	
-		GridData data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 100;
-		thumbScale.setLayoutData (data);
-
-		/* Add the listeners */
-		thumbScale.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setWidgetThumb ();
-			};
-		});
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {scale1, slider1};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "Slider/Scale";
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		setWidgetIncrement ();
-		setWidgetPageIncrement ();
-		setWidgetThumb ();
-	}
-	
-	/**
-	 * Sets the increment of the "Example" widgets.
-	 */
-	void setWidgetIncrement () {
-		slider1.setIncrement (incrementScale.getSelection ());
-		scale1.setIncrement (incrementScale.getSelection ());
-	}
-	
-	/**
-	 * Sets the minimim of the "Example" widgets.
-	 */
-	void setWidgetMaximum () {
-		slider1.setMaximum (maximumScale.getSelection ());
-		scale1.setMaximum (maximumScale.getSelection ());
-	}
-	
-	/**
-	 * Sets the minimim of the "Example" widgets.
-	 */
-	void setWidgetMinimum () {
-		slider1.setMinimum (minimumScale.getSelection ());
-		scale1.setMinimum (minimumScale.getSelection ());
-	}
-	
-	/**
-	 * Sets the page increment of the "Example" widgets.
-	 */
-	void setWidgetPageIncrement () {
-		slider1.setPageIncrement (pageIncrementScale.getSelection ());
-		scale1.setPageIncrement (pageIncrementScale.getSelection ());
-	}
-	
-	/**
-	 * Sets the selection of the "Example" widgets.
-	 */
-	void setWidgetSelection () {
-		slider1.setSelection (selectionScale.getSelection ());
-		scale1.setSelection (selectionScale.getSelection ());
-	}
-	
-	/**
-	 * Sets the thumb of the "Example" widgets.
-	 */
-	void setWidgetThumb () {
-		slider1.setThumb (thumbScale.getSelection ());
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java
deleted file mode 100644
index fe23f0b..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.custom.*;
-
-class StyledTextTab extends ScrollableTab {
-	/* Example widgets and groups that contain them */
-	StyledText styledText;
-	Group styledTextGroup, styledTextStyleGroup;
-
-	/* Style widgets added to the "Style" group */
-	Button wrapButton, readOnlyButton, fullSelectionButton;
-	
-	/* Buttons for adding StyleRanges to StyledText */
-	Button boldButton, redButton, yellowButton;
-	Image boldImage, redImage, yellowImage;
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	StyledTextTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates a bitmap image. 
-	 */
-	Image createBitmapImage (Display display, String name) {
-		ImageData source = new ImageData(ControlExample.class.getResourceAsStream(name + ".bmp"));
-		ImageData mask = new ImageData(ControlExample.class.getResourceAsStream(name + "_mask.bmp"));
-		return new Image (display, source, mask);
-	}
-	
-	/**
-	 * Creates the "Control" widget children.
-	 */
-	void createControlWidgets () {
-		super.createControlWidgets ();
-		
-		/* Add a group for modifying the StyledText widget */
-		createStyledTextStyleGroup ();
-	}
-
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the styled text widget */
-		styledTextGroup = new Group (exampleGroup, SWT.NONE);
-		styledTextGroup.setLayout (new GridLayout ());
-		styledTextGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		styledTextGroup.setText ("StyledText");
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (singleButton.getSelection ()) style |= SWT.SINGLE;
-		if (multiButton.getSelection ()) style |= SWT.MULTI;
-		if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL;
-		if (verticalButton.getSelection ()) style |= SWT.V_SCROLL;
-		if (wrapButton.getSelection ()) style |= SWT.WRAP;
-		if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY;
-		if (borderButton.getSelection ()) style |= SWT.BORDER;
-		if (fullSelectionButton.getSelection ()) style |= SWT.FULL_SELECTION;
-	
-		/* Create the example widgets */
-		styledText = new StyledText (styledTextGroup, style);
-		styledText.setText (ControlExample.getResourceString("Example_string"));
-		styledText.append ("\n");
-		styledText.append (ControlExample.getResourceString("One_Two_Three"));
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup() {
-		super.createStyleGroup();
-	
-		/* Create the extra widgets */
-		wrapButton = new Button (styleGroup, SWT.CHECK);
-		wrapButton.setText ("SWT.WRAP");
-		readOnlyButton = new Button (styleGroup, SWT.CHECK);
-		readOnlyButton.setText ("SWT.READ_ONLY");
-		fullSelectionButton = new Button (styleGroup, SWT.CHECK);
-		fullSelectionButton.setText ("SWT.FULL_SELECTION");
-	}
-	
-	/**
-	 * Creates the "StyledText Style" group.
-	 */
-	void createStyledTextStyleGroup () {
-		final Display display = controlGroup.getDisplay ();
-		styledTextStyleGroup = new Group (controlGroup, SWT.NONE);
-		styledTextStyleGroup.setText (ControlExample.getResourceString ("StyledText_Styles"));
-		styledTextStyleGroup.setLayout (new GridLayout(2, false));
-		styledTextStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL));
-		
-		/* Get images */
-		boldImage = createBitmapImage (display, "bold");
-		redImage = createBitmapImage (display, "red");
-		yellowImage = createBitmapImage (display, "yellow");
-		
-		/* Create controls to modify the StyledText */
-		Label label = new Label (styledTextStyleGroup, SWT.NONE);
-		label.setText (ControlExample.getResourceString ("StyledText_Style_Instructions"));
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-		new Label (styledTextStyleGroup, SWT.NONE).setText (ControlExample.getResourceString ("Bold"));
-		boldButton = new Button (styledTextStyleGroup, SWT.PUSH);
-		boldButton.setImage (boldImage);
-		boldButton.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent e) {
-				Point sel = styledText.getSelectionRange();
-				if ((sel == null) || (sel.y == 0)) return;
-				StyleRange style;
-				for (int i = sel.x; i<sel.x+sel.y; i++) {
-					StyleRange range = styledText.getStyleRangeAtOffset(i);
-					if (range == null) {style = new StyleRange(i, 1, null, null, SWT.BOLD);}
-					else {style = new StyleRange(i, 1, range.foreground, range.background, SWT.BOLD);};
-					styledText.setStyleRange(style);
-				}
-				styledText.setSelectionRange(sel.x + sel.y, 0);
-			}
-		});
-		new Label (styledTextStyleGroup, SWT.NONE).setText (ControlExample.getResourceString ("Foreground_Style"));
-		redButton = new Button (styledTextStyleGroup, SWT.PUSH);
-		redButton.setImage (redImage);
-		new Label (styledTextStyleGroup, SWT.NONE).setText (ControlExample.getResourceString ("Background_Style"));
-		yellowButton = new Button (styledTextStyleGroup, SWT.PUSH);
-		yellowButton.setImage (yellowImage);
-		SelectionListener colorListener = new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent e) {
-				Point sel = styledText.getSelectionRange();
-				if ((sel == null) || (sel.y == 0)) return;
-				Color fg, bg;
-				if (e.widget == redButton) {
-					fg = display.getSystemColor (SWT.COLOR_RED);
-					bg = null;
-				} else if (e.widget == yellowButton) {
-					fg = null;
-					bg = display.getSystemColor (SWT.COLOR_YELLOW);
-				} else {
-					fg = bg = null;
-				}
-				StyleRange style;
-				for (int i = sel.x; i<sel.x+sel.y; i++) {
-					StyleRange range = styledText.getStyleRangeAtOffset(i);
-					if (range == null) {
-						style = new StyleRange(i, 1, fg, bg, SWT.NORMAL);
-					}
-					else {
-						if (range.foreground != null) fg = range.foreground;
-						if (range.background != null) bg = range.background;
-						style = new StyleRange(i, 1, fg, bg, range.fontStyle);
-					};
-					styledText.setStyleRange(style);
-				}
-				styledText.setSelectionRange(sel.x + sel.y, 0);
-			};
-		};
-		redButton.addSelectionListener(colorListener);
-		yellowButton.addSelectionListener(colorListener);
-		yellowButton.addDisposeListener(new DisposeListener () {
-			public void widgetDisposed (DisposeEvent e) {
-				boldImage.dispose();
-				redImage.dispose();
-				yellowImage.dispose();
-			}
-		});
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {styledText};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "StyledText";
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		wrapButton.setSelection ((styledText.getStyle () & SWT.WRAP) != 0);
-		readOnlyButton.setSelection ((styledText.getStyle () & SWT.READ_ONLY) != 0);
-		fullSelectionButton.setSelection ((styledText.getStyle () & SWT.FULL_SELECTION) != 0);
-		horizontalButton.setEnabled ((styledText.getStyle () & SWT.MULTI) != 0);
-		verticalButton.setEnabled ((styledText.getStyle () & SWT.MULTI) != 0);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java
deleted file mode 100755
index bfde727..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java
+++ /dev/null
@@ -1,547 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-/**
- * <code>Tab</code> is the abstract superclass of every page
- * in the example's tab folder.  Each page in the tab folder
- * describes a control.
- *
- * A Tab itself is not a control but instead provides a
- * hierarchy with which to share code that is common to
- * every page in the folder.
- *
- * A typical page in a Tab contains a two column composite.
- * The left column contains the "Example" group.  The right
- * column contains "Control" group.  The "Control" group
- * contains controls that allow the user to interact with
- * the example control.  The "Control" group typically
- * contains a "Style", "Display" and "Size" group.  Subclasses
- * can override these defaults to augment a group or stop
- * a group from being created.
- */
-abstract class Tab {	
-	/* Common control buttons */
-	Button borderButton, enabledButton, visibleButton;
-	Button preferredButton, tooSmallButton, smallButton, largeButton, fillButton;
-
-	/* Common groups and composites */
-	Composite tabFolderPage;
-	Group exampleGroup, controlGroup, displayGroup, sizeGroup, styleGroup, colorGroup;
-
-	/* Controlling instance */
-	final ControlExample instance;
-
-	/* Sizing constants for the "Size" group */
-	static final int TOO_SMALL_SIZE	= 10;
-	static final int SMALL_SIZE		= 50;
-	static final int LARGE_SIZE		= 100;
-
-	/* Common controls for the "Colors" group */
-	Button backgroundButton, foregroundButton, fontButton;
-	Color backgroundColor, foregroundColor;
-	Font font;	
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	Tab(ControlExample instance) {
-		this.instance = instance;
-	}
-
-	/**
-	 * Creates the "Control" group.  The "Control" group
-	 * is typically the right hand column in the tab.
-	 */
-	void createControlGroup () {
-	
-		/*
-		 * Create the "Control" group.  This is the group on the
-		 * left half of each example tab.  It consists of the
-		 * style group, the display group and the size group.
-		 */	
-		controlGroup = new Group (tabFolderPage, SWT.NONE);
-		GridLayout gridLayout= new GridLayout ();
-		controlGroup.setLayout (gridLayout);
-		gridLayout.numColumns = 2;
-		gridLayout.makeColumnsEqualWidth = true;
-		controlGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		controlGroup.setText (ControlExample.getResourceString("Parameters"));
-	
-		/* Create individual groups inside the "Control" group */
-		createStyleGroup ();
-		createDisplayGroup ();
-		createSizeGroup ();
-		createColorGroup ();
-	
-		/*
-		 * For each Button child in the style group, add a selection
-		 * listener that will recreate the example controls.  If the
-		 * style group button is a RADIO button, ensure that the radio
-		 * button is selected before recreating the example controls.
-		 * When the user selects a RADIO button, the current RADIO
-		 * button in the group is deselected and the new RADIO button
-		 * is selected automatically.  The listeners are notified for
-		 * both these operations but typically only do work when a RADIO
-		 * button is selected.
-		 */
-		SelectionListener selectionListener = new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				if ((event.widget.getStyle () & SWT.RADIO) != 0) {
-					if (!((Button) event.widget).getSelection ()) return;
-				}
-				recreateExampleWidgets ();
-			};
-		};
-		Control [] children = styleGroup.getChildren ();
-		for (int i=0; i<children.length; i++) {
-			if (children [i] instanceof Button) {
-				Button button = (Button) children [i];
-				button.addSelectionListener (selectionListener);
-			}
-		}
-	}
-	
-	/**
-	 * Creates the "Control" widget children.
-	 * Subclasses override this method to augment
-	 * the standard controls created in the "Style",
-	 * "Display" and "Size" groups.
-	 */
-	void createControlWidgets () {
-	}
-	
-	/**
-	 * Creates the "Color" group. This is typically
-	 * a child of the "Control" group. Subclasses override
-	 * this method to customize and set system colors.
-	 */
-	void createColorGroup () {
-		/* Create the group */
-		colorGroup = new Group(controlGroup, SWT.NONE);
-		colorGroup.setLayout (new GridLayout (2, false));
-		colorGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		colorGroup.setText (ControlExample.getResourceString ("Colors"));
-		new Label (colorGroup, SWT.NONE).setText (ControlExample.getResourceString ("Foreground_Color"));
-		foregroundButton = new Button (colorGroup, SWT.PUSH);
-		new Label (colorGroup, SWT.NONE).setText (ControlExample.getResourceString ("Background_Color"));
-		backgroundButton = new Button (colorGroup, SWT.PUSH);
-		fontButton = new Button (colorGroup, SWT.PUSH);
-		fontButton.setText(ControlExample.getResourceString("Font"));
-		
-		Shell shell = backgroundButton.getShell ();
-		final ColorDialog backgroundDialog = new ColorDialog (shell);
-		final ColorDialog foregroundDialog = new ColorDialog (shell);
-		final FontDialog fontDialog = new FontDialog (shell);
-
-		/* Create images to display current colors */
-		int imageSize = 12;
-		Display display = shell.getDisplay ();
-		final Image backgroundImage = new Image (display, imageSize, imageSize);	
-		final Image foregroundImage = new Image (display, imageSize, imageSize);
-
-		/* Add listeners to set the colors and font */
-		backgroundButton.setImage(backgroundImage);
-		backgroundButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				RGB rgb = backgroundDialog.open();
-				if (rgb == null) return;
-				Color oldColor = backgroundColor;
-				backgroundColor = new Color (backgroundButton.getDisplay(), rgb);
-				setExampleWidgetBackground ();
-				if (oldColor != null) oldColor.dispose ();
-			}
-		});
-		foregroundButton.setImage(foregroundImage);
-		foregroundButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				RGB rgb = foregroundDialog.open();
-				if (rgb == null) return;
-				Color oldColor = foregroundColor;
-				foregroundColor = new Color (foregroundButton.getDisplay(), rgb);
-				setExampleWidgetForeground ();
-				if (oldColor != null) oldColor.dispose ();
-			}
-		});
-		fontButton.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent e) {
-				FontData fontData = fontDialog.open ();
-				if (fontData == null) return;
-				Font oldFont = font;
-				font = new Font (fontButton.getDisplay(), fontData);
-				setExampleWidgetFont ();
-				setExampleWidgetSize ();
-				if (oldFont != null) oldFont.dispose ();
-			}
-		});
-		backgroundButton.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				if (backgroundImage != null) backgroundImage.dispose();
-				if (foregroundImage != null) foregroundImage.dispose();
-				if (backgroundColor != null) backgroundColor.dispose();
-				if (foregroundColor != null) foregroundColor.dispose();
-				if (font != null) font.dispose();
-				backgroundColor = null;
-				foregroundColor = null;
-				font = null;				
-			}
-		});
-	}
-	
-	/**
-	 * Creates the "Display" group.  This is typically
-	 * a child of the "Control" group.
-	 */
-	void createDisplayGroup () {
-		/* Create the group */
-		displayGroup = new Group (controlGroup, SWT.NONE);
-		displayGroup.setLayout (new GridLayout ());
-		displayGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		displayGroup.setText (ControlExample.getResourceString("State"));
-	
-		/* Create the controls */
-		enabledButton = new Button(displayGroup, SWT.CHECK);
-		enabledButton.setText(ControlExample.getResourceString("Enabled"));
-		visibleButton = new Button(displayGroup, SWT.CHECK);
-		visibleButton.setText(ControlExample.getResourceString("Visible"));
-	
-		/* Add the listeners */
-		enabledButton.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setExampleWidgetEnabled ();
-			}
-		});
-		visibleButton.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setExampleWidgetVisibility ();
-			}
-		});
-	
-		/* Set the default state */
-		enabledButton.setSelection(true);
-		visibleButton.setSelection(true);
-	}
-	
-	/**
-	 * Creates the "Example" group.  The "Example" group
-	 * is typically the left hand column in the tab.
-	 */
-	void createExampleGroup () {	
-		exampleGroup = new Group (tabFolderPage, SWT.NONE);
-		GridLayout gridLayout = new GridLayout ();
-		exampleGroup.setLayout (gridLayout);
-		exampleGroup.setLayoutData (new GridData (GridData.FILL_BOTH));
-	}
-	
-	/**
-	 * Creates the "Example" widget children of the "Example" group.
-	 * Subclasses override this method to create the particular
-	 * example control.
-	 */
-	void createExampleWidgets () {
-		/* Do nothing */
-	}
-	
-	/**
-	 * Creates the "Size" group.  The "Size" group contains
-	 * controls that allow the user to change the size of
-	 * the example widgets.
-	 */
-	void createSizeGroup () {
-		/* Create the group */
-		sizeGroup = new Group (controlGroup, SWT.NONE);
-		sizeGroup.setLayout (new GridLayout());
-		sizeGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		sizeGroup.setText (ControlExample.getResourceString("Size"));
-	
-		/* Create the controls */
-	
-		/*
-		 * The preferred size of a widget is the size returned
-		 * by widget.computeSize (SWT.DEFAULT, SWT.DEFAULT).
-		 * This size is defined on a widget by widget basis.
-		 * Many widgets will attempt to display their contents.
-		 */
-		preferredButton = new Button (sizeGroup, SWT.RADIO);
-		preferredButton.setText (ControlExample.getResourceString("Preferred"));
-		tooSmallButton = new Button (sizeGroup, SWT.RADIO);
-		tooSmallButton.setText (TOO_SMALL_SIZE + " X " + TOO_SMALL_SIZE);
-		smallButton = new Button(sizeGroup, SWT.RADIO);
-		smallButton.setText (SMALL_SIZE + " X " + SMALL_SIZE);
-		largeButton = new Button (sizeGroup, SWT.RADIO);
-		largeButton.setText (LARGE_SIZE + " X " + LARGE_SIZE);
-		fillButton = new Button (sizeGroup, SWT.RADIO);
-		fillButton.setText (ControlExample.getResourceString("Fill"));
-	
-		/* Add the listeners */
-		SelectionAdapter selectionListener = new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				if (!((Button) event.widget).getSelection ()) return;
-				setExampleWidgetSize ();
-			};
-		};
-		preferredButton.addSelectionListener(selectionListener);
-		tooSmallButton.addSelectionListener(selectionListener);
-		smallButton.addSelectionListener(selectionListener);
-		largeButton.addSelectionListener(selectionListener);
-		fillButton.addSelectionListener(selectionListener);
-	
-		/* Set the default state */
-		preferredButton.setSelection (true);
-	}
-	
-	/**
-	 * Creates the "Style" group.  The "Style" group contains
-	 * controls that allow the user to change the style of
-	 * the example widgets.  Changing a widget "Style" causes
-	 * the widget to be destroyed and recreated.
-	 */
-	void createStyleGroup () {
-		styleGroup = new Group (controlGroup, SWT.NONE);
-		styleGroup.setLayout (new GridLayout ());
-		styleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		styleGroup.setText (ControlExample.getResourceString("Styles"));
-	}
-	
-	/**
-	 * Creates the tab folder page.
-	 *
-	 * @param tabFolder org.eclipse.swt.widgets.TabFolder
-	 * @return the new page for the tab folder
-	 */
-	Composite createTabFolderPage (TabFolder tabFolder) {
-		/*
-		* Create a two column page.
-		*/
-		tabFolderPage = new Composite (tabFolder, SWT.NONE);
-		GridLayout gridLayout = new GridLayout ();
-		tabFolderPage.setLayout (gridLayout);
-		gridLayout.numColumns = 2;
-	
-		/* Create the "Example" and "Control" columns */
-		createExampleGroup ();
-		createControlGroup ();
-	
-		/* Create the widgets in the two columns */
-		createExampleWidgets ();
-		hookExampleWidgetListeners ();
-		createControlWidgets ();
-		setExampleWidgetState ();
-		
-		return tabFolderPage;
-	}
-	
-	/**
-	 * Disposes the "Example" widgets.
-	 */
-	void disposeExampleWidgets () {
-		Control [] controls = getExampleWidgets ();
-		for (int i=0; i<controls.length; i++) {
-			controls [i].dispose ();
-		}
-	}
-	
-	void drawImage (Image image, Color color) {
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		Rectangle bounds = image.getBounds();
-		gc.fillRectangle(0, 0, bounds.width, bounds.height);
-		gc.drawRectangle(0, 0, bounds.width - 1, bounds.height - 1);
-		gc.dispose();
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 *
-	 * @return an array of example widget children
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [0];
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 *
-	 * @return the text for the tab item
-	 */
-	String getTabText () {
-		return "";
-	}
-	
-	/**
-	 * Hook all listeners to all controls. 
-	 */
-	void hookExampleWidgetListeners () {
-		if (instance.isLogging()) {
-			Control[] exampleControls = getExampleWidgets();
-			Listener listener = new Listener() {
-				public void handleEvent (Event event) {
-					instance.log (event);
-				}
-			};
-			for (int i = 0; i < exampleControls.length; i++) {
-				Control control = exampleControls [i];
-				for (int j = SWT.KeyDown; j < SWT.HardKeyUp; j++) {
-					control.addListener (j, listener);
-				}
-			}
-		}
-	}
-	
-	/**
-	 * Recreates the "Example" widgets.
-	 */
-	void recreateExampleWidgets () {
-		disposeExampleWidgets ();
-		createExampleWidgets ();
-		hookExampleWidgetListeners ();
-		setExampleWidgetState ();
-	}
-	
-	/**
-	 * Sets the background color of the "Example" widgets.
-	 */
-	void setExampleWidgetBackground () {
-		if (backgroundButton == null) return;
-		Control [] controls = getExampleWidgets ();
-		Color color = backgroundColor;
-		if (color == null) color = controls [0].getBackground ();
-		Image image = backgroundButton.getImage ();
-		drawImage (image, color);
-		backgroundButton.setImage (image);
-		if (backgroundColor == null) return;
-		for (int i = 0; i < controls.length; i++) {
-			Control control = controls[i];
-			control.setBackground (backgroundColor);
-		}
-	}
-	
-	/**
-	 * Sets the enabled state of the "Example" widgets.
-	 */
-	void setExampleWidgetEnabled () {
-		Control [] controls = getExampleWidgets ();
-		for (int i=0; i<controls.length; i++) {
-			controls [i].setEnabled (enabledButton.getSelection ());
-		}
-	}
-	
-	/**
-	 * Sets the font of the "Example" widgets.
-	 */
-	void setExampleWidgetFont () {
-		if (font == null) return;
-		Control [] controls = getExampleWidgets ();
-		for (int i = 0; i < controls.length; i++) {
-			Control control = controls[i];
-			control.setFont(font);
-		}
-	}
-	
-	/**
-	 * Sets the foreground color of the "Example" widgets.
-	 */
-	void setExampleWidgetForeground () {
-		if (foregroundButton == null) return;
-		Control [] controls = getExampleWidgets ();
-		Color color = foregroundColor;
-		if (color == null) color = controls [0].getForeground ();
-		Image image = foregroundButton.getImage ();
-		drawImage (image, color);
-		foregroundButton.setImage (image);
-		if (foregroundColor == null) return;
-		for (int i = 0; i < controls.length; i++) {
-			Control control = controls[i];
-			control.setForeground (foregroundColor);
-		}
-	}
-	
-	/**
-	 * Sets the size of the "Example" widgets.
-	 */
-	void setExampleWidgetSize () {
-		int size = SWT.DEFAULT;
-		if (preferredButton == null) return;
-		if (preferredButton.getSelection()) size = SWT.DEFAULT;
-		if (tooSmallButton.getSelection()) size = TOO_SMALL_SIZE;
-		if (smallButton.getSelection()) size = SMALL_SIZE;
-		if (largeButton.getSelection()) size = LARGE_SIZE;
-		Control [] controls = getExampleWidgets ();
-		for (int i=0; i<controls.length; i++) {
-			GridData gridData; 
-			if (fillButton.getSelection()) {
-				gridData = new GridData (GridData.FILL_BOTH);
-			} else {
-				gridData = new GridData ();
-				gridData.widthHint = size;
-				gridData.heightHint = size;
-			}
-			controls [i].setLayoutData (gridData);
-		}
-		/*
-		 * Force the entire widget tree to layout,
-		 * even when the child sizes may not have
-		 * changed.
-		 */
-		int seenCount = 0;
-		Composite [] seen = new Composite [4];
-		for (int i=0; i<controls.length; i++) {
-			Control control = controls [i];
-			while (control != exampleGroup) {
-				Composite parent = control.getParent ();
-				int index = 0;
-				while (index < seenCount) {
-					if (seen [index] == parent) break;
-					index++;
-				}
-				if (index == seenCount) parent.layout ();
-				if (seenCount == seen.length) {
-					Composite [] newSeen = new Composite [seen.length + 4];
-					System.arraycopy (seen, 0, newSeen, 0, seen.length);
-					seen = newSeen;
-				}
-				seen [seenCount++] = parent;
-				control = control.getParent ();
-			}
-		}
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.  Subclasses
-	 * reimplement this method to set "Example" widget state
-	 * that is specific to the widget.
-	 */
-	void setExampleWidgetState () {
-		setExampleWidgetEnabled ();
-		setExampleWidgetVisibility ();
-		setExampleWidgetBackground ();
-		setExampleWidgetForeground ();
-		setExampleWidgetFont ();
-		setExampleWidgetSize ();
-	}
-	
-	/**
-	 * Sets the visibility of the "Example" widgets.
-	 */
-	void setExampleWidgetVisibility () {
-		Control [] controls = getExampleWidgets ();
-		for (int i=0; i<controls.length; i++) {
-			controls [i].setVisible (visibleButton.getSelection ());
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java
deleted file mode 100755
index 059bfb9..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class TableTab extends ScrollableTab {
-	/* Example widgets and groups that contain them */
-	Table table1;
-	Group tableGroup, tableItemGroup;
-
-	/* Style widgets added to the "Style" group */
-	Button checkButton, fullSelectionButton, hideSelectionButton;
-
-	/* Display widgets added to the "Display" group */
-	Button headerVisibleButton, linesVisibleButton;
-	
-	/* Color widgets added to the "Color" group */
-	Button itemBackgroundButton, itemForegroundButton;
-	Color itemBackgroundColor, itemForegroundColor;
-	
-	static String [] columnTitles	= {ControlExample.getResourceString("TableTitle_0"),
-									   ControlExample.getResourceString("TableTitle_1"),
-									   ControlExample.getResourceString("TableTitle_2"),
-									   ControlExample.getResourceString("TableTitle_3")};
-									   
-	static String [] stringLine0		= {ControlExample.getResourceString("TableLine0_0"),
-										  ControlExample.getResourceString("TableLine0_1"),
-										  ControlExample.getResourceString("TableLine0_2"),
-										  ControlExample.getResourceString("TableLine0_3")};
-									   
-	static String [] stringLine1		= {ControlExample.getResourceString("TableLine1_0"),
-										  ControlExample.getResourceString("TableLine1_1"),
-										  ControlExample.getResourceString("TableLine1_2"),
-										  ControlExample.getResourceString("TableLine1_3")};
-									   
-	static String [] stringLine2		= {ControlExample.getResourceString("TableLine2_0"),
-										  ControlExample.getResourceString("TableLine2_1"),
-										  ControlExample.getResourceString("TableLine2_2"),
-										  ControlExample.getResourceString("TableLine2_3")};
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	TableTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the "Colors" group.
-	 */
-	void createColorGroup () {
-		super.createColorGroup();
-		
-		tableItemGroup = new Group (colorGroup, SWT.NONE);
-		tableItemGroup.setText (ControlExample.getResourceString ("Table_Item_Colors"));
-		GridData data = new GridData ();
-		data.horizontalSpan = 2;
-		tableItemGroup.setLayoutData (data);
-		tableItemGroup.setLayout (new GridLayout (2, false));
-		new Label (tableItemGroup, SWT.NONE).setText (ControlExample.getResourceString ("Item_Foreground_Color"));
-		itemForegroundButton = new Button (tableItemGroup, SWT.PUSH);
-		new Label (tableItemGroup, SWT.NONE).setText (ControlExample.getResourceString ("Item_Background_Color"));
-		itemBackgroundButton = new Button (tableItemGroup, SWT.PUSH);
-		
-		Shell shell = itemBackgroundButton.getShell ();
-		final ColorDialog backgroundDialog = new ColorDialog (shell);
-		final ColorDialog foregroundDialog = new ColorDialog (shell);
-
-		int imageSize = 12;
-		Display display = shell.getDisplay ();
-		final Image itemBackgroundImage = new Image(display, imageSize, imageSize);
-		final Image itemForegroundImage = new Image(display, imageSize, imageSize);
-
-		/* Add listeners to set the colors and font */
-		itemBackgroundButton.setImage(itemBackgroundImage);
-		itemBackgroundButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				RGB rgb = backgroundDialog.open();
-				if (rgb == null) return;
-				Color oldColor = itemBackgroundColor;
-				itemBackgroundColor = new Color (itemBackgroundButton.getDisplay(), rgb);
-				setItemsBackground ();
-				if (oldColor != null) oldColor.dispose ();
-			}
-		});
-		itemForegroundButton.setImage(itemForegroundImage);
-		itemForegroundButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				RGB rgb = foregroundDialog.open();
-				if (rgb == null) return;
-				Color oldColor = itemForegroundColor;
-				itemForegroundColor = new Color (itemForegroundButton.getDisplay(), rgb);
-				setItemsForeground ();
-				if (oldColor != null) oldColor.dispose ();
-			}
-		});
-		itemBackgroundButton.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				if (itemBackgroundImage != null) itemBackgroundImage.dispose();
-				if (itemForegroundImage != null) itemForegroundImage.dispose();
-				if (itemBackgroundColor != null) itemBackgroundColor.dispose();
-				if (itemForegroundColor != null) itemForegroundColor.dispose();
-				itemBackgroundColor = null;
-				itemForegroundColor = null;			
-			}
-		});
-	}
-
-	/**
-	 * Creates the "Display" group.
-	 */
-	void createDisplayGroup () {
-		super.createDisplayGroup ();
-	
-		/* Create display controls specific to this example */
-		headerVisibleButton = new Button (displayGroup, SWT.CHECK);
-		headerVisibleButton.setText (ControlExample.getResourceString("Header_Visible"));
-		linesVisibleButton = new Button (displayGroup, SWT.CHECK);
-		linesVisibleButton.setText (ControlExample.getResourceString("Lines_Visible"));
-	
-		/* Add the listeners */
-		headerVisibleButton.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setWidgetHeaderVisible ();
-			}
-		});
-		linesVisibleButton.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setWidgetLinesVisible ();
-			};
-		});
-	}
-	
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the table */
-		tableGroup = new Group (exampleGroup, SWT.NONE);
-		tableGroup.setLayout (new GridLayout ());
-		tableGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		tableGroup.setText ("Table");
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {	
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (singleButton.getSelection ()) style |= SWT.SINGLE;
-		if (multiButton.getSelection ()) style |= SWT.MULTI;
-		if (verticalButton.getSelection ()) style |= SWT.V_SCROLL;
-		if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL;
-		if (checkButton.getSelection ()) style |= SWT.CHECK;
-		if (fullSelectionButton.getSelection ()) style |= SWT.FULL_SELECTION;
-		if (hideSelectionButton.getSelection ()) style |= SWT.HIDE_SELECTION;
-		if (borderButton.getSelection ()) style |= SWT.BORDER;
-	
-		/* Create the table widget */
-		table1 = new Table (tableGroup, style);
-	
-		/* Fill the table with data */
-		for (int i = 0; i < columnTitles.length; i++) {
-			TableColumn tableColumn = new TableColumn(table1, SWT.NONE);
-			tableColumn.setText(columnTitles[i]);
-		}	
-		for (int i=0; i<16; i++) {
-			TableItem item = new TableItem (table1, SWT.NONE);
-			item.setImage (instance.images [i % 3]);
-			switch (i % 3) {
-				case 0:
-					stringLine0 [0] = ControlExample.getResourceString("Index") + i;
-					item.setText(stringLine0);
-					break;
-				case 1:
-					stringLine1 [0] = ControlExample.getResourceString("Index") + i;
-					item.setText(stringLine1);
-					break;
-				case 2:
-					stringLine2 [0] = ControlExample.getResourceString("Index") + i;
-					item.setText(stringLine2);
-					break;
-			}
-		}
-		for (int i = 0; i < columnTitles.length; i++) {
-			TableColumn tableColumn = table1.getColumn(i);
-			tableColumn.pack();
-		}
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup () {
-		super.createStyleGroup ();
-		
-		/* Create the extra widgets */
-		checkButton = new Button (styleGroup, SWT.CHECK);
-		checkButton.setText ("SWT.CHECK");
-		fullSelectionButton = new Button (styleGroup, SWT.CHECK);
-		fullSelectionButton.setText ("SWT.FULL_SELECTION");
-		hideSelectionButton = new Button (styleGroup, SWT.CHECK);
-		hideSelectionButton.setText ("SWT.HIDE_SELECTION");
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {table1};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "Table";
-	}
-	
-	/**
-	 * Sets the background color of the TableItems.
-	 */
-	void setItemsBackground () {
-		if (itemBackgroundButton == null) return;
-		Color color = itemBackgroundColor;
-		if (color == null) color = table1.getItem (0).getBackground ();
-		Image image = itemBackgroundButton.getImage ();
-		drawImage (image, color);
-		itemBackgroundButton.setImage (image);
-		if (itemBackgroundColor == null) return;
-		table1.getItem (0).setBackground (itemBackgroundColor);
-	}
-	
-	/**
-	 * Sets the foreground color of the TableItems.
-	 */
-	void setItemsForeground () {
-		if (itemForegroundButton == null) return;
-		Color color = itemForegroundColor;
-		if (color == null) color = table1.getItem (0).getForeground ();
-		Image image = itemForegroundButton.getImage ();
-		drawImage (image, color);
-		itemForegroundButton.setImage (image);
-		if (itemForegroundColor == null) return;
-		table1.getItem (0).setForeground (itemForegroundColor);
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		setItemsBackground ();
-		setItemsForeground ();
-		setWidgetHeaderVisible ();
-		setWidgetLinesVisible ();
-		checkButton.setSelection ((table1.getStyle () & SWT.CHECK) != 0);
-		fullSelectionButton.setSelection ((table1.getStyle () & SWT.FULL_SELECTION) != 0);
-		hideSelectionButton.setSelection ((table1.getStyle () & SWT.HIDE_SELECTION) != 0);
-	}
-	
-	/**
-	 * Sets the header visible state of the "Example" widgets.
-	 */
-	void setWidgetHeaderVisible () {
-		table1.setHeaderVisible (headerVisibleButton.getSelection ());
-	}
-	
-	/**
-	 * Sets the lines visible state of the "Example" widgets.
-	 */
-	void setWidgetLinesVisible () {
-		table1.setLinesVisible (linesVisibleButton.getSelection ());
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTreeTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTreeTab.java
deleted file mode 100644
index e72eaa9..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTreeTab.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class TableTreeTab extends ScrollableTab {
-	/* Example widgets and groups that contain them */
-	TableTree tree1;
-	Group treeGroup;
-	
-	/* Style widgets added to the "Style" group */
-	Button checkButton, fullSelectionButton;
-	
-	/* Display widgets added to the "Display" group */
-	Button headerVisibleButton, linesVisibleButton;
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	TableTreeTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the "Display" group.
-	 */
-	void createDisplayGroup () {
-		super.createDisplayGroup ();
-	
-		/* Create display controls specific to this example */
-		headerVisibleButton = new Button (displayGroup, SWT.CHECK);
-		headerVisibleButton.setText (ControlExample.getResourceString("Header_Visible"));
-		linesVisibleButton = new Button (displayGroup, SWT.CHECK);
-		linesVisibleButton.setText (ControlExample.getResourceString("Lines_Visible"));
-	
-		/* Add the listeners */
-		headerVisibleButton.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setWidgetHeaderVisible();
-			}
-		});
-		linesVisibleButton.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				setWidgetLinesVisible();
-			};
-		});
-	}
-
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the text tree */
-		treeGroup = new Group (exampleGroup, SWT.NONE);
-		treeGroup.setLayout (new GridLayout ());
-		treeGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		treeGroup.setText ("TableTree");
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (singleButton.getSelection()) style |= SWT.SINGLE;
-		if (multiButton.getSelection()) style |= SWT.MULTI;
-		if (checkButton.getSelection()) style |= SWT.CHECK;
-		if (borderButton.getSelection()) style |= SWT.BORDER;
-		if (fullSelectionButton.getSelection()) style |= SWT.FULL_SELECTION;
-	
-		/* Create the text tree */
-		tree1 = new TableTree (treeGroup, style);
-		Table table = tree1.getTable();
-		for (int i = 0; i < 3; i++) {
-			TableColumn column = new TableColumn (table,SWT.NONE);
-			column.setWidth(100);
-			column.setText(ControlExample.getResourceString("TableTree_column") + ": " + i);
-		}
-		TableTreeItem node1 = new TableTreeItem (tree1, SWT.NONE);
-		for (int i = 0; i < 3; i++) {
-			node1.setText (i, ControlExample.getResourceString("Node_1") + "-" + i);
-		}
-		node1.setImage (instance.images[ControlExample.ciOpenFolder]);
-		TableTreeItem node2 = new TableTreeItem (tree1, SWT.NONE);
-		for (int i = 0; i < 3; i++) {
-			node2.setText (i, ControlExample.getResourceString("Node_2") + "-" + i);
-		}
-		node2.setImage (instance.images[ControlExample.ciClosedFolder]);
-		TableTreeItem node3 = new TableTreeItem (tree1, SWT.NONE);
-		for (int i = 0; i < 3; i++) {
-			node3.setText (i, ControlExample.getResourceString("Node_3") + "-" + i);
-		}
-		node3.setImage (instance.images[ControlExample.ciTarget]);
-		TableTreeItem node4 = new TableTreeItem (tree1, SWT.NONE);
-		for (int i = 0; i < 3; i++) {
-			node4.setText (i, ControlExample.getResourceString("Node_4") + "-" + i);
-		}
-		node4.setImage (instance.images[ControlExample.ciOpenFolder]);
-		TableTreeItem node1_1 = new TableTreeItem (node1, SWT.NONE);
-		for (int i = 0; i < 3; i++) {
-			node1_1.setText (i, ControlExample.getResourceString("Node_1_1") + "-" + i);
-		}
-		node1_1.setImage (instance.images[ControlExample.ciClosedFolder]);
-		TableTreeItem node2_1 = new TableTreeItem (node2, SWT.NONE);
-		for (int i = 0; i < 3; i++) {
-			node2_1.setText (i, ControlExample.getResourceString("Node_2_1") + "-" + i);
-		}
-		node2_1.setImage (instance.images[ControlExample.ciTarget]);
-		TableTreeItem node3_1 = new TableTreeItem (node3, SWT.NONE);
-		for (int i = 0; i < 3; i++) {
-			node3_1.setText (i, ControlExample.getResourceString("Node_3_1") + "-" + i);
-		}
-		node3_1.setImage (instance.images[ControlExample.ciOpenFolder]);
-		TableTreeItem node2_2 = new TableTreeItem (node2, SWT.NONE);
-		for (int i = 0; i < 3; i++) {
-			node2_2.setText (i, ControlExample.getResourceString("Node_2_2") + "-" + i);
-		}
-		node2_2.setImage (instance.images[ControlExample.ciClosedFolder]);
-		TableTreeItem node2_2_1 = new TableTreeItem (node2_2, SWT.NONE);
-		for (int i = 0; i < 3; i++) {
-			node2_2_1.setText (i, ControlExample.getResourceString("Node_2_2_1") + "-" + i);
-		}
-		node2_2_1.setImage (instance.images[ControlExample.ciTarget]);
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup() {
-		super.createStyleGroup();
-		
-		/* Create the extra widgets */
-		checkButton = new Button (styleGroup, SWT.CHECK);
-		checkButton.setText ("SWT.CHECK");
-		fullSelectionButton = new Button (styleGroup, SWT.CHECK);
-		fullSelectionButton.setText ("SWT.FULL_SELECTION");
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {tree1};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "TableTree";
-	}
-
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		setWidgetHeaderVisible ();
-		setWidgetLinesVisible ();
-	}
-	
-	/**
-	 * Sets the header visible state of the "Example" widgets.
-	 */
-	void setWidgetHeaderVisible () {
-		tree1.getTable().setHeaderVisible (headerVisibleButton.getSelection ());
-	}
-	
-	/**
-	 * Sets the lines visible state of the "Example" widgets.
-	 */
-	void setWidgetLinesVisible () {
-		tree1.getTable().setLinesVisible (linesVisibleButton.getSelection ());
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java
deleted file mode 100755
index 0fe6973..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class TextTab extends ScrollableTab {
-	/* Example widgets and groups that contain them */
-	Text text;
-	Group textGroup;
-
-	/* Style widgets added to the "Style" group */
-	Button wrapButton, readOnlyButton;
-	
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	TextTab(ControlExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates a bitmap image. 
-	 */
-	Image createBitmapImage (Display display, String name) {
-		ImageData source = new ImageData(ControlExample.class.getResourceAsStream(name + ".bmp"));
-		ImageData mask = new ImageData(ControlExample.class.getResourceAsStream(name + "_mask.bmp"));
-		return new Image (display, source, mask);
-	}
-
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the text widget */
-		textGroup = new Group (exampleGroup, SWT.NONE);
-		textGroup.setLayout (new GridLayout ());
-		textGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		textGroup.setText ("Text");
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (singleButton.getSelection ()) style |= SWT.SINGLE;
-		if (multiButton.getSelection ()) style |= SWT.MULTI;
-		if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL;
-		if (verticalButton.getSelection ()) style |= SWT.V_SCROLL;
-		if (wrapButton.getSelection ()) style |= SWT.WRAP;
-		if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY;
-		if (borderButton.getSelection ()) style |= SWT.BORDER;
-	
-		/* Create the example widgets */
-		text = new Text (textGroup, style);
-		text.setText (ControlExample.getResourceString("Example_string") + Text.DELIMITER + ControlExample.getResourceString("One_Two_Three"));
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup() {
-		super.createStyleGroup();
-	
-		/* Create the extra widgets */
-		wrapButton = new Button (styleGroup, SWT.CHECK);
-		wrapButton.setText ("SWT.WRAP");
-		readOnlyButton = new Button (styleGroup, SWT.CHECK);
-		readOnlyButton.setText ("SWT.READ_ONLY");
-	}
-
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {text};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "Text";
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		wrapButton.setSelection ((text.getStyle () & SWT.WRAP) != 0);
-		readOnlyButton.setSelection ((text.getStyle () & SWT.READ_ONLY) != 0);
-		horizontalButton.setEnabled ((text.getStyle () & SWT.MULTI) != 0);
-		verticalButton.setEnabled ((text.getStyle () & SWT.MULTI) != 0);
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java
deleted file mode 100755
index 7e70c85..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class ToolBarTab extends Tab {
-	/* Example widgets and groups that contain them */
-	ToolBar imageToolBar, textToolBar;
-	Group imageToolBarGroup, textToolBarGroup;
-	
-	/* Style widgets added to the "Style" group */
-	Button horizontalButton, verticalButton, flatButton, shadowOutButton, wrapButton, rightButton;
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	ToolBarTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the image tool bar */
-		imageToolBarGroup = new Group (exampleGroup, SWT.NONE);
-		imageToolBarGroup.setLayout (new GridLayout ());
-		imageToolBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		imageToolBarGroup.setText (ControlExample.getResourceString("Image_ToolBar"));
-	
-		/* Create a group for the text tool bar */
-		textToolBarGroup = new Group (exampleGroup, SWT.NONE);
-		textToolBarGroup.setLayout (new GridLayout ());
-		textToolBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		textToolBarGroup.setText (ControlExample.getResourceString("Text_ToolBar"));
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-	
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (horizontalButton.getSelection()) style |= SWT.HORIZONTAL;
-		if (verticalButton.getSelection()) style |= SWT.VERTICAL;
-		if (flatButton.getSelection()) style |= SWT.FLAT;
-		if (wrapButton.getSelection()) style |= SWT.WRAP;
-		if (borderButton.getSelection()) style |= SWT.BORDER;
-		if (shadowOutButton.getSelection()) style |= SWT.SHADOW_OUT;
-		if (rightButton.getSelection()) style |= SWT.RIGHT;
-	
-		/*
-		* Create the example widgets.
-		*
-		* A tool bar must consist of all image tool
-		* items or all text tool items but not both.
-		*/
-	
-		/* Create the image tool bar */
-		imageToolBar = new ToolBar (imageToolBarGroup, style);
-		ToolItem item = new ToolItem (imageToolBar, SWT.PUSH);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText("SWT.PUSH");
-		item = new ToolItem (imageToolBar, SWT.PUSH);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText ("SWT.PUSH");
-		item = new ToolItem (imageToolBar, SWT.RADIO);
-		item.setImage (instance.images[ControlExample.ciOpenFolder]);
-		item.setToolTipText ("SWT.RADIO");
-		item = new ToolItem (imageToolBar, SWT.RADIO);
-		item.setImage (instance.images[ControlExample.ciOpenFolder]);
-		item.setToolTipText ("SWT.RADIO");
-		item = new ToolItem (imageToolBar, SWT.CHECK);
-		item.setImage (instance.images[ControlExample.ciTarget]);
-		item.setToolTipText ("SWT.CHECK");
-		item = new ToolItem (imageToolBar, SWT.RADIO);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText ("SWT.RADIO");
-		item = new ToolItem (imageToolBar, SWT.RADIO);
-		item.setImage (instance.images[ControlExample.ciClosedFolder]);
-		item.setToolTipText ("SWT.RADIO");
-		item = new ToolItem (imageToolBar, SWT.SEPARATOR);
-		item.setToolTipText("SWT.SEPARATOR");
-		item = new ToolItem (imageToolBar, SWT.DROP_DOWN);
-		item.setImage (instance.images[ControlExample.ciTarget]);
-		item.setToolTipText ("SWT.DROP_DOWN");
-		item.addSelectionListener(new DropDownSelectionListener());
-	
-		/* Create the text tool bar */
-		textToolBar = new ToolBar (textToolBarGroup, style);
-		item = new ToolItem (textToolBar, SWT.PUSH);
-		item.setText (ControlExample.getResourceString("Push"));
-		item.setToolTipText("SWT.PUSH");
-		item = new ToolItem (textToolBar, SWT.PUSH);
-		item.setText (ControlExample.getResourceString("Push"));
-		item.setToolTipText("SWT.PUSH");
-		item = new ToolItem (textToolBar, SWT.RADIO);
-		item.setText (ControlExample.getResourceString("Radio"));
-		item.setToolTipText("SWT.RADIO");
-		item = new ToolItem (textToolBar, SWT.RADIO);
-		item.setText (ControlExample.getResourceString("Radio"));
-		item.setToolTipText("SWT.RADIO");
-		item = new ToolItem (textToolBar, SWT.CHECK);
-		item.setText (ControlExample.getResourceString("Check"));
-		item.setToolTipText("SWT.CHECK");
-		item = new ToolItem (textToolBar, SWT.RADIO);
-		item.setText (ControlExample.getResourceString("Radio"));
-		item.setToolTipText("SWT.RADIO");
-		item = new ToolItem (textToolBar, SWT.RADIO);
-		item.setText (ControlExample.getResourceString("Radio"));
-		item.setToolTipText("SWT.RADIO");
-		item = new ToolItem (textToolBar, SWT.SEPARATOR);
-		item.setToolTipText("SWT.SEPARATOR");
-		item = new ToolItem (textToolBar, SWT.DROP_DOWN);
-		item.setText (ControlExample.getResourceString("Drop_Down"));
-		item.setToolTipText("SWT.DROP_DOWN");
-		item.addSelectionListener(new DropDownSelectionListener());
-	
-		/*
-		* Do not add the selection event for this drop down
-		* tool item.  Without hooking the event, the drop down
-		* widget does nothing special when the drop down area
-		* is selected.
-		*/
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup() {
-		super.createStyleGroup();
-	
-		/* Create the extra widgets */
-		horizontalButton = new Button (styleGroup, SWT.RADIO);
-		horizontalButton.setText ("SWT.HORIZONTAL");
-		verticalButton = new Button (styleGroup, SWT.RADIO);
-		verticalButton.setText ("SWT.VERTICAL");
-		flatButton = new Button (styleGroup, SWT.CHECK);
-		flatButton.setText ("SWT.FLAT");
-		shadowOutButton = new Button (styleGroup, SWT.CHECK);
-		shadowOutButton.setText ("SWT.SHADOW_OUT");
-		wrapButton = new Button (styleGroup, SWT.CHECK);
-		wrapButton.setText ("SWT.WRAP");
-		rightButton = new Button (styleGroup, SWT.CHECK);
-		rightButton.setText ("SWT.RIGHT");
-		borderButton = new Button (styleGroup, SWT.CHECK);
-		borderButton.setText ("SWT.BORDER");
-	}
-	
-	void disposeExampleWidgets () {
-		super.disposeExampleWidgets ();
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {imageToolBar, textToolBar};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "ToolBar";
-	}
-	
-	/**
-	 * Sets the state of the "Example" widgets.
-	 */
-	void setExampleWidgetState () {
-		super.setExampleWidgetState ();
-		horizontalButton.setSelection ((imageToolBar.getStyle () & SWT.HORIZONTAL) != 0);
-		verticalButton.setSelection ((imageToolBar.getStyle () & SWT.VERTICAL) != 0);
-		flatButton.setSelection ((imageToolBar.getStyle () & SWT.FLAT) != 0);
-		wrapButton.setSelection ((imageToolBar.getStyle () & SWT.WRAP) != 0);
-		shadowOutButton.setSelection ((imageToolBar.getStyle () & SWT.SHADOW_OUT) != 0);
-		borderButton.setSelection ((imageToolBar.getStyle () & SWT.BORDER) != 0);
-		rightButton.setSelection ((imageToolBar.getStyle () & SWT.RIGHT) != 0);
-	}
-	
-	/**
-	 * Listens to widgetSelected() events on SWT.DROP_DOWN type ToolItems
-	 * and opens/closes a menu when appropriate.
-	 */
-	class DropDownSelectionListener extends SelectionAdapter {
-		private Menu    menu = null;
-		private boolean visible = false;
-		
-		public void widgetSelected(SelectionEvent event) {
-			// Create the menu if it has not already been created
-			if (menu == null) {
-				// Lazy create the menu.
-				Shell shell = tabFolderPage.getShell();
-				menu = new Menu(shell);
-				for (int i = 0; i < 9; ++i) {
-					final String text = ControlExample.getResourceString("DropDownData_" + i);
-					if (text.length() != 0) {
-						MenuItem menuItem = new MenuItem(menu, SWT.NONE);
-						menuItem.setText(text);
-						/*
-						 * Add a menu selection listener so that the menu is hidden
-						 * when the user selects an item from the drop down menu.
-						 */
-						menuItem.addSelectionListener(new SelectionAdapter() {
-							public void widgetSelected(SelectionEvent e) {
-								setMenuVisible(false);
-							}
-						});
-					} else {
-						new MenuItem(menu, SWT.SEPARATOR);
-					}
-				}
-			}
-			
-			/**
-			 * A selection event will be fired when a drop down tool
-			 * item is selected in the main area and in the drop
-			 * down arrow.  Examine the event detail to determine
-			 * where the widget was selected.
-			 */		
-			if (event.detail == SWT.ARROW) {
-				/*
-				 * The drop down arrow was selected.
-				 */
-				if (visible) {
-					// Hide the menu to give the Arrow the appearance of being a toggle button.
-					setMenuVisible(false);
-				} else {	
-					// Position the menu below and vertically aligned with the the drop down tool button.
-					final ToolItem toolItem = (ToolItem) event.widget;
-					final ToolBar  toolBar = toolItem.getParent();
-					
-					Rectangle toolItemBounds = toolItem.getBounds();
-					Point point = toolBar.toDisplay(new Point(toolItemBounds.x, toolItemBounds.y));
-					menu.setLocation(point.x, point.y + toolItemBounds.height);
-					setMenuVisible(true);
-				}
-			} else {
-				/*
-				 * Main area of drop down tool item selected.
-				 * An application would invoke the code to perform the action for the tool item.
-				 */
-			}
-		}
-		private void setMenuVisible(boolean visible) {
-			menu.setVisible(visible);
-			this.visible = visible;
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java
deleted file mode 100755
index 9dfc503..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class TreeTab extends ScrollableTab {
-	/* Example widgets and groups that contain them */
-	Tree tree1, tree2;
-	Group treeGroup, imageTreeGroup;
-	
-	/* Style widgets added to the "Style" group */
-	Button checkButton;
-
-	/**
-	 * Creates the Tab within a given instance of ControlExample.
-	 */
-	TreeTab(ControlExample instance) {
-		super(instance);
-	}
-
-	/**
-	 * Creates the "Example" group.
-	 */
-	void createExampleGroup () {
-		super.createExampleGroup ();
-		
-		/* Create a group for the text tree */
-		treeGroup = new Group (exampleGroup, SWT.NONE);
-		treeGroup.setLayout (new GridLayout ());
-		treeGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		treeGroup.setText ("Tree");
-	
-		/* Create a group for the image tree */
-		imageTreeGroup = new Group (exampleGroup, SWT.NONE);
-		imageTreeGroup.setLayout (new GridLayout ());
-		imageTreeGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		imageTreeGroup.setText (ControlExample.getResourceString("Tree_With_Images"));
-	}
-	
-	/**
-	 * Creates the "Example" widgets.
-	 */
-	void createExampleWidgets () {
-		/* Compute the widget style */
-		int style = SWT.NONE;
-		if (singleButton.getSelection()) style |= SWT.SINGLE;
-		if (multiButton.getSelection()) style |= SWT.MULTI;
-		if (checkButton.getSelection()) style |= SWT.CHECK;
-		if (borderButton.getSelection()) style |= SWT.BORDER;
-	
-		/* Create the text tree */
-		tree1 = new Tree (treeGroup, style);
-		TreeItem node1 = new TreeItem (tree1, SWT.NONE);
-		node1.setText (ControlExample.getResourceString("Node_1"));
-		TreeItem node2 = new TreeItem (tree1, SWT.NONE);
-		node2.setText (ControlExample.getResourceString("Node_2"));
-		TreeItem node3 = new TreeItem (tree1, SWT.NONE);
-		node3.setText (ControlExample.getResourceString("Node_3"));
-		TreeItem node4 = new TreeItem (tree1, SWT.NONE);
-		node4.setText (ControlExample.getResourceString("Node_4"));
-		TreeItem node1_1 = new TreeItem (node1, SWT.NONE);
-		node1_1.setText (ControlExample.getResourceString("Node_1_1"));
-		TreeItem node2_1 = new TreeItem (node2, SWT.NONE);
-		node2_1.setText (ControlExample.getResourceString("Node_2_1"));
-		TreeItem node3_1 = new TreeItem (node3, SWT.NONE);
-		node3_1.setText (ControlExample.getResourceString("Node_3_1"));
-		TreeItem node2_2 = new TreeItem (node2, SWT.NONE);
-		node2_2.setText (ControlExample.getResourceString("Node_2_2"));
-		TreeItem node2_2_1 = new TreeItem (node2_2, SWT.NONE);
-		node2_2_1.setText (ControlExample.getResourceString("Node_2_2_1"));
-	
-		/* Create the image tree */	
-		tree2 = new Tree (imageTreeGroup, style);
-		node1 = new TreeItem (tree2, SWT.NONE);
-		node1.setText (ControlExample.getResourceString("Node_1"));
-		node1.setImage (instance.images[ControlExample.ciClosedFolder]);
-		node2 = new TreeItem (tree2, SWT.NONE);
-		node2.setText (ControlExample.getResourceString("Node_2"));
-		node2.setImage (instance.images[ControlExample.ciClosedFolder]);
-		node3 = new TreeItem (tree2, SWT.NONE);
-		node3.setText (ControlExample.getResourceString("Node_3"));
-		node3.setImage (instance.images[ControlExample.ciClosedFolder]);
-		node4 = new TreeItem (tree2, SWT.NONE);
-		node4.setText (ControlExample.getResourceString("Node_4"));
-		node4.setImage (instance.images[ControlExample.ciClosedFolder]);
-		node1_1 = new TreeItem (node1, SWT.NONE);
-		node1_1.setText (ControlExample.getResourceString("Node_1_1"));
-		node1_1.setImage (instance.images[ControlExample.ciClosedFolder]);
-		node2_1 = new TreeItem (node2, SWT.NONE);
-		node2_1.setText (ControlExample.getResourceString("Node_2_1"));
-		node2_1.setImage (instance.images[ControlExample.ciClosedFolder]);
-		node3_1 = new TreeItem (node3, SWT.NONE);
-		node3_1.setText (ControlExample.getResourceString("Node_3_1"));
-		node3_1.setImage (instance.images[ControlExample.ciClosedFolder]);
-		node2_2 = new TreeItem(node2, SWT.NONE);
-		node2_2.setText (ControlExample.getResourceString("Node_2_2"));
-		node2_2.setImage (instance.images[ControlExample.ciClosedFolder]);
-		node2_2_1 = new TreeItem (node2_2, SWT.NONE);
-		node2_2_1.setText (ControlExample.getResourceString("Node_2_2_1"));
-		node2_2_1.setImage (instance.images[ControlExample.ciClosedFolder]);
-	}
-	
-	/**
-	 * Creates the "Style" group.
-	 */
-	void createStyleGroup() {
-		super.createStyleGroup();
-		
-		/* Create the extra widgets */
-		checkButton = new Button (styleGroup, SWT.CHECK);
-		checkButton.setText ("SWT.CHECK");
-	}
-	
-	/**
-	 * Gets the "Example" widget children.
-	 */
-	Control [] getExampleWidgets () {
-		return new Control [] {tree1, tree2};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "Tree";
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp
deleted file mode 100644
index a3184bb..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp
deleted file mode 100644
index 382751e..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif
deleted file mode 100644
index 6660d0b..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif
deleted file mode 100644
index fc9943f..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp
deleted file mode 100644
index 88c63be..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp
deleted file mode 100644
index 6ce9264..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif
deleted file mode 100644
index 9807ae6..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp
deleted file mode 100644
index 631d069..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp
deleted file mode 100644
index 6ce9264..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java
deleted file mode 100644
index f1094fa..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java
+++ /dev/null
@@ -1,1174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.dnd;
-
- 
-import org.eclipse.swt.*;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-public class DNDExample {
-	
-	private int dragOperation = 0;
-	private Transfer[] dragTypes = new Transfer[0];
-	private Control dragControl;
-	private int dragControlType = 0;
-	private DragSource dragSource;
-	private String dragDataText;
-	private String dragDataRTF;
-	private String[] dragDataFiles;
-	private List fileList;
-	private boolean dragEnabled = false;
-	
-	private int dropOperation = 0;
-	private int dropDefaultOperation = 0;
-	private Transfer[] dropTypes = new Transfer[0];
-	private DropTarget dropTarget;
-	private Control dropControl;
-	private int dropControlType = 0;
-	private Composite defaultParent;
-	private boolean dropEnabled = false;
-	
-	private Text dragConsole;
-	private boolean dragEventDetail = false;
-	private Text dropConsole;
-	private boolean dropEventDetail = false;
-	
-	private static final int BUTTON_TOGGLE = 0;
-	private static final int BUTTON_RADIO = 1;
-	private static final int BUTTON_CHECK = 2;
-	private static final int CANVAS = 3;
-	private static final int LABEL = 4;
-	private static final int LIST = 5;
-	private static final int TABLE = 6;
-	private static final int TREE = 7;
-	private static final int TEXT = 8;
-	
-public static void main(String[] args) {
-	DNDExample example = new DNDExample();
-	example.open();
-}
-
-private void addDragTransfer(Transfer transfer){
-	Transfer[] newTypes = new Transfer[dragTypes.length + 1];
-	System.arraycopy(dragTypes, 0, newTypes, 0, dragTypes.length);
-	newTypes[dragTypes.length] = transfer;
-	dragTypes = newTypes;
-	if (dragSource != null) {
-		dragSource.setTransfer(dragTypes);
-	}
-}
-
-private void addDropTransfer(Transfer transfer){
-	Transfer[] newTypes = new Transfer[dropTypes.length + 1];
-	System.arraycopy(dropTypes, 0, newTypes, 0, dropTypes.length);
-	newTypes[dropTypes.length] = transfer;
-	dropTypes = newTypes;
-	if (dropTarget != null) {
-		dropTarget.setTransfer(dropTypes);
-	}
-}
-
-private void createDragOperations(Composite parent) {
-	parent.setLayout(new RowLayout(SWT.VERTICAL));
-	final Button moveButton = new Button(parent, SWT.CHECK);
-	moveButton.setText("DND.DROP_MOVE");
-	moveButton.setSelection(true);
-	dragOperation = DND.DROP_MOVE;
-	moveButton.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dragOperation |= DND.DROP_MOVE;			
-			} else {
-				dragOperation = dragOperation &~DND.DROP_MOVE;
-				if (dragOperation == 0) {
-					dragOperation = DND.DROP_MOVE;
-					moveButton.setSelection(true);
-				}
-			}
-			if (dragEnabled) {
-				createDragSource();
-			}
-		}
-	});
-	
-
-	Button b = new Button(parent, SWT.CHECK);
-	b.setText("DND.DROP_COPY");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dragOperation |= DND.DROP_COPY;			
-			} else {
-				dragOperation = dragOperation &~DND.DROP_COPY;
-				if (dragOperation == 0) {
-					dragOperation = DND.DROP_MOVE;
-					moveButton.setSelection(true);
-				}
-			}
-			if (dragEnabled) {
-				createDragSource();
-			}
-		}
-	});
-
-	b = new Button(parent, SWT.CHECK);
-	b.setText("DND.DROP_LINK");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dragOperation |= DND.DROP_LINK;			
-			} else {
-				dragOperation = dragOperation &~DND.DROP_LINK;
-				if (dragOperation == 0) {
-					dragOperation = DND.DROP_MOVE;
-					moveButton.setSelection(true);
-				}
-			}
-			if (dragEnabled) {
-				createDragSource();
-			}
-		}
-	});
-}
-
-private void createDragSource() {
-	if (dragSource != null) dragSource.dispose();
-	dragSource = new DragSource(dragControl, dragOperation);
-	dragSource.setTransfer(dragTypes);
-	dragSource.addDragListener(new DragSourceListener() {
-		public void dragFinished(org.eclipse.swt.dnd.DragSourceEvent event) {
-			dragConsole.append(">>dragFinished\n");
-			printEvent(event);
-			dragDataText = dragDataRTF = null;
-			dragDataFiles = null;
-			if (event.detail == DND.DROP_MOVE) {
-				switch(dragControlType) {
-					case BUTTON_CHECK:
-					case BUTTON_TOGGLE:
-					case BUTTON_RADIO: {
-						Button b = (Button)dragControl;
-						b.setText("");
-						break;
-					}
-					case TABLE: {
-						Table table = (Table)dragControl;
-						TableItem[] items = table.getSelection();
-						for (int i = 0; i < items.length; i++) {
-							items[i].dispose();
-						}
-						break;
-					}
-					case TEXT: {
-						Text text = (Text)dragControl;
-						text.clearSelection();
-						break;
-					}
-					case TREE: {
-						Tree tree = (Tree)dragControl;
-						TreeItem[] items = tree.getSelection();
-						for (int i = 0; i < items.length; i++) {
-							items[i].dispose();
-						}
-						break;
-					}
-					case CANVAS: {
-						dragControl.setData("STRINGS", null);
-						dragControl.redraw();
-						break;
-					}
-					case LABEL: {
-						Label label = (Label)dragControl;
-						label.setText("");
-						break;
-					}
-					case LIST: {
-						List list = (List)dragControl;
-						int[] indices = list.getSelectionIndices();
-						list.remove(indices);
-						break;
-					}
-				}
-			}
-		}
-		public void dragSetData(org.eclipse.swt.dnd.DragSourceEvent event) {
-			dragConsole.append(">>dragSetData\n");
-			printEvent(event);
-			if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
-				event.data = dragDataText;
-			}
-			if (RTFTransfer.getInstance().isSupportedType(event.dataType)) {
-				event.data = dragDataRTF;
-			}
-			if (FileTransfer.getInstance().isSupportedType(event.dataType)) {
-				event.data = dragDataFiles;
-			}
-		}
-		public void dragStart(org.eclipse.swt.dnd.DragSourceEvent event) {
-			dragConsole.append(">>dragStart\n");
-			printEvent(event);
-			dragDataFiles = fileList.getItems();
-			switch(dragControlType) {
-				case BUTTON_CHECK:
-				case BUTTON_TOGGLE:
-				case BUTTON_RADIO: {
-					Button b = (Button)dragControl;
-					dragDataText = b.getSelection() ? "true" : "false";
-					break;
-				}
-				case TABLE: {
-					Table table = (Table)dragControl;
-					TableItem[] items = table.getSelection();
-					if (items.length == 0) {
-						event.doit = false;
-					} else {
-						StringBuffer buffer = new StringBuffer();
-						for (int i = 0; i < items.length; i++) {
-							buffer.append(items[i].getText());
-							if (items.length > 1 && i < items.length - 1) {
-								buffer.append("\n");
-							}
-						}
-						dragDataText = buffer.toString();
-					}
-					break;
-				}
-				case TEXT: {
-					Text text = (Text)dragControl;
-					String s = text.getSelectionText();
-					if (s.length() == 0) {
-						event.doit = false;
-					} else {
-						dragDataText = s;
-					}
-					break;
-				}
-				case TREE: {
-					Tree tree = (Tree)dragControl;
-					TreeItem[] items = tree.getSelection();
-					if (items.length == 0) {
-						event.doit = false;
-					} else {
-						StringBuffer buffer = new StringBuffer();
-						for (int i = 0; i < items.length; i++) {
-							buffer.append(items[i].getText());
-							if (items.length > 1 && i < items.length - 1) {
-								buffer.append("\n");
-							}
-						}
-						dragDataText = buffer.toString();
-					}
-					break;
-				}
-				case CANVAS: {
-					String[] strings = (String[])dragControl.getData("STRINGS");
-					if (strings == null || strings.length == 0) {
-						event.doit = false;
-					} else {
-						StringBuffer buffer = new StringBuffer();
-						for (int i = 0; i < strings.length; i++) {
-							buffer.append(strings[i]);
-							if (strings.length > 1 && i < strings.length - 1) {
-								buffer.append("\n");
-							}
-						}
-						dragDataText = buffer.toString();
-					}
-					break;
-				}
-				case LABEL: {
-					Label label = (Label)dragControl;
-					String string = label.getText();
-					if (string.length() == 0) {
-						event.doit = false;
-					} else {
-						dragDataText = string;
-					}
-					break;
-				}
-				case LIST: {
-					List list = (List)dragControl;
-					String[] selection = list.getSelection();
-					if (selection.length == 0) {
-						event.doit = false;
-					} else {
-						StringBuffer buffer = new StringBuffer();
-						for (int i = 0; i < selection.length; i++) {
-							buffer.append(selection[i]);
-							if (selection.length > 1 && i < selection.length - 1) {
-								buffer.append("\n");
-							}
-						}
-						dragDataText = buffer.toString();
-					}
-					break;
-				}
-				default:
-					throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED);
-			}
-			if (dragDataText != null) {
-				dragDataRTF = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\cf1\\b "+dragDataText+"}";
-			}
-			
-			for (int i = 0; i < dragTypes.length; i++) {
-				if (dragTypes[i] instanceof TextTransfer && dragDataText == null) {
-					event.doit = false;
-				}
-				if (dragTypes[i] instanceof RTFTransfer && dragDataRTF == null) {
-					event.doit = false;
-				}
-				if (dragTypes[i] instanceof FileTransfer && (dragDataFiles == null || dragDataFiles.length == 0)) {
-					event.doit = false;
-				}
-			}
-		}
-	});
-}
-
-private void createDragTypes(Composite parent) {
-	parent.setLayout(new GridLayout());
-	Button b = new Button(parent, SWT.CHECK);
-	b.setText("Text Transfer");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				addDragTransfer(TextTransfer.getInstance());			
-			} else {
-				removeDragTransfer(TextTransfer.getInstance());
-			}
-		}
-	});
-	
-	b = new Button(parent, SWT.CHECK);
-	b.setText("RTF Transfer");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				addDragTransfer(RTFTransfer.getInstance());			
-			} else {
-				removeDragTransfer(RTFTransfer.getInstance());
-			}
-		}
-	});
-	
-	Composite c = new Composite(parent, SWT.NONE);
-	c.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-	GridLayout layout = new GridLayout(3, false);
-	layout.marginHeight = layout.marginWidth = 0;
-	c.setLayout(layout);
-	b = new Button(c, SWT.CHECK);
-	b.setText("File Transfer");
-	b.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				addDragTransfer(FileTransfer.getInstance());			
-			} else {
-				removeDragTransfer(FileTransfer.getInstance());
-			}
-		}
-	});
-	b = new Button(c, SWT.PUSH);
-	b.setText("Select File(s)");
-	b.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			FileDialog dialog = new FileDialog(fileList.getShell(), SWT.OPEN | SWT.MULTI);
-			String result = dialog.open();
-			if (result != null && result.length() > 0){
-				fileList.removeAll();
-				String separator = System.getProperty("file.separator");
-				String path = dialog.getFilterPath();
-				String[] names = dialog.getFileNames();
-				for (int i = 0; i < names.length; i++) {
-					fileList.add(path+separator+names[i]);
-				}
-			}
-		}
-	});
-	fileList = new List(c, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-	GridData data = new GridData();
-	data.grabExcessHorizontalSpace = true;
-	data.horizontalAlignment = GridData.FILL;
-	data.verticalAlignment = GridData.BEGINNING;
-	fileList.setLayoutData(data);
-}
-
-private void createDragWidget(Composite parent) {
-	parent.setLayout(new FormLayout());
-	Combo combo = new Combo(parent, SWT.READ_ONLY);
-	combo.setItems(new String[] {"Toggle Button", "Radio Button", "Checkbox", "Canvas", "Label", "List", "Table", "Tree"});
-	combo.select(LABEL);
-	dragControlType = combo.getSelectionIndex();
-	dragControl = createWidget(dragControlType, parent, "Drag Source");
-	
-	combo.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Object data = dragControl.getLayoutData();
-			Composite parent = dragControl.getParent();
-			dragControl.dispose();
-			Combo c = (Combo)e.widget; 
-			dragControlType = c.getSelectionIndex();
-			dragControl = createWidget(dragControlType, parent, "Drag Source");
-			dragControl.setLayoutData(data);
-			if (dragEnabled) createDragSource();
-			parent.layout();
-		}
-	});
-	
-	Button b = new Button(parent, SWT.CHECK);
-	b.setText("DragSource");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			dragEnabled = b.getSelection();
-			if (dragEnabled) {
-				createDragSource();
-			} else {
-				if (dragSource != null){
-					dragSource.dispose();
-				}
-				dragSource = null;
-			}
-		}
-	});
-	
-	FormData data = new FormData();
-	data.top = new FormAttachment(0, 10);
-	data.bottom = new FormAttachment(combo, -10);
-	data.left = new FormAttachment(0, 10);
-	data.right = new FormAttachment(100, -10);
-	dragControl.setLayoutData(data);
-	
-	data = new FormData();
-	data.bottom = new FormAttachment(b, -10);
-	data.left = new FormAttachment(0, 10);
-	combo.setLayoutData(data);
-	
-	data = new FormData();
-	data.bottom = new FormAttachment(100, -10);
-	data.left = new FormAttachment(0, 10);
-	b.setLayoutData(data);
-}
-
-private void createDropOperations(Composite parent) {
-	parent.setLayout(new RowLayout(SWT.VERTICAL));
-	final Button moveButton = new Button(parent, SWT.CHECK);
-	moveButton.setText("DND.DROP_MOVE");
-	moveButton.setSelection(true);
-	dropOperation = DND.DROP_MOVE;
-	moveButton.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dropOperation |= DND.DROP_MOVE;			
-			} else {
-				dropOperation = dropOperation & ~DND.DROP_MOVE;
-				if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_MOVE) != 0) {
-					dropOperation |= DND.DROP_MOVE;
-					moveButton.setSelection(true);
-				}
-			}
-			if (dropEnabled) {
-				createDropTarget();
-			}
-		}
-	});
-	
-
-	final Button copyButton = new Button(parent, SWT.CHECK);
-	copyButton.setText("DND.DROP_COPY");
-	copyButton.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dropOperation |= DND.DROP_COPY;			
-			} else {
-				dropOperation = dropOperation & ~DND.DROP_COPY;
-				if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_COPY) != 0) {
-					dropOperation = DND.DROP_COPY;
-					copyButton.setSelection(true);
-				}
-			}
-			if (dropEnabled) {
-				createDropTarget();
-			}
-		}
-	});
-
-	final Button linkButton = new Button(parent, SWT.CHECK);
-	linkButton.setText("DND.DROP_LINK");
-	linkButton.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dropOperation |= DND.DROP_LINK;			
-			} else {
-				dropOperation = dropOperation & ~DND.DROP_LINK;
-				if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_LINK) != 0) {
-					dropOperation = DND.DROP_LINK;
-					linkButton.setSelection(true);
-				}
-			}
-			if (dropEnabled) {
-				createDropTarget();
-			}
-		}
-	});
-	
-	Button b = new Button(parent, SWT.CHECK);
-	b.setText("DND.DROP_DEFAULT");
-	defaultParent = new Composite(parent, SWT.NONE);
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dropOperation |= DND.DROP_DEFAULT;
-				defaultParent.setVisible(true);			
-			} else {
-				dropOperation = dropOperation & ~DND.DROP_DEFAULT;
-				defaultParent.setVisible(false);
-			}
-			if (dropEnabled) {
-				createDropTarget();
-			}
-		}
-	});
-	
-	defaultParent.setVisible(false);
-	GridLayout layout = new GridLayout();
-	layout.marginWidth = 20;
-	defaultParent.setLayout(layout);
-	Label label = new Label(defaultParent, SWT.NONE);
-	label.setText("Value for default operation is:");
-	b = new Button(defaultParent, SWT.RADIO);
-	b.setText("DND.DROP_MOVE");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dropDefaultOperation = DND.DROP_MOVE;
-				dropOperation |= DND.DROP_MOVE;
-				moveButton.setSelection(true);
-				if (dropEnabled) {
-					createDropTarget();
-				}
-			}
-		}
-	});
-	
-	b = new Button(defaultParent, SWT.RADIO);
-	b.setText("DND.DROP_COPY");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dropDefaultOperation = DND.DROP_COPY;
-				dropOperation |= DND.DROP_COPY;
-				copyButton.setSelection(true);
-				if (dropEnabled) {
-					createDropTarget();
-				}
-			}
-		}
-	});
-
-	b = new Button(defaultParent, SWT.RADIO);
-	b.setText("DND.DROP_LINK");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dropDefaultOperation = DND.DROP_LINK;
-				dropOperation |= DND.DROP_LINK;
-				linkButton.setSelection(true);
-				if (dropEnabled) {
-					createDropTarget();
-				}
-			}
-		}
-	});
-	
-	b = new Button(defaultParent, SWT.RADIO);
-	b.setText("DND.DROP_NONE");
-	b.setSelection(true);
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				dropDefaultOperation = DND.DROP_NONE;
-				dropOperation &= ~DND.DROP_DEFAULT;
-				if (dropEnabled) {
-					createDropTarget();
-				}
-			}
-		}
-	});
-}
-
-private void createDropTarget() {
-	if (dropTarget != null) dropTarget.dispose();
-	dropTarget = new DropTarget(dropControl, dropOperation);
-	dropTarget.setTransfer(dropTypes);
-	dropTarget.addDropListener(new DropTargetListener() {
-		public void dragEnter(DropTargetEvent event) {
-			dropConsole.append(">>dragEnter\n");
-			printEvent(event);
-			if (event.detail == DND.DROP_DEFAULT) {
-				event.detail = dropDefaultOperation;
-			}
-		}
-		public void dragLeave(DropTargetEvent event) {
-			dropConsole.append(">>dragLeave\n");
-			printEvent(event);
-		}
-		public void dragOperationChanged(DropTargetEvent event) {
-			dropConsole.append(">>dragOperationChanged\n");
-			printEvent(event);
-			if (event.detail == DND.DROP_DEFAULT) {
-				event.detail = dropDefaultOperation;
-			}
-		}
-		public void dragOver(DropTargetEvent event) {
-			dropConsole.append(">>dragOver\n");
-			printEvent(event);
-		}
-		public void drop(DropTargetEvent event) {
-			dropConsole.append(">>drop\n");
-			printEvent(event);
-			String[] strings = null;
-			if (TextTransfer.getInstance().isSupportedType(event.currentDataType) ||
-			    RTFTransfer.getInstance().isSupportedType(event.currentDataType)) {
-			    strings = new String[] {(String)event.data};
-			}
-			if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) {
-				strings = (String[])event.data;
-			}
-			if (strings == null || strings.length == 0) {
-				dropConsole.append("!!Invalid data dropped");
-				return;
-			}
-			
-			if (strings.length == 1 && (dropControlType == TABLE || 
-			                            dropControlType == TREE || 
-			                            dropControlType == LIST)) {
-				// convert string separated by "\n" into an array of strings 
-				String string = strings[0];
-				int count = 0;
-				int offset = string.indexOf("\n", 0);
-				while (offset > 0) {
-					count++;
-					offset = string.indexOf("\n", offset + 1);
-				}
-				if (count > 0) {
-					strings = new String[count + 1];
-					int start = 0;
-					int end = string.indexOf("\n");
-					int index = 0;
-					while (start < end) {
-						strings[index++] = string.substring(start, end);
-						start = end + 1;
-						end = string.indexOf("\n", start);
-						if (end == -1) end = string.length();
-					}
-				}
-			}
-			switch(dropControlType) {
-				case BUTTON_CHECK:
-				case BUTTON_TOGGLE:
-				case BUTTON_RADIO: {
-					Button b = (Button)dropControl;
-					b.setText(strings[0]);
-					break;
-				}
-				case TABLE: {
-					Table table = (Table)dropControl;
-					for(int i = 0; i < strings.length; i++) {
-						TableItem item = new TableItem(table, SWT.NONE);
-						item.setText(0, strings[i]);
-						item.setText(1, "dropped item");
-					}
-					TableColumn[] columns = table.getColumns();
-					for (int i = 0; i < columns.length; i++) {
-						columns[i].pack();
-					}
-					break;
-				}
-				case TEXT: {
-					Text text = (Text)dropControl;
-					for(int i = 0; i < strings.length; i++) {
-						text.append(strings[i]+"\n");
-					}
-					break;
-				}
-				case TREE: {
-					Tree tree = (Tree)dropControl;
-					for(int i = 0; i < strings.length; i++) {
-						TreeItem item = new TreeItem(tree, SWT.NONE);
-						item.setText(strings[i]);
-					}
-					break;
-				}
-				case CANVAS: {
-					dropControl.setData("STRINGS", strings);
-					dropControl.redraw();
-					break;
-				}
-				case LABEL: {
-					Label label = (Label)dropControl;
-					label.setText(strings[0]);
-					break;
-				}
-				case LIST: {
-					List list = (List)dropControl;
-					for(int i = 0; i < strings.length; i++) {
-						list.add(strings[i]);
-					}
-					break;
-				}
-				default:
-					throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED);
-			}
-		}
-		public void dropAccept(DropTargetEvent event) {
-			dropConsole.append(">>dropAccept\n");
-			printEvent(event);
-		}
-	});
-}
-
-private void createDropTypes(Composite parent) {
-	parent.setLayout(new RowLayout(SWT.VERTICAL));
-	Button b = new Button(parent, SWT.CHECK);
-	b.setText("Text Transfer");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				addDropTransfer(TextTransfer.getInstance());			
-			} else {
-				removeDropTransfer(TextTransfer.getInstance());
-			}
-		}
-	});
-	
-	b = new Button(parent, SWT.CHECK);
-	b.setText("RTF Transfer");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				addDropTransfer(RTFTransfer.getInstance());			
-			} else {
-				removeDropTransfer(RTFTransfer.getInstance());
-			}
-		}
-	});
-	
-	b = new Button(parent, SWT.CHECK);
-	b.setText("File Transfer");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			if (b.getSelection()) {
-				addDropTransfer(FileTransfer.getInstance());			
-			} else {
-				removeDropTransfer(FileTransfer.getInstance());
-			}
-		}
-	});
-}
-
-private void createDropWidget(Composite parent) {
-	parent.setLayout(new FormLayout());
-	Combo combo = new Combo(parent, SWT.READ_ONLY);
-	combo.setItems(new String[] {"Toggle Button", "Radio Button", "Checkbox", "Canvas", "Label", "List", "Table", "Tree", "Text"});
-	combo.select(LABEL);
-	dropControlType = combo.getSelectionIndex();
-	dropControl = createWidget(dropControlType, parent, "Drop Target");
-	combo.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Object data = dropControl.getLayoutData();
-			Composite parent = dropControl.getParent();
-			dropControl.dispose();
-			Combo c = (Combo)e.widget;
-			dropControlType = c.getSelectionIndex(); 
-			dropControl = createWidget(dropControlType, parent, "Drop Target");
-			dropControl.setLayoutData(data);
-			if (dropEnabled) createDropTarget();
-			parent.layout();
-		}
-	});
-	
-	Button b = new Button(parent, SWT.CHECK);
-	b.setText("DropTarget");
-	b.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			Button b = (Button)e.widget;
-			dropEnabled = b.getSelection();
-			if (dropEnabled) {
-				createDropTarget();
-			} else {
-				if (dropTarget != null){
-					dropTarget.dispose();
-				}
-				dropTarget = null;
-			}
-		}
-	});
-	
-	FormData data = new FormData();
-	data.top = new FormAttachment(0, 10);
-	data.bottom = new FormAttachment(combo, -10);
-	data.left = new FormAttachment(0, 10);
-	data.right = new FormAttachment(100, -10);
-	dropControl.setLayoutData(data);
-	
-	data = new FormData();
-	data.bottom = new FormAttachment(b, -10);
-	data.left = new FormAttachment(0, 10);
-	combo.setLayoutData(data);
-	
-	data = new FormData();
-	data.bottom = new FormAttachment(100, -10);
-	data.left = new FormAttachment(0, 10);
-	b.setLayoutData(data);	
-}
-
-private Control createWidget(int type, Composite parent, String prefix){
-	switch (type) {
-		case BUTTON_CHECK: {
-			Button button = new Button(parent, SWT.CHECK);
-			button.setText(prefix+" Check box");
-			return button;
-		}
-		case BUTTON_TOGGLE: {
-			Button button = new Button(parent, SWT.TOGGLE);
-			button.setText(prefix+" Toggle button");
-			return button;
-		}
-		case BUTTON_RADIO: {
-			Button button = new Button(parent, SWT.RADIO);
-			button.setText(prefix+" Radio button");
-			return button;
-		}
-		case TABLE: {
-			Table table = new Table(parent, SWT.BORDER | SWT.MULTI);
-			TableColumn column1 = new TableColumn(table, SWT.NONE);
-			TableColumn column2 = new TableColumn(table, SWT.NONE);
-			for (int i = 0; i < 10; i++) {
-				TableItem item = new TableItem(table, SWT.NONE);
-				item.setText(0, prefix+" name " + i);
-				item.setText(1, prefix+" value " + i);
-			}
-			column1.pack();
-			column2.pack();
-			return table;
-		}
-		case TEXT: {
-			Text text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
-			text.setText(prefix+" Text");
-			return text;
-		}
-		case TREE: {
-			Tree tree = new Tree(parent, SWT.BORDER);
-			for (int i = 0; i < 3; i++) {
-				TreeItem item = new TreeItem(tree, SWT.NONE);
-				item.setText(prefix+" item " + i);
-				for (int j = 0; j < 3; j++) {
-					TreeItem subItem = new TreeItem(item, SWT.NONE);
-					subItem.setText(prefix+" item " + j);
-					for (int k = 0; k < 3; k++) {
-						TreeItem subsubItem = new TreeItem(subItem, SWT.NONE);
-						subsubItem.setText(prefix+" item " + k);
-					}
-				}
-			}
-			return tree;
-		}
-		case CANVAS: {
-			Canvas canvas = new Canvas(parent, SWT.BORDER);
-			canvas.setData("STRINGS", new String[] {prefix+" Canvas widget"});
-			canvas.addPaintListener(new PaintListener() {
-				public void paintControl(PaintEvent e) {
-					Canvas c = (Canvas)e.widget;
-					Image image = (Image)c.getData("IMAGE");
-					if (image != null) {
-						e.gc.drawImage(image, 5, 5);
-					} else {
-						String[] strings = (String[])c.getData("STRINGS");
-						if (strings != null) {
-							FontMetrics metrics = e.gc.getFontMetrics();
-							int height = metrics.getHeight();
-							int y = 5;
-							for(int i = 0; i < strings.length; i++) {
-								e.gc.drawString(strings[i], 5, y);
-								y += height + 5;
-							}
-						}
-					}
-				}
-			});
-			return canvas;
-		}
-		case LABEL: {
-			Label label = new Label(parent, SWT.BORDER);
-			label.setText(prefix+" Label");
-			return label;
-		}
-		case LIST: {
-			List list = new List(parent, SWT.BORDER);
-			list.setItems(new String[] {prefix+" Item a", prefix+" Item b",  prefix+" Item c",  prefix+" Item d"});
-			return list;
-		}
-		default:
-			throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED);
-	}
-}
-
-private void open() {
-	Display display = new Display();
-	Shell shell = new Shell(display);
-	shell.setText("Drag and Drop Example");
-	shell.setLayout(new FormLayout());
-	
-	Label dragLabel = new Label(shell, SWT.LEFT);
-	dragLabel.setText("Drag Source:");
-	
-	Group dragWidgetGroup = new Group(shell, SWT.NONE);
-	dragWidgetGroup.setText("Widget");
-	createDragWidget(dragWidgetGroup);
-	
-	Group dragOperationsGroup = new Group(shell, SWT.NONE);
-	dragOperationsGroup.setText("Allowed Operation(s):");
-	createDragOperations(dragOperationsGroup);
-	
-	Group dragTypesGroup = new Group(shell, SWT.NONE);
-	dragTypesGroup.setText("Transfer Type(s):");
-	createDragTypes(dragTypesGroup);
-	
-	dragConsole = new Text(shell, SWT.READ_ONLY | SWT.BORDER |SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
-	Menu menu = new Menu (shell, SWT.POP_UP);
-	MenuItem item = new MenuItem (menu, SWT.PUSH);
-	item.setText ("Clear");
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			dragConsole.setText("");
-		}
-	});
-	item = new MenuItem (menu, SWT.CHECK);
-	item.setText ("Show Event detail");
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			MenuItem item = (MenuItem)e.widget;
-			dragEventDetail = item.getSelection();
-		}
-	});
-	dragConsole.setMenu(menu);
-	
-	Label dropLabel = new Label(shell, SWT.LEFT);
-	dropLabel.setText("Drop Target:");
-	
-	Group dropWidgetGroup = new Group(shell, SWT.NONE);
-	dropWidgetGroup.setText("Widget");
-	createDropWidget(dropWidgetGroup);
-	
-	Group dropOperationsGroup = new Group(shell, SWT.NONE);
-	dropOperationsGroup.setText("Allowed Operation(s):");
-	createDropOperations(dropOperationsGroup);
-	
-	Group dropTypesGroup = new Group(shell, SWT.NONE);
-	dropTypesGroup.setText("Transfer Type(s):");
-	createDropTypes(dropTypesGroup);
-	
-	dropConsole = new Text(shell, SWT.READ_ONLY | SWT.BORDER |SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
-	menu = new Menu (shell, SWT.POP_UP);
-	item = new MenuItem (menu, SWT.PUSH);
-	item.setText ("Clear");
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			dropConsole.setText("");
-		}
-	});
-	item = new MenuItem (menu, SWT.CHECK);
-	item.setText ("Show Event detail");
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			MenuItem item = (MenuItem)e.widget;
-			dropEventDetail = item.getSelection();
-		}
-	});
-	dropConsole.setMenu(menu);
-	
-	int height = 300;
-	FormData data = new FormData();
-	data.top = new FormAttachment(0, 10);
-	data.left = new FormAttachment(0, 10);
-	dragLabel.setLayoutData(data);
-	
-	data = new FormData();
-	data.top = new FormAttachment(dragLabel, 10);
-	data.left = new FormAttachment(0, 10);
-	data.right = new FormAttachment(50, -10);
-	data.height = height;
-	dragWidgetGroup.setLayoutData(data);
-	
-	data = new FormData();
-	data.top = new FormAttachment(dragWidgetGroup, 10);
-	data.left = new FormAttachment(0, 10);
-	data.right = new FormAttachment(50, -10);
-	//data.bottom = new FormAttachment(dropTypesGroup, -10);
-	dragOperationsGroup.setLayoutData(data);
-	
-	data = new FormData();
-	data.top = new FormAttachment(dragOperationsGroup, 10);
-	data.left = new FormAttachment(0, 10);
-	data.right = new FormAttachment(50, -10);
-	dragTypesGroup.setLayoutData(data);
-	
-	data = new FormData();
-	data.top = new FormAttachment(dragTypesGroup, 10);
-	data.bottom = new FormAttachment(100, -10);
-	data.left = new FormAttachment(0, 10);
-	data.right = new FormAttachment(50, -10);
-	dragConsole.setLayoutData(data);
-	
-	data = new FormData();
-	data.top = new FormAttachment(0, 10);
-	data.left = new FormAttachment(dragTypesGroup, 10);
-	dropLabel.setLayoutData(data);
-	
-	data = new FormData();
-	data.top = new FormAttachment(dropLabel, 10);
-	data.left = new FormAttachment(dragTypesGroup, 10);
-	data.right = new FormAttachment(100, -10);
-	data.height = height;
-	dropWidgetGroup.setLayoutData(data);
-	
-	data = new FormData();
-	data.top = new FormAttachment(dropWidgetGroup, 10);
-	data.left = new FormAttachment(dragTypesGroup, 10);
-	data.right = new FormAttachment(100, -10);
-	dropOperationsGroup.setLayoutData(data);
-	
-	data = new FormData();
-	data.top = new FormAttachment(dropOperationsGroup, 10);
-	data.left = new FormAttachment(dragTypesGroup, 10);
-	data.right = new FormAttachment(100, -10);
-	//data.bottom = new FormAttachment(dragConsole, -10);
-	dropTypesGroup.setLayoutData(data);
-	
-	data = new FormData();
-	data.top = new FormAttachment(dropTypesGroup, 10);
-	data.bottom = new FormAttachment(100, -10);
-	data.left = new FormAttachment(50, 10);
-	data.right = new FormAttachment(100, -10);
-	dropConsole.setLayoutData(data);
-		
-	shell.setSize(1000, 900);
-	shell.open();
-		
-	while (!shell.isDisposed()) {
-		if (!display.readAndDispatch())
-			display.sleep();
-	}	
-}
-
-private void printEvent(DragSourceEvent e) {
-	if (!dragEventDetail) return;
-	StringBuffer sb = new StringBuffer();
-	sb.append("widget: "); sb.append(e.widget);
-	sb.append(", time: "); sb.append(e.time);
-	sb.append(", operation: "); sb.append(e.detail);
-	sb.append(", type: "); sb.append(e.dataType != null ? e.dataType.type : 0);
-	sb.append(", doit: "); sb.append(e.doit);
-	sb.append(", data: "); sb.append(e.data);
-	sb.append("\n");
-	dragConsole.append(sb.toString());
-}
-
-private void printEvent(DropTargetEvent e) {
-	if (!dropEventDetail) return;
-	StringBuffer sb = new StringBuffer();
-	sb.append("widget; "); sb.append(e.widget);
-	sb.append(", time: "); sb.append(e.time);
-	sb.append(", x: "); sb.append(e.x);
-	sb.append(", y: "); sb.append(e.y);
-	sb.append(", item: "); sb.append(e.item);
-	sb.append(", operations: "); sb.append(e.operations);
-	sb.append(", operation: "); sb.append(e.detail);
-	sb.append(", feedback: "); sb.append(e.feedback);
-	if (e.dataTypes != null) {
-		for (int i = 0; i < e.dataTypes.length; i++) {
-			sb.append(", dataType "); sb.append(i); sb.append(": "); sb.append(e.dataTypes[i].type);
-		}
-	} else {
-		sb.append(", dataTypes: none");
-	}
-	sb.append(", currentDataType: "); sb.append(e.currentDataType);
-	sb.append(", data: "); sb.append(e.data);
-	sb.append("\n");
-	dropConsole.append(sb.toString());
-}
-
-private void removeDragTransfer(Transfer transfer){
-	if (dragTypes.length == 1) {
-		dragTypes = new Transfer[0];
-	} else {
-		int index = -1;
-		for(int i = 0; i < dragTypes.length; i++) {
-			if (dragTypes[i] == transfer) {
-				index = i;
-				break;
-			}
-		}
-		if (index == -1) return;
-		Transfer[] newTypes = new Transfer[dragTypes.length - 1];
-		System.arraycopy(dragTypes, 0, newTypes, 0, index);
-		System.arraycopy(dragTypes, index + 1, newTypes, index, dragTypes.length - index - 1);
-		dragTypes = newTypes;
-	}
-	if (dragSource != null) {
-		dragSource.setTransfer(dragTypes);
-	}
-}
-
-private void removeDropTransfer(Transfer transfer){
-	if (dropTypes.length == 1) {
-		dropTypes = new Transfer[0];
-	} else {
-		int index = -1;
-		for(int i = 0; i < dropTypes.length; i++) {
-			if (dropTypes[i] == transfer) {
-				index = i;
-				break;
-			}
-		}
-		if (index == -1) return;
-		Transfer[] newTypes = new Transfer[dropTypes.length - 1];
-		System.arraycopy(dropTypes, 0, newTypes, 0, index);
-		System.arraycopy(dropTypes, index + 1, newTypes, index, dropTypes.length - index - 1);
-		dropTypes = newTypes;
-	}
-	if (dropTarget != null) {
-		dropTarget.setTransfer(dropTypes);
-	}
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/ImageTransfer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/ImageTransfer.java
deleted file mode 100644
index 301b0fd..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/ImageTransfer.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.dnd;
-
- 
-/**
- * Transfer type to transfer SWT ImageData objects.
- */
-
-import java.io.*;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-public class ImageTransfer extends ByteArrayTransfer {
-	
-	private static final String TYPENAME = "imagedata";
-	private static final int TYPEID = registerType(TYPENAME);
-	private static ImageTransfer _instance = new ImageTransfer();
-
-public static ImageTransfer getInstance () {
-	return _instance;
-}
-
-public void javaToNative (Object object, TransferData transferData) {
-	if (object == null || !(object instanceof ImageData)) return;	
-	if (!isSupportedType(transferData)) return;
-	
-	ImageData imdata = (ImageData)object;
-	try {
-		// write data to a byte array and then ask super to convert to pMedium
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		DataOutputStream writeOut = new DataOutputStream(out);
-		ImageLoader loader = new ImageLoader();
-		loader.data = new ImageData [] {imdata};
-		loader.save(writeOut, SWT.IMAGE_BMP);
-		writeOut.close();
-		byte[] buffer = out.toByteArray();
-		super.javaToNative(buffer, transferData);
-		out.close();
-	} 
-	catch (IOException e) {
-	}
-}
-public Object nativeToJava(TransferData transferData){	
-	if (!isSupportedType(transferData)) return null;
-		
-	byte[] buffer = (byte[])super.nativeToJava(transferData);
-	if (buffer == null) return null;
-	
-	ImageData imdata;
-	try {
-		ByteArrayInputStream in = new ByteArrayInputStream(buffer);
-		DataInputStream readIn = new DataInputStream(in);
-		imdata = new ImageData(readIn);
-		readIn.close();
-	} catch (IOException ex) {
-		return null;
-	}
-	return imdata;
-}
-protected String[] getTypeNames(){
-	return new String[]{TYPENAME};
-}
-protected int[] getTypeIds(){
-	return new int[] {TYPEID};
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java
deleted file mode 100755
index 9e0d57e..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java
+++ /dev/null
@@ -1,1717 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.fileviewer;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.program.*;
-import org.eclipse.swt.widgets.*;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-/**
- * File Viewer example
- */
-public class FileViewer { 
- 	private static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_fileviewer");
-
-	private final static String DRIVE_A = "a:" + File.separator;
-	private final static String DRIVE_B = "b:" + File.separator;
-
-	/* UI elements */ 	
-	private Display display; 
-	private Shell shell;
-	private ToolBar toolBar;
-
-	private Label numObjectsLabel;
-	private Label diskSpaceLabel;
-	
-	private File currentDirectory = null;
-	private boolean initial = true;
-	
-	/* Drag and drop optimizations */
-	private boolean isDragging = false; // if this app is dragging
-	private boolean isDropping = false; // if this app is dropping
-
-	private File[]  processedDropFiles = null; // so Drag only deletes what it needs to
-	private File[]  deferredRefreshFiles = null;      // to defer notifyRefreshFiles while we do DND
-	private boolean deferredRefreshRequested = false; // to defer notifyRefreshFiles while we do DND
-	private ProgressDialog progressDialog = null; // progress dialog for locally-initiated operations
-
-	/* Combo view */
-	private static final String COMBODATA_ROOTS = "Combo.roots";
-		// File[]: Array of files whose paths are currently displayed in the combo
-	private static final String COMBODATA_LASTTEXT = "Combo.lastText";
-		// String: Previous selection text string
-
-	private Combo combo;
-
-	/* Tree view */
-	private IconCache iconCache = new IconCache();
-	private static final String TREEITEMDATA_FILE = "TreeItem.file";
-		// File: File associated with tree item
-	private static final String TREEITEMDATA_IMAGEEXPANDED = "TreeItem.imageExpanded";
-		// Image: shown when item is expanded
-	private static final String TREEITEMDATA_IMAGECOLLAPSED = "TreeItem.imageCollapsed";
-		// Image: shown when item is collapsed
-	private static final String TREEITEMDATA_STUB = "TreeItem.stub";
-		// Object: if not present or null then the item has not been populated
-
-	private Tree tree;
-	private Label treeScopeLabel;
-
-	/* Table view */
-	private static final DateFormat dateFormat = DateFormat.getDateTimeInstance(
-		DateFormat.MEDIUM, DateFormat.MEDIUM);
-	private static final String TABLEITEMDATA_FILE = "TableItem.file";
-		// File: File associated with table row
-	private static final String TABLEDATA_DIR = "Table.dir";
-		// File: Currently visible directory
-	private static final int[] tableWidths = new int[] {150, 60, 75, 150};
-	private final String[] tableTitles = new String [] {
-		FileViewer.getResourceString("table.Name.title"),
-		FileViewer.getResourceString("table.Size.title"),
-		FileViewer.getResourceString("table.Type.title"),
-		FileViewer.getResourceString("table.Modified.title")
-	};
-	private Table table;
-	private Label tableContentsOfLabel;
-
-	/* Table update worker */
-	// Control data
-	private final Object workerLock = new Object();
-		// Lock for all worker control data and state
-	private volatile Thread  workerThread = null;
-		// The worker's thread
-	private volatile boolean workerStopped = false;
-		// True if the worker must exit on completion of the current cycle
-	private volatile boolean workerCancelled = false;
-		// True if the worker must cancel its operations prematurely perhaps due to a state update
-
-	// Worker state information -- this is what gets synchronized by an update
-	private volatile File workerStateDir = null;
-
-	// State information to use for the next cycle
-	private volatile File workerNextDir = null;
-
-	/* Simulate only flag */
-	// when true, disables actual filesystem manipulations and outputs results to standard out
-	private boolean simulateOnly = true;
-
-	/**
-	 * Runs main program.
-	 */
-	public static void main (String [] args) {
-		Display display = new Display ();
-		FileViewer application = new FileViewer();
-		Shell shell = application.open(display);
-		while (! shell.isDisposed()) {
-			if (! display.readAndDispatch()) display.sleep();
-		}
-		application.close();
-		display.dispose();
-	}
-
-	/**
-	 * Opens the main program.
-	 */
-	public Shell open(Display display) {		
-		// Create the window
-		this.display = display;
-		iconCache.initResources(display);
-		shell = new Shell();
-		createShellContents();
-		notifyRefreshFiles(null);
-		shell.open();
-		return shell;
-	}
-
-	/**
-	 * Closes the main program.
-	 */
-	void close() {
-		workerStop();
-		iconCache.freeResources();
-	}
-	
-	/**
-	 * Returns a string from the resource bundle.
-	 * We don't want to crash because of a missing String.
-	 * Returns the key if not found.
-	 */
-	static String getResourceString(String key) {
-		try {
-			return resourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}			
-	}
-
-	/**
-	 * Returns a string from the resource bundle and binds it
-	 * with the given arguments. If the key is not found,
-	 * return the key.
-	 */
-	static String getResourceString(String key, Object[] args) {
-		try {
-			return MessageFormat.format(getResourceString(key), args);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}
-	}
-
-	/**
-	 * Construct the UI
-	 * 
-	 * @param container the ShellContainer managing the Shell we are rendering inside
-	 */
-	private void createShellContents() {
-		shell.setText(getResourceString("Title", new Object[] { "" }));	
-		shell.setImage(iconCache.stockImages[iconCache.shellIcon]);
-		Menu bar = new Menu(shell, SWT.BAR);
-		shell.setMenuBar(bar);
-		createFileMenu(bar);
-		createHelpMenu(bar);
-
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 3;
-		gridLayout.marginHeight = gridLayout.marginWidth = 0;
-		shell.setLayout(gridLayout);
-
-		GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gridData.widthHint = 185;
-		createComboView(shell, gridData);
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gridData.horizontalSpan = 2;
-		createToolBar(shell, gridData);
-
-		SashForm sashForm = new SashForm(shell, SWT.NONE);
-		sashForm.setOrientation(SWT.HORIZONTAL);
-		gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-		gridData.horizontalSpan = 3;
-		sashForm.setLayoutData(gridData);
-		createTreeView(sashForm);
-		createTableView(sashForm);
-		sashForm.setWeights(new int[] { 2, 5 });
-
-		numObjectsLabel = new Label(shell, SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-		gridData.widthHint = 185;
-		numObjectsLabel.setLayoutData(gridData);
-		
-		diskSpaceLabel = new Label(shell, SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-		gridData.horizontalSpan = 2;
-		diskSpaceLabel.setLayoutData(gridData);
-	}
-	
-	/**
-	 * Creates the File Menu.
-	 * 
-	 * @param parent the parent menu
-	 */
-	private void createFileMenu(Menu parent) {
-		Menu menu = new Menu(parent);
-		MenuItem header = new MenuItem(parent, SWT.CASCADE);
-		header.setText(getResourceString("menu.File.text"));
-		header.setMenu(menu);
-
-		final MenuItem simulateItem = new MenuItem(menu, SWT.CHECK);
-		simulateItem.setText(getResourceString("menu.File.SimulateOnly.text"));
-		simulateItem.setSelection(simulateOnly);
-		simulateItem.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				simulateOnly = simulateItem.getSelection();
-			}
-		});
-
-		MenuItem item = new MenuItem(menu, SWT.PUSH);
-		item.setText(getResourceString("menu.File.Close.text"));
-		item.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				shell.close();
-			}
-		});
-	}
-	
-	/**
-	 * Creates the Help Menu.
-	 * 
-	 * @param parent the parent menu
-	 */
-	private void createHelpMenu(Menu parent) {
-		Menu menu = new Menu(parent);
-		MenuItem header = new MenuItem(parent, SWT.CASCADE);
-		header.setText(getResourceString("menu.Help.text"));
-		header.setMenu(menu);
-
-		MenuItem item = new MenuItem(menu, SWT.PUSH);
-		item.setText(getResourceString("menu.Help.About.text"));		
-		item.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK);
-				box.setText(getResourceString("dialog.About.title"));
-				box.setMessage(getResourceString("dialog.About.description",
-					new Object[] { System.getProperty("os.name") }));
-				box.open();
-			}
-		});
-	}
-
-	/**
-	 * Creates the toolbar
-	 * 
-	 * @param shell the shell on which to attach the toolbar
-	 * @param layoutData the layout data
-	 */
-	private void createToolBar(final Shell shell, Object layoutData) {
-		toolBar = new ToolBar(shell, SWT.NULL);
-		toolBar.setLayoutData(layoutData);
-		ToolItem item = new ToolItem(toolBar, SWT.SEPARATOR);
-		item = new ToolItem(toolBar, SWT.PUSH);
-		item.setImage(iconCache.stockImages[iconCache.cmdParent]);
-		item.setToolTipText(getResourceString("tool.Parent.tiptext"));
-		item.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				doParent();
-			}
-		});
-		item = new ToolItem(toolBar, SWT.PUSH);
-		item.setImage(iconCache.stockImages[iconCache.cmdRefresh]);
-		item.setToolTipText(getResourceString("tool.Refresh.tiptext"));
-		item.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				doRefresh();
-			}
-		});
-		SelectionAdapter unimplementedListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK);
-				box.setText(getResourceString("dialog.NotImplemented.title"));
-				box.setMessage(getResourceString("dialog.ActionNotImplemented.description"));
-				box.open();
-			}
-		};
-
-		item = new ToolItem(toolBar, SWT.SEPARATOR);
-		item = new ToolItem(toolBar, SWT.PUSH);
-		item.setImage(iconCache.stockImages[iconCache.cmdCut]);
-		item.setToolTipText(getResourceString("tool.Cut.tiptext"));
-		item.addSelectionListener(unimplementedListener);
-		item = new ToolItem(toolBar, SWT.PUSH);
-		item.setImage(iconCache.stockImages[iconCache.cmdCopy]);
-		item.setToolTipText(getResourceString("tool.Copy.tiptext"));
-		item.addSelectionListener(unimplementedListener);
-		item = new ToolItem(toolBar, SWT.PUSH);
-		item.setImage(iconCache.stockImages[iconCache.cmdPaste]);
-		item.setToolTipText(getResourceString("tool.Paste.tiptext"));
-		item.addSelectionListener(unimplementedListener);
-
-		item = new ToolItem(toolBar, SWT.SEPARATOR);
-		item = new ToolItem(toolBar, SWT.PUSH);
-		item.setImage(iconCache.stockImages[iconCache.cmdDelete]);
-		item.setToolTipText(getResourceString("tool.Delete.tiptext"));
-		item.addSelectionListener(unimplementedListener);
-		item = new ToolItem(toolBar, SWT.PUSH);
-		item.setImage(iconCache.stockImages[iconCache.cmdRename]);
-		item.setToolTipText(getResourceString("tool.Rename.tiptext"));
-		item.addSelectionListener(unimplementedListener);
-
-		item = new ToolItem(toolBar, SWT.SEPARATOR);
-		item = new ToolItem(toolBar, SWT.PUSH);
-		item.setImage(iconCache.stockImages[iconCache.cmdSearch]);
-		item.setToolTipText(getResourceString("tool.Search.tiptext"));
-		item.addSelectionListener(unimplementedListener);
-		item = new ToolItem(toolBar, SWT.PUSH);
-		item.setImage(iconCache.stockImages[iconCache.cmdPrint]);
-		item.setToolTipText(getResourceString("tool.Print.tiptext"));
-		item.addSelectionListener(unimplementedListener);
-	}
-
-	/**
-	 * Creates the combo box view.
-	 * 
-	 * @param parent the parent control
-	 */
-	private void createComboView(Composite parent, Object layoutData) {
-		combo = new Combo(parent, SWT.NONE);
-		combo.setLayoutData(layoutData);
-		combo.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				final File[] roots = (File[]) combo.getData(COMBODATA_ROOTS);
-				if (roots == null) return;
-				int selection = combo.getSelectionIndex();
-				if (selection >= 0 && selection < roots.length) {
-					notifySelectedDirectory(roots[selection]);
-				}
-			}
-			public void widgetDefaultSelected(SelectionEvent e) {
-				final String lastText = (String) combo.getData(COMBODATA_LASTTEXT);
-				String text = combo.getText();
-				if (text == null) return;
-				if (lastText != null && lastText.equals(text)) return;
-				combo.setData(COMBODATA_LASTTEXT, text);
-				notifySelectedDirectory(new File(text));
-			}
-		});
-	}
-
-	/**
-	 * Creates the file tree view.
-	 * 
-	 * @param parent the parent control
-	 */
-	private void createTreeView(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 1;
-		gridLayout.marginHeight = gridLayout.marginWidth = 2;
-		gridLayout.horizontalSpacing = gridLayout.verticalSpacing = 0;
-		composite.setLayout(gridLayout);
-
-		treeScopeLabel = new Label(composite, SWT.BORDER);
-		treeScopeLabel.setText(FileViewer.getResourceString("details.AllFolders.text"));
-		treeScopeLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
-
-		tree = new Tree(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE);
-		tree.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL));
-
-		tree.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				final TreeItem[] selection = tree.getSelection();
-				if (selection != null && selection.length != 0) {
-					TreeItem item = selection[0];
-					File file = (File) item.getData(TREEITEMDATA_FILE);
-				
-					notifySelectedDirectory(file);
-				}
-			}
-			public void widgetDefaultSelected(SelectionEvent event) {
-				final TreeItem[] selection = tree.getSelection();
-				if (selection != null && selection.length != 0) {
-					TreeItem item = selection[0];
-					item.setExpanded(true);
-					treeExpandItem(item);
-				}
-			}
-		});
-		tree.addTreeListener(new TreeAdapter() {
-			public void treeExpanded(TreeEvent event) {
-				final TreeItem item = (TreeItem) event.item;
-				final Image image = (Image) item.getData(TREEITEMDATA_IMAGEEXPANDED);
-				if (image != null) item.setImage(image);
-				treeExpandItem(item);
-			}
-			public void treeCollapsed(TreeEvent event) {
-				final TreeItem item = (TreeItem) event.item;
-				final Image image = (Image) item.getData(TREEITEMDATA_IMAGECOLLAPSED);
-				if (image != null) item.setImage(image);
-			}
-		});
-		createTreeDragSource(tree);
-		createTreeDropTarget(tree);
-	}
-
-	/**
-	 * Creates the Drag & Drop DragSource for items being dragged from the tree.
-	 * 
-	 * @return the DragSource for the tree
-	 */
-	private DragSource createTreeDragSource(final Tree tree){
-		DragSource dragSource = new DragSource(tree, DND.DROP_MOVE | DND.DROP_COPY);
-		dragSource.setTransfer(new Transfer[] { FileTransfer.getInstance() });
-		dragSource.addDragListener(new DragSourceListener() {
-			TreeItem[] dndSelection = null;
-			String[] sourceNames = null;
-			public void dragStart(DragSourceEvent event){
-				dndSelection = tree.getSelection();
-				sourceNames = null;
-				event.doit = dndSelection.length > 0;
-				isDragging = true;
-				processedDropFiles = null;
-			}
-			public void dragFinished(DragSourceEvent event){
-				dragSourceHandleDragFinished(event, sourceNames);
-				dndSelection = null;
-				sourceNames = null;
-				isDragging = false;
-				processedDropFiles = null;
-				handleDeferredRefresh();
-			}
-			public void dragSetData(DragSourceEvent event){
-				if (dndSelection == null || dndSelection.length == 0) return;
-				if (! FileTransfer.getInstance().isSupportedType(event.dataType)) return;
-				
-				sourceNames  = new String[dndSelection.length];
-				for (int i = 0; i < dndSelection.length; i++) {
-					File file = (File) dndSelection[i].getData(TREEITEMDATA_FILE);
-					sourceNames[i] = file.getAbsolutePath();
-				}
-				event.data = sourceNames;
-			}
-		});
-		return dragSource;
-	}
-
-	/**
-	 * Creates the Drag & Drop DropTarget for items being dropped onto the tree.
-	 * 
-	 * @return the DropTarget for the tree
-	 */
-	private DropTarget createTreeDropTarget(final Tree tree) {
-		DropTarget dropTarget = new DropTarget(tree, DND.DROP_MOVE | DND.DROP_COPY);
-		dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() });
-		dropTarget.addDropListener(new DropTargetAdapter() {
-			public void dragEnter(DropTargetEvent event) {
-				isDropping = true;
-			}
-			public void dragLeave(DropTargetEvent event) {
-				isDropping = false;
-				handleDeferredRefresh();
-			}
-			public void dragOver(DropTargetEvent event) {
-				dropTargetValidate(event, getTargetFile(event));
-				event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;
-			}
-			public void drop(DropTargetEvent event) {
-				File targetFile = getTargetFile(event);
-				if (dropTargetValidate(event, targetFile))
-					dropTargetHandleDrop(event, targetFile);
-			}
-			private File getTargetFile(DropTargetEvent event) {
-				// Determine the target File for the drop 
-				TreeItem item = tree.getItem(tree.toControl(new Point(event.x, event.y)));
-				File targetFile = null;
-				if (item != null) {
-					// We are over a particular item in the tree, use the item's file
-					targetFile = (File) item.getData(TREEITEMDATA_FILE);
-				}
-				return targetFile;
-			}
-		});
-		return dropTarget;	
-	}
-
-	/**
-	 * Handles expand events on a tree item.
-	 * 
-	 * @param item the TreeItem to fill in
-	 */
-	private void treeExpandItem(TreeItem item) {
-		shell.setCursor(iconCache.stockCursors[iconCache.cursorWait]);
-		final Object stub = item.getData(TREEITEMDATA_STUB);
-		if (stub == null) treeRefreshItem(item, true);
-		shell.setCursor(iconCache.stockCursors[iconCache.cursorDefault]);
-	}
-	
-	/**
-	 * Traverse the entire tree and update only what has changed.
-	 * 
-	 * @param roots the root directory listing
-	 */
-	private void treeRefresh(File[] masterFiles) {
-		TreeItem[] items = tree.getItems();
-		int masterIndex = 0;
-		int itemIndex = 0;
-		for (int i = 0; i < items.length; ++i) {
-			final TreeItem item = items[i];
-			final File itemFile = (File) item.getData(TREEITEMDATA_FILE);
-			if ((itemFile == null) || (masterIndex == masterFiles.length)) {
-				// remove bad item or placeholder
-				item.dispose();
-				continue;
-			}
-			final File masterFile = masterFiles[masterIndex];
-			int compare = compareFiles(masterFile, itemFile);
-			if (compare == 0) {
-				// same file, update it
-				treeRefreshItem(item, false);
-				++itemIndex;
-				++masterIndex;
-			} else if (compare < 0) {
-				// should appear before file, insert it
-				TreeItem newItem = new TreeItem(tree, SWT.NULL, itemIndex);
-				treeInitVolume(newItem, masterFile);
-				new TreeItem(newItem, SWT.NULL); // placeholder child item to get "expand" button
-				++itemIndex;
-				++masterIndex;
-				--i;
-			} else {
-				// should appear after file, delete stale item
-				item.dispose();
-			}
-		}
-		for (;masterIndex < masterFiles.length; ++masterIndex) {
-			final File masterFile = masterFiles[masterIndex];
-			TreeItem newItem = new TreeItem(tree, SWT.NULL);
-			treeInitVolume(newItem, masterFile);
-			new TreeItem(newItem, SWT.NULL); // placeholder child item to get "expand" button
-		}		
-	}
-	
-	/**
-	 * Traverse an item in the tree and update only what has changed.
-	 * 
-	 * @param dirItem the tree item of the directory
-	 * @param forcePopulate true iff we should populate non-expanded items as well
-	 */
-	private void treeRefreshItem(TreeItem dirItem, boolean forcePopulate) {
-		final File dir = (File) dirItem.getData(TREEITEMDATA_FILE);
-		
-		if (! forcePopulate && ! dirItem.getExpanded()) {
-			// Refresh non-expanded item
-			if (dirItem.getData(TREEITEMDATA_STUB) != null) {
-				treeItemRemoveAll(dirItem);
-				new TreeItem(dirItem, SWT.NULL); // placeholder child item to get "expand" button
-				dirItem.setData(TREEITEMDATA_STUB, null);
-			}
-			return;
-		}
-		// Refresh expanded item
-		dirItem.setData(TREEITEMDATA_STUB, this); // clear stub flag
-
-		/* Get directory listing */
-		File[] subFiles = (dir != null) ? FileViewer.getDirectoryList(dir) : null;
-		if (subFiles == null || subFiles.length == 0) {
-			/* Error or no contents */
-			treeItemRemoveAll(dirItem);
-			dirItem.setExpanded(false);
-			return;
-		}
-
-		/* Refresh sub-items */
-		TreeItem[] items = dirItem.getItems();
-		final File[] masterFiles = subFiles;
-		int masterIndex = 0;
-		int itemIndex = 0;
-		File masterFile = null;
-		for (int i = 0; i < items.length; ++i) {
-			while ((masterFile == null) && (masterIndex < masterFiles.length)) {
-				masterFile = masterFiles[masterIndex++];
-				if (! masterFile.isDirectory()) masterFile = null;
-			}
-
-			final TreeItem item = items[i];
-			final File itemFile = (File) item.getData(TREEITEMDATA_FILE);
-			if ((itemFile == null) || (masterFile == null)) {
-				// remove bad item or placeholder
-				item.dispose();
-				continue;
-			}
-			int compare = compareFiles(masterFile, itemFile);
-			if (compare == 0) {
-				// same file, update it
-				treeRefreshItem(item, false);
-				masterFile = null;
-				++itemIndex;
-			} else if (compare < 0) {
-				// should appear before file, insert it
-				TreeItem newItem = new TreeItem(dirItem, SWT.NULL, itemIndex);
-				treeInitFolder(newItem, masterFile);
-				new TreeItem(newItem, SWT.NULL); // add a placeholder child item so we get the "expand" button
-				masterFile = null;
-				++itemIndex;
-				--i;
-			} else {
-				// should appear after file, delete stale item
-				item.dispose();
-			}
-		}
-		while ((masterFile != null) || (masterIndex < masterFiles.length)) {
-			if (masterFile != null) {
-				TreeItem newItem = new TreeItem(dirItem, SWT.NULL);
-				treeInitFolder(newItem, masterFile);
-				new TreeItem(newItem, SWT.NULL); // add a placeholder child item so we get the "expand" button
-				if (masterIndex == masterFiles.length) break;
-			}
-			masterFile = masterFiles[masterIndex++];
-			if (! masterFile.isDirectory()) masterFile = null;
-		}
-	}
-
-	/**
-	 * Foreign method: removes all children of a TreeItem.
-	 * @param treeItem the TreeItem
-	 */
-	private static void treeItemRemoveAll(TreeItem treeItem) {
-		final TreeItem[] children = treeItem.getItems();
-		for (int i = 0; i < children.length; ++i) {
-			children[i].dispose();
-		}
-	}
-
-	/**
-	 * Initializes a folder item.
-	 * 
-	 * @param item the TreeItem to initialize
-	 * @param folder the File associated with this TreeItem
-	 */
-	private void treeInitFolder(TreeItem item, File folder) {
-		item.setText(folder.getName());
-		item.setImage(iconCache.stockImages[iconCache.iconClosedFolder]);
-		item.setData(TREEITEMDATA_FILE, folder);
-		item.setData(TREEITEMDATA_IMAGEEXPANDED, iconCache.stockImages[iconCache.iconOpenFolder]);
-		item.setData(TREEITEMDATA_IMAGECOLLAPSED, iconCache.stockImages[iconCache.iconClosedFolder]);
-	}
-
-	/**
-	 * Initializes a volume item.
-	 * 
-	 * @param item the TreeItem to initialize
-	 * @param volume the File associated with this TreeItem
-	 */
-	private void treeInitVolume(TreeItem item, File volume) {
-		item.setText(volume.getPath());
-		item.setImage(iconCache.stockImages[iconCache.iconClosedDrive]);
-		item.setData(TREEITEMDATA_FILE, volume);
-		item.setData(TREEITEMDATA_IMAGEEXPANDED, iconCache.stockImages[iconCache.iconOpenDrive]);
-		item.setData(TREEITEMDATA_IMAGECOLLAPSED, iconCache.stockImages[iconCache.iconClosedDrive]);
-	}
-
-	/**
-	 * Creates the file details table.
-	 * 
-	 * @param parent the parent control
-	 */
-	private void createTableView(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 1;
-		gridLayout.marginHeight = gridLayout.marginWidth = 2;
-		gridLayout.horizontalSpacing = gridLayout.verticalSpacing = 0;
-		composite.setLayout(gridLayout);
-		tableContentsOfLabel = new Label(composite, SWT.BORDER);
-		tableContentsOfLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
-
-		table = new Table(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
-		table.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL));
-
-		for (int i = 0; i < tableTitles.length; ++i) {
-			TableColumn column = new TableColumn(table, SWT.NONE);
-			column.setText(tableTitles[i]);
-			column.setWidth(tableWidths[i]);
-		}
-		table.setHeaderVisible(true);
-		table.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				notifySelectedFiles(getSelectedFiles());
-			}
-			public void widgetDefaultSelected(SelectionEvent event) {
-				doDefaultFileAction(getSelectedFiles());
-			}
-			private File[] getSelectedFiles() {
-				final TableItem[] items = table.getSelection();
-				final File[] files = new File[items.length];
-				
-				for (int i = 0; i < items.length; ++i) {
-					files[i] = (File) items[i].getData(TABLEITEMDATA_FILE);
-				}
-				return files;
-			}
-		});
-
-		createTableDragSource(table);
-		createTableDropTarget(table);
-	}
-
-	/**
-	 * Creates the Drag & Drop DragSource for items being dragged from the table.
-	 * 
-	 * @return the DragSource for the table
-	 */
-	private DragSource createTableDragSource(final Table table) {
-		DragSource dragSource = new DragSource(table, DND.DROP_MOVE | DND.DROP_COPY);
-		dragSource.setTransfer(new Transfer[] { FileTransfer.getInstance() });
-		dragSource.addDragListener(new DragSourceListener() {
-			TableItem[] dndSelection = null;
-			String[] sourceNames = null;
-			public void dragStart(DragSourceEvent event){
-				dndSelection = table.getSelection();
-				sourceNames = null;
-				event.doit = dndSelection.length > 0;
-				isDragging = true;
-			}
-			public void dragFinished(DragSourceEvent event){
-				dragSourceHandleDragFinished(event, sourceNames);
-				dndSelection = null;
-				sourceNames = null;
-				isDragging = false;
-				handleDeferredRefresh();
-			}
-			public void dragSetData(DragSourceEvent event){
-				if (dndSelection == null || dndSelection.length == 0) return;
-				if (! FileTransfer.getInstance().isSupportedType(event.dataType)) return;
-				
-				sourceNames  = new String[dndSelection.length];
-				for (int i = 0; i < dndSelection.length; i++) {
-					File file = (File) dndSelection[i].getData(TABLEITEMDATA_FILE);
-					sourceNames[i] = file.getAbsolutePath();
-				}
-				event.data = sourceNames;
-			}
-		});
-		return dragSource;
-	}
-
-	/**
-	 * Creates the Drag & Drop DropTarget for items being dropped onto the table.
-	 * 
-	 * @return the DropTarget for the table
-	 */
-	private DropTarget createTableDropTarget(final Table table){
-		DropTarget dropTarget = new DropTarget(table, DND.DROP_MOVE | DND.DROP_COPY);
-		dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() });
-		dropTarget.addDropListener(new DropTargetAdapter() {
-			public void dragEnter(DropTargetEvent event) {
-				isDropping = true;
-			}
-			public void dragLeave(DropTargetEvent event) {
-				isDropping = false;
-				handleDeferredRefresh();
-			}
-			public void dragOver(DropTargetEvent event) {
-				dropTargetValidate(event, getTargetFile(event));
-				event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;
-			}
-			public void drop(DropTargetEvent event) {
-				File targetFile = getTargetFile(event);
-				if (dropTargetValidate(event, targetFile))
-					dropTargetHandleDrop(event, targetFile);
-			}
-			private File getTargetFile(DropTargetEvent event) {
-				// Determine the target File for the drop 
-				TableItem item = table.getItem(table.toControl(new Point(event.x, event.y)));
-				File targetFile = null;
-				if (item == null) {
-					// We are over an unoccupied area of the table.
-					// If it is a COPY, we can use the table's root file.
-					if (event.detail == DND.DROP_COPY) {
-						targetFile = (File) table.getData(TABLEDATA_DIR);
-					}
-				} else {
-					// We are over a particular item in the table, use the item's file
-					targetFile = (File) item.getData(TABLEITEMDATA_FILE);
-				}
-				return targetFile;
-			}
-		});
-		return dropTarget;
-	}
-
-	/**
-	 * Notifies the application components that a new current directory has been selected
-	 * 
-	 * @param dir the directory that was selected, null is ignored
-	 */
-	void notifySelectedDirectory(File dir) {
-		if (dir == null) return;
-		if (currentDirectory != null && dir.equals(currentDirectory)) return;
-		currentDirectory = dir;
-		notifySelectedFiles(null);
-		
-		/* Shell:
-		 * Sets the title to indicate the selected directory
-		 */
-		shell.setText(getResourceString("Title", new Object[] { currentDirectory.getPath() }));
-
-		/* Table view:
-		 * Displays the contents of the selected directory.
-		 */
-		workerUpdate(dir, false);
-
-		/* Combo view:
-		 * Sets the combo box to point to the selected directory.
-		 */
-		final File[] comboRoots = (File[]) combo.getData(COMBODATA_ROOTS);
-		int comboEntry = -1;
-		if (comboRoots != null) {		
-			for (int i = 0; i < comboRoots.length; ++i) {
-				if (dir.equals(comboRoots[i])) {
-					comboEntry = i;
-					break;
-				}
-			}
-		}
-		if (comboEntry == -1) combo.setText(dir.getPath());
-		else combo.select(comboEntry);
-
-		/* Tree view:
-		 * If not already expanded, recursively expands the parents of the specified
-		 * directory until it is visible.
-		 */
-		Vector /* of File */ path = new Vector();
-		// Build a stack of paths from the root of the tree
-		while (dir != null) {
-			path.add(dir);
-			dir = dir.getParentFile();
-		}
-		// Recursively expand the tree to get to the specified directory
-		TreeItem[] items = tree.getItems();
-		TreeItem lastItem = null;
-		for (int i = path.size() - 1; i >= 0; --i) {
-			final File pathElement = (File) path.elementAt(i);
-
-			// Search for a particular File in the array of tree items
-			// No guarantee that the items are sorted in any recognizable fashion, so we'll
-			// just sequential scan.  There shouldn't be more than a few thousand entries.
-			TreeItem item = null;
-			for (int k = 0; k < items.length; ++k) {
-				item = items[k];
-				if (item.isDisposed()) continue;
-				final File itemFile = (File) item.getData(TREEITEMDATA_FILE);
-				if (itemFile != null && itemFile.equals(pathElement)) break;
-			}
-			if (item == null) break;
-			lastItem = item;
-			if (i != 0 && !item.getExpanded()) {
-				treeExpandItem(item);
-				item.setExpanded(true);
-			}
-			items = item.getItems();
-		}
-		tree.setSelection((lastItem != null) ? new TreeItem[] { lastItem } : new TreeItem[0]);
-	}
-	
-	/**
-	 * Notifies the application components that files have been selected
-	 * 
-	 * @param files the files that were selected, null or empty array indicates no active selection
-	 */
-	void notifySelectedFiles(File[] files) {
-		/* Details:
-		 * Update the details that are visible on screen.
-		 */
-		if ((files != null) && (files.length != 0)) {
-			numObjectsLabel.setText(getResourceString("details.NumberOfSelectedFiles.text",
-				new Object[] { new Integer(files.length) }));
-			long fileSize = 0L;
-			for (int i = 0; i < files.length; ++i) {
-				fileSize += files[i].length();
-			}
-			diskSpaceLabel.setText(getResourceString("details.FileSize.text",
-				new Object[] { new Long(fileSize) }));
-		} else {
-			// No files selected
-			diskSpaceLabel.setText("");
-			if (currentDirectory != null) {
-				int numObjects = getDirectoryList(currentDirectory).length;
-				numObjectsLabel.setText(getResourceString("details.DirNumberOfObjects.text",
-					new Object[] { new Integer(numObjects) }));
-			} else {
-				numObjectsLabel.setText("");
-			}
-		}
-	}
-
-	/**
-	 * Notifies the application components that files must be refreshed
-	 * 
-	 * @param files the files that need refreshing, empty array is a no-op, null refreshes all
-	 */
-	void notifyRefreshFiles(File[] files) {
-		if (files != null && files.length == 0) return;
-
-		if ((deferredRefreshRequested) && (deferredRefreshFiles != null) && (files != null)) {
-			// merge requests
-			File[] newRequest = new File[deferredRefreshFiles.length + files.length];
-			System.arraycopy(deferredRefreshFiles, 0, newRequest, 0, deferredRefreshFiles.length);
-			System.arraycopy(files, 0, newRequest, deferredRefreshFiles.length, files.length);
-			deferredRefreshFiles = newRequest;
-		} else {
-			deferredRefreshFiles = files;
-			deferredRefreshRequested = true;
-		}
-		handleDeferredRefresh();
-	}
-
-	/**
-	 * Handles deferred Refresh notifications (due to Drag & Drop)
-	 */
-	void handleDeferredRefresh() {
-		if (isDragging || isDropping || ! deferredRefreshRequested) return;
-		if (progressDialog != null) {
-			progressDialog.close();
-			progressDialog = null;
-		}
-
-		deferredRefreshRequested = false;
-		File[] files = deferredRefreshFiles;
-		deferredRefreshFiles = null;
-
-		shell.setCursor(iconCache.stockCursors[iconCache.cursorWait]);
-
-		/* Table view:
-		 * Refreshes information about any files in the list and their children.
-		 */
-		boolean refreshTable = false;
-		if (files != null) {
-			for (int i = 0; i < files.length; ++i) {
-				final File file = files[i];
-				if (file.equals(currentDirectory)) {
-					refreshTable = true;
-					break;
-				}
-				File parentFile = file.getParentFile();
-				if ((parentFile != null) && (parentFile.equals(currentDirectory))) {
-					refreshTable = true;
-					break;
-				}
-			}
-		} else refreshTable = true;
-		if (refreshTable) workerUpdate(currentDirectory, true);
-
-		/* Combo view:
-		 * Refreshes the list of roots
-		 */
-		final File[] roots = getRoots();
-
-		if (files == null) {
-			boolean refreshCombo = false;
-			final File[] comboRoots = (File[]) combo.getData(COMBODATA_ROOTS);
-		
-			if ((comboRoots != null) && (comboRoots.length == roots.length)) {
-				for (int i = 0; i < roots.length; ++i) {
-					if (! roots[i].equals(comboRoots[i])) {
-						refreshCombo = true;
-						break;
-					}
-				}
-			} else refreshCombo = true;
-
-			if (refreshCombo) {
-				combo.removeAll();
-				combo.setData(COMBODATA_ROOTS, roots);
-				for (int i = 0; i < roots.length; ++i) {
-					final File file = roots[i];
-					combo.add(file.getPath());
-				}
-			}
-		}
-
-		/* Tree view:
-		 * Refreshes information about any files in the list and their children.
-		 */
-		treeRefresh(roots);
-		
-		// Remind everyone where we are in the filesystem
-		final File dir = currentDirectory;
-		currentDirectory = null;
-		notifySelectedDirectory(dir);
-
-		shell.setCursor(iconCache.stockCursors[iconCache.cursorDefault]);
-	}
-
-	/**
-	 * Performs the default action on a set of files.
-	 * 
-	 * @param files the array of files to process
-	 */
-	void doDefaultFileAction(File[] files) {
-		// only uses the 1st file (for now)
-		if (files.length == 0) return;
-		final File file = files[0];
-
-		if (file.isDirectory()) {
-			notifySelectedDirectory(file);
-		} else {
-			final String fileName = file.getAbsolutePath();
-			if (! Program.launch(fileName)) {	
-				MessageBox dialog = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
-				dialog.setMessage(getResourceString("error.FailedLaunch.message", new Object[] { fileName }));
-				dialog.setText(shell.getText ());
-				dialog.open();
-			}
-		}
-	}
-
-	/**
-	 * Navigates to the parent directory
-	 */
-	void doParent() {
-		if (currentDirectory == null) return;
-		File parentDirectory = currentDirectory.getParentFile();
-		notifySelectedDirectory(parentDirectory);
-	}
-	 
-	/**
-	 * Performs a refresh
-	 */
-	void doRefresh() {
-		notifyRefreshFiles(null);
-	}
-
-	/**
-	 * Validates a drop target as a candidate for a drop operation.
-	 * <p>
-	 * Used in dragOver() and dropAccept().<br>
-	 * Note event.detail is set to DND.DROP_NONE by this method if the target is not valid.
-	 * </p>
-	 * @param event the DropTargetEvent to validate
-	 * @param targetFile the File representing the drop target location
-	 *        under inspection, or null if none
-	 */
-	private boolean dropTargetValidate(DropTargetEvent event, File targetFile) {
-		if (targetFile != null && targetFile.isDirectory()) {
-			if (event.detail != DND.DROP_COPY && event.detail != DND.DROP_MOVE) {
-				event.detail = DND.DROP_MOVE;
-			}
-		} else {
-			event.detail = DND.DROP_NONE;
-		}
-		return event.detail != DND.DROP_NONE;
-	}
-
-	/**
-	 * Handles a drop on a dropTarget.
-	 * <p>
-	 * Used in drop().<br>
-	 * Note event.detail is modified by this method.
-	 * </p>
-	 * @param event the DropTargetEvent passed as parameter to the drop() method
-	 * @param targetFile the File representing the drop target location
-	 *        under inspection, or null if none
-	 */
-	private void dropTargetHandleDrop(DropTargetEvent event, File targetFile) {
-		// Get dropped data (an array of filenames)
-		if (! dropTargetValidate(event, targetFile)) return;
-		final String[] sourceNames = (String[]) event.data;
-		if (sourceNames == null) event.detail = DND.DROP_NONE;
-		if (event.detail == DND.DROP_NONE) return;
-
-		// Open progress dialog
-		progressDialog = new ProgressDialog(shell,
-			(event.detail == DND.DROP_MOVE) ? ProgressDialog.MOVE : ProgressDialog.COPY);
-		progressDialog.setTotalWorkUnits(sourceNames.length);
-		progressDialog.open();
-
-		// Copy each file
-		Vector /* of File */ processedFiles = new Vector();
-		for (int i = 0; (i < sourceNames.length) && (! progressDialog.isCancelled()); i++){
-			final File source = new File(sourceNames[i]);
-			final File dest = new File(targetFile, source.getName());
-			if (source.equals(dest)) continue; // ignore if in same location
-
-			progressDialog.setDetailFile(source, ProgressDialog.COPY);
-			while (! progressDialog.isCancelled()) {
-				if (copyFileStructure(source, dest)) {
-					processedFiles.add(source);
-					break;
-				} else if (! progressDialog.isCancelled()) {
-					if (event.detail == DND.DROP_MOVE && (!isDragging)) {
-						// It is not possible to notify an external drag source that a drop
-						// operation was only partially successful.  This is particularly a
-						// problem for DROP_MOVE operations since unless the source gets
-						// DROP_NONE, it will delete the original data including bits that
-						// may not have been transferred successfully.
-						MessageBox box = new MessageBox(shell, SWT.ICON_ERROR | SWT.RETRY | SWT.CANCEL);
-						box.setText(getResourceString("dialog.FailedCopy.title"));
-						box.setMessage(getResourceString("dialog.FailedCopy.description",
-							new Object[] { source, dest }));
-						int button = box.open();
-						if (button == SWT.CANCEL) {
-							i = sourceNames.length;
-							event.detail = DND.DROP_NONE;
-							break;
-						}
-					} else {
-						// We can recover gracefully from errors if the drag source belongs
-						// to this application since it will look at processedDropFiles.
-						MessageBox box = new MessageBox(shell, SWT.ICON_ERROR | SWT.ABORT | SWT.RETRY | SWT.IGNORE);
-						box.setText(getResourceString("dialog.FailedCopy.title"));
-						box.setMessage(getResourceString("dialog.FailedCopy.description",
-							new Object[] { source, dest }));
-						int button = box.open();
-						if (button == SWT.ABORT) i = sourceNames.length;
-						if (button != SWT.RETRY) break;
-					}
-				}
-				progressDialog.addProgress(1);
-			}
-		}
-		if (isDragging) {
-			// Remember exactly which files we processed
-			processedDropFiles = ((File[]) processedFiles.toArray(new File[processedFiles.size()]));
-		} else {
-			progressDialog.close();
-			progressDialog = null;
-		}
-		notifyRefreshFiles(new File[] { targetFile });
-	}
-
-	/**
-	 * Handles the completion of a drag on a dragSource.
-	 * <p>
-	 * Used in dragFinished().<br>
-	 * </p>
-	 * @param event the DragSourceEvent passed as parameter to the dragFinished() method
-	 * @param sourceNames the names of the files that were dragged (event.data is invalid)
-	 */
-	private void dragSourceHandleDragFinished(DragSourceEvent event, String[] sourceNames) {
-		if (sourceNames == null) return;
-		if (event.detail != DND.DROP_MOVE) return;
-
-		// Get array of files that were actually transferred
-		final File[] sourceFiles;
-		if (processedDropFiles != null) {
-			sourceFiles = processedDropFiles;
-		} else {
-			sourceFiles = new File[sourceNames.length];
-			for (int i = 0; i < sourceNames.length; ++i)
-				sourceFiles[i] = new File(sourceNames[i]);
-		}	
-		if (progressDialog == null)
-			progressDialog = new ProgressDialog(shell, ProgressDialog.MOVE);
-		progressDialog.setTotalWorkUnits(sourceFiles.length);
-		progressDialog.setProgress(0);
-		progressDialog.open();
-
-		// Delete each file
-		for (int i = 0; (i < sourceFiles.length) && (! progressDialog.isCancelled()); i++){
-			final File source = sourceFiles[i];
-			progressDialog.setDetailFile(source, ProgressDialog.DELETE);
-			while (! progressDialog.isCancelled()) {
-				if (deleteFileStructure(source)) {
-					break;
-				} else if (! progressDialog.isCancelled()) {
-					MessageBox box = new MessageBox(shell, SWT.ICON_ERROR | SWT.ABORT | SWT.RETRY | SWT.IGNORE);
-					box.setText(getResourceString("dialog.FailedDelete.title"));
-					box.setMessage(getResourceString("dialog.FailedDelete.description",
-						new Object[] { source }));
-					int button = box.open();
-					if (button == SWT.ABORT) i = sourceNames.length;
-					if (button == SWT.RETRY) break;
-				}
-			}
-			progressDialog.addProgress(1);
-		}
-		notifyRefreshFiles(sourceFiles);
-		progressDialog.close();
-		progressDialog = null;
-	}
-
-	/**
-	 * Gets filesystem root entries
-	 * 
-	 * @return an array of Files corresponding to the root directories on the platform,
-	 *         may be empty but not null
-	 */
-	File[] getRoots() {
-		/*
-		 * On JDK 1.22 only...
-		 */
-		// return File.listRoots();
-
-		/*
-		 * On JDK 1.1.7 and beyond...
-		 * -- PORTABILITY ISSUES HERE --
-		 */
-		if (System.getProperty ("os.name").indexOf ("Windows") != -1) {
-			Vector /* of File */ list = new Vector();
-			list.add(new File(DRIVE_A));
-			list.add(new File(DRIVE_B));
-			for (char i = 'c'; i <= 'z'; ++i) {
-				File drive = new File(i + ":" + File.separator);
-				if (drive.isDirectory() && drive.exists()) {
-					list.add(drive);
-					if (initial && i == 'c') {
-						currentDirectory = drive;
-						initial = false;
-					}
-				}
-			}
-			File[] roots = (File[]) list.toArray(new File[list.size()]);
-			sortFiles(roots);
-			return roots;
-		} else {
-			File root = new File(File.separator);
-			if (initial) {
-				currentDirectory = root;
-			}
-			return new File[] { root };
-		}
-	}
-
-	/**
-	 * Gets a directory listing
-	 * 
-	 * @param file the directory to be listed
-	 * @return an array of files this directory contains, may be empty but not null
-	 */
-	static File[] getDirectoryList(File file) {
-		File[] list = file.listFiles();
-		if (list == null) return new File[0];
-		sortFiles(list);
-		return list;
-	}
-	
-	/**
-	 * Copies a file or entire directory structure.
-	 * 
-	 * @param oldFile the location of the old file or directory
-	 * @param newFile the location of the new file or directory
-	 * @return true iff the operation succeeds without errors
-	 */
-	boolean copyFileStructure(File oldFile, File newFile) {
-		if (oldFile == null || newFile == null) return false;
-		
-		// ensure that newFile is not a child of oldFile or a dupe
-		File searchFile = newFile;
-		do {
-			if (oldFile.equals(searchFile)) return false;
-			searchFile = searchFile.getParentFile();
-		} while (searchFile != null);
-		
-		if (oldFile.isDirectory()) {
-			/*
-			 * Copy a directory
-			 */
-			if (progressDialog != null) {
-				progressDialog.setDetailFile(oldFile, ProgressDialog.COPY);
-			}
-			if (simulateOnly) {
-				//System.out.println(getResourceString("simulate.DirectoriesCreated.text",
-				//	new Object[] { newFile.getPath() }));
-			} else {
-				if (! newFile.mkdirs()) return false;
-			}
-			File[] subFiles = oldFile.listFiles();
-			if (subFiles != null) {
-				if (progressDialog != null) {
-					progressDialog.addWorkUnits(subFiles.length);
-				}
-				for (int i = 0; i < subFiles.length; i++) {
-					File oldSubFile = subFiles[i];
-					File newSubFile = new File(newFile, oldSubFile.getName());
-					if (! copyFileStructure(oldSubFile, newSubFile)) return false;
-					if (progressDialog != null) {
-						progressDialog.addProgress(1);
-						if (progressDialog.isCancelled()) return false;
-					}
-				}
-			}
-		} else {
-			/*
-			 * Copy a file
-			 */
-			if (simulateOnly) {
-				//System.out.println(getResourceString("simulate.CopyFromTo.text",
-				//	new Object[] { oldFile.getPath(), newFile.getPath() }));
-			} else {
-				FileReader in = null;
-				FileWriter out = null;
-				try {
-					in = new FileReader(oldFile);
-					out = new FileWriter(newFile);
-			
-					int count;
-					while ((count = in.read()) != -1) out.write(count);
-				} catch (FileNotFoundException e) {
-					return false;
-				} catch (IOException e) {
-					return false;
-				} finally {
-					try {
-						if (in != null) in.close();
-						if (out != null) out.close();
-					} catch (IOException e) {
-						return false;
-					}
-				}
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Deletes a file or entire directory structure.
-	 * 
-	 * @param oldFile the location of the old file or directory
-	 * @return true iff the operation succeeds without errors
-	 */
-	boolean deleteFileStructure(File oldFile) {
-		if (oldFile == null) return false;		
-		if (oldFile.isDirectory()) {
-			/*
-			 * Delete a directory
-			 */
-			if (progressDialog != null) {
-				progressDialog.setDetailFile(oldFile, ProgressDialog.DELETE);
-			}
-			File[] subFiles = oldFile.listFiles();
-			if (subFiles != null) {
-				if (progressDialog != null) {
-					progressDialog.addWorkUnits(subFiles.length);
-				}
-				for (int i = 0; i < subFiles.length; i++) {
-					File oldSubFile = subFiles[i];
-					if (! deleteFileStructure(oldSubFile)) return false;
-					if (progressDialog != null) {
-						progressDialog.addProgress(1);
-						if (progressDialog.isCancelled()) return false;
-					}
-				}
-			}
-		}
-		if (simulateOnly) {
-			//System.out.println(getResourceString("simulate.Delete.text",
-			//	new Object[] { oldFile.getPath(), oldFile.getPath() }));
-			return true;
-		} else {
-			return oldFile.delete();
-		}
-	}
-	
-	/**
-	 * Sorts files lexicographically by name.
-	 * 
-	 * @param files the array of Files to be sorted
-	 */
-	static void sortFiles(File[] files) {
-		/* Very lazy merge sort algorithm */
-		sortBlock(files, 0, files.length - 1, new File[files.length]);
-	}
-	private static void sortBlock(File[] files, int start, int end, File[] mergeTemp) {
-		final int length = end - start + 1;
-		if (length < 8) {
-			for (int i = end; i > start; --i) {
-				for (int j = end; j > start; --j)  {
-					if (compareFiles(files[j - 1], files[j]) > 0) {
-					    final File temp = files[j]; 
-					    files[j] = files[j-1]; 
-					    files[j-1] = temp;
-					}
-			    }
-			}
-			return;
-		}
-		final int mid = (start + end) / 2;
-		sortBlock(files, start, mid, mergeTemp);
-		sortBlock(files, mid + 1, end, mergeTemp);
-		int x = start;
-		int y = mid + 1;
-		for (int i = 0; i < length; ++i) {
-			if ((x > mid) || ((y <= end) && compareFiles(files[x], files[y]) > 0)) {
-				mergeTemp[i] = files[y++];
-			} else {
-				mergeTemp[i] = files[x++];
-			}
-		}
-		for (int i = 0; i < length; ++i) files[i + start] = mergeTemp[i];
-	}
-	private static int compareFiles(File a, File b) {
-//		boolean aIsDir = a.isDirectory();
-//		boolean bIsDir = b.isDirectory();
-//		if (aIsDir && ! bIsDir) return -1;
-//		if (bIsDir && ! aIsDir) return 1;
-
-		// sort case-sensitive files in a case-insensitive manner
-		int compare = a.getName().compareToIgnoreCase(b.getName());
-		if (compare == 0) compare = a.getName().compareTo(b.getName());
-		return compare;
-	}
-	
-	/*
-	 * This worker updates the table with file information in the background.
-	 * <p>
-	 * Implementation notes:
-	 * <ul>
-	 * <li> It is designed such that it can be interrupted cleanly.
-	 * <li> It uses asyncExec() in some places to ensure that SWT Widgets are manipulated in the
-	 *      right thread.  Exclusive use of syncExec() would be inappropriate as it would require a pair
-	 *      of context switches between each table update operation.
-	 * </ul>
-	 * </p>
-	 */
-
-	/**
-	 * Stops the worker and waits for it to terminate.
-	 */
-	void workerStop() {
-		if (workerThread == null) return;
-		synchronized(workerLock) {
-			workerCancelled = true;
-			workerStopped = true;
-			workerLock.notifyAll();
-		}
-		while (workerThread != null) {
-			if (! display.readAndDispatch()) display.sleep();
-		}
-	}
-
-	/**
-	 * Notifies the worker that it should update itself with new data.
-	 * Cancels any previous operation and begins a new one.
-	 * 
-	 * @param dir the new base directory for the table, null is ignored
-	 * @param force if true causes a refresh even if the data is the same
-	 */
-	void workerUpdate(File dir, boolean force) {
-		if (dir == null) return;
-		if ((!force) && (workerNextDir != null) && (workerNextDir.equals(dir))) return;
-
-		synchronized(workerLock) {
-			workerNextDir = dir;
-			workerStopped = false;
-			workerCancelled = true;
-			workerLock.notifyAll();
-		}
-		if (workerThread == null) {
-			workerThread = new Thread(workerRunnable);
-			workerThread.start();
-		}
-	}
-
-	/**
-	 * Manages the worker's thread
-	 */
-	private final Runnable workerRunnable = new Runnable() {
-		public void run() {
-			while (! workerStopped) {
-				synchronized(workerLock) {
-					workerCancelled = false;
-					workerStateDir = workerNextDir;
-				}
-				workerExecute();
-				synchronized(workerLock) {
-					try {
-						if ((!workerCancelled) && (workerStateDir == workerNextDir)) workerLock.wait();
-					} catch (InterruptedException e) {
-					}
-				}
-			}
-			workerThread = null;
-			// wake up UI thread in case it is in a modal loop awaiting thread termination
-			// (see workerStop())
-			display.wake();
-		}
-	};
-	
-	/**
-	 * Updates the table's contents
-	 */
-	private void workerExecute() {
-		File[] dirList;
-		// Clear existing information
-		display.syncExec(new Runnable() {
-			public void run() {
-				tableContentsOfLabel.setText(FileViewer.getResourceString("details.ContentsOf.text",
-					new Object[] { workerStateDir.getPath() }));
-				table.removeAll();
-				table.setData(TABLEDATA_DIR, workerStateDir);
-			}
-		});
-		dirList = getDirectoryList(workerStateDir);
-		
-		for (int i = 0; (! workerCancelled) && (i < dirList.length); i++) {
-			workerAddFileDetails(dirList[i]);
-		}
-
-	}
-		
-	/**
-	 * Adds a file's detail information to the directory list
-	 */
-	private void workerAddFileDetails(final File file) {
-		final String nameString = file.getName();
-		final String dateString = dateFormat.format(new Date(file.lastModified()));
-		final String sizeString;
-		final String typeString;
-		final Image iconImage;
-		
-		if (file.isDirectory()) {
-			typeString = getResourceString("filetype.Folder");
-			sizeString = "";
-			iconImage = iconCache.stockImages[iconCache.iconClosedFolder];
-		} else {
-			sizeString = getResourceString("filesize.KB",
-				new Object[] { new Long((file.length() + 512) / 1024) });
-			
-			int dot = nameString.lastIndexOf('.');
-			if (dot != -1) {
-				String extension = nameString.substring(dot);
-				Program program = Program.findProgram(extension);
-				if (program != null) {
-					typeString = program.getName();
-					iconImage = iconCache.getIconFromProgram(program);
-				} else {
-					typeString = getResourceString("filetype.Unknown", new Object[] { extension.toUpperCase() });
-					iconImage = iconCache.stockImages[iconCache.iconFile];
-				}
-			} else {
-				typeString = getResourceString("filetype.None");
-				iconImage = iconCache.stockImages[iconCache.iconFile];
-			}
-		}
-		final String[] strings = new String[] { nameString, sizeString, typeString, dateString };
-
-		display.syncExec(new Runnable() {
-			public void run () {
-				// guard against the shell being closed before this runs
-				if (shell.isDisposed()) return;
-				TableItem tableItem = new TableItem(table, 0);
-				tableItem.setText(strings);
-				tableItem.setImage(iconImage);
-				tableItem.setData(TABLEITEMDATA_FILE, file);
-			}
-		});
-	}
-	
-	/**
-	 * Instances of this class manage a progress dialog for file operations.
-	 */
-	class ProgressDialog {
-		public final static int COPY = 0;
-		public final static int DELETE = 1;
-		public final static int MOVE = 2;
-
-		Shell shell;
-		Label messageLabel, detailLabel;
-		ProgressBar progressBar;
-		Button cancelButton;
-		boolean isCancelled = false;
-
-		final String operationKeyName[] = {
-			"Copy",
-			"Delete",
-			"Move"
-		};
-	
-		/**
-		 * Creates a progress dialog but does not open it immediately.
-		 * 
-		 * @param parent the parent Shell
-		 * @param style one of COPY, MOVE
-		 */
-		public ProgressDialog(Shell parent, int style) {
-			shell = new Shell(parent, SWT.BORDER | SWT.TITLE | SWT.APPLICATION_MODAL);
-			GridLayout gridLayout = new GridLayout();
-			shell.setLayout(gridLayout);
-			shell.setText(getResourceString("progressDialog." + operationKeyName[style] + ".title"));
-			shell.addShellListener(new ShellAdapter() {
-				public void shellClosed(ShellEvent e) {
-					isCancelled = true;
-				}
-			});
-			
-			messageLabel = new Label(shell, SWT.HORIZONTAL);
-			messageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
-			messageLabel.setText(getResourceString("progressDialog." + operationKeyName[style] + ".description"));
-			
-			progressBar = new ProgressBar(shell, SWT.HORIZONTAL | SWT.WRAP);
-			progressBar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
-			progressBar.setMinimum(0);
-			progressBar.setMaximum(0);
-			
-			detailLabel = new Label(shell, SWT.HORIZONTAL);
-			GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
-			gridData.widthHint = 400;
-			detailLabel.setLayoutData(gridData);
-			
-			cancelButton = new Button(shell, SWT.PUSH);
-			cancelButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_FILL));
-			cancelButton.setText(getResourceString("progressDialog.cancelButton.text"));
-			cancelButton.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					isCancelled = true;
-					cancelButton.setEnabled(false);
-				}
-			});
-		}
-		/**
-		 * Sets the detail text to show the filename along with a string
-		 * representing the operation being performed on that file.
-		 * 
-		 * @param file the file to be detailed
-		 * @param operation one of COPY, DELETE
-		 */
-		public void setDetailFile(File file, int operation) {
-			detailLabel.setText(getResourceString("progressDialog." + operationKeyName[operation] + ".operation",
-				new Object[] { file }));
-		}
-		/**
-		 * Returns true if the Cancel button was been clicked.
-		 * 
-		 * @return true if the Cancel button was clicked.
-		 */
-		public boolean isCancelled() {
-			return isCancelled;
-		}
-		/**
-		 * Sets the total number of work units to be performed.
-		 * 
-		 * @param work the total number of work units
-		 */
-		public void setTotalWorkUnits(int work) {
-			progressBar.setMaximum(work);
-		}
-		/**
-		 * Adds to the total number of work units to be performed.
-		 * 
-		 * @param work the number of work units to add
-		 */
-		public void addWorkUnits(int work) {
-			setTotalWorkUnits(progressBar.getMaximum() + work);
-		}
-		/**
-		 * Sets the progress of completion of the total work units.
-		 * 
-		 * @param work the total number of work units completed
-		 */
-		public void setProgress(int work) {
-			progressBar.setSelection(work);
-			while (display.readAndDispatch()); // enable event processing
-		}
-		/**
-		 * Adds to the progress of completion of the total work units.
-		 * 
-		 * @param work the number of work units completed to add
-		 */
-		public void addProgress(int work) {
-			setProgress(progressBar.getSelection() + work);
-		}
-		/**
-		 * Opens the dialog.
-		 */
-		public void open() {
-			shell.pack();
-			final Shell parentShell = (Shell) shell.getParent();
-			Rectangle rect = parentShell.getBounds();
-			Rectangle bounds = shell.getBounds();
-			bounds.x = rect.x + (rect.width - bounds.width) / 2;
-			bounds.y = rect.y + (rect.height - bounds.height) / 2;
-			shell.setBounds(bounds);
-			shell.open();
-		}
-		/**
-		 * Closes the dialog and disposes its resources.
-		 */
-		public void close() {
-			shell.close();
-			shell.dispose();
-			shell = null;
-			messageLabel = null;
-			detailLabel = null;
-			progressBar = null;
-			cancelButton = null;
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java
deleted file mode 100755
index 5f27107..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.fileviewer;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.program.*;
-import org.eclipse.swt.widgets.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Manages icons for the application.
- * This is necessary as we could easily end up creating thousands of icons
- * bearing the same image.
- */
-class IconCache {
-	// Stock images
-	public final int
-		shellIcon = 0,
-		iconClosedDrive = 1,
-		iconClosedFolder = 2,
-		iconFile = 3,
-		iconOpenDrive = 4,
-		iconOpenFolder = 5,
-		cmdCopy = 6,
-		cmdCut = 7,
-		cmdDelete = 8,
-		cmdParent = 9,
-		cmdPaste = 10,
-		cmdPrint = 11,
-		cmdRefresh = 12,
-		cmdRename = 13,
-		cmdSearch = 14;
-	public final String[] stockImageLocations = {
-		"generic_example.gif",
-		"icon_ClosedDrive.gif",
-		"icon_ClosedFolder.gif",
-		"icon_File.gif",
-		"icon_OpenDrive.gif",
-		"icon_OpenFolder.gif",
-		"cmd_Copy.gif",
-		"cmd_Cut.gif",
-		"cmd_Delete.gif",
-		"cmd_Parent.gif",
-		"cmd_Paste.gif",
-		"cmd_Print.gif",
-		"cmd_Refresh.gif",
-		"cmd_Rename.gif",
-		"cmd_Search.gif"
-	};
-	public Image stockImages[];
-	
-	// Stock cursors
-	public final int
-		cursorDefault = 0,
-		cursorWait = 1;
-	public Cursor stockCursors[];
-	// Cached icons
-	private Hashtable iconCache; /* map Program to Image */
-	
-	public IconCache() {
-	}
-	/**
-	 * Loads the resources
-	 * 
-	 * @param display the display
-	 */
-	public void initResources(Display display) {
-		if (stockImages == null) {
-			stockImages = new Image[stockImageLocations.length];
-				
-			for (int i = 0; i < stockImageLocations.length; ++i) {
-				Image image = createStockImage(display, stockImageLocations[i]);
-				if (image == null) {
-					freeResources();
-					throw new IllegalStateException(
-						FileViewer.getResourceString("error.CouldNotLoadResources"));
-				}
-				stockImages[i] = image;
-			}
-		}	
-		if (stockCursors == null) {
-			stockCursors = new Cursor[] {
-				null,
-				new Cursor(display, SWT.CURSOR_WAIT)
-			};
-		}
-		iconCache = new Hashtable();
-	}
-	/**
-	 * Frees the resources
-	 */
-	public void freeResources() {
-		if (stockImages != null) {
-			for (int i = 0; i < stockImages.length; ++i) {
-				final Image image = stockImages[i];
-				if (image != null) image.dispose();
-			}
-			stockImages = null;
-		}
-		if (iconCache != null) {
-			for (Enumeration it = iconCache.elements(); it.hasMoreElements(); ) {
-				Image image = (Image) it.nextElement();
-				image.dispose();
-			}
-		}
-	}
-	/**
-	 * Creates a stock image
-	 * 
-	 * @param display the display
-	 * @param path the relative path to the icon
-	 */
-	private Image createStockImage(Display display, String path) {
-		try {
-			InputStream stream = IconCache.class.getResourceAsStream(path);
-			if (stream != null) {
-				ImageData imageData = new ImageData(stream);
-				if (imageData != null) {
-					ImageData mask = imageData.getTransparencyMask();
-					return new Image(display, imageData, mask);
-				}
-			}
-		} catch (Exception e) {
-		}
-		return null;
-	}
-	/**
-	 * Gets an image for a file associated with a given program
-	 *
-	 * @param program the Program
-	 */
-	public Image getIconFromProgram(Program program) {
-		Image image = (Image) iconCache.get(program);
-		if (image == null) {
-			ImageData imageData = program.getImageData();
-			if (imageData != null) {
-				image = new Image(null, imageData, imageData.getTransparencyMask());
-				iconCache.put(program, image);
-			} else {
-				image = stockImages[iconFile];
-			}
-		}
-		return image;
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif
deleted file mode 100755
index 4274b07..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif
deleted file mode 100755
index eb948b9..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif
deleted file mode 100755
index 6f64766..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif
deleted file mode 100755
index 9b278e6..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif
deleted file mode 100755
index 75e0ab2..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif
deleted file mode 100755
index 4dfa8cd..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif
deleted file mode 100755
index a063c23..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif
deleted file mode 100755
index 25b1325..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif
deleted file mode 100755
index 6dc3ebe..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif
deleted file mode 100755
index f9fb6b0..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif
deleted file mode 100755
index 04e530e..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif
deleted file mode 100755
index beb6ed1..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif
deleted file mode 100755
index 6b86d07..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif
deleted file mode 100755
index 7b2b633..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif
deleted file mode 100755
index a9c77734..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java
deleted file mode 100755
index b383bd2..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.helloworld;
-
-
-import org.eclipse.swt.widgets.*;
-
-/*
- * This example demonstrates the minimum amount of code required
- * to open an SWT Shell and process the events.
- */
-public class HelloWorld1 {
-
-public static void main (String [] args) {
-	Display display = new Display ();
-	Shell shell = new HelloWorld1 ().open (display);
-	while (!shell.isDisposed ()) {
-		if (!display.readAndDispatch ()) display.sleep ();
-	}
-	display.dispose ();
-}
-	
-public Shell open (Display display) {
-	Shell shell = new Shell (display);
-	shell.open ();
-	return shell;
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java
deleted file mode 100755
index c5061e4..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.helloworld;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import java.util.ResourceBundle;
-
-/*
- * This example builds on HelloWorld1 and demonstrates the minimum amount 
- * of code required to open an SWT Shell with a Label and process the events.
- */
-public class HelloWorld2 {
-	private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld");
-	
-public static void main (String [] args) {
-	Display display = new Display ();
-	Shell shell = new HelloWorld2 ().open (display);
-	while (!shell.isDisposed ()) {
-		if (!display.readAndDispatch ()) display.sleep ();
-	}
-	display.dispose ();
-}
-
-public Shell open (Display display) {
-	Shell shell = new Shell (display);
-	Label label = new Label (shell, SWT.CENTER);
-	label.setText (resHello.getString("Hello_world"));
-	label.setBounds (shell.getClientArea ());
-	shell.open ();
-	return shell;
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java
deleted file mode 100755
index ce391a0..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.helloworld;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import java.util.ResourceBundle;
-
-/*
- * This example builds on HelloWorld2 and demonstrates how to resize the 
- * Label when the Shell resizes using a Listener mechanism.
- */
-public class HelloWorld3 {
-	private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld");
-	
-public static void main (String [] args) {
-	Display display = new Display ();
-	Shell shell = new HelloWorld3 ().open (display);
-	while (!shell.isDisposed ()) {
-		if (!display.readAndDispatch ()) display.sleep ();
-	}
-	display.dispose ();
-}
-
-public Shell open (Display display) {
-	final Shell shell = new Shell (display);
-	final Label label = new Label (shell, SWT.CENTER);
-	label.setText (resHello.getString("Hello_world"));
-	label.pack();
-	shell.addControlListener(new ControlAdapter() {
-		public void controlResized(ControlEvent e) {
-			label.setBounds (shell.getClientArea ());
-		}
-	});
-	shell.pack();
-	shell.open ();
-	return shell;
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java
deleted file mode 100755
index 24cb8af..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.helloworld;
-
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import java.util.ResourceBundle;
-
-/*
- * This example builds on HelloWorld2 and demonstrates how to resize the 
- * Label when the Shell resizes using a Layout.
- */
-public class HelloWorld4 {
-	private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld");
-	
-public static void main (String [] args) {
-	Display display = new Display ();
-	Shell shell = new HelloWorld4 ().open (display);
-	while (!shell.isDisposed ()) {
-		if (!display.readAndDispatch ()) display.sleep ();
-	}
-	display.dispose ();
-}
-
-public Shell open (Display display) {
-	Shell shell = new Shell (display);
-	shell.setLayout(new FillLayout());
-	Label label = new Label (shell, SWT.CENTER);
-	label.setText (resHello.getString("Hello_world"));
-	shell.pack ();
-	shell.open ();
-	return shell;
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java
deleted file mode 100755
index c58eb73..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.helloworld;
-
-
-
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import java.util.ResourceBundle;
-
-/*
- * This example builds on HelloWorld1 and demonstrates how to draw directly
- * on an SWT Control.
- */
-public class HelloWorld5 {
-	private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld");
-
-public static void main (String [] args) {
-	Display display = new Display ();
-	Shell shell = new HelloWorld5 ().open (display);
-	while (!shell.isDisposed ()) {
-		if (!display.readAndDispatch ()) display.sleep ();
-	}
-	display.dispose ();
-}
-
-public Shell open (Display display) {
-	final Color red = new Color(display, 0xFF, 0, 0);
-	final Shell shell = new Shell (display);
-	shell.addPaintListener(new PaintListener () {
-		public void paintControl(PaintEvent event){
-			GC gc = event.gc;
-			gc.setForeground(red);
-			Rectangle rect = shell.getClientArea();
-			gc.drawRectangle(rect.x + 10, rect.y + 10, rect.width - 20, rect.height - 20);
-			gc.drawString(resHello.getString("Hello_world"), rect.x + 20, rect.y + 20);
-		}
-	});
-	shell.addDisposeListener (new DisposeListener () {
-		public void widgetDisposed (DisposeEvent e) {
-			red.dispose();
-		}
-	});
-	shell.open ();
-	return shell;
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java
deleted file mode 100755
index e1dc2c1..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.hoverhelp;
-
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-/**
- * This example demonstrates how to implement hover help feedback
- * using the MouseTrackListener.
- */
-public class HoverHelp {
-	private static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_hoverhelp");;
-	
-	static final int
-		hhiInformation = 0,
-		hhiWarning = 1;
-	static final String[] imageLocations = {
-		"information.gif",
-		"warning.gif"
-	};
-	Image images[];
-
-	/**
-	 * Runs main program.
-	 */
-	public static void main (String [] args) {
-		Display display = new Display();
-		Shell shell = new HoverHelp().open(display);
-		// Event loop
-		while (shell != null && ! shell.isDisposed()) {
-			if (! display.readAndDispatch()) display.sleep();
-		}
-		// Cleanup
-		display.dispose();
-
-	}
-	
-	/**
-	 * Opens the main program.
-	 */
-	public Shell open(Display display) {		
-		// Load the images
-		Class clazz = HoverHelp.class;
-		try {
-			if (images == null) {
-				images = new Image[imageLocations.length];
-				
-				for (int i = 0; i < imageLocations.length; ++i) {
-					InputStream stream = clazz.getResourceAsStream(imageLocations[i]);
-					ImageData source = new ImageData(stream);
-					ImageData mask = source.getTransparencyMask();
-					images[i] = new Image(display, source, mask);
-				}
-			}	
-		} catch (Exception ex) {
-			System.err.println(getResourceString("error.CouldNotLoadResources",
-				new Object[] { ex.getMessage() }));
-			return null;
-		}
-
-		// Create the window
-		Shell shell = new Shell();
-		createPartControl(shell);
-		shell.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				/* Free resources */
-				if (images != null) {
-					for (int i = 0; i < images.length; i++) {
-						final Image image = images[i];
-						if (image != null) image.dispose();
-					}
-					images = null;
-				}
-			}
-		});
-		shell.pack();
-		shell.open();
-		return shell;
-	}
-
-	/**
-	 * Gets a string from the resource bundle.
-	 * We don't want to crash because of a missing String.
-	 * Returns the key if not found.
-	 */
-	public String getResourceString(String key) {
-		try {
-			return resourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}			
-	}
-
-	/**
-	 * Gets a string from the resource bundle and binds it
-	 * with the given arguments. If the key is not found,
-	 * return the key.
-	 */
-	public String getResourceString(String key, Object[] args) {
-		try {
-			return MessageFormat.format(getResourceString(key), args);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}
-	}
-
-	/**
-	 * Creates the example
-	 */
-	public void createPartControl(Composite frame) {
-		final ToolTipHandler tooltip = new ToolTipHandler(frame.getShell());
-		
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		frame.setLayout(layout);
-	
-		ToolBar bar = new ToolBar (frame, SWT.BORDER);
-		for (int i=0; i<5; i++) {
-			ToolItem item = new ToolItem (bar, SWT.PUSH);
-			item.setText (getResourceString("ToolItem.text", new Object[] { new Integer(i) }));
-			item.setData ("TIP_TEXT", getResourceString("ToolItem.tooltip",
-				new Object[] { item.getText() }));
-			item.setData ("TIP_HELPTEXTHANDLER", new ToolTipHelpTextHandler() {
-				public String getHelpText(Widget widget) {
-					Item item = (Item) widget;
-					return getResourceString("ToolItem.help", new Object[] { item.getText() });
-				}
-			});
-		}
-		GridData gridData = new GridData();
-		gridData.horizontalSpan = 3;
-		bar.setLayoutData(gridData);
-		tooltip.activateHoverHelp(bar);
-
-		Table table = new Table (frame, SWT.BORDER);
-		for (int i=0; i<4; i++) {
-			TableItem item = new TableItem (table, SWT.PUSH);
-			item.setText (getResourceString("Item", new Object[] { new Integer(i) }));
-			item.setData ("TIP_IMAGE", images[hhiInformation]);
-			item.setText (getResourceString("TableItem.text", new Object[] { new Integer(i) }));
-			item.setData ("TIP_TEXT", getResourceString("TableItem.tooltip",
-				new Object[] { item.getText() }));
-			item.setData ("TIP_HELPTEXTHANDLER", new ToolTipHelpTextHandler() {
-				public String getHelpText(Widget widget) {
-					Item item = (Item) widget;
-					return getResourceString("TableItem.help", new Object[] { item.getText() });
-				}
-			});
-		}
-		table.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL));
-		tooltip.activateHoverHelp(table);
-	
-		Tree tree = new Tree (frame, SWT.BORDER);
-		for (int i=0; i<4; i++) {
-			TreeItem item = new TreeItem (tree, SWT.PUSH);
-			item.setText (getResourceString("Item", new Object[] { new Integer(i) }));
-			item.setData ("TIP_IMAGE", images[hhiWarning]);
-			item.setText (getResourceString("TreeItem.text", new Object[] { new Integer(i) }));
-			item.setData ("TIP_TEXT", getResourceString("TreeItem.tooltip",
-				new Object[] { item.getText() }));
-			item.setData ("TIP_HELPTEXTHANDLER", new ToolTipHelpTextHandler() {
-				public String getHelpText(Widget widget) {
-					Item item = (Item) widget;
-					return getResourceString("TreeItem.help", new Object[] { item.getText() });
-				}
-			});
-		}
-		tree.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL));
-		tooltip.activateHoverHelp(tree);
-	
-		Button button = new Button (frame, SWT.PUSH);
-		button.setText (getResourceString("Hello.text"));
-		button.setData ("TIP_TEXT", getResourceString("Hello.tooltip"));
-		tooltip.activateHoverHelp(button);
-	}
-
-	/**
-	 * Emulated tooltip handler
-	 * Notice that we could display anything in a tooltip besides text and images.
-	 * For instance, it might make sense to embed large tables of data or buttons linking
-	 * data under inspection to material elsewhere, or perform dynamic lookup for creating
-	 * tooltip text on the fly.
-	 */
-	protected static class ToolTipHandler {
-		private Shell  parentShell;
-		private Shell  tipShell;
-		private Label  tipLabelImage, tipLabelText;
-		private Widget tipWidget; // widget this tooltip is hovering over
-		private Point  tipPosition; // the position being hovered over
-	
-		/**
-		 * Creates a new tooltip handler
-		 *
-		 * @param parent the parent Shell
-		 */	
-		public ToolTipHandler(Shell parent) {
-			final Display display = parent.getDisplay();
-			this.parentShell = parent;
-	
-			tipShell = new Shell(parent, SWT.ON_TOP);
-			GridLayout gridLayout = new GridLayout();
-			gridLayout.numColumns = 2;
-			gridLayout.marginWidth = 2;
-			gridLayout.marginHeight = 2;
-			tipShell.setLayout(gridLayout);
-	
-			tipShell.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-			
-			tipLabelImage = new Label(tipShell, SWT.NONE);
-			tipLabelImage.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
-			tipLabelImage.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-			tipLabelImage.setLayoutData(new GridData(GridData.FILL_HORIZONTAL |
-				GridData.VERTICAL_ALIGN_CENTER));
-	
-			tipLabelText = new Label(tipShell, SWT.NONE);
-			tipLabelText.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
-			tipLabelText.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-			tipLabelText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL |
-				GridData.VERTICAL_ALIGN_CENTER));
-		}
-	
-		/**
-		 * Enables customized hover help for a specified control
-		 * 
-		 * @control the control on which to enable hoverhelp
-		 */
-		public void activateHoverHelp(final Control control) {
-			/*
-			 * Get out of the way if we attempt to activate the control underneath the tooltip
-			 */
-			control.addMouseListener(new MouseAdapter () {
-				public void mouseDown (MouseEvent e) {
-					if (tipShell.isVisible()) tipShell.setVisible(false);
-				}	
-			});
-	
-			/*
-			 * Trap hover events to pop-up tooltip
-			 */
-			control.addMouseTrackListener(new MouseTrackAdapter () {
-				public void mouseExit(MouseEvent e) {
-					if (tipShell.isVisible()) tipShell.setVisible(false);
-					tipWidget = null;
-				}
-				public void mouseHover (MouseEvent event) {
-					Point pt = new Point (event.x, event.y);
-					Widget widget = event.widget;
-					if (widget instanceof ToolBar) {
-						ToolBar w = (ToolBar) widget;
-						widget = w.getItem (pt);
-					}
-					if (widget instanceof Table) {
-						Table w = (Table) widget;
-						widget = w.getItem (pt);
-					}
-					if (widget instanceof Tree) {
-						Tree w = (Tree) widget;
-						widget = w.getItem (pt);
-					}
-					if (widget == null) {
-						tipShell.setVisible(false);
-						tipWidget = null;
-						return;
-					}
-					if (widget == tipWidget) return;
-					tipWidget = widget;
-					tipPosition = control.toDisplay(pt);
-					String text = (String) widget.getData("TIP_TEXT");
-					Image image = (Image) widget.getData("TIP_IMAGE");
-					tipLabelText.setText(text != null ? text : "");
-					tipLabelImage.setImage(image); // accepts null
-					tipShell.pack();
-					setHoverLocation(tipShell, tipPosition);
-					tipShell.setVisible(true);
-				}
-			});
-	
-			/*
-			 * Trap F1 Help to pop up a custom help box
-			 */
-			control.addHelpListener(new HelpListener () {
-				public void helpRequested(HelpEvent event) {
-					if (tipWidget == null) return;
-					ToolTipHelpTextHandler handler = (ToolTipHelpTextHandler)
-						tipWidget.getData("TIP_HELPTEXTHANDLER");
-					if (handler == null) return;
-					String text = handler.getHelpText(tipWidget);
-					if (text == null) return;
-					
-					if (tipShell.isVisible()) {
-						tipShell.setVisible(false);
-						Shell helpShell = new Shell(parentShell, SWT.SHELL_TRIM);
-						helpShell.setLayout(new FillLayout());
-						Label label = new Label(helpShell, SWT.NONE);
-						label.setText(text);
-						helpShell.pack();
-						setHoverLocation(helpShell, tipPosition);
-						helpShell.open();
-					}
-				}
-			});
-		}
-		
-		/**
-		 * Sets the location for a hovering shell
-		 * @param shell the object that is to hover
-		 * @param position the position of a widget to hover over
-		 * @return the top-left location for a hovering box
-		 */
-		private void setHoverLocation(Shell shell, Point position) {
-			Rectangle displayBounds = shell.getDisplay().getBounds();
-			Rectangle shellBounds = shell.getBounds();
-			shellBounds.x = Math.max(Math.min(position.x, displayBounds.width - shellBounds.width), 0);
-			shellBounds.y = Math.max(Math.min(position.y + 16, displayBounds.height - shellBounds.height), 0);
-			shell.setBounds(shellBounds);
-		}
-	}
-	
-	/**
-	 * ToolTip help handler
-	 */
-	protected interface ToolTipHelpTextHandler {
-		/**
-		 * Get help text
-		 * @param widget the widget that is under help
-		 * @return a help text string
-		 */
-		public String getHelpText(Widget widget);
-	}	
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif
deleted file mode 100755
index 26c7477..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif
deleted file mode 100755
index cf4fdf9..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java
deleted file mode 100755
index a2ed426..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java
+++ /dev/null
@@ -1,2080 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.imageanalyzer;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.printing.*;
-import org.eclipse.swt.custom.*;
-import java.util.*;
-import java.net.*;
-import java.io.*;
-import java.text.MessageFormat;
-
-public class ImageAnalyzer {
-	static ResourceBundle bundle = ResourceBundle.getBundle("examples_images");
-	Display display;
-	Shell shell;
-	Canvas imageCanvas, paletteCanvas;
-	Label typeLabel, sizeLabel, depthLabel, transparentPixelLabel,
-		timeToLoadLabel, screenSizeLabel, backgroundPixelLabel,
-		locationLabel, disposalMethodLabel, delayTimeLabel,
-		repeatCountLabel, paletteLabel, dataLabel, statusLabel;
-	Combo backgroundCombo, scaleXCombo, scaleYCombo, alphaCombo;
-	Button incrementalCheck, transparentCheck, maskCheck, backgroundCheck;
-	Button previousButton, nextButton, animateButton;
-	StyledText dataText;
-	Sash sash;
-	Color whiteColor, blackColor, redColor, greenColor, blueColor, canvasBackground;
-	Font fixedWidthFont;
-	Cursor crossCursor;
-	GC imageCanvasGC;
-	
-	int paletteWidth = 140; // recalculated and used as a width hint
-	int ix = 0, iy = 0, py = 0; // used to scroll the image and palette
-	float xscale = 1, yscale = 1; // used to scale the image
-	int alpha = 255; // used to modify the alpha value of the image
-	boolean incremental = false; // used to incrementally display an image
-	boolean transparent = true; // used to display an image with transparency
-	boolean showMask = false; // used to display an icon mask or transparent image mask
-	boolean showBackground = false; // used to display the background of an animated image
-	boolean animate = false; // used to animate a multi-image file
-	Thread animateThread; // draws animated images
-	Thread incrementalThread; // draws incremental images
-	String lastPath; // used to seed the file dialog
-	String currentName; // the current image file or URL name
-	String fileName; // the current image file
-	ImageLoader loader; // the loader for the current image file
-	ImageData[] imageDataArray; // all image data read from the current file
-	int imageDataIndex; // the index of the current image data
-	ImageData imageData; // the currently-displayed image data
-	Image image; // the currently-displayed image
-	Vector incrementalEvents; // incremental image events
-	long loadTime = 0; // the time it took to load the current image
-	
-	static final int INDEX_DIGITS = 4;
-	static final int ALPHA_CONSTANT = 0;
-	static final int ALPHA_X = 1;
-	static final int ALPHA_Y = 2;
-
-	class TextPrompter extends Dialog {
-		String message = "";
-		String result = null;
-		Shell dialog;
-		Text text;
-		public TextPrompter (Shell parent, int style) {
-			super (parent, style);
-		}
-		public TextPrompter (Shell parent) {
-			this (parent, SWT.APPLICATION_MODAL);
-		}
-		public String getMessage () {
-			return message;
-		}
-		public void setMessage (String string) {
-			message = string;
-		}
-		public String open () {
-			dialog = new Shell(getParent(), getStyle());
-			dialog.setText(getText());
-			dialog.setLayout(new GridLayout());
-			Label label = new Label(dialog, SWT.NULL);
-			label.setText(message);
-			label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			text = new Text(dialog, SWT.SINGLE | SWT.BORDER);
-			GridData data = new GridData(GridData.FILL_HORIZONTAL);
-			data.widthHint = 300;
-			text.setLayoutData(data);
-			Composite buttons = new Composite(dialog, SWT.NONE);
-			GridLayout grid = new GridLayout();
-			grid.numColumns = 2;
-			buttons.setLayout(grid);
-			buttons.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-			Button ok = new Button(buttons, SWT.PUSH);
-			ok.setText(bundle.getString("OK"));
-			data = new GridData();
-			data.widthHint = 75;
-			ok.setLayoutData(data);
-			ok.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					result = text.getText();
-					dialog.dispose();
-				}
-			});
-			Button cancel = new Button(buttons, SWT.PUSH);
-			cancel.setText(bundle.getString("Cancel"));
-			data = new GridData();
-			data.widthHint = 75;
-			cancel.setLayoutData(data);
-			cancel.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					dialog.dispose();
-				}
-			});
-			dialog.setDefaultButton(ok);
-			dialog.pack();
-			dialog.open();
-			while (!dialog.isDisposed()) {
-				if (!display.readAndDispatch()) display.sleep();
-			}
-			return result;
-		}
-	}
-
-	public static void main(String [] args) {
-		Display display = new Display();
-		ImageAnalyzer imageAnalyzer = new ImageAnalyzer();
-		Shell shell = imageAnalyzer.open(display);
-		
-		while (!shell.isDisposed())
-			if (!display.readAndDispatch()) display.sleep();
-		display.dispose();
-	}
-
-	public Shell open(Display dpy) {
-		// Create a window and set its title.
-		this.display = dpy;
-		shell = new Shell(display);
-		shell.setText(bundle.getString("Image_analyzer"));
-		
-		// Hook resize and dispose listeners.
-		shell.addControlListener(new ControlAdapter() {
-			public void controlResized(ControlEvent event) {
-				resizeShell(event);
-			}
-		});
-		shell.addShellListener(new ShellAdapter() {
-			public void shellClosed(ShellEvent e) {
-				animate = false; // stop any animation in progress
-				if (animateThread != null) {
-					// wait for the thread to die before disposing the shell.
-					while (animateThread.isAlive()) {
-						if (!display.readAndDispatch()) display.sleep();
-					}
-				}
-				e.doit = true;
-			}
-		});
-		shell.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				// Clean up.
-				if (image != null)
-					image.dispose();
-				whiteColor.dispose();
-				blackColor.dispose();
-				redColor.dispose();
-				greenColor.dispose();
-				blueColor.dispose();
-				fixedWidthFont.dispose();
-				crossCursor.dispose();
-			}
-		});
-
-		// Create colors and fonts.
-		whiteColor = new Color(display, 255, 255, 255);
-		blackColor = new Color(display, 0, 0, 0);
-		redColor = new Color(display, 255, 0, 0);
-		greenColor = new Color(display, 0, 255, 0);
-		blueColor = new Color(display, 0, 0, 255);
-		fixedWidthFont = new Font(display, "courier", 10, 0);
-		crossCursor = new Cursor(display, SWT.CURSOR_CROSS);
-		
-		// Add a menu bar and widgets.
-		createMenuBar();
-		createWidgets();
-		shell.pack();
-		
-		// Create a GC for drawing, and hook the listener to dispose it.
-		imageCanvasGC = new GC(imageCanvas);
-		imageCanvas.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				imageCanvasGC.dispose();
-			}
-		});
-		
-		// Open the window
-		shell.open();
-		return shell;
-	}
-
-	void createWidgets() {
-		// Add the widgets to the shell in a grid layout.
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.numColumns = 2;
-		shell.setLayout(layout);
-
-		// Separate the menu bar from the rest of the widgets.
-		Label separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
-		GridData gridData = new GridData();
-		gridData.horizontalSpan = 2;
-		gridData.horizontalAlignment = GridData.FILL;
-		separator.setLayoutData(gridData);
-		
-		// Add a composite to contain some control widgets across the top.
-		Composite controls = new Composite(shell, SWT.NULL);
-		RowLayout rowLayout = new RowLayout();
-		rowLayout.marginTop = 0;
-		rowLayout.marginBottom = 5;
-		rowLayout.spacing = 8;
-		controls.setLayout(rowLayout);
-		gridData = new GridData();
-		gridData.horizontalSpan = 2;
-		controls.setLayoutData(gridData);
-		
-		// Combo to change the background.
-		Group group = new Group(controls, SWT.NULL);
-		group.setLayout(new RowLayout());
-		group.setText(bundle.getString("Background"));
-		backgroundCombo = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY);
-		backgroundCombo.setItems(new String[] {
-			bundle.getString("None"),
-			bundle.getString("White"),
-			bundle.getString("Black"),
-			bundle.getString("Red"),
-			bundle.getString("Green"),
-			bundle.getString("Blue")});
-		backgroundCombo.select(backgroundCombo.indexOf(bundle.getString("White")));
-		backgroundCombo.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				changeBackground();
-			}
-		});
-		
-		// Combo to change the x scale.
-		String[] values = {
-			"0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1",
-			"1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2",
-			"3", "4", "5", "6", "7", "8", "9", "10",};
-		group = new Group(controls, SWT.NULL);
-		group.setLayout(new RowLayout());
-		group.setText(bundle.getString("X_scale"));
-		scaleXCombo = new Combo(group, SWT.DROP_DOWN);
-		for (int i = 0; i < values.length; i++) {
-			scaleXCombo.add(values[i]);
-		}
-		scaleXCombo.select(scaleXCombo.indexOf("1"));
-		scaleXCombo.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				scaleX();
-			}
-		});
-		
-		// Combo to change the y scale.
-		group = new Group(controls, SWT.NULL);
-		group.setLayout(new RowLayout());
-		group.setText(bundle.getString("Y_scale"));
-		scaleYCombo = new Combo(group, SWT.DROP_DOWN);
-		for (int i = 0; i < values.length; i++) {
-			scaleYCombo.add(values[i]);
-		}
-		scaleYCombo.select(scaleYCombo.indexOf("1"));
-		scaleYCombo.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				scaleY();
-			}
-		});
-		
-		// Combo to change the alpha value.
-		group = new Group(controls, SWT.NULL);
-		group.setLayout(new RowLayout());
-		group.setText(bundle.getString("Alpha_K"));
-		alphaCombo = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY);
-		for (int i = 0; i <= 255; i += 5) {
-			alphaCombo.add(String.valueOf(i));
-		}
-		alphaCombo.select(alphaCombo.indexOf("255"));
-		alphaCombo.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				alpha();
-			}
-		});
-		
-		// Check box to request incremental display.
-		group = new Group(controls, SWT.NULL);
-		group.setLayout(new RowLayout());
-		group.setText(bundle.getString("Display"));
-		incrementalCheck = new Button(group, SWT.CHECK);
-		incrementalCheck.setText(bundle.getString("Incremental"));
-		incrementalCheck.setSelection(incremental);
-		incrementalCheck.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				incremental = ((Button)event.widget).getSelection();
-			}
-		});
-
-		// Check box to request transparent display.
-		transparentCheck = new Button(group, SWT.CHECK);
-		transparentCheck.setText(bundle.getString("Transparent"));
-		transparentCheck.setSelection(transparent);
-		transparentCheck.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				transparent = ((Button)event.widget).getSelection();
-				if (image != null) {
-					imageCanvas.redraw();
-				}
-			}
-		});
-
-		// Check box to request mask display.
-		maskCheck = new Button(group, SWT.CHECK);
-		maskCheck.setText(bundle.getString("Mask"));
-		maskCheck.setSelection(showMask);
-		maskCheck.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				showMask = ((Button)event.widget).getSelection();
-				if (image != null) {
-					imageCanvas.redraw();
-				}
-			}
-		});
-
-		// Check box to request background display.
-		backgroundCheck = new Button(group, SWT.CHECK);
-		backgroundCheck.setText(bundle.getString("Background"));
-		backgroundCheck.setSelection(showBackground);
-		backgroundCheck.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				showBackground = ((Button)event.widget).getSelection();
-			}
-		});
-
-		// Group the animation buttons.
-		group = new Group(controls, SWT.NULL);
-		group.setLayout(new RowLayout());
-		group.setText(bundle.getString("Animation"));
-
-		// Push button to display the previous image in a multi-image file.
-		previousButton = new Button(group, SWT.PUSH);
-		previousButton.setText(bundle.getString("Previous"));
-		previousButton.setEnabled(false);
-		previousButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				previous();
-			}
-		});
-
-		// Push button to display the next image in a multi-image file.
-		nextButton = new Button(group, SWT.PUSH);
-		nextButton.setText(bundle.getString("Next"));
-		nextButton.setEnabled(false);
-		nextButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				next();
-			}
-		});
-
-		// Push button to toggle animation of a multi-image file.
-		animateButton = new Button(group, SWT.PUSH);
-		animateButton.setText(bundle.getString("Animate"));
-		animateButton.setEnabled(false);
-		animateButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				animate();
-			}
-		});
-
-		// Label to show the image file type.
-		typeLabel = new Label(shell, SWT.NULL);
-		typeLabel.setText(bundle.getString("Type_initial"));
-		typeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Canvas to show the image.
-		imageCanvas = new Canvas(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.NO_REDRAW_RESIZE);
-		imageCanvas.setBackground(whiteColor);
-		imageCanvas.setCursor(crossCursor);
-		gridData = new GridData();
-		gridData.verticalSpan = 15;
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		imageCanvas.setLayoutData(gridData);
-		imageCanvas.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				if (image != null)
-					paintImage(event);
-			}
-		});
-		imageCanvas.addMouseMoveListener(new MouseMoveListener() {
-			public void mouseMove(MouseEvent event) {
-				if (image != null) {
-					showColorAt(event.x, event.y);
-				}
-			}
-		});
-
-		// Set up the image canvas scroll bars.
-		ScrollBar horizontal = imageCanvas.getHorizontalBar();
-		horizontal.setVisible(true);
-		horizontal.setMinimum(0);
-		horizontal.setEnabled(false);
-		horizontal.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				scrollHorizontally((ScrollBar)event.widget);
-			}
-		});
-		ScrollBar vertical = imageCanvas.getVerticalBar();
-		vertical.setVisible(true);
-		vertical.setMinimum(0);
-		vertical.setEnabled(false);
-		vertical.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				scrollVertically((ScrollBar)event.widget);
-			}
-		});
-
-		// Label to show the image size.
-		sizeLabel = new Label(shell, SWT.NULL);
-		sizeLabel.setText(bundle.getString("Size_initial"));
-		sizeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Label to show the image depth.
-		depthLabel = new Label(shell, SWT.NULL);
-		depthLabel.setText(bundle.getString("Depth_initial"));
-		depthLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Label to show the transparent pixel.
-		transparentPixelLabel = new Label(shell, SWT.NULL);
-		transparentPixelLabel.setText(bundle.getString("Transparent_pixel_initial"));
-		transparentPixelLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Label to show the time to load.
-		timeToLoadLabel = new Label(shell, SWT.NULL);
-		timeToLoadLabel.setText(bundle.getString("Time_to_load_initial"));
-		timeToLoadLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Separate the animation fields from the rest of the fields.
-		separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
-		separator.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Label to show the logical screen size for animation.
-		screenSizeLabel = new Label(shell, SWT.NULL);
-		screenSizeLabel.setText(bundle.getString("Animation_size_initial"));
-		screenSizeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Label to show the background pixel.
-		backgroundPixelLabel = new Label(shell, SWT.NULL);
-		backgroundPixelLabel.setText(bundle.getString("Background_pixel_initial"));
-		backgroundPixelLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Label to show the image location (x, y).
-		locationLabel = new Label(shell, SWT.NULL);
-		locationLabel.setText(bundle.getString("Image_location_initial"));
-		locationLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Label to show the image disposal method.
-		disposalMethodLabel = new Label(shell, SWT.NULL);
-		disposalMethodLabel.setText(bundle.getString("Disposal_initial"));
-		disposalMethodLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Label to show the image delay time.
-		delayTimeLabel = new Label(shell, SWT.NULL);
-		delayTimeLabel.setText(bundle.getString("Delay_initial"));
-		delayTimeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Label to show the background pixel.
-		repeatCountLabel = new Label(shell, SWT.NULL);
-		repeatCountLabel.setText(bundle.getString("Repeats_initial"));
-		repeatCountLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Separate the animation fields from the palette.
-		separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
-		separator.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Label to show if the image has a direct or indexed palette.
-		paletteLabel = new Label(shell, SWT.NULL);
-		paletteLabel.setText(bundle.getString("Palette_initial"));
-		paletteLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		// Canvas to show the image's palette.
-		paletteCanvas = new Canvas(shell, SWT.BORDER | SWT.V_SCROLL | SWT.NO_REDRAW_RESIZE);
-		paletteCanvas.setFont(fixedWidthFont);
-		paletteCanvas.getVerticalBar().setVisible(true);
-		gridData = new GridData();
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		GC gc = new GC(paletteLabel);
-		paletteWidth = gc.stringExtent(bundle.getString("Max_length_string")).x;
-		gc.dispose();
-		gridData.widthHint = paletteWidth;
-		gridData.heightHint = 16 * 11; // show at least 16 colors
-		paletteCanvas.setLayoutData(gridData);
-		paletteCanvas.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				if (image != null)
-					paintPalette(event);
-			}
-		});
-
-		// Set up the palette canvas scroll bar.
-		vertical = paletteCanvas.getVerticalBar();
-		vertical.setVisible(true);
-		vertical.setMinimum(0);
-		vertical.setIncrement(10);
-		vertical.setEnabled(false);
-		vertical.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				scrollPalette((ScrollBar)event.widget);
-			}
-		});
-
-		// Sash to see more of image or image data.
-		sash = new Sash(shell, SWT.HORIZONTAL);
-		gridData = new GridData();
-		gridData.horizontalSpan = 2;
-		gridData.horizontalAlignment = GridData.FILL;
-		sash.setLayoutData(gridData);
-		sash.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent event) {
-				if (event.detail != SWT.DRAG) {
-					((GridData)paletteCanvas.getLayoutData()).heightHint = SWT.DEFAULT;
-					Rectangle paletteCanvasBounds = paletteCanvas.getBounds();
-					int minY = paletteCanvasBounds.y + 20;
-					Rectangle dataLabelBounds = dataLabel.getBounds();
-					int maxY = statusLabel.getBounds().y - dataLabelBounds.height - 20;
-					if (event.y > minY && event.y < maxY) {
-						Rectangle oldSash = sash.getBounds();
-						sash.setBounds(event.x, event.y, event.width, event.height);
-						int diff = event.y - oldSash.y;
-						Rectangle bounds = imageCanvas.getBounds();
-						imageCanvas.setBounds(bounds.x, bounds.y, bounds.width, bounds.height + diff);
-						bounds = paletteCanvasBounds;
-						paletteCanvas.setBounds(bounds.x, bounds.y, bounds.width, bounds.height + diff);
-						bounds = dataLabelBounds;
-						dataLabel.setBounds(bounds.x, bounds.y + diff, bounds.width, bounds.height);
-						bounds = dataText.getBounds();
-						dataText.setBounds(bounds.x, bounds.y + diff, bounds.width, bounds.height - diff);
-						//shell.layout(true);
-					}
-				}
-			}
-		});
-
-		// Label to show data-specific fields.
-		dataLabel = new Label(shell, SWT.NULL);
-		dataLabel.setText(bundle.getString("Pixel_data_initial"));
-		gridData = new GridData();
-		gridData.horizontalSpan = 2;
-		gridData.horizontalAlignment = GridData.FILL;
-		dataLabel.setLayoutData(gridData);
-		
-		// Text to show a dump of the data.
-		dataText = new StyledText(shell, SWT.BORDER | SWT.MULTI | SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL);
-		dataText.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-		dataText.setFont(fixedWidthFont);
-		gridData = new GridData();
-		gridData.horizontalSpan = 2;
-		gridData.horizontalAlignment = GridData.FILL;
-		gridData.verticalAlignment = GridData.FILL;
-		gridData.heightHint = 128;
-		gridData.grabExcessVerticalSpace = true;
-		dataText.setLayoutData(gridData);
-		dataText.addMouseListener(new MouseAdapter() {
-			public void mouseDown(MouseEvent event) {
-				if (image != null && event.button == 1) {
-					showColorForData();
-				}
-			}
-		});
-		dataText.addKeyListener(new KeyAdapter() {
-			public void keyPressed(KeyEvent event) {
-				if (image != null) {
-					showColorForData();
-				}
-			}
-		});
-		
-		// Label to show status and cursor location in image.
-		statusLabel = new Label(shell, SWT.NULL);
-		statusLabel.setText("");
-		gridData = new GridData();
-		gridData.horizontalSpan = 2;
-		gridData.horizontalAlignment = GridData.FILL;
-		statusLabel.setLayoutData(gridData);
-	}
-	
-	Menu createMenuBar() {
-		// Menu bar.
-		Menu menuBar = new Menu(shell, SWT.BAR);
-		shell.setMenuBar(menuBar);
-		createFileMenu(menuBar);
-		createAlphaMenu(menuBar);
-		return menuBar;
-	}
-	
-	void createFileMenu(Menu menuBar) {
-		// File menu
-		MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
-		item.setText(bundle.getString("File"));
-		Menu fileMenu = new Menu(shell, SWT.DROP_DOWN);
-		item.setMenu(fileMenu);
-
-		// File -> Open File...
-		item = new MenuItem(fileMenu, SWT.NULL);
-		item.setText(bundle.getString("OpenFile"));
-		item.setAccelerator(SWT.MOD1 + 'O');
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				menuOpenFile();
-			}
-		});
-		
-		// File -> Open URL...
-		item = new MenuItem(fileMenu, SWT.NULL);
-		item.setText(bundle.getString("OpenURL"));
-		item.setAccelerator(SWT.MOD1 + 'U');
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				menuOpenURL();
-			}
-		});
-		
-		// File -> Reopen
-		item = new MenuItem(fileMenu, SWT.NULL);
-		item.setText(bundle.getString("Reopen"));
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				menuReopen();
-			}
-		});
-		
-		new MenuItem(fileMenu, SWT.SEPARATOR);
-		
-		// File -> Save
-		item = new MenuItem(fileMenu, SWT.NULL);
-		item.setText(bundle.getString("Save"));
-		item.setAccelerator(SWT.MOD1 + 'S');
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				menuSave();
-			}
-		});
-		
-		// File -> Save As...
-		item = new MenuItem(fileMenu, SWT.NULL);
-		item.setText(bundle.getString("Save_as"));
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				menuSaveAs();
-			}
-		});
-		
-		// File -> Save Mask As...
-		item = new MenuItem(fileMenu, SWT.NULL);
-		item.setText(bundle.getString("Save_mask_as"));
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				menuSaveMaskAs();
-			}
-		});
-		
-		new MenuItem(fileMenu, SWT.SEPARATOR);
-		
-		// File -> Print
-		item = new MenuItem(fileMenu, SWT.NULL);
-		item.setText(bundle.getString("Print"));
-		item.setAccelerator(SWT.MOD1 + 'P');
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				menuPrint();
-			}
-		});
-		
-		new MenuItem(fileMenu, SWT.SEPARATOR);
-
-		// File -> Exit
-		item = new MenuItem(fileMenu, SWT.NULL);
-		item.setText(bundle.getString("Exit"));
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				shell.close();
-			}
-		});
-	
-	}
-
-	void createAlphaMenu(Menu menuBar) {
-		// Alpha menu
-		MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
-		item.setText(bundle.getString("Alpha"));
-		Menu alphaMenu = new Menu(shell, SWT.DROP_DOWN);
-		item.setMenu(alphaMenu);
-
-		// Alpha -> K
-		item = new MenuItem(alphaMenu, SWT.NULL);
-		item.setText("K");
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				menuComposeAlpha(ALPHA_CONSTANT);
-			}
-		});
-
-		// Alpha -> (K + x) % 256
-		item = new MenuItem(alphaMenu, SWT.NULL);
-		item.setText("(K + x) % 256");
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				menuComposeAlpha(ALPHA_X);
-			}
-		});
-
-		// Alpha -> (K + y) % 256
-		item = new MenuItem(alphaMenu, SWT.NULL);
-		item.setText("(K + y) % 256");
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				menuComposeAlpha(ALPHA_Y);
-			}
-		});
-	}
-
-	void menuComposeAlpha(int alpha_op) {
-		if (image == null) return;
-		animate = false; // stop any animation in progress
-		Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
-		shell.setCursor(waitCursor);
-		imageCanvas.setCursor(waitCursor);
-		try {
-			if (alpha_op == ALPHA_CONSTANT) {
-				imageData.alpha = alpha;
-			} else {
-				imageData.alpha = -1;
-				switch (alpha_op) {
-					case ALPHA_X: 
-						for (int y = 0; y < imageData.height; y++) {
-						for (int x = 0; x < imageData.width; x++) {
-							imageData.setAlpha(x, y, (x + alpha) % 256);
-						}
-						}
-						break;
-					case ALPHA_Y: 
-						for (int y = 0; y < imageData.height; y++) {
-						for (int x = 0; x < imageData.width; x++) {
-							imageData.setAlpha(x, y, (y + alpha) % 256);
-						}
-						}
-						break;
-					default: break;
-				}					
-			}			
-			displayImage(imageData);
-		} finally {
-			shell.setCursor(null);
-			imageCanvas.setCursor(crossCursor);
-			waitCursor.dispose();
-		}
-	}
-
-	void menuOpenFile() {
-		animate = false; // stop any animation in progress
-		resetScaleCombos();
-		
-		// Get the user to choose an image file.
-		FileDialog fileChooser = new FileDialog(shell, SWT.OPEN);
-		if (lastPath != null)
-			fileChooser.setFilterPath(lastPath);
-		fileChooser.setFilterExtensions(new String[] { "*.bmp; *.gif; *.ico; *.jpg; *.pcx; *.png; *.tif", "*.bmp", "*.gif", "*.ico", "*.jpg", "*.pcx", "*.png", "*.tif" });
-		fileChooser.setFilterNames(new String[] { bundle.getString("All_images") + " (bmp, gif, ico, jpg, pcx, png, tif)",
-		                                          "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg)", "PCX (*.pcx)", "PNG (*.png)", "TIFF (*.tif)" });
-		String filename = fileChooser.open();
-		lastPath = fileChooser.getFilterPath();
-		if (filename == null)
-			return;
-
-		Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
-		shell.setCursor(waitCursor);
-		imageCanvas.setCursor(waitCursor);
-		try {
-			loader = new ImageLoader();
-			if (incremental) {
-				// Prepare to handle incremental events.
-				loader.addImageLoaderListener(new ImageLoaderListener() {
-					public void imageDataLoaded(ImageLoaderEvent event) {
-						incrementalDataLoaded(event);
-					}
-				});
-				incrementalThreadStart();
-			}
-			// Read the new image(s) from the chosen file.
-			long startTime = System.currentTimeMillis();
-			imageDataArray = loader.load(filename);
-			loadTime = System.currentTimeMillis() - startTime;
-			if (imageDataArray.length > 0) {
-				// Cache the filename.
-				currentName = filename;
-				fileName = filename;
-				
-				// If there are multiple images in the file (typically GIF)
-				// then enable the Previous, Next and Animate buttons.
-				previousButton.setEnabled(imageDataArray.length > 1);
-				nextButton.setEnabled(imageDataArray.length > 1);
-				animateButton.setEnabled(imageDataArray.length > 1 && loader.logicalScreenWidth > 0 && loader.logicalScreenHeight > 0);
-	
-				// Display the first image in the file.
-				imageDataIndex = 0;
-				displayImage(imageDataArray[imageDataIndex]);
-				resetScrollBars();
-			}
-		} catch (SWTException e) {
-			showErrorDialog(bundle.getString("Loading_lc"), filename, e);
-		} finally {
-			shell.setCursor(null);
-			imageCanvas.setCursor(crossCursor);
-			waitCursor.dispose();
-		}
-	}
-	
-	void menuOpenURL() {
-		animate = false; // stop any animation in progress
-		resetScaleCombos();
-		
-		// Get the user to choose an image URL.
-		TextPrompter textPrompter = new TextPrompter(shell, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
-		textPrompter.setText(bundle.getString("OpenURLDialog"));
-		textPrompter.setMessage(bundle.getString("EnterURL"));
-		String urlname = textPrompter.open();
-		if (urlname == null) return;
-
-		Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
-		shell.setCursor(waitCursor);
-		imageCanvas.setCursor(waitCursor);
-		try {
-			URL url = new URL(urlname);
-			InputStream stream = url.openStream();
-			loader = new ImageLoader();
-			if (incremental) {
-				// Prepare to handle incremental events.
-				loader.addImageLoaderListener(new ImageLoaderListener() {
-					public void imageDataLoaded(ImageLoaderEvent event) {
-						incrementalDataLoaded(event);
-					}
-				});
-				incrementalThreadStart();
-			}
-			// Read the new image(s) from the chosen file.
-			long startTime = System.currentTimeMillis();
-			imageDataArray = loader.load(stream);
-			loadTime = System.currentTimeMillis() - startTime;
-			if (imageDataArray.length > 0) {
-				currentName = urlname;
-				fileName = null;
-				
-				// If there are multiple images in the file (typically GIF)
-				// then enable the Previous, Next and Animate buttons.
-				previousButton.setEnabled(imageDataArray.length > 1);
-				nextButton.setEnabled(imageDataArray.length > 1);
-				animateButton.setEnabled(imageDataArray.length > 1 && loader.logicalScreenWidth > 0 && loader.logicalScreenHeight > 0);
-	
-				// Display the first image in the file.
-				imageDataIndex = 0;
-				displayImage(imageDataArray[imageDataIndex]);
-				resetScrollBars();
-			}
-		} catch (Exception e) {
-			showErrorDialog(bundle.getString("Loading_lc"), urlname, e);
-		} finally {
-			shell.setCursor(null);
-			imageCanvas.setCursor(crossCursor);
-			waitCursor.dispose();
-		}
-	}
-
-	/*
-	 * Called to start a thread that draws incremental images
-	 * as they are loaded.
-	 */
-	void incrementalThreadStart() {
-		incrementalEvents = new Vector();
-		incrementalThread = new Thread("Incremental") {
-			public void run() {
-				// Draw the first ImageData increment.
-				while (incrementalEvents != null) {
-					// Synchronize so we don't try to remove when the vector is null.
-					synchronized (ImageAnalyzer.this) {
-						if (incrementalEvents != null) {
-							if (incrementalEvents.size() > 0) {
-								ImageLoaderEvent event = (ImageLoaderEvent) incrementalEvents.remove(0);
-								if (image != null) image.dispose();
-								image = new Image(display, event.imageData);
-								imageData = event.imageData;
-								imageCanvasGC.drawImage(
-									image,
-									0,
-									0,
-									imageData.width,
-									imageData.height,
-									imageData.x,
-									imageData.y,
-									imageData.width,
-									imageData.height);
-							} else {
-								yield();
-							}
-						}
-					}
-				}
-				display.wake();
-			}
-		};
-		incrementalThread.setDaemon(true);
-		incrementalThread.start();
-	}
-	
-	/*
-	 * Called when incremental image data has been loaded,
-	 * for example, for interlaced GIF/PNG or progressive JPEG.
-	 */
-	void incrementalDataLoaded(ImageLoaderEvent event) {
-		// Synchronize so that we do not try to add while
-		// the incremental drawing thread is removing.
-		synchronized (this) {
-			incrementalEvents.addElement(event);
-		}
-	}
-	
-	void menuSave() {
-		if (image == null) return;
-		animate = false; // stop any animation in progress
-
-		// If the image file type is unknown, we can't 'Save',
-		// so we have to use 'Save As...'.
-		if (imageData.type == SWT.IMAGE_UNDEFINED || fileName == null) {
-			menuSaveAs();
-			return;
-		}
-
-		Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
-		shell.setCursor(waitCursor);
-		imageCanvas.setCursor(waitCursor);
-		try {
-			// Save the current image to the current file.
-			loader.data = new ImageData[] {imageData};
-			loader.save(fileName, imageData.type);
-			
-		} catch (SWTException e) {
-			showErrorDialog(bundle.getString("Saving_lc"), fileName, e);
-		} finally {
-			shell.setCursor(null);
-			imageCanvas.setCursor(crossCursor);
-			waitCursor.dispose();
-		}
-	}
-
-	void menuSaveAs() {
-		if (image == null) return;
-		animate = false; // stop any animation in progress
-
-		// Get the user to choose a file name and type to save.
-		FileDialog fileChooser = new FileDialog(shell, SWT.SAVE);
-		fileChooser.setFilterPath(lastPath);
-		if (fileName != null) fileChooser.setFileName(fileName);
-		fileChooser.setFilterExtensions(new String[] { "*.bmp", "*.gif", "*.ico", "*.jpg", "*.png" });
-		fileChooser.setFilterNames(new String[] { "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg)", "PNG (*.png)" });
-		String filename = fileChooser.open();
-		lastPath = fileChooser.getFilterPath();
-		if (filename == null)
-			return;
-
-		// Figure out what file type the user wants saved.
-		// We need to rely on the file extension because FileDialog
-		// does not have API for asking what filter type was selected.
-		int filetype = determineFileType(filename);
-		if (filetype == SWT.IMAGE_UNDEFINED) {
-			MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
-			box.setMessage(createMsg(bundle.getString("Unknown_extension"), 
-			                         filename.substring(filename.lastIndexOf('.') + 1)));
-			box.open();
-			return;
-		}
-		
-		if (new java.io.File(filename).exists()) {
-			MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL);
-			box.setMessage(createMsg(bundle.getString("Overwrite"), filename));
-			if (box.open() == SWT.CANCEL)
-				return;
-		}
-		
-		Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
-		shell.setCursor(waitCursor);
-		imageCanvas.setCursor(waitCursor);
-		try {
-			// Save the current image to the specified file.
-			loader.data = new ImageData[] {imageData};
-			loader.save(filename, filetype);
-			
-			// Update the shell title and file type label,
-			// and use the new file.
-			fileName = filename;
-			shell.setText(createMsg(bundle.getString("Analyzer_on"), filename));
-			typeLabel.setText(createMsg(bundle.getString("Type_string"), fileTypeString(filetype)));
-
-		} catch (SWTException e) {
-			showErrorDialog(bundle.getString("Saving_lc"), filename, e);
-		} finally {
-			shell.setCursor(null);
-			imageCanvas.setCursor(crossCursor);
-			waitCursor.dispose();
-		}
-	}
-
-	void menuSaveMaskAs() {
-		if (image == null || !showMask) return;
-		if (imageData.getTransparencyType() == SWT.TRANSPARENCY_NONE) return;
-		animate = false; // stop any animation in progress
-
-		// Get the user to choose a file name and type to save.
-		FileDialog fileChooser = new FileDialog(shell, SWT.SAVE);
-		fileChooser.setFilterPath(lastPath);
-		if (fileName != null) fileChooser.setFileName(fileName);
-		fileChooser.setFilterExtensions(new String[] { "*.bmp", "*.gif", "*.ico", "*.jpg", "*.png" });
-		fileChooser.setFilterNames(new String[] { "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg)", "PNG (*.png)" });
-		String filename = fileChooser.open();
-		lastPath = fileChooser.getFilterPath();
-		if (filename == null)
-			return;
-
-		// Figure out what file type the user wants saved.
-		// We need to rely on the file extension because FileDialog
-		// does not have API for asking what filter type was selected.
-		int filetype = determineFileType(filename);
-		if (filetype == SWT.IMAGE_UNDEFINED) {
-			MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
-			box.setMessage(createMsg(bundle.getString("Unknown_extension"), 
-			                         filename.substring(filename.lastIndexOf('.') + 1)));
-			box.open();
-			return;
-		}
-		
-		if (new java.io.File(filename).exists()) {
-			MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL);
-			box.setMessage(createMsg(bundle.getString("Overwrite"), filename));
-			if (box.open() == SWT.CANCEL)
-				return;
-		}
-		
-		Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
-		shell.setCursor(waitCursor);
-		imageCanvas.setCursor(waitCursor);
-		try {
-			// Save the mask of the current image to the specified file.
-			ImageData maskImageData = imageData.getTransparencyMask();
-			loader.data = new ImageData[] {maskImageData};
-			loader.save(filename, filetype);
-			
-		} catch (SWTException e) {
-			showErrorDialog(bundle.getString("Saving_lc"), filename, e);
-		} finally {
-			shell.setCursor(null);
-			imageCanvas.setCursor(crossCursor);
-			waitCursor.dispose();
-		}
-	}
-
-	void menuPrint() {
-		if (image == null) return;
-
-		try {
-			// Ask the user to specify the printer.
-			PrintDialog dialog = new PrintDialog(shell, SWT.NULL);
-			PrinterData printerData = dialog.open();
-			if (printerData == null) return;
-			
-			Printer printer = new Printer(printerData);
-			Point screenDPI = display.getDPI();
-			Point printerDPI = printer.getDPI();
-			int scaleFactor = printerDPI.x / screenDPI.x;
-			Rectangle trim = printer.computeTrim(0, 0, 0, 0);
-			if (printer.startJob(currentName)) {
-				if (printer.startPage()) {
-					GC gc = new GC(printer);
-					int transparentPixel = imageData.transparentPixel;
-					if (transparentPixel != -1 && !transparent) {
-						imageData.transparentPixel = -1;
-					}
-					Image printerImage = new Image(printer, imageData);
-					gc.drawImage(
-						printerImage,
-						0,
-						0,
-						imageData.width,
-						imageData.height,
-						-trim.x,
-						-trim.y,
-						scaleFactor * imageData.width,
-						scaleFactor * imageData.height);
-					if (transparentPixel != -1 && !transparent) {
-						imageData.transparentPixel = transparentPixel;
-					}
-					printerImage.dispose();
-					gc.dispose();
-					printer.endPage();
-				}
-				printer.endJob();
-			}
-			printer.dispose();
-		} catch (SWTError e) {
-			MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
-			box.setMessage(bundle.getString("Printing_error") + e.getMessage());
-			box.open();
-		}
-	}
-
-	void menuReopen() {
-		if (currentName == null) return;
-		animate = false; // stop any animation in progress
-		resetScrollBars();
-		resetScaleCombos();
-		Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
-		shell.setCursor(waitCursor);
-		imageCanvas.setCursor(waitCursor);
-		try {
-			loader = new ImageLoader();
-			long startTime = System.currentTimeMillis();
-			ImageData[] newImageData;
-			if (fileName == null) {
-				URL url = new URL(currentName);
-				InputStream stream = url.openStream();
-				newImageData = loader.load(stream);
-			} else {
-				newImageData = loader.load(fileName);
-			}
-			loadTime = System.currentTimeMillis() - startTime;
-			imageDataIndex = 0;
-			displayImage(newImageData[imageDataIndex]);
-
-		} catch (Exception e) {
-			showErrorDialog(bundle.getString("Reloading_lc"), currentName, e);
-		} finally {	
-			shell.setCursor(null);
-			imageCanvas.setCursor(crossCursor);
-			waitCursor.dispose();
-		}
-	}
-	
-	void changeBackground() {
-		String background = backgroundCombo.getText();
-		if (background.equals(bundle.getString("White"))) {
-			imageCanvas.setBackground(whiteColor);
-		} else if (background.equals(bundle.getString("Black"))) {
-			imageCanvas.setBackground(blackColor);
-		} else if (background.equals(bundle.getString("Red"))) {
-			imageCanvas.setBackground(redColor);
-		} else if (background.equals(bundle.getString("Green"))) {
-			imageCanvas.setBackground(greenColor);
-		} else if (background.equals(bundle.getString("Blue"))) {
-			imageCanvas.setBackground(blueColor);
-		} else {
-			imageCanvas.setBackground(null);
-		}
-	}
-	
-	/*
-	 * Called when the ScaleX combo selection changes.
-	 */
-	void scaleX() {
-		try {
-			xscale = Float.parseFloat(scaleXCombo.getText());
-		} catch (NumberFormatException e) {
-			xscale = 1;
-			scaleXCombo.select(scaleXCombo.indexOf("1"));
-		}
-		if (image != null) {
-			resizeScrollBars();
-			imageCanvas.redraw();
-		}
-	}
-	
-	/*
-	 * Called when the ScaleY combo selection changes.
-	 */
-	void scaleY() {
-		try {
-			yscale = Float.parseFloat(scaleYCombo.getText());
-		} catch (NumberFormatException e) {
-			yscale = 1;
-			scaleYCombo.select(scaleYCombo.indexOf("1"));
-		}
-		if (image != null) {
-			resizeScrollBars();
-			imageCanvas.redraw();
-		}
-	}
-	
-	/*
-	 * Called when the Alpha combo selection changes.
-	 */
-	void alpha() {
-		try {
-			alpha = Integer.parseInt(alphaCombo.getText());
-		} catch (NumberFormatException e) {
-			alphaCombo.select(alphaCombo.indexOf("255"));
-			alpha = 255;
-		}
-	}
-	
-	/*
-	 * Called when the mouse moves in the image canvas.
-	 * Show the color of the image at the point under the mouse.
-	 */
-	void showColorAt(int mx, int my) {
-		int x = mx - imageData.x - ix;
-		int y = my - imageData.y - iy;
-		showColorForPixel(x, y);
-	}
-	
-	/*
-	 * Called when a mouse down or key press is detected
-	 * in the data text. Show the color of the pixel at
-	 * the caret position in the data text.
-	 */
-	void showColorForData() {
-		int delimiterLength = dataText.getLineDelimiter().length();
-		int charactersPerLine = 6 + 3 * imageData.bytesPerLine + delimiterLength;
-		int position = dataText.getCaretOffset();
-		int y = position / charactersPerLine;
-		if ((position - y * charactersPerLine) < 6 || ((y + 1) * charactersPerLine - position) <= delimiterLength) {
-			statusLabel.setText("");
-			return;
-		}
-		int dataPosition = position - 6 * (y + 1) - delimiterLength * y;
-		int byteNumber = dataPosition / 3;
-		int where = dataPosition - byteNumber * 3;
-		int xByte = byteNumber % imageData.bytesPerLine;
-		int x = -1;
-		int depth = imageData.depth;
-		if (depth == 1) { // 8 pixels per byte (can only show 3 of 8)
-			if (where == 0) x = xByte * 8;
-			if (where == 1) x = xByte * 8 + 3;
-			if (where == 2) x = xByte * 8 + 7;
-		}
-		if (depth == 2) { // 4 pixels per byte (can only show 3 of 4)
-			if (where == 0) x = xByte * 4;
-			if (where == 1) x = xByte * 4 + 1;
-			if (where == 2) x = xByte * 4 + 3;
-		}
-		if (depth == 4) { // 2 pixels per byte
-			if (where == 0) x = xByte * 2;
-			if (where == 1) x = xByte * 2;
-			if (where == 2) x = xByte * 2 + 1;
-		}
-		if (depth == 8) { // 1 byte per pixel
-			x = xByte;
-		}
-		if (depth == 16) { // 2 bytes per pixel
-			x = xByte / 2;
-		}
-		if (depth == 24) { // 3 bytes per pixel
-			x = xByte / 3;
-		}
-		if (depth == 32) { // 4 bytes per pixel
-			x = xByte / 4;
-		}
-		if (x != -1) {
-			showColorForPixel(x, y);
-		} else {
-			statusLabel.setText("");
-		}
-	}
-	
-	/*
-	 * Set the status label to show color information
-	 * for the specified pixel in the image.
-	 */
-	void showColorForPixel(int x, int y) {
-		if (x >= 0 && x < imageData.width && y >= 0 && y < imageData.height) {
-			int pixel = imageData.getPixel(x, y);
-			RGB rgb = imageData.palette.getRGB(pixel);
-
-
-			Object[] args = {new Integer(x),
-					     new Integer(y),
-					     new Integer(pixel),
-					     Integer.toHexString(pixel),
-					     rgb};
-			if (pixel == imageData.transparentPixel) {
-				statusLabel.setText(createMsg(bundle.getString("Color_at_trans"), args));
-			} else {
-				statusLabel.setText(createMsg(bundle.getString("Color_at"), args));
-			}
-		} else {
-			statusLabel.setText("");
-		}
-	}
-	
-	/*
-	 * Called when the Animate button is pressed.
-	 */
-	void animate() {
-		animate = !animate;
-		if (animate && image != null && imageDataArray.length > 1) {
-			animateThread = new Thread(bundle.getString("Animation")) {
-				public void run() {
-					// Pre-animation widget setup.
-					preAnimation();
-					
-					// Animate.
-					try {
-						animateLoop();
-					} catch (final SWTException e) {
-						display.syncExec(new Runnable() {
-							public void run() {
-								showErrorDialog(createMsg(bundle.getString("Creating_image"), 
-										    new Integer(imageDataIndex+1)),
-										    currentName, e);
-							}
-						});
-					}
-					
-					// Post animation widget reset.
-					postAnimation();
-				}
-			};
-			animateThread.setDaemon(true);
-			animateThread.start();
-		}
-	}
-	
-	/*
-	 * Loop through all of the images in a multi-image file
-	 * and display them one after another.
-	 */
-	void animateLoop() {
-		// Create an off-screen image to draw on, and a GC to draw with.
-		// Both are disposed after the animation.
-		Image offScreenImage = new Image(display, loader.logicalScreenWidth, loader.logicalScreenHeight);
-		GC offScreenImageGC = new GC(offScreenImage);
-		
-		try {
-			// Use syncExec to get the background color of the imageCanvas.
-			display.syncExec(new Runnable() {
-				public void run() {
-					canvasBackground = imageCanvas.getBackground();
-				}
-			});
-
-			// Fill the off-screen image with the background color of the canvas.
-			offScreenImageGC.setBackground(canvasBackground);
-			offScreenImageGC.fillRectangle(
-				0,
-				0,
-				loader.logicalScreenWidth,
-				loader.logicalScreenHeight);
-					
-			// Draw the current image onto the off-screen image.
-			offScreenImageGC.drawImage(
-				image,
-				0,
-				0,
-				imageData.width,
-				imageData.height,
-				imageData.x,
-				imageData.y,
-				imageData.width,
-				imageData.height);
-
-			int repeatCount = loader.repeatCount;
-			while (animate && (loader.repeatCount == 0 || repeatCount > 0)) {
-				if (imageData.disposalMethod == SWT.DM_FILL_BACKGROUND) {
-					// Fill with the background color before drawing.
-					Color bgColor = null;
-					int backgroundPixel = loader.backgroundPixel;
-					if (showBackground && backgroundPixel != -1) {
-						// Fill with the background color.
-						RGB backgroundRGB = imageData.palette.getRGB(backgroundPixel);
-						bgColor = new Color(null, backgroundRGB);
-					}
-					try {
-						offScreenImageGC.setBackground(bgColor != null ? bgColor : canvasBackground);
-						offScreenImageGC.fillRectangle(
-							imageData.x,
-							imageData.y,
-							imageData.width,
-							imageData.height);
-					} finally {
-						if (bgColor != null) bgColor.dispose();
-					}
-				} else if (imageData.disposalMethod == SWT.DM_FILL_PREVIOUS) {
-					// Restore the previous image before drawing.
-					offScreenImageGC.drawImage(
-						image,
-						0,
-						0,
-						imageData.width,
-						imageData.height,
-						imageData.x,
-						imageData.y,
-						imageData.width,
-						imageData.height);
-				}
-									
-				// Get the next image data.
-				imageDataIndex = (imageDataIndex + 1) % imageDataArray.length;
-				imageData = imageDataArray[imageDataIndex];
-				image.dispose();
-				image = new Image(display, imageData);
-				
-				// Draw the new image data.
-				offScreenImageGC.drawImage(
-					image,
-					0,
-					0,
-					imageData.width,
-					imageData.height,
-					imageData.x,
-					imageData.y,
-					imageData.width,
-					imageData.height);
-				
-				// Draw the off-screen image to the screen.
-				imageCanvasGC.drawImage(offScreenImage, 0, 0);
-				
-				// Sleep for the specified delay time before drawing again.
-				try {
-					Thread.sleep(visibleDelay(imageData.delayTime * 10));
-				} catch (InterruptedException e) {
-				}
-				
-				// If we have just drawn the last image in the set,
-				// then decrement the repeat count.
-				if (imageDataIndex == imageDataArray.length - 1) repeatCount--;
-			}
-		} finally {
-			offScreenImage.dispose();
-			offScreenImageGC.dispose();
-		}
-	}
-
-	/*
-	 * Pre animation setup.
-	 */
-	void preAnimation() {
-		display.syncExec(new Runnable() {
-			public void run() {
-				// Change the label of the Animate button to 'Stop'.
-				animateButton.setText(bundle.getString("Stop"));
-				
-				// Disable anything we don't want the user
-				// to select during the animation.
-				previousButton.setEnabled(false);
-				nextButton.setEnabled(false);
-				backgroundCombo.setEnabled(false);
-				scaleXCombo.setEnabled(false);
-				scaleYCombo.setEnabled(false);
-				alphaCombo.setEnabled(false);
-				incrementalCheck.setEnabled(false);
-				transparentCheck.setEnabled(false);
-				maskCheck.setEnabled(false);
-				// leave backgroundCheck enabled
-			
-				// Reset the scale combos and scrollbars.
-				resetScaleCombos();
-				resetScrollBars();
-			}
-		});
-	}
-
-	/*
-	 * Post animation reset.
-	 */
-	void postAnimation() {
-		display.syncExec(new Runnable() {
-			public void run() {
-				// Enable anything we disabled before the animation.
-				previousButton.setEnabled(true);
-				nextButton.setEnabled(true);
-				backgroundCombo.setEnabled(true);
-				scaleXCombo.setEnabled(true);
-				scaleYCombo.setEnabled(true);
-				alphaCombo.setEnabled(true);
-				incrementalCheck.setEnabled(true);
-				transparentCheck.setEnabled(true);
-				maskCheck.setEnabled(true);
-			
-				// Reset the label of the Animate button.
-				animateButton.setText(bundle.getString("Animate"));
-			
-				if (animate) {
-					// If animate is still true, we finished the
-					// full number of repeats. Leave the image as-is.
-					animate = false;
-				} else {
-					// Redisplay the current image and its palette.
-					displayImage(imageDataArray[imageDataIndex]);
-				}
-			}
-		});
-	}
-
-	/*
-	 * Called when the Previous button is pressed.
-	 * Display the previous image in a multi-image file.
-	 */
-	void previous() {
-		if (image != null && imageDataArray.length > 1) {
-			if (imageDataIndex == 0) {
-				imageDataIndex = imageDataArray.length;
-			}
-			imageDataIndex = imageDataIndex - 1;
-			displayImage(imageDataArray[imageDataIndex]);
-		}	
-	}
-
-	/*
-	 * Called when the Next button is pressed.
-	 * Display the next image in a multi-image file.
-	 */
-	void next() {
-		if (image != null && imageDataArray.length > 1) {
-			imageDataIndex = (imageDataIndex + 1) % imageDataArray.length;
-			displayImage(imageDataArray[imageDataIndex]);
-		}	
-	}
-
-	void displayImage(ImageData newImageData) {
-		if (incremental && incrementalThread != null) {
-			// Tell the incremental thread to stop drawing.
-			synchronized (this) {
-				incrementalEvents = null;
-			}
-			
-			// Wait until the incremental thread is done.
-			while (incrementalThread.isAlive()) {
-				if (!display.readAndDispatch()) display.sleep();
-			}
-		}
-					
-		// Dispose of the old image, if there was one.
-		if (image != null) image.dispose();
-
-		try {
-			// Cache the new image and imageData.
-			image = new Image(display, newImageData);
-			imageData = newImageData;
-
-		} catch (SWTException e) {
-			showErrorDialog(bundle.getString("Creating_from") + " ", currentName, e);
-			image = null;
-			return;
-		}
-
-		// Update the widgets with the new image info.
-		String string = createMsg(bundle.getString("Analyzer_on"), currentName);
-		shell.setText(string);
-
-		if (imageDataArray.length > 1) {
-			string = createMsg(bundle.getString("Type_index"), 
-			                   new Object[] {fileTypeString(imageData.type),
-			                                 new Integer(imageDataIndex + 1),
-			                                 new Integer(imageDataArray.length)});
-		} else {
-			string = createMsg(bundle.getString("Type_string"), fileTypeString(imageData.type));
-		}
-		typeLabel.setText(string);
-
-		string = createMsg(bundle.getString("Size_value"), 
-					 new Object[] {new Integer(imageData.width),
-							   new Integer(imageData.height)});
-		sizeLabel.setText(string);
-
-		string = createMsg(bundle.getString("Depth_value"), new Integer(imageData.depth));
-		depthLabel.setText(string);
-
-		string = createMsg(bundle.getString("Transparent_pixel_value"), pixelInfo(imageData.transparentPixel));
-		transparentPixelLabel.setText(string);
-
-		string = createMsg(bundle.getString("Time_to_load_value"), new Long(loadTime));
-		timeToLoadLabel.setText(string);
-
-		string = createMsg(bundle.getString("Animation_size_value"), 
-		                      new Object[] {new Integer(loader.logicalScreenWidth),
-								new Integer(loader.logicalScreenHeight)});
-		screenSizeLabel.setText(string);
-
-		string = createMsg(bundle.getString("Background_pixel_value"), pixelInfo(loader.backgroundPixel));
-		backgroundPixelLabel.setText(string);
-
-		string = createMsg(bundle.getString("Image_location_value"), 
-		                      new Object[] {new Integer(imageData.x), new Integer(imageData.y)});
-		locationLabel.setText(string);
-
-		string = createMsg(bundle.getString("Disposal_value"),
-		                      new Object[] {new Integer(imageData.disposalMethod),
-							      disposalString(imageData.disposalMethod)});
-		disposalMethodLabel.setText(string);
-
-		int delay = imageData.delayTime * 10;
-		int delayUsed = visibleDelay(delay);
-		if (delay != delayUsed) {
-			string = createMsg(bundle.getString("Delay_value"), 
-			                   new Object[] {new Integer(delay), new Integer(delayUsed)});
-		} else {
-			string = createMsg(bundle.getString("Delay_used"), new Integer(delay));
-		}
-		delayTimeLabel.setText(string);
-
-		if (loader.repeatCount == 0) {
-			string = createMsg( bundle.getString("Repeats_forever"), new Integer(loader.repeatCount));
-		} else {
-			string = createMsg(bundle.getString("Repeats_value"), new Integer(loader.repeatCount));
-		}
-		repeatCountLabel.setText(string);
-
-
-		if (imageData.palette.isDirect) {
-			string = bundle.getString("Palette_direct");
-		} else {
-			string = createMsg(bundle.getString("Palette_value"), new Integer(imageData.palette.getRGBs().length));
-		}
-		paletteLabel.setText(string);
-
-		string = createMsg(bundle.getString("Pixel_data_value"), 
-					 new Object[] {new Integer(imageData.bytesPerLine),
-						         new Integer(imageData.scanlinePad),
-							   depthInfo(imageData.depth)});
-		dataLabel.setText(string);
-
-		String data = dataHexDump(dataText.getLineDelimiter());
-		dataText.setText(data);
-		
-		// bold the first column all the way down
-		int index = 0;
-		while((index = data.indexOf(':', index+1)) != -1) 
-			dataText.setStyleRange(new StyleRange(index - INDEX_DIGITS, INDEX_DIGITS, dataText.getForeground(), dataText.getBackground(), SWT.BOLD));
-
-		statusLabel.setText("");
-
-		// Redraw both canvases.
-		paletteCanvas.redraw();
-		imageCanvas.redraw();
-	}
-
-	void paintImage(PaintEvent event) {
-		Image paintImage = image;
-		int transparentPixel = imageData.transparentPixel;
-		if (transparentPixel != -1 && !transparent) {
-			imageData.transparentPixel = -1;
-			paintImage = new Image(display, imageData);
-		}
-		int w = Math.round(imageData.width * xscale);
-		int h = Math.round(imageData.height * yscale);
-		event.gc.drawImage(
-			paintImage,
-			0,
-			0,
-			imageData.width,
-			imageData.height,
-			ix + imageData.x,
-			iy + imageData.y,
-			w,
-			h);
-		if (showMask && (imageData.getTransparencyType() != SWT.TRANSPARENCY_NONE)) {
-			ImageData maskImageData = imageData.getTransparencyMask();
-			Image maskImage = new Image(display, maskImageData);
-			event.gc.drawImage(
-				maskImage,
-				0,
-				0,
-				imageData.width,
-				imageData.height,
-				w + 10 + ix + imageData.x,
-				iy + imageData.y,
-				w,
-				h);
-			maskImage.dispose();
-		}
-		if (transparentPixel != -1 && !transparent) {
-			imageData.transparentPixel = transparentPixel;
-			paintImage.dispose();
-		}
-	}
-
-	void paintPalette(PaintEvent event) {
-		GC gc = event.gc;
-		gc.fillRectangle(paletteCanvas.getClientArea());
-		if (imageData.palette.isDirect) {
-			// For a direct palette, display the masks.
-			int y = py + 10;
-			int xTab = 50;
-			gc.drawString("rMsk", 10, y, true);
-			gc.drawString(toHex4ByteString(imageData.palette.redMask), xTab, y, true);
-			gc.drawString("gMsk", 10, y+=12, true);
-			gc.drawString(toHex4ByteString(imageData.palette.greenMask), xTab, y, true);
-			gc.drawString("bMsk", 10, y+=12, true);
-			gc.drawString(toHex4ByteString(imageData.palette.blueMask), xTab, y, true);
-			gc.drawString("rShf", 10, y+=12, true);
-			gc.drawString(Integer.toString(imageData.palette.redShift), xTab, y, true);
-			gc.drawString("gShf", 10, y+=12, true);
-			gc.drawString(Integer.toString(imageData.palette.greenShift), xTab, y, true);
-			gc.drawString("bShf", 10, y+=12, true);
-			gc.drawString(Integer.toString(imageData.palette.blueShift), xTab, y, true);
-		} else {
-			// For an indexed palette, display the palette colors and indices.
-			RGB[] rgbs = imageData.palette.getRGBs();
-			if (rgbs != null) {
-				int xTab1 = 40, xTab2 = 100;
-				for (int i = 0; i < rgbs.length; i++) {
-					int y = (i+1) * 10 + py;
-					gc.drawString(String.valueOf(i), 10, y, true);
-					gc.drawString(toHexByteString(rgbs[i].red) + toHexByteString(rgbs[i].green) + toHexByteString(rgbs[i].blue), xTab1, y, true);
-					Color color = new Color(display, rgbs[i]);
-					gc.setBackground(color);
-					gc.fillRectangle(xTab2, y+2, 10, 10);
-					color.dispose();
-				}
-			}
-		}
-	}
-	
-	void resizeShell(ControlEvent event) {
-		if (image == null || shell.isDisposed())
-			return;
-		resizeScrollBars();
-	}
-
-	// Reset the scale combos to 1.
-	void resetScaleCombos() {
-		xscale = 1; yscale = 1;
-		scaleXCombo.select(scaleXCombo.indexOf("1"));
-		scaleYCombo.select(scaleYCombo.indexOf("1"));
-	}
-	
-	// Reset the scroll bars to 0.
-	void resetScrollBars() {
-		if (image == null) return;
-		ix = 0; iy = 0; py = 0;
-		resizeScrollBars();
-		imageCanvas.getHorizontalBar().setSelection(0);
-		imageCanvas.getVerticalBar().setSelection(0);
-		paletteCanvas.getVerticalBar().setSelection(0);
-	}
-	
-	void resizeScrollBars() {
-		// Set the max and thumb for the image canvas scroll bars.
-		ScrollBar horizontal = imageCanvas.getHorizontalBar();
-		ScrollBar vertical = imageCanvas.getVerticalBar();
-		Rectangle canvasBounds = imageCanvas.getClientArea();
-		int width = Math.round(imageData.width * xscale);
-		if (width > canvasBounds.width) {
-			// The image is wider than the canvas.
-			horizontal.setEnabled(true);
-			horizontal.setMaximum(width);
-			horizontal.setThumb(canvasBounds.width);
-			horizontal.setPageIncrement(canvasBounds.width);
-		} else {
-			// The canvas is wider than the image.
-			horizontal.setEnabled(false);
-			if (ix != 0) {
-				// Make sure the image is completely visible.
-				ix = 0;
-				imageCanvas.redraw();
-			}
-		}
-		int height = Math.round(imageData.height * yscale);
-		if (height > canvasBounds.height) {
-			// The image is taller than the canvas.
-			vertical.setEnabled(true);
-			vertical.setMaximum(height);
-			vertical.setThumb(canvasBounds.height);
-			vertical.setPageIncrement(canvasBounds.height);
-		} else {
-			// The canvas is taller than the image.
-			vertical.setEnabled(false);
-			if (iy != 0) {
-				// Make sure the image is completely visible.
-				iy = 0;
-				imageCanvas.redraw();
-			}
-		}
-
-		// Set the max and thumb for the palette canvas scroll bar.
-		vertical = paletteCanvas.getVerticalBar();
-		if (imageData.palette.isDirect) {
-			vertical.setEnabled(false);
-		} else { // indexed palette
-			canvasBounds = paletteCanvas.getClientArea();
-			int paletteHeight = imageData.palette.getRGBs().length * 10 + 20; // 10 pixels each index + 20 for margins.
-			vertical.setEnabled(true);
-			vertical.setMaximum(paletteHeight);
-			vertical.setThumb(canvasBounds.height);
-			vertical.setPageIncrement(canvasBounds.height);
-		}
-	}
-
-	/*
-	 * Called when the image canvas' horizontal scrollbar is selected.
-	 */
-	void scrollHorizontally(ScrollBar scrollBar) {
-		if (image == null) return;
-		Rectangle canvasBounds = imageCanvas.getClientArea();
-		int width = Math.round(imageData.width * xscale);
-		int height = Math.round(imageData.height * yscale);
-		if (width > canvasBounds.width) {
-			// Only scroll if the image is bigger than the canvas.
-			int x = -scrollBar.getSelection();
-			if (x + width < canvasBounds.width) {
-				// Don't scroll past the end of the image.
-				x = canvasBounds.width - width;
-			}
-			imageCanvas.scroll(x, iy, ix, iy, width, height, false);
-			ix = x;
-		}
-	}
-	
-	/*
-	 * Called when the image canvas' vertical scrollbar is selected.
-	 */
-	void scrollVertically(ScrollBar scrollBar) {
-		if (image == null) return;
-		Rectangle canvasBounds = imageCanvas.getClientArea();
-		int width = Math.round(imageData.width * xscale);
-		int height = Math.round(imageData.height * yscale);
-		if (height > canvasBounds.height) {
-			// Only scroll if the image is bigger than the canvas.
-			int y = -scrollBar.getSelection();
-			if (y + height < canvasBounds.height) {
-				// Don't scroll past the end of the image.
-				y = canvasBounds.height - height;
-			}
-			imageCanvas.scroll(ix, y, ix, iy, width, height, false);
-			iy = y;
-		}
-	}
-
-	/*
-	 * Called when the palette canvas' vertical scrollbar is selected.
-	 */
-	void scrollPalette(ScrollBar scrollBar) {
-		if (image == null) return;
-		Rectangle canvasBounds = paletteCanvas.getClientArea();
-		int paletteHeight = imageData.palette.getRGBs().length * 10 + 20;
-		if (paletteHeight > canvasBounds.height) {
-			// Only scroll if the palette is bigger than the canvas.
-			int y = -scrollBar.getSelection();
-			if (y + paletteHeight < canvasBounds.height) {
-				// Don't scroll past the end of the palette.
-				y = canvasBounds.height - paletteHeight;
-			}
-			paletteCanvas.scroll(0, y, 0, py, paletteWidth, paletteHeight, false);
-			py = y;
-		}
-	}
-
-	/*
-	 * Return a String containing a line-by-line dump of
-	 * the data in the current imageData. The lineDelimiter
-	 * parameter must be a string of length 1 or 2.
-	 */
-	String dataHexDump(String lineDelimiter) {
-		if (image == null) return "";
-		char[] dump = new char[imageData.height * (6 + 3 * imageData.bytesPerLine + lineDelimiter.length())];
-		int index = 0;
-		for (int i = 0; i < imageData.data.length; i++) {
-			if (i % imageData.bytesPerLine == 0) {
-				int line = i / imageData.bytesPerLine;
-				dump[index++] = Character.forDigit(line / 1000 % 10, 10);
-				dump[index++] = Character.forDigit(line / 100 % 10, 10);
-				dump[index++] = Character.forDigit(line / 10 % 10, 10);
-				dump[index++] = Character.forDigit(line % 10, 10);
-				dump[index++] = ':';
-				dump[index++] = ' ';
-			}
-			byte b = imageData.data[i];
-			dump[index++] = Character.forDigit((b & 0xF0) >> 4, 16);
-			dump[index++] = Character.forDigit(b & 0x0F, 16);
-			dump[index++] = ' ';
-			if ((i + 1) % imageData.bytesPerLine == 0) {
-				dump[index++] = lineDelimiter.charAt(0);
-				if (lineDelimiter.length() > 1)
-					dump[index++] = lineDelimiter.charAt(1);
-			}
-		}
-		return new String(dump);
-	}
-	
-	/*
-	 * Open an error dialog displaying the specified information.
-	 */
-	void showErrorDialog(String operation, String filename, Exception e) {
-		MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
-		String message = createMsg(bundle.getString("Error"), new String[] {operation, filename});
-		String errorMessage = "";
-		if (e != null) {
-			if (e instanceof SWTException) {
-				SWTException swte = (SWTException) e;
-				errorMessage = swte.getMessage();
-				if (swte.throwable != null) {
-					errorMessage += ":\n" + swte.throwable.toString();
-				}
-			} else {
-				errorMessage = e.toString();
-			}
-		}
-		box.setMessage(message + errorMessage);
-		box.open();
-	}
-	
-	/*
-	 * Return a String describing how to analyze the bytes
-	 * in the hex dump.
-	 */
-	static String depthInfo(int depth) {
-		Object[] args = {new Integer(depth), ""};
-		switch (depth) {
-			case 1:
-				args[1] = createMsg(bundle.getString("Multi_pixels"), 
-				                    new Object[] {new Integer(8), " [01234567]"});
-				break;
-			case 2:
-				args[1] = createMsg(bundle.getString("Multi_pixels"),
-				                    new Object[] {new Integer(4), "[00112233]"});
-				break;
-			case 4:
-				args[1] = createMsg(bundle.getString("Multi_pixels"),
-				                    new Object[] {new Integer(2), "[00001111]"});
-				break;
-			case 8:
-				args[1] = bundle.getString("One_byte");
-				break;
-			case 16:
-				args[1] = createMsg(bundle.getString("Multi_bytes"), new Integer(2));
-				break;
-			case 24:
-				args[1] = createMsg(bundle.getString("Multi_bytes"), new Integer(3));
-				break;
-			case 32:
-				args[1] = createMsg(bundle.getString("Multi_bytes"), new Integer(4));
-				break;
-			default:
-				args[1] = bundle.getString("Unsupported_lc");
-		}
-		return createMsg(bundle.getString("Depth_info"), args);
-	}
-	
-	/*
-	 * Return the specified number of milliseconds.
-	 * If the specified number of milliseconds is too small
-	 * to see a visual change, then return a higher number.
-	 */
-	static int visibleDelay(int ms) {
-		if (ms < 20) return ms + 30;
-		if (ms < 30) return ms + 10;
-		return ms;
-	}
-
-	/*
-	 * Return the specified byte value as a hex string,
-	 * preserving leading 0's.
-	 */
-	static String toHexByteString(int i) {
-		if (i <= 0x0f)
-			return "0" + Integer.toHexString(i);
-		return Integer.toHexString(i & 0xff);
-	}
-
-	/*
-	 * Return the specified 4-byte value as a hex string,
-	 * preserving leading 0's.
-	 * (a bit 'brute force'... should probably use a loop...)
-	 */
-	static String toHex4ByteString(int i) {
-		String hex = Integer.toHexString(i);
-		if (hex.length() == 1)
-			return "0000000" + hex;
-		if (hex.length() == 2)
-			return "000000" + hex;
-		if (hex.length() == 3)
-			return "00000" + hex;
-		if (hex.length() == 4)
-			return "0000" + hex;
-		if (hex.length() == 5)
-			return "000" + hex;
-		if (hex.length() == 6)
-			return "00" + hex;
-		if (hex.length() == 7)
-			return "0" + hex;
-		return hex;
-	}
-	
-	/*
-	 * Return a String describing the specified
-	 * transparent or background pixel.
-	 */
-	static String pixelInfo(int pixel) {
-		if (pixel == -1)
-			return pixel + " (" + bundle.getString("None_lc") + ")";
-		else
-			return pixel + " (0x" + Integer.toHexString(pixel) + ")";
-	}
-	
-	/*
-	 * Return a String describing the specified disposal method.
-	 */
-	static String disposalString(int disposalMethod) {
-		switch (disposalMethod) {
-			case SWT.DM_FILL_NONE: return bundle.getString("None_lc");
-			case SWT.DM_FILL_BACKGROUND: return bundle.getString("Background_lc");
-			case SWT.DM_FILL_PREVIOUS: return bundle.getString("Previous_lc");
-		}
-		return bundle.getString("Unspecified_lc");
-	}
-	
-	/*
-	 * Return a String describing the specified image file type.
-	 */
-	static String fileTypeString(int filetype) {
-		if (filetype == SWT.IMAGE_BMP)
-			return "BMP";
-		if (filetype == SWT.IMAGE_GIF)
-			return "GIF";
-		if (filetype == SWT.IMAGE_ICO)
-			return "ICO";
-		if (filetype == SWT.IMAGE_JPEG)
-			return "JPEG";
-		if (filetype == SWT.IMAGE_PNG)
-			return "PNG";
-		return bundle.getString("Unknown_ac");
-	}
-	
-	/*
-	 * Return the specified file's image type, based on its extension.
-	 * Note that this is not a very robust way to determine image type,
-	 * and it is only to be used in the absence of any better method.
-	 */
-	static int determineFileType(String filename) {
-		String ext = filename.substring(filename.lastIndexOf('.') + 1);
-		if (ext.equalsIgnoreCase("bmp"))
-			return SWT.IMAGE_BMP;
-		if (ext.equalsIgnoreCase("gif"))
-			return SWT.IMAGE_GIF;
-		if (ext.equalsIgnoreCase("ico"))
-			return SWT.IMAGE_ICO;
-		if (ext.equalsIgnoreCase("jpg") || ext.equalsIgnoreCase("jpeg"))
-			return SWT.IMAGE_JPEG;
-		if (ext.equalsIgnoreCase("png"))
-			return SWT.IMAGE_PNG;
-		return SWT.IMAGE_UNDEFINED;
-	}
-	
-	static String createMsg(String msg, Object[] args) {
-		MessageFormat formatter = new MessageFormat(msg);
-		return formatter.format(args);
-	}
-	
-	static String createMsg(String msg, Object arg) {
-		MessageFormat formatter = new MessageFormat(msg);
-		return formatter.format(new Object[]{arg});
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java
deleted file mode 100755
index defb307..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.javaviewer;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import java.util.*;
-import java.io.*;
-
-class JavaLineStyler implements LineStyleListener {
-	JavaScanner scanner = new JavaScanner();
-	int[] tokenColors;
-	Color[] colors;
-	Vector blockComments = new Vector();
-
-	public static final int EOF= -1;
-	public static final int EOL= 10;
-
-	public static final int WORD=		0;
-	public static final int WHITE=		1;
-	public static final int KEY=			2;
-	public static final int COMMENT=		3;	
-	public static final int STRING=		5;
-	public static final int OTHER=		6;
-	public static final int NUMBER=		7;
-
-	public static final int MAXIMUM_TOKEN= 8;
-
-public JavaLineStyler() {
-	initializeColors();
-	scanner = new JavaScanner();
-}
-
-Color getColor(int type) {
-	if (type < 0 || type >= tokenColors.length) {
-		return null;
-	}
-	return colors[tokenColors[type]];
-}
-
-boolean inBlockComment(int start, int end) {
-	for (int i=0; i<blockComments.size(); i++) {
-		int[] offsets = (int[])blockComments.elementAt(i);
-		// start of comment in the line
-		if ((offsets[0] >= start) && (offsets[0] <= end)) return true;
-		// end of comment in the line
-		if ((offsets[1] >= start) && (offsets[1] <= end)) return true;
-		if ((offsets[0] <= start) && (offsets[1] >= end)) return true;
-	}
-	return false;
-}
-
-void initializeColors() {
-	Display display = Display.getDefault();
-	colors= new Color[] {
-		new Color(display, new RGB(0, 0, 0)),		// black
-		new Color(display, new RGB(255, 0, 0)),	// red
-		new Color(display, new RGB(0, 255, 0)),	// green
-		new Color(display, new RGB(0,   0, 255))	// blue
-	};
-	tokenColors= new int[MAXIMUM_TOKEN];
-	tokenColors[WORD]=		0;
-	tokenColors[WHITE]=		0;
-	tokenColors[KEY]=		3; 
-	tokenColors[COMMENT]=	1; 
-	tokenColors[STRING]= 	2; 
-	tokenColors[OTHER]=		0;
-	tokenColors[NUMBER]=	0;
-}
-
-void disposeColors() {
-	for (int i=0;i<colors.length;i++) {
-		colors[i].dispose();
-	}
-}
-
-/**
- * Event.detail			line start offset (input)	
- * Event.text 			line text (input)
- * LineStyleEvent.styles 	Enumeration of StyleRanges, need to be in order. (output)
- * LineStyleEvent.background 	line background color (output)
- */
-public void lineGetStyle(LineStyleEvent event) {
-	Vector styles = new Vector();
-	int token;
-	StyleRange lastStyle;
-	// If the line is part of a block comment, create one style for the entire line.
-	if (inBlockComment(event.lineOffset, event.lineOffset + event.lineText.length())) {
-		styles.addElement(new StyleRange(event.lineOffset, event.lineText.length(), getColor(COMMENT), null));
-		event.styles = new StyleRange[styles.size()];
-		styles.copyInto(event.styles);
-		return;
-	}
-	Color defaultFgColor = ((Control)event.widget).getForeground();
-	scanner.setRange(event.lineText);
-	token = scanner.nextToken();
-	while (token != EOF) {
-		if (token == OTHER) {
-			// do nothing for non-colored tokens
-		} else if (token != WHITE) {
-			Color color = getColor(token);
-			// Only create a style if the token color is different than the 
-			// widget's default foreground color and the token's style is not 
-			// bold.  Keywords are bolded.
-			if ((!color.equals(defaultFgColor)) || (token == KEY)) {
-				StyleRange style = new StyleRange(scanner.getStartOffset() + event.lineOffset, scanner.getLength(), color, null);
-				if (token == KEY) {
-					style.fontStyle = SWT.BOLD;
-				}
-				if (styles.isEmpty()) {
-					styles.addElement(style);
-				} else {
-					// Merge similar styles.  Doing so will improve performance.
-					lastStyle = (StyleRange)styles.lastElement();
-					if (lastStyle.similarTo(style) && (lastStyle.start + lastStyle.length == style.start)) {
-						lastStyle.length += style.length;
-					} else {
-						styles.addElement(style); 
-					}
-				} 
-			} 
-		} else if ((!styles.isEmpty()) && ((lastStyle=(StyleRange)styles.lastElement()).fontStyle == SWT.BOLD)) {
-			int start = scanner.getStartOffset() + event.lineOffset;
-			lastStyle = (StyleRange)styles.lastElement();
-			// A font style of SWT.BOLD implies that the last style
-			// represents a java keyword.
-			if (lastStyle.start + lastStyle.length == start) {
-				// Have the white space take on the style before it to 
-				// minimize the number of style ranges created and the
-				// number of font style changes during rendering.
-				lastStyle.length += scanner.getLength();
-			}
-		} 
-		token= scanner.nextToken();
-	}
-	event.styles = new StyleRange[styles.size()];
-	styles.copyInto(event.styles);
-}
-public void parseBlockComments(String text) {
-	blockComments = new Vector();
-	StringReader buffer = new StringReader(text);
-	int ch;
-	boolean blkComment = false;
-	int cnt = 0;
-	int[] offsets = new int[2];
-	boolean done = false;
-	
-	try {
-	while (!done) {
-		switch (ch = buffer.read()) {
-			case -1 : {
-				if (blkComment) {
-					offsets[1] = cnt;
-					blockComments.addElement(offsets);
-				}
-				done = true;
-				break;
-			}
-			case '/' : {
-				ch = buffer.read();
-				if ((ch == '*') && (!blkComment)) {
-					offsets = new int[2];
-					offsets[0] = cnt;
-					blkComment = true;
-					cnt++;	
-				} else {
-					cnt++;
-				}						
-				cnt++;
-				break;
-			}
-			case '*' : {
-				if (blkComment) {
-					ch = buffer.read();
-					cnt++;
-					if (ch == '/') {
-						blkComment = false;	
-						offsets[1] = cnt;
-						blockComments.addElement(offsets);
-					}
-				}
-				cnt++;	
-				break;
-			}
-			default : {
-				cnt++;				
-				break;
-			}
-		}
-	}		
-	} catch(IOException e) {
-		// ignore errors
-	}
-}
-
-/**
- * A simple fuzzy scanner for Java
- */
-public class JavaScanner {
-
-	protected Hashtable fgKeys= null;
-	protected StringBuffer fBuffer= new StringBuffer();
-	protected String fDoc;
-	protected int fPos;
-	protected int fEnd;
-	protected int fStartToken;
-	protected boolean fEofSeen= false;
-
-	private String[] fgKeywords= { 
-		"abstract",
-		"boolean", "break", "byte",
-		"case", "catch", "char", "class", "continue",
-		"default", "do", "double",
-		"else", "extends",
-		"false", "final", "finally", "float", "for",
-		"if", "implements", "import", "instanceof", "int", "interface",
-		"long",
-		"native", "new", "null",
-		"package", "private", "protected", "public",
-		"return",
-		"short", "static", "super", "switch", "synchronized",
-		"this", "throw", "throws", "transient", "true", "try",
-		"void", "volatile",
-		"while"
-	};
-
-	public JavaScanner() {
-		initialize();
-	}
-
-	/**
-	 * Returns the ending location of the current token in the document.
-	 */
-	public final int getLength() {
-		return fPos - fStartToken;
-	}
-
-	/**
-	 * Initialize the lookup table.
-	 */
-	void initialize() {
-		fgKeys= new Hashtable();
-		Integer k= new Integer(KEY);
-		for (int i= 0; i < fgKeywords.length; i++)
-			fgKeys.put(fgKeywords[i], k);
-	}
-
-	/**
-	 * Returns the starting location of the current token in the document.
-	 */
-	public final int getStartOffset() {
-		return fStartToken;
-	}
-
-	/**
-	 * Returns the next lexical token in the document.
-	 */
-	public int nextToken() {
-		int c;
-		fStartToken= fPos;
-		while (true) {
-			switch (c= read()) {			
-			case EOF:
-				return EOF;				
-			case '/':	// comment
-				c= read();
-				if (c == '/') {
-					while (true) {
-						c= read();
-						if ((c == EOF) || (c == EOL)) {
-							unread(c);
-							return COMMENT;
-						}
-					}
-				} else {
-					unread(c);
-				}
-				return OTHER;
-			case '\'':	// char const
-				character: for(;;) {
-					c= read();
-					switch (c) {
-						case '\'':
-							return STRING;
-						case EOF:
-							unread(c);
-							return STRING;
-						case '\\':
-							c= read();
-							break;
-						}
-				}
-
-			case '"':	// string
-				string: for (;;) {
-					c= read();
-					switch (c) {
-						case '"':
-							return STRING;
-						case EOF:
-							unread(c);
-							return STRING;
-						case '\\':
-							c= read();
-							break;
-						}
-				}
-
-			case '0': case '1': case '2': case '3': case '4':
-			case '5': case '6': case '7': case '8': case '9':
-				do {
-					c= read();
-				} while(Character.isDigit((char)c));
-				unread(c);
-				return NUMBER;
-			default:
-				if (Character.isWhitespace((char)c)) {
-					do {
-						c= read();
-					} while(Character.isWhitespace((char)c));
-					unread(c);
-					return WHITE;
-				}
-				if (Character.isJavaIdentifierStart((char)c)) {
-					fBuffer.setLength(0);
-					do {
-						fBuffer.append((char)c);
-						c= read();
-					} while(Character.isJavaIdentifierPart((char)c));
-					unread(c);
-					Integer i= (Integer) fgKeys.get(fBuffer.toString());
-					if (i != null)
-						return i.intValue();
-						return WORD;
-				}
-				return OTHER;
-			}
-		}
-	}
-
-	/**
-	 * Returns next character.
-	 */
-	protected int read() {
-		if (fPos <= fEnd) {
-			return fDoc.charAt(fPos++);
-		}
-		return EOF;
-	}
-
-	public void setRange(String text) {
-		fDoc= text;
-		fPos= 0;
-		fEnd= fDoc.length() -1;
-	}
-
-	protected void unread(int c) {
-		if (c != EOF)
-	    	fPos--;
-	}
-}
-
-
-
-
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java
deleted file mode 100755
index aa23d58..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.javaviewer;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import java.util.*;
-import java.io.*;
-import java.text.*;
-
-/**
- */
-public class JavaViewer {  
-	Shell shell;
-	StyledText text;
-	JavaLineStyler lineStyler = new JavaLineStyler();
-	FileDialog fileDialog;
-	static ResourceBundle resources = ResourceBundle.getBundle("examples_javaviewer");
-
-Menu createFileMenu() {
-	Menu bar = shell.getMenuBar ();
-	Menu menu = new Menu (bar);
-	MenuItem item;
-
-	// Open 
-	item = new MenuItem (menu, SWT.CASCADE);
-	item.setText (resources.getString("Open_menuitem"));
-	item.setAccelerator(SWT.MOD1 + 'O');
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			openFile();
-		}
-	});
-
-	// Exit
-	item = new MenuItem (menu, SWT.PUSH);
-	item.setText (resources.getString("Exit_menuitem"));
-	item.addSelectionListener (new SelectionAdapter () {
-		public void widgetSelected (SelectionEvent e) {
-			menuFileExit ();
-		}
-	});
-	return menu;
-}
-
-void createMenuBar () {
-	Menu bar = new Menu (shell, SWT.BAR);
-	shell.setMenuBar (bar);
-
-	MenuItem fileItem = new MenuItem (bar, SWT.CASCADE);
-	fileItem.setText (resources.getString("File_menuitem"));
-	fileItem.setMenu (createFileMenu ());
-
-}
-
-void createShell (Display display) {
-	shell = new Shell (display);
-	shell.setText (resources.getString("Window_title"));	
-	GridLayout layout = new GridLayout();
-	layout.numColumns = 1;
-	shell.setLayout(layout);
-	shell.addShellListener (new ShellAdapter () {
-		public void shellClosed (ShellEvent e) {
-			lineStyler.disposeColors();
-			text.removeLineStyleListener(lineStyler);
-		}
-	});
-}
-void createStyledText() {
-	text = new StyledText (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
-	GridData spec = new GridData();
-	spec.horizontalAlignment = GridData.FILL;
-	spec.grabExcessHorizontalSpace = true;
-	spec.verticalAlignment = GridData.FILL;
-	spec.grabExcessVerticalSpace = true;
-	text.setLayoutData(spec);
-	text.addLineStyleListener(lineStyler);
-	text.setEditable(false);
-	Color bg = Display.getDefault().getSystemColor(SWT.COLOR_GRAY);
-	text.setBackground(bg);
-}
-
-void displayError(String msg) {
-	MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
-	box.setMessage(msg);
-	box.open();
-}
-
-public static void main (String [] args) {
-	Display display = new Display();
-	JavaViewer example = new JavaViewer ();
-	Shell shell = example.open (display);
-	while (!shell.isDisposed ())
-		if (!display.readAndDispatch ()) display.sleep ();
-	display.dispose ();
-}
-
-public Shell open (Display display) {
-	createShell (display);
-	createMenuBar ();
-	createStyledText ();
-	shell.setSize(500, 400);
-	shell.open ();
-	return shell;
-}
-
-void openFile() {	
-	final String textString;
-	if (fileDialog == null) {
-		fileDialog = new FileDialog(shell, SWT.OPEN);
-	}
-
-	fileDialog.setFilterExtensions(new String[] {"*.java", "*.*"});
-	fileDialog.open();
-	String name = fileDialog.getFileName();
-	
-	if ((name == null) || (name.length() == 0)) return;
-
-	File file = new File(fileDialog.getFilterPath(), name);
-	if (!file.exists()) {
-		String message = MessageFormat.format(resources.getString("Err_file_no_exist"), new String[] {file.getName()});
-		displayError(message);
-		return;
-	}
-
-	try {
-		FileInputStream stream= new FileInputStream(file.getPath());
-		try {
-			Reader in = new BufferedReader(new InputStreamReader(stream));
-			char[] readBuffer= new char[2048];
-			StringBuffer buffer= new StringBuffer((int) file.length());
-			int n;
-			while ((n = in.read(readBuffer)) > 0) {
-				buffer.append(readBuffer, 0, n);
-			}
-			textString = buffer.toString();
-			stream.close();
-		}
-		catch (IOException e) {
-			// Err_file_io
-			String message = MessageFormat.format(resources.getString("Err_file_io"), new String[] {file.getName()});
-			displayError(message);
-			return;
-		}
-	}
-	catch (FileNotFoundException e) {
-		String message = MessageFormat.format(resources.getString("Err_not_found"), new String[] {file.getName()});
-		displayError(message);
-		return;
-	}
-	// Guard against superfluous mouse move events -- defer action until later
-	Display display = text.getDisplay();
-	display.asyncExec(new Runnable() {
-		public void run() {
-			text.setText(textString);
-		}
-	});	
-	
-	// parse the block comments up front since block comments can go across
-	// lines - inefficient way of doing this
-	lineStyler.parseBlockComments(textString);
-}
-
-void menuFileExit () {
-	shell.close ();
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java
deleted file mode 100644
index d0c1fa3..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class FillLayoutTab extends Tab {
-	/* Controls for setting layout parameters */
-	Button horizontal, vertical;
-	/* The example layout instance */
-	FillLayout fillLayout;
-	/* TableEditors and related controls*/
-	TableEditor comboEditor;
-	CCombo combo;
-	
-	/**
-	 * Creates the Tab within a given instance of LayoutExample.
-	 */
-	FillLayoutTab(LayoutExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the widgets in the "child" group.
-	 */
-	void createChildWidgets () {
-		/* Add common controls */
-		super.createChildWidgets ();
-		
-		/* Add TableEditors */
-		comboEditor = new TableEditor (table);
-		table.addSelectionListener (new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				resetEditors ();
-				index = table.getSelectionIndex ();
-				if (index == -1) return;
-				TableItem oldItem = comboEditor.getItem ();
-				newItem = table.getItem (index);
-				if (newItem == oldItem || newItem != lastSelected) {
-					lastSelected = newItem;
-					return;
-				}
-				table.showSelection ();
-				
-				combo = new CCombo (table, SWT.READ_ONLY);
-				createComboEditor (combo, comboEditor);
-			}
-		});
-		
-		
-		/* Add listener to add an element to the table */
-		add.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				TableItem item = new TableItem (table, 0);
-				item.setText (0, String.valueOf (table.indexOf (item)));
-				item.setText (1, "Button");
-				data.addElement ("Button");
-				resetEditors ();
-			}
-		});
-	}
-	
-	/**
-	 * Creates the control widgets.
-	 */
-	void createControlWidgets () {
-		/* Controls the type of FillLayout */
-		Group typeGroup = new Group (controlGroup, SWT.NONE);
-		typeGroup.setText (LayoutExample.getResourceString ("Type"));
-		typeGroup.setLayout (new GridLayout ());
-		typeGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-		horizontal = new Button (typeGroup, SWT.RADIO);
-		horizontal.setText ("SWT.HORIZONTAL");
-		horizontal.setLayoutData(new GridData (GridData.FILL_HORIZONTAL));
-		horizontal.setSelection(true);
-		horizontal.addSelectionListener (selectionListener);
-		vertical = new Button (typeGroup, SWT.RADIO);
-		vertical.setText ("SWT.VERTICAL");
-		vertical.setLayoutData(new GridData (GridData.FILL_HORIZONTAL));
-		vertical.addSelectionListener (selectionListener); 
-		
-		/* Add common controls */
-		super.createControlWidgets ();
-		
-		/* Position the sash */
-		sash.setWeights (new int [] {4,1});
-	}
-	
-	/**
-	 * Creates the example layout.
-	 */
-	void createLayout () {
-		fillLayout = new FillLayout ();
-		layoutComposite.setLayout (fillLayout);
-	}
-	
-	/** 
-	 * Disposes the editors without placing their contents
-	 * into the table.
-	 */
-	void disposeEditors () {
-		comboEditor.setEditor (null, null, -1);
-		combo.dispose ();
-	}
-
-	
-	/**
-	 * Generates code for the example layout.
-	 */
-	StringBuffer generateLayoutCode () {
-		StringBuffer code = new StringBuffer ();
-		code.append ("\t\tFillLayout fillLayout = new FillLayout ();\n");
-		if (fillLayout.type == SWT.VERTICAL) {
-			code.append ("\t\tfillLayout.type = SWT.VERTICAL;\n");
-		}
-		code.append ("\t\tshell.setLayout (fillLayout);\n");
-		for (int i = 0; i < children.length; i++) {
-			Control control = children [i];
-			code.append (getChildCode (control, i));
-		}
-		return code;
-	}
-	
-	/**
-	 * Returns the layout data field names.
-	 */
-	String [] getLayoutDataFieldNames() {
-		return new String [] {"","Control"};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "FillLayout";
-	}
-	
-	/**
-	 * Takes information from TableEditors and stores it.
-	 */
-	void resetEditors () {
-		TableItem oldItem = comboEditor.getItem ();
-		comboEditor.setEditor (null, null, -1);
-		if (oldItem != null) {
-			int row = table.indexOf (oldItem);
-			data.insertElementAt (combo.getText (), row);
-			oldItem.setText (1, data.elementAt (row).toString ());
-			combo.dispose ();
-		}
-		setLayoutState ();
-		refreshLayoutComposite ();
-		layoutComposite.layout (true);
-		layoutGroup.layout (true);
-	}
-	
-	/**
-	 * Sets the state of the layout.
-	 */
-	void setLayoutState () {
-		if (vertical.getSelection()) {
-			fillLayout.type = SWT.VERTICAL;
-		} else {
-			fillLayout.type = SWT.HORIZONTAL;
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java
deleted file mode 100644
index b2c9e5d..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java
+++ /dev/null
@@ -1,762 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.custom.*;
-
-class FormLayoutTab extends Tab {
-	/* Controls for setting layout parameters */
-	Combo marginHeight, marginWidth;
-	/* The example layout instance */
-	FormLayout formLayout;
-	/* TableEditors and related controls*/
-	TableEditor comboEditor, widthEditor, heightEditor;
-	TableEditor leftEditor, rightEditor, topEditor, bottomEditor;
-	CCombo combo;
-	Text widthText, heightText;
-	Button leftAttach, rightAttach, topAttach, bottomAttach;
-	
-	/* Constants */
-	final int COMBO_COL = 1;
-	final int WIDTH_COL = 2;
-	final int HEIGHT_COL = 3;
-	final int LEFT_COL = 4;
-	final int RIGHT_COL = 5;
-	final int TOP_COL = 6;
-	final int BOTTOM_COL = 7;
-	
-	final int MODIFY_COLS = 4;	// The number of columns with combo or text editors
-	final int TOTAL_COLS = 8;
-
-	/**
-	 * Creates the Tab within a given instance of LayoutExample.
-	 */
-	FormLayoutTab(LayoutExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Returns the constant for the alignment for an
-	 * attachment given a string.
-	 */
-	int alignmentConstant (String align) {
-		if (align.equals("LEFT")) return SWT.LEFT;
-		if (align.equals("RIGHT")) return SWT.RIGHT;
-		if (align.equals("TOP")) return SWT.TOP;
-		if (align.equals("BOTTOM")) return SWT.BOTTOM;
-		if (align.equals("CENTER")) return SWT.CENTER;
-		return SWT.DEFAULT;
-	}
-	
-	/**
-	 * Returns a string representing the alignment for an
-	 * attachment given a constant.
-	 */
-	String alignmentString (int align) {
-		switch (align) {
-			case SWT.LEFT: return "LEFT";
-			case SWT.RIGHT: return "RIGHT";
-			case SWT.TOP: return "TOP";
-			case SWT.BOTTOM: return "BOTTOM";
-			case SWT.CENTER: return "CENTER";
-		}
-		return "DEFAULT";
-	}
-	
-	/**
-	 * Update the attachment field in case the type of control
-	 * has changed. 
-	 */
-	String checkAttachment (String oldAttach, FormAttachment newAttach) {
-		String controlClass = newAttach.control.getClass().toString ();
-		String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1);
-		int i = 0;
-		while (i < oldAttach.length () && !Character.isDigit(oldAttach.charAt (i))) {
-			i++;
-		}
-		String index = oldAttach.substring (i, oldAttach.indexOf (','));
-		return controlType + index + "," + newAttach.offset + ":" + alignmentString (newAttach.alignment);
-	}
-	
-	/**
-	 * Creates the widgets in the "child" group.
-	 */
-	void createChildWidgets () {
-		/* Add common controls */
-		super.createChildWidgets ();
-		
-		/* Resize the columns */
-		table.getColumn (LEFT_COL).setWidth (100);
-		table.getColumn (RIGHT_COL).setWidth (100);
-		table.getColumn (TOP_COL).setWidth (100);
-		table.getColumn (BOTTOM_COL).setWidth (100);
-				
-		/* Add TableEditors */			
-		comboEditor = new TableEditor (table);
-		widthEditor = new TableEditor (table);
-		heightEditor = new TableEditor (table);
-		leftEditor = new TableEditor (table);
-		rightEditor = new TableEditor (table);
-		topEditor = new TableEditor (table);
-		bottomEditor = new TableEditor (table);
-		table.addMouseListener (new MouseAdapter () {
-			public void mouseDown(MouseEvent e) {
-				resetEditors();
-				index = table.getSelectionIndex ();
-				Point pt = new Point (e.x, e.y);
-                newItem = table.getItem (pt);
-                if (newItem == null) return;
-                TableItem oldItem = comboEditor.getItem ();
-                if (newItem == oldItem || newItem != lastSelected) {
-					lastSelected = newItem;
-					return;
-				}
-				table.showSelection ();
-				
-				combo = new CCombo (table, SWT.READ_ONLY);
-				createComboEditor (combo, comboEditor);
-				
-				widthText = new Text (table, SWT.SINGLE);
-				widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]);
-				createTextEditor (widthText, widthEditor, WIDTH_COL);
-				
-				heightText = new Text (table, SWT.SINGLE);
-				heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]);
-				createTextEditor (heightText, heightEditor, HEIGHT_COL);
-				
-				leftAttach = new Button (table, SWT.PUSH);
-				leftAttach.setText (LayoutExample.getResourceString ("Attach_Edit"));
-				leftEditor.horizontalAlignment = SWT.LEFT;
-				leftEditor.grabHorizontal = true;
-				leftEditor.minimumWidth = leftAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
-				leftEditor.setEditor (leftAttach, newItem, LEFT_COL);
-				leftAttach.addSelectionListener (new SelectionAdapter () {
-					public void widgetSelected (SelectionEvent e) {
-						Shell shell = tabFolderPage.getShell ();
-						AttachDialog dialog = new AttachDialog (shell);
-						dialog.setText (LayoutExample.getResourceString ("Left_Attachment"));
-						dialog.setColumn (LEFT_COL);
-						String attach = dialog.open ();
-						newItem.setText (LEFT_COL, attach);
-						resetEditors ();
-					}
-				});
-				
-				rightAttach = new Button (table, SWT.PUSH);
-				rightAttach.setText (LayoutExample.getResourceString ("Attach_Edit"));
-				rightEditor.horizontalAlignment = SWT.LEFT;
-				rightEditor.grabHorizontal = true;
-				rightEditor.minimumWidth = rightAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
-				rightEditor.setEditor (rightAttach, newItem, RIGHT_COL);
-				rightAttach.addSelectionListener (new SelectionAdapter () {
-					public void widgetSelected (SelectionEvent e) {
-						Shell shell = tabFolderPage.getShell ();
-						AttachDialog dialog = new AttachDialog (shell);
-						dialog.setText (LayoutExample.getResourceString ("Right_Attachment"));
-						dialog.setColumn (RIGHT_COL);
-						String attach = dialog.open ();
-						newItem.setText (RIGHT_COL, attach);
-						if (newItem.getText (LEFT_COL).endsWith (")")) newItem.setText (LEFT_COL, "");
-						resetEditors ();
-					}
-				});
-				
-				topAttach = new Button (table, SWT.PUSH);
-				topAttach.setText (LayoutExample.getResourceString ("Attach_Edit"));
-				topEditor.horizontalAlignment = SWT.LEFT;
-				topEditor.grabHorizontal = true;
-				topEditor.minimumWidth = topAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
-				topEditor.setEditor (topAttach, newItem, TOP_COL);
-				topAttach.addSelectionListener (new SelectionAdapter () {
-					public void widgetSelected (SelectionEvent e) {
-						Shell shell = tabFolderPage.getShell ();
-						AttachDialog dialog = new AttachDialog (shell);
-						dialog.setText (LayoutExample.getResourceString ("Top_Attachment"));
-						dialog.setColumn (TOP_COL);
-						String attach = dialog.open ();
-						newItem.setText (TOP_COL, attach);
-						resetEditors ();
-					}
-				});
-				bottomAttach = new Button (table, SWT.PUSH);
-				bottomAttach.setText (LayoutExample.getResourceString ("Attach_Edit"));
-				bottomEditor.horizontalAlignment = SWT.LEFT;
-				bottomEditor.grabHorizontal = true;
-				bottomEditor.minimumWidth = bottomAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
-				bottomEditor.setEditor (bottomAttach, newItem, BOTTOM_COL);
-				bottomAttach.addSelectionListener (new SelectionAdapter () {
-					public void widgetSelected (SelectionEvent e) {
-						Shell shell = tabFolderPage.getShell ();
-						AttachDialog dialog = new AttachDialog (shell);
-						dialog.setText (LayoutExample.getResourceString ("Bottom_Attachment"));
-						dialog.setColumn (BOTTOM_COL);
-						String attach = dialog.open ();
-						newItem.setText (BOTTOM_COL, attach);
-						if (newItem.getText (TOP_COL).endsWith (")")) newItem.setText (TOP_COL, "");
-						resetEditors ();
-					}
-				});
-                
-                for (int i=0; i<table.getColumnCount (); i++) {
-                	Rectangle rect = newItem.getBounds (i);
-                    if (rect.contains (pt)) {
-                    	switch (i) {
-                    		case 0:
-                    			resetEditors ();
-                    			break;
-							case COMBO_COL :
-								combo.setFocus ();	
-								break;
-							case WIDTH_COL :	
-								widthText.setFocus ();
-								break;
-							case HEIGHT_COL :
-								heightText.setFocus ();
-								break;
-							default :
-								break;
-						}
-                    }
-                } 
-			}
-		});
-		
-		/* Add listener to add an element to the table */
-		add.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				TableItem item = new TableItem (table, 0);
-				String [] insert = new String [] {
-					String.valueOf (table.indexOf (item)), "Button", "-1", "-1",
-					"0,0 (" + LayoutExample.getResourceString ("Default") + ")", "", 
-					"0,0 (" + LayoutExample.getResourceString ("Default") + ")", ""};
-				item.setText (insert);
-				data.addElement (insert);
-				resetEditors ();
-			}
-		});
-	}
-
-	/**
-	 * Creates the control widgets.
-	 */
-	void createControlWidgets () {
-		/* Controls the margins and spacing of the FormLayout */
-		String [] marginValues = new String [] {"0","3","5","10"};
-		Group marginGroup = new Group (controlGroup, SWT.NONE);
-		marginGroup.setText (LayoutExample.getResourceString ("Margins"));
-		GridLayout layout = new GridLayout ();
-		layout.numColumns = 2;
-		marginGroup.setLayout (layout);
-		marginGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-		new Label (marginGroup, SWT.NONE).setText ("marginHeight");
-		marginHeight = new Combo (marginGroup, SWT.NONE);
-		marginHeight.setItems (marginValues);
-		marginHeight.select (0);
-		marginHeight.addSelectionListener (selectionListener);
-		marginHeight.addTraverseListener (traverseListener);
-		GridData data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 60;
-		marginHeight.setLayoutData (data);
-		new Label (marginGroup, SWT.NONE).setText ("marginWidth");
-		marginWidth = new Combo (marginGroup, SWT.NONE);
-		marginWidth.setItems (marginValues);
-		marginWidth.select (0);
-		marginWidth.addSelectionListener (selectionListener);
-		marginWidth.addTraverseListener (traverseListener);
-		data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 60;
-		marginWidth.setLayoutData (data);
-		
-		/* Add common controls */
-		super.createControlWidgets ();
-		
-		/* Position the sash */
-		sash.setWeights (new int [] {6,4});
-	}
-	
-	/**
-	 * Creates the example layout.
-	 */
-	void createLayout () {
-		formLayout = new FormLayout ();
-		layoutComposite.setLayout (formLayout);
-	}
-	
-	/** 
-	 * Disposes the editors without placing their contents
-	 * into the table.
-	 */
-	void disposeEditors () {
-		comboEditor.setEditor (null, null, -1);
-		combo.dispose ();
-		widthText.dispose ();
-		heightText.dispose ();
-		leftAttach.dispose ();
-		rightAttach.dispose ();
-		topAttach.dispose ();
-		bottomAttach.dispose ();
-	}
-
-	/**
-	 * Generates code for the example layout.
-	 */	
-	StringBuffer generateLayoutCode () {
-		StringBuffer code = new StringBuffer ();
-		code.append ("\t\tFormLayout formLayout = new FormLayout ();\n");
-		if (formLayout.marginHeight != 0) {
-			code.append ("\t\tformLayout.marginHeight = " + formLayout.marginHeight + ";\n");
-		}
-		if (formLayout.marginWidth != 0) {
-			code.append ("\t\tformLayout.marginWidth = " + formLayout.marginWidth + ";\n");
-		}
-		code.append ("\t\tshell.setLayout (formLayout);\n");
-		
-		boolean first = true;
-		for (int i = 0; i < children.length; i++) {
-			Control control = children [i];
-			code.append (getChildCode (control, i));
-			FormData data = (FormData) control.getLayoutData ();
-			if (data != null) {
-				code.append ("\t\t");
-				if (first) {
-					code.append ("FormData ");
-					first = false;
-				}
-				code.append ("data = new FormData ();\n");	
-				if (data.width != SWT.DEFAULT) {
-					code.append ("\t\tdata.width = " + data.width + ";\n");
-				}
-				if (data.height != SWT.DEFAULT) {
-					code.append ("\t\tdata.height = " + data.height + ";\n");
-				}
-				if (data.left != null) {
-					if (data.left.control != null) {
-						TableItem item = table.getItem (i);
-						String controlString = item.getText (LEFT_COL);
-						int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue ();
-						code.append ("\t\tdata.left = new FormAttachment (" + names [index] + ", " + data.left.offset + ", SWT." + alignmentString (data.left.alignment) + ");\n");
-					} else {
-						if (data.right != null || (data.left.numerator != 0 ||data.left.offset != 0)) {
-							code.append ("\t\tdata.left = new FormAttachment (" + data.left.numerator + ", " + data.left.offset + ");\n");
-						}
-					}
-				}
-				if (data.right != null) {
-					if (data.right.control != null) {
-						TableItem item = table.getItem (i);
-						String controlString = item.getText (RIGHT_COL);
-						int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue ();
-						code.append ("\t\tdata.right = new FormAttachment (" + names [index] + ", " + data.right.offset + ", SWT." + alignmentString (data.right.alignment) + ");\n");
-					} else {
-						code.append ("\t\tdata.right = new FormAttachment (" + data.right.numerator + ", " + data.right.offset + ");\n");
-					}
-				}
-				if (data.top != null) {
-					if (data.top.control != null) {
-						TableItem item = table.getItem (i);
-						String controlString = item.getText (TOP_COL);
-						int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue ();
-						code.append ("\t\tdata.top = new FormAttachment (" + names [index] + ", " + data.top.offset + ", SWT." + alignmentString (data.top.alignment) + ");\n");
-					} else {
-						if (data.bottom != null || (data.top.numerator != 0 ||data.top.offset != 0)) {
-							code.append ("\t\tdata.top = new FormAttachment (" + data.top.numerator + ", " + data.top.offset + ");\n");
-						}
-					}
-				}
-				if (data.bottom != null) {
-					if (data.bottom.control != null) {
-						TableItem item = table.getItem (i);
-						String controlString = item.getText (BOTTOM_COL);
-						int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue ();
-						code.append ("\t\tdata.bottom = new FormAttachment (" + names [index] + ", " + data.bottom.offset + ", SWT." + alignmentString (data.bottom.alignment) + ");\n");
-					} else {
-						code.append ("\t\tdata.bottom = new FormAttachment (" + data.bottom.numerator + ", " + data.bottom.offset + ");\n");
-					}
-				}
-				code.append ("\t\t" + names [i] + ".setLayoutData (data);\n");
-			}
-		}
-		return code;
-	}
-	
-	/**
-	 * Returns the layout data field names.
-	 */
-	String [] getLayoutDataFieldNames() {
-		return new String [] {
-			"",
-			"Control", 
-			"width", 
-			"height", 
-			"left", 
-			"right", 
-			"top", 
-			"bottom"
-		};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "FormLayout";
-	}
-	
-	/**
-	 * Takes information from TableEditors and stores it.
-	 */
-	void resetEditors () {
-		resetEditors (false);
-	}
-	
-	void resetEditors (boolean tab) {
-		TableItem oldItem = comboEditor.getItem ();
-		if (oldItem != null) {
-			int row = table.indexOf (oldItem);
-			try {
-				new Integer (widthText.getText ()).intValue ();
-			} catch (NumberFormatException e) {
-				widthText.setText (oldItem.getText (WIDTH_COL));
-			}
-			try {
-				new Integer (heightText.getText ()).intValue ();
-			} catch (NumberFormatException e) {
-				heightText.setText (oldItem.getText (HEIGHT_COL));
-			}
-			String [] insert = new String [] {String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText ()};
-			data.setElementAt (insert, row);
-			for (int i = 0 ; i < MODIFY_COLS; i++) {
-				oldItem.setText (i, ((String [])data.elementAt (row)) [i]);
-			}
-			if (!tab) disposeEditors ();
-		}
-		setLayoutState ();
-		refreshLayoutComposite ();
-		setLayoutData ();
-		layoutComposite.layout (true);
-		layoutGroup.layout (true);
-	}
-	
-	/**
-	 * Sets an attachment to the edge of a widget using the
-	 * information in the table.
-	 */
-	FormAttachment setAttachment (String attachment) {
-		String control, align;
-		int position, offset;
-		int comma = attachment.indexOf (',');
-		char first = attachment.charAt (0);
-		if (Character.isLetter(first)) {
-			/* Case where there is a control */
-			control = attachment.substring (0, comma);
-			int i = 0;
-			while (i < control.length () && !Character.isDigit (control.charAt (i))) {
-				i++;
-			}
-			String end = control.substring (i);
-			int index = new Integer (end).intValue ();
-			Control attachControl = children [index];
-			int colon = attachment.indexOf (':');
-			try {
-				offset = new Integer (attachment.substring (comma + 1, colon)).intValue ();
-			} catch (NumberFormatException e) {
-				offset = 0;
-			}
-			align = attachment.substring (colon + 1);
-			return new FormAttachment (attachControl, offset, alignmentConstant (align));
-		} else {
-			/* Case where there is a position */
-			try {
-				position = new Integer (attachment.substring (0,comma)).intValue ();	
-			} catch (NumberFormatException e) {
-				position = 0;
-			}
-			try {
-				offset = new Integer (attachment.substring (comma + 1)).intValue ();
-			} catch (NumberFormatException e) {
-				offset = 0;
-			}
-			return new FormAttachment (position, offset);		
-		}
-	}
-	
-	/**
-	 * Sets the layout data for the children of the layout.
-	 */
-	void setLayoutData () {
-		Control [] children = layoutComposite.getChildren ();
-		TableItem [] items = table.getItems ();
-		FormData data;
-		int width, height;
-		String left, right, top, bottom;
-		for (int i = 0; i < children.length; i++) {
-			width = new Integer (items [i].getText (WIDTH_COL)).intValue ();
-			height = new Integer (items [i].getText (HEIGHT_COL)).intValue ();
-			data = new FormData ();
-			if (width > 0) data.width = width;
-			if (height > 0) data.height = height;
-			
-			left = items [i].getText (LEFT_COL);
-			if (left.length () > 0) {
-				data.left = setAttachment (left);
-				if (data.left.control != null) {
-					String attachment = checkAttachment (left, data.left);
-					items [i].setText (LEFT_COL, attachment);
-				}
-			}
-			right = items [i].getText (RIGHT_COL);
-			if (right.length () > 0) {
-				data.right = setAttachment (right);
-				if (data.right.control != null) {
-					String attachment = checkAttachment (right, data.right);
-					items [i].setText (RIGHT_COL, attachment);
-				}
-			}
-			top = items [i].getText (TOP_COL);
-			if (top.length () > 0 ) {
-				data.top = setAttachment (top);
-				if (data.top.control != null) {
-					String attachment = checkAttachment (top, data.top);
-					items [i].setText (TOP_COL, attachment);
-				}
-			}
-			bottom = items [i].getText (BOTTOM_COL);
-			if (bottom.length () > 0) {
-				data.bottom = setAttachment (bottom);
-				if (data.bottom.control != null) {
-					String attachment = checkAttachment (bottom, data.bottom);
-					items [i].setText (BOTTOM_COL, attachment);
-				}
-			}
-			children [i].setLayoutData (data);
-		}
-	}
-	
-	/**
-	 * Sets the state of the layout.
-	 */
-	void setLayoutState () {
-		/* Set the margins and spacing */
-		try {
-			formLayout.marginHeight = new Integer (marginHeight.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			formLayout.marginHeight = 0;
-			marginHeight.select (0);
-		}
-		try {
-			formLayout.marginWidth = new Integer (marginWidth.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			formLayout.marginWidth = 0;
-			marginWidth.select (0);
-		}
-	}
-	
-	
-	/**
-	 * <code>AttachDialog</code> is the class that creates a
-	 * dialog specific for this example. It creates a dialog
-	 * with controls to set the values in a FormAttachment.
-	 */
-	public class AttachDialog extends Dialog {
-		String result = "";
-		String controlInput, positionInput, alignmentInput, offsetInput;
-		int col = 0;
-		
-		public AttachDialog (Shell parent, int style) {
-			super (parent, style);
-		}
-		
-		public AttachDialog (Shell parent) {
-			this (parent, 0);
-		}
-		
-		public void setColumn (int col) {
-			this.col = col;
-		}
-	 
-		public String open () {
-			Shell parent = getParent ();
-			final Shell shell = new Shell (parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
-			shell.setText (getText ());
-			GridLayout layout = new GridLayout ();
-			layout.numColumns = 3;
-			layout.makeColumnsEqualWidth = true;
-			shell.setLayout (layout);
-			
-			/* Find out what was previously set as an attachment */
-			TableItem newItem = leftEditor.getItem ();
-			result = newItem.getText (col);
-			String oldAttach = result;
-			String oldPos = "0", oldControl = "", oldAlign = "DEFAULT", oldOffset = "0";
-			boolean isControl = false;
-			if (oldAttach.length () != 0) {
-				char first = oldAttach.charAt (0);
-				if (Character.isLetter(first)) {
-					/* We have a control */
-					isControl = true;
-					oldControl = oldAttach.substring (0, oldAttach.indexOf (','));
-					oldAlign = oldAttach.substring (oldAttach.indexOf (':') + 1);
-					oldOffset = oldAttach.substring (oldAttach.indexOf (',') + 1, oldAttach.indexOf (':'));
-				} else {
-					/* We have a position */
-					oldPos = oldAttach.substring (0, oldAttach.indexOf (','));
-					oldOffset = oldAttach.substring (oldAttach.indexOf (',') + 1);
-					if (oldOffset.endsWith (")")) { // i.e. (Default)
-						oldOffset = oldOffset.substring (0, oldOffset.indexOf (' '));
-					}
-				}
-			}
-			
-			/* Add position field */
-			final Button posButton = new Button (shell, SWT.RADIO);
-			posButton.setText (LayoutExample.getResourceString ("Position"));
-			posButton.setSelection (!isControl);			
-			final Combo position = new Combo (shell, SWT.NONE);
-			position.setItems (new String [] {"0","25","50","75","100"});
-			position.setText (oldPos);
-			position.setEnabled (!isControl);			
-			GridData data = new GridData (GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 2;
-			position.setLayoutData (data);
-			
-			/* Add control field */
-			final Button contButton = new Button (shell, SWT.RADIO);
-			contButton.setText (LayoutExample.getResourceString ("Control"));
-			contButton.setSelection (isControl);
-			final Combo control = new Combo (shell, SWT.READ_ONLY);
-			TableItem [] items = table.getItems ();
-			TableItem currentItem = leftEditor.getItem ();
-			for (int i = 0; i < table.getItemCount (); i++) {
-				if (items [i].getText (0).length() > 0) {
-					if (items [i] != currentItem) {
-						control.add (items [i].getText (COMBO_COL) + i);
-					}
-				}
-			}
-			if (oldControl.length () != 0) control.setText (oldControl);
-			else control.select (0);
-			control.setEnabled (isControl);
-			data = new GridData (GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 2;
-			control.setLayoutData (data);
-			
-			/* Add alignment field */
-			new Label (shell, SWT.NONE).setText (LayoutExample.getResourceString ("Alignment"));
-			final Combo alignment = new Combo (shell, SWT.NONE);
-			String[] alignmentValues;
-			if (col == LEFT_COL || col == RIGHT_COL) {
-				alignmentValues = new String [] {"SWT.LEFT", "SWT.RIGHT", "SWT.CENTER", "SWT.DEFAULT"};
-			} else {
-				// col == TOP_COL || col == BOTTOM_COL
-				alignmentValues = new String [] {"SWT.TOP", "SWT.BOTTOM", "SWT.CENTER", "SWT.DEFAULT"};
-			}
-			alignment.setItems (alignmentValues);
-			alignment.setText ("SWT." + oldAlign);
-			alignment.setEnabled (isControl);
-			data = new GridData (GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 2;
-			alignment.setLayoutData (data);
-			
-			/* Add offset field */
-			new Label (shell, SWT.NONE).setText (LayoutExample.getResourceString ("Offset"));
-			final Text offset = new Text (shell, SWT.SINGLE | SWT.BORDER);
-			offset.setText (oldOffset);
-			data = new GridData (GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 2;
-			offset.setLayoutData (data);
-			
-			/* Add listeners for choosing between position and control */
-			posButton.addSelectionListener (new SelectionAdapter () {
-				public void widgetSelected (SelectionEvent e) {
-					position.setEnabled (true);
-					control.setEnabled (false);
-					alignment.setEnabled(false);
-				}
-			});
-			contButton.addSelectionListener (new SelectionAdapter () {
-				public void widgetSelected (SelectionEvent e) {
-					position.setEnabled (false);
-					control.setEnabled (true);
-					alignment.setEnabled(true);
-				}
-			});
-			
-			Button clear = new Button (shell, SWT.PUSH);
-			clear.setText (LayoutExample.getResourceString ("Clear"));
-			clear.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_END));
-			clear.addSelectionListener (new SelectionAdapter () {
-				public void widgetSelected (SelectionEvent e) {
-					result = "";
-					shell.close ();
-				}
-			});
-			/* OK button sets data into table */
-			Button ok = new Button (shell, SWT.PUSH);
-			ok.setText (LayoutExample.getResourceString ("OK"));
-			ok.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_CENTER));
-			ok.addSelectionListener (new SelectionAdapter () {
-				public void widgetSelected (SelectionEvent e) {
-					controlInput = control.getText ();
-					alignmentInput = alignment.getText ().substring (4);
-					positionInput = position.getText ();
-					if (positionInput.length () == 0) positionInput = "0";
-					try {
-						new Integer (positionInput).intValue ();
-					} catch (NumberFormatException except) {
-						positionInput = "0";
-					}
-					offsetInput = offset.getText ();
-					if (offsetInput.length () == 0) offsetInput = "0";
-					try {
-						new Integer (offsetInput).intValue ();
-					} catch (NumberFormatException except) {
-						offsetInput = "0";
-					}
-					if (posButton.getSelection() || controlInput.length () == 0) {
-						result = positionInput + "," + offsetInput;
-					} else {
-						result = controlInput + "," + offsetInput + ":" + alignmentInput;
-					}
-					shell.close ();
-				}
-			});
-			Button cancel = new Button (shell, SWT.PUSH);
-			cancel.setText (LayoutExample.getResourceString ("Cancel"));
-			cancel.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING));
-			cancel.addSelectionListener (new SelectionAdapter () {
-				public void widgetSelected (SelectionEvent e) {
-					shell.close ();
-				}
-			});
-			
-			shell.setDefaultButton (ok);
-			shell.pack ();
-			/* Center the dialog */
-			Point center = parent.getLocation ();
-			center.x = center.x + (parent.getBounds ().width / 2) - (shell.getBounds ().width / 2);
-			center.y = center.y + (parent.getBounds ().height / 2) - (shell.getBounds ().height / 2);
-			shell.setLocation (center);
-			shell.open ();
-			Display display = shell.getDisplay ();
-			while (!shell.isDisposed ()) {
-				if (display.readAndDispatch ()) display.sleep ();
-			}
-			
-			return result;
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java
deleted file mode 100644
index 3e9d551..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java
+++ /dev/null
@@ -1,590 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.graphics.*;
-
-class GridLayoutTab extends Tab {
-	/* Controls for setting layout parameters */
-	Text numColumns;
-	Button makeColumnsEqualWidth;
-	Combo marginHeight, marginWidth, horizontalSpacing, verticalSpacing;
-	/* The example layout instance */
-	GridLayout gridLayout;
-	/* TableEditors and related controls*/
-	TableEditor comboEditor, widthEditor, heightEditor;
-	TableEditor vAlignEditor, hAlignEditor, hIndentEditor;
-	TableEditor hSpanEditor, vSpanEditor, hGrabEditor, vGrabEditor;
-	CCombo combo, vAlign, hAlign, hGrab, vGrab;
-	Text widthText, heightText, hIndent, hSpan, vSpan;
-	
-	/* Constants */
-	final int COMBO_COL = 1;
-	final int WIDTH_COL = 2;
-	final int HEIGHT_COL = 3;
-	final int HALIGN_COL = 4;
-	final int VALIGN_COL = 5;
-	final int HINDENT_COL = 6;
-	final int HSPAN_COL = 7;
-	final int VSPAN_COL = 8;
-	final int HGRAB_COL = 9;
-	final int VGRAB_COL = 10;
-	
-	final int TOTAL_COLS = 11;
-		
-	/**
-	 * Creates the Tab within a given instance of LayoutExample.
-	 */
-	GridLayoutTab(LayoutExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the widgets in the "child" group.
-	 */
-	void createChildWidgets () {
-		/* Create the TraverseListener */
-		final TraverseListener traverseListener = new TraverseListener () {
-			public void keyTraversed (TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_RETURN || e.detail == SWT.TRAVERSE_TAB_NEXT)
-					resetEditors ();
-				if (e.detail == SWT.TRAVERSE_ESCAPE)
-					disposeEditors ();
-			};
-		};
-		
-		/* Add common controls */
-		super.createChildWidgets ();
-			
-		/* Add TableEditors */		
-		comboEditor = new TableEditor (table);
-		widthEditor = new TableEditor (table);
-		heightEditor = new TableEditor (table);
-		vAlignEditor = new TableEditor (table);
-		hAlignEditor = new TableEditor (table);
-		hIndentEditor = new TableEditor (table);
-		hSpanEditor = new TableEditor (table);
-		vSpanEditor = new TableEditor (table);
-		hGrabEditor = new TableEditor (table);
-		vGrabEditor = new TableEditor (table);
-		table.addMouseListener (new MouseAdapter () {
-			public void mouseDown(MouseEvent e) {
-				resetEditors();
-				index = table.getSelectionIndex ();
-				Point pt = new Point (e.x, e.y);
-                newItem = table.getItem (pt);
-                if (newItem == null) return;
-                TableItem oldItem = comboEditor.getItem ();
-                if (newItem == oldItem || newItem != lastSelected) {
-					lastSelected = newItem;
-					return;
-				}
-				table.showSelection ();
-				
-				combo = new CCombo (table, SWT.READ_ONLY);
-				createComboEditor (combo, comboEditor);
-				
-				widthText = new Text (table, SWT.SINGLE);
-				widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]);
-				createTextEditor (widthText, widthEditor, WIDTH_COL);
-				
-				heightText = new Text (table, SWT.SINGLE);
-				heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]);
-				createTextEditor (heightText, heightEditor, HEIGHT_COL);
-				String [] alignValues = new String [] {"BEGINNING","CENTER","END","FILL"};
-				hAlign = new CCombo (table, SWT.NONE);
-				hAlign.setItems (alignValues);
-				hAlign.setText (newItem.getText (HALIGN_COL));
-				hAlignEditor.horizontalAlignment = SWT.LEFT;
-				hAlignEditor.grabHorizontal = true;
-				hAlignEditor.minimumWidth = 50;
-				hAlignEditor.setEditor (hAlign, newItem, HALIGN_COL);
-				hAlign.addTraverseListener (traverseListener);
-				
-				vAlign = new CCombo (table, SWT.NONE);
-				vAlign.setItems (alignValues);
-				vAlign.setText (newItem.getText (VALIGN_COL));
-				vAlignEditor.horizontalAlignment = SWT.LEFT;
-				vAlignEditor.grabHorizontal = true;
-				vAlignEditor.minimumWidth = 50;
-				vAlignEditor.setEditor (vAlign, newItem, VALIGN_COL);
-				vAlign.addTraverseListener (traverseListener);
-				
-				hIndent = new Text (table, SWT.SINGLE);
-				hIndent.setText (((String [])data.elementAt (index)) [HINDENT_COL]);
-				createTextEditor (hIndent, hIndentEditor, HINDENT_COL);
-				
-				hSpan = new Text (table, SWT.SINGLE);
-				hSpan.setText (((String [])data.elementAt (index)) [HSPAN_COL]);
-				createTextEditor (hSpan, hSpanEditor, HSPAN_COL);
-				
-				vSpan = new Text (table, SWT.SINGLE);
-				vSpan.setText (((String [])data.elementAt (index)) [VSPAN_COL]);
-				createTextEditor (vSpan, vSpanEditor, VSPAN_COL);
-				
-				String [] boolValues = new String [] {"false","true"};
-				hGrab = new CCombo (table, SWT.NONE);
-				hGrab.setItems (boolValues);
-				hGrab.setText (newItem.getText (HGRAB_COL));
-				hGrabEditor.horizontalAlignment = SWT.LEFT;
-				hGrabEditor.grabHorizontal = true;
-				hGrabEditor.minimumWidth = 50;
-				hGrabEditor.setEditor (hGrab, newItem, HGRAB_COL);
-				hGrab.addTraverseListener (traverseListener);;
-				
-				vGrab = new CCombo (table, SWT.NONE);
-				vGrab.setItems (boolValues);
-				vGrab.setText (newItem.getText (VGRAB_COL));
-				vGrabEditor.horizontalAlignment = SWT.LEFT;
-				vGrabEditor.grabHorizontal = true;
-				vGrabEditor.minimumWidth = 50;
-				vGrabEditor.setEditor (vGrab, newItem, VGRAB_COL);
-				vGrab.addTraverseListener (traverseListener);
-                
-                for (int i=0; i<table.getColumnCount (); i++) {
-                	Rectangle rect = newItem.getBounds (i);
-                    if (rect.contains (pt)) {
-                    	switch (i) {
-							case COMBO_COL :
-								combo.setFocus ();	
-								break;
-							case WIDTH_COL :	
-								widthText.setFocus ();
-								break;
-							case HEIGHT_COL :
-								heightText.setFocus ();
-								break;
-							case HALIGN_COL :
-								hAlign.setFocus ();
-								break;
-							case VALIGN_COL :
-								vAlign.setFocus ();
-								break;
-							case HINDENT_COL :
-								hIndent.setFocus ();
-								break;
-							case HSPAN_COL :
-								hSpan.setFocus ();
-								break;
-							case VSPAN_COL :
-								vSpan.setFocus ();
-								break;
-							case HGRAB_COL :
-								hGrab.setFocus ();
-								break;
-							case VGRAB_COL :
-								vGrab.setFocus ();
-								break;
-							default :
-								resetEditors ();
-								break;
-						}
-                    }
-                } 
-			}
-		});
-		
-		/* Add listener to add an element to the table */
-		add.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				TableItem item = new TableItem (table, 0);
-				String [] insert = new String [] { 
-					String.valueOf (table.indexOf (item)), "Button",
-					"-1","-1","BEGINNING","CENTER",
-					"0","1","1","false","false"};
-				item.setText (insert);
-				data.addElement (insert);
-				resetEditors ();
-			}
-		});
-	}
-
-	/**
-	 * Creates the control widgets.
-	 */
-	void createControlWidgets () {
-		/* Rearrange the layout of the control group */
-		size.setLayoutData (new GridData ());
-		
-		/* Controls the margins and spacing of the GridLayout */
-		String [] marginValues = new String [] {"0","3","5","10"};
-		Group marginGroup = new Group (controlGroup, SWT.NONE);
-		marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing"));
-		GridData data = new GridData (GridData.FILL_HORIZONTAL);
-		data.verticalSpan = 2;
-		marginGroup.setLayoutData (data);
-		GridLayout layout = new GridLayout ();
-		layout.numColumns = 2;
-		marginGroup.setLayout (layout);
-		new Label (marginGroup, SWT.NONE).setText ("marginHeight");
-		marginHeight = new Combo (marginGroup, SWT.NONE);
-		marginHeight.setItems (marginValues);
-		marginHeight.select (2);
-		data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 60;
-		marginHeight.setLayoutData (data);
-		marginHeight.addSelectionListener (selectionListener);
-		marginHeight.addTraverseListener (traverseListener);
-		new Label (marginGroup, SWT.NONE).setText ("marginWidth");
-		marginWidth = new Combo (marginGroup, SWT.NONE);
-		marginWidth.setItems (marginValues);
-		marginWidth.select (2);
-		data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 60;
-		marginWidth.setLayoutData (data);
-		marginWidth.addSelectionListener (selectionListener);
-		marginWidth.addTraverseListener (traverseListener);
-		new Label (marginGroup, SWT.NONE).setText ("horizontalSpacing");
-		horizontalSpacing = new Combo (marginGroup, SWT.NONE);
-		horizontalSpacing.setItems (marginValues);
-		horizontalSpacing.select (2);
-		data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 60;
-		horizontalSpacing.setLayoutData (data);
-		horizontalSpacing.addSelectionListener (selectionListener);
-		horizontalSpacing.addTraverseListener (traverseListener);
-		new Label (marginGroup, SWT.NONE).setText ("verticalSpacing");
-		verticalSpacing = new Combo (marginGroup, SWT.NONE);
-		verticalSpacing.setItems (marginValues);
-		verticalSpacing.select (2);
-		data = new GridData (GridData.FILL_HORIZONTAL);
-		data.widthHint = 60;
-		verticalSpacing.setLayoutData (data);
-		verticalSpacing.addSelectionListener (selectionListener);
-		verticalSpacing.addTraverseListener (traverseListener);
-        
-        /* Controls the columns in the GridLayout */
-		Group columnGroup = new Group (controlGroup, SWT.NONE);
-		columnGroup.setText (LayoutExample.getResourceString ("Columns"));
-		layout = new GridLayout ();
-		layout.numColumns = 2;
-		columnGroup.setLayout (layout);
-		data = new GridData (GridData.VERTICAL_ALIGN_FILL);
-		columnGroup.setLayoutData (data);
-		numColumns = new Text (columnGroup, SWT.BORDER);
-		numColumns.setText ("1");
-		numColumns.addSelectionListener (selectionListener);
-		numColumns.addTraverseListener (traverseListener);
-       	data = new GridData (GridData.FILL_HORIZONTAL);
-       	data.widthHint = 15;
-       	numColumns.setLayoutData (data);
-       	new Label (columnGroup, SWT.NONE).setText ("numColumns");
-		makeColumnsEqualWidth = new Button (columnGroup, SWT.CHECK);
-		makeColumnsEqualWidth.setText ("makeColumnsEqualWidth");
-		makeColumnsEqualWidth.addSelectionListener (selectionListener);
-		data = new GridData (GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 2;
-		data.horizontalIndent = 14;
-		makeColumnsEqualWidth.setLayoutData (data);
-
-		/* Add common controls */
-		super.createControlWidgets ();
-		controlGroup.pack();
-	}
-	
-	/**
-	 * Creates the example layout.
-	 */
-	void createLayout () {
-		gridLayout = new GridLayout ();
-		layoutComposite.setLayout (gridLayout);
-	}
-	
-	/** 
-	 * Disposes the editors without placing their contents
-	 * into the table.
-	 */
-	void disposeEditors () {
-		comboEditor.setEditor (null, null, -1);
-		combo.dispose ();
-		widthText.dispose ();
-		heightText.dispose ();
-		hAlign.dispose ();
-		vAlign.dispose ();
-		hIndent.dispose ();
-		hSpan.dispose ();
-		vSpan.dispose ();
-		hGrab.dispose ();
-		vGrab.dispose ();
-	}
-	
-	/**
-	 * Generates code for the example layout.
-	 */	
-	StringBuffer generateLayoutCode () {
-		StringBuffer code = new StringBuffer ();
-		code.append ("\t\tGridLayout gridLayout = new GridLayout ();\n");
-		if (gridLayout.numColumns != 1) {
-			code.append ("\t\tgridLayout.numColumns = " + gridLayout.numColumns + ";\n");
-		}
-		if (gridLayout.makeColumnsEqualWidth) {
-			code.append ("\t\tgridLayout.makeColumnsEqualWidth = true;\n");
-		}
-		if (gridLayout.marginHeight != 5) {
-			code.append ("\t\tgridLayout.marginHeight = " + gridLayout.marginHeight + ";\n");
-		}
-		if (gridLayout.marginWidth != 5) {
-			code.append ("\t\tgridLayout.marginWidth = " + gridLayout.marginWidth + ";\n");
-		}
-		if (gridLayout.horizontalSpacing != 5) {
-			code.append ("\t\tgridLayout.horizontalSpacing = " + gridLayout.horizontalSpacing + ";\n");
-		}
-		if (gridLayout.verticalSpacing != 5) {
-			code.append ("\t\tgridLayout.verticalSpacing = " + gridLayout.verticalSpacing + ";\n");
-		}
-		code.append ("\t\tshell.setLayout (gridLayout);\n");
-		
-		boolean first = true;
-		for (int i = 0; i < children.length; i++) {
-			Control control = children [i];
-			code.append (getChildCode (control, i));
-			GridData data = (GridData) control.getLayoutData ();
-			if (data != null) {
-				code.append ("\t\t");
-				if (first) {
-					code.append ("GridData ");
-					first = false;
-				}
-				code.append ("data = new GridData ();\n");	
-				if (data.widthHint != SWT.DEFAULT) {
-					code.append ("\t\tdata.widthHint = " + data.widthHint + ";\n");
-				}
-				if (data.heightHint != SWT.DEFAULT) {
-					code.append ("\t\tdata.heightHint = " + data.heightHint + ";\n");
-				}
-				if (data.horizontalAlignment != GridData.BEGINNING) {
-					String alignment;
-					int hAlignment = data.horizontalAlignment;
-					if (hAlignment == GridData.CENTER) alignment = "GridData.CENTER";
-					else if (hAlignment == GridData.END) alignment = "GridData.END";
-					else alignment = "GridData.FILL";
-					code.append ("\t\tdata.horizontalAlignment = " + alignment + ";\n");
-				}
-				if (data.verticalAlignment != GridData.CENTER) {
-					String alignment;
-					int vAlignment = data.verticalAlignment;
-					if (vAlignment == GridData.BEGINNING) alignment = "GridData.BEGINNING";
-					else if (vAlignment == GridData.END) alignment = "GridData.END";
-					else alignment = "GridData.FILL";
-					code.append ("\t\tdata.verticalAlignment = " + alignment + ";\n");
-				}	
-				if (data.horizontalIndent != 0) {
-					code.append ("\t\tdata.horizontalIndent = " + data.horizontalIndent + ";\n");
-				}
-				if (data.horizontalSpan != 1) {
-					code.append ("\t\tdata.horizontalSpan = " + data.horizontalSpan + ";\n");
-				}
-				if (data.verticalSpan != 1) {
-					code.append ("\t\tdata.verticalSpan = " + data.verticalSpan + ";\n");
-				}
-				if (data.grabExcessHorizontalSpace) {
-					code.append ("\t\tdata.grabExcessHorizontalSpace = true;\n");
-				}
-				if (data.grabExcessVerticalSpace) {
-					code.append ("\t\tdata.grabExcessVerticalSpace = true;\n");
-				}
-				if (code.substring (code.length () - 33).equals ("GridData data = new GridData ();\n")) {
-					code.delete (code.length () - 33, code.length ());
-					first = true;
-				} else if (code.substring (code.length () - 24).equals ("data = new GridData ();\n")) { 
-					code.delete (code.length () - 24, code.length ());
-				} else {	
-					code.append ("\t\t" + names [i] + ".setLayoutData (data);\n");
-				}
-			}
-		}
-		return code;
-	}
-	
-	/**
-	 * Returns the layout data field names.
-	 */
-	String [] getLayoutDataFieldNames() {
-		return new String [] {
-			"",
-			"Control", 
-			"width", 
-			"height", 
-			"horizontalAlignment", 
-			"verticalAlignment", 
-			"horizontalIndent", 
-			"horizontalSpan",
-			"verticalSpan", 
-			"grabExcessHorizontalSpace", 
-			"grabExcessVerticalSpace"
-		};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "GridLayout";
-	}
-	
-	/**
-	 * Takes information from TableEditors and stores it.
-	 */
-	void resetEditors () {
-		resetEditors (false);
-	}
-	
-	void resetEditors (boolean tab) {
-		TableItem oldItem = comboEditor.getItem ();
-		if (oldItem != null) {
-			int row = table.indexOf (oldItem);
-			try {
-				new Integer (widthText.getText ()).intValue ();
-			} catch (NumberFormatException e) {
-				widthText.setText (oldItem.getText (WIDTH_COL));
-			}
-			try {
-				new Integer (heightText.getText ()).intValue ();
-			} catch (NumberFormatException e) {
-				heightText.setText (oldItem.getText (HEIGHT_COL));
-			}
-			try {
-				new Integer (hIndent.getText ()).intValue ();
-			} catch (NumberFormatException e) {
-				hIndent.setText (oldItem.getText (HINDENT_COL));
-			}
-			try {
-				new Integer (hSpan.getText ()).intValue ();
-			} catch (NumberFormatException e) {
-				hSpan.setText (oldItem.getText (HSPAN_COL));
-			}
-			try {
-				new Integer (vSpan.getText ()).intValue ();
-			} catch (NumberFormatException e) {
-				vSpan.setText (oldItem.getText (VSPAN_COL));
-			}
-			String [] insert = new String [] {
-				String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText (),
-				hAlign.getText (), vAlign.getText (), hIndent.getText (), 
-				hSpan.getText (), vSpan.getText (), hGrab.getText (), vGrab.getText ()
-			};
-			data.setElementAt (insert, row);
-			for (int i = 0; i < TOTAL_COLS; i++) {
-				oldItem.setText (i, ((String [])data.elementAt (row)) [i]);
-			}
-			if (!tab) disposeEditors ();
-		}
-		setLayoutState ();		
-		refreshLayoutComposite ();
-		setLayoutData ();
-		layoutComposite.layout (true);
-		layoutGroup.layout (true);
-	}	
-	
-	/**
-	 * Sets the layout data for the children of the layout.
-	 */
-	void setLayoutData () {
-		Control [] children = layoutComposite.getChildren ();
-		TableItem [] items = table.getItems ();
-		GridData data;
-		int hIndent, hSpan, vSpan;
-		String vAlign, hAlign, vGrab, hGrab;
-		for (int i = 0; i < children.length; i++) {
-			data = new GridData ();
-			/* Set widthHint and heightHint */
-			data.widthHint = new Integer (items [i].getText (WIDTH_COL)).intValue ();
-			data.heightHint = new Integer (items [i].getText (HEIGHT_COL)).intValue ();
-			/* Set vertical alignment and horizontal alignment */
-			hAlign = items [i].getText (HALIGN_COL);
-			if (hAlign.equals ("CENTER")) {
-				data.horizontalAlignment = GridData.CENTER;
-			} else if (hAlign.equals ("END")) {
-				data.horizontalAlignment = GridData.END;
-			} else if (hAlign.equals ("FILL")) {
-				data.horizontalAlignment = GridData.FILL;
-			} else {
-				data.horizontalAlignment = GridData.BEGINNING;
-			}
-			vAlign = items [i].getText (VALIGN_COL);
-			if (vAlign.equals ("BEGINNING")) {
-				data.verticalAlignment = GridData.BEGINNING;
-			} else if (vAlign.equals ("END")) {
-				data.verticalAlignment = GridData.END;
-			} else if (vAlign.equals ("FILL")) {
-				data.verticalAlignment = GridData.FILL;
-			} else {
-				data.verticalAlignment = GridData.CENTER;
-			}
-			/* Set indents and spans */
-			hIndent = new Integer (items [i].getText (HINDENT_COL)).intValue ();
-			data.horizontalIndent = hIndent;
-			hSpan = new Integer (items [i].getText (HSPAN_COL)).intValue ();
-			data.horizontalSpan = hSpan;
-			vSpan = new Integer (items [i].getText (VSPAN_COL)).intValue ();
-			data.verticalSpan = vSpan;
-			/* Set grabbers */
-			hGrab = items [i].getText (HGRAB_COL);
-			if (hGrab.equals ("true")) {
-				data.grabExcessHorizontalSpace = true;
-			} else {
-				data.grabExcessHorizontalSpace = false;
-			}
-			vGrab = items [i].getText (VGRAB_COL);
-			if (vGrab.equals ("true")) {
-				data.grabExcessVerticalSpace = true;
-			} else {
-				data.grabExcessVerticalSpace = false;
-			}
-			children [i].setLayoutData (data);
-		}
-	}
-	
-	/**
-	 * Sets the state of the layout.
-	 */
-	void setLayoutState () {
-		/* Set the columns for the layout */
-		try {
-			gridLayout.numColumns = new Integer (numColumns.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			gridLayout.numColumns = 1;
-		}
-		gridLayout.makeColumnsEqualWidth = makeColumnsEqualWidth.getSelection ();
-		
-		/* Set the margins and spacing */
-		try {
-			gridLayout.marginHeight = new Integer (marginHeight.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			gridLayout.marginHeight = 5;
-			marginHeight.select (2);
-		}
-		try {
-			gridLayout.marginWidth = new Integer (marginWidth.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			gridLayout.marginWidth = 5;
-			marginWidth.select (2);
-		}
-		try {
-			gridLayout.horizontalSpacing = new Integer (horizontalSpacing.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			gridLayout.horizontalSpacing = 5;
-			horizontalSpacing.select (2);
-		}
-		try {
-			gridLayout.verticalSpacing = new Integer (verticalSpacing.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			gridLayout.verticalSpacing = 5;
-			verticalSpacing.select (2);
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java
deleted file mode 100644
index 6f88135..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-
-import java.text.*;
-import java.util.*;
-
-public class LayoutExample {
-	private static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_layout");
-	private TabFolder tabFolder;
-	
-	/**
-	 * Creates an instance of a LayoutExample embedded inside
-	 * the supplied parent Composite.
-	 * 
-	 * @param parent the container of the example
-	 */
-	public LayoutExample(Composite parent) {
-		tabFolder = new TabFolder (parent, SWT.NULL);
-		Tab [] tabs = new Tab [] {
-			new FillLayoutTab (this),
-			new RowLayoutTab (this),
-			new GridLayoutTab (this),
-			new FormLayoutTab (this),
-		};
-		for (int i=0; i<tabs.length; i++) {
-			TabItem item = new TabItem (tabFolder, SWT.NULL);
-		    item.setText (tabs [i].getTabText ());
-		    item.setControl (tabs [i].createTabFolderPage (tabFolder));
-		}
-	}
-	
-	/**
-	 * Grabs input focus.
-	 */
-	public void setFocus() {
-		tabFolder.setFocus();
-	}
-	
-	/**
-	 * Disposes of all resources associated with a particular
-	 * instance of the LayoutExample.
-	 */	
-	public void dispose() {
-		tabFolder = null;
-	}
-	
-	/**
-	 * Invokes as a standalone program.
-	 */
-	public static void main(String[] args) {
-		final Display display = new Display();
-		final Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new LayoutExample(shell);
-		shell.setText(getResourceString("window.title"));
-		shell.addShellListener (new ShellAdapter () {
-			public void shellClosed(ShellEvent e) {
-				Shell [] shells = display.getShells();
-				for (int i = 0; i < shells.length; i++) {
-					if (shells [i] != shell) shells [i].close ();
-				}
-			}
-		});
-		shell.open();
-		while (! shell.isDisposed()) {
-			if (! display.readAndDispatch()) display.sleep();
-		}
-	}
-
-	/**
-	 * Gets a string from the resource bundle.
-	 * We don't want to crash because of a missing String.
-	 * Returns the key if not found.
-	 */
-	static String getResourceString(String key) {
-		try {
-			return resourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}			
-	}
-
-	/**
-	 * Gets a string from the resource bundle and binds it
-	 * with the given arguments. If the key is not found,
-	 * return the key.
-	 */
-	static String getResourceString(String key, Object[] args) {
-		try {
-			return MessageFormat.format(getResourceString(key), args);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java
deleted file mode 100644
index 6843ae5..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java
+++ /dev/null
@@ -1,413 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.custom.*;
-
-class RowLayoutTab extends Tab {
-	/* Controls for setting layout parameters */
-	Button horizontal, vertical;
-	Button wrap, pack, justify;
-	Combo marginRight, marginLeft, marginTop, marginBottom, spacing;
-	/* The example layout instance */
-	RowLayout rowLayout;
-	/* TableEditors and related controls*/
-	TableEditor comboEditor, widthEditor, heightEditor;
-	CCombo combo;
-	Text widthText, heightText;
-	
-	/* Constants */
-	final int COMBO_COL = 1;
-	final int WIDTH_COL = 2;
-	final int HEIGHT_COL = 3;
-	
-	final int TOTAL_COLS = 4;
-	
-	/**
-	 * Creates the Tab within a given instance of LayoutExample.
-	 */
-	RowLayoutTab(LayoutExample instance) {
-		super(instance);
-	}
-	
-	/**
-	 * Creates the widgets in the "child" group.
-	 */
-	void createChildWidgets () {
-		/* Add common controls */
-		super.createChildWidgets ();
-		
-		/* Add TableEditors */			
-		comboEditor = new TableEditor (table);
-		widthEditor = new TableEditor (table);
-		heightEditor = new TableEditor (table);
-		table.addMouseListener (new MouseAdapter () {
-			public void mouseDown(MouseEvent e) {
-				resetEditors();
-				index = table.getSelectionIndex ();
-				Point pt = new Point (e.x, e.y);
-                newItem = table.getItem (pt);
-                if (newItem == null) return;
-                TableItem oldItem = comboEditor.getItem ();
-                if (newItem == oldItem || newItem != lastSelected) {
-					lastSelected = newItem;
-					return;
-				}
-				table.showSelection ();
-				
-				combo = new CCombo (table, SWT.READ_ONLY);
-				createComboEditor (combo, comboEditor);
-				
-				widthText = new Text (table, SWT.SINGLE);
-				widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]);
-				createTextEditor (widthText, widthEditor, WIDTH_COL);
-				
-				heightText = new Text (table, SWT.SINGLE);
-				heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]);
-				createTextEditor (heightText, heightEditor, HEIGHT_COL);
-                
-                for (int i=0; i<table.getColumnCount (); i++) {
-                	Rectangle rect = newItem.getBounds (i);
-                    if (rect.contains (pt)) {
-                    	switch (i) {
-							case COMBO_COL :
-								combo.setFocus ();	
-								break;
-							case WIDTH_COL :	
-								widthText.setFocus ();
-								break;
-							case HEIGHT_COL :
-								heightText.setFocus ();
-								break;
-							default :
-								resetEditors ();
-								break;
-						}
-                    }
-                } 
-			}
-		});
-		
-		/* Add listener to add an element to the table */
-		add.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				TableItem item = new TableItem (table, 0);
-				String [] insert = new String [] { 
-					String.valueOf (table.indexOf (item)),
-					"Button", "-1", "-1"};
-				item.setText (insert);
-				data.addElement (insert);
-				resetEditors ();
-			}
-		});
-	}
-	
-	/**
-	 * Creates the control widgets.
-	 */
-	void createControlWidgets () {
-		/* Controls the type of RowLayout */
-		Group typeGroup = new Group (controlGroup, SWT.NONE);
-		typeGroup.setText (LayoutExample.getResourceString ("Type"));
-		typeGroup.setLayout (new GridLayout ());
-		GridData data = new GridData (GridData.FILL_HORIZONTAL);
-		typeGroup.setLayoutData (data);
-		horizontal = new Button (typeGroup, SWT.RADIO);
-		horizontal.setText ("SWT.HORIZONTAL");
-		horizontal.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); 
-		horizontal.setSelection(true);
-		horizontal.addSelectionListener (selectionListener);
-		vertical = new Button (typeGroup, SWT.RADIO);
-		vertical.setText ("SWT.VERTICAL");
-		vertical.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); 
-		vertical.addSelectionListener (selectionListener);
-		
-		/* Controls the margins and spacing of the RowLayout */
-		String [] marginValues = new String [] {"0","3","5","10"};
-		Group marginGroup = new Group (controlGroup, SWT.NONE);
-		marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing"));
-		data = new GridData (GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
-		data.verticalSpan = 2;
-		marginGroup.setLayoutData (data);
-		GridLayout layout = new GridLayout ();
-		layout.numColumns = 2;
-		marginGroup.setLayout (layout);
-		new Label (marginGroup, SWT.NONE).setText ("marginRight");
-		marginRight = new Combo (marginGroup, SWT.NONE);
-		marginRight.setItems (marginValues);
-		marginRight.select (1);
-		marginRight.setLayoutData (new GridData(GridData.FILL_HORIZONTAL));
-		marginRight.addSelectionListener (selectionListener);
-		marginRight.addTraverseListener (traverseListener);
-		new Label (marginGroup, SWT.NONE).setText ("marginLeft");
-		marginLeft = new Combo (marginGroup, SWT.NONE);
-		marginLeft.setItems (marginValues);
-		marginLeft.select (1);
-		marginLeft.setLayoutData (new GridData(GridData.FILL_HORIZONTAL));
-		marginLeft.addSelectionListener (selectionListener);
-		marginLeft.addTraverseListener(traverseListener);
-		new Label (marginGroup, SWT.NONE).setText ("marginTop");
-		marginTop = new Combo (marginGroup, SWT.NONE);
-		marginTop.setItems (marginValues);
-		marginTop.select (1);
-		marginTop.setLayoutData (new GridData(GridData.FILL_HORIZONTAL));
-		marginTop.addSelectionListener (selectionListener);
-		marginTop.addTraverseListener(traverseListener);
-		new Label (marginGroup, SWT.NONE).setText ("marginBottom");
-		marginBottom = new Combo (marginGroup, SWT.NONE);
-		marginBottom.setItems (marginValues);
-		marginBottom.select (1);
-		marginBottom.setLayoutData (new GridData(GridData.FILL_HORIZONTAL));
-		marginBottom.addSelectionListener (selectionListener);
-		marginBottom.addTraverseListener(traverseListener);
-		new Label (marginGroup, SWT.NONE).setText ("spacing");
-		spacing = new Combo (marginGroup, SWT.NONE);
-		spacing.setItems (marginValues);
-		spacing.select (1);
-		spacing.setLayoutData (new GridData(GridData.FILL_HORIZONTAL));
-		spacing.addSelectionListener (selectionListener);
-		spacing.addTraverseListener(traverseListener);
-		
-		/* Controls other parameters of the RowLayout */
-		Group specGroup = new Group (controlGroup, SWT.NONE);
-		specGroup.setText (LayoutExample.getResourceString ("Properties"));
-		specGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-		specGroup.setLayout (new GridLayout ());
-		wrap = new Button (specGroup, SWT.CHECK);
-		wrap.setText ("wrap");
-		wrap.setSelection (true);
-		wrap.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); 
-		wrap.addSelectionListener (selectionListener);
-		pack = new Button (specGroup, SWT.CHECK);
-		pack.setText ("pack");
-		pack.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); 
-		pack.setSelection (true);
-		pack.addSelectionListener (selectionListener);
-		justify = new Button (specGroup, SWT.CHECK);
-		justify.setText ("justify");
-		justify.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); 
-		justify.addSelectionListener (selectionListener);
-		
-		/* Add common controls */
-		super.createControlWidgets ();
-		
-		/* Position the sash */
-		sash.setWeights (new int [] {6,5});
-	}
-	
-	/**
-	 * Creates the example layout.
-	 */
-	void createLayout () {
-		rowLayout = new RowLayout ();
-		layoutComposite.setLayout (rowLayout);
-	}
-		
-	/** 
-	 * Disposes the editors without placing their contents
-	 * into the table.
-	 */
-	void disposeEditors () {
-		comboEditor.setEditor (null, null, -1);
-		combo.dispose ();
-		widthText.dispose ();
-		heightText.dispose ();
-	}
-	
-	/**
-	 * Generates code for the example layout.
-	 */	
-	StringBuffer generateLayoutCode () {
-		StringBuffer code = new StringBuffer ();
-		code.append ("\t\tRowLayout rowLayout = new RowLayout ();\n");
-		if (rowLayout.type == SWT.VERTICAL) {
-			code.append ("\t\trowLayout.type = SWT.VERTICAL;\n");
-		}
-		if (rowLayout.wrap == false) {
-			code.append ("\t\trowLayout.wrap = false;\n");
-		} 
-		if (rowLayout.pack == false) {
-			code.append ("\t\trowLayout.pack = false;\n");
-		}
-		if (rowLayout.justify == true) {
-			code.append ("\t\trowLayout.justify = true;\n");
-		}
-		if (rowLayout.marginLeft != 3) {
-			code.append ("\t\trowLayout.marginLeft = " + rowLayout.marginLeft + ";\n");
-		}
-		if (rowLayout.marginRight != 3) {
-			code.append ("\t\trowLayout.marginRight = " + rowLayout.marginRight + ";\n");
-		}
-		if (rowLayout.marginTop != 3) {
-			code.append ("\t\trowLayout.marginTop = " + rowLayout.marginTop + ";\n");
-		}
-		if (rowLayout.marginBottom != 3) {
-			code.append ("\t\trowLayout.marginBottom = " + rowLayout.marginBottom + ";\n");
-		}
-		if (rowLayout.spacing != 3) {
-			code.append ("\t\trowLayout.spacing = " + rowLayout.spacing + ";\n");
-		}
-		code.append ("\t\tshell.setLayout (rowLayout);\n");
-		
-		boolean first = true;
-		for (int i = 0; i < children.length; i++) {
-			Control control = children [i];
-			code.append (getChildCode (control,i));
-			RowData data = (RowData) control.getLayoutData ();
-			if (data != null) {
-				if (data.width != -1 || data.height != -1) {
-					code.append ("\t\t");
-					if (first) {
-						code.append ("RowData ");
-						first = false;
-					}
-					if (data.width == -1) {
-						code.append ("data = new RowData (SWT.DEFAULT, " + data.height + ");\n");
-					} else if (data.height == -1) {
-						code.append ("data = new RowData (" + data.width + ", SWT.DEFAULT);\n");
-					} else {
-						code.append ("data = new RowData (" + data.width + ", " + data.height + ");\n");				
-					}
-					code.append ("\t\t" + names [i] + ".setLayoutData (data);\n");
-				}
-			}
-		}
-		return code;
-	}
-	
-	/**
-	 * Returns the layout data field names.
-	 */
-	String [] getLayoutDataFieldNames() {
-		return new String [] { 
-			"",
-			"Control",
-			"width", 
-			"height"
-		};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 */
-	String getTabText () {
-		return "RowLayout";
-	}
-	
-	/**
-	 * Takes information from TableEditors and stores it.
-	 */
-	void resetEditors () {
-		resetEditors (false);
-	}
-	
-	void resetEditors (boolean tab) {
-		TableItem oldItem = comboEditor.getItem ();
-		if (oldItem != null) {
-			int row = table.indexOf (oldItem);
-			/* Make sure user has entered valid data */
-			try {
-				new Integer (widthText.getText ()).intValue ();
-			} catch (NumberFormatException e) {
-				widthText.setText (oldItem.getText (WIDTH_COL));
-			}
-			try {
-				new Integer (heightText.getText ()).intValue ();
-			} catch (NumberFormatException e) {
-				heightText.setText (oldItem.getText (HEIGHT_COL));
-			}
-			String [] insert = new String [] {
-				String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText ()};
-			data.setElementAt (insert, row);
-			for (int i = 0 ; i < TOTAL_COLS; i++) {
-				oldItem.setText (i, ((String [])data.elementAt (row)) [i]);
-			}
-			if (!tab) disposeEditors ();
-		}
-		setLayoutState ();
-		refreshLayoutComposite ();
-		setLayoutData ();
-		layoutComposite.layout (true);
-		layoutGroup.layout (true);
-	}
-	
-	/**
-	 * Sets the layout data for the children of the layout.
-	 */
-	void setLayoutData () {
-		Control [] children = layoutComposite.getChildren ();
-		TableItem [] items = table.getItems ();
-		RowData data;
-		int width, height;
-		for (int i = 0; i < children.length; i++) {
-			width = new Integer (items [i].getText (WIDTH_COL)).intValue ();
-			height = new Integer (items [i].getText (HEIGHT_COL)).intValue ();
-			data = new RowData (width, height);
-			children [i].setLayoutData (data);
-		}
-		
-	}
-	
-	/**
-	 * Sets the state of the layout.
-	 */
-	void setLayoutState () {
-		/* Set the type of layout */
-		if (vertical.getSelection ()) {
-			rowLayout.type = SWT.VERTICAL;
-		} else {
-			rowLayout.type = SWT.HORIZONTAL;
-		}
-		
-		/* Set the margins and spacing */
-		try {
-			rowLayout.marginRight = new Integer (marginRight.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			rowLayout.marginRight = 3;
-			marginRight.select (1);
-		}
-		try {
-			rowLayout.marginLeft = new Integer (marginLeft.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			rowLayout.marginLeft = 3;
-			marginLeft.select (1);
-		}
-		try {
-			rowLayout.marginTop = new Integer (marginTop.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			rowLayout.marginTop = 3;
-			marginTop.select (1);
-		}
-		try {
-			rowLayout.marginBottom = new Integer (marginBottom.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			rowLayout.marginBottom = 3;
-			marginBottom.select (1);
-		}
-		try {
-			rowLayout.spacing = new Integer (spacing.getText ()).intValue ();
-		} catch (NumberFormatException e) {
-			rowLayout.spacing = 3;
-			spacing.select (1);
-		}
-		
-		/* Set the other layout properties */
-		rowLayout.wrap = wrap.getSelection ();
-		rowLayout.pack = pack.getSelection ();
-		rowLayout.justify = justify.getSelection ();
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java
deleted file mode 100644
index 90ab6f2..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java
+++ /dev/null
@@ -1,645 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
- 
-import java.util.Vector;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * <code>Tab</code> is the abstract superclass of every page
- * in the example's tab folder.  Each page in the tab folder
- * displays a layout, and allows the user to manipulate the
- * layout.
- *
- * A typical page in a Tab contains a two column composite.
- * The left column contains the layout group, which contains
- * the "layout composite" (the one that has the example layout).
- * The right column contains the "control" group. The "control"
- * group allows the user to interact with the example. Typical
- * operations are modifying layout parameters, adding children
- * to the "layout composite", and modifying child layout data.
- * The "Code" button in the "control" group opens a new window
- * containing code that will regenerate the layout. This code
- * (or parts of it) can be selected and copied to the clipboard.
- */
-abstract class Tab {	
-	/* Common groups and composites */
-	Composite tabFolderPage;
-	SashForm sash;
-	Group layoutGroup, controlGroup, childGroup;
-	/* The composite that contains the example layout */
-	Composite layoutComposite;
-	/* Common controls for modifying the example layout */
-	String [] names;
-	Control [] children;
-	Button size, add, delete, clear, code;
-	/* Common values for working with TableEditors */
-	Table table;
-	int index;
-	TableItem newItem, lastSelected;
-	Vector data = new Vector ();
-	/* Controlling instance */
-	final LayoutExample instance;
-
-	/* Listeners */
-	SelectionListener selectionListener = new SelectionAdapter () {
-		public void widgetSelected (SelectionEvent e) {
-			resetEditors ();
-		};
-	};
-		
-	TraverseListener traverseListener = new TraverseListener () {
-		public void keyTraversed (TraverseEvent e) {
-			if (e.detail == SWT.TRAVERSE_RETURN) {
-				e.doit = false;
-				resetEditors ();
-			}
-		};
-	};
-
-	/**
-	 * Creates the Tab within a given instance of LayoutExample.
-	 */
-	Tab(LayoutExample instance) {
-		this.instance = instance;
-	}
-	
-	/**
-	 * Creates the "child" group. This is the group that allows
-	 * you to add children to the layout. It exists within the
-	 * controlGroup.
-	 */
-	void createChildGroup () {
-		childGroup = new Group (controlGroup, SWT.NONE);
-		childGroup.setText (LayoutExample.getResourceString("Children"));
-		GridLayout layout = new GridLayout ();
-		layout.numColumns = 3;
-		childGroup.setLayout (layout);
-		GridData data = new GridData (GridData.FILL_BOTH);
-		data.horizontalSpan = 2;
-		childGroup.setLayoutData (data); 
-		createChildWidgets ();
-	}
-	
-	/**
-	 * Creates the controls for modifying the "children" 
-	 * table, and the table itself.
-	 * Subclasses override this method to augment the
-	 * standard table.
-	 */
-	void createChildWidgets () {
-		/* Controls for adding and removing children */
-		add = new Button (childGroup, SWT.PUSH);
-		add.setText (LayoutExample.getResourceString ("Add"));
-		add.setLayoutData(new GridData (GridData.FILL_HORIZONTAL));
-		delete = new Button (childGroup, SWT.PUSH);
-		delete.setText (LayoutExample.getResourceString ("Delete"));
-		delete.setLayoutData(new GridData (GridData.FILL_HORIZONTAL));
-		delete.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent e) {
-				resetEditors ();
-				int [] selected = table.getSelectionIndices ();
-				table.remove (selected);
-				/* Refresh the control indices of the table */
-				for (int i = 0; i < table.getItemCount(); i++) {
-					table.getItem (i).setText (0, String.valueOf (i));
-				}
-				refreshLayoutComposite ();
-				layoutComposite.layout (true);
-				layoutGroup.layout (true);
-			}
-		});
-		clear = new Button (childGroup, SWT.PUSH);
-		clear.setText (LayoutExample.getResourceString ("Clear"));
-		clear.setLayoutData(new GridData (GridData.FILL_HORIZONTAL));
-		clear.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent e) {
-				resetEditors ();
-				children = layoutComposite.getChildren ();
-				for (int i = 0; i < children.length; i++) {
-					children [i].dispose ();
-				}
-				table.removeAll ();
-				data.clear ();
-				children = new Control [0];
-				layoutGroup.layout (true);
-			}
-		});
-		/* Create the "children" table */
-		table = new Table (childGroup, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
-		table.setLinesVisible (true);
-		table.setHeaderVisible (true);
-		GridData gridData = new GridData (GridData.FILL_BOTH);
-		gridData.horizontalSpan = 3;
-		gridData.heightHint = 150;
-		table.setLayoutData (gridData);
-		table.addTraverseListener (traverseListener);
-		
-		/* Add columns to the table */
-		String [] columnHeaders = getLayoutDataFieldNames ();
-		for (int i = 0; i < columnHeaders.length; i++) {
-			TableColumn column = new TableColumn(table, SWT.NONE);
-			column.setText (columnHeaders [i]);
-			if (i == 0) column.setWidth (20);
-			else if (i == 1) column.setWidth (80);
-			else column.pack ();
-		}
-	}
-
-	/**
-	 * Creates the TableEditor with a CCombo in the first column
-	 * of the table. This CCombo lists all the controls that
-	 * the user can select to place on their layout.
-	 */
-	void createComboEditor (CCombo combo, TableEditor comboEditor) {
-		combo.setItems (new String [] {
-			"Button", "Canvas", "Combo", "Composite",
-			"CoolBar", "Group", "Label", "List",
-			"ProgressBar", "Scale", "Slider", "StyledText",
-			"Table", "Text", "ToolBar", "Tree"});
-		combo.setText (newItem.getText (1));
-		
-		/* Set up editor */
-		comboEditor.horizontalAlignment = SWT.LEFT;
-		comboEditor.grabHorizontal = true;
-		comboEditor.minimumWidth = 50;
-		comboEditor.setEditor (combo, newItem, 1);
-		
-		/* Add listener */
-		combo.addTraverseListener(new TraverseListener() {
-        	public void keyTraversed(TraverseEvent e) {
-            	if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_RETURN) {
-                    resetEditors ();
-                }
-                if (e.detail == SWT.TRAVERSE_ESCAPE) {
-                	disposeEditors ();
-                }
-            }
-        });
-	}
-	
-	/**
-	 * Creates the "control" group. This is the group on the
-	 * right half of each example tab. It contains controls
-	 * for adding new children to the layoutComposite, and
-	 * for modifying the children's layout data.
-	 */	
-	void createControlGroup () {
-		controlGroup = new Group (sash, SWT.NONE);
-		controlGroup.setText (LayoutExample.getResourceString("Parameters"));
-		GridLayout layout = new GridLayout ();
-		layout.numColumns = 2;
-		controlGroup.setLayout (layout);
-		size = new Button (controlGroup, SWT.CHECK);
-		size.setText (LayoutExample.getResourceString ("Preferred_Size"));
-		size.setSelection (false);
-		size.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent e) {
-				resetEditors ();
-				if (size.getSelection ()) {
-					layoutComposite.setLayoutData (new GridData ());
-					layoutGroup.layout (true);
-				} else {
-					layoutComposite.setLayoutData (new GridData (GridData.FILL_BOTH));
-					layoutGroup.layout (true);
-				}
-			}
-		});
-		GridData data = new GridData (GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 2;
-		size.setLayoutData (data);
-		createControlWidgets ();
-	}
-		
-	/**
-	 * Creates the "control" widget children.
-	 * Subclasses override this method to augment
-	 * the standard controls created.
-	 */
-	void createControlWidgets () {
-		createChildGroup ();
-		code = new Button (controlGroup, SWT.PUSH);
-		code.setText (LayoutExample.getResourceString ("Code"));
-		GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER | GridData.GRAB_HORIZONTAL);
-		gridData.horizontalSpan = 2;
-		code.setLayoutData (gridData);
-		code.addSelectionListener (new SelectionAdapter () {
-			public void widgetSelected (SelectionEvent e) {
-				final Shell shell = new Shell ();	
-				shell.setText (LayoutExample.getResourceString ("Generated_Code"));
-				shell.setLayout (new FillLayout ());
-				final StyledText text = new StyledText (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
-				String layoutCode = generateCode ().toString ();
-				if (layoutCode.length () == 0) return;
-				text.setText (layoutCode);
-				
-				Menu bar = new Menu (shell, SWT.BAR);
-				shell.setMenuBar (bar);
-				MenuItem editItem = new MenuItem (bar, SWT.CASCADE);
-				editItem.setText (LayoutExample.getResourceString ("Edit"));
-				Menu menu = new Menu (bar);
-				MenuItem select = new MenuItem (menu, SWT.PUSH);
-				select.setText (LayoutExample.getResourceString ("Select_All"));
-				select.setAccelerator (SWT.MOD1 + 'A');
-				select.addSelectionListener (new SelectionAdapter () {
-					public void widgetSelected (SelectionEvent e) {
-						text.selectAll ();
-					}
-				});
-				MenuItem copy = new MenuItem (menu, SWT.PUSH);
-				copy.setText (LayoutExample.getResourceString ("Copy"));
-				copy.setAccelerator (SWT.MOD1 + 'C');
-				copy.addSelectionListener (new SelectionAdapter () {
-					public void widgetSelected (SelectionEvent e) {
-						text.copy ();
-					}
-				});
-				MenuItem exit = new MenuItem (menu, SWT.PUSH);
-				exit.setText (LayoutExample.getResourceString ("Exit"));
-				exit.addSelectionListener (new SelectionAdapter () {
-					public void widgetSelected (SelectionEvent e) {
-						shell.close ();
-					}
-				});
-				editItem.setMenu (menu);
-				
-				shell.pack ();
-				shell.setSize (400, 500);
-				shell.open ();
-				Display display = shell.getDisplay ();
-				while (!shell.isDisposed ())
-					if (!display.readAndDispatch ()) display.sleep ();
-			}
-		});
-	}
-	
-	/**
-	 * Creates the example layout.
-	 * Subclasses override this method.
-	 */
-	void createLayout () {
-	}
-	
-	/**
-	 * Creates the composite that contains the example layout.
-	 */
-	void createLayoutComposite () {
-		layoutComposite = new Composite (layoutGroup, SWT.BORDER);
-		layoutComposite.setLayoutData (new GridData (GridData.FILL_BOTH));
-		createLayout ();
-	}
-	
-	/**
-	 * Creates the layout group. This is the group on the
-	 * left half of each example tab.
-	 */
-	void createLayoutGroup () {
-		layoutGroup = new Group (sash, SWT.NONE);
-		layoutGroup.setText (LayoutExample.getResourceString("Layout"));
-		layoutGroup.setLayout (new GridLayout ());
-		createLayoutComposite ();
-	}
-	
-	/**
-	 * Creates the tab folder page.
-	 *
-	 * @param tabFolder org.eclipse.swt.widgets.TabFolder
-	 * @return the new page for the tab folder
-	 */
-	Composite createTabFolderPage (TabFolder tabFolder) {
-		/* Create a two column page with a SashForm*/
-		tabFolderPage = new Composite (tabFolder, SWT.NULL);
-		tabFolderPage.setLayout (new FillLayout ());
-		sash = new SashForm (tabFolderPage, SWT.HORIZONTAL);
-	
-		/* Create the "layout" and "control" columns */
-		createLayoutGroup ();
-		createControlGroup ();
-		
-		return tabFolderPage;
-	}
-	
-	/**
-	 * Creates the TableEditor with a Text in the given column
-	 * of the table.
-	 */
-	void createTextEditor (Text text, TableEditor textEditor, int column) {
-		text.setFont (table.getFont ());
-		text.selectAll ();
-		textEditor.horizontalAlignment = SWT.LEFT;
-		textEditor.grabHorizontal = true;
-		textEditor.setEditor (text, newItem, column);
-		
-		text.addTraverseListener(new TraverseListener() {
-        	public void keyTraversed(TraverseEvent e) {
-            	if (e.detail == SWT.TRAVERSE_TAB_NEXT) {
-                    resetEditors (true);
-                }
-                if (e.detail == SWT.TRAVERSE_ESCAPE) {
-                	disposeEditors ();
-                }
-            }
-        });
-	}
-	
-	/** 
-	 * Disposes the editors without placing their contents
-	 * into the table.
-	 * Subclasses override this method.
-	 */
-	void disposeEditors () {
-	}
-	
-	/**
-	 * Generates the code needed to produce the example layout.
-	 */	
-	StringBuffer generateCode () {
-		/* Make sure all information being entered is stored in the table */
-		resetEditors ();
-		
-		/* Get names for controls in the layout */
-		names = new String [children.length];
-		for (int i = 0; i < children.length; i++) {
-			Control control = children [i];
-			String controlClass = control.getClass ().toString ();
-			String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1);
-			names [i] = controlType.toLowerCase () + i;
-		}
-	
-		/* Create StringBuffer containing the code */
-		StringBuffer code = new StringBuffer ();
-		code.append ("import org.eclipse.swt.*;\n");
-		code.append ("import org.eclipse.swt.custom.*;\n");
-		code.append ("import org.eclipse.swt.graphics.*;\n");
-		code.append ("import org.eclipse.swt.layout.*;\n");
-		code.append ("import org.eclipse.swt.widgets.*;\n\n");
-		code.append ("public class MyLayout {\n");
-		code.append ("\tpublic static void main (String [] args) {\n");
-		code.append ("\t\tDisplay display = new Display ();\n");
-		code.append ("\t\tShell shell = new Shell (display);\n");
-		
-		/* Get layout specific code */
-		code.append (generateLayoutCode ());
-		
-		code.append ("\n\t\tshell.pack ();\n\t\tshell.open ();\n\n");
-		code.append ("\t\twhile (!shell.isDisposed ()) {\n");
-		code.append ("\t\t\tif (!display.readAndDispatch ())\n");
-		code.append ("\t\t\t\tdisplay.sleep ();\n\t\t}\n\t\tdisplay.dispose ();\n\t}\n}");
-		
-		return code;
-	}
-	
-	/**
-	 * Generates layout specific code for the example layout.
-	 * Subclasses override this method.
-	 */
-	StringBuffer generateLayoutCode () {
-		return new StringBuffer ();
-	}
-	
-	/**
-	 * Returns the StringBuffer for the code which will 
-	 * create a child control.
-	 */
-	StringBuffer getChildCode (Control control, int i) {
-		StringBuffer code = new StringBuffer ();
-		/* Find the type of control */
-		String controlClass = control.getClass().toString ();
-		String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1);
-		/* Find the style of the control */
-		String styleString;
-		if (controlType.equals ("Button")) {
-			styleString = "SWT.PUSH";
-		} else if (controlType.equals ("Text")) {
-			styleString = "SWT.BORDER";
-		} else if (controlType.equals ("StyledText")) {
-			styleString = "SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL";
-		} else if (controlType.equals ("Canvas") || controlType.equals ("Composite") || 
-					controlType.equals ("Table") || controlType.equals ("StyledText") ||
-					controlType.equals ("ToolBar") || controlType.equals ("Tree") ||
-					controlType.equals ("List")) {
-			styleString = "SWT.BORDER";
-		} else styleString = "SWT.NONE";
-		/* Write out the control being declared */
-		code.append ("\n\t\t" + controlType + " " + names [i] + 
-					 " = new " + controlType + " (shell, " + styleString + ");\n");
-		/* Add items to those controls that need items */
-		if (controlType.equals ("Combo") || controlType.equals ("List")) {
-			code.append ("\t\t" + names [i] + ".setItems (new String [] {\"Item 1\", \"Item 2\", \"Item 2\"});\n");
-		} else if (controlType.equals ("Table")) {
-			code.append ("\t\t" + names [i] + ".setLinesVisible (true);\n");
-			for (int j = 1; j < 3; j++) {
-				code.append ("\t\tTableItem tableItem" + j + " = new TableItem (" + names [i] + ", SWT.NONE);\n");
-				code.append ("\t\ttableItem" + j + ".setText (\"Item" + j + "\");\n");
-			}
-		} else if (controlType.equals ("Tree")) {
-			for (int j = 1; j < 3; j++) {
-				code.append ("\t\tTreeItem treeItem" + j + " = new TreeItem (" + names [i] + ", SWT.NONE);\n");
-				code.append ("\t\ttreeItem" + j + ".setText (\"Item" + j + "\");\n");
-			}
-		} else if (controlType.equals ("ToolBar")) {
-			for (int j = 1; j < 3; j++) {
-				code.append ("\t\tToolItem toolItem" + j + " = new ToolItem (" + names [i] + ", SWT.NONE);\n");
-				code.append ("\t\ttoolItem" + j + ".setText (\"Item" + j + "\");\n");
-			}
-		} else if (controlType.equals ("CoolBar")) {
-			code.append ("\t\tToolBar coolToolBar = new ToolBar (" + names [i] + ", SWT.BORDER);\n");
-			code.append ("\t\tToolItem coolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n");
-			code.append ("\t\tcoolToolItem.setText (\"Item 1\");\n");
-			code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n");
-			code.append ("\t\tcoolToolItem.setText (\"Item 2\");\n");
-			code.append ("\t\tCoolItem coolItem1 = new CoolItem (" + names [i] + ", SWT.NONE);\n");
-			code.append ("\t\tcoolItem1.setControl (coolToolBar);\n");
-			code.append ("\t\tcoolToolBar = new ToolBar (" + names [i] + ", SWT.BORDER);\n");
-			code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n");
-			code.append ("\t\tcoolToolItem.setText (\"Item 3\");\n");
-			code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n");
-			code.append ("\t\tcoolToolItem.setText (\"Item 4\");\n");
-			code.append ("\t\tCoolItem coolItem2 = new CoolItem (" + names [i] + ", SWT.NONE);\n");
-			code.append ("\t\tcoolItem2.setControl (coolToolBar);\n");
-			code.append ("\t\tPoint size = coolToolBar.computeSize (SWT.DEFAULT, SWT.DEFAULT);\n");
-			code.append ("\t\tcoolItem1.setSize (coolItem1.computeSize (size.x, size.y));\n");
-			code.append ("\t\tcoolItem2.setSize (coolItem2.computeSize (size.x, size.y));\n");
-			code.append ("\t\t" + names [i] + ".setSize (" + names [i] + ".computeSize (SWT.DEFAULT, SWT.DEFAULT));\n");
-		} else if (controlType.equals ("ProgressBar")) {
-			code.append ("\t\t" + names [i] + ".setSelection (50);\n");
-		} 
-		/* Set text for those controls that support it */			 
-		if (controlType.equals ("Button") ||
-			controlType.equals ("Combo") ||
-			controlType.equals ("Group") ||
-			controlType.equals ("Label") ||
-			controlType.equals ("StyledText") ||
-			controlType.equals ("Text")) {
-			code.append ("\t\t" + names [i] + ".setText (\"" + names [i] + "\");\n");
-		}
-		return code;
-	}
-		
-	/**
-	 * Returns the layout data field names.
-	 * Subclasses override this method.
-	 */
-	String [] getLayoutDataFieldNames () {
-		return new String [] {};
-	}
-	
-	/**
-	 * Gets the text for the tab folder item.
-	 * Subclasses override this method.
-	 */
-	String getTabText () {
-		return "";
-	}
-	
-	/**
-	 * Refreshes the composite and draws all controls
-	 * in the layout example.
-	 */
-	void refreshLayoutComposite () {
-		/* Remove children that are already layed out */
-		children = layoutComposite.getChildren ();
-		for (int i = 0; i < children.length; i++) {
-			children [i].dispose ();
-		}
-		/* Add all children listed in the table */
-		TableItem [] items = table.getItems ();
-		children = new Control [items.length];
-		String [] itemValues = new String [] {
-			LayoutExample.getResourceString ("Item",new String [] {"1"}),
-			LayoutExample.getResourceString ("Item",new String [] {"2"}),
-			LayoutExample.getResourceString ("Item",new String [] {"3"})};
-		for (int i = 0; i < items.length; i++) {
-			String control = items [i].getText (1);
-			if (control.equals ("Button")) {
-				Button button = new Button (layoutComposite, SWT.PUSH);
-				button.setText (LayoutExample.getResourceString ("Button_Index", new String [] {new Integer (i).toString ()}));
-				children [i] = button;
-			} else if (control.equals ("Canvas")) {
-				Canvas canvas = new Canvas (layoutComposite, SWT.BORDER);
-				children [i] = canvas;
-			} else if (control.equals ("Combo")) {
-				Combo combo = new Combo (layoutComposite, SWT.NONE);
-				combo.setItems (itemValues);
-				combo.setText (LayoutExample.getResourceString ("Combo_Index", new String [] {new Integer (i).toString ()}));
-				children [i] = combo;
-			} else if (control.equals ("Composite")) { 
-				Composite composite = new Composite (layoutComposite, SWT.BORDER);
-				children [i] = composite;
-		    } else if (control.equals ("CoolBar")) { 
-		    	CoolBar coolBar = new CoolBar (layoutComposite, SWT.NONE);
-		    	ToolBar toolBar = new ToolBar (coolBar, SWT.BORDER);
-				ToolItem item = new ToolItem (toolBar, 0);
-				item.setText (LayoutExample.getResourceString ("Item",new String [] {"1"}));
-				item = new ToolItem (toolBar, 0);
-				item.setText (LayoutExample.getResourceString ("Item",new String [] {"2"}));
-		    	CoolItem coolItem1 = new CoolItem (coolBar, 0);
-		    	coolItem1.setControl (toolBar);
-				toolBar = new ToolBar (coolBar, SWT.BORDER);
-				item = new ToolItem (toolBar, 0);
-				item.setText (LayoutExample.getResourceString ("Item",new String [] {"3"}));
-				item = new ToolItem (toolBar, 0);
-				item.setText (LayoutExample.getResourceString ("Item",new String [] {"4"}));
-		    	CoolItem coolItem2 = new CoolItem (coolBar, 0);
-		    	coolItem2.setControl (toolBar);
-		    	Point size = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        		coolItem1.setSize(coolItem1.computeSize (size.x, size.y));
-        		coolItem2.setSize(coolItem2.computeSize (size.x, size.y));
-       			coolBar.setSize(coolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-				children [i] = coolBar;
-		    } else if (control.equals ("Group")) {
-				Group group = new Group (layoutComposite, SWT.NONE);
-				group.setText (LayoutExample.getResourceString ("Group_Index", new String [] {new Integer (i).toString ()}));
-				children [i] = group;
-			} else if (control.equals ("Label")) {
-				Label label = new Label (layoutComposite, SWT.NONE);
-				label.setText (LayoutExample.getResourceString ("Label_Index", new String [] {new Integer (i).toString ()}));
-				children [i] = label;
-			} else if (control.equals ("List")) {
-				List list = new List (layoutComposite, SWT.BORDER);
-				list.setItems (itemValues);
-				children [i] = list;
-			} else if (control.equals ("ProgressBar")) {
-				ProgressBar progress = new ProgressBar (layoutComposite, SWT.NONE);
-				progress.setSelection (50);
-				children [i] = progress;
-			} else if (control.equals ("Scale")) {
-				Scale scale = new Scale (layoutComposite, SWT.NONE);
-				children [i] = scale;
-			} else if (control.equals ("Slider")) {
-				Slider slider = new Slider (layoutComposite, SWT.NONE);
-				children [i] = slider;
-			} else if (control.equals ("StyledText")) {
-				StyledText styledText = new StyledText (layoutComposite, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
-				styledText.setText (LayoutExample.getResourceString ("StyledText_Index", new String [] {new Integer (i).toString ()}));
-				children [i] = styledText;			
-			} else if (control.equals ("Table")) {
-				Table table = new Table (layoutComposite, SWT.BORDER);
-				table.setLinesVisible (true);
-				TableItem item1 = new TableItem (table, 0);
-				item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"}));
-				TableItem item2 = new TableItem (table, 0);
-				item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"}));
-				children [i] = table;
-			} else if (control.equals ("Text")) {
-				Text text = new Text (layoutComposite, SWT.BORDER);
-				text.setText (LayoutExample.getResourceString ("Text_Index", new String [] {new Integer (i).toString ()}));
-				children [i] = text;
-			} else if (control.equals ("ToolBar")) {
-				ToolBar toolBar = new ToolBar (layoutComposite, SWT.BORDER);
-				ToolItem item1 = new ToolItem (toolBar, 0);
-				item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"}));
-				ToolItem item2 = new ToolItem (toolBar, 0);
-				item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"}));
-				children [i] = toolBar;
-			} else {
-				Tree tree = new Tree (layoutComposite, SWT.BORDER);
-				TreeItem item1 = new TreeItem (tree, 0);
-				item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"}));
-				TreeItem item2 = new TreeItem (tree, 0);
-				item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"}));
-				children [i] = tree;
-			} 
-		}
-	}	
-	
-	/**
-	 * Takes information from TableEditors and stores it.
-	 * Subclasses override this method.
-	 */
-	void resetEditors () {
-		resetEditors (false);
-	}
-	
-	void resetEditors (boolean tab) {
-	}
-	
-	/**
-	 * Sets the layout data for the children of the layout. 
-	 * Subclasses override this method.
-	 */
-	void setLayoutData () {
-	}
-	
-	/**
-	 * Sets the state of the layout.
-	 * Subclasses override this method.
-	 */
-	void setLayoutState () {
-	}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java
deleted file mode 100755
index fbab24c..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.texteditor;
-
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-public class Images {
-
-	// Bitmap Images
-	public Image Bold;
-	public Image Red;
-	public Image Green;
-	public Image Blue;
-	public Image Erase;
-	
-	Image  [] AllBitmaps;
-
-Images () {
-}
-
-public void freeAll () {
-	for (int i=0; i<AllBitmaps.length; i++) AllBitmaps [i].dispose ();
-	AllBitmaps = null;
-}
-
-Image createBitmapImage(Display display, String fileName) {
-	ImageData source = new ImageData(Images.class.getResourceAsStream(fileName+".bmp"));
-	ImageData mask = new ImageData(Images.class.getResourceAsStream(fileName+"_mask"+".bmp"));
-	return new Image (display, source, mask);
-}
-
-public void loadAll (Display display) {
-	// Bitmap Images
-	Bold = createBitmapImage (display, "bold");
-	Red = createBitmapImage (display, "red");
-	Green = createBitmapImage (display, "green");
-	Blue = createBitmapImage (display, "blue");
-	Erase = createBitmapImage (display, "erase");
-	
-	AllBitmaps = new Image [] {
-		Bold,
-		Red,
-		Green,
-		Blue,
-		Erase,
-	};
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java
deleted file mode 100755
index 1e55871..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.texteditor;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import java.util.*;
-
-/**
- */
-public class TextEditor {  
-	Shell shell;
-	ToolBar toolBar;
-	StyledText text;
-
-	Images images = new Images();
-	Vector cachedStyles = new Vector();
-	Color RED = null; 
-	Color BLUE = null; 
-	Color GREEN = null; 
-	Font font = null;
-	
-	boolean isBold = false;
-	
-	ExtendedModifyListener extendedModifyListener;
-	static ResourceBundle resources = ResourceBundle.getBundle("examples_texteditor");
-
-Menu createEditMenu() {
-	Menu bar = shell.getMenuBar ();
-	Menu menu = new Menu (bar);
-	
-	MenuItem item = new MenuItem (menu, SWT.PUSH);
-	item.setText (resources.getString("Cut_menuitem"));
-	item.setAccelerator(SWT.MOD1 + 'X');
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			handleCutCopy();
-			text.cut();
-		}
-	});
-
-	item = new MenuItem (menu, SWT.PUSH);
-	item.setText (resources.getString("Copy_menuitem"));
-	item.setAccelerator(SWT.MOD1 + 'C');
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			handleCutCopy();
-			text.copy();
-		}
-	});
-
-	item = new MenuItem (menu, SWT.PUSH);
-	item.setText (resources.getString("Paste_menuitem"));
-	item.setAccelerator(SWT.MOD1 + 'V');
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			text.paste();
-		}
-	});
-
-	new MenuItem (menu, SWT.SEPARATOR);
-	
-	item = new MenuItem (menu, SWT.PUSH);
-	item.setText (resources.getString("Font_menuitem"));
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			setFont();
-		}
-	});
-	return menu;
-}
-
-Menu createFileMenu() {
-	Menu bar = shell.getMenuBar ();
-	Menu menu = new Menu (bar);
-	
-	MenuItem item = new MenuItem (menu, SWT.PUSH);
-	item.setText (resources.getString("Exit_menuitem"));
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			shell.close ();
-		}
-	});
-
-	return menu;
-}
-
-/*
- * Set the text state to bold.
- */
-void bold(boolean bold) {
-	isBold = bold;
-	Point sel = text.getSelectionRange();
-	if ((sel != null) && (sel.y != 0)) {
-		StyleRange style;
-		int fontStyle = SWT.NORMAL;
-		if (isBold) fontStyle = SWT.BOLD;
-		style = new StyleRange(sel.x, sel.y, null, null, fontStyle);
-		text.setStyleRange(style);
-	}
-	text.setSelectionRange(sel.x + sel.y, 0);
-}
-/*
- * Clear all style data for the selected text.
- */
-void clear() {
-	Point sel = text.getSelectionRange();
-	if ((sel != null) && (sel.y != 0)) {
-		StyleRange style;
-		style = new StyleRange(sel.x, sel.y, null, null, SWT.NORMAL);
-		text.setStyleRange(style);
-	}
-	text.setSelectionRange(sel.x + sel.y, 0);
-}
-/*
- * Set the foreground color for the selected text.
- */
-void fgColor(int color) {
-	Point sel = text.getSelectionRange();
-	if ((sel == null) || (sel.y == 0)) return;
-	Color fg;
-	if (color == SWT.COLOR_RED) {
-		fg = RED;
-	} else if (color == SWT.COLOR_GREEN) {
-		fg = GREEN;
-	} else if (color == SWT.COLOR_BLUE) {
-		fg = BLUE;
-	} else {
-		fg = null;
-	}
-	StyleRange style;
-	for (int i = sel.x; i<sel.x+sel.y; i++) {
-		StyleRange range = text.getStyleRangeAtOffset(i);
-		if (range == null) {style = new StyleRange(i, 1, fg, null, SWT.NORMAL);}
-		else {style = new StyleRange(i, 1, fg, null, range.fontStyle);};
-		text.setStyleRange(style);
-	}
-	text.setSelectionRange(sel.x + sel.y, 0);
-}
-void createMenuBar () {
-	Menu bar = new Menu (shell, SWT.BAR);
-	shell.setMenuBar (bar);
-
-	MenuItem fileItem = new MenuItem (bar, SWT.CASCADE);
-	fileItem.setText (resources.getString("File_menuitem"));
-	fileItem.setMenu (createFileMenu ());
-
-	MenuItem editItem = new MenuItem (bar, SWT.CASCADE);
-	editItem.setText (resources.getString("Edit_menuitem"));
-	editItem.setMenu (createEditMenu ());
-}
-
-void createShell (Display display) {
-	shell = new Shell (display);
-	shell.setText (resources.getString("Window_title"));	
-	images.loadAll (display);
-	GridLayout layout = new GridLayout();
-	layout.numColumns = 1;
-	shell.setLayout(layout);
-	shell.addDisposeListener (new DisposeListener () {
-		public void widgetDisposed (DisposeEvent e) {
-			if (font != null) font.dispose();
-			images.freeAll ();
-			RED.dispose();
-			GREEN.dispose();
-			BLUE.dispose();
-		}
-	});
-}
-void createStyledText() {
-	initializeColors();
-	text = new StyledText (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
-	GridData spec = new GridData();
-	spec.horizontalAlignment = GridData.FILL;
-	spec.grabExcessHorizontalSpace = true;
-	spec.verticalAlignment = GridData.FILL;
-	spec.grabExcessVerticalSpace = true;
-	text.setLayoutData(spec);
-	extendedModifyListener = new ExtendedModifyListener() {
-		public void modifyText(ExtendedModifyEvent e) {
-			handleExtendedModify(e);
-		}
-	};
-	text.addExtendedModifyListener(extendedModifyListener);
-}
-
-void createToolBar() {
-	toolBar = new ToolBar(shell, SWT.NULL);
-	
-	ToolItem item = new ToolItem(toolBar, SWT.CHECK);
-	item.setImage(images.Bold);
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			bold(((ToolItem)event.widget).getSelection());
-		}
-	});
-	
-	item = new ToolItem(toolBar, SWT.SEPARATOR);
-
-	item = new ToolItem(toolBar, SWT.PUSH);
-	item.setImage(images.Red);
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			fgColor(SWT.COLOR_RED);
-		}
-	});
-	item = new ToolItem(toolBar, SWT.PUSH);
-	item.setImage(images.Green);
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			fgColor(SWT.COLOR_GREEN);
-		}
-	});
-	item = new ToolItem(toolBar, SWT.PUSH);
-	item.setImage(images.Blue);
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			fgColor(SWT.COLOR_BLUE);
-		}
-	});
-	
-	item = new ToolItem(toolBar, SWT.SEPARATOR);
-
-	item = new ToolItem(toolBar, SWT.PUSH);
-	item.setImage(images.Erase);
-	item.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent event) {
-			clear();
-		}
-	});
-}
-void displayError(String msg) {
-	MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
-	box.setMessage(msg);
-	box.open();
-}
-/*
- * Cache the style information for text that has been cut or copied.
- */
-void handleCutCopy() {
-	// Save the cut/copied style info so that during paste we will maintain
-	// the style information.  Cut/copied text is put in the clipboard in
-	// RTF format, but is not pasted in RTF format.  The other way to 
-	// handle the pasting of styles would be to access the Clipboard directly and 
-	// parse the RTF text.
-	cachedStyles = new Vector();
-	Point sel = text.getSelectionRange();
-	int startX = sel.x;
-	for (int i=sel.x; i<=sel.x+sel.y-1; i++) {
-		StyleRange style = text.getStyleRangeAtOffset(i);
-		if (style != null) {
-			style.start = style.start - startX;
-			if (!cachedStyles.isEmpty()) {
-				StyleRange lastStyle = (StyleRange)cachedStyles.lastElement();
-				if (lastStyle.similarTo(style) && lastStyle.start + lastStyle.length == style.start) {
-					lastStyle.length++;
-				} else {
-					cachedStyles.addElement(style);
-				}
-			} else {
-				cachedStyles.addElement(style);
-			}
-		}
-	}
-}
-void handleExtendedModify(ExtendedModifyEvent event) {
-	if (event.length == 0) return;
-	StyleRange style;
-	if (event.length == 1 || text.getTextRange(event.start, event.length).equals(text.getLineDelimiter())) {
-		// Have the new text take on the style of the text to its right (during
-		// typing) if no style information is active.
-		int caretOffset = text.getCaretOffset();
-		style = null;
-		if (caretOffset < text.getCharCount()) style = text.getStyleRangeAtOffset(caretOffset);
-		if (style != null) {
-			style.start = event.start;
-			style.length = event.length;
-			int fontStyle = SWT.NORMAL;
-			if (isBold) fontStyle = SWT.BOLD;
-			style.fontStyle = fontStyle;
-			text.setStyleRange(style);
-		} else if (isBold) {
-			StyleRange newStyle = new StyleRange(event.start, event.length, null, null, SWT.BOLD);
-			text.setStyleRange(newStyle);
-		}
-	} else {
-		// paste occurring, have text take on the styles it had when it was
-		// cut/copied
-		for (int i=0; i<cachedStyles.size(); i++) {
-			style = (StyleRange)cachedStyles.elementAt(i);
-			StyleRange newStyle = (StyleRange)style.clone();
-			newStyle.start = style.start + event.start;
-			text.setStyleRange(newStyle);
-		}
-	}
-}
-
-public static void main (String [] args) {
-	Display display = new Display ();
-	TextEditor example = new TextEditor ();
-	Shell shell = example.open (display);
-	while (!shell.isDisposed ())
-		if (!display.readAndDispatch ()) display.sleep ();
-	display.dispose ();
-}
-
-public Shell open (Display display) {
-	createShell (display);
-	createMenuBar ();
-	createToolBar ();
-	createStyledText ();
-	shell.setSize(500, 300);
-	shell.open ();
-	return shell;
-}
-
-void setFont() {
-	FontDialog fontDialog = new FontDialog(shell);
-	fontDialog.setFontList((text.getFont()).getFontData());
-	FontData fontData = fontDialog.open();
-	if(fontData != null) {
-		if(font != null)
-			font.dispose();
-		font = new Font(shell.getDisplay(), fontData);
-		text.setFont(font);
-	}
-}
-
-void initializeColors() {
-	Display display = Display.getDefault();
-	RED = new Color (display, new RGB(255,0,0));
-	BLUE = new Color (display, new RGB(0,0,255));
-	GREEN = new Color (display, new RGB(0,255,0));
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp
deleted file mode 100755
index 84c7ac9..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp
deleted file mode 100755
index 6ce9264..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp
deleted file mode 100755
index a3184bb..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp
deleted file mode 100755
index 382751e..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp
deleted file mode 100755
index 1d2ace7..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp
deleted file mode 100755
index f6ab21e..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp
deleted file mode 100755
index cca023f..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp
deleted file mode 100755
index 6ce9264..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp
deleted file mode 100755
index 88c63be..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp
deleted file mode 100755
index 6ce9264..0000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.opengl.examples/.classpath b/examples/org.eclipse.swt.opengl.examples/.classpath
deleted file mode 100644
index 8437e3b..0000000
--- a/examples/org.eclipse.swt.opengl.examples/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-    <classpathentry kind="src" path="/org.eclipse.swt.opengl"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.swt.opengl.examples/.project b/examples/org.eclipse.swt.opengl.examples/.project
deleted file mode 100644
index 9112e8e..0000000
--- a/examples/org.eclipse.swt.opengl.examples/.project
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.swt.opengl.examples</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.swt</project>
-		<project>org.eclipse.swt.opengl</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/AntialiasingTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/AntialiasingTab.java
deleted file mode 100644
index 78a1fbb..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/AntialiasingTab.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class AntialiasingTab extends OpenGLTab {
-	private Button antiAliasButton;
-	private float xPos = 0.0f, yPos = 0.0f, zPos = -6.0f;
-	
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		Group movementGroup = new Group(composite, SWT.NONE);
-		movementGroup.setText("Translation");
-		movementGroup.setLayout(new GridLayout(2, false));
-
-		new Label(movementGroup, SWT.NONE).setText("X:");
-		final Slider xMove = new Slider(movementGroup, SWT.NONE);
-		xMove.setIncrement(1);
-		xMove.setMaximum(12);
-		xMove.setMinimum(0);
-		xMove.setThumb(2);
-		xMove.setPageIncrement(2);
-		xMove.setSelection(5);
-		xMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xPos = xMove.getSelection() - 5;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Y:");
-		final Slider yMove = new Slider(movementGroup, SWT.NONE);
-		yMove.setIncrement(1);
-		yMove.setMaximum(12);
-		yMove.setMinimum(0);
-		yMove.setThumb(2);
-		yMove.setPageIncrement(2);
-		yMove.setSelection(5);
-		yMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yPos = yMove.getSelection() - 5;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Z:");
-		final Slider zMove = new Slider(movementGroup, SWT.NONE);
-		zMove.setIncrement(1);
-		zMove.setMaximum(12);
-		zMove.setMinimum(0);
-		zMove.setThumb(2);
-		zMove.setPageIncrement(2);
-		zMove.setSelection(5);
-		zMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zPos = zMove.getSelection() - 11;
-			}
-		});
-
-		antiAliasButton = new Button(composite, SWT.CHECK);
-		antiAliasButton.setText("Anti-Aliasing");
-		antiAliasButton.setSelection(true);
-		antiAliasButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (antiAliasButton.getSelection()) {
-					GL.glEnable(GL.GL_LINE_SMOOTH);
-				} else {
-					GL.glDisable(GL.GL_LINE_SMOOTH);
-				}
-			}
-		});
-		
-		ColorSelectionGroup colorGroup =
-			new ColorSelectionGroup(composite, SWT.NONE);
-		colorGroup.setText("Foreground color");
-		colorGroup.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				GL.glColor3ub((byte) rgb.red, (byte) rgb.green, (byte) rgb.blue);
-			}
-		});
-	}
-
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GL.glDeleteLists(1, 1);
-	}
-
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Anti-aliasing";
-	}
-
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		final float[] BEZIER_POINTS = {
-			-1.5f, -1.5f, 4.0f, -0.5f, -1.5f, 2.0f, 0.5f, -1.5f,
-			-1.0f, 1.5f, -1.5f, 2.0f, -1.5f, -0.5f, 1.0f, -0.5f,
-			-0.5f, 3.0f, 0.5f, -0.5f, 0.0f, 1.5f, -0.5f, -1.0f,
-			-1.5f, 0.5f, 4.0f, -0.5f, 0.5f, 0.0f, 0.5f, 0.5f,
-			3.0f, 1.5f, 0.5f, 4.0f, -1.5f, 1.5f, -2.0f, -0.5f,
-			1.5f, -2.0f, 0.5f, 1.5f, 0.0f, 1.5f, 1.5f, -1.0f,
-		};
-		GL.glHint(GL.GL_LINE_SMOOTH_HINT, GL.GL_NICEST);
-		GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
-		GL.glMap2f(GL.GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, BEZIER_POINTS);
-		GL.glMapGrid2f(30, 0.0f, 1.0f, 30, 0.0f, 1.0f);
-
-		GL.glEnable(GL.GL_AUTO_NORMAL);
-		GL.glEnable(GL.GL_LINE_SMOOTH);
-		GL.glEnable(GL.GL_LINE_STIPPLE);
-		GL.glEnable(GL.GL_BLEND);
-		GL.glEnable(GL.GL_MAP2_VERTEX_3);
-
-		// create display lists
-		GL.glNewList(1, GL.GL_COMPILE);
-		GL.glEvalMesh2(GL.GL_LINE, 0, 30, 0, 30);
-		GL.glEndList();
-	}
-
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT);
-		GL.glLoadIdentity();
-		GL.glTranslatef(xPos, yPos, zPos);
-		GL.glCallList(1);	// draw the beizer surface
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/AreaTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/AreaTab.java
deleted file mode 100644
index 5c6ffab..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/AreaTab.java
+++ /dev/null
@@ -1,434 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class AreaTab extends OpenGLTab {
-	abstract class Shape {
-		abstract void draw();
-	}
-	class State {
-		private String name;
-		private int index;
-		/**
-		 * Constructor.
-		 * 
-		 * @param name the display name of this state
-		 * @param index the display list index corresponding to this state
-		 */
-		State (String name, int index) {
-			super();
-			this.index = index;
-			this.name = name;
-		}
-		void display() {
-			GL.glCallList(index);
-		}
-		void dispose() {
-			GL.glDeleteLists(index, 1);
-		}
-		String getName() {
-			return name;
-		}
-	}
-
-	private State[] states;
-	private State currentState;
-	private float xPos = 0.0f, yPos = 0.0f, zPos = -30.0f;
-	private float xRot = 90.0f, yRot = 0.0f, zRot = 0.0f;
-	private int quadratic, disk;
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		Group movementGroup = new Group(composite, SWT.NONE);
-		movementGroup.setText("Translation");
-		movementGroup.setLayout(new GridLayout(2, false));
-
-		new Label(movementGroup, SWT.NONE).setText("X:");
-		final Slider xMove = new Slider(movementGroup, SWT.NONE);
-		xMove.setIncrement(1);
-		xMove.setMaximum(22);
-		xMove.setMinimum(0);
-		xMove.setThumb(2);
-		xMove.setPageIncrement(2);
-		xMove.setSelection(10);
-		xMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xPos = xMove.getSelection() - 10;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Y:");
-		final Slider yMove = new Slider(movementGroup, SWT.NONE);
-		yMove.setIncrement(1);
-		yMove.setMaximum(22);
-		yMove.setMinimum(0);
-		yMove.setThumb(2);
-		yMove.setPageIncrement(2);
-		yMove.setSelection(10);
-		yMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yPos = yMove.getSelection() - 10;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Z:");
-		final Slider zMove = new Slider(movementGroup, SWT.NONE);
-		zMove.setIncrement(1);
-		zMove.setMaximum(22);
-		zMove.setMinimum(0);
-		zMove.setThumb(2);
-		zMove.setPageIncrement(2);
-		zMove.setSelection(10);
-		zMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zPos = zMove.getSelection() - 40;
-			}
-		});
-
-		Group rotationGroup = new Group(composite, SWT.NONE);
-		rotationGroup.setText("Rotation");
-		rotationGroup.setLayout(new GridLayout(2, false));
-
-		new Label(rotationGroup, SWT.NONE).setText("X:");
-		final Slider xRotation = new Slider(rotationGroup, SWT.NONE);
-		xRotation.setIncrement(10);
-		xRotation.setMaximum(362);
-		xRotation.setMinimum(0);
-		xRotation.setThumb(2);
-		xRotation.setPageIncrement(20);
-		xRotation.setSelection(90);
-		xRotation.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xRot = xRotation.getSelection();
-			}
-		});
-
-		new Label(rotationGroup, SWT.NONE).setText("Y:");
-		final Slider yRotation = new Slider(rotationGroup, SWT.NONE);
-		yRotation.setIncrement(10);
-		yRotation.setMaximum(362);
-		yRotation.setMinimum(0);
-		yRotation.setThumb(2);
-		yRotation.setPageIncrement(20);
-		yRotation.setSelection(0);
-		yRotation.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yRot = yRotation.getSelection();
-			}
-		});
-
-		new Label(rotationGroup, SWT.NONE).setText("Z:");
-		final Slider zRotation = new Slider(rotationGroup, SWT.NONE);
-		zRotation.setIncrement(10);
-		zRotation.setMaximum(362);
-		zRotation.setMinimum(0);
-		zRotation.setThumb(2);
-		zRotation.setPageIncrement(20);
-		zRotation.setSelection(0);
-		zRotation.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zRot = zRotation.getSelection();
-			}
-		});
-
-		Composite optionsGroup = new Composite(composite, SWT.NONE);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		optionsGroup.setLayout(layout);
-
-		new Label(optionsGroup, SWT.NONE).setText("Shape:");
-
-		final Combo statesCombo = new Combo(optionsGroup, SWT.READ_ONLY);
-		for (int i = 0; i < states.length; i++) {
-			statesCombo.add(states[i].getName());
-		}
-		statesCombo.select(0);
-		statesCombo.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				currentState = states[statesCombo.getSelectionIndex()];
-			}
-		});
-
-		final Button lightsButton = new Button(composite, SWT.CHECK);
-		lightsButton.setText("Lights");
-		lightsButton.setSelection(true);
-		lightsButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (lightsButton.getSelection()) {
-					GL.glEnable(GL.GL_LIGHTING);
-				} else {
-					GL.glDisable(GL.GL_LIGHTING);
-				}
-			}
-		});
-	}
-
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GLU.gluDeleteQuadric(quadratic);
-		GLU.gluDeleteQuadric(disk);
-		if (states != null) {
-			for (int i = 0; i < states.length; i++) {
-				states [i].dispose();
-			}
-		}
-	}
-
-	/**
-	 * Draws the logical AND of two shapes.
-	 *
-	 * @param a shape A
-	 * @param b shape B
-	 */
-	void drawAandB(Shape a, Shape b) {
-		// draw parts of B that are inside A
-		drawAinsideB(a, b, GL.GL_BACK, GL.GL_NOTEQUAL);
-		// we do not want the following to show up
-		GL.glColorMask(false, false, false, false);
-		// turn on depth testing
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		GL.glDepthFunc(GL.GL_ALWAYS);
-		// render the front face of B
-		b.draw();
-		// reset the depth function
-		GL.glDepthFunc(GL.GL_LESS);
-		// draw parts of A that are inside B
-		drawAinsideB(b, a, GL.GL_BACK, GL.GL_NOTEQUAL);
-	}
-
-	/**
-	 * Draws the contents of one shape that appear within another.
-	 *
-	 * @param a the shape to draw
-	 * @param b the constraining shape
-	 * @param face
-	 * @param test
-	 */
-	void drawAinsideB(Shape a, Shape b, int face, int test) {
-		// turn off the color buffer
-		GL.glColorMask(false, false, false, false);
-		// clear the stencil buffer
-		GL.glClearStencil(0);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		// set to proper Culling
-		GL.glCullFace(face);
-		// render shape A
-		a.draw();
-		// set depth mask
-		GL.glDepthMask(false);
-		// enable stencil test
-		GL.glEnable(GL.GL_STENCIL_TEST);
-		GL.glStencilFunc(GL.GL_ALWAYS, 0, 0);
-		// set the stencil buffer to increment if the depth test passes
-		GL.glStencilOp(GL.GL_KEEP, GL.GL_KEEP, GL.GL_INCR);
-		// turn on back face culling
-		GL.glCullFace(GL.GL_BACK);
-		// render B
-		b.draw();
-		// set the stencil buffer to decrement if the depth test passes
-		GL.glStencilOp(GL.GL_KEEP, GL.GL_KEEP, GL.GL_DECR);
-		// cull the front face
-		GL.glCullFace(GL.GL_FRONT);
-		// render B again
-		b.draw();
-		// set depth mask
-		GL.glDepthMask(true);
-		GL.glColorMask(true, true, true, true);
-		// set the stencil buffer
-		GL.glStencilFunc(test, 0, 1);
-		// turn off depth testing
-		GL.glDisable(GL.GL_DEPTH_TEST);
-		// set to proper culling
-		GL.glCullFace(face);
-		// render A
-		a.draw();
-		// disable stencil test
-		GL.glDisable(GL.GL_STENCIL_TEST);
-	}
-
-	/**
-	 * Draws the logical OR of two shapes.
-	 *
-	 * @param a shape A
-	 * @param b shape B
-	 */
-	void drawAorB(Shape a, Shape b) {
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		a.draw();
-		b.draw();
-		GL.glDisable(GL.GL_DEPTH_TEST);
-	}
-
-	/**
-	 * Draws one shape subtracted from another.
-	 *
-	 * @param a the base shape
-	 * @param b the shape to subtract
-	 */
-	void drawAsubB(Shape a, Shape b) {
-		// draw back parts of B inside A
-		drawAinsideB(b, a, GL.GL_FRONT, GL.GL_NOTEQUAL);
-		// we do not want the following to show up
-		GL.glColorMask(false, false, false, false);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		// change the depth test to GL_ALWAYS
-		GL.glDepthFunc(GL.GL_ALWAYS);
-		// render the front face of B
-		a.draw();
-		// reset the depth function
-		GL.glDepthFunc(GL.GL_LESS);
-		// draw front parts of A outside B
-		drawAinsideB(a, b, GL.GL_BACK, GL.GL_EQUAL);
-	}
-
-	/**
-	 * Draws the specifed shape.
-	 * 
-	 * @param shape the shape to draw
-	 */
-	void drawShape(Shape shape) {
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		shape.draw();
-		GL.glDisable(GL.GL_DEPTH_TEST);
-	}
-
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Area";
-	}
-	
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		if (!hasStencilSupport()) return;
-		
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		float[] lightPos = { 0.0f, 5.0f, -10.0f, 1.0f };
-		GL.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, lightPos);
-		quadratic = GLU.gluNewQuadric();
-		disk = GLU.gluNewQuadric();
-	
-		GL.glEnable(GL.GL_CULL_FACE);
-		GL.glEnable(GL.GL_LIST_MODE);
-		GL.glEnable(GL.GL_LIGHT0);
-		GL.glEnable(GL.GL_LIGHTING);
-		GL.glLightModeli(GL.GL_LIGHT_MODEL_TWO_SIDE, GL.GL_TRUE);
-
-		final float[] sphereMaterial = { 0.0f, 1.0f, 0.0f, 1.0f };
-		final float[] cylinderMaterial = { 1.0f, 0.0f, 0.0f, 1.0f };
-
-		Shape sphere = new Shape() {
-			public void draw() {
-				GL.glMaterialfv(
-					GL.GL_FRONT_AND_BACK,
-					GL.GL_AMBIENT_AND_DIFFUSE,
-					sphereMaterial);
-				GL.glColor3f(0.0f, 1.0f, 0.0f);
-				GLU.gluSphere(quadratic, 3, 32, 32);
-			}
-		};
-		Shape cylinder = new Shape() {
-			public void draw() {
-				GL.glMaterialfv(
-					GL.GL_FRONT_AND_BACK,
-					GL.GL_AMBIENT_AND_DIFFUSE,
-					cylinderMaterial);
-				GL.glColor3f(1.0f, 0.0f, 0.0f);
-				GLU.gluQuadricOrientation(disk, GLU.GLU_INSIDE);
-				GL.glPushMatrix();
-				GL.glTranslatef(1.0f, 1.0f, 0.0f);
-				GLU.gluDisk(disk, 0, 3, 32, 32);
-				GLU.gluCylinder(quadratic, 3, 3, 6, 32, 32);
-				GL.glPushMatrix();
-				GL.glTranslatef(0.0f, 0.0f, 6.0f);
-				GLU.gluQuadricOrientation(disk, GLU.GLU_OUTSIDE);
-				GLU.gluDisk(disk, 0, 3, 32, 32);
-				GL.glPopMatrix();
-				GL.glPopMatrix();
-			}
-		};
-
-		// create the display lists and states
-		states = new State[6];
-		int index = 1;
-		
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawShape(cylinder);
-		GL.glEndList();
-		states[0] = new State("Cylinder",index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawShape(sphere);
-		GL.glEndList();
-		states[1] = new State("Sphere",index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawAorB(cylinder, sphere);
-		GL.glEndList();
-		states[2] = new State("Cylinder OR Sphere",index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawAandB(cylinder, sphere);
-		GL.glEndList();
-		states[3] = new State("Cylinder AND Sphere",index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawAsubB(cylinder, sphere);
-		GL.glEndList();
-		states[4] = new State("Cylinder SUB Sphere",index++);
-		
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawAsubB(sphere, cylinder);
-		GL.glEndList();
-		states[5] = new State("Sphere SUB Cylinder",index++);
-
-		currentState = states[0];
-	}
-	
-	/**
-	 * @see OpenGLTab#isStencilSupportNeeded
-	 */
-	boolean isStencilSupportNeeded() {
-		return true;
-	}
-
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(
-			GL.GL_COLOR_BUFFER_BIT
-				| GL.GL_DEPTH_BUFFER_BIT
-				| GL.GL_STENCIL_BUFFER_BIT);
-
-		GL.glLoadIdentity();
-		GL.glTranslatef(xPos, yPos, zPos);
-		GL.glRotatef(xRot, 1.0f, 0.0f, 0.0f);
-		GL.glRotatef(yRot, 0.0f, 1.0f, 0.0f);
-		GL.glRotatef(zRot, 0.0f, 0.0f, 1.0f);
-
-		currentState.display();
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/BezierTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/BezierTab.java
deleted file mode 100644
index e66b841..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/BezierTab.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class BezierTab extends SelectionTab {
-	private boolean showCtrlPoints = true;
-	private Point offset;
-	private int currentPoint = -1;
-	private int lineDivisions = 30;
-	private double[][] ctrlPts = {
-		{	1.5, 0.5, 0.0, 0.6, 0.9, 0.0, 0.85, 0.12,
-			0.0, 1.1, 1.0, 0.0, 0.53, 1.4, 0.0
-		},
-		{	0.53, 1.4, 0.0, 1.03, 1.87, 0.0, 1.52, 0.26,
-			0.0, 1.86, 0.43, 0.0, 1.5, 0.5, 0.0
-		}
-	};
-	private static final int LENGTH = 5;
-	private static final int[][] PICK_NAMES = {
-		{ 1, 2, 3, 4, 5 },
-		{ 6, 7, 8, 9, 10 }
-	};
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		new Label(composite, SWT.NONE).setText("Click and drag points to adjust shape.");
-		new Label(composite, SWT.NONE).setText("Line division count:");
-		final Slider divisions = new Slider(composite, SWT.NONE);
-		divisions.setIncrement(1);
-		divisions.setMaximum(52);
-		divisions.setMinimum(1);
-		divisions.setThumb(2);
-		divisions.setPageIncrement(2);
-		divisions.setSelection(30);
-		divisions.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				lineDivisions = divisions.getSelection();
-			}
-		});
-		
-		final Button showPointsButton = new Button(composite, SWT.CHECK);
-		showPointsButton.setText("Show Points");
-		showPointsButton.setSelection(true);
-		showPointsButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				showCtrlPoints = showPointsButton.getSelection();
-			}
-		});
-		
-		final Button blendButton = new Button(composite, SWT.CHECK);
-		blendButton.setText("Blend");
-		blendButton.setSelection(true);
-		blendButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (blendButton.getSelection()) {
-					GL.glEnable(GL.GL_BLEND);
-				} else {
-					GL.glDisable(GL.GL_BLEND);
-				}
-			}
-		});
-		
-		final Button smoothLineButton = new Button(composite, SWT.CHECK);
-		smoothLineButton.setText("Smooth Line");
-		smoothLineButton.setSelection(true);
-		smoothLineButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (smoothLineButton.getSelection()) {
-					GL.glEnable(GL.GL_LINE_SMOOTH);
-				} else {
-					GL.glDisable(GL.GL_LINE_SMOOTH);
-				}
-			}
-		});
-		
-		final Canvas glCanvas = getGlCanvas();
-		glCanvas.addMouseListener(new MouseAdapter() {
-			public void mouseUp(MouseEvent e) {
-				offset = null;
-			}
-
-		});
-		
-		glCanvas.addListener(SWT.MouseDown, new Listener() {
-			public void handleEvent(Event e) {
-				e.y = glCanvas.getClientArea().height - e.y;
-				if (e.button == 1) {
-					if (processSelection(e.x, e.y, 10) > 0) {
-						offset = new Point(e.x, e.y);
-					} else {
-						currentPoint = 0;
-					}
-				}
-			}
-		});
-		
-		glCanvas.addListener(SWT.MouseMove, new Listener() {
-			public void handleEvent(Event e) {
-				if (offset == null) return;
-				int currentSegment = (currentPoint - 1) / LENGTH;
-				int current = (currentPoint - 1) * 3;
-				if (currentPoint > LENGTH) {
-					current = (currentPoint - 6) * 3;
-				}
-				Rectangle rect = glCanvas.getClientArea();
-				e.y = rect.height - e.y;
-				if (0 < e.x && e.x < rect.width && 0 < e.y && e.y < rect.height && currentPoint > 0) {
-					ctrlPts[currentSegment][current] = (float) e.x / (float) 200;
-					ctrlPts[currentSegment][current + 1] = (float) e.y / (float) 200;
-					switch (currentPoint) {
-						case 10 :
-							ctrlPts[0][0] = (float) e.x / (float) 200;
-							ctrlPts[0][1] = (float) e.y / (float) 200;
-							break;
-						case 6 :
-							ctrlPts[0][12] = (float) e.x / (float) 200;
-							ctrlPts[0][13] = (float) e.y / (float) 200;
-							break;
-					}
-				}
-			}
-		});
-	}
-	
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Bezier";
-	}
-	
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glHint(GL.GL_LINE_SMOOTH_HINT, GL.GL_NICEST);
-		GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
-		GL.glPointSize(7.0f);
-		GL.glLineWidth(4.0f);
-
-		GL.glEnable(GL.GL_AUTO_NORMAL);
-		GL.glEnable(GL.GL_MAP1_VERTEX_3);
-		GL.glEnable(GL.GL_LINE_SMOOTH);
-		GL.glEnable(GL.GL_BLEND);
-	}
-	
-	/**
-	 * @see SelectionTab.processPick (int[], int)
-	 */
-	void processPick(int[] pSelectBuff, int hits) {
-		int counter = 0;
-		currentPoint = 0;
-		for (int i = 0; i < hits; i++) {
-			int count = pSelectBuff[counter];
-			counter += 3;
-			for (int j = 0; j < count; j++) {
-				currentPoint = pSelectBuff[counter];
-				counter++;
-			}
-		}
-	}
-	
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-		GL.glLoadIdentity();
-		GL.glTranslatef(-1.0f, -1.0f, -2.45f);
-		GL.glColor3f(0.0f, 0.0f, 1.0f);
-		for (int i = 0; i < ctrlPts.length; i++) {
-			GL.glMapGrid1d(lineDivisions, 0.0f, 1f);
-			GL.glMap1d(GL.GL_MAP1_VERTEX_3, 0, 1, 3, LENGTH, ctrlPts[i]);
-			GL.glEvalMesh1(GL.GL_LINE, 0, lineDivisions);
-		}
-		if (showCtrlPoints) {
-			GL.glPushName(0);
-			for (int j = 0; j < ctrlPts.length; j++) {
-				for (int i = 0; i < LENGTH * 3; i += 3) {
-					GL.glLoadName(PICK_NAMES[j][i / 3]);
-					GL.glBegin(GL.GL_POINTS);
-					if (PICK_NAMES[j][i / 3] == currentPoint) {
-						GL.glColor3f(1.0f, 0.0f, 0.0f);
-					} else {
-						GL.glColor3f(0.0f, 0.0f, 0.0f);
-					}
-					GL.glVertex3d(ctrlPts[j][i], ctrlPts[j][i + 1], ctrlPts[j][i + 2]);
-					GL.glEnd();
-				}
-			}
-		}
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/BitmapTextTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/BitmapTextTab.java
deleted file mode 100644
index 084f45a..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/BitmapTextTab.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class BitmapTextTab extends OpenGLTab {
-	private Text messageText;
-	private FontData fontData;
-	private float[] textColor = { 1.0f, 0.0f, 0.0f };
-	private float xPos = -130.0f, yPos = 0.0f;
-	private int listIndexBase;
-	private final static int LIST_INDEX_SIZE = 256;
-	private final static int DEFAULT_FONT_SIZE = 24;
-	private final static String DEFAULT_FONT_NAME = "Courier";
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		Group movementGroup = new Group(composite, SWT.NONE);
-		movementGroup.setText("Translation");
-		movementGroup.setLayout(new GridLayout(2, false));
-
-		new Label(movementGroup, SWT.NONE).setText("X:");
-		final Slider xMove = new Slider(movementGroup, SWT.NONE);
-		xMove.setIncrement(1);
-		xMove.setMaximum(42);
-		xMove.setMinimum(0);
-		xMove.setThumb(2);
-		xMove.setPageIncrement(2);
-		xMove.setSelection(7);
-		xMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xPos = (xMove.getSelection() * 10) - 200;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Y:");
-		final Slider yMove = new Slider(movementGroup, SWT.NONE);
-		yMove.setIncrement(1);
-		yMove.setMaximum(42);
-		yMove.setMinimum(0);
-		yMove.setThumb(2);
-		yMove.setPageIncrement(2);
-		yMove.setSelection(20);
-		yMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yPos = (yMove.getSelection() * 10) - 200;
-			}
-		});
-
-		Composite textGroup = new Composite(composite,SWT.NONE);
-		GridLayout layout = new GridLayout(2,false);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		textGroup.setLayout(layout);
-		textGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		
-		new Label(textGroup, SWT.NONE).setText("Text:");
-		messageText = new Text(textGroup, SWT.BORDER);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		data.grabExcessHorizontalSpace = true;
-		messageText.setLayoutData(data);
-		messageText.setText("OpenGL - SWT");
-
-		final Button fontSelectButton = new Button(composite, SWT.NONE);
-		fontSelectButton.setText("Set Font");
-		
-		final ColorSelectionGroup colorGroup =
-			new ColorSelectionGroup(composite, SWT.NONE);
-		colorGroup.setText("Text color");
-		colorGroup.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				GL.glColor3ub((byte) rgb.red, (byte) rgb.green, (byte) rgb.blue);
-			}
-		});
-		
-		fontSelectButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				FontDialog fontDialog = new FontDialog(fontSelectButton.getShell());
-				fontDialog.setText("Choose Font Options");
-				double[] currentColor = new double[4];
-				GL.glGetDoublev(GL.GL_CURRENT_COLOR, currentColor);
-				fontDialog.setRGB(
-					new RGB(
-						(int) currentColor[0] * 255,
-						(int) currentColor[1] * 255,
-						(int) currentColor[2] * 255));
-				fontDialog.setFontData(fontData);
-				FontData result = fontDialog.open();
-				if (result != null) {
-					fontData = result;
-					RGB rgb = fontDialog.getRGB();
-					GL.glColor3ub((byte) rgb.red, (byte) rgb.green, (byte) rgb.blue);
-					colorGroup.setRGB(rgb);
-					getContext().loadBitmapFont(fontData, null, listIndexBase, 32, 96);
-				}
-			}
-		});
-	}
-
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GL.glDeleteLists(listIndexBase, LIST_INDEX_SIZE);
-	}
-
-	/**
-	 * Draws the text to the screen
-	 * 
-	 * @param string the text to draw
-	 */
-	void drawText(String string) {
-		char[] stringChars = string.toCharArray();
-		int[] text = new int[stringChars.length];
-		for (int i = 0; i < text.length; i++) {
-			text[i] = (int) stringChars[i];
-		}
-		// pushes the display list bits
-		GL.glPushAttrib(GL.GL_LIST_BIT);
-		// sets the base character to 32
-		GL.glListBase(listIndexBase - 32);
-		GL.glCallLists(text.length, GL.GL_UNSIGNED_INT, text);
-		// pops the display list bits
-		GL.glPopAttrib();
-	}
-	
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Bitmap Text";
-	}
-
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glColor3fv(textColor);
-		GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		GL.glEnable(GL.GL_BLEND);
-		// build the initial font
-		listIndexBase = GL.glGenLists(LIST_INDEX_SIZE);
-		fontData = new FontData();
-		fontData.setHeight(DEFAULT_FONT_SIZE);
-		fontData.setName(DEFAULT_FONT_NAME);
-		getContext().loadBitmapFont(fontData, null, listIndexBase, 32, LIST_INDEX_SIZE);
-	}
-
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-		GL.glLoadIdentity();
-		GL.glRasterPos2f(xPos, yPos);
-		drawText(messageText.getText());
-	}
-
-	/**
-	 * @see OpenGLTab#setupViewingArea()
-	 */
-	void setupViewingArea() {
-		// use ortho view since this tab does not need any depth
-		Rectangle rect = getGlCanvas().getClientArea();
-		int width = rect.width;
-		int height = rect.height;
-		width = Math.max(width, 1);
-		GL.glViewport(0, 0, width, height);
-		float nRange = 200.0f;
-		GL.glMatrixMode(GL.GL_PROJECTION);
-		GL.glLoadIdentity();
-		if (width <= height) {
-			GL.glOrtho(
-				-nRange, nRange, -nRange * height / width,
-				nRange * height / width, -nRange, nRange);
-		} else {
-			GL.glOrtho(
-				-nRange * height / width, nRange * height / width, -nRange,
-				nRange, -nRange, nRange);
-		}
-		GL.glMatrixMode(GL.GL_MODELVIEW);
-		GL.glLoadIdentity();
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ColorSelectionGroup.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ColorSelectionGroup.java
deleted file mode 100644
index f0c3cdd..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ColorSelectionGroup.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import java.util.Vector;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.GL;
-import org.eclipse.swt.widgets.*;
-
-class ColorSelectionGroup implements Listener {
-	private Color color;
-	private Label label;
-	private Image image;
-	private Button button;
-	private Vector listeners = new Vector();
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param parent the parent composite
-	 * @param style style bits to be applied to the color group
-	 */
-	ColorSelectionGroup(Composite parent, int style) {
-		super();
-		initColor(parent.getDisplay());
-
-		Composite colorGroup = new Composite(parent, style);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		colorGroup.setLayout(layout);
-//		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-//		data.grabExcessHorizontalSpace = true;
-//		colorGroup.setLayoutData(data);
-
-		button = new Button(colorGroup, SWT.NONE);
-		button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-		image = new Image(button.getDisplay(), 12, 12);
-		drawButtonImage();
-		button.setImage(image);
-		button.addListener(SWT.Selection, this);
-		button.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				if (image != null) image.dispose();
-				if (color != null) color.dispose();
-			}
-		});
-		
-		label = new Label(colorGroup, SWT.NONE);
-		label.setText("Color");
-//		data = new GridData(GridData.FILL_HORIZONTAL);
-//		data.grabExcessHorizontalSpace = true;
-//		label.setLayoutData(data);
-	}
-
-	/**
-	 * Adds the argument to this group's collection of
-	 * color selection listeners.
-	 * 
-	 * @param listener
-	 */
-	void addColorSelectionListener(IColorSelectionListener listener) {
-		listeners.addElement(listener);
-	}
-	
-	/**
-	 * Draws the colored square on the selection button.
-	 */
-	void drawButtonImage() {
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		Rectangle bounds = image.getBounds();
-		gc.fillRectangle(0, 0, bounds.width, bounds.height);
-		gc.drawRectangle(0, 0, bounds.width - 1, bounds.height - 1);
-		gc.dispose();
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Listener#handleEvent(Event)
-	 */
-	public void handleEvent(Event e) {
-		Shell shell = button.getShell();
-		ColorDialog colorDialog = new ColorDialog(shell);
-		colorDialog.setRGB(
-			new RGB(color.getRed(), color.getGreen(), color.getBlue()));
-		RGB rgb = colorDialog.open();
-		if (rgb == null) return;
-		setRGB(rgb);
-		notifyListeners(rgb);
-	}
-
-	/**
-	 * Initializes the color by querying for the current color.
-	 * 
-	 * @param display
-	 */
-	void initColor(Display display) {
-		double[] currentColor = new double[4];
-		GL.glGetDoublev(GL.GL_CURRENT_COLOR, currentColor);
-		RGB rgb =
-			new RGB(
-				(int) currentColor[0] * 255,
-				(int) currentColor[1] * 255,
-				(int) currentColor[2] * 255);
-		color = new Color(display, rgb);
-	}
-	
-	/**
-	 * Notifies all registered color selection listeners.
-	 * 
-	 * @param value
-	 */
-	void notifyListeners(RGB rgb) {
-		IColorSelectionListener[] listenersArr =
-			new IColorSelectionListener[listeners.size()];
-		listeners.copyInto(listenersArr);
-		for (int i = 0; i < listenersArr.length; i++) {
-			listenersArr [i].handleColorSelection(rgb);
-		}
-	}
-
-	/**
-	 * Removes the argument from this group's collection of color selection
-	 * listeners.  If the argument is not a registered listener then does
-	 * nothing.
-	 * 
-	 * @param listener
-	 */
-	void removeColorSelectionListener(IColorSelectionListener listener) {
-		listeners.removeElement(listener);
-	}
-
-	/**
-	 * Sets the text for the group's label.
-	 * 
-	 * @param text the new label text
-	 */
-	void setText(String text) {
-		label.setText(text);
-	}
-
-	/**
-	 * Sets the current color.
-	 * 
-	 * @param rgb the rgb of the new color
-	 */
-	void setRGB(RGB rgb) {
-		Color oldColor = color;
-		color = new Color(button.getDisplay(), rgb);
-		drawButtonImage();
-		button.setImage(image);
-		if (oldColor != null) oldColor.dispose();
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/FogTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/FogTab.java
deleted file mode 100644
index da017ed..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/FogTab.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class FogTab extends OpenGLTab {
-
-	private float rotY = 0.0f;
-	private float yPos = 0.0f, xPos = 0.0f, zPos = -15.0f;
-	private int cubeListIndexBase;
-	private final static int[] FOG_TYPES = { GL.GL_LINEAR, GL.GL_EXP, GL.GL_EXP2 };
-	private final static String[] FOG_NAMES = { "LINEAR", "GL_EXP", "GL_EXP2" };
-	private final static int SLEEP_LENGTH = 0;
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		Group movementGroup = new Group(composite, SWT.NONE);
-		movementGroup.setText("Translation");
-		movementGroup.setLayout(new GridLayout(2, false));
-
-		new Label(movementGroup, SWT.NONE).setText("X:");
-		final Slider xMove = new Slider(movementGroup, SWT.NONE);
-		xMove.setIncrement(1);
-		xMove.setMaximum(12);
-		xMove.setMinimum(0);
-		xMove.setThumb(2);
-		xMove.setPageIncrement(2);
-		xMove.setSelection(5);
-		xMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xPos = xMove.getSelection() - 5;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Y:");
-		final Slider yMove = new Slider(movementGroup, SWT.NONE);
-		yMove.setIncrement(1);
-		yMove.setMaximum(12);
-		yMove.setMinimum(0);
-		yMove.setThumb(2);
-		yMove.setPageIncrement(2);
-		yMove.setSelection(5);
-		yMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yPos = yMove.getSelection() - 5;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Z:");
-		final Slider zMove = new Slider(movementGroup, SWT.NONE);
-		zMove.setIncrement(1);
-		zMove.setMaximum(24);
-		zMove.setMinimum(0);
-		zMove.setThumb(4);
-		zMove.setPageIncrement(2);
-		zMove.setSelection(10);
-		zMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zPos = zMove.getSelection() - 25;
-			}
-		});
-
-		Composite fogTypesGroup = new Composite(composite,SWT.NONE);
-		GridLayout layout = new GridLayout(2,false);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		fogTypesGroup.setLayout(layout);
-		fogTypesGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		new Label(fogTypesGroup, SWT.NONE).setText("Fog Types:");
-		final Combo fogTypeCombo = new Combo(fogTypesGroup, SWT.READ_ONLY);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		data.grabExcessHorizontalSpace = true;
-		fogTypeCombo.setLayoutData(data);
-		fogTypeCombo.setItems(FOG_NAMES);
-		fogTypeCombo.select(0);
-
-		new Label(composite, SWT.NONE).setText("Fog Density:");
-		final Slider fogDensitySlider = new Slider(composite, SWT.NONE);
-		fogDensitySlider.setIncrement(1);
-		fogDensitySlider.setMaximum(32);
-		fogDensitySlider.setMinimum(0);
-		fogDensitySlider.setThumb(2);
-		fogDensitySlider.setPageIncrement(5);
-		fogDensitySlider.setSelection(0);
-		fogDensitySlider.setEnabled(false);
-		fogDensitySlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				float fogDensity = ((float)fogDensitySlider.getSelection()) / 100;
-				GL.glFogf(GL.GL_FOG_DENSITY, fogDensity);
-			}
-		});
-		fogTypeCombo.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				int currentSelection = fogTypeCombo.getSelectionIndex();
-				// fog type GL.GL_LINEAR does not utilize fogDensity, but the other fog types do
-				fogDensitySlider.setEnabled(currentSelection != 0);
-				GL.glFogf(GL.GL_FOG_MODE, FOG_TYPES[currentSelection]);
-			}
-		});
-	}
-
-	/**
-	 * Creates a cube at 0,0 in the viewport.
-	 */
- 	void createCube() {
-		GL.glNewList(cubeListIndexBase, GL.GL_COMPILE);
-		GL.glBegin(GL.GL_QUADS);
-		// front
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(-0.5f, -0.5f, 0.5f);	// bottom left 
-		GL.glColor3f(0.0f, 0.0f, 1.0f);
-		GL.glVertex3f(0.5f, -0.5f, 0.5f);	// bottom right
-		GL.glColor3f(1.0f, 1.0f, 0.0f);
-		GL.glVertex3f(0.5f, 0.5f, 0.5f);	// top right
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glVertex3f(-0.5f, 0.5f, 0.5f);	// top left
-		// back
-		GL.glColor3f(0.0f, 0.0f, 1.0f);
-		GL.glVertex3f(-0.5f, -0.5f, -0.5f);	// bottom left 
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(0.5f, -0.5f, -0.5f);	// bottom right
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glVertex3f(0.5f, 0.5f, -0.5f);	// top right
-		GL.glColor3f(1.0f, 1.0f, 0.0f);
-		GL.glVertex3f(-0.5f, 0.5f, -0.5f);	// top left
-		// left
-		GL.glColor3f(0.0f, 0.0f, 1.0f);
-		GL.glVertex3f(-0.5f, -0.5f, -0.5f);	// bottom left
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(-0.5f, -0.5f, 0.5f);	// bottom right
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glVertex3f(-0.5f, 0.5f, 0.5f);	// top right
-		GL.glColor3f(1.0f, 1.0f, 0.0f);
-		GL.glVertex3f(-0.5f, 0.5f, -0.5f);	// top left	
-		// right
-		GL.glColor3f(0.0f, 0.0f, 1.0f);
-		GL.glVertex3f(0.5f, -0.5f, 0.5f);	// bottom left
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(0.5f, -0.5f, -0.5f);	// bottom right
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glVertex3f(0.5f, 0.5f, -0.5f);	// top right
-		GL.glColor3f(1.0f, 1.0f, 0.0f);
-		GL.glVertex3f(0.5f, 0.5f, 0.5f);	// top left
-		// top
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glVertex3f(0.5f, 0.5f, -0.5f);
-		GL.glColor3f(1.0f, 1.0f, 0.0f);
-		GL.glVertex3f(-0.5f, 0.5f, -0.5f);
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glVertex3f(-0.5f, 0.5f, 0.5f);
-		GL.glColor3f(1.0f, 1.0f, 0.0f);
-		GL.glVertex3f(0.5f, 0.5f, 0.5f);
-		// bottom
-		GL.glColor3f(0.0f, 0.0f, 1.0f);
-		GL.glVertex3f(0.5f, -0.5f, 0.5f);
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(-0.5f, -0.5f, 0.5f);
-		GL.glColor3f(0.0f, 0.0f, 1.0f);
-		GL.glVertex3f(-0.5f, -0.5f, -0.5f);
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(0.5f, -0.5f, -0.5f);
-		GL.glEnd();
-		GL.glEndList();
-	}
-
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GL.glDeleteLists(cubeListIndexBase, 1);
-	}
-
-	/**
-	 * @see OpenGLTab#getSleepLength()
-	 */
-	int getSleepLength() {
-		return SLEEP_LENGTH;	
-	}
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Fog";
-	}
-
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		// fog color should be the same as the clear color
-		// to look appropriate
-		float[] fogColor = { 1.0f, 1.0f, 1.0f, 1.0f };
-		GL.glFogfv(GL.GL_FOG_COLOR, fogColor);
-		GL.glHint(GL.GL_FOG_HINT, GL.GL_DONT_CARE);
-		GL.glFogf(GL.GL_FOG_START, 0);
-		GL.glFogf(GL.GL_FOG_DENSITY, 0.0f);
-		// set the end of the start distance; anything > 15
-		// units from the camera will be covered in fog
-		GL.glFogf(GL.GL_FOG_END, 15);
-		GL.glFogf(GL.GL_FOG_MODE, FOG_TYPES[0]);
-		GL.glEnable(GL.GL_FOG);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-
-		cubeListIndexBase = GL.glGenLists(1);
-		createCube();
-	}
-
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-		GL.glLoadIdentity();
-		GL.glTranslatef(xPos, yPos, zPos);
-		GL.glRotatef(rotY, 0.0f, 1.0f, 0.0f);
-
-		GL.glCallList(cubeListIndexBase);
-
-		GL.glPushMatrix();
-		GL.glTranslatef(3, 0, -3);
-		GL.glCallList(cubeListIndexBase);
-		GL.glPopMatrix();
-
-		GL.glPushMatrix();
-		GL.glTranslatef(-3, 0, -3);
-		GL.glCallList(cubeListIndexBase);
-		GL.glPopMatrix();
-
-		GL.glPushMatrix();
-		GL.glTranslatef(0, 0, 4);
-		GL.glCallList(cubeListIndexBase);
-		GL.glPopMatrix();
-
-		rotY += 0.6f;
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/GradientTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/GradientTab.java
deleted file mode 100644
index 61e9309..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/GradientTab.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class GradientTab extends OpenGLTab {
-	private float xPos = 0.0f, yPos = 0.0f, zPos = -7.0f;
-	private float xRot = 180.0f, yRot = 180.0f, zRot = 180.0f;
-	private int currentSelection = 1;
-	private final static float[] BEZIER_COLORS = {
-		0.0f, 1.0f, 0.0f, 0.0f, 0.3f, 0.6f, 0.1f, 0.0f,
-		0.8f, 0.2f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
-		0.0f, 0.0f, 1.0f, 0.0f, 0.8f, 0.8f, 0.8f, 0.0f
-	};
-	private final static float[] BEZIER_POINTS = {
-		-1.5f, -1.5f, 4.0f, -0.5f, -1.5f, 2.0f, 0.5f, -1.5f,
-		-1.0f, 1.5f, -1.5f, 2.0f, -1.5f, -0.5f, 1.0f, -0.5f,
-		-0.5f, 3.0f, 0.5f, -0.5f, 0.0f, 1.5f, -0.5f, -1.0f,
-		-1.5f, 0.5f, 4.0f, -0.5f, 0.5f, 0.0f, 0.5f, 0.5f,
-		3.0f, 1.5f, 0.5f, 4.0f, -1.5f, 1.5f, -2.0f, -0.5f,
-		1.5f, -2.0f, 0.5f, 1.5f, 0.0f, 1.5f, 1.5f, -1.0f,
-	};
-	private final static String[] OBJECT_NAMES = { "Bezier", "Square" };
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		Group movementGroup = new Group(composite, SWT.NONE);
-		movementGroup.setText("Translation");
-		movementGroup.setLayout(new GridLayout(2, false));
-
-		new Label(movementGroup, SWT.NONE).setText("X:");
-		final Slider xMove = new Slider(movementGroup, SWT.NONE);
-		xMove.setIncrement(1);
-		xMove.setMaximum(12);
-		xMove.setMinimum(0);
-		xMove.setThumb(2);
-		xMove.setPageIncrement(2);
-		xMove.setSelection(5);
-		xMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xPos = xMove.getSelection() - 5;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Y:");
-		final Slider yMove = new Slider(movementGroup, SWT.NONE);
-		yMove.setIncrement(1);
-		yMove.setMaximum(12);
-		yMove.setMinimum(0);
-		yMove.setThumb(2);
-		yMove.setPageIncrement(2);
-		yMove.setSelection(5);
-		yMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yPos = yMove.getSelection() - 5;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Z:");
-		final Slider zMove = new Slider(movementGroup, SWT.NONE);
-		zMove.setIncrement(1);
-		zMove.setMaximum(12);
-		zMove.setMinimum(0);
-		zMove.setThumb(2);
-		zMove.setPageIncrement(2);
-		zMove.setSelection(5);
-		zMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zPos = zMove.getSelection() - 12;
-			}
-		});
-
-		Group rotationGroup = new Group(composite, SWT.NONE);
-		rotationGroup.setText("Rotation");
-		rotationGroup.setLayout(new GridLayout(2, false));
-
-		new Label(rotationGroup, SWT.NONE).setText("X:");
-		final Slider xRotation = new Slider(rotationGroup, SWT.NONE);
-		xRotation.setIncrement(10);
-		xRotation.setMaximum(362);
-		xRotation.setMinimum(0);
-		xRotation.setThumb(2);
-		xRotation.setPageIncrement(20);
-		xRotation.setSelection(180);
-		xRotation.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xRot = xRotation.getSelection();
-			}
-		});
-
-		new Label(rotationGroup, SWT.NONE).setText("Y:");
-		final Slider yRotation = new Slider(rotationGroup, SWT.NONE);
-		yRotation.setIncrement(10);
-		yRotation.setMaximum(362);
-		yRotation.setMinimum(0);
-		yRotation.setThumb(2);
-		yRotation.setPageIncrement(20);
-		yRotation.setSelection(180);
-		yRotation.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yRot = yRotation.getSelection();
-			}
-		});
-
-		new Label(rotationGroup, SWT.NONE).setText("Z:");
-		final Slider zRotation = new Slider(rotationGroup, SWT.NONE);
-		zRotation.setIncrement(10);
-		zRotation.setMaximum(362);
-		zRotation.setMinimum(0);
-		zRotation.setThumb(2);
-		zRotation.setPageIncrement(20);
-		zRotation.setSelection(180);
-		zRotation.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zRot = zRotation.getSelection();
-			}
-		});
-		
-		Composite objectGroup = new Composite(composite,SWT.NONE);
-		GridLayout layout = new GridLayout(2,false);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		objectGroup.setLayout(layout);
-		objectGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		new Label(objectGroup, SWT.NONE).setText("Object:");
-		final Combo objectCombo = new Combo(objectGroup, SWT.READ_ONLY);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		data.grabExcessHorizontalSpace = true;
-		objectCombo.setLayoutData(data);
-		objectCombo.setItems(OBJECT_NAMES);
-		objectCombo.select(0);
-		objectCombo.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				currentSelection = objectCombo.getSelectionIndex() + 1;
-			}
-		});
-	}
-	
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GL.glDeleteLists(1, 2);
-	}
-	
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Gradients";
-	}
-	
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glHint(GL.GL_LINE_SMOOTH_HINT, GL.GL_NICEST);
-		GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
-		GL.glPolygonMode(GL.GL_FRONT_AND_BACK, GL.GL_FILL);
-		GL.glMap2f(GL.GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, BEZIER_POINTS);
-		GL.glMap2f(GL.GL_MAP2_COLOR_4, 0, 1, 4, 1, 0, 1, 4, 6, BEZIER_COLORS);
-		GL.glMapGrid2f(20, 0.0f, 1.0f, 20, 0.0f, 1.0f);
-		GL.glShadeModel(GL.GL_SMOOTH);
-		GL.glEnable(GL.GL_LINE_SMOOTH);
-		GL.glEnable(GL.GL_LINE_STIPPLE);
-		GL.glEnable(GL.GL_BLEND);
-		GL.glEnable(GL.GL_MAP2_COLOR_4);
-		GL.glEnable(GL.GL_MAP2_VERTEX_3);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-
-		// create display lists
-		GL.glNewList(1, GL.GL_COMPILE);
-		GL.glEvalMesh2(GL.GL_FILL, 0, 20, 0, 20);
-		GL.glEndList();
-		GL.glNewList(2, GL.GL_COMPILE);
-		GL.glBegin(GL.GL_TRIANGLE_FAN);
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(0.0f, 0.0f, 0.0f);
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glVertex3f(0.0f, 2.0f, 0.0f);
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(-2.0f, 2.0f, 0.0f);
-		GL.glColor3f(0.0f, 0.0f, 1.0f);
-		GL.glVertex3f(-2.0f, 0.0f, 0.0f);
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(-2.0f, -2.0f, 0.0f);
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glVertex3f(0.0f, -2.0f, 0.0f);
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(2.0f, -2.0f, 0.0f);
-		GL.glColor3f(0.0f, 0.0f, 1.0f);
-		GL.glVertex3f(2.0f, 0.0f, 0.0f);
-		GL.glColor3f(0.0f, 1.0f, 0.0f);
-		GL.glVertex3f(2.0f, 2.0f, 0.0f);
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glVertex3f(0.0f, 2.0f, 0.0f);
-		GL.glEnd();
-		GL.glEndList();
-	}
-	
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT);
-		GL.glLoadIdentity();
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-		GL.glTranslatef(xPos, yPos, zPos);
-		GL.glRotatef(xRot, 1.0f, 0.0f, 0.0f);
-		GL.glRotatef(yRot, 0.0f, 1.0f, 0.0f);
-		GL.glRotatef(zRot, 0.0f, 0.0f, 1.0f);
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glCallList(currentSelection);
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/IColorSelectionListener.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/IColorSelectionListener.java
deleted file mode 100644
index 346b563..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/IColorSelectionListener.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-import org.eclipse.swt.graphics.RGB;
-
- 
-public interface IColorSelectionListener {
-	public void handleColorSelection(RGB rgb);
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/LightTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/LightTab.java
deleted file mode 100644
index 701eb9c..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/LightTab.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class LightTab extends OpenGLTab {
-	private float[] materialShininess = { 25.0f };
-	private float[] lightPosition = { 0.0f, 0.0f, 0.0f, 1.0f };
-	private float[][] colorValues = {
-		{ 1.0f, 1.0f, 1.0f, 1.0f },	// light diffuse
-		{ 1.0f, 1.0f, 1.0f, 1.0f },	// light ambient
-		{ 1.0f, 1.0f, 1.0f, 1.0f },	// light specular
-		{ 0.5f, 0.5f, 0.5f, 1.0f },	// light main ambient
-		{ 0.0f, 0.0f, 1.0f, 1.0f },	// material diffuse
-		{ 0.3f, 0.3f, 0.3f, 1.0f },	// material ambient
-		{ 1.0f, 1.0f, 1.0f, 1.0f }	// material specular
-	};
-	private float yPos = 0.0f, xPos = 0.0f, zPos = -20.0f;
-	private int quadratic, sphere;
-	// sourceType values: 0 = light, 1 = material
-	private int sourceType;
-	// lightType values: 0 = diffuse, 1 = ambient, 2 = specular, 3 = main ambient 
-	private int lightType = 0;
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		Group movementGroup = new Group(composite, SWT.NONE);
-		movementGroup.setText("Translation");
-		movementGroup.setLayout(new GridLayout(2, false));
-
-		new Label(movementGroup, SWT.NONE).setText("X:");
-		final Slider xMove = new Slider(movementGroup, SWT.NONE);
-		xMove.setIncrement(1);
-		xMove.setMaximum(22);
-		xMove.setMinimum(0);
-		xMove.setThumb(2);
-		xMove.setPageIncrement(2);
-		xMove.setSelection(10);
-		xMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xPos = xMove.getSelection() - 10;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Y:");
-		final Slider yMove = new Slider(movementGroup, SWT.NONE);
-		yMove.setIncrement(1);
-		yMove.setMaximum(22);
-		yMove.setMinimum(0);
-		yMove.setThumb(2);
-		yMove.setPageIncrement(2);
-		yMove.setSelection(10);
-		yMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yPos = yMove.getSelection() - 10;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Z:");
-		final Slider zMove = new Slider(movementGroup, SWT.NONE);
-		zMove.setIncrement(1);
-		zMove.setMaximum(22);
-		zMove.setMinimum(0);
-		zMove.setThumb(2);
-		zMove.setPageIncrement(2);
-		zMove.setSelection(10);
-		zMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zPos = zMove.getSelection() - 30;
-			}
-		});
-
-		Group positionGroup = new Group(composite, SWT.NONE);
-		positionGroup.setText("Light Position");
-		positionGroup.setLayout(new GridLayout(2, false));
-
-		new Label(positionGroup, SWT.NONE).setText("X:");
-		final Slider lightX = new Slider(positionGroup, SWT.NONE);
-		lightX.setIncrement(1);
-		lightX.setMaximum(22);
-		lightX.setMinimum(0);
-		lightX.setThumb(2);
-		lightX.setPageIncrement(2);
-		lightX.setSelection(10);
-		lightX.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				lightPosition[0] = ((float) lightX.getSelection() * 10) - 100;
-			}
-		});
-
-		new Label(positionGroup, SWT.NONE).setText("Y:");
-		final Slider lightY = new Slider(positionGroup, SWT.NONE);
-		lightY.setIncrement(1);
-		lightY.setMaximum(22);
-		lightY.setMinimum(0);
-		lightY.setThumb(2);
-		lightY.setPageIncrement(2);
-		lightY.setSelection(10);
-		lightY.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				lightPosition[1] = ((float) lightY.getSelection() * 10) - 100;
-			}
-		});
-
-		new Label(positionGroup, SWT.NONE).setText("Z:");
-		final Slider lightZ = new Slider(positionGroup, SWT.NONE);
-		lightZ.setIncrement(1);
-		lightZ.setMaximum(22);
-		lightZ.setMinimum(0);
-		lightZ.setThumb(2);
-		lightZ.setPageIncrement(2);
-		lightZ.setSelection(10);
-		lightZ.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				lightPosition[2] = ((float) lightZ.getSelection() * 10) - 20;
-			}
-		});
-
-		Group lightColorsGroup = new Group(composite, SWT.NONE);
-		lightColorsGroup.setText("Light Colors");
-		lightColorsGroup.setLayout(new GridLayout());
-		GridData data = new GridData(GridData.FILL_BOTH);
-		lightColorsGroup.setLayoutData(data);
-
-		ColorSelectionGroup lightDiffuseButton =
-			new ColorSelectionGroup(lightColorsGroup, SWT.NONE);
-		lightDiffuseButton.setText("Diffuse");
-		lightDiffuseButton.setRGB(
-			new RGB(
-				(int) (colorValues[0][0] * 255),
-				(int) (colorValues[0][1] * 255),
-				(int) (colorValues[0][2] * 255)));
-		lightDiffuseButton
-			.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				colorValues[0][0] = ((float) rgb.red) / 255;
-				colorValues[0][1] = ((float) rgb.green) / 255;
-				colorValues[0][2] = ((float) rgb.blue) / 255;
-				setColorValues();
-			}
-		});
-
-		ColorSelectionGroup lightAmbientButton =
-			new ColorSelectionGroup(lightColorsGroup, SWT.NONE);
-		lightAmbientButton.setText("Ambient");
-		lightAmbientButton.setRGB(
-			new RGB(
-				(int) (colorValues[1][0] * 255),
-				(int) (colorValues[1][1] * 255),
-				(int) (colorValues[1][2] * 255)));
-		lightAmbientButton
-			.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				colorValues[1][0] = ((float) rgb.red) / 255;
-				colorValues[1][1] = ((float) rgb.green) / 255;
-				colorValues[1][2] = ((float) rgb.blue) / 255;
-				setColorValues();
-			}
-		});
-
-		ColorSelectionGroup lightSpecularButton =
-			new ColorSelectionGroup(lightColorsGroup, SWT.NONE);
-		lightSpecularButton.setText("Specular");
-		lightSpecularButton.setRGB(
-			new RGB(
-				(int) (colorValues[2][0] * 255),
-				(int) (colorValues[2][1] * 255),
-				(int) (colorValues[2][2] * 255)));
-		lightSpecularButton
-			.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				colorValues[2][0] = ((float) rgb.red) / 255;
-				colorValues[2][1] = ((float) rgb.green) / 255;
-				colorValues[2][2] = ((float) rgb.blue) / 255;
-				setColorValues();
-			}
-		});
-
-		ColorSelectionGroup lightMainAmbientButton =
-			new ColorSelectionGroup(lightColorsGroup, SWT.NONE);
-		lightMainAmbientButton.setText("Main Ambient");
-		lightMainAmbientButton.setRGB(
-			new RGB(
-				(int) (colorValues[3][0] * 255),
-				(int) (colorValues[3][1] * 255),
-				(int) (colorValues[3][2] * 255)));
-		lightMainAmbientButton
-			.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				colorValues[3][0] = ((float) rgb.red) / 255;
-				colorValues[3][1] = ((float) rgb.green) / 255;
-				colorValues[3][2] = ((float) rgb.blue) / 255;
-				setColorValues();
-			}
-		});
-
-		Group materialColorsGroup = new Group(composite, SWT.NONE);
-		materialColorsGroup.setText("Material Colors");
-		materialColorsGroup.setLayout(new GridLayout());
-		data = new GridData(GridData.FILL_BOTH);
-		materialColorsGroup.setLayoutData(data);
-
-		ColorSelectionGroup materialDiffuseButton =
-			new ColorSelectionGroup(materialColorsGroup, SWT.NONE);
-		materialDiffuseButton.setText("Diffuse");
-		materialDiffuseButton.setRGB(
-			new RGB(
-				(int) (colorValues[4][0] * 255),
-				(int) (colorValues[4][1] * 255),
-				(int) (colorValues[4][2] * 255)));
-		materialDiffuseButton
-			.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				colorValues[4][0] = ((float) rgb.red) / 255;
-				colorValues[4][1] = ((float) rgb.green) / 255;
-				colorValues[4][2] = ((float) rgb.blue) / 255;
-				setColorValues();
-			}
-		});
-
-		ColorSelectionGroup materialAmbientButton =
-			new ColorSelectionGroup(materialColorsGroup, SWT.NONE);
-		materialAmbientButton.setText("Ambient");
-		materialAmbientButton.setRGB(
-			new RGB(
-				(int) (colorValues[5][0] * 255),
-				(int) (colorValues[5][1] * 255),
-				(int) (colorValues[5][2] * 255)));
-		materialAmbientButton
-			.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				colorValues[5][0] = ((float) rgb.red) / 255;
-				colorValues[5][1] = ((float) rgb.green) / 255;
-				colorValues[5][2] = ((float) rgb.blue) / 255;
-				setColorValues();
-			}
-		});
-
-		ColorSelectionGroup materialSpecularButton =
-			new ColorSelectionGroup(materialColorsGroup, SWT.NONE);
-		materialSpecularButton.setText("Specular");
-		materialSpecularButton.setRGB(
-			new RGB(
-				(int) (colorValues[6][0] * 255),
-				(int) (colorValues[6][1] * 255),
-				(int) (colorValues[6][2] * 255)));
-		materialSpecularButton
-			.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				colorValues[6][0] = ((float) rgb.red) / 255;
-				colorValues[6][1] = ((float) rgb.green) / 255;
-				colorValues[6][2] = ((float) rgb.blue) / 255;
-				setColorValues();
-			}
-		});
-
-		new Label(composite, SWT.NONE).setText("Material Shininess:");
-		final Slider shineSlider = new Slider(composite, SWT.NONE);
-		shineSlider.setIncrement(5);
-		shineSlider.setMaximum(102);
-		shineSlider.setMinimum(0);
-		shineSlider.setThumb(2);
-		shineSlider.setPageIncrement(10);
-		shineSlider.setSelection(25);
-		shineSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				materialShininess[0] = shineSlider.getSelection();
-				GL.glMaterialfv(GL.GL_FRONT_AND_BACK,
-					GL.GL_SHININESS,
-					materialShininess);
-			}
-		});
-	}
-
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GLU.gluDeleteQuadric(quadratic);
-		GL.glDeleteLists(sphere, 1);
-	}
-
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Light";
-	}
-
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glClearDepth(1.0);
-		setColorValues();
-		GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_SHININESS, materialShininess);
-		quadratic = GLU.gluNewQuadric();
-		GLU.gluQuadricNormals(quadratic, GLU.GLU_SMOOTH);
-		GL.glHint(GL.GL_LINE_SMOOTH_HINT, GL.GL_NICEST);
-		GL.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
-		GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
-		GL.glPointSize(2.0f);
-		GL.glEnable(GL.GL_LIGHTING);
-		GL.glEnable(GL.GL_LIGHT0);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		sphere = GL.glGenLists(1);
-		GL.glNewList(sphere, GL.GL_COMPILE);
-		GLU.gluSphere(quadratic, 3, 32, 32);
-		GL.glEndList();
-	}
-
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-		GL.glLoadIdentity();
-		GL.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, lightPosition);
-		GL.glTranslatef(xPos, yPos, zPos);
-		GL.glCallList(sphere);
-	}
-
-	/**
-	 * Sets the current color values into the rendered display.
-	 */
-	void setColorValues() {
-		GL.glLightfv(GL.GL_LIGHT0, GL.GL_DIFFUSE, colorValues[0]);
-		GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_DIFFUSE, colorValues[4]);
-		GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT, colorValues[5]);
-		GL.glLightfv(GL.GL_LIGHT0, GL.GL_AMBIENT, colorValues[1]);
-		GL.glLightfv(GL.GL_LIGHT0, GL.GL_SPECULAR, colorValues[2]);
-		GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_SPECULAR, colorValues[6]);
-		GL.glLightModelfv(GL.GL_LIGHT_MODEL_AMBIENT, colorValues[3]);
-		GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_SHININESS, materialShininess);
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/NurbTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/NurbTab.java
deleted file mode 100644
index c25e8c6..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/NurbTab.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class NurbTab extends OpenGLTab {
-	private float xPos = -5.0f, yPos = -5.0f, zPos = -25.0f;
-	private float xRot = 330.0f, yRot = 0.0f, zRot = 0.0f;
-	private int nurb;
-
-	/**
-	 * Returns a 3 dimensional array to store vertex points for the nurb
-	 * surface.
-	 * 
-	 * @return the array
-	 */
-	float[][][] buildNurb() {
-		float[][][] ctrl = new float[4][4][3];
-		for (int i = 0; i < 4; i++) {
-			for (int j = 0; j < 4; j++) {
-				// set the x value
-				ctrl[i][j][0] = 2 * (i + (float) Math.cos(i + j));
-				// set the y value
-				ctrl[i][j][1] = 2 * (j + (float) Math.cos(i + j));
-				// set the z value
-				if ((i == 1 && j == 1) || (i == 2 && j == 2)) {
-					// this makes the hill
-					ctrl[i][j][2] = 6.0f;
-				} else {
-					ctrl[i][j][2] = 0.0f;
-				}
-			}
-		}
-		// sets this particular z value to a large number to make a high
-		// hill
-		ctrl[2][2][2] = 8.0f;
-
-		return ctrl;
-	}
-	
-	/**
-	 * Returns a 1 dimensional array representing the 3 dimensional
-	 * argument.  This result can be passed to the nurb renderer
-	 * 
-	 * @param ctrl source 3D array
-	 * @return 1D array
-	 */
-	float[] convert(float[][][] ctrl) {
-		float[] pts =
-			new float[ctrl.length * ctrl[0].length * ctrl[0][0].length];
-		int row = 0;
-		int col = 0;
-		// set rowIncr to number of columns * depth 
-		int rowIncr = ctrl[0].length * ctrl[0][0].length;
-		// set colIncr to depth 
-		int colIncr = ctrl[0][0].length;
-		// loop through rows 
-		for (int i = 0; i < ctrl.length; i++) {
-			col = 0;
-			// loop through columns
-			for (int j = 0; j < ctrl[0].length; j++) {
-				// loop through to get the depth values
-				for (int k = 0; k < ctrl[0][0].length; k++) {
-					pts[row + col + k] = ctrl[i][j][k];
-				}
-				col += colIncr;
-			}
-			row += rowIncr;
-		}
-		return pts;
-	}
-	
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(final Composite composite) {
-		Group movementGroup = new Group(composite, SWT.NONE);
-		movementGroup.setText("Translation");
-		movementGroup.setLayout(new GridLayout(2, false));
-
-		new Label(movementGroup, SWT.NONE).setText("X:");
-		final Slider xMove = new Slider(movementGroup, SWT.NONE);
-		xMove.setIncrement(1);
-		xMove.setMaximum(12);
-		xMove.setMinimum(0);
-		xMove.setThumb(2);
-		xMove.setPageIncrement(2);
-		xMove.setSelection(5);
-		xMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xPos = xMove.getSelection() - 10;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Y:");
-		final Slider yMove = new Slider(movementGroup, SWT.NONE);
-		yMove.setIncrement(1);
-		yMove.setMaximum(12);
-		yMove.setMinimum(0);
-		yMove.setThumb(2);
-		yMove.setPageIncrement(2);
-		yMove.setSelection(5);
-		yMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yPos = yMove.getSelection() - 10;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Z:");
-		final Slider zMove = new Slider(movementGroup, SWT.NONE);
-		zMove.setIncrement(1);
-		zMove.setMaximum(12);
-		zMove.setMinimum(0);
-		zMove.setThumb(2);
-		zMove.setPageIncrement(2);
-		zMove.setSelection(5);
-		zMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zPos = zMove.getSelection() - 30;
-			}
-		});
-
-		Group rotationGroup = new Group(composite, SWT.NONE);
-		rotationGroup.setText("Rotation");
-		rotationGroup.setLayout(new GridLayout(2, false));
-
-		new Label(rotationGroup, SWT.NONE).setText("X:");
-		final Slider xRotation = new Slider(rotationGroup, SWT.NONE);
-		xRotation.setIncrement(10);
-		xRotation.setMaximum(362);
-		xRotation.setMinimum(0);
-		xRotation.setThumb(2);
-		xRotation.setPageIncrement(20);
-		xRotation.setSelection(330);
-		xRotation.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xRot = xRotation.getSelection();
-			}
-		});
-
-		new Label(rotationGroup, SWT.NONE).setText("Y:");
-		final Slider yRotation = new Slider(rotationGroup, SWT.NONE);
-		yRotation.setIncrement(10);
-		yRotation.setMaximum(362);
-		yRotation.setMinimum(0);
-		yRotation.setThumb(2);
-		yRotation.setPageIncrement(20);
-		yRotation.setSelection(0);
-		yRotation.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yRot = yRotation.getSelection();
-			}
-		});
-
-		new Label(rotationGroup, SWT.NONE).setText("Z:");
-		final Slider zRotation = new Slider(rotationGroup, SWT.NONE);
-		zRotation.setIncrement(10);
-		zRotation.setMaximum(362);
-		zRotation.setMinimum(0);
-		zRotation.setThumb(2);
-		zRotation.setPageIncrement(20);
-		zRotation.setSelection(0);
-		zRotation.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zRot = zRotation.getSelection();
-			}
-		});
-
-		new Label(composite, SWT.NONE).setText("Sampling Tolerance:");
-		final Slider sSlider = new Slider(composite, SWT.NONE);
-		sSlider.setIncrement(1);
-		sSlider.setMaximum(101);
-		sSlider.setMinimum(0);
-		sSlider.setThumb(2);
-		sSlider.setPageIncrement(2);
-		sSlider.setSelection(75);
-		sSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				GLU.gluNurbsProperty(
-					nurb,
-					GLU.GLU_SAMPLING_TOLERANCE,
-					sSlider.getSelection() + 1);
-			}
-		});
-
-		final Button fillButton = new Button(composite, SWT.CHECK);
-		fillButton.setText("Fill");
-		fillButton.setSelection(true);
-		fillButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				if (fillButton.getSelection()) {
-					GLU.gluNurbsProperty(
-						nurb,
-						GLU.GLU_DISPLAY_MODE,
-						GLU.GLU_FILL);
-				} else {
-					GLU.gluNurbsProperty(
-						nurb,
-						GLU.GLU_DISPLAY_MODE,
-						GLU.GLU_OUTLINE_POLYGON);
-				}
-			}
-		});
-		
-		ColorSelectionGroup colorGroup =
-			new ColorSelectionGroup(composite, SWT.NONE);
-		colorGroup.setText("Foreground color");
-		colorGroup.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				GL.glColor3ub((byte) rgb.red, (byte) rgb.green, (byte) rgb.blue);
-			}
-		});
-	}
-	
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GLU.gluDeleteNurbsRenderer(nurb);
-	}
-	
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Nurb";
-	}
-	
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		// set up material color which helps show curves
-		float mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
-		float mat_shininess[] = { 100.0f };
-		GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_SPECULAR, mat_specular);
-		GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_SHININESS, mat_shininess);
-		GL.glColorMaterial(GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT_AND_DIFFUSE);
-		
-		GL.glEnable(GL.GL_LIGHTING);
-		GL.glEnable(GL.GL_LIGHT0);
-		GL.glEnable(GL.GL_COLOR_MATERIAL);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		GL.glEnable(GL.GL_AUTO_NORMAL);
-		GL.glEnable(GL.GL_NORMALIZE);
-		
-		nurb = GLU.gluNewNurbsRenderer();
-
-		GLU.gluNurbsProperty(
-			nurb,
-			GLU.GLU_SAMPLING_METHOD,
-			GLU.GLU_PATH_LENGTH);
-		// sampling tolerance is specific for GLU.GLU_PATH_LENGTH
-		GLU.gluNurbsProperty(nurb, GLU.GLU_SAMPLING_TOLERANCE, 75.0f);
-		GLU.gluNurbsProperty(nurb, GLU.GLU_DISPLAY_MODE, GLU.GLU_FILL);
-	}
-	
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-		GL.glLoadIdentity();
-		// do translation and rotation
-		GL.glTranslatef(xPos, yPos, zPos);
-		GL.glRotatef(xRot, 1.0f, 0.0f, 0.0f);
-		GL.glRotatef(yRot, 0.0f, 1.0f, 0.0f);
-		GL.glRotatef(zRot, 0.0f, 0.0f, 1.0f);
-		// define nurbs surface
-		float[] knots = { 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f };
-		GLU.gluBeginSurface(nurb);
-		GLU.gluNurbsSurface(
-			nurb, 8, knots, 8, knots, 12, 3,
-			convert(buildNurb()), 4, 4, GL.GL_MAP2_VERTEX_3);
-		GLU.gluEndSurface(nurb);
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ObjectsTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ObjectsTab.java
deleted file mode 100644
index 3ef288e..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ObjectsTab.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class ObjectsTab extends OpenGLTab {
-	private class Shape {
-		private String name;
-		private int index;
-		/**
-		 * Constructor.
-		 * 
-		 * @param name the display name of this shape
-		 * @param index the display list index corresponding to this shape
-		 */
-		Shape(String name, int index) {
-			super();
-			this.index = index;
-			this.name = name;
-		}
-		void dispose() {
-			GL.glDeleteLists(index, 1);
-		}
-		void draw() {
-			GL.glCallList(index);
-		}
-		String getName() {
-			return name;
-		}
-	}
-
-	private Shape[] shapes;
-	private Shape currentShape;
-	private float xRot = 0.0f, yRot = 0.0f;
-	private boolean fill = true;
-	private int quadratic;
-	private final static int SLEEP_LENGTH = 50;
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(final Composite composite) {
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		Composite controls = new Composite(composite, SWT.NONE);
-		controls.setLayout(layout);
-		
-		new Label(controls, SWT.NONE).setText("Object:");
-		final Combo objectsCombo = new Combo(controls, SWT.READ_ONLY);
-		for (int i = 0; i < shapes.length; i++) {
-			objectsCombo.add(shapes[i].getName());
-		}
-		objectsCombo.select(0);
-		objectsCombo.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				currentShape = shapes[objectsCombo.getSelectionIndex()];
-			}
-		});
-
-		final Button fillToggleButton = new Button(controls, SWT.CHECK);
-		fillToggleButton.setText("Fill");
-		fillToggleButton.setSelection(true);
-		fillToggleButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				fill = fillToggleButton.getSelection();
-			}
-		});
-		
-		ColorSelectionGroup colorGroup =
-			new ColorSelectionGroup(composite, SWT.NONE);
-		colorGroup.setText("Foreground color");
-		colorGroup.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				GL.glColor3ub((byte) rgb.red, (byte) rgb.green, (byte) rgb.blue);
-			}
-		});
-	}
-
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GLU.gluDeleteQuadric(quadratic);
-		for (int i = 0; i < shapes.length; i++) {
-			shapes [i].dispose();
-		}
-	}
-	
-	/**
-	 * Creates a circle centered at 0,0 in the viewport.
-	 * 
-	 * @param radius
-	 * @param xShrink
-	 * @param yShrink
-	 */
-	void drawCircle(float radius, float xShrink, float yShrink) {
-		GL.glBegin(GL.GL_POLYGON);
-		float dia = (float) 2.0 * (float) Math.PI;
-		for (float angle = 0.0f; angle <= dia; angle += 0.1f) {
-			GL.glVertex2d(radius * Math.cos(angle), radius * Math.sin(angle));
-		}
-		GL.glEnd();
-	}
-	
-	/**
-	 * Creates a cube centered at 0,0 in the viewport.
-	 * 
-	 * @param width
-	 * @param height
-	 * @param depth
-	 */
-	void drawCube(float width, float height, float depth) {
-		GL.glBegin(GL.GL_QUADS);
-		// front
-		GL.glVertex3f(-width, -height, depth);	// bottom left 			
-		GL.glVertex3f(width, -height, depth);	// bottom right
-		GL.glVertex3f(width, height, depth);	// top right
-		GL.glVertex3f(-width, height, depth);	// top left
-		// back
-		GL.glVertex3f(-width, -height, -depth);	// bottom left 			
-		GL.glVertex3f(width, -height, -depth);	// bottom right
-		GL.glVertex3f(width, height, -depth);	// top right
-		GL.glVertex3f(-width, height, -depth);	// top left
-		// left
-		GL.glVertex3f(-width, -height, -depth);	// bottom left				
-		GL.glVertex3f(-width, -height, depth);	// bottom right
-		GL.glVertex3f(-width, height, depth);	// top right
-		GL.glVertex3f(-width, height, -depth);	// top left	
-		// right
-		GL.glVertex3f(width, -height, depth);	// bottom left				
-		GL.glVertex3f(width, -height, -depth);	// bottom right
-		GL.glVertex3f(width, height, -depth);	// top right
-		GL.glVertex3f(width, height, depth);	// top left
-		// top
-		GL.glVertex3f(width, height, -depth);	// back right
-		GL.glVertex3f(-width, height, -depth);	// back left
-		GL.glVertex3f(-width, height, depth);	// front left
-		GL.glVertex3f(width, height, depth);	// front right
-		// bottom
-		GL.glVertex3f(width, -height, depth);	// front right
-		GL.glVertex3f(-width, -height, depth);	// front left
-		GL.glVertex3f(-width, -height, -depth);	// back left
-		GL.glVertex3f(width, -height, -depth);	// back right
-		GL.glEnd();
-	}
-	
-	/**
-	 * Creates a pyramid centered at 0,0 in the viewport.
-	 * 
-	 * @param width
-	 * @param height
-	 * @param depth
-	 */
-	void drawPyramid(float width, float height, float depth) {
-		GL.glBegin(GL.GL_TRIANGLES);
-		// front
-		GL.glVertex3f(0.0f, height, 0.0f);		// top				
-		GL.glVertex3f(-width, -height, depth);	// left	
-		GL.glVertex3f(width, -height, depth);	// right
-		// left
-		GL.glVertex3f(0.0f, height, 0.0f);		// top				
-		GL.glVertex3f(-width, -height, -depth);	// left	
-		GL.glVertex3f(-width, -height, depth);	// right	
-		// front
-		GL.glVertex3f(-width, -height, -depth);	// left	
-		GL.glVertex3f(0.0f, height, 0.0f);		// top						
-		GL.glVertex3f(width, -height, -depth);	// right
-		// right
-		GL.glVertex3f(0.0f, height, 0.0f);		// top				
-		GL.glVertex3f(width, -height, depth);	// left	
-		GL.glVertex3f(width, -height, -depth);	// right			
-		GL.glEnd();
-		GL.glBegin(GL.GL_QUADS);
-		// bottom
-		GL.glVertex3f(-width, -height, depth);	// front left
-		GL.glVertex3f(-width, -height, -depth);	// back left
-		GL.glVertex3f(width, -height, -depth);	// back right
-		GL.glVertex3f(width, -height, depth);	// front right
-		GL.glEnd();
-	}
-	
-	/**
-	 * Creates a square centered at 0,0 in the viewport.
-	 * 
-	 * @param width
-	 * @param height
-	 */
-	void drawSquare(float width, float height) {
-		GL.glBegin(GL.GL_QUADS);
-		GL.glVertex3f(-width, -height, 0.0f);	// bottom left 			
-		GL.glVertex3f(width, -height, 0.0f);	// bottom right
-		GL.glVertex3f(width, height, 0.0f);		// top right
-		GL.glVertex3f(-width, height, 0.0f);	// top left
-		GL.glEnd();
-	}
-	
-	/**
-	 * This method is from glut_shapes.c .
-	 * 
-	 * @param r
-	 * @param R
-	 * @param nsides
-	 * @param rings
-	 */
-	void drawTorus(float r, float R, int nsides, int rings) {
-		float ringDelta = 2.0f * (float) Math.PI / rings;
-		float sideDelta = 2.0f * (float) Math.PI / nsides;
-		float theta = 0.0f;
-		float cosTheta = 1.0f;
-		float sinTheta = 0.0f;
-		
-		for (int i = rings - 1; i >= 0; i--) {
-			float theta1 = theta + ringDelta;
-			float cosTheta1 = (float) Math.cos(theta1);
-			float sinTheta1 = (float) Math.sin(theta1);
-			GL.glBegin(GL.GL_QUAD_STRIP);
-			float phi = 0.0f;
-			
-			for (int j = nsides; j >= 0; j--) {
-				phi += sideDelta;
-				float cosPhi = (float) Math.cos(phi);
-				float sinPhi = (float) Math.sin(phi);
-				float dist = R + r * cosPhi;
-				GL.glNormal3f(cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi);
-				GL.glVertex3f(cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi);
-				GL.glNormal3f(cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi);
-				GL.glVertex3f(cosTheta * dist, -sinTheta * dist, r * sinPhi);
-			}
-			
-			GL.glEnd();
-			theta = theta1;
-			cosTheta = cosTheta1;
-			sinTheta = sinTheta1;
-		}
-	}
-	
-	/**
-	 * Creates a triangle centered at 0,0 in the viewport.
-	 * 
-	 * @param width
-	 * @param height
-	 */
-	void drawTriangle(float width, float height) {
-		GL.glBegin(GL.GL_TRIANGLES);
-		GL.glVertex3f(0.0f, height, 0.0f);		// middle 
-		GL.glVertex3f(-width, -height, 0.0f);	// left 
-		GL.glVertex3f(width, -height, 0.0f);	// right		 		
-		GL.glEnd();
-	}
-	
-	/**
-	 * @see OpenGLTab#getSleepLength()
-	 */
-	int getSleepLength() {
-		return SLEEP_LENGTH;	
-	}
-	
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Objects";
-	}
-	
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glColor3f(1.0f, 0.0f, 0.0f);
-		GL.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
-		GL.glClearDepth(1.0);
-		quadratic = GLU.gluNewQuadric();
-		GLU.gluQuadricNormals(quadratic, GLU.GLU_SMOOTH);
-		GL.glLineWidth(2);
-
-		GL.glEnable(GL.GL_DEPTH_TEST);
-
-		// create the display lists and shapes
-		shapes = new Shape[11];
-		int index = 1;
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawTriangle(2.0f, 2.0f);
-		GL.glEndList();
-		shapes[0] = new Shape("Triangle", index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawPyramid(2.0f, 2.0f, 2.0f);
-		GL.glEndList();
-		shapes[1] = new Shape("Pyramid", index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawSquare(2.0f, 2.0f);
-		GL.glEndList();
-		shapes[2] = new Shape("Square", index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawCube(2.0f, 2.0f, 2.0f);
-		GL.glEndList();
-		shapes[3] = new Shape("Cube", index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawCircle(2.0f, 0.0f, 0.0f);
-		GL.glEndList();
-		shapes[4] = new Shape("Circle", index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		GLU.gluPartialDisk(quadratic, 0.5, 2.0, 18, 18, 90, 125);
-		GL.glEndList();
-		shapes[5] = new Shape("Partial Disk", index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		GLU.gluDisk(quadratic, 0.5, 2.0, 18, 18);
-		GL.glEndList();
-		shapes[6] = new Shape("Disk", index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		drawTorus(1, 2, 18, 18);
-		GL.glEndList();
-		shapes[7] = new Shape("Torus", index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		GLU.gluSphere(quadratic, 2.0, 18, 18);
-		GL.glEndList();
-		shapes[8] = new Shape("Sphere", index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		GLU.gluCylinder(quadratic, 2.0, 2.0, 4, 18, 18);
-		GL.glEndList();
-		shapes[9] = new Shape("Cylinder", index++);
-
-		GL.glNewList(index, GL.GL_COMPILE);
-		GLU.gluCylinder(quadratic, 0, 2.0, 4, 18, 18);
-		GL.glEndList();
-		shapes[10] = new Shape("Cone", index++);
-
-		currentShape = shapes[0];
-	}
-	
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-		GL.glLoadIdentity();
-		GL.glTranslatef(0.0f, 0.0f, -14.0f);
-		// rotate around X and Y axis
-		GL.glRotatef(yRot, 0.0f, 1.0f, 0.0f);
-		GL.glRotatef(xRot, 1.0f, 0.0f, 0.0f);
-		// sets polygon fill mode
-		if (fill) {
-			GL.glPolygonMode(GL.GL_FRONT_AND_BACK, GL.GL_FILL);
-		} else {
-			GL.glPolygonMode(GL.GL_FRONT_AND_BACK, GL.GL_LINE);
-		}
-		currentShape.draw();
-		yRot += 1.5;
-		xRot += 1.5;
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OpenGLExample.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OpenGLExample.java
deleted file mode 100644
index 9e7e10d..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OpenGLExample.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-public class OpenGLExample {
-	private TabFolder tabFolder;
-	private OpenGLTab[] tabs;
-	private int sleep;
-
-	/**
-	 * Renders the scene of the current tab.
-	 */
-	void display() {
-		int index = tabFolder.getSelectionIndex();
-		tabs[index].render();
-		tabs[index].swap();
-	}
-	
-	/**
-	 * Disposes of all contained tabs.
-	 */
-	void dispose() {
-		tabFolder = null;
-		for (int i = 0; i < tabs.length; i++) {
-			tabs[i].dispose();
-		}
-	}
-
-	/**
-	 * Runs the OpenGL example
-	 */
-	void run() {
-		final Display display = new Display();
-		final Shell shell =
-			new Shell(display, SWT.SHELL_TRIM | SWT.NO_BACKGROUND);
-		shell.setLayout(new FillLayout());
-
-		tabFolder = new TabFolder(shell, SWT.NONE);
-		tabs =
-			new OpenGLTab[] {
-				new AntialiasingTab(),
-				new AreaTab(),
-				new BezierTab(),
-				new BitmapTextTab(),
-				new FogTab(),
-				new GradientTab(),
-				new LightTab(),
-				new NurbTab(),
-				new ObjectsTab(),
-				// outline tab is windows specific
-				new OutlineTextTab (),
-				new ReflectionTab(),
-				new StencilTab(),
-				new TextureTab(),
-				new TransparencyTab()};
-				
-		for (int i = 0; i < tabs.length; i++) {
-			TabItem item = new TabItem(tabFolder, SWT.NONE);
-			item.setText(tabs[i].getTabText());
-			item.setControl(tabs[i].createTabFolderPage(tabFolder));
-		}
-		
-		tabFolder.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				OpenGLTab tab = tabs[tabFolder.getSelectionIndex()];
-				tab.setCurrent();
-				sleep = tab.getSleepLength();
-			}
-		});
-		if (tabs.length > 0) {
-			tabs[0].setCurrent();
-			sleep = tabs[0].getSleepLength();
-		}
-		
-		shell.setText("OpenGL Example");
-		Runnable timer = new Runnable() {
-			public void run() {
-				if (shell.isDisposed()) return;
-				display();
-				display.timerExec(sleep, this);
-			}
-		};
-		timer.run();
-		shell.addListener(SWT.Dispose, new Listener() {
-			public void handleEvent(Event e) {
-				dispose();
-			}
-		});
-		shell.open();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-	}
-	
-	/**
-	 * Invokes as a standalone program.
-	 */
-	public static void main(String[] args) {
-		new OpenGLExample().run();
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OpenGLTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OpenGLTab.java
deleted file mode 100644
index d8523b9..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OpenGLTab.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-
-/**
- * <code>OpenGLTab</code> is the abstract superclass of every page
- * in the example's tab folder.  Each page in the tab folder
- * displays a different example.
- *
- * An OpenGLTab itself is not a control but instead provides a hierarchy
- * with which to share code that is common to every page in the folder.
- */
-abstract class OpenGLTab {
-	private Canvas glCanvas;
-	private Composite tabFolderPage;
-	private GLContext context;
-	private boolean stencilSupport;
-	private final static int DEFAULT_SLEEP_LENGTH = 100;
-
-	/**
-	 * Creates this tab's controls.  Subclasses must override.
-	 *
-	 * @param composite the parent composite
-	 */
-	abstract void createControls(Composite composite);
-
-	/**
-	 * Creates the OpenGL canvas on which all drawing is done.
-	 */
-	void createOpenGLContext() {
-		context = new GLContext(glCanvas);
-		setCurrent();
-		setupViewingArea();
-	}
-
-	/**
-	 * Creates the tab folder page.
-	 *
-	 * @param tabFolder the parent tab folder
-	 * @return the new page
-	 */
-	Composite createTabFolderPage(TabFolder tabFolder) {
-		tabFolderPage = new Composite(tabFolder, SWT.NONE);
-		tabFolderPage.setLayout(new GridLayout(2, false));
-
-		GridData gridData = new GridData();
-		gridData.heightHint = 400;
-		gridData.widthHint = 400;
-		gridData.verticalAlignment = GridData.BEGINNING;
-		glCanvas = new Canvas(tabFolderPage, SWT.NONE);
-		glCanvas.setLayout(new GridLayout());
-		glCanvas.setLayoutData(gridData);
-		glCanvas.setSize(400, 400);		// needed for windows
-
-		gridData = new GridData();
-		gridData.verticalAlignment = GridData.BEGINNING;
-		Composite controlComposite = new Composite(tabFolderPage, SWT.NONE);
-		controlComposite.setLayout(new GridLayout());
-		controlComposite.setLayoutData(gridData);
-
-		// create the OpenGL Screen and controls
-		createOpenGLContext();
-
-		// determine if native stencil support is available
-		int[] param = new int[1];
-		GL.glGetIntegerv(GL.GL_STENCIL_BITS, param);
-		stencilSupport = param[0] != 0;
-
-		init();
-
-		if (!isStencilSupportNeeded() || hasStencilSupport()) {
-			createControls(controlComposite);
-		} else {
-			Label label = new Label(controlComposite, SWT.NONE);
-			label.setText("This tab requires native stencil support.");
-		}
-
-		return tabFolderPage;
-	}
-
-	/**
-	 * Disposes all resources allocated by this tab.
-	 */
-	void dispose() {
-		context.dispose();
-	}
-
-	/**
-	 * Returns the context for this tab.
-	 * 
-	 * @return GLContext
-	 */
-	GLContext getContext() {
-		return context;
-	}
-
-	/**
-	 * Returns the glCanvas for this tab.
-	 * 
-	 * @return Canvas
-	 */
-	Canvas getGlCanvas() {
-		return glCanvas;
-	}
-
-	/**
-	 * Returns the length of time in milliseconds that the example
-	 * should sleep between animation redraws.  As this length
-	 * increases, user responsiveness increases and the frequency of
-	 * animation redraws decreases.  Subclasses with moving animations
-	 * may wish to override this default implementation to return a
-	 * smaller value if their animations do not occur frequently enough. 
-	 *
-	 * @return the length of time in milliseconds to sleep between redraws
-	 */
-	int getSleepLength() {
-		return DEFAULT_SLEEP_LENGTH;	
-	}
-
-	/**
-	 * Returns the text for this tab.  Subclasses must override.
-	 *
-	 * @return the text for the tab item
-	 */
-	abstract String getTabText();
-
-	/**
-	 * Returns whether this machine has native stencils support.
-	 * 
-	 * @return boolean
-	 */
-	boolean hasStencilSupport() {
-		return stencilSupport;
-	}
-
-	/**
-	 * Initialize OpenGL resources for this tab.  Subclasses must override.
-	 */
-	abstract void init();
-
-	/**
-	 * Loads a texture.
-	 * 
-	 * @param context
-	 * @param fileName
-	 * @param index
-	 * @param texture[]
-	 */
-	static void loadTexture(GLContext context, String fileName, int index, int[] texture) {
-		GL.glBindTexture(GL.GL_TEXTURE_2D, texture[index]);
-		ImageData source =
-			new ImageData(OpenGLTab.class.getResourceAsStream(fileName));
-		Image image = new Image(Display.getCurrent(), source);
-		Image newImage = new Image(Display.getCurrent(), 256, 256);
-		GC gc = new GC(newImage);
-		gc.drawImage(image, 0, 0, source.width, source.height, 0, 0, 256, 256);
-		source = newImage.getImageData();
-		gc.dispose();
-		source = context.convertImageData(source);
-		newImage.dispose();
-		image.dispose();
-		GL.glTexImage2D(
-			GL.GL_TEXTURE_2D, 0, 3, 
-			source.width, source.height, 0,
-			GL.GL_RGB, GL.GL_UNSIGNED_BYTE, source.data);
-		GL.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR);
-		GL.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR);
-	}
-
-	/**
-	 * Renders this tab.
-	 */
-	void render() {
-		if (!isStencilSupportNeeded() || hasStencilSupport()) {
-			renderScene();
-		} else {
-			GL.glClear(GL.GL_COLOR_BUFFER_BIT);
-		}
-	}
-
-	/**
-	 * Renders the scene for this tab.  Subclasses must override.
-	 */
-	abstract void renderScene();
-
-	/**
-	 * Returns whether this tab requires stencil support in order to display
-	 * properly. Subclasses may wish to override this method.
-	 * 
-	 * @return boolean
-	 */
-	boolean isStencilSupportNeeded() {
-		return false;
-	}
-
-	/**
-	 * Sets this rendering context to be current.
-	 */
-	void setCurrent() {
-		context.setCurrent();
-	}
-	
-	/**
-	 * Sets up the viewing area for the OpenGL screen.  The default
-	 * behavior is to use a perspective view, but there also exist frustrum
-	 * and ortho views.  Subclasses may wish to override this method.
-	 */
-	void setupViewingArea() {
-		Rectangle rect = glCanvas.getClientArea();
-		int width = rect.width;
-		int height = rect.height;
-		height = Math.max(height, 1);
-		GL.glViewport(0, 0, width, height);
-		GL.glMatrixMode(GL.GL_PROJECTION);	// select the projection matrix
-		GL.glLoadIdentity();				// reset the projection matrix
-		float fAspect = (float) width / (float) height;
-		GLU.gluPerspective(45.0f, fAspect, 0.5f, 400.0f);
-		GL.glMatrixMode(GL.GL_MODELVIEW);	// select the modelview matrix
-		GL.glLoadIdentity();
-	}
-
-	/**
-	 * Swaps the buffers.
-	 */
-	void swap() {
-		context.swapBuffers();
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OutlineTextTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OutlineTextTab.java
deleted file mode 100644
index 0742f00..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OutlineTextTab.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class OutlineTextTab extends OpenGLTab {
-	private Text messageText;
-	private FontData fontData;
-	private float[] textColor = { 1.0f, 0.0f, 0.0f };
-	private boolean fill = true;
-	private float extrude = 0.0f;
-	private float xPos = 0.0f, yPos = 0.0f, zPos = -10.0f;
-	private float xRot = 0.0f;
-	private int listIndexBase;
-	private final static int LIST_INDEX_SIZE = 256;
-	private final static int DEFAULT_FONT_SIZE = 24;
-	private final static String DEFAULT_FONT_NAME = "Arial";
-	private final static int SLEEP_LENGTH = 50;
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(final Composite composite) {
-		if (!SWT.getPlatform().startsWith("win32")) {
-			new Label(composite, SWT.NONE).setText("This tab requires win32.");
-			return;
-		}
-		
-		Group movementGroup = new Group(composite, SWT.NONE);
-		movementGroup.setText("Translation");
-		movementGroup.setLayout(new GridLayout(2, false));
-
-		new Label(movementGroup, SWT.NONE).setText("X:");
-		final Slider xMove = new Slider(movementGroup, SWT.NONE);
-		xMove.setIncrement(1);
-		xMove.setMaximum(22);
-		xMove.setMinimum(0);
-		xMove.setThumb(2);
-		xMove.setPageIncrement(2);
-		xMove.setSelection(10);
-		xMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xPos = xMove.getSelection() - 10;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Y:");
-		final Slider yMove = new Slider(movementGroup, SWT.NONE);
-		yMove.setIncrement(1);
-		yMove.setMaximum(22);
-		yMove.setMinimum(0);
-		yMove.setThumb(2);
-		yMove.setPageIncrement(2);
-		yMove.setSelection(10);
-		yMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yPos = yMove.getSelection() - 10;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Z:");
-		final Slider zMove = new Slider(movementGroup, SWT.NONE);
-		zMove.setIncrement(1);
-		zMove.setMaximum(22);
-		zMove.setMinimum(0);
-		zMove.setThumb(2);
-		zMove.setPageIncrement(2);
-		zMove.setSelection(10);
-		zMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zPos = zMove.getSelection() - 20;
-			}
-		});
-
-		Composite textGroup = new Composite(composite,SWT.NONE);
-		GridLayout layout = new GridLayout(2,false);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		textGroup.setLayout(layout);
-		textGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		
-		new Label(textGroup, SWT.NONE).setText("Text:");
-		messageText = new Text(textGroup, SWT.BORDER);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		data.grabExcessHorizontalSpace = true;
-		messageText.setLayoutData(data);
-		messageText.setText("OpenGL - SWT");
-		
-		new Label(composite, SWT.NONE).setText("Extrude:");
-		final Slider extrudeSlider = new Slider(composite, SWT.NONE);
-		extrudeSlider.setIncrement(1);
-		extrudeSlider.setMaximum(22);
-		extrudeSlider.setMinimum(0);
-		extrudeSlider.setThumb(2);
-		extrudeSlider.setPageIncrement(2);
-		extrudeSlider.setSelection(0);
-		extrudeSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				extrude = (float) extrudeSlider.getSelection() / 10;
-				getContext().loadOutlineFont(
-					fontData, extrudeSlider.getDisplay(),
-					listIndexBase, 0, 255, 0.0f, extrude,
-					fill ? GL.GL_POLYGON : GL.GL_LINE,
-					null);
-			}
-		});
-
-		final Button fontSelectButton = new Button(composite, SWT.NONE);
-		fontSelectButton.setText("Set Font");
-		final ColorSelectionGroup colorGroup =
-			new ColorSelectionGroup(composite, SWT.NONE);
-		colorGroup.setText("Text color");
-		colorGroup.addColorSelectionListener(new IColorSelectionListener() {
-			public void handleColorSelection(RGB rgb) {
-				GL.glColor3ub((byte) rgb.red, (byte) rgb.green, (byte) rgb.blue);
-			}
-		});
-		
-		fontSelectButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				FontDialog fontDialog = new FontDialog(fontSelectButton.getShell());
-				fontDialog.setText("Choose Font Options");
-				double[] currentColor = new double[4];
-				GL.glGetDoublev(GL.GL_CURRENT_COLOR, currentColor);
-				fontDialog.setRGB(
-					new RGB(
-						(int) currentColor[0] * 255,
-						(int) currentColor[1] * 255,
-						(int) currentColor[2] * 255));
-				fontDialog.setFontData(fontData);
-				FontData result = fontDialog.open();
-				if (result != null) {
-					fontData = result;
-					RGB rgb = fontDialog.getRGB();
-					GL.glColor3ub((byte) rgb.red, (byte) rgb.green, (byte) rgb.blue);
-					colorGroup.setRGB(rgb);
-					getContext().loadOutlineFont(
-						fontData, fontSelectButton.getDisplay(),
-						listIndexBase, 0, 255, 0.0f, extrude,
-						fill ? GL.GL_POLYGON : GL.GL_LINE,
-						null);
-				}
-			}
-		});
-
-		final Button fillButton = new Button(composite, SWT.CHECK);
-		fillButton.setText("Fill");
-		fillButton.setSelection(true);
-		fillButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				fill = fillButton.getSelection();
-				getContext().loadOutlineFont(
-					fontData, fillButton.getDisplay(),
-					listIndexBase, 0, 255, 0.0f, extrude,
-					fill ? GL.GL_POLYGON : GL.GL_LINE,
-					null);
-			}
-		});
-	}
-
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GL.glDeleteLists(listIndexBase, LIST_INDEX_SIZE);
-	}
-
-	/**
-	 * Draws the text to the screen
-	 * 
-	 * @param string the text to draw
-	 */
-	void drawText(String string) {
-		char[] stringChars = string.toCharArray();
-		int[] text = new int[stringChars.length];
-		for (int i = 0; i < text.length; i++) {
-			text[i] = (int) stringChars[i];
-		}
-		GL.glPushAttrib(GL.GL_LIST_BIT);
-		GL.glListBase(listIndexBase);
-		GL.glCallLists(text.length, GL.GL_UNSIGNED_INT, text);
-		GL.glPopAttrib();
-	}
-
-	/**
-	 * @see OpenGLTab#getSleepLength()
-	 */
-	int getSleepLength() {
-		return SLEEP_LENGTH;
-	}
-
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Outline Text";
-	}
-
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glColor3fv(textColor);
-		GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		GL.glEnable(GL.GL_BLEND);
-		// build the initial font
-		listIndexBase = GL.glGenLists(LIST_INDEX_SIZE);
-		fontData = new FontData();
-		fontData.setHeight(DEFAULT_FONT_SIZE);
-		fontData.setName(DEFAULT_FONT_NAME);
-		getContext().loadOutlineFont(
-			fontData, getGlCanvas().getDisplay(),
-			listIndexBase, 0, 255, 0f, extrude,
-			fill ? GL.GL_POLYGON : GL.GL_LINE,
-			null);
-	}
-
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-		GL.glLoadIdentity();
-		GL.glTranslatef(xPos, yPos, zPos);
-		GL.glRotatef(xRot, 1.0f, 0.0f, 0.0f); // rotate on X axis
-		// use GL.glScalef to change size since outline fonts
-		// don't support size
-		float size = (float) fontData.getHeight() / 24;
-		GL.glScalef(size, size, 1.0f);
-		// draw the text, assuming that we're running on win32
-		if (messageText != null) drawText(messageText.getText());
-		xRot += 1.2f;
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ReflectionTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ReflectionTab.java
deleted file mode 100644
index 883bda0..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ReflectionTab.java
+++ /dev/null
@@ -1,556 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class ReflectionTab extends OpenGLTab {
-	private float ballY = 0.0f;
-	private float ballZ = 1.6666666f;
-	private float ballX = 0.0f;
-	private float ballRot = 0.0f;
-	private float cubeX = 2.5f;
-	private float cubeY = -2.0f;
-	private float cubeZ = 2.0f;
-	private float xPos = 0.0f;
-	private float yPos = 0.0f;
-	private float zPos = 22.0f;
-	private float ballRotSpeed = 0.0f;
-	private int quadratic;
-	private int[] textures = new int[3];
-	private final static int
-		LIST_INDEX_BALL = 1,LIST_INDEX_BOX = 2,
-		LIST_INDEX_MIRROR = 3, LIST_INDEX_ROOM = 4;
-	private final static int
-		TEXTURE_INDEX_BALL = 0, TEXTURE_INDEX_FLOOR = 1,
-		TEXTURE_INDEX_BOX = 2;
-	private final static String[] IMAGES = {
-		"images/Ball.jpg", "images/Floor.jpg", "images/Box.bmp" };
-	private final static int SLEEP_LENGTH = 50;
-
-	/**
-	 * Draws the ball
-	 */
-	void createBall() {
-		GL.glNewList(LIST_INDEX_BALL, GL.GL_COMPILE);
-		GL.glColor3f(1.0f, 1.0f, 1.0f);
-		GL.glBindTexture(GL.GL_TEXTURE_2D, textures[TEXTURE_INDEX_BALL]);
-		GLU.gluSphere(quadratic, 0.35f, 32, 16);
-		GL.glDisable(GL.GL_BLEND);
-		GL.glEndList();
-	}
-
-	/**
-	 * Draws the box
-	 */
-	void createBox() {
-		float size = 1.0f;
-		GL.glNewList(LIST_INDEX_BOX, GL.GL_COMPILE);
-		GL.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glBindTexture(GL.GL_TEXTURE_2D, textures[TEXTURE_INDEX_BOX]);
-		GL.glBegin(GL.GL_QUADS);
-		// front	
-		GL.glNormal3f(0.0f, 0.0f, 1.0f);
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(-size, -size, size);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(size, -size, size);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(size, size, size);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(-size, size, size);
-		// back	
-		GL.glNormal3f(0.0f, 0.0f, -1.0f);
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(-size, -size, -size);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(size, -size, -size);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(size, size, -size);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(-size, size, -size);
-		// left	
-		GL.glNormal3f(-1.0f, 0.0f, 0.0f);
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(-size, -size, -size);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(-size, -size, size);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(-size, size, size);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(-size, size, -size);
-		// right	
-		GL.glNormal3f(1.0f, 0.0f, 0.0f);
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(size, -size, -size);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(size, -size, size);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(size, size, size);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(size, size, -size);
-		// top	
-		GL.glNormal3f(0.0f, 1.0f, 0.0f);
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(size, size, -size);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(-size, size, -size);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(-size, size, size);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(size, size, size);
-		// bottom	
-		GL.glNormal3f(0.0f, -1.0f, 0.0f);
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(size, -size, -size);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(-size, -size, -size);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(-size, -size, size);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(size, -size, size);
-		GL.glEnd();
-		GL.glEndList();
-	}
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		Group ballTranslation = new Group(composite, SWT.NONE);
-		ballTranslation.setLayout(new GridLayout(2, false));
-		ballTranslation.setText("Ball Translation");
-
-		new Label(ballTranslation, SWT.NONE).setText("X:");
-		final Slider ballXPosSlider = new Slider(ballTranslation, SWT.NONE);
-		ballXPosSlider.setIncrement(1);
-		ballXPosSlider.setMaximum(38);
-		ballXPosSlider.setMinimum(0);
-		ballXPosSlider.setThumb(2);
-		ballXPosSlider.setPageIncrement(2);
-		ballXPosSlider.setSelection(18);
-		ballXPosSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				ballX = (float) (ballXPosSlider.getSelection() - 18) / 5;
-			}
-		});
-
-		new Label(ballTranslation, SWT.NONE).setText("Y:");
-		final Slider ballYPosSlider = new Slider(ballTranslation, SWT.NONE);
-		ballYPosSlider.setIncrement(1);
-		ballYPosSlider.setMaximum(38);
-		ballYPosSlider.setMinimum(0);
-		ballYPosSlider.setThumb(2);
-		ballYPosSlider.setPageIncrement(2);
-		ballYPosSlider.setSelection(18);
-		ballYPosSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				ballY = (float) (ballYPosSlider.getSelection() - 18) / 5;
-			}
-		});
-
-		new Label(ballTranslation, SWT.NONE).setText("Z:");
-		final Slider ballZPosSlider = new Slider(ballTranslation, SWT.NONE);
-		ballZPosSlider.setIncrement(1);
-		ballZPosSlider.setMaximum(24);
-		ballZPosSlider.setMinimum(0);
-		ballZPosSlider.setThumb(1);
-		ballZPosSlider.setPageIncrement(2);
-		ballZPosSlider.setSelection(4);
-		ballZPosSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				ballZ = (float) (ballZPosSlider.getSelection() + 1) / 3;
-			}
-		});
-
-		Group cubeTranslation = new Group(composite, SWT.NONE);
-		cubeTranslation.setLayout(new GridLayout(2, false));
-		cubeTranslation.setText("Cube Translation");
-
-		new Label(cubeTranslation, SWT.NONE).setText("X:");
-		final Slider cubeXPosSlider = new Slider(cubeTranslation, SWT.NONE);
-		cubeXPosSlider.setIncrement(1);
-		cubeXPosSlider.setMaximum(14);
-		cubeXPosSlider.setMinimum(0);
-		cubeXPosSlider.setThumb(2);
-		cubeXPosSlider.setPageIncrement(2);
-		cubeXPosSlider.setSelection(11);
-		cubeXPosSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				cubeX = (float) (cubeXPosSlider.getSelection() - 6) / 2;
-			}
-		});
-
-		new Label(cubeTranslation, SWT.NONE).setText("Y:");
-		final Slider cubeYPosSlider = new Slider(cubeTranslation, SWT.NONE);
-		cubeYPosSlider.setIncrement(1);
-		cubeYPosSlider.setMaximum(14);
-		cubeYPosSlider.setMinimum(0);
-		cubeYPosSlider.setThumb(2);
-		cubeYPosSlider.setPageIncrement(2);
-		cubeYPosSlider.setSelection(2);
-		cubeYPosSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				cubeY = (float) (cubeYPosSlider.getSelection() - 6) / 2;
-			}
-		});
-
-		new Label(cubeTranslation, SWT.NONE).setText("Z:");
-		final Slider cubeZPosSlider = new Slider(cubeTranslation, SWT.NONE);
-		cubeZPosSlider.setIncrement(1);
-		cubeZPosSlider.setMaximum(10);
-		cubeZPosSlider.setMinimum(1);
-		cubeZPosSlider.setThumb(1);
-		cubeZPosSlider.setPageIncrement(2);
-		cubeZPosSlider.setSelection(2);
-		cubeZPosSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				cubeZ = (float) (cubeZPosSlider.getSelection() + 2) / 2;
-			}
-		});
-
-		Group movementGroup = new Group(composite, SWT.NONE);
-		movementGroup.setLayout(new GridLayout(2, false));
-		movementGroup.setText("Room Rotation");
-
-		new Label(movementGroup, SWT.NONE).setText("X:");
-		final Slider screenXPosSlider = new Slider(movementGroup, SWT.NONE);
-		screenXPosSlider.setIncrement(1);
-		screenXPosSlider.setMaximum(42);
-		screenXPosSlider.setMinimum(0);
-		screenXPosSlider.setThumb(2);
-		screenXPosSlider.setPageIncrement(2);
-		screenXPosSlider.setSelection(20);
-		screenXPosSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xPos = screenXPosSlider.getSelection() - 20;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Y:");
-		final Slider screenYPosSlider = new Slider(movementGroup, SWT.NONE);
-		screenYPosSlider.setIncrement(1);
-		screenYPosSlider.setMaximum(42);
-		screenYPosSlider.setMinimum(0);
-		screenYPosSlider.setThumb(2);
-		screenYPosSlider.setPageIncrement(2);
-		screenYPosSlider.setSelection(20);
-		screenYPosSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yPos = screenYPosSlider.getSelection() - 20;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Z:");
-		final Slider screenZPosSlider = new Slider(movementGroup, SWT.NONE);
-		screenZPosSlider.setIncrement(1);
-		screenZPosSlider.setMaximum(42);
-		screenZPosSlider.setMinimum(0);
-		screenZPosSlider.setThumb(2);
-		screenZPosSlider.setPageIncrement(2);
-		screenZPosSlider.setSelection(20);
-		screenZPosSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zPos = screenZPosSlider.getSelection() + 2;
-			}
-		});
-
-		new Label(composite, SWT.NONE).setText("Ball Rotation Speed:");
-		final Slider ballRotSlider = new Slider(composite, SWT.NONE);
-		ballRotSlider.setIncrement(1);
-		ballRotSlider.setMaximum(22);
-		ballRotSlider.setMinimum(0);
-		ballRotSlider.setThumb(2);
-		ballRotSlider.setPageIncrement(2);
-		ballRotSlider.setSelection(0);
-		ballRotSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				ballRotSpeed = ballRotSlider.getSelection();
-			}
-		});
-	}
-	
-	/**
-	 * Draws the mirror
-	 */
-	void createMirror() {
-		GL.glNewList(LIST_INDEX_MIRROR, GL.GL_COMPILE);
-		GL.glDisable(GL.GL_TEXTURE_2D);
-		GL.glColor4f(1.0f, 1.0f, 1.0f, 0.4f);
-		GL.glNormal3f(0.0f, 0.0f, 1.0f);
-		GL.glBegin(GL.GL_QUADS);
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(-2.0f, 2.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(-2.0f, -2.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(2.0f, -2.0f, 0.0f);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(2.0f, 2.0f, 0.0f);
-		GL.glEnd();
-		GL.glEnable(GL.GL_TEXTURE_2D);
-		GL.glEndList();
-	}
-	
-	/**
-	 * Draws the room
-	 */
-	void createRoom() {
-		GL.glNewList(LIST_INDEX_ROOM, GL.GL_COMPILE);
-		GL.glDisable(GL.GL_TEXTURE_2D);
-		GL.glBegin(GL.GL_QUADS);
-		// left wall
-		GL.glNormal3f(1.0f, 0.0f, 0.0f);
-		GL.glVertex3f(-4.0f, 4.0f, 0.0f);
-		GL.glVertex3f(-4.0f, 4.0f, 6.0f);
-		GL.glVertex3f(-4.0f, -4.0f, 6.0f);
-		GL.glVertex3f(-4.0f, -4.0f, 0.0f);
-		// right wall
-		GL.glNormal3f(-1.0f, 0.0f, 01.0f);
-		GL.glVertex3f(4.0f, 4.0f, 0.0f);
-		GL.glVertex3f(4.0f, 4.0f, 6.0f);
-		GL.glVertex3f(4.0f, -4.0f, 6.0f);
-		GL.glVertex3f(4.0f, -4.0f, 0.0f);
-		// ceiling	
-		GL.glNormal3f(0.0f, -1.0f, 0.0f);
-		GL.glColor3f(0.9f, 0.9f, 0.9f);
-		GL.glVertex3f(-4.0f, 4.0f, 0.0f);
-		GL.glVertex3f(-4.0f, 4.0f, 6.0f);
-		GL.glVertex3f(4.0f, 4.0f, 6.0f);
-		GL.glVertex3f(4.0f, 4.0f, 0.0f);
-		GL.glEnd();
-		// back wall with triangle strip to illiminate t-intersections 
-		GL.glBegin(GL.GL_TRIANGLE_STRIP);
-		GL.glNormal3f(0.0f, 0.0f, 1.0f);
-		GL.glVertex3d(-4.0, -4.0, 0.0);
-		GL.glVertex3d(-2.2, -4.0, 0.0);
-		GL.glVertex3d(-2.2, -2.2, 0.0);
-		GL.glVertex3d(2.2, -4.0, 0.0);
-		GL.glVertex3d(2.2, -2.2, 0.0);
-		GL.glVertex3d(4.0, -4.0, 0.0);
-		GL.glVertex3d(2.2, -2.2, 0.0);
-		GL.glVertex3d(4.0, -2.2, 0.0);
-		GL.glVertex3d(2.2, 2.2, 0.0);
-		GL.glVertex3d(4.0, 2.2, 0.0);
-		GL.glVertex3d(2.2, 2.2, 0.0);
-		GL.glVertex3d(4.0, 4.0, 0.0);
-		GL.glVertex3d(2.2, 2.2, 0.0);
-		GL.glVertex3d(2.2, 4.0, 0.0);
-		GL.glVertex3d(-2.2, 2.2, 0.0);
-		GL.glVertex3d(-2.2, 4.0, 0.0);
-		GL.glVertex3d(-4.0, 4.0, 0.0);
-		GL.glVertex3d(-2.2, 2.2, 0.0);
-		GL.glVertex3d(-4.0, 2.2, 0.0);
-		GL.glVertex3d(-2.2, -2.2, 0.0);
-		GL.glVertex3d(-4.0, -2.2, 0.0);
-		GL.glVertex3d(-4.0, -4.0, 0.0);
-		GL.glEnd();
-		GL.glEnable(GL.GL_TEXTURE_2D);
-		// draw floor
-		GL.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glBindTexture(GL.GL_TEXTURE_2D, textures[TEXTURE_INDEX_FLOOR]);
-		GL.glNormal3f(0.0f, 1.0f, 0.0f);
-		GL.glBegin(GL.GL_QUADS);
-		// floor
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(-4.0f, -4.0f, 6.0f);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(-4.0f, -4.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(4.0f, -4.0f, 0.0f);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(4.0f, -4.0f, 6.0f);
-		GL.glEnd();
-		// draw mirror frame
-		GL.glBindTexture(GL.GL_TEXTURE_2D, textures[TEXTURE_INDEX_BOX]);
-		GL.glNormal3f(0.0f, 0.0f, 1.0f);
-		GL.glBegin(GL.GL_QUADS);
-		// top
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(-2.2f, 2.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(2.2f, 2.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(2.2f, 2.2f, 0.0f);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(-2.2f, 2.2f, 0.0f);
-		// right
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(2.0f, 2.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(2.0f, -2.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(2.2f, -2.0f, 0.0f);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(2.2f, 2.0f, 0.0f);
-		// bottom
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(-2.2f, -2.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(2.2f, -2.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(2.2f, -2.2f, 0.0f);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(-2.2f, -2.2f, 0.0f);
-		// left
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(-2.0f, 2.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(-2.0f, -2.0f, 0.0f);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(-2.2f, -2.0f, 0.0f);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(-2.2f, 2.0f, 0.0f);
-		GL.glEnd();
-		GL.glEndList();
-	}
-
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GLU.gluDeleteQuadric(quadratic);
-		GL.glDeleteLists(LIST_INDEX_BALL, 1);
-		GL.glDeleteLists(LIST_INDEX_BOX, 1);
-		GL.glDeleteLists(LIST_INDEX_MIRROR, 1);
-		GL.glDeleteLists(LIST_INDEX_ROOM, 1);
-	}
-
-	/**
-	 * @see OpenGLTab#getSleepLength()
-	 */
-	int getSleepLength() {
-		return SLEEP_LENGTH;
-	}
-	
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Reflection";
-	}
-
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		if (!hasStencilSupport()) return;
-
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glClearDepth(1.0f);
-		GL.glClearStencil(0);
-		GL.glGenTextures(IMAGES.length, textures);
-		for (int i = 0; i < IMAGES.length; i++) {
-			loadTexture(getContext(), IMAGES[i], i, textures);
-		}
-
-		GL.glShadeModel(GL.GL_SMOOTH);
-		quadratic = GLU.gluNewQuadric();
-		GLU.gluQuadricNormals(quadratic, GL.GL_SMOOTH);
-		GLU.gluQuadricTexture(quadratic, true);
-		GL.glDepthFunc(GL.GL_LEQUAL);
-		GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
-		GL.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
-
-		// set up the lights
-		float[] LightAmb = { 0.7f, 0.7f, 0.7f, 1.0f };
-		float[] LightDif = { 1.0f, 1.0f, 1.0f, 1.0f };
-		float[] lightsAmbient = { 0.5f, 0.5f, 0.5f, 1.0f };
-		GL.glLightModelfv(GL.GL_LIGHT_MODEL_AMBIENT, lightsAmbient);
-		GL.glLightfv(GL.GL_LIGHT0, GL.GL_AMBIENT, LightAmb);
-		GL.glLightfv(GL.GL_LIGHT0, GL.GL_DIFFUSE, LightDif);
-
-		GL.glEnable(GL.GL_LIGHT0);
-		GL.glEnable(GL.GL_LIGHTING);
-		GL.glEnable(GL.GL_LINE_SMOOTH);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		GL.glEnable(GL.GL_TEXTURE_2D);
-		GL.glEnable(GL.GL_BLEND);
-
-		createRoom();
-		createBall();
-		createBox();
-		createMirror();
-	}
-
-	/**
-	 * @see OpenGLTab#isStencilSupportNeeded
-	 */
-	boolean isStencilSupportNeeded() {
-		return true;
-	}
-
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(
-			GL.GL_COLOR_BUFFER_BIT
-				| GL.GL_DEPTH_BUFFER_BIT
-				| GL.GL_STENCIL_BUFFER_BIT);
-
-		GL.glLoadIdentity();
-		GLU.gluLookAt(xPos, yPos, zPos, 0, 0, 0, 0, 1, 0);
-		// clip plane equation
-		double clipEquation[] = { 0.0f, 0.0f, -1.0f, 0.0f };
-		float[] LightPos = { 0.0f, 2.0f, 7.0f, 1.0f };
-		GL.glColorMask(false, false, false, false);
-		// enable stencil buffer for "marking" the mirror		
-		GL.glEnable(GL.GL_STENCIL_TEST);
-		// set the stencil buffer to 1 where a polygon is drawn
-		GL.glStencilFunc(GL.GL_ALWAYS, 1, 1);
-		GL.glStencilOp(GL.GL_KEEP, GL.GL_KEEP, GL.GL_REPLACE);
-		GL.glDisable(GL.GL_DEPTH_TEST);
-		GL.glCallList(LIST_INDEX_MIRROR);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		GL.glColorMask(true, true, true, true);
-		GL.glStencilFunc(GL.GL_EQUAL, 1, 1);
-		// draw where the stencil is 1						
-		GL.glStencilOp(GL.GL_KEEP, GL.GL_KEEP, GL.GL_KEEP);
-		GL.glEnable(GL.GL_CLIP_PLANE0);
-		GL.glClipPlane(GL.GL_CLIP_PLANE0, clipEquation);
-		GL.glPushMatrix();
-		GL.glScalef(1.0f, 1.0f, -1.0f);
-		GL.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, LightPos);
-		GL.glCallList(LIST_INDEX_ROOM);			// reflection
-		GL.glPushMatrix();
-		GL.glTranslatef(cubeX, cubeY, cubeZ);
-		GL.glCallList(LIST_INDEX_BOX);			// reflection
-		GL.glPopMatrix();
-		GL.glTranslatef(ballX, ballY, ballZ);
-		GL.glRotatef(ballRot, 1.0f, 0.0f, 0.0f);
-		GL.glCallList(LIST_INDEX_BALL);			// reflection
-		GL.glPopMatrix();
-		GL.glDisable(GL.GL_CLIP_PLANE0);
-		GL.glDisable(GL.GL_STENCIL_TEST);
-		GL.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, LightPos);
-		GL.glEnable(GL.GL_BLEND);
-		GL.glDisable(GL.GL_LIGHTING);
-		GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
-		GL.glCallList(LIST_INDEX_MIRROR);
-		GL.glEnable(GL.GL_LIGHTING);
-		GL.glDisable(GL.GL_BLEND);
-		GL.glCallList(LIST_INDEX_ROOM);
-		GL.glPushMatrix();
-		GL.glTranslatef(cubeX, cubeY, cubeZ);
-		GL.glCallList(LIST_INDEX_BOX);
-		GL.glPopMatrix();
-		GL.glTranslatef(ballX, ballY, ballZ);
-		GL.glRotatef(ballRot, 1.0f, 0.0f, 0.0f);
-		GL.glCallList(LIST_INDEX_BALL);
-		ballRot += ballRotSpeed;
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/SelectionTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/SelectionTab.java
deleted file mode 100644
index e4c8fa8..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/SelectionTab.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.opengl.*;
-
-abstract class SelectionTab extends OpenGLTab {
-	private final static int BUFFER_LENGTH = 64;
-
-	/**
-	 * Sets the selected object.  Subclasses must override this method.
-	 */
-	abstract void processPick(int[] pSelectBuff, int hits);
-
-	/**
-	 * Invoke processPick for the object at the specified coordinate.
-	 */
-	int processSelection(int xPos, int yPos, int pointSize) {
-		int[] selectBuffer = new int[BUFFER_LENGTH];
-		int[] viewport = new int[4];
-		// new fix for sun jre
-		int ptr = getContext().getSelectBufferPtr(selectBuffer);
-
-		GL.glSelectBuffer(BUFFER_LENGTH, ptr);
-		GL.glGetIntegerv(GL.GL_VIEWPORT, viewport);
-		GL.glRenderMode(GL.GL_SELECT);
-		GL.glMatrixMode(GL.GL_PROJECTION);
-		GL.glPushMatrix();
-		GL.glLoadIdentity();
-		GLU.gluPickMatrix(xPos, yPos, pointSize, pointSize, viewport);
-		Rectangle rect = getGlCanvas().getClientArea();
-		float fAspect = (float) rect.width / (float) rect.height;
-		GLU.gluPerspective(45.0f, fAspect, 0.5f, 600.0f);
-		GL.glMatrixMode(GL.GL_MODELVIEW);
-		GL.glInitNames();
-		render();
-		int hits = GL.glRenderMode(GL.GL_RENDER);
-		// new fix for sun jre
-		// must be called after render mode is switched
-		getContext().getSelectBuffer(ptr, selectBuffer);
-		if (hits != 0) processPick(selectBuffer, hits);
-		GL.glMatrixMode(GL.GL_PROJECTION);
-		GL.glPopMatrix();
-		GL.glMatrixMode(GL.GL_MODELVIEW);
-		return hits;
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/StencilTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/StencilTab.java
deleted file mode 100644
index be5f4a4..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/StencilTab.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class StencilTab extends OpenGLTab {
-	private abstract class Shape {
-		private String name;
-		/**
-		 * Constructor
-		 * 
-		 * @param name the shape's name
-		 */
-		Shape(String name) {
-			super();
-			this.name = name;
-		}
-		/**
-		 * Draws this shape.
-		 */
-		abstract void draw();
-		/**
-		 * Returns the name.
-		 * 
-		 * @return String
-		 */
-		String getName() {
-			return name;
-		}
-	}
-
-	private Shape[] shapes = new Shape[5];
-	private Shape currentShape;
-	private float xPos = 0, yPos = 0;
-	private float size = 0.45f;
-	private int texture;
-	private int quadratic;
-	private final static String IMAGE = "images/splash.bmp";
-	private final static int SLEEP_LENGTH = 50;
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		Composite controls = new Composite(composite, SWT.NONE);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		controls.setLayout(layout);
-		new Label(controls, SWT.NONE).setText("Object:");
-		final Combo shapeCombo = new Combo(controls, SWT.READ_ONLY);
-		for (int i = 0; i < shapes.length; i++) {
-			shapeCombo.add(shapes[i].getName());
-		}
-		shapeCombo.select(0);
-		shapeCombo.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				currentShape = shapes[shapeCombo.getSelectionIndex()];
-			}
-		});
-
-		new Label(composite, SWT.NONE).setText("Size:");
-		final Slider sizeSlider = new Slider(composite, SWT.HORIZONTAL);
-		sizeSlider.setValues(0, 15, 75, 5, 5, 10);
-		sizeSlider.setSelection(45);
-		sizeSlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				size = ((float) sizeSlider.getSelection()) / 100;
-			}
-		});
-	}
-
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GLU.gluDeleteQuadric(quadratic);
-	}
-
-	/**
-	 * @see OpenGLTab#getSleepLength()
-	 */
-	int getSleepLength() {
-		return SLEEP_LENGTH;
-	}
-	
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Stencil";
-	}
-
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		if (!hasStencilSupport()) return;
-		
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glClearDepth(1.0f);
-		int[] textureOut = new int[1];
-		GL.glGenTextures(1, textureOut);
-		loadTexture(getContext(), IMAGE, 0, textureOut);
-		this.texture = textureOut[0];
-		quadratic = GLU.gluNewQuadric();
-		GLU.gluQuadricNormals(quadratic, GLU.GLU_SMOOTH);
-		GL.glDepthFunc(GL.GL_LEQUAL);
-		GL.glEnable(GL.GL_STENCIL_TEST);
-		GL.glEnable(GL.GL_TEXTURE_2D);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		// create shapes
-		shapes[0] = new Shape("Triangle") {
-			public void draw() {
-				GL.glBegin(GL.GL_TRIANGLES);
-				GL.glVertex3f(0.0f, size, 0.0f);
-				GL.glVertex3f(-size, -size, 0.0f);
-				GL.glVertex3f(size, -size, 0.0f);
-				GL.glEnd();
-			}
-		};
-
-		shapes[1] = new Shape("Disk") {
-			public void draw() {
-				GLU.gluDisk(quadratic, 0.0f, size, 32, 32);
-			}
-		};
-
-		shapes[2] = new Shape("Square") {
-			public void draw() {
-				GL.glRectf(-size, -size, size, size);
-			}
-		};
-
-		shapes[3] = new Shape("Hour Glass") {
-			public void draw() {
-				GL.glBegin(GL.GL_TRIANGLES);
-				GL.glVertex3f(0.0f, size, 0.0f);
-				GL.glVertex3f(-size, -size, 0.0f);
-				GL.glVertex3f(size, -size, 0.0f);
-				GL.glVertex3f(0.0f, -size, 0.0f);
-				GL.glVertex3f(size, size, 0.0f);
-				GL.glVertex3f(-size, size, 0.0f);
-				GL.glEnd();
-			}
-		};
-
-		shapes[4] = new Shape("Star") {
-			public void draw() {
-				GL.glBegin(GL.GL_TRIANGLES);
-				GL.glVertex3f(-0.3f, 0, 0.0f);
-				GL.glVertex3f(2 * size - 0.3f, 0, 0.0f);
-				GL.glVertex3f(size - 0.3f, 2 * size * 0.85f, 0.0f);
-				GL.glVertex3f(2 * size - 0.3f, size, 0.0f);
-				GL.glVertex3f(0 - 0.3f, size, 0.0f);
-				GL.glVertex3f(size - 0.3f, -size * 0.85f, 0.0f);
-				GL.glEnd();
-			}
-		};
-
-		currentShape = shapes[0];
-	}
-
-	/**
-	 * @see OpenGLTab#isStencilSupportNeeded
-	 */
-	boolean isStencilSupportNeeded() {
-		return true;
-	}
-
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(
-			GL.GL_COLOR_BUFFER_BIT
-				| GL.GL_DEPTH_BUFFER_BIT
-				| GL.GL_STENCIL_BUFFER_BIT);
-
-		GL.glLoadIdentity();
-		GL.glTranslatef(
-			(float) (1.5 * Math.cos(xPos)),
-			(float) (1.0 * Math.sin(yPos)),
-			-3.0f);
-		xPos += 0.15f;
-		yPos += 0.3f;
-
-		GL.glColorMask(false, false, false, false);
-		GL.glStencilFunc(GL.GL_ALWAYS, 1, 1);
-		GL.glStencilOp(GL.GL_KEEP, GL.GL_KEEP, GL.GL_REPLACE);
-		GL.glDisable(GL.GL_DEPTH_TEST);
-		GL.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
-
-		currentShape.draw();
-
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		GL.glColorMask(true, true, true, true);
-		GL.glStencilFunc(GL.GL_EQUAL, 1, 1);
-		GL.glStencilOp(GL.GL_KEEP, GL.GL_KEEP, GL.GL_KEEP);
-
-		GL.glLoadIdentity();
-		// load the texture behind the stencil object
-		GL.glTranslatef(0.0f, 0.0f, -3.1f);
-		GL.glBindTexture(GL.GL_TEXTURE_2D, texture);
-		GL.glBegin(GL.GL_QUADS);
-		GL.glTexCoord2f(0.0f, 0.0f);
-		GL.glVertex3f(-0.85f, -0.85f, 1.0f);
-		GL.glTexCoord2f(1.0f, 0.0f);
-		GL.glVertex3f(0.85f, -0.85f, 1.0f);
-		GL.glTexCoord2f(1.0f, 1.0f);
-		GL.glVertex3f(0.85f, 0.85f, 1.0f);
-		GL.glTexCoord2f(0.0f, 1.0f);
-		GL.glVertex3f(-0.85f, 0.85f, 1.0f);
-		GL.glEnd();
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/TextureTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/TextureTab.java
deleted file mode 100644
index 1375b6f..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/TextureTab.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class TextureTab extends OpenGLTab {
-	private float yrot = 0, zrot = 0;
-	private float xPos = 0.0f, yPos = 0.0f, zPos = -20;
-	private int texture = 0;
-	private float[][][] points = new float[45][45][3];
-	private final static String IMAGE = "images/splash.bmp";
-	private final static int SLEEP_LENGTH = 50;
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		Group movementGroup = new Group(composite, SWT.NONE);
-		movementGroup.setText("Translation");
-		movementGroup.setLayout(new GridLayout(2, false));
-
-		new Label(movementGroup, SWT.NONE).setText("X:");
-		final Slider xMove = new Slider(movementGroup, SWT.NONE);
-		xMove.setIncrement(1);
-		xMove.setMaximum(12);
-		xMove.setMinimum(0);
-		xMove.setThumb(2);
-		xMove.setPageIncrement(2);
-		xMove.setSelection(5);
-		xMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				xPos = xMove.getSelection() - 5;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Y:");
-		final Slider yMove = new Slider(movementGroup, SWT.NONE);
-		yMove.setIncrement(1);
-		yMove.setMaximum(12);
-		yMove.setMinimum(0);
-		yMove.setThumb(2);
-		yMove.setPageIncrement(2);
-		yMove.setSelection(5);
-		yMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				yPos = yMove.getSelection() - 5;
-			}
-		});
-
-		new Label(movementGroup, SWT.NONE).setText("Z:");
-		final Slider zMove = new Slider(movementGroup, SWT.NONE);
-		zMove.setIncrement(1);
-		zMove.setMaximum(24);
-		zMove.setMinimum(0);
-		zMove.setThumb(4);
-		zMove.setPageIncrement(2);
-		zMove.setSelection(10);
-		zMove.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				zPos = zMove.getSelection() - 30;
-			}
-		});
-	}
-
-	/**
-	 * @see OpenGLTab#getSleepLength()
-	 */
-	int getSleepLength() {
-		return SLEEP_LENGTH;
-	}
-	
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Texture";
-	}
-
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		//GL.glClearColor(0.0f, 0.0f, 0.3f, 1.0f); 
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glClearDepth(1.0f);
-		int[] textureOut = new int[1];
-		GL.glGenTextures(1, textureOut);
-		loadTexture(getContext(), IMAGE, 0, textureOut);
-		texture = textureOut[0];
-		GL.glDepthFunc(GL.GL_LEQUAL);
-		GL.glPolygonMode(GL.GL_BACK, GL.GL_FILL);
-		GL.glPolygonMode(GL.GL_FRONT, GL.GL_LINE);
-		GL.glEnable(GL.GL_LIST_MODE);
-		GL.glEnable(GL.GL_TEXTURE_2D);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		// initialize points	
-		for (int x = 0; x < 45; x++) {
-			for (int y = 0; y < 45; y++) {
-				points[x][y][0] = x / 5.0f - 4.5f;
-				points[x][y][1] = y / 5.0f - 4.5f;
-				points[x][y][2] =
-					(float) Math.sin(
-						(((x / 5.0f) * 40.0f) / 360.0f) * Math.PI * 2);
-			}
-		}
-	}
-
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		GL.glClear(
-			GL.GL_COLOR_BUFFER_BIT
-				| GL.GL_DEPTH_BUFFER_BIT
-				| GL.GL_STENCIL_BUFFER_BIT);
-		GL.glLoadIdentity();
-		GL.glTranslatef(xPos, yPos, zPos);
-		GL.glRotatef(yrot, 0.0f, 1.0f, 0.0f);
-		GL.glRotatef(zrot, 0.0f, 0.0f, 1.0f);
-		GL.glBindTexture(GL.GL_TEXTURE_2D, texture);
-
-		GL.glBegin(GL.GL_QUADS);
-		for (int x = 0; x < 44; x++) {
-			for (int y = 0; y < 44; y++) {
-				float fx = x / 44.0f;
-				float fy = y / 44.0f;
-				float fxb = (x + 1) / 44.0f;
-				float fyb = (y + 1) / 44.0f;
-				GL.glTexCoord2f(fx, fy);
-				GL.glVertex3f(
-					points[x][y][0],
-					points[x][y][1],
-					points[x][y][2]);
-				GL.glTexCoord2f(fx, fyb);
-				GL.glVertex3f(
-					points[x][y + 1][0],
-					points[x][y + 1][1],
-					points[x][y + 1][2]);
-				GL.glTexCoord2f(fxb, fyb);
-				GL.glVertex3f(
-					points[x + 1][y + 1][0],
-					points[x + 1][y + 1][1],
-					points[x + 1][y + 1][2]);
-				GL.glTexCoord2f(fxb, fy);
-				GL.glVertex3f(
-					points[x + 1][y][0],
-					points[x + 1][y][1],
-					points[x + 1][y][2]);
-			}
-		}
-		GL.glEnd();
-		// perform wave motion
-		for (int y = 0; y < 45; y++) {
-			float hold = points[0][y][2];
-			for (int x = 0; x < 44; x++) {
-				points[x][y][2] = points[x + 1][y][2];
-			}
-			points[44][y][2] = hold;
-		}
-		yrot += 0.9f;
-		zrot += 0.6f;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/TransparencyTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/TransparencyTab.java
deleted file mode 100644
index 11f39fb..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/TransparencyTab.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.opengl.examples;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.opengl.*;
-import org.eclipse.swt.widgets.*;
-
-class TransparencyTab extends SelectionTab {
-	private float[] alphas = { 0.3f, 0.5f, 1.0f };
-	private int quadratic;
-	private int currentSelection = 1;
-	private final static int
-		INDEX_TRIANGLE = 1, INDEX_SPHERE = 2, INDEX_DISK = 3;
-	private final static String[] OBJECTS = {"Triangle", "Sphere", "Disk" };
-
-	/**
-	 * @see OpenGLTab#createControls(Composite)
-	 */
-	void createControls(Composite composite) {
-		Composite objectGroup = new Composite(composite, SWT.NONE);
-		GridLayout layout = new GridLayout(2, false);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		objectGroup.setLayout(layout);
-		objectGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		new Label(objectGroup, SWT.NONE).setText("Object:");
-		final Combo objectCombo = new Combo(objectGroup, SWT.READ_ONLY);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		data.grabExcessHorizontalSpace = true;
-		objectCombo.setLayoutData(data);
-		objectCombo.setItems(OBJECTS);
-		objectCombo.select(0);
-		
-		new Label(composite, SWT.NONE).setText("Transparency:");
-		final Slider transparencySlider = new Slider(composite, SWT.HORIZONTAL);
-		transparencySlider.setValues(0, 0, 11, 1, 1, 2);
-		transparencySlider.setSelection(7);
-		transparencySlider.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				float alpha = transparencySlider.getSelection();
-				alpha = 1.0f - alpha / 10;
-				alphas[currentSelection - 1] = alpha;
-			}
-		});
-		objectCombo.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				currentSelection = objectCombo.getSelectionIndex() + 1;
-				transparencySlider.setSelection(
-					(int) ((1.0f - alphas[currentSelection - 1]) * 10));
-			}
-		});
-
-		final Canvas glCanvas = getGlCanvas();
-		glCanvas.addMouseListener(new MouseAdapter() {
-			public void mouseUp(MouseEvent e) {
-				Rectangle rect = glCanvas.getClientArea();
-				e.y = rect.height - e.y;
-				if (e.button == 1) {
-					processSelection(e.x, e.y, 2);
-					transparencySlider.setSelection(
-						(int) ((1.0f - alphas[currentSelection - 1]) * 10));
-					objectCombo.select(currentSelection - 1);
-				}
-			}
-		});
-	}
-
-	/**
-	 * @see OpenGLTab#dispose()
-	 */
-	void dispose() {
-		super.dispose();
-		GLU.gluDeleteQuadric(quadratic);
-		GL.glDeleteLists(INDEX_DISK, 1);
-		GL.glDeleteLists(INDEX_SPHERE, 1);
-		GL.glDeleteLists(INDEX_TRIANGLE, 1);
-	}
-
-	/**
-	 * @see OpenGLTab#getTabText()
-	 */
-	String getTabText() {
-		return "Transparency";
-	}
-
-	/**
-	 * @see OpenGLTab#init()
-	 */
-	void init() {
-		GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
-		GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);
-		quadratic = GLU.gluNewQuadric();
-		GLU.gluQuadricNormals(quadratic, GLU.GLU_SMOOTH);
-		GL.glEnable(GL.GL_CULL_FACE);
-		GL.glEnable(GL.GL_DEPTH_TEST);
-		GL.glEnable(GL.GL_BLEND);
-		// create display lists		
-		GL.glNewList(INDEX_SPHERE, GL.GL_COMPILE);
-		GLU.gluQuadricDrawStyle(quadratic, GLU.GLU_FILL);
-		GLU.gluSphere(quadratic, 1.5, 32, 32);
-		GL.glEndList();
-		GL.glNewList(INDEX_DISK, GL.GL_COMPILE);
-		GLU.gluQuadricDrawStyle(quadratic, GLU.GLU_FILL);
-		GLU.gluDisk(quadratic, 1.0, 3, 32, 32);
-		GL.glEndList();
-		GL.glNewList(INDEX_TRIANGLE, GL.GL_COMPILE);
-		GL.glBegin(GL.GL_TRIANGLES);
-		GL.glVertex3f(0.0f, 2.0f, 0.0f);
-		GL.glVertex3f(-2.0f, -2.0f, 2.0f);
-		GL.glVertex3f(2.0f, -2.0f, 2.0f);
-		GL.glEnd();
-		GL.glEndList();
-	}
-
-	/**
-	 * @see SelectionTab.processPick (int[], int)
-	 */
-	void processPick(int[] pSelectBuff, int hits) {
-		int count, zDepth;
-		int tempSelection = pSelectBuff[3];
-		zDepth = pSelectBuff[2];
-		// pick object with largest z value
-		for (int i = 4; i <= 4 * (hits - 1); i = i + 4) {
-			if (zDepth > pSelectBuff[i + 2]) {
-				zDepth = pSelectBuff[i + 2];
-				tempSelection = pSelectBuff[i + 3];
-			}
-		}
-		if (tempSelection > 0) currentSelection = tempSelection;
-	}
-
-	/**
-	 * @see OpenGLTab#renderScene()
-	 */
-	void renderScene() {
-		// draw items with transparent qualities in reverse Z order
-		GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-		GL.glLoadIdentity();
-		GL.glTranslatef(0.0f, 0.0f, -14.0f);
-		GL.glPushName(0);
-
-		// draw disk
-		GL.glPushMatrix();
-		GL.glTranslatef(-1.0f, 0.0f, 1.0f);
-		GL.glColor4f(0.0f, 1.0f, 0.0f, alphas[2]);
-		GL.glLoadName(INDEX_DISK);
-		GL.glCallList(INDEX_DISK);
-		if (currentSelection == INDEX_DISK) {
-			GL.glColor3f(1.0f, 0.0f, 0.0f);
-			GLU.gluQuadricDrawStyle(quadratic, GLU.GLU_LINE);
-			GLU.gluDisk(quadratic, 0.98, 3.02, 32, 32);
-		}
-		GL.glPopMatrix();
-
-		// draw triangle
-		GL.glTranslatef(0.0f, 0.0f, +3.0f);
-		GL.glLoadName(INDEX_TRIANGLE);
-		GL.glColor4f(1.0f, 0.0f, 0.0f, alphas[0]);
-		GL.glCallList(INDEX_TRIANGLE);
-		GL.glPointSize(5.0f);
-		if (currentSelection == INDEX_TRIANGLE) {
-			GL.glBegin(GL.GL_POINTS);
-			GL.glColor3f(1.0f, 0.0f, 0.0f);
-			GL.glVertex3f(0.0f, 2.0f, 0.0f);
-			GL.glVertex3f(-2.0f, -2.0f, 2.0f);
-			GL.glVertex3f(2.0f, -2.0f, 2.0f);
-			GL.glEnd();
-		}
-
-		// draw sphere
-		GL.glPushMatrix();
-		GL.glTranslatef(1.0f, 0.0f, +3.0f);
-		GL.glColor4f(0.0f, 0.0f, 1.0f, alphas[1]);
-		GL.glLoadName(INDEX_SPHERE);
-		GL.glCallList(INDEX_SPHERE);
-		if (currentSelection == INDEX_SPHERE) {
-			GL.glColor3f(1.0f, 0.0f, 0.0f);
-			GLU.gluQuadricDrawStyle(quadratic, GLU.GLU_LINE);
-			GLU.gluSphere(quadratic, 1.51, 8, 8);
-		}
-		GL.glPopMatrix();
-	}
-}
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Ball.jpg b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Ball.jpg
deleted file mode 100644
index 6890d26..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Ball.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Box.bmp b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Box.bmp
deleted file mode 100644
index 5eef663..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Box.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Floor.jpg b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Floor.jpg
deleted file mode 100644
index 4934c9c..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Floor.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/splash.bmp b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/splash.bmp
deleted file mode 100644
index 6ec75da..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/untitled.jpg b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/untitled.jpg
deleted file mode 100644
index f5d6aa1..0000000
--- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/untitled.jpg
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java
index 857cc08..7bd2eea 100644
--- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java
+++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java
@@ -110,7 +110,7 @@
 	addTest(Test_org_eclipse_swt_widgets_DirectoryDialog.suite());
 	addTest(Test_org_eclipse_swt_widgets_FontDialog.suite());
 	addTest(Test_org_eclipse_swt_widgets_MessageBox.suite());
-
+	addTest(Test_org_eclipse_swt_widgets_Monitor.suite());
 	addTest(Test_org_eclipse_swt_layout_GridData.suite());
 	addTest(Test_org_eclipse_swt_layout_RowData.suite());
 	addTest(Test_org_eclipse_swt_layout_GridLayout.suite());
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java
index 8164c91..aa4fe37 100644
--- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java
+++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java
@@ -64,6 +64,7 @@
 	suite.addTest(Test_org_eclipse_swt_widgets_DirectoryDialog.suite());
 	suite.addTest(Test_org_eclipse_swt_widgets_FontDialog.suite());
 	suite.addTest(Test_org_eclipse_swt_widgets_MessageBox.suite());
+	suite.addTest(Test_org_eclipse_swt_widgets_Monitor.suite());
 
 	return suite;
 }
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Control.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Control.java
index 3bf8624..87e696a 100644
--- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Control.java
+++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Control.java
@@ -264,6 +264,21 @@
 	// tested in test_setMenuLorg_eclipse_swt_widgets_Menu
 }
 
+public void test_getMonitor() {
+	Monitor monitor = control.getMonitor();
+	assertNotNull(monitor);
+	Display display = control.getDisplay();
+	Monitor[] monitors = display.getMonitors();
+	int i;
+	/* monitor must be listed in Display.getMonitors */
+	for (i = 0; i < monitors.length; i++) {
+		if (monitor.equals(monitors[i])) break;
+	}
+	if (i == monitors.length) {
+		fail("Control.getMonitor does not return a monitor listed in Display.getMonitors");
+	}
+}
+
 public void test_getParent() {
 	assertEquals(shell, control.getParent());
 }
@@ -706,6 +721,7 @@
 	methodNames.addElement("test_getLayoutData");
 	methodNames.addElement("test_getLocation");
 	methodNames.addElement("test_getMenu");
+	methodNames.addElement("test_getMonitor");
 	methodNames.addElement("test_getParent");
 	methodNames.addElement("test_getShell");
 	methodNames.addElement("test_getSize");
@@ -784,6 +800,7 @@
 	else if (getName().equals("test_getLayoutData")) test_getLayoutData();
 	else if (getName().equals("test_getLocation")) test_getLocation();
 	else if (getName().equals("test_getMenu")) test_getMenu();
+	else if (getName().equals("test_getMonitor")) test_getMonitor();
 	else if (getName().equals("test_getParent")) test_getParent();
 	else if (getName().equals("test_getShell")) test_getShell();
 	else if (getName().equals("test_getSize")) test_getSize();
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Display.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Display.java
index d08da1e..326b298 100644
--- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Display.java
+++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Display.java
@@ -187,6 +187,23 @@
 	warnUnimpl("Test test_getIconDepth not written");
 }
 
+public void test_getMonitors() {
+	Display display = new Display();
+	Monitor[] monitors = display.getMonitors();
+	assertNotNull(monitors);
+	assertTrue("at least one monitor should be returned", monitors.length >= 1);
+	for (int i = 0; i < monitors.length; i++)
+		assertTrue("monitor at index "+i+" should not be null", monitors[i] != null);
+	display.dispose();
+}
+
+public void test_getPrimaryMonitor() {
+	Display display = new Display();
+	Monitor monitor = display.getPrimaryMonitor();
+	assertNotNull(monitor);
+	display.dispose();
+}
+
 public void test_getShells() {
 	warnUnimpl("Test test_getShells not written");
 }
@@ -337,6 +354,8 @@
 	methodNames.addElement("test_getDoubleClickTime");
 	methodNames.addElement("test_getFocusControl");
 	methodNames.addElement("test_getIconDepth");
+	methodNames.addElement("test_getMonitors");
+	methodNames.addElement("test_getPrimaryMonitor");
 	methodNames.addElement("test_getShells");
 	methodNames.addElement("test_getSyncThread");
 	methodNames.addElement("test_getSystemColorI");
@@ -385,6 +404,8 @@
 	else if (getName().equals("test_getDoubleClickTime")) test_getDoubleClickTime();
 	else if (getName().equals("test_getFocusControl")) test_getFocusControl();
 	else if (getName().equals("test_getIconDepth")) test_getIconDepth();
+	else if (getName().equals("test_getMonitors")) test_getMonitors();
+	else if (getName().equals("test_getPrimaryMonitor")) test_getPrimaryMonitor();
 	else if (getName().equals("test_getShells")) test_getShells();
 	else if (getName().equals("test_getSyncThread")) test_getSyncThread();
 	else if (getName().equals("test_getSystemColorI")) test_getSystemColorI();
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Monitor.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Monitor.java
new file mode 100644
index 0000000..f1d18d9
--- /dev/null
+++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Monitor.java
@@ -0,0 +1,113 @@
+package org.eclipse.swt.tests.junit;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2002. All rights reserved.
+ * This file is made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ */
+
+import junit.framework.*;
+import junit.textui.*;
+import org.eclipse.swt.*;
+import org.eclipse.swt.widgets.*;
+import org.eclipse.swt.graphics.*;
+import org.eclipse.swt.events.*;
+/**
+ * Automated Test Suite for class org.eclipse.swt.widgets.Monitor
+ *
+ * @see org.eclipse.swt.widgets.Monitor
+ */
+public class Test_org_eclipse_swt_widgets_Monitor extends SwtTestCase {
+
+Display display = null;
+Monitor[] monitors = null;
+Monitor primary = null;
+	
+public Test_org_eclipse_swt_widgets_Monitor(String name) {
+	super(name);
+}
+
+public static void main(String[] args) {
+	TestRunner.run(suite());
+}
+
+protected void setUp() {
+	display = Display.getDefault();
+	monitors = display.getMonitors();
+	primary = display.getPrimaryMonitor();
+}
+
+protected void tearDown() {
+}
+
+public void test_equalsLjava_lang_Object() {
+	int i;
+	for (i = 0; i < monitors.length; i++) {
+		if (primary.equals(monitors[i])) break;
+	}
+	if (i == monitors.length) fail();
+	for (i = 0; i  < monitors.length; i++) {
+		Monitor test = monitors[i];
+		for (int j = 0; j < monitors.length; j++) {
+			if (test.equals(monitors[j])) {
+				if (i != j) fail("Monitors "+i+" and "+j+" should not be equal");
+			}
+		}
+	}
+}
+
+public void test_getBounds() {
+	Rectangle bounds = primary.getBounds();
+	assertNotNull(bounds);
+	for (int i = 0; i < monitors.length; i++) {
+		bounds = monitors[i].getBounds();
+		assertNotNull(bounds);
+	}
+}
+
+public void test_getClientArea() {
+	Rectangle bounds = primary.getClientArea();
+	assertNotNull(bounds);
+	for (int i = 0; i < monitors.length; i++) {
+		bounds = monitors[i].getClientArea();
+		assertNotNull(bounds);
+	}
+}
+
+public void test_hashCode() {
+	for (int i = 0; i < monitors.length; i++) {
+		if (primary.equals(monitors[i])) {
+			assertTrue(primary.hashCode() == monitors[i].hashCode());
+			break;
+		}
+	}
+}
+
+
+public static Test suite() {
+	TestSuite suite = new TestSuite();
+	java.util.Vector methodNames = methodNames();
+	java.util.Enumeration e = methodNames.elements();
+	while (e.hasMoreElements()) {
+		suite.addTest(new Test_org_eclipse_swt_widgets_Monitor((String)e.nextElement()));
+	}
+	return suite;
+}
+
+public static java.util.Vector methodNames() {
+	java.util.Vector methodNames = new java.util.Vector();
+	methodNames.addElement("test_equalsLjava_lang_Object");
+	methodNames.addElement("test_getBounds");
+	methodNames.addElement("test_getClientArea");
+	methodNames.addElement("test_hashCode");
+	return methodNames;
+}
+
+protected void runTest() throws Throwable {
+	if (getName().equals("test_equalsLjava_lang_Object")) test_equalsLjava_lang_Object();
+	else if (getName().equals("test_getBounds")) test_getBounds();
+	else if (getName().equals("test_getClientArea")) test_getClientArea();
+	else if (getName().equals("test_hashCode")) test_hashCode();
+}
+}