C/C++ Development User Guide
Before you begin
Getting Started
Preparing the Workbench
Creating a simple application
Creating a Makefile project
Importing an existing project
Building a project
Debugging projects
Importing C/C++ source files into Eclipse
Concepts
CDT Overview
CDT Projects
Perspectives available to C/C++ developers
Views in the C/C++ perspective
Code aids
Comments
Content Assist
Templates
Editing C/C++ files
C/C++ editor
Makefile
Navigation aids
Outline View
Project File views
C/C++ Search
Open Declaration
Build
Building C/C++ Projects
Debug
BreakPoints
Debug overview
Debug information
C/C++ search
C/C++ Indexer
C/C++ Indexer Opening or Closing a project
C/C++ Indexer Progress Bar
Tasks
Creating a project
Creating a project via a project template
Work with C or C++ project files
Display file members in the C/C++ Projects view
Converting a C or C++ nature for a project
Create a C/C++ file
Create a makefile
Hide files of a given type
Converting CDT 1.x Projects
Converting CDT 2.x Managed Make Projects
Adding Convert to a C/C++ Make Project to the New menu
Write code
Customize the C/C++ editor
Comment out code
Working with Content Assist
Using Content Assist
Creating and editing templates
Importing and exporting templates
Shift lines of code to the left or right
Navigate to C/C++ declarations by name
Refactoring
Building projects
Renaming a project
Defining Project Build settings
Filtering Errors
Selecting a binary parser
Adding Include paths and symbols
Selecting a project type
Building Manually
Removing Build Automatically
Autosaving on a build
Creating a make target
Customizing the Console view
Viewing and managing compile errors
Jumping to errors
Filtering the Problems view
Setting reminders
Running and debugging projects
Creating or editing a run/debug configuration
Selecting a run or debug configuration
Creating a run or debug configuration
Selecting an application to run or debug
Specifying execution arguments
Setting environment variables
Defining debug settings
Specifying the location of source files
Specifying the location of the run configuration
Debugging
Debugging a program
Debugging an existing executable
Using breakpoints, watchpoints, and breakpoint actions
Adding breakpoints
Adding watchpoints
Adding breakpoint actions
Removing breakpoints and watchpoints
Enabling or disable breakpoints and watchpoints
Attaching or removing breakpoint actions
Controlling debug execution
Stepping into assembler funcitons
Working with variables
Adding expressions
Working with registers
Working with memory
Searching the CDT
Selection Searching for C/C++ elements
Setting Source Folders
Reference
C/C++ Views and Editors
Selecting Views and Editors
C/C++ Projects view
Project Explorer view
Outline view
Make Targets view
Editor view
Console view
Problems view
Properties view
Search view
Call Hierarchy view
Type Hierarchy view
Include Browser view
Debug views
Registers view
Memory view
Memory view preferences
Disassembly view
Modules view
Signals view
Debug view
Debug preferences
C/C++ Icons
C/C++ Menubar
File Menu actions
Edit Menu actions
Refactor Menu actions
Navigate Menu actions
Search Menu actions
Project Menu actions
Run Menu actions
Window Menu actions
C/C++ Toolbar
C/C++ Open Element
C/C++ Find and Replace
C/C++ Preferences
Appearance preferences
Build Console preferences
Debug preferences
Breakpoint Actions preferences
GDB MI preferences
Source Code Locations preferences
Code Style preferences
Code Templates preferences
C/C++ Editor preferences
General preferences
Content Assist preferences
Advanced preferences
Folding preferences
Hovers preferences
Mark Occurrences preferences
Save Actions preferences
Scalability preferences
Syntax Coloring preferences
Templates preferences
Typing preferences
Environment preferences
File Types
Language Mappings preferences
Make
Makefile Editor
Settings
New CDT project wizard
Preferred Toolchains tab
Wizard Defaults tab
Makefile Project pages
Binary parsers
Error parsers
Discovery options
Builder settings
Behaviour
Property Pages Settings
Multiple Configurations Edit
C/C++ Properties
C/C++ Project properties
Resource page
Builders page
Common C/C++ Configurations handling
Manage Configurations dialog
Create Configuration dialog
Rename Configuration dialog
C/C++ Build
Build Variables page
Discovery options page
Environment page
Settings page
Tool Settings tab
Build Steps tab
Build Artifact tab
Binary Parsers tab
Error Parsers tab
Tool chain editor page
C/C++ General
Documentation page
Export Settings page
File Types page
Indexer page
Language Mapping page
Paths and Symbols page
Includes tab
Symbols tab
Libraries tab
Libraries path tab
Source Location tab
Output Location tab
References tab
Data Hierarchy tab
Project References page
Run/Debug Settings page
C/C++ Folder properies
Resource page
C/C++ Build
Discovery options page
Settings page
Tool Settings tab
Tool chain editor page
C/C++ General
Paths and Symbols page
Includes tab
Symbols tab
Libraries tab
Libraries path tab
Data Hierarchy tab
Run/Debug Settings page
C/C++ File Properties
Resource page
C/C++ Build
Discovery options page
Settings page
Tool Settings tab
Build Steps tab
Tool Chain Editor page
C/C++ General
Language Mapping page
Paths and Symbols page
Includes tab
Symbols tab
Data Hierarchy tab
Run/Debug Settings page
C/C++ New Project Wizard
Set Project Name and Location
Select Project type
Select Toolchain
Select Configurations
C/C++ Run and Debug
Main
Arguments
Environment
Debugger
Source
Common
C/C++ search page
What's new in CDT 6.0
Legal
Before you begin
Getting Started
Preparing the Workbench
Creating a simple application
Creating a Makefile project
Importing an existing project
Building a project
Debugging projects
Importing C/C++ source files into Eclipse
Concepts
CDT Overview
CDT Projects
Perspectives available to C/C++ developers
Views in the C/C++ perspective
Code aids
Comments
Content Assist
Templates
Editing C/C++ files
C/C++ editor
Makefile
Navigation aids
Outline View
Project File views
C/C++ Search
Open Declaration
Build
Building C/C++ Projects
Debug
BreakPoints
Debug overview
Debug information
C/C++ search
C/C++ Indexer
C/C++ Indexer Opening or Closing a project
C/C++ Indexer Progress Bar
Tasks
Creating a project
Creating a project via a project template
Work with C or C++ project files
Display file members in the C/C++ Projects view
Converting a C or C++ nature for a project
Create a C/C++ file
Create a makefile
Hide files of a given type
Converting CDT 1.x Projects
Converting CDT 2.x Managed Make Projects
Adding Convert to a C/C++ Make Project to the New menu
Write code
Customize the C/C++ editor
Comment out code
Working with Content Assist
Using Content Assist
Creating and editing templates
Importing and exporting templates
Shift lines of code to the left or right
Navigate to C/C++ declarations by name
Refactoring
Building projects
Renaming a project
Defining Project Build settings
Filtering Errors
Selecting a binary parser
Adding Include paths and symbols
Selecting a project type
Building Manually
Removing Build Automatically
Autosaving on a build
Creating a make target
Customizing the Console view
Viewing and managing compile errors
Jumping to errors
Filtering the Problems view
Setting reminders
Running and debugging projects
Creating or editing a run/debug configuration
Selecting a run or debug configuration
Creating a run or debug configuration
Selecting an application to run or debug
Specifying execution arguments
Setting environment variables
Defining debug settings
Specifying the location of source files
Specifying the location of the run configuration
Debugging
Debugging a program
Debugging an existing executable
Using breakpoints, watchpoints, and breakpoint actions
Adding breakpoints
Adding watchpoints
Adding breakpoint actions
Removing breakpoints and watchpoints
Enabling or disable breakpoints and watchpoints
Attaching or removing breakpoint actions
Controlling debug execution
Stepping into assembler funcitons
Working with variables
Adding expressions
Working with registers
Working with memory
Searching the CDT
Selection Searching for C/C++ elements
Setting Source Folders
Reference
C/C++ Views and Editors
Selecting Views and Editors
C/C++ Projects view
Project Explorer view
Outline view
Make Targets view
Editor view
Console view
Problems view
Properties view
Search view
Call Hierarchy view
Type Hierarchy view
Include Browser view
Debug views
Registers view
Memory view
Memory view preferences
Disassembly view
Modules view
Signals view
Debug view
Debug preferences
C/C++ Icons
C/C++ Menubar
File Menu actions
Edit Menu actions
Refactor Menu actions
Navigate Menu actions
Search Menu actions
Project Menu actions
Run Menu actions
Window Menu actions
C/C++ Toolbar
C/C++ Open Element
C/C++ Find and Replace
C/C++ Preferences
Appearance preferences
Build Console preferences
Debug preferences
Breakpoint Actions preferences
GDB MI preferences
Source Code Locations preferences
Code Style preferences
Code Templates preferences
C/C++ Editor preferences
General preferences
Content Assist preferences
Advanced preferences
Folding preferences
Hovers preferences
Mark Occurrences preferences
Save Actions preferences
Scalability preferences
Syntax Coloring preferences
Templates preferences
Typing preferences
Environment preferences
File Types
Language Mappings preferences
Make
Makefile Editor
Settings
New CDT project wizard
Preferred Toolchains tab
Wizard Defaults tab
Makefile Project pages
Binary parsers
Error parsers
Discovery options
Builder settings
Behaviour
Property Pages Settings
Multiple Configurations Edit
C/C++ Properties
C/C++ Project properties
Resource page
Builders page
Common C/C++ Configurations handling
Manage Configurations dialog
Create Configuration dialog
Rename Configuration dialog
C/C++ Build
Build Variables page
Discovery options page
Environment page
Settings page
Tool Settings tab
Build Steps tab
Build Artifact tab
Binary Parsers tab
Error Parsers tab
Tool chain editor page
C/C++ General
Documentation page
Export Settings page
File Types page
Indexer page
Language Mapping page
Paths and Symbols page
Includes tab
Symbols tab
Libraries tab
Libraries path tab
Source Location tab
Output Location tab
References tab
Data Hierarchy tab
Project References page
Run/Debug Settings page
C/C++ Folder properies
Resource page
C/C++ Build
Discovery options page
Settings page
Tool Settings tab
Tool chain editor page
C/C++ General
Paths and Symbols page
Includes tab
Symbols tab
Libraries tab
Libraries path tab
Data Hierarchy tab
Run/Debug Settings page
C/C++ File Properties
Resource page
C/C++ Build
Discovery options page
Settings page
Tool Settings tab
Build Steps tab
Tool Chain Editor page
C/C++ General
Language Mapping page
Paths and Symbols page
Includes tab
Symbols tab
Data Hierarchy tab
Run/Debug Settings page
C/C++ New Project Wizard
Set Project Name and Location
Select Project type
Select Toolchain
Select Configurations
C/C++ Run and Debug
Main
Arguments
Environment
Debugger
Source
Common
C/C++ search page
What's new in CDT 6.0
Legal
Capability Scanner User Guide
Release Notes
Concepts
Capability Scanner Overview
Symbian Platform Security
Symbian Capability
Symbian API Capabilities List
Certificate
References
CBuild-Console
Problems View
Platform Security View
Error Log
Reserved Capability Names
Tasks
Opening the Platform Security view
Activating the Capability Scanner
Release Notes
Concepts
Capability Scanner Overview
Symbian Platform Security
Symbian Capability
Symbian API Capabilities List
Certificate
References
CBuild-Console
Problems View
Platform Security View
Error Log
Reserved Capability Names
Tasks
Opening the Platform Security view
Activating the Capability Scanner
Carbide Tools
API Query
Release Notes
Getting Started
Overview
Basic walk-through
Concepts
Data source
Software Development Kit (SDK)
API metadata file
Tasks
Configuring data sources
Running an API query from the Search tab
Running an API query from the context menu
Running an API Query based on the source code identifier
Running an API Query for a project
Data source configurations
API metadata file data source
Configuring the API metadata file data source properties
Legal
Symbian Foundation Templates Wizard
Release Notes
Overview
Legal
CodeScanner User Guide
Release Notes
Overview
Quick Start
CodeScanner preferences
File Filters
Rules
Running CodeScanner
Carbide.c++ IDE
Command-line Tools
Viewing Reports
Optimizing CodeScanner
Customizing CodeScanner
Bugs Fixed
Symbian OS Crash Debugger
Concepts
Critical Threads and Processes
Debug Monitor
Kernel Calls and Thread Context
Process and Thread Priorities
Symbian OS Memory Map
Stacks
Thread and Process Exit Information Summary
Thread State Summary
Virtual Memory and Run Addresses
Reference
Overview
ARM Information
ARM Exception Types
ARM Fault Status Register Values
ARM Processor Modes
Crash Debugger Commands
C - Display contents of Object Container
c - Display contents of Object Container
f - Display Kernel Fault Information
i - Display Information for the Current Process and Thread
m - Do a Memory Dump
o - Display Brief DObject Information
r - Dump Register Contents
q - Display Full DObject Information
X - Leave Debugger, Return to Bootloader
x - Leave Debugger, Cold Restart ROM Image
z - Do a Memory Dump, Skipping over Unmapped Memory
Crash Debugger Views
Crash Debugger Console View
Memory Dump Options
Object Address
Crash Debugger Launch Configuration
Tasks
Call Stack
General Points
Finding the Stack
Tracing through the Stack Heuristically
Walking through the Call Stack
Examining Kernel Items
Kernel Objects
Kernel Containers
Extracting Kernel Information
Scheduler State
Current Thread State
Current Process State
Current Data Section Process
Finding Fault Types
Unhandled Exceptions
Panics
Memory
Examining Memory
Dumping the Contents of Classes
Setting Up the Debug Monitor
Using the MAKSYM Tool
Epocwind.out Scanner Guide
Working with Epocwind.out Scanner
Concepts
Symbian PlatSec
Symbian Capability
Symbian OS Emulation
EPOCWIND.OUT File
PlatSec Warning/Error Messages
Build Configuration
References
PlatSec Diagnostics Console
Tasks
Opening the PlatSec Diagnostics Console
Activating the PlatSec Diagnostics Console
Carbide.c++ Plug-in Developer Guide
Carbide SDK Overview
Getting Started
Background information
Setting up your development environment
Installing the Carbide.c++ Plug-in SDK help
Importing the SDK example and leavescan plug-ins
Debugging a Carbide.c++ plug-in
Reference
API Reference
com.nokia.carbide.cdt.builder
com.nokia.carbide.cdt.builder.builder
com.nokia.carbide.cdt.builder.project
com.nokia.carbide.cpp.sdk.core
com.nokia.carbide.cpp.sdk.ui
com.nokia.carbide.cpp.sdk.ui.shared
com.nokia.carbide.cpp.project.core
com.nokia.carbide.cpp.project.core.processes
com.nokia.carbide.cpp.epoc.engine
com.nokia.carbide.cpp.epoc.engine.image
com.nokia.carbide.cpp.epoc.engine.model
com.nokia.carbide.cpp.epoc.engine.model.bldinf
com.nokia.carbide.cpp.epoc.engine.model.makefile
com.nokia.carbide.cpp.epoc.engine.model.makefile.image
com.nokia.carbide.cpp.epoc.engine.model.mmp
com.nokia.carbide.cpp.epoc.engine.preprocessor
com.nokia.carbide.cpp.ui
com.nokia.carbide.template.engine
com.nokia.carbide.templatewizard.process
com.nokia.carbide.templatewizard.processes
Extension Points Reference
Wizard Template
Changes to the Carbide API
Custom Components
Component Definition Element
Component Element
Symbian Element
Designer Images Element
Attributes Element
Defining a Transient Component
Properties Element
Events Element
Implementations
JavaScript
Wrapped Types
JavaScript Globals
JavaScript Libraries
Rendering
Common Issues and Troubleshooting
RSS Source Mapping
Mappings
Resource Member Mapping
Simple Member Mapping
Enum Member Mapping
Identifier Member Mapping
Instance Mapping
Reference Mapping
Bitmask Mapping
Array Member Mapping
Fixed Mapping
Type Mapping
Conditional Mapping
Source Generation
Contributions
Locations
DefineLocation Element
Cpp location segments
Owned/Non-owned/Filtered Locations
Template element
Inline Element
CDATA Tag
Forms
Macros
Macro argument modifiers
Expanding macros
Script Reference
Contribution Engine Routines
Debugging
Inheritance
Component XSD Description
Tasks
Adding Items to the Carbide Menu
Adding Global Preferences to the Carbide Extensions group
Adding Plug-in Help
Creating Wizard Templates
Carbide Plug-in Overview
Getting Carbide Project Information
Retrieving INF and MMP Project Information
Installing Your Own Carbide Plug-ins
UI Designer Custom Components
Overview
Custom Component Architecture
Developing New Components
Components Menu
Force Save
Refresh Components
Select Custom Component Projects...
Configure SourceGen Debugging...
Tutorials
Equal Container S60
Create Project for Equal Container Example
Write the Component and Script Code
Change CCoeControl’s Layout Behavior to be Dynamic
Expose the New Container in the Design Wizard
Create UI Design for UI Designer Project
Vertical Label S60
Create Project for Example Component Files
Enable Components Menu
Add Custom Component to UI Designer
Create UI Designer Project to Test Custom Component
XML Details
Vertical Label UIQ
Create Project for Example Component Files
Enable Components Menu
Add Custom Component to UI Designer
Create UI Designer Project to Test Custom Component
XML Details
Legal
Dependency Explorer
Release Notes
Getting Started
Overview
Basic walk-through
Concepts
Software Development Kit (SDK)
Component
Function
Properties
Tasks
Managing SDKs
Selecting SDKs
Setting preferences
Locating components
Analysing components
Checking component properties
Checking imported functions
Checking exported functions
Finding components
Searching for components and functions
Viewing source files
Viewing source file in project
Viewing method call locations
Exporting the report
References
Messages and notifications
Toolbar
Appendix: Static Dependencies to Dynamic Data
Legal
Legal
API Query
Release Notes
Getting Started
Overview
Basic walk-through
Concepts
Data source
Software Development Kit (SDK)
API metadata file
Tasks
Configuring data sources
Running an API query from the Search tab
Running an API query from the context menu
Running an API Query based on the source code identifier
Running an API Query for a project
Data source configurations
API metadata file data source
Configuring the API metadata file data source properties
Legal
Symbian Foundation Templates Wizard
Release Notes
Overview
Legal
CodeScanner User Guide
Release Notes
Overview
Quick Start
CodeScanner preferences
File Filters
Rules
Running CodeScanner
Carbide.c++ IDE
Command-line Tools
Viewing Reports
Optimizing CodeScanner
Customizing CodeScanner
Bugs Fixed
Symbian OS Crash Debugger
Concepts
Critical Threads and Processes
Debug Monitor
Kernel Calls and Thread Context
Process and Thread Priorities
Symbian OS Memory Map
Stacks
Thread and Process Exit Information Summary
Thread State Summary
Virtual Memory and Run Addresses
Reference
Overview
ARM Information
ARM Exception Types
ARM Fault Status Register Values
ARM Processor Modes
Crash Debugger Commands
C - Display contents of Object Container
c - Display contents of Object Container
f - Display Kernel Fault Information
i - Display Information for the Current Process and Thread
m - Do a Memory Dump
o - Display Brief DObject Information
r - Dump Register Contents
q - Display Full DObject Information
X - Leave Debugger, Return to Bootloader
x - Leave Debugger, Cold Restart ROM Image
z - Do a Memory Dump, Skipping over Unmapped Memory
Crash Debugger Views
Crash Debugger Console View
Memory Dump Options
Object Address
Crash Debugger Launch Configuration
Tasks
Call Stack
General Points
Finding the Stack
Tracing through the Stack Heuristically
Walking through the Call Stack
Examining Kernel Items
Kernel Objects
Kernel Containers
Extracting Kernel Information
Scheduler State
Current Thread State
Current Process State
Current Data Section Process
Finding Fault Types
Unhandled Exceptions
Panics
Memory
Examining Memory
Dumping the Contents of Classes
Setting Up the Debug Monitor
Using the MAKSYM Tool
Epocwind.out Scanner Guide
Working with Epocwind.out Scanner
Concepts
Symbian PlatSec
Symbian Capability
Symbian OS Emulation
EPOCWIND.OUT File
PlatSec Warning/Error Messages
Build Configuration
References
PlatSec Diagnostics Console
Tasks
Opening the PlatSec Diagnostics Console
Activating the PlatSec Diagnostics Console
Carbide.c++ Plug-in Developer Guide
Carbide SDK Overview
Getting Started
Background information
Setting up your development environment
Installing the Carbide.c++ Plug-in SDK help
Importing the SDK example and leavescan plug-ins
Debugging a Carbide.c++ plug-in
Reference
API Reference
com.nokia.carbide.cdt.builder
com.nokia.carbide.cdt.builder.builder
com.nokia.carbide.cdt.builder.project
com.nokia.carbide.cpp.sdk.core
com.nokia.carbide.cpp.sdk.ui
com.nokia.carbide.cpp.sdk.ui.shared
com.nokia.carbide.cpp.project.core
com.nokia.carbide.cpp.project.core.processes
com.nokia.carbide.cpp.epoc.engine
com.nokia.carbide.cpp.epoc.engine.image
com.nokia.carbide.cpp.epoc.engine.model
com.nokia.carbide.cpp.epoc.engine.model.bldinf
com.nokia.carbide.cpp.epoc.engine.model.makefile
com.nokia.carbide.cpp.epoc.engine.model.makefile.image
com.nokia.carbide.cpp.epoc.engine.model.mmp
com.nokia.carbide.cpp.epoc.engine.preprocessor
com.nokia.carbide.cpp.ui
com.nokia.carbide.template.engine
com.nokia.carbide.templatewizard.process
com.nokia.carbide.templatewizard.processes
Extension Points Reference
Wizard Template
Changes to the Carbide API
Custom Components
Component Definition Element
Component Element
Symbian Element
Designer Images Element
Attributes Element
Defining a Transient Component
Properties Element
Events Element
Implementations
JavaScript
Wrapped Types
JavaScript Globals
JavaScript Libraries
Rendering
Common Issues and Troubleshooting
RSS Source Mapping
Mappings
Resource Member Mapping
Simple Member Mapping
Enum Member Mapping
Identifier Member Mapping
Instance Mapping
Reference Mapping
Bitmask Mapping
Array Member Mapping
Fixed Mapping
Type Mapping
Conditional Mapping
Source Generation
Contributions
Locations
DefineLocation Element
Cpp location segments
Owned/Non-owned/Filtered Locations
Template element
Inline Element
CDATA Tag
Forms
Macros
Macro argument modifiers
Expanding macros
Script Reference
Contribution Engine Routines
Debugging
Inheritance
Component XSD Description
Tasks
Adding Items to the Carbide Menu
Adding Global Preferences to the Carbide Extensions group
Adding Plug-in Help
Creating Wizard Templates
Carbide Plug-in Overview
Getting Carbide Project Information
Retrieving INF and MMP Project Information
Installing Your Own Carbide Plug-ins
UI Designer Custom Components
Overview
Custom Component Architecture
Developing New Components
Components Menu
Force Save
Refresh Components
Select Custom Component Projects...
Configure SourceGen Debugging...
Tutorials
Equal Container S60
Create Project for Equal Container Example
Write the Component and Script Code
Change CCoeControl’s Layout Behavior to be Dynamic
Expose the New Container in the Design Wizard
Create UI Design for UI Designer Project
Vertical Label S60
Create Project for Example Component Files
Enable Components Menu
Add Custom Component to UI Designer
Create UI Designer Project to Test Custom Component
XML Details
Vertical Label UIQ
Create Project for Example Component Files
Enable Components Menu
Add Custom Component to UI Designer
Create UI Designer Project to Test Custom Component
XML Details
Legal
Dependency Explorer
Release Notes
Getting Started
Overview
Basic walk-through
Concepts
Software Development Kit (SDK)
Component
Function
Properties
Tasks
Managing SDKs
Selecting SDKs
Setting preferences
Locating components
Analysing components
Checking component properties
Checking imported functions
Checking exported functions
Finding components
Searching for components and functions
Viewing source files
Viewing source file in project
Viewing method call locations
Exporting the report
References
Messages and notifications
Toolbar
Appendix: Static Dependencies to Dynamic Data
Legal
Legal
Carbide.c++ User Guide
Release notes
Carbide.c++ Overview
System Requirements
Carbide Help
Supported Target Types
Supported SDKs
Updating Carbide
Tour of the UI
Concepts
Application Emulator Debug Example
1. Creating New Projects
2. Building Projects and Symbian Components
3. Creating a Launch Configuration
4. Debugging a Symbian OS Program
DLL Emulator Example
Carbide Menus
ABLD Actions
Build All Configurations
Build PKG File
Build Symbian Component
Clean Symbian Component
Compile
Context menus
Freeze Exports
Freeze Symbian Component
On-Device Connections...
Open Command Window
Preprocess
Run CodeScanner
Run Leavescan
S60 UI Designer
Show in Explorer
Symbian OS C++ Class
Symbian OS C++ Project
Symbian OS MMP File
Toggle HW Breakpoint
Update Projects
Project management
Carbide C/C++ perspective
Carbide.c++ News view
Executables view
Project Explorer view
Remote Connections view
Symbian Project Navigator view
Workspace Information
Carbide.c++ preferences
Bug Reports
Build
Carbide.c++ News
Debugger
CodeScanner
Diagnostic Logs
Leavescan Preferences
Performance Investigator
Platform Filtering Preferences
Preprocess
SDK Preferences
UI Designer
Code Styles
Setting the Workspace Code Style
Reformatting a Source File
Working with SDKs
SDK Preferences
Adding an SDK
Adding SDKs
Searching for SDKs
Viewing SDK Properties
Editing SDK Properties
Adding Symbian Custom Kits
Creating projects
Project Templates
Creating from a Template
Importing Projects from a BLD.INF File
Importing Projects with Inter-Dependencies
N-Gage Projects
C/C++ Project and File Properties
Carbide Build Configurations
SIS Builder
SIS Properties
Environment
Arguments
Paths and Symbols
ROM Builder
Carbide Macro Settings
Carbide Project Settings
Building projects
Active Build Configuration
Setting an Active Configuration
Adding/Removing Build Configurations
Preprocessing Files
Dependency Tracking
Building Projects
Cleaning Projects
Build All Configurations
Compile
Build Symbian Component
Clean Symbian Component
Freeze Symbian Component
Build PKG File
Building a ROM Image File
ABLD Actions
Freeze Exports
Resource and project editors
AIF files
AIF Editor
Creating an AIF File
Classes
Adding Classes
New Class Wizard
Adding Symbian OS Classes Wizard
INF editor
Overview tab
Exports tab
BLD.INF tab
Add / Edit Make File
Add / Edit MMP File
MBM/MIF files
MBM Editor
Creating MBM Files
MBM/MIF Editor
MMP files
MMP Wizard
MMP Editor
Sources tab
Libraries tab
Options tab
MMP File tab
Launch configurations
New Launch Configuration Wizard
Debug dialog
Launch types
Applications
Application TRK
Attach to Process
Emulation
Sophia (STI)
System TRK
Trace32
Configuration panes
Arguments
Common
Debugger
Executables
File Transfer
Installation
Main
ROM Image
ROM Log File
Sources
x86 Exceptions
Customizing launch configurations
Filtering launch configurations
Qt project support
Qt development setup
Creating Qt projects
Importing Qt projects
Qt C/C++ perspective
Qt preference panel
Qt project properties
Debugging projects
Running a program
Debug perspective
BreakPoints view
Console view
Debug view
Disassembly view
Executables view
Variables and Expressions
Variables view
Viewing Variables
Adding and Removing Global Variables
Expressions view
Viewing Expressions
Editing Expressions
Adding and Removing Expressions
Memory view
Working with Memory
Opening a Memory View
Adding a Memory Monitor
Adding a Memory Rendering
Removing a Memory Monitor or Rendering
Memory Rendering Options
Modules View
Registers
Registers view
Opening a Registers View
Changing Register Data Views
Expanding Register Groups
Changing Register Values
ARM Registers
Symbian OS Data view
Setting the Refresh Rate
Debugging actions
View debugging
Starting and Terminating
Suspending and Resuming
Stepping Over, Into, and Out of Routines
Other useful commands
Reposition the program counter
Breakpoints
Viewing breakpoints
Breakpoint status indicators
Enabling, disabling, and removing breakpoints
Breakpoint properties
Creating conditional breakpoints
Creating temporary breakpoints
Exporting breakpoints and watchpoints
Importing breakpoints and watchpoints
Toggle hardware breakpoints
Watchpoints
Viewing watchpoints
Watchpoint status indicators
Setting and removing watchpoints
Enabling and disabling watchpoints
Exporting breakpoints and watchpoints
Importing breakpoints and watchpoints
Variables and Expressions
Viewing variables
Adding and removing global variables
Viewing expressions
Adding and removing expressions
Editing expressions
On-Device Connections Overview
Remote Connections view
Adding, editing, and deleting connections
Exporting remote connections
Importing remote connections
Emulator projects
Setting Environment for x86 Compiler
Unsetting Built-in Environment
Run mode projects
Run Mode Overview
Auto-Targeting of Executables
Run Mode Debug Example
1. Preconditions to On-Device Debugging
2. Installing an On-Device Debug Agent
3. Creating a PKG File
4. Creating a .SIS File
5. Deploying Programs
6. Launch Configuration Setup
Debug (On-device Debugging) Overview
7. Debugging Applications
Debugging DLLs
Importing a Symbian Executable
Attaching to a Symbian OS Process
Debugging a Symbian OS Program
Registers
Symbian OS Data View
Troubleshooting
Stop mode projects
Stop Mode Debug Example
1. On-Device Debugging Preconditions
2. Trace32 Support
Main
Connection
Debugger
ROM Image
Executables
Source
Commmon
3. Sophia Target Interface Support
Main
Connection
Debugger
ROM Image
Executables
Source
Commmon
4. Using Soft Attach
Building a ROM Image File
ARM Registers
Symbian OS Data View
Toggle HW Breakpoint
Debugging variations
Emulation Debugging
Debugging DLLs
Debugging in ROM
Importing Symbian Executables
System Search
System Search view
System Search preferences
Tips & Hints
Creating Carbide Tools
Shortcuts
Microsoft Visual Studio Shortcuts
Nokia Carbide.c++ Shortcuts
Nokia CodeWarrior Shortcuts
Bugs fixed
Legal
Release notes
Carbide.c++ Overview
System Requirements
Carbide Help
Supported Target Types
Supported SDKs
Updating Carbide
Tour of the UI
Concepts
Application Emulator Debug Example
1. Creating New Projects
2. Building Projects and Symbian Components
3. Creating a Launch Configuration
4. Debugging a Symbian OS Program
DLL Emulator Example
Carbide Menus
ABLD Actions
Build All Configurations
Build PKG File
Build Symbian Component
Clean Symbian Component
Compile
Context menus
Freeze Exports
Freeze Symbian Component
On-Device Connections...
Open Command Window
Preprocess
Run CodeScanner
Run Leavescan
S60 UI Designer
Show in Explorer
Symbian OS C++ Class
Symbian OS C++ Project
Symbian OS MMP File
Toggle HW Breakpoint
Update Projects
Project management
Carbide C/C++ perspective
Carbide.c++ News view
Executables view
Project Explorer view
Remote Connections view
Symbian Project Navigator view
Workspace Information
Carbide.c++ preferences
Bug Reports
Build
Carbide.c++ News
Debugger
CodeScanner
Diagnostic Logs
Leavescan Preferences
Performance Investigator
Platform Filtering Preferences
Preprocess
SDK Preferences
UI Designer
Code Styles
Setting the Workspace Code Style
Reformatting a Source File
Working with SDKs
SDK Preferences
Adding an SDK
Adding SDKs
Searching for SDKs
Viewing SDK Properties
Editing SDK Properties
Adding Symbian Custom Kits
Creating projects
Project Templates
Creating from a Template
Importing Projects from a BLD.INF File
Importing Projects with Inter-Dependencies
N-Gage Projects
C/C++ Project and File Properties
Carbide Build Configurations
SIS Builder
SIS Properties
Environment
Arguments
Paths and Symbols
ROM Builder
Carbide Macro Settings
Carbide Project Settings
Building projects
Active Build Configuration
Setting an Active Configuration
Adding/Removing Build Configurations
Preprocessing Files
Dependency Tracking
Building Projects
Cleaning Projects
Build All Configurations
Compile
Build Symbian Component
Clean Symbian Component
Freeze Symbian Component
Build PKG File
Building a ROM Image File
ABLD Actions
Freeze Exports
Resource and project editors
AIF files
AIF Editor
Creating an AIF File
Classes
Adding Classes
New Class Wizard
Adding Symbian OS Classes Wizard
INF editor
Overview tab
Exports tab
BLD.INF tab
Add / Edit Make File
Add / Edit MMP File
MBM/MIF files
MBM Editor
Creating MBM Files
MBM/MIF Editor
MMP files
MMP Wizard
MMP Editor
Sources tab
Libraries tab
Options tab
MMP File tab
Launch configurations
New Launch Configuration Wizard
Debug dialog
Launch types
Applications
Application TRK
Attach to Process
Emulation
Sophia (STI)
System TRK
Trace32
Configuration panes
Arguments
Common
Debugger
Executables
File Transfer
Installation
Main
ROM Image
ROM Log File
Sources
x86 Exceptions
Customizing launch configurations
Filtering launch configurations
Qt project support
Qt development setup
Creating Qt projects
Importing Qt projects
Qt C/C++ perspective
Qt preference panel
Qt project properties
Debugging projects
Running a program
Debug perspective
BreakPoints view
Console view
Debug view
Disassembly view
Executables view
Variables and Expressions
Variables view
Viewing Variables
Adding and Removing Global Variables
Expressions view
Viewing Expressions
Editing Expressions
Adding and Removing Expressions
Memory view
Working with Memory
Opening a Memory View
Adding a Memory Monitor
Adding a Memory Rendering
Removing a Memory Monitor or Rendering
Memory Rendering Options
Modules View
Registers
Registers view
Opening a Registers View
Changing Register Data Views
Expanding Register Groups
Changing Register Values
ARM Registers
Symbian OS Data view
Setting the Refresh Rate
Debugging actions
View debugging
Starting and Terminating
Suspending and Resuming
Stepping Over, Into, and Out of Routines
Other useful commands
Reposition the program counter
Breakpoints
Viewing breakpoints
Breakpoint status indicators
Enabling, disabling, and removing breakpoints
Breakpoint properties
Creating conditional breakpoints
Creating temporary breakpoints
Exporting breakpoints and watchpoints
Importing breakpoints and watchpoints
Toggle hardware breakpoints
Watchpoints
Viewing watchpoints
Watchpoint status indicators
Setting and removing watchpoints
Enabling and disabling watchpoints
Exporting breakpoints and watchpoints
Importing breakpoints and watchpoints
Variables and Expressions
Viewing variables
Adding and removing global variables
Viewing expressions
Adding and removing expressions
Editing expressions
On-Device Connections Overview
Remote Connections view
Adding, editing, and deleting connections
Exporting remote connections
Importing remote connections
Emulator projects
Setting Environment for x86 Compiler
Unsetting Built-in Environment
Run mode projects
Run Mode Overview
Auto-Targeting of Executables
Run Mode Debug Example
1. Preconditions to On-Device Debugging
2. Installing an On-Device Debug Agent
3. Creating a PKG File
4. Creating a .SIS File
5. Deploying Programs
6. Launch Configuration Setup
Debug (On-device Debugging) Overview
7. Debugging Applications
Debugging DLLs
Importing a Symbian Executable
Attaching to a Symbian OS Process
Debugging a Symbian OS Program
Registers
Symbian OS Data View
Troubleshooting
Stop mode projects
Stop Mode Debug Example
1. On-Device Debugging Preconditions
2. Trace32 Support
Main
Connection
Debugger
ROM Image
Executables
Source
Commmon
3. Sophia Target Interface Support
Main
Connection
Debugger
ROM Image
Executables
Source
Commmon
4. Using Soft Attach
Building a ROM Image File
ARM Registers
Symbian OS Data View
Toggle HW Breakpoint
Debugging variations
Emulation Debugging
Debugging DLLs
Debugging in ROM
Importing Symbian Executables
System Search
System Search view
System Search preferences
Tips & Hints
Creating Carbide Tools
Shortcuts
Microsoft Visual Studio Shortcuts
Nokia Carbide.c++ Shortcuts
Nokia CodeWarrior Shortcuts
Bugs fixed
Legal
New Bug Report
Bug Report
Bug Reports Preference panel
New Bug Report or Suggestion page
Report Summary Page
Bug Report
Bug Reports Preference panel
New Bug Report or Suggestion page
Report Summary Page
Performance Investigator User Guide
Release notes
Getting Started with Performance Investigator
Software Performance
Overview
Software Performance
Basic Analysis Procedure
Server Threads Analysis
Dynamic Binary Support Trace
Dynamic Memory Characteristics
Function Level Load Analysis
Performance Measurement Methods
Compile-Time Symbolic Information
DFC, Delayed Function Call
Dynamic Binary Resolution
File System
Interrupt Stack
Kernel Containers
Kernel Hook
Link Register
OS Thread Name and ID
Periodic Interrupt
Program Counter value
Read/Write Load Characteristics
ROFS
Profiler
Profiler
Installing the Profiler
Connecting by Bluetooth
Connecting by Serial Interface
Connecting by USB
Using the Profiler
Profiler options
Setting Tracing options
Setting Output Settings
Setting Advanced options
Trace items
Address/Thread Trace
Button Press Trace
Dynamic Binary Support Trace
Function Call Trace
Memory Trace
Power Usage Trace
Thread Priority Trace
Using the Command-line
Profiler Settings File
Analyzer
Analyzer Overview
Performance Investigator Analyzer
Basic Operation
Controls
Graph views
Thread Load
Binary Load
Function Load
Function Calls
Threshold Limits for Traced Data
Importing Profiler Data Files
Select Build Files for ROM
Examining a Profiling Project
Memory Usage
Memory Usage view
Memory Usage Statistics
Memory Usage menu
Menus
Context Menu Options
Save Table
Investigator menu
Memory Graph
Power Graph
Show Button Events
Options
Changing Button Event Information
Changing Graph Colors
Setting Thresholds
Setting Time Interval
Setting Key Press Profile
Power Usage
Power Usage Settings
Power Usage Statistics
Power Graph menu
Using Source Lookup
Analyzing Table Data
Acronyms
Bugs fixed
Legal
Release notes
Getting Started with Performance Investigator
Software Performance
Overview
Software Performance
Basic Analysis Procedure
Server Threads Analysis
Dynamic Binary Support Trace
Dynamic Memory Characteristics
Function Level Load Analysis
Performance Measurement Methods
Compile-Time Symbolic Information
DFC, Delayed Function Call
Dynamic Binary Resolution
File System
Interrupt Stack
Kernel Containers
Kernel Hook
Link Register
OS Thread Name and ID
Periodic Interrupt
Program Counter value
Read/Write Load Characteristics
ROFS
Profiler
Profiler
Installing the Profiler
Connecting by Bluetooth
Connecting by Serial Interface
Connecting by USB
Using the Profiler
Profiler options
Setting Tracing options
Setting Output Settings
Setting Advanced options
Trace items
Address/Thread Trace
Button Press Trace
Dynamic Binary Support Trace
Function Call Trace
Memory Trace
Power Usage Trace
Thread Priority Trace
Using the Command-line
Profiler Settings File
Analyzer
Analyzer Overview
Performance Investigator Analyzer
Basic Operation
Controls
Graph views
Thread Load
Binary Load
Function Load
Function Calls
Threshold Limits for Traced Data
Importing Profiler Data Files
Select Build Files for ROM
Examining a Profiling Project
Memory Usage
Memory Usage view
Memory Usage Statistics
Memory Usage menu
Menus
Context Menu Options
Save Table
Investigator menu
Memory Graph
Power Graph
Show Button Events
Options
Changing Button Event Information
Changing Graph Colors
Setting Thresholds
Setting Time Interval
Setting Key Press Profile
Power Usage
Power Usage Settings
Power Usage Statistics
Power Graph menu
Using Source Lookup
Analyzing Table Data
Acronyms
Bugs fixed
Legal
Qt Development User Guide
Getting Started
Managing Projects
Adding Files to the Project
Managing Resources
Custom Designer Plugins
What's New
Getting Started
Managing Projects
Adding Files to the Project
Managing Resources
Custom Designer Plugins
What's New
S60 5th Edition C++ Developer's Library v1.4
Legal notice
Change history and release notes
Guide to S60 5th Ed C++ Developer's Library v1.4
Searching and navigating the library
Library contents
Introduction to S60 5th Edition
New features in S60 5th Edition
New C++ APIs in S60 5th Edition
Platform UID
S60 devices
Supported formats and device capabilities
Display
Keys
Required keys
Extra keys
Full QWERTY keyboard
Locking the keys and the screen
Memory
S60 device user experience
Where the S60 user interface belongs
Keypad functions
Key presses
Keypad tone
Typical functions of the standard keys
Typical full QWERTY keyboard functions
Navigation
Navigating in applications
Navigation using tabs
Hierarchical application structures
Navigation using links
Multitasking
Softkeys and basic softkey configuration
Labeling the Selection key
Text editing
Editing menu
Editing indicators
Selecting text
S60 UI with rotation
What is S60 UI with side softkeys
Default layout description and the basic principles of rotation
Interaction
Rotation
Basic interaction style
Designing an application UI for the layout
Main pane
Status pane and the context pane
Title pane
Navi pane
Signal pane
Battery pane
Universal indicators
Control pane vs. softkey pane
Getting started
Before you start
Tutorial 1: Environment and tools
S60 platform SDKs
Integrated Development Environment
Compilers
Command line tools
Devices
Tutorial 2: Creating an application
Development and deployment steps
To start Carbide.c++
To develop applications for the emulator
To create a project with a wizard
To build an application for the emulator
To run the application in the emulator
Tutorial 3: Importing an existing application, description of files
Importing HelloWorldBasic to Carbide.c++
HelloWorldBasic folder structure
HelloWorldBasic files
HelloWorldBasic bld.inf
HelloWorldBasic mmp file
HelloWorldBasic icons make file
HelloWorldBasic graphics files
HelloWorldBasic backup registration file
HelloWorldBasic .pkg file
Tutorial 4: Deploying an application
To choose a package file for the build
To build an application for the mobile device
Deploying applications to mobile devices
Distributing your application to a wider audience
Tutorial 5: S60 project contents
S60 project types
Application UIDs
S60 project files
Build configuration files
Source files
Package files
Output files
Installation file
Tutorial 6: Development process
Analysis and design
Coding
Building
Testing
Deploying
To make an installation package
Designing applications for S60 5th Edition
Porting applications to S60 5th Edition
Binary compatibility
Designing application UIs for both touch and non-touch devices
User experience considerations
Mandatory changes for custom components
Changing the platform UID
Handling pointer events in custom controls
Implementing support for scalable UI
Listening for scrollbar touch events
Additional features
Enabling additional touch events for your application
Checking for touch support at runtime
Distinguishing between touch and keypad events in listboxes and grids
Touch UI
Touch support for common S60 components
Finger usable UI
Touch UI user experience
Designing applications for touch UI
Touch strategies
Touch-enabled vs. touch-optimized
Usability considerations
Scale and positioning of controls
Finger vs. stylus
Sensor interaction
Feedback
Select and activate: two short taps
Text fields
Touch down and hold
Text input
Adaptive search
Status pane items
Touch-based multiple selection
New component flags
New flags in CEikListBox
New flags in CEikDialog
New observer interfaces
Tactile feedback
Sensor interaction
S60 5th Edition API specifications
Toolbar API
Changes and release information
Class structure for the toolbar API
Enabling quick access to functions with a toolbar
Constructing the toolbar
Adding and removing toolbar items
Accessing the toolbar from applications or application views
Accessing toolbar items
Handling toolbar item events
Controlling toolbar visibility
Showing and hiding toolbar items
Dynamic initialization of the toolbar
Setting toolbar properties
Creating the toolbar extension
Adding and removing toolbar extension items
Accessing toolbar extension items
Showing or hiding the toolbar extension
Dimming or hiding toolbar extension items
Generic button API
Changes and release information
Enabling touch support for buttons
Creating generic button
Setting button properties not specific to any state
Using button states
Setting properties for button states
Handling button events
Using long-tap events
Using skin support in buttons
Stylus pop-up menu API
Changes and release information
Displaying commands in a context menu
Creating stylus pop-up menu
Handling stylus pop-up menu events and commands
Handling user command selection
Showing and hiding stylus pop-up menu
Adding and removing menu items
Setting stylus pop-up menu position
Hiding and showing stylus pop-up menu items
Choice list API
Changes and release information
Choice list API class structure
Providing a vertical list of selectable items
Creating the choice list
Adding items to the choice list
Getting user selection from the choice list
Deleting the choice list
Showing the choice list
Removing items from the choice list
Setting the item selected when the choice list is opened
Touch UI utilities API
Changes and release information
Touch UI utilities API class structure
Receiving long-tap events
Creating the long-tap detector
Handling long-tap events
Deleting the long-tap detector
Enabling and disabling the long-tap detector
Setting the time after which the long-tap event is sent
Setting the time before the long-tap animation starts
Title pane touch observer API
Changes and release information
Setting the title pane touch observer
Tactile feedback client API
Changes and release information
Definitions
Providing tactile feedback for touch events
Using direct feedback
Using area registry based feedback
Removing feedback from a control
Disabling and enabling feedback
Querying if feedback is supported
Managing feedback areas
Optimizing feedback latency
Tactile feedback implementation example
Sensor APIs
Changes and release information
Definitions for the sensor APIs
Sensor APIs class structure
Sensor channel, data, and property declarations
Types of sensor channels
Accelerometer sensor channel
Rotation sensor channel
Orientation sensor channel
Accelerometer double-tap sensor channel
Proximity monitor sensor channel
Ambient light sensor channel
Magnetic North channel sensor
Magnetometer XYZ sensor channel
Using sensor data in applications
Scanning for supported sensor channels on a device
Finding and opening a sensor channel
Listening for channel data
Closing a sensor channel
Listening for channel changes
Getting channel properties
Setting channel properties
Using array properties
Listening for channel property changes
Scaling channel data
Listening for channel data with conditions
Calibrating the Magnetic North sensor channel
Testing
Overview of software testing
Understanding testability
Developing unit tests
Black-box versus white-box testing
Behavioral testing techniques
Structural methods
Using stubs and mock objects
Testing your software
Setting up a test project
Tool setup
Creating the unit test project
Building the test and running it in the emulator
Stubbing dependencies
Implementing tests
Using a code coverage tool
TestSource.cpp
Technology area guides
Application and UI frameworks
Application framework concepts
Resources
Registration
Framework requirements for GUI applications
Implementing framework requirements
Event handling
Commands
Handling EEikCmdExit
Window server events
Key events
Receiving key event data in your application
Handling key events in your application
Layout change events
Foreground events
Pointer events
System events
Application-specific events
Other window server events
System environment events
Environment changes
Domain-specific events
Contacts database events
Alarm server events
World server events
Managing resource files
How resource files work
Resource file structure
Precompiled resource values available from the S60 platform
Required resource file statements
Optional resource file statements
Resource string handling
Creating registration resource files
Defining localizable registration information
Creating resource header files
Resource management example: HelloWorldBasic
helloworldbasic.rss
HelloWorldBasic_reg.rss
UI concepts
Relationship between framework and applications
Scalability
Themes
UI controller
Controls
Window owning and non-window owning controls
Relationship between window controls
Compound controls
Commonly used controls
Views
UI architectures
Traditional Symbian OS UI application architecture
Constructing the UI controller in traditional architecture
Views in traditional architecture
Constructing views in traditional architecture
Drawing in traditional architecture
Compound controls in traditional architecture
Switching views in traditional architecture
S60 view architecture
Constructing the UI controller in S60 view architecture
View controller in S60 view architecture
Constructing the view controller in S60 view architecture
View resource statements in S60 view architecture
Switching views in S60 view architecture
Views in S60 view architecture
Constructing views in S60 view architecture
Drawing in S60 view architecture
Compound controls in S60 view architecture
Dialog architecture
When to use dialog architecture
Basic implementation
Resources
Constructing a dialog
Advanced implementation
Mixing dialog and other application architectures
Internationalization and localization
Locale-sensitive data types
UI text strings
Implementing UI text localization
S60 UI components
Menu
Windows and panes
Main pane
Status pane
Title pane
Navi pane
Signal pane
Battery pane
Universal indicator pane
Control pane
CBA buttons
Using precompiled CBA button resources
Defining resources for your own CBA buttons
Scroll pane
Layout changes in bi-directional languages
Pop-up windows
Presentation of text
UI themes
Dimming
Lists and grids
Highlighting
Empty lists and grids
List browsing
Order of items and browsing in grids
List types
Menu list
Selection list
Markable list
Multi-selection list
Setting list
Hierarchical list
Hierarchical column list
Forms
Always-editable forms
Forms without the options softkey
Form items
List layouts
Column structure of lists
List item types
Numbered items
Item type combinations
Grid types
Find pane
Options menu
Submenus
Submenu indicators
Unavailable items
Other Options menus
Options template
Menu bars
Menu bar resource statements
Using menu sections in menu bar resource statements
Toolbar
Preview pop-up
Stylus pop-up menu
Notes
Confirmation note
Information note
Warning note
Error note
Permanent note
Wait note
Progress note
Soft notifications
Discarding soft notifications
Many simultaneous soft notifications
Information pop-up
Queries
Confirmation query
List query
Grid query
Multi-selection list query
Data query
Password query
Data queries with multiple fields
Message query
Slider pop-up
Volume Control pop-up
Indicators
Signal and battery indicators
Universal indicators
Indicators in the Navi pane
Editing indicators in pop-up windows
Soft indicators
Operator indicator
Application-specific indicators
Messaging
Messaging application services
Multimedia
What you need to know
Multimedia services
Supported codecs
DRM-protected multimedia
Playing DRM-protected audio content
Using the camera in applications
Using autofocus
Capturing still images
Embedding camera applications
Displaying an image on the screen
Capturing a video clip
Playing a video clip
Streaming video
Storing and accessing an image or a video
Communication
What you need to know
Mobile device connections
Mobile connection design considerations
Access point
Bluetooth and infrared
Making an IP connection
Initializing a Bluetooth connection
Transferring data over a Bluetooth connection
Transferring data over an infrared connection
Making telephone calls and retrieving device information
Destination networks
Establishing a connection with destination networks
Defining connection management items
Prompting the user to select a destination network
Starting the connection through the destination network
Using application-level roaming
Browsing and downloading
Browsing
Downloading
Personal Information Management (PIM)
PIM application services
Location
What you need to know
How location is determined
Location information
Finding the location of a mobile device
Storing location information on a mobile device
Security
Planning system and software security
Threats
General protection principles
Platform security architecture
Capabilities
Application signing
Data caging
Device security
Device security mechanisms
Application security
Client/server communication
Process identification
Applications with an user interface
Plug-ins
Software installer
Publish and Subscribe
Descriptors
Communications security
Secure Sockets
IPv4/IPv6 dual-stack
Host name resolution
Local connectivity
Content security
Backup and restore
Cryptography
Digital rights management
OMA DRM
Rights issuer and content issuer
DRM rights objects
DRM agent
DRM content format
OMA DRM v1.0
OMA DRM v2.0
Supported OMA DRM v2.0 features
Rights object acquisition protocol
OMA DRM v2.1
WMDRM
Configuring the application’s platform security settings in the emulator
S60 C++ API reference
Rules for API Usage
C++ API Reference
Quick Reference
S60 Application Services
Contacts Application Services
Phonebook Data Add Edit UI API
Classes and Definitions
CPbkContactEditorDlg
CPbkDataSaveAppUi
MPbkDataSaveCallback
MPbkEditorOkToExitCallback
MPbkEditorOkToExitCallback.h
PbkDataSaveAppUi.hrh
CPbkDataSaveAppUi.h
CPbkContactEditorDlg.h
Phonebook Data Management API
Classes and Definitions
CPbkContactChangeNotifier
CPbkContactEngine
CPbkContactItem
CPbkContactIter
CPbkFieldArray
CPbkFieldInfo
CPbkFieldsInfo
CPbkIdleFinder
MPbkContactDbObserver
MPbkFieldData
MPbkFieldDataArray
TPbkContactItemField
TPbkContactItemField.h
CPbkIdleFinder.h
MPbkFieldData.h
CPbkFieldsInfo.h
CPbkContactIter.h
CPbkContactEngine.h
PbkIconId.hrh
CPbkFieldInfo.h
CPbkContactItem.h
PbkFields.hrh
CPbkContactChangeNotifier.h
MPbkContactDbObserver.h
Phonebook Fetch UI API
Classes and Definitions
CPbkAddressSelect
CPbkAddressSelect::TBaseParams
CPbkEmailAddressSelect
CPbkEmailAddressSelect::TParams
CPbkEmailOverSmsAddressSelect
CPbkEmailOverSmsAddressSelect::TParams
CPbkItemTypeSelectAddToExisting
CPbkItemTypeSelectCreateNew
CPbkMemoryEntryAddItemDlg
CPbkMmsAddressSelect
CPbkMmsAddressSelect::TParams
CPbkMultipleEntryFetchDlg
CPbkMultipleEntryFetchDlg::TParams
CPbkPhoneNumberSelect
CPbkPhoneNumberSelect::TParams
CPbkPhoneNumberSelectBase
CPbkPocAddressSelect
CPbkPocAddressSelect::TParams
CPbkSelectFieldDlg
CPbkSingleEntryFetchDlg
CPbkSingleEntryFetchDlg::TParams
CPbkSingleItemFetchDlg
CPbkSingleItemFetchDlg::TParams
CPbkSmsAddressSelect
CPbkSmsAddressSelect::TParams
CPbkVideoNumberSelect
CPbkVideoNumberSelect::TParams
CPbkVoipAddressSelect
CPbkVoipAddressSelect::TParams
MPbkFetchDlgAccept
MPbkFetchDlgSelection
MPbkFetchKeyCallback
CPbkPhoneNumberSelectBase.h
CPbkMemoryEntryAddItemDlg.h
CPbkVoipAddressSelect.h
CPbkMultipleEntryFetchDlg.h
CPbkSelectFieldDlg.h
CPbkSingleEntryFetchDlg.h
CPbkSingleItemFetchDlg.h
CPbkEmailAddressSelect.h
CPbkVideoNumberSelect.h
MPbkFetchDlgSelection.h
CPbkEmailOverSmsAddressSelect.h
MPbkFetchCallbacks.h
CPbkPhoneNumberSelect.h
CPbkPocAddressSelect.h
CPbkAddressSelect.h
CPbkSmsAddressSelect.h
CPbkMmsAddressSelect.h
Phonebook Thumbnail operation API
Classes and Definitions
MPbkThumbnailGetImageObserver
MPbkThumbnailGetObserver
MPbkThumbnailSetObserver
MPbkThumbnailOperationObservers.h
Phonebook UI Utilities API
Classes and Definitions
CPbkIconInfoContainer
CPbkViewState
PbkIconUtils
RPbkViewResourceFile
TPbkIconInfo
CPbkViewState.h
RPbkViewResourceFile.h
PbkIconInfo.h
Phonebook vCard Import Export API
Classes and Definitions
CBCardEngine
BCardEng.h
Speed Dial Utility Control API
Purpose
API description
Using Speed Dial Utility Control API
Classes and Definitions
CSpdiaControl
SpdiaControl.h
IM Application Services
IM API
Purpose
API description
Using IM API
Memory and error handling
Extensions to the API
Glossary
References
Classes and Definitions
CImConnection
MImClient
MImClientDetailedError
MImConnectionObserver
MImObserver
imclient.h
imerrors.h
imconnection.h
IM Application Launch API
Purpose
API description
Using IM Application Launch API
Memory and error handling
Glossary
References
Classes and Definitions
CImLauncherPlugin
imlauncherplugin.h
Location Application Services
BLID Application Satellite Info API
Changes
Purpose
API description
Using BLID Application Satellite Info API
Glossary
References
Classes and Definitions
CSatelliteInfoUI
CSatelliteInfoUI.h
Landmarks UI Add Edit API
Changes
Purpose
API description
Using Landmarks UI Add Edit API
Glossary
References
Classes and Definitions
CLmkEditorDlg
CLmkEditorDlg::TLmkEditorParams
CLmkEditorDlg.h
Landmarks UI Selector API
Purpose
API description
Using Landmarks UI Selector API
Glossary
References
Classes and Definitions
CLmkCategorySelectorDlg
CLmkLandmarkSelectorDlg
TLmkItemIdDbCombiInfo
CLmkCategorySelectorDlg.h
TLmkItemIdDbCombiInfo.h
CLmkLandmarkSelectorDlg.h
Messaging Application Services
Messaging Editor Constants API
Classes and Definitions
MsgEditor.hrh
Messaging Integration API
Changes
Purpose
API description
Using Messaging Integration API
Glossary
References
Classes and Definitions
MessagingSDKCRKeys.h
ExtendedMTMIDS.hrh
MMS Client MTM API
Purpose
API description
Using MMS Client MTM API
Glossary
References
Classes and Definitions
CMmsClientMtm
TMmsCharacterSetLookup
mmsconst.h
mmserrors.h
mmsclient.h
Open New Message Notification API
Classes and Definitions
MNcnNotification
MNcnNotification.h
Plug-in Bio Control API
Purpose
API description
Using Plugin BIO Control API
Glossary
Classes and Definitions
CMsgBioControl
CRichBio
MMsgBioBodyControl
MMsgBioControl
MMsgBioControlExtension
MMsgBioControlObserver
MMsgBioControlScrollExtension
MMsgBioControl.h
MsgBioControl.h
CRichBio.h
MsgBioControlObserver.h
MMsgBioControlExtension.h
MsgBioUids.h
Send UI API
Purpose
API Description
Using the SendUi API
Glossary
Classes and Definitions
CMessageAddress
CMessageData
CSendUi
CSendingServiceInfo
TSendingCapabilities
CMessageAddress.h
SenduiMtmUids.h
CSendingServiceInfo.h
CMessageData.h
SendUi.h
TSendingCapabilities.h
SendUiConsts.h
Organizer Application Services
Clock Model Observer API
Classes and Definitions
MClkModelObserver
ClkMdlObserver.h
Common Date and Time View API
Purpose
API description
Using Common Date and Time View API
Classes and Definitions
CClkDateTimeView
TClkDateTimeInfo
ClkDateTimeView.h
Notepad Library API
Purpose
API description
Using Notepad Library API
Classes and Definitions
CNotepadApi
NpdApi.h
Profile Application Services
Profiles Engine Active Profile Settings API
Classes and Definitions
ProfileEngineSDKCRKeys.h
Profiles Engine Wrapper API
Classes and Definitions
MProEngActiveProfileObserver
MProEngAlertToneSeeker
MProEngAlertToneSeekerObserver
MProEngEngine
MProEngNotifyHandler
MProEngProfile
MProEngProfileActivationObserver
MProEngProfileName
MProEngProfileNameArray
MProEngProfileNameArrayObserver
MProEngProfileObserver
MProEngToneSettings
MProEngTones
ProEngFactory
MProEngProfileActivationObserver.h
MProEngProfileObserver.h
ProEngFactory.h
MProEngNotifyHandler.h
MProEngEngine.h
MProEngProfileName.h
Profile.hrh
MProEngProfile.h
MProEngActiveProfileObserver.h
MProEngProfileNameArray.h
MProEngProfileNameArrayObserver.h
MProEngTones.h
MProEngAlertToneSeeker.h
MProEngToneSettings.h
MProEngAlertToneSeekerObserver.h
S60 Platform Services
Classic UI Services
AIW Criteria API
Purpose
API description
Using AIW Criteria API
Glossary
References
Classes and Definitions
CAiwCriteriaItem
MAiwNotifyCallback
AiwCommon.hrh
AiwCommon.h
AiwCommon.rh
AIW Generic Parameter API
Purpose
API description
Using AIW Generic Parameter API
Glossary
References
Classes and Definitions
CAiwGenericParamList
TAiwGenericParam
TAiwVariant
AiwGenericParam.hrh
AiwVariant.h
AiwGenericParam.h
AiwVariantType.hrh
AIW Service Handler API
Purpose
API description
Using AIW Service Handler API
Glossary
References
Classes and Definitions
CAiwServiceHandler
AiwServiceHandler.h
Animation API
Classes and Definitions
CAknBitmapAnimation
RAknBitmapAnim
AknBitmapAnimation.h
aknAnim.hrh
aknAnim.rh
Application Framework API
Classes and Definitions
CAknAppUi
CAknAppUiBase
CAknApplication
CAknDocument
CAknView
CAknViewAppUi
CAknViewAppUi::CViewActivationItem
CAknViewAppUi::TAknSplitViewContainer
MAknAliasKeyCodeResolver
AknViewAppUi.h
aknview.h
AknAppUi.h
aknApp.h
AknDoc.h
Base Controls API
Classes and Definitions
CAknControl
CEikAlignedControl
CEikBorderedControl
eikbctrl.h
AknControl.h
eikalign.h
Buttons API
Purpose
API Description
Using the Buttons API
Glossary
Classes and Definitions
CEikBitmapButton
CEikButtonBase
CEikButtonGroupContainer
CEikButtonGroupFactoryArray
CEikButtonGroupStack
CEikCba
CEikCbaButton
CEikCommandButton
CEikCommandButtonBase
CEikCommandTable
CEikEnhancedCbaButton
CEikInverterCommandButton
CEikLabeledButton
CEikMenuButton
CEikTextButton
CEikTwoPictureCommandButton
EikButtonGroupFactory
EikButtonGroupFactory::TCreationData
TEikButtonCoordinator
CEikCbaButton::SButtonOptions
EIKLBBUT.H
EIKBUTB.H
EIKCMBUT.H
Eikbgfty.h
EIKMNBUT.H
eikbtgps.h
eikcba.h
EIKBTGPC.H
Calendar API
Classes and Definitions
MEikCalendarObserver
eikcal.h
Choice List API
Classes and Definitions
CAknChoiceList
aknchoicelist.h
Common File Dialogs API
Classes and Definitions
AknCommonDialogs
AknCommonDialogsDynMem
CAknCommonDialogsBase
CAknFileNamePromptDialog
CAknFileSelectionDialog
CAknMemorySelectionDialog
CAknMemorySelectionSettingItem
CAknMemorySelectionSettingPage
MAknFileFilter
MAknFileSelectionObserver
MAknMemorySelectionObserver
CAknMemorySelectionDialog.h
CAknFileSelectionDialog.h
MAknFileFilter.h
CAknMemorySelectionSettingPage.h
CommonDialogs.rh
MAknFileSelectionObserver.h
CAknFileNamePromptDialog.h
CAknCommonDialogsBase.h
AknCommonDialogs.h
CAknMemorySelectionSettingItem.h
AknCommonDialogsDynMem.h
CommonDialogs.hrh
MAknMemorySelectionObserver.h
Context Pane API
Classes and Definitions
CAknContextPane
akncontext.h
Dialog Shutter API
Classes and Definitions
AknDialogShutter
AknDlgShut.h
Dialogs API
Purpose
API description
Using Dialogs API
Glossary
References
Classes and Definitions
CEikDialog
EIKDIALG.H
Directory Localizer API
Purpose
API description
Using Directory Localizer API
Glossary
References
Classes and Definitions
CDirectoryLocalizer
DirectoryLocalizer.rh
CDirectoryLocalizer.h
Document handler API
Classes and Definitions
CDocumentHandler
DocumentHandler.h
Editors API
Purpose
API description
Using the Editors API
Glossary
Classes and Definitions
CAknCcpuSupport
CAknEdwinState
CAknIntegerEdwin
CAknIpFieldEditor
CAknLocationEditor
CAknNumericEdwin
CAknNumericSecretEditor
CAknUnitEditor
CEikDateEditor
CEikDurationEditor
CEikEdwin
CEikFixedPointEditor
CEikFloatingPointEditor
CEikGlobalTextEditor
CEikMfne
CEikMfneField
CEikMfneNumber
CEikMfneSeparator
CEikMfneSymbol
CEikMfneSymbol::CItem
CEikNumberEditor
CEikRangeEditor
CEikRichTextEditor
CEikSecretEditor
CEikTTimeEditor
CEikTimeAndDateEditor
CEikTimeEditor
CEikTimeOffsetEditor
MAknEdStateObserver
MAknMfneCommandObserver
MEikCcpuEditor
MEikEdwinObserver
MEikEdwinSizeObserver
MEikRichTextEditorParserObserver
SAknRgb
TAknEditorCaseState
CAknEdwinState::SEditorCbaState
SEdwinFindModel
SEikDegreesMinutesDirection
SEikRange
EIKGTED.H
aknnumed.h
EIKEDWOB.H
AknLocationEd.h
EIKEDWIN.H
Aknnumseced.h
AknNumEdwin.h
aknedstsobs.h
aknuniteditor.h
aknipfed.h
EikCcpu.h
EIKRTED.H
Aknedsts.h
AknMfneCommandObserver.h
EIKSECED.H
EIKFPNE.H
EIKMFNE.H
Error UI API
Classes and Definitions
CErrorUI
ErrorUI.h
Fonts API
Classes and Definitions
AknFontAccess
CAknLayoutFont
TAknTextDecorationMetrics
aknfontaccess.h
AknTextDecorationMetrics.h
AknLayoutFont.h
Form API
Purpose
API description
Using Form API
Glossary
References
Classes and Definitions
CAknForm
AknForm.h
Generic Button API
Classes and Definitions
CAknButton
CAknButtonState
AknButton.h
Grids API
Purpose
API description
Using Grids API
Glossary
Classes and Definitions
CAknColourSelectionGrid
CAknGMSPopupGrid
CAknGMSStyleGrid
CAknGMSStyleGridView
CAknGrid
CAknGridM
CAknGridView
CAknGridView::SGrid
AknGMSStyleGrid.h
akngridview.h
akncolourselectiongrid.h
akngrid.h
akngridm.h
Hierarchical Lists API
Changes
Purpose
Constraints
API description
Using the Hierarchical Lists API
Glossary
References
Classes and Definitions
CAknSingleColumnStyleTreeList
CAknSingleStyleTreeList
CAknTreeList
MAknCustomTreeOrdering
MAknTreeListObserver
aknhlistpanic.h
aknsinglecolumnstyletreelist.h
akncustomtreeordering.h
aknsinglestyletreelist.h
akntreelist.h
akntreelistconstants.h
akntreelistobserver.h
Hotkeys API
Classes and Definitions
CEikHotKeyTable
SEikHotKey
eikhkeyt.h
Images API
Classes and Definitions
CEikImage
EIKIMAGE.H
Indicators API
Classes and Definitions
CAknIndicatorContainer
MAknEditingStateIndicator
AknEditStateIndicator.h
AknIndicatorContainer.h
Info Popup Note API
Classes and Definitions
CAknInfoPopupNoteController
MAknInfoPopupNoteObserver
AknInfoPopupNoteController.h
Information Preview Popup API
Purpose
API description
Using Information Preview Popup API
Glossary
References
Classes and Definitions