×
Namespaces

Variants
Actions

How to make a full-screen application using Symbian C++

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Article
Created: vin2ktalks (20 Mar 2007)
Last edited: hamishwillee (23 Nov 2011)

There are different methods for making full-screen applications.

Cover the system panes

This simple method is used when the application has a traditional view architecture where the view is not a full-screen view. To make the view full screen, call the CCoeControl::SetExtentToWholeScreen() method in the CMyView::ConstructL method before the ActivateL() call.

Remember that the underlying panes are still drawn and this will take time and processor power. It is better to hide them if you want to use the whole screen.

	void CMyView::ConstructL(const TRect& aRect)
{
// Create a window for this application view
CreateWindowL();
 
// Set the window size
SetRect(aRect);
 
// This view is a full-screen view.
SetExtentToWholeScreen();
 
// Activate the window, which makes it ready to be drawn
ActivateL();
}

SetExtentToWholeScreen() is not recommended when the application is skinned (from S60 2nd Edition onwards; see figure). However, full-screen applications do not want the skin feature anyway, so this should not be a problem. (This needs to be updated. Some full-screen applications *do* want the skin feature. Any updates here for full-screen 'skinned' apps?)

FullscreenExample.png

Hiding

The status pane and softkeys can be hidden. The status pane can be hidden from the AppUi with the command

	#include <eikbtgpc.h> 
#include <avkon.rsg>
StatusPane()->MakeVisible(EFalse);

Softkeys can be hidden from the AppUi with the Cba()->MakeVisible(EFalse); command, which activates the “null” softkeys. The default softkeys have no effect after that. To activate the default option menu and the Back key immediately after the keys are pressed, manually handle the key presses. This can be done in the HandleKeyEventL() method as follows:

	TKeyResponse  CMyAppUi::HandleKeyEventL(
const TKeyEvent& aKeyEvent,TEventCode aType)
{
// Left or right softkey pressed
if (aType==EEventKeyDown &&
(aKeyEvent.iScanCode == EStdKeyDevice0 ||
aKeyEvent.iScanCode == EStdKeyDevice1))
{
Cba()->MakeVisible(ETrue);
}
else
{
Cba()->MakeVisible(EFalse);
}
 
return EKeyWasNotConsumed;
}

After that, you can use whole screen when drawing.

See also

This page was last modified on 23 November 2011, at 02:49.
124 page views in the last 30 days.