#include <mw/coeaui.h>
class CCoeAppUi : public CBase |
Protected Attributes | |
---|---|
CCoeEnv * | iCoeEnv |
Protected Member Functions | |
---|---|
virtual IMPORT_C void | HandleScreenDeviceChangedL() |
Application user interface (app UI) base class.
The app UI's responsibilities include owning the application's control stack and views, handling user commands, (see the derived class CEikAppUi), and handling events sent by the OS to the application, for instance being brought to the foreground.
The UI framework class CEikAppUi is derived from this class. UIs may derive further to add their own UI-specific features to the app UI; each application must derive its own concrete app UI class from this.
IMPORT_C | ~CCoeAppUi | ( | ) |
The destructor frees all resources owned by the object, including the control stack and the view server session.
IMPORT_C void | ActivateTopViewL | ( | ) |
Activates the top view for this app UI.
This is the most recently active view, if any. Otherwise, it activates the default view. If there is no default view, it activates the first registered view.
IMPORT_C void | ActivateViewL | ( | const TVwsViewId & | aViewId | ) |
Activates an application view.
A leave occurs if view activation fails.
Parameter | Description |
---|---|
aViewId | Identifier of the view to activate. |
IMPORT_C void | ActivateViewL | ( | const TVwsViewId & | aViewId, |
TUid | aCustomMessageId, | |||
const TDesC8 & | aCustomMessage | |||
) |
Activates an application view and passes a message to it.
A leave occurs if view activation fails.
Notes:
Activation works synchronously so that in general, this method returns when the view is activated.
An application defines and publishes the message UIDs that it recognises. For example, a contacts application might activate an email editor view, passing an email address as a custom message. To do this, the contacts application must use a message UID, and descriptor encoding that the email application has published as being recognisable.
Parameter | Description |
---|---|
aViewId | Identifies the view to activate. |
aCustomMessageId | Specifies the message type. |
aCustomMessage | The message to pass to the activated view. |
IMPORT_C void | AddToStackL | ( | const MCoeView & | aView, |
CCoeControl * | aControl, | |||
TInt | aPriority = ECoeStackPriorityDefault, | |||
TInt | aStackingFlags = ECoeStackFlagStandard | |||
) |
Inserts a control into the app UI's control stack.
Parameter | Description |
---|---|
aView | The view that contains the control. |
aControl | The control to add to the stack. This may itself be a view. |
aPriority | An optional control stack priority. The default value is ECoeStackPriorityDefault. Higher priority controls are offered key events before lower priority controls. |
aStackingFlags | The control's event handling behaviour. The possible values are defined in coeaui.h, beginning with ECoeStackFlagStandard. |
IMPORT_C void | AddToStackL | ( | CCoeControl * | aControl, |
TInt | aPriority = ECoeStackPriorityDefault, | |||
TInt | aStackingFlags = ECoeStackFlagStandard | |||
) |
Inserts a control into the app UI's control stack.
Use the other AddToStackL() overload if the app UI uses multiple views.
Parameter | Description |
---|---|
aControl | The control to add to the stack. |
aPriority | An optional control stack priority. The default value is ECoeStackPriorityDefault. Higher priority controls are offered key events before lower priority controls. |
aStackingFlags | The control's event handling behaviour. The possible values are defined in coeaui.h, beginning with ECoeStackFlagStandard. |
IMPORT_C void | AddToViewStackL | ( | const MCoeView & | aView, |
CCoeControl * | aControl, | |||
TInt | aPriority = ECoeStackPriorityDefault, | |||
TInt | aStackingFlags = ECoeStackFlagStandard | |||
) |
IMPORT_C void | AddViewActivationObserverL | ( | MCoeViewActivationObserver * | aViewActivationObserver | ) |
Adds an observer to the list of observers to be notified of view activations.
All view activation observers that have been added to the app UI are notified via their HandleViewActivation() function when any of this app UI's views are activated.
Parameter | Description |
---|---|
aViewActivationObserver | The observer to add. |
IMPORT_C void | AddViewDeactivationObserverL | ( | MCoeViewDeactivationObserver * | aViewDeactivationObserver | ) |
Adds an observer to the list of observers to be notified of view deactivations.
All view deactivation observers that have been added to the app UI are notified via their HandleViewDeactivation() function when any of this app UI's views are deactivated.
Parameter | Description |
---|---|
aViewDeactivationObserver | The observer to add. |
IMPORT_C void | AddViewObserverL | ( | MCoeViewObserver * | aViewObserver | ) |
Adds the specified observer to the list of view observers.
All view observers added using this function are notified via their HandleViewEventL() function when the app UI receives any view activation or deactivation event.
Parameter | Description |
---|---|
aViewObserver | The observer to be added to the list. |
IMPORT_C CArrayFix< TCoeHelpContext > * | AppHelpContextL | ( | ) | const |
Returns a list of help contexts appropriate to the current state of the application.
The array is generated from the help contexts for all visible controls on the app UI's control stack, and from the app UI itself (via CCoeAppUi::HelpContextL()).
Returns: A list of pointers to relevant help contexts.
IMPORT_C void | CheckInitializeViewsL | ( | TUid | aAppUid | ) |
Ensures that at least one view is registered for the app UI.
It adds an application view as the default if no views have been added, so that the application can participate in the view switching mechanism. It also sets a default view if none has been set.
This is called by the UI framework during application construction.
Parameter | Description |
---|---|
aAppUid | The application's 3rd UID. |
IMPORT_C TBool | CheckSourceOfViewSwitchL | ( | const TSecurityPolicy & | aSecurityPolicy, |
const char * | aDiagnostic = NULL | |||
) | const |
Checks whether the view-server client that initiated the current view-switch matches the security-policy given in the parameter.
This function leaves with KErrUnknown if called outside of an implementation of MCoeView's ViewConstructL or of MCoeView's ViewActivatedL.
See also: TSecurityPolicy
Parameter | Description |
---|---|
aSecurityPolicy | The TSecurityPolicy object which the client that initiated the current view switch must match. |
aDiagnostic | A string that will be emitted along with any diagnostic message that may be issued if the policy check fails. This string should be enclosed in the __PLATSEC_DIAGNOSTIC_STRING macro which enables it to be easily removed from the system. |
Returns: EFalse (zero) if the security-policy does not match the client that initiated the current view switch, other-wise returns "true", i.e. a non-zero value.
IMPORT_C void | ConstructL | ( | CCoeAppUi * | aPrevious = NULL | ) |
Completes construction of the CCoeAppUi object.
It creates the application's control stack and starts a view server session.
Parameter | Description |
---|---|
aPrevious | If non-NULL, ConstructL() transfers ownership of all of the controls owned by aPrevious to the new app UI being constructed, adding them to the new app UI's control stack. |
IMPORT_C void | CreateActivateViewEventL | ( | const TVwsViewId & | aViewId, |
TUid | aCustomMessageId, | |||
const TDesC8 & | aCustomMessage | |||
) |
Sends a request to the view server to activate the specified view, and returns without waiting for the request to complete.
Note that this method may return without error but the activation may subsequently fail.
Parameter | Description |
---|---|
aViewId | Identifies the view to activate. |
aCustomMessageId | The message type. |
aCustomMessage | The message to pass to the activated view. |
IMPORT_C void | DeactivateActiveViewIfOwnerMatchL | ( | ) |
Deactivates the active view if the current view is owned by this application.
Deactivating the active view is necessary before exiting if the app UI has an active view. This function is called by the UI framework during application closure.
IMPORT_C void | DeactivateActiveViewL | ( | ) |
Deactivates the active view.
Deactivating the active view is necessary before exiting if the app UI has an active view. In most cases, DeactivateActiveViewIfOwnerMatch should be used instead of this function.
See also: DeactivateActiveViewIfOwnerMatch
IMPORT_C void | DeregisterApplicationView | ( | ) |
Deregisters the application view from the view architecture.
IMPORT_C void | DeregisterView | ( | const MCoeView & | aView | ) |
Deregisters a view.
All views must be deregistered before the application exits. This is usually done in the app UI's destructor.
It has no effect if the specified view does not exist.
Parameter | Description |
---|---|
aView | The view to be deregistered. |
IMPORT_C void | DeregisterViewAndRemoveStack | ( | const MCoeView & | aView | ) |
Enables/disables external view switches for this instance of this application
By default external view switches are enabled.
Parameter | Description |
---|---|
aEnable | Whether external view switches should be enabled or not. |
Returns: KErrNone if successful, otherwise one of the system-wide error codes.
IMPORT_C TBool | FrameworkCallsRendezvous | ( | ) | const [virtual] |
Indicates the default behaviour for synchronizing to the startup (usually SystemStarter).
Returns: ETrue. Meaning the framework will synchronize the application to the starter. Derived classes may override this and return EFalse if they wish to perform the synchronization themselves. ie RProcess::Rendezvous( KErrNone )
IMPORT_C TInt | GetActiveViewId | ( | TVwsViewId & | aViewId | ) | const |
Gets the ID of the app UI's currently active view.
Parameter | Description |
---|---|
aViewId | On return, contains the ID of the currently active view. This is unchanged if there is no active view. |
Returns: KErrNone if this app UI has an active view, KErrNotFound if it does not.
IMPORT_C TInt | GetDefaultViewId | ( | TVwsViewId & | aViewId | ) | const |
Gets this app UI's default view ID.
Parameter | Description |
---|---|
aViewId | On return, contains the ID of the app UI's default view. This is unchanged if there is no default view. |
Returns: KErrNone if this app UI has a default view, KErrNotFound if it doesn't.
IMPORT_C TInt | GetTopViewId | ( | TVwsViewId & | aViewId | ) | const |
Finds and returns the current top view, not necessarily the currently active view
Parameter | Description |
---|---|
aViewId | On return, contains the ID of the current top view. This is unchanged if there is no top view. |
Returns: KErrNone if the top view could be found, KErrNotFound if it could not.
IMPORT_C void | HandleStackChanged | ( | ) |
Handles changes to the control stack.
This function ensures that the focusable control with the highest priority on the control stack has keyboard focus.
It may need to be called when a control's flag values are modified, by calling UpdateStackedControlFlags(). It is called automatically when a control is added to or removed from the stack.
IMPORT_C void | HandleStackedControlsResourceChange | ( | TInt | aType | ) |
Handles a change to the application's run-time resources for all controls on the app UI's control stack.
These are resources which are shared across the environment, such as colours, fonts or ZoomFactor.
Parameter | Description |
---|---|
aType | Specifies a resource type. |
IMPORT_C void | HandleWsEventL | ( | const TWsEvent & | aEvent, |
CCoeControl * | aDestination | |||
) | [virtual] |
Handles events sent to the application by the window server.
This function is called whenever the window server sends key or pointer events or some other special events to the application. It calls one of a number of functions, according to the type of event.
For key events, it calls CCoeControl::OfferKeyEventL() for each control on the control stack, beginning with the control at the top (position 0) until a control consumes it. If no control on the stack consumes the key event, the app UI's HandleKeyEventL() is called. Note that CCoeControl::OfferKeyEventL() is not called for controls whose ECoeStackFlagRefusesAllKeys flag is set.
For pointer events, CCoeControl::ProcessPointerEventL() is called on the control specified in aDestination.
For pointer buffer ready events, ProcessPointerBufferReadyL() is called on the control specified in aDestination.
For other events, for instance focus change events, this function calls one of the following CCoeAppUi private virtual functions:
HandleForegroundEventL()
HandleSwitchOnEventL()
HandleSystemEventL()
HandleApplicationSpecificEventL().
All these functions have empty implementations in this class, and are implemented by derived classes, if required.
See also: CCoeAppUi::HandleWsEventL()
Parameter | Description |
---|---|
aEvent | A window server event. |
aDestination | The control associated with the event. This is only relevant for pointer events. |
IMPORT_C TCoeInputCapabilities | InputCapabilities | ( | ) | const [virtual] |
Returns the input capabilities of the control with focus.
Classes that override CCoeAppUi::HandleKeyEventL() should also override this virtual function. The TCoeInputCapabilities object returned should have attributes that match the behaviour of the HandleKeyEventL() function.
Overriding app UIs should do a base-call and "merge" the returned input capabilities with its own input capabilities. If the overriding InputCapabilities() function needs to get the input capabilities of any top-level control, it should do so by calling CCoeControl::RecursivelyMergedInputCapabilities() on that control.
Returns: The types of input which can be consumed by the focussed control.
Tests whether the application is displaying a control between the given control stack priorities.
Parameter | Description |
---|---|
aLowerPriority | Lower bound. |
aHigherPriority | Upper bound. |
Returns: ETrue if the application is currently displaying a control which has a control stack priority between (but not including) aLowerPriority and aHigherPriority. EFalse if not.
IMPORT_C TBool | IsDisplayingDialog | ( | ) | const |
Tests whether the application is displaying a dialog.
Returns: ETrue if the application is currently displaying a dialog. EFalse if not.
IMPORT_C TBool | IsDisplayingMenuOrDialog | ( | ) | const |
Tests whether the application is displaying a menu bar or dialog.
Returns: ETrue if the application is currently displaying a menu bar or a dialog. EFalse if not.
IMPORT_C TBool | IsViewConstructed | ( | const TVwsViewId & | aViewId | ) | const |
Checks if the view has been constructed or not.
Parameter | Description |
---|---|
aViewId | The id of the view |
Returns: ETrue if the view has been constructed, EFalse otherwise.
void | MonitorWsEvent | ( | const TWsEvent & | aEvent | ) |
Monitor function for passing all windows events to registered monitor observers for optional inspection
Monitor function for passing all windows events to registered monitor observers for optional inspection
Parameter | Description |
---|---|
aEvent | The windows server event that has occured |
void | NotifyFontChange | ( | const CCoeFontProvider & | aFontProvider | ) |
IMPORT_C void | NotifyNextActivation | ( | const TVwsViewId & | aViewId, |
MCoeViewActivationObserver & | aViewActivationObserver | |||
) |
Requests that the next activation of the view identified by aViewId be notified to the specified view activation observer.
The request is cleared after the notification: the observer can only be notified once, and there can be no more than one such request pending.
Parameter | Description |
---|---|
aViewId | The view to be notified about. This can any view registered with the view server. |
aViewActivationObserver | The observer to be notified. |
IMPORT_C void | NotifyNextActivation | ( | MCoeViewActivationObserver & | aViewActivationObserver | ) |
Requests that the next activation of any view registered with the view server be notified to the specified observer.
The request is cleared after the notification: the observer can only be notified once, and there can be no more than one such pending request.
Parameter | Description |
---|---|
aViewActivationObserver | The observer to be notified. |
IMPORT_C void | NotifyNextDeactivation | ( | const TVwsViewId & | aViewId, |
MCoeViewDeactivationObserver & | aViewDeactivationObserver | |||
) |
Requests that the next deactivation of the view identified by aViewId be notified to the specified view deactivation observer.
The request is cleared after the notification: the observer can only be notified once, and this app UI can have no more than one such request pending.
Parameter | Description |
---|---|
aViewId | The view to be observed. This can any view registered with the view server. |
aViewDeactivationObserver | The observer to be notified. |
IMPORT_C void | NotifyNextDeactivation | ( | MCoeViewDeactivationObserver & | aViewDeactivationObserver | ) |
Requests that the next deactivation of any view registered with the view server be notified to the specified view deactivation observer.
The request is cleared after the notification: the observer can only be notified once, and this app UI can have no more than one such request pending.
Parameter | Description |
---|---|
aViewDeactivationObserver | The observer to be notified. |
IMPORT_C void | PrepareToExit | ( | ) | [virtual] |
Performs pre-exit processing on the control environment.
This function is called after the control environment's active scheduler exits, but before the control environment (i.e. the CCoeEnv object) is destroyed. The default implementation is empty, and this function is not implemented by CCoeAppUi, but it may be implemented by derived classes to perform pre-exit processing on the control environment.
void | RefetchPixelMappingL | ( | ) |
Notify all CCoeFontProvider's that the global logical-to-pixel mapping has changed in CCoeControlStaticSettings
IMPORT_C void | RegisterApplicationViewL | ( | TUid | aAppUid | ) |
Registers a pseudo-view for the application identified by aAppUid.
The view server is notified that a view exists for the application, which allows it to participate in the view switching mechanism, even though it does not implement any views.
Activating the application view means bringing the application into the foreground.
Parameter | Description |
---|---|
aAppUid | The ID of the application for which a view should be registered. |
IMPORT_C void | RegisterViewL | ( | MCoeView & | aView | ) |
Registers a view with the view server.
All views should be registered in the app UI's ConstructL().
Parameter | Description |
---|---|
aView | The view to be registered. |
IMPORT_C void | RemoveFromStack | ( | CCoeControl * | aControl | ) |
Removes a control from the app UI's control stack.
This function also handles any focus changes that may occur.
Parameter | Description |
---|---|
aControl | The control to remove from the stack. |
IMPORT_C void | RemoveFromViewStack | ( | const MCoeView & | aView, |
CCoeControl * | aControl | |||
) |
IMPORT_C void | RemoveViewActivationObserver | ( | MCoeViewActivationObserver * | aViewActivationObserver | ) |
Removes the specified observer from the list to be notified of view activations.
Parameter | Description |
---|---|
aViewActivationObserver | The observer to remove. |
IMPORT_C void | RemoveViewDeactivationObserver | ( | MCoeViewDeactivationObserver * | aViewDeactivationObserver | ) |
Removes an observer from the list to be notified of view deactivations.
This has no effect if the observer is not found in the list.
Parameter | Description |
---|---|
aViewDeactivationObserver | The observer to remove. |
IMPORT_C void | RemoveViewObserver | ( | MCoeViewObserver * | aViewObserver | ) |
Removes the specified observer from the list of view observers.
This has no effect if the specified observer is not found in the list.
Parameter | Description |
---|---|
aViewObserver | The view observer to be removed from the list. |
IMPORT_C void | SetApplicationViewAsDefaultL | ( | ) |
Sets the application view to be the default view.
In debug builds, this panics if no application view has been added for this app UI.
IMPORT_C void | SetCustomControl | ( | TInt | aCustomControl | ) |
Allows customised control of Window Group ordinal position during view activations
Parameter | Description |
---|---|
aCustomControl | Non-zero if Customised Control is switched on. |
IMPORT_C void | SetDefaultViewL | ( | const MCoeView & | aView | ) |
Sets one of the app UI's views as the default.
The default view should be constructed, drawn, registered and set as the default as early as possible in the app UI's ConstructL() function.
The meaning of the default view varies depending on the UI. It is normally the view that is displayed when the application is launched. It may also be the view that is displayed when the application is brought to the foreground.
Parameter | Description |
---|---|
aView | The view to set as the default. |
IMPORT_C void | SetSystemDefaultViewL | ( | const TVwsViewId & | aViewId, |
TInt | aMode | |||
) |
IMPORT_C void | SetSystemDefaultViewL | ( | const TVwsViewId & | aViewId | ) |
IMPORT_C void | SetWindowGroupOrdinal | ( | TInt | aWindowGroupOrdinal | ) |
Changes the default window group ordinal position used when bringing views to the foreground. Only used if CCoeAppUi::SetCustomControl has been called with a positive value.
Parameter | Description |
---|---|
aWindowGroupOrdinal | The customised window group ordinal position. |
IMPORT_C CCoeControl * | TopFocusedControl | ( | ) | const |
Returns the top control of this appui which currently has the focus.
Returns: Returns the top control of this AppUi which currently has the focus. If none of the controls has focus it returns NULL.
IMPORT_C void | UpdateStackedControlFlags | ( | CCoeControl * | aControl, |
TInt | aFlags, | |||
TInt | aMask | |||
) |
Updates the flag values for a control on the control stack.
The mask defines which flags are modified, while aFlags defines the values they are set to.
Parameter | Description |
---|---|
aControl | The control to update. |
aFlags | Contains the required value for each of the flag bits whose bit is set in aMask. |
aMask | Contains a set bit for each flag bit to modify. |
IMPORT_C void | UpdateViewServerBackgroundColor | ( | const TRgb & | aBgColor | ) |
Changes the default background color for the View Server screen blanking window
Parameter | Description |
---|---|
aBgColor | The new background color to be used. |
IMPORT_C void | UpdateViewStackedControlFlags | ( | const MCoeView & | aView, |
CCoeControl * | aControl, | |||
TInt | aFlags, | |||
TInt | aMask | |||
) |
IMPORT_C void | WriteInternalStateOfStackedControlsL | ( | RWriteStream & | aWriteStream | ) | const |
Writes the internal state of all CCoeControls on the control stack into aWriteStream. Works in debug builds only.