Change display mode and trigger orientation change using Symbian C++
Article Metadata
Article Metadata
Tested with
Devices(s): Tested on: Nokia N95, Nokia N78,
Nokia N96, Nokia 5800 XpressMusic,
Nokia N8-00
Nokia N96, Nokia 5800 XpressMusic,
Nokia N8-00
Compatibility
Platform(s): S60 3rd Edition, FP1
S60 3rd Edition, FP2
S60 5th Edition
Symbian^3
S60 3rd Edition, FP2
S60 5th Edition
Symbian^3
Article
Keywords: KPSUidUikon, KUikLayoutState
Created: (23 Aug 2011)
Last edited: hamishwillee
(01 Aug 2012)
Description
This solution enables you to change the display mode and trigger the orientation change to all open apps.
Solution
Here is the code snippet for rotating orientation.
Required capabilities in your .mmp file:
CAPABILITY WriteDeviceData ReadDeviceData SwEvent
KPSUidUikon is part of uikon_status_api.
const TUid KPSUidUikon = { 0x101F8773 };
const TUint32 KUikLayoutState = 0x00000008;
CWsScreenDevice* dev = CEikonEnv::Static()->ScreenDevice();
// Orientation to landscape
TInt err = RProperty::Set( KPSUidUikon, KUikLayoutState, 1 );
if ( err == KErrNone )
{
dev->SetScreenMode( 1 );
}
// Orientation to portrait
TInt err = RProperty::Set( KPSUidUikon, KUikLayoutState, 0 );
if ( err == KErrNone )
{
dev->SetScreenMode( 0 );
}
For Symbian^3, KUikPreferredOrientation will be used to get the corresponding rotation of the device.
TInt orientation;
TInt err = RProperty::Get( KPSUidUikon, KUikPreferredOrientation, orientation );
User::LeaveIfError( err );

