Eclipse 3.3 - New and Noteworthy in SWT

Milestone M1


Printing support added on GTK+

Printing support has been added for GTK+. It is important to note that the user must be running with GTK+ 2.10 or newer in order for this support to be utilized.

Option to print line numbers added to StyledText

When printing a StyledText, line numbers can now be printed by setting the StyledTextPrintOptions.printLineNumbers field to true.

System tray support added on OS X

Icons placed on the system tray will now appear when running on OS X in the status bar.


PNG format write support

Images can now be written to disk in PNG format (example snippet).

Browser profiles now utilized on GTK+ and linux-motif

The Browser widget is now utilizing profiles on GTK+ and linux-motif. As a result many previous shortcomings have been fixed, including the inability to display https pages, not rendering visited links properly, and not caching visited pages.

Browser support added on PPC

Browser support has been added for the PowerPC architecture (GTK+).

GtkComboBox now utilized when available

GtkComboBox is now utilized natively for users that are running with gtk+ version 2.4 or newer.


Milestone M2


Color cursors on Mac OSX You can now create color cursors on Mac OSX. This example snippet created the cursor shown in the snapshot below.

A Color Cursor on the Mac


JPEG/PNG image loading performance improvements JPEG images now load from 30 to 70 percent faster, and PNG images load 2 to 3 times faster, depending on the image.

GraphicsExample Try out the new SWT GraphicsExample, which showcases some of SWT's graphics capabilities. This example is available with the Example Plug-ins on the Eclipse Project Downloads page.

GraphicsExample


Milestone M3


New DateTime control Your users can now enter dates or times using the new DateTime control. You can see the DateTime control in action on the DateTime tab of the SWT ControlExample. The ControlExample is included with the other example plug-ins (see the "Example Plug-ins" section of the 3.3M3 download page).

DateTime control with SWT.DATE style

DateTime control with SWT.TIME style

DateTime control with SWT.CALENDAR style on Windows

For more information, please see this comment in the feature request.


Milestone M4


New DateTime styles DateTime control now supports SWT.SHORT, SWT.MEDIUM, and SWT.LONG styles. This example snippet created the snapshots shown below.

DateTime control with SWT.DATE | SWT.SHORT style on Windows

DateTime control with SWT.TIME | SWT.SHORT style


New graphics line drawing capabilities SWT graphics now supports much finer control of line attributes, including fractional line widths, dashed line offsets, and miter limits. These capabilities are provided by the new LineAttributes class and the new GC methods GC.setLineAttributes(LineAttributes) and GC.getLineAttributes(LineAttributes). This example snippet created the snapshot shown below.

LineAttributes


SWT libraries automatically found The SWT libraries are now loaded from the SWT jar when an SWT application is launched. Within Eclipse, you can just use the Run As->Java Application menu item and the libraries will be found. When launching from the command line, you no longer need to specify the SWT library path.

SWT on Vista (win32) SWT now gets everything right on Vista.

Eclipse on Vista (win32)


Milestone M5


DragDetect API Custom widget implementors can now use Control.setDragDetect() to disable the default drag detection and Control.dragDetect() to implement their own. For example, a custom list control could start dragging only when an item is selected. Typed events for drag detection are now available (see DragDetectListener and DragDetectEvent). This example snippet created the snapshot shown below.

Drag detect in a custom control


Drag over and drag under effects Custom drag over and drag under effects can now be implemented for any control. Custom widget implementors can provide feedback that is appropriate for their control by subclassing DragSourceEffect and DropTargetEffect. The default effects for the Table, Tree and StyledText controls have been changed to use these classes (see TreeDragSourceEffect, TreeDropTargetEffect and the corresponding classes for these controls). This StyledText example snippet created the snapshot shown below.

StyledText dragging selected text to show 'insert cursor' drag under effect


Color cursors on GTK You can now create color cursors on GTK. This example snippet created the cursor shown in the snapshot below.

A Color Cursor on GTK


Text SEARCH style On platforms that have this concept, Text controls can now have the look and feel of a search field with the SWT.SEARCH style. Adding the SWT.CANCEL style gives the user a way to cancel the search. This example snippet created the Text control shown in the snapshot below.

A search Text on the Mac


Mnemonics and the focus indicator Custom widgets respect the platform settings when drawing mnemonics and the focus indicator. You do not need to do anything special to get this behavior - the paint gc respects platform preferences. See this bug for more information.

Mozilla everywhere Mozilla can now be used as the underlying browser control on Windows and OS X, providing that you have XULRunner installed and registered. To use this just create your Browser with the SWT.MOZILLA style. For more specific version requirements for running on OS X see bug 79213 comment 46. This example snippet created the snapshot below.

Mozilla on Windows


SWT on Vista (WPF) There is now an early access version of the SWT port to Windows Presentation Foundation (WPF), a new window system that comes pre-installed on Microsoft Windows Vista.

The port is in its early stages. Many things work, including the ControlExample, but there is still a lot more work to do. You can help by trying out the new code and entering bug reports. The new code is available in the Eclipse GIT repository (Using SWT from GIT) but there are no regular builds at this time.

Note that the Win32 port of SWT continues to work well on Windows platforms and fully exploits the new look and feel of Windows Vista.

ControlExample on Vista (WPF)


Milestone M6


Eclipse on Vista (WPF) Eclipse now runs on WPF (Windows Presentation Foundation). It is still early access, but it is stable enough for us to develop on it. You can try it yourself by getting it from the eclipse downloads page.

Eclipse on Vista (WPF)


Native features on Vista (win32) We are now exploiting more of the native features of the Vista platform. For example, using native double-buffering on Vista win32 makes painting in double-buffered Canvases twice as fast.

JavaXPCOM support SWT.MOZILLA-style Browsers can now be programmed to via JavaXPCOM. This requires that XULRunner 1.8.1.2 be installed, whose current release status is summarized here. This example snippet created the snapshot below.

Browser JavaXPCOM


OLEExample and OLE improvements The new OLEExample showcases SWT OLE (win32) support. We now do a better job of hosting OLE documents in SWT. For example, OleClientSite in-place activation scrollbars work correctly. The OLEExample comes with the Example Plug-ins on the Eclipse Project Downloads page. To install and run the SWT Examples, see this page.

OLEExample


Reparenting support on Mac OSX SWT on Mac OSX now supports reparenting.

Display.post() supports more mouse events Display.post() now supports generating mouse button 4 and 5 and mouse wheel events. This example snippet automatically scrolls a StyledText.

Advanced graphics supports mirroring Advanced graphics now renders correctly in RTL mode. The snapshot below shows bidirectional text drawn using transforms and patterns on a Canvas.

Advanced graphics in RTL mode


Milestone M7


Drag & Drop, Clipboard on Vista (WPF) Drag & Drop and Clipboard operations now work on Vista WPF. The snapshot below shows a file being dragged from Eclipse onto the Vista Desktop.

Drag & Drop on Vista (WPF)


Improved Detection of Mozilla Plug-ins Users of Mozilla-based Browsers can now augment the default set of Mozilla plug-in paths that are searched by defining environment variable MOZ_PLUGIN_PATH. For example:
export MOZ_PLUGIN_PATH=/usr/lib/browser-plugins