Join Now
Quality Rating:
  • Currently 5.0 / 5
(5.0 / 5 - 1 vote cast)
Expertise Level:
  • Currently 5.0 / 5
(5.0 / 5 - 1 vote cast)

This page was last modified 11:39, 26 November 2007.

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

From Forum Nokia Wiki

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?)

Image: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.

Related Discussions
Thread Thread Starter Forum Replies Last Post
How to temporary hold the current screen about 3 secs before screen changed? Mozart2007 General Symbian C++ 5 2008-07-11 22:12
How to add new entry in the main screen vinayakak Symbian User Interface 6 2008-04-07 07:34
How to refresh listbox screen? zerglim General Symbian C++ 4 2004-07-30 09:53
6660 and CommandListening zono666 Mobile Java General 10 2004-06-01 02:27
How to paint Full screen using Canvas? ongchiboon Mobile Java General 7 2004-06-13 10:06
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX