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.
Link
text directionality is derived from
the device language settings, if none of SWT.LEFT_TO_RIGHT
and SWT.RIGHT_TO_LEFT
flags was used in its
constructor. When SWT.LEFT_TO_RIGHT
or SWT.RIGHT_TO_LEFT
flag is used when constructing Link
, given directionality is forced for the control.
setForeground()
might have no effect depending
on the selected theme.
setFont()
has no effect.
setHeadingFont()
has no effect.
setBackground() is not supported in S60 3rd Edition
FP2 and S60 5th Edition devices.
setForeground()
might have no effect depending
on the selected theme.
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()
might have no effect depending
on the selectedtheme .
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 a 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.
In some layouts, the space reserved for the title and status text can be very limited. If no status text is set, no space is reserved for it, that is, no empty status pane is displayed.
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.
Only one instance of Browser
can exist
at any given time. If a Browser
instance is not
disposed before a new instance is created, exception ERROR_UNSPECIFIED
is thrown.
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.
Both MULTI
and CHECK
style
Tree items display a check mark when selected.
In SINGLE
style Tree the currently highlighted
item is always considered as selected.
Because of native Tree behavior, automatic selection trough key or mouse input happens only for leafs. However, a node can be forcefully selected trough the API.
Because of native Tree behavior, checking or selecting a node item also selects all its children.
The default selection is sent when the item is expanded.
The following methods are not supported:
Tree.getHorizontalBar
Tree.getVerticalBar
TreeItem.setGrayed
TreeItem.setBackground
TreeItem.setForeground
TreeItem.setFont
Tree.setBackground
Tree.setForeground
Tree.setFont
Tree.setItemCount
Tree.setTopItem
Tree.showItem
Tree.showSelection
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 behavior.
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 (in releases before Symbian^3).
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.
Adding a PaintListener
to any Control
inside a ScrolledComposite
has no effect. Control.addPaintListener
is therefore ignored for any children
of a ScrolledComposite
.
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.
In releases before Symbian^3: 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.
Kinetic scrolling is only supported for lists that have the V_SCROLL
flag set.