This chapter lists implementation specifics, if any, for each class and interface of the API.
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()
.
If a Control
is the only focusable Control
inside
its active Shell
, it does not draw the focus highlight
background.
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
.
SWT.DROP_DOWN
style not supported, therefore all
functions related to the text editor of Combo
are not
supported.
Only one Display
object per application is supported.
setForeground()
might have no effect depending
on the selected theme.
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.
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.
setForeground()
has no effect
Full style is not implemented.
SelectionEvent is not implemented.
VerifyEvent is not supported for key pad input.
No horizontal scrollbar support.
Setting the accelerators has no effect.
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.
Setting both Image
and Text
to
a MultiPageDialog
is not supported. If Image
is
set, only it is visible.
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 Browser
s in different Shell
is
not supported.
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.
Filter extensions not supported.
The path returned by getFilterPath()
always
ends in /
or \\
after the dialog
selected a file.
setMessage()
has no visual effect.
The path returned by getFilterPath()
always
ends in /
or \\
after the dialog
selected a file.
setText()
has no effect.
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.
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.
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 are not supported in any control as they are not supported by the platform.
Saving image data to file dose not support transparency data, which means that the saved file no longer contains any transparency data.
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 PaintEvent
s 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.