Many standard controls are available, including number and text editors, list boxes and combo boxes, font and sound selectors, colour or greyscale selectors, and controls optimized for personal information management, such as convenient time/date navigation, and latitude and longitude editors.

Standard higher-level components include file browsers, Open and Save As dialogs, print settings and print preview. Scroll bars have dynamically-sized grab handles, and scroll application data while being dragged. A console is available for displaying comms terminals and text-based shells. Many types of list are supported, including hierarchical lists, multi-column lists in which each entry has several aligned fields, and snaking lists which wrap vertically into a container. A variety of standard lists is provided, and owner-draw lists may be written.

All these features are made conveniently accessible through APIs and resource files. The EIKON Style Guide in the SDK describes usage guidelines for producing EIKON applications which conform with Symbian’s look-and-feel standards for EIKON.

Each EIKON application runs in its own process, whose main thread has an instance of the EIKON environment, which controls all interaction on the screen and sidebar, and all keyboard interaction except a small number of hotkeys. Due to the effectiveness of the active object paradigm, secondary threads are rarely if ever used by native EPOC applications.

EIKON also provides a single server which runs in its own thread. The EIKON server is used to take control of the screen for higher-priority purposes than any normal application. The EIKON server uses the window server’s hotkey feature to capture certain key combinations regardless of which application is running. The EIKON server also monitors the taskbar below the screen for application-switching buttons. The EIKON server is responsible for presenting alarm and power-on-password dialogs to the user, for handling screen capture (in response to shift+ctrl+alt+S), for launching the system help application (in response to the help key), for displaying error messages from the kernel (eg for unexpected death in some application or server thread), for running code to close down and restart all applications before and after system backup, and for application-switching interactions with the shell.

5.3 The shell

The system shell provides a file browser which may be used to launch applications. The shell also controls the application launching/switching buttons on the taskbar (via the EIKON server), and the Extras bar which slides up onto the screen and acts like an extension to the fixed buttons.


The shell showing browser

Instant display of system settings such as memory and disk usage, battery state and owner information is provided by menu items or hotkeys from the System application.

A control panel provides access to settings for time/date, sound, screen, power, keyboard, printer, modems, dialling, internet service provider, and locale including home city. The control panel also allows the extras bar to be configured, and provides access to an application installer/uninstaller for third-party software.

Application installation is very simple: as noted in §3.2 Application Architecture, the application architecture dictates file location conventions and simply scans the file systems to find installed applications. Applications may be instantly installed by copying their files into the right locations, or by inserting a CF card with pre-installed applications on it. The application installer allows application developers to deliver a single file which is expanded into multiple files in the correct directories, on any selected drive. The package file’s extension is .sis: EPOC SDKs contain a makesis tool to build the packages, and .sis files may also be installed directly from a PC using EPOC Connect. After installation, a stripped-down version of the .sis file contains information used by the uninstaller. Versioning and dependency information are also supported.

The shell is started by the graphics window server, which is itself started immediately after F32 has successfully booted. The shell starts the EIKON server, which monitors the task-switching keys. In turn, the EIKON server starts the APPARC server, which monitors the file system and caches information about installed applications, running applications, open application files, and most recently used application files. For efficiency, the shell runs the EIKON server and APPARC server threads in the same process as the shell itself. For reliable multi-tasking even when applications are busy, the shell threads run at higher priority than standard applications.

5.4 System help

Help for standard applications and the shell (referred to as the System application) is provided in a single compressed database, which is launched (or switched to) using the help key at any time. The database may be conveniently searched or browsed.

Add-in applications may provide their own help, by using a menu item to launch the help browser with their specific help database. The aleppo tool, supplied with EPOC SDKs, creates help databases from Microsoft Word RTF files. An SGML format used in the aleppo processing chain is also documented, and may be used for creating help databases using other editors.

Further Reading

See EPOC Overview: Summary for an overview of EPOC Release 5, and for references to other papers in this overview series.

Symbian licenses, develops and supports the Symbian platform, providing leading software, user interfaces, application frameworks and development tools for Wireless Information Devices such as Communicators and Smartphones. Symbian is based in London, with offices worldwide. See Symbian’s website for more technical papers, information about Symbian, and information about EPOC.

Trademarks and acknowledgements

Symbian and the Symbian logo, EPOC and the EPOC logo are the trademarks of Symbian Ltd.

Java is a trademark of Sun Microsystems Inc.

Microsoft is a registered trademark of Microsoft Corporation. Windows NT is a trademark of Microsoft Corporation.

EPOC’s spell checker, thesaurus and dictionary use International CorrectSpell™, licensed to Symbian by Lernout and Hauspie Speech Products NV.

All other trademarks are acknowledged.

The author wishes to thank the many engineers and managers in Symbian who have contributed comments and information to this paper.