Class and interface description

This chapter lists implementation specifics, if any, for each class and interface of the API.

Shell

Shells do not appear on screen till Shell.open() or Shell.setVisible(true) is called. However calling Shell.setVisible(true) on a top shell when another top shell is active, will not bring the new top shell on screen. In this case the active top shell covers completely the new top shell. If you want to bring the new top shell on screen call Shell.open().

Control

If a Control is the only focusable Control inside its active Shell, it does not draw the focus highlight background.

Font

Some platform fonts do not support BOLD style. If you create a font with SWT.BOLD style and query back the style you might get SWT.NORMAL.

Combo

SWT.DROP_DOWN style not supported, therefore all functions related to the text editor of Combo are not supported.

Display

Only one Display object per application is supported.

List

setForeground() might have no effect depending on the selected theme.

ListBox

  • setFont() has no effect.

  • setHeadingFont() has no effect.

  • setBackground() has no effect.

  • SWT.MULTI style ignored if layout style is LB_MOD_SHOW_HEADING_ICONS.

  • LB_MOD_SHOW_SELECTION_NUMBER is not supported.

ListView

  • Only the SWT.HORIZONTAL layout style is supported.

  • Only the vertical scrollbar is supported.

  • Vertical scrollbar is always visible when the ListView is not empty.

  • Setting the font is not supported.

  • Setting the background color is not supported.

  • Disabled control doesn't have any specific appearance, such as dimming.

SortedList

setForeground() has no effect

DateEditor

Text

  • VerifyEvent is not supported for key pad input.

  • No horizontal scrollbar support.

Command

Setting the accelerators has no effect.

MobileShell

The status text (and the title, in small status pane) is not displayed in the navi pane if the focused control is Text because the Front End Processor (FEP) indicator appears in the navi pane and overrides the other labels.

MultiPageDialog

Setting both Image and Text to a MultiPageDialog is not supported. If Image is set, only it is visible.

Browser

  • When setUrl() or setText() method is initiated, the actual loading process does not started until application is able to dispatch events from event queue.

  • Location change event does not always include actual URL address to navigate. Whenever a location change event is raised by calling back(), forward() or setText(), URL address in location change event is @back()@, @forward()@ or @setText()@, respectively.

  • setFont, setBackground and setForeground are not supported.

  • Browser is not able to fire a traversal event. Therefore, pressing arrow keys cannot cause browser to lose focus in any situation.

  • If two or more than two Browser instances are created, they must have the same ancestor which is the direct child of Window group. Creating multiple Browsers in different Shell is not supported.

MenuItem

SEPARATOR style is not supported.

RADIO style is supported only in DROP_DOWN menus.

if RADIO and CHECK are used in the same menu, then only RADIO will work (Check image is not displayed).

Setting an accelerator is not supported.

FileDialog

  • Filter extensions not supported.

  • The path returned by getFilterPath() always ends in / or \\ after the dialog selected a file.

DirectoryDialog

  • setMessage() has no visual effect.

  • The path returned by getFilterPath() always ends in / or \\ after the dialog selected a file.

ColorDialog

setText() has no effect.

Table

  • MULTI style Table always has checkboxes. Multi-selection is supported only using checkboxes. The selection focus highlight only covers one item.

  • Due to the restriction with MULTI style, in a table with both CHECK and MULTI styles selecting an item will also make the item checked and vice versa.

  • In SINGLE style Table the currently highlighted item is always considered as selected.

  • FULL_SELECTION style has no effect. Full row selection is always used.

  • TableItem.setGrayed is not supported.

  • Resizing of columns is not supported.

  • Selection of columns is only supported with Touch UI.

  • Moving of columns is not supported.

Tree

  • MULTI style Tree always has checkboxes. Multi-selection is supported only using checkboxes. The selection focus highlight can cover only one item.

  • Due to the restriction with MULTI style, in a tree with both CHECK and MULTI styles selecting an item will also make the item checked and vice versa.

  • In SINGLE style Tree the currently highlighted item is always considered as selected.

  • TreeItem.setGrayed is not supported.

CaptionedControl

  • If multiple children are registered, only the last registered child will appear. All the previous registered children must be disposed manually by the application then. This should be however avoided as it is undefined behaviour.

  • getChildren() returns null or the only control inside CaptionedControl (last control registered with CaptionedControl).

  • getTabList() returns the only control inside CaptionedControl if that control is focusable, null otherwise.

  • getLayout() returns always null.

  • Setting layouts has no effect on the CaptionedControl. The child control is automatically resized to fill the available space inside the CaptionedControl. Think of this as a CaptionedControl "imaginary layout".

  • setBackground() might have no effect depending on the selected theme.

  • CaptionedControl can always become focused no matter what the child Control is. If it has a focusable child Control, it automatically passes the 'incoming' focus to the child.

  • CaptionedControl draws the focus highlight for as long as its child is the focused control or for as long as itself is the focused control, in the case where there is no child.

Mnemonics

Mnemonics are not supported in any control as they are not supported by the platform.

ImageLoader

Saving image data to file dose not support transparency data, which means that the saved file no longer contains any transparency data.

General notes

  • SWT.LEFT_TO_RIGHT and SWT.RIGHT_TO_LEFT flags are ignored for all the controls, the UI layout is decided based on the device language.

  • When the focused item changes inside List, ListView, SortedList and ListBox the focus highlight causes a repaint of the area but framework does not generate PaintEvents that reflect that.

  • Visible scrollbars in controls can cause extra paint events to be dispatched. For example, resizing a Control with scrollbars causes the native scrollbars to signal the Window server that their area in the Window needs to be repainted. Thus, resizing a Control with scrollbars may generate separate paint events for scrollbar areas.

  • Components cannot be placed on top of a video Control. The video is always drawn on top of all other components, regardless of the placement of the video Control in relation to other components.

  • To draw on a Control, an application must do it in a paint listener using the GC that is passed in as a parameter of the PaintEvent. Otherwise the drawing is not properly synchronised and intergrated with the Symbian OS drawing framework and the results will be undefined.

  • Applications should not dispatch events from a PaintListener. It is inefficient because it may lead into more than one paint listener being processed at the same time. Normally all paint listeners are able to share the same set of buffer resources but in the case many paint listeners are being executed simultaneously more resources need to be temporarily allocated.