diff -r 000000000000 -r 2f259fa3e83a uifw/AvKon/aknconf/src/aknconfappui.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uifw/AvKon/aknconf/src/aknconfappui.cpp Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,216 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: CAknConfAppUi implementation + * +*/ + + +// INCLUDE FILES +#include +#include +#include +#include +#include +#include + +#include + +#include "aknconf.hrh" +#include "aknconf.pan" +#include "aknconfapplication.h" +#include "aknconfappui.h" +#include "aknconfview.h" + +const TInt KPhysicsTabIndex( 0 ); +const TInt KGestureTabIndex( 1 ); + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CAknConfAppUi::ConstructL() +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CAknConfAppUi::ConstructL() + { + // Initialise app UI with standard value. + BaseConstructL( CAknAppUi::EAknEnableSkin ); + + CEikStatusPane* statusPane = StatusPane(); + if ( statusPane ) + { + CAknNavigationControlContainer* naviPane = + static_cast( + statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) ); + if ( naviPane ) + { + iDecorator = naviPane->ResourceDecorator(); + static_cast( + iDecorator->DecoratedControl() )->SetObserver( this ); + } + } + + CAknConfView* physicsView = + new( ELeave ) CAknConfView( KPhysicsViewUid ); + CleanupStack::PushL( physicsView ); + physicsView->ConstructL( R_PHYSICS_VIEW ); + CleanupStack::Pop( physicsView ); + AddViewL( physicsView ); // transfer ownership to CAknViewAppUi + + CAknConfView* gestureView = + new( ELeave ) CAknConfView( KGestureViewUid ); + CleanupStack::PushL( gestureView ); + gestureView->ConstructL( R_GESTURE_VIEW ); + CleanupStack::Pop( gestureView ); + AddViewL( gestureView ); // transfer ownership to CAknViewAppUi + + iCurrentViewId = physicsView->Id().iUid; + + } +// ----------------------------------------------------------------------------- +// CAknConfAppUi::CAknConfAppUi() +// C++ default constructor can NOT contain any code, that might leave. +// ----------------------------------------------------------------------------- +// +CAknConfAppUi::CAknConfAppUi() + { + // No implementation required + } + +// ----------------------------------------------------------------------------- +// CAknConfAppUi::~CAknConfAppUi() +// Destructor. +// ----------------------------------------------------------------------------- +// +CAknConfAppUi::~CAknConfAppUi() + { + delete iDecorator; + } + + +// ----------------------------------------------------------------------------- +// CAknConfAppUi::SetTabIndex +// ----------------------------------------------------------------------------- +// +void CAknConfAppUi::SetTabIndex( TInt aViewId ) + { + TInt tabIndex( 0 ); + if ( aViewId == KPhysicsViewUid ) + { + tabIndex = KPhysicsTabIndex; + } + else + { + tabIndex = KGestureTabIndex; + } + static_cast( + iDecorator->DecoratedControl() )->SetActiveTabByIndex( + tabIndex ); + + } + + +// ----------------------------------------------------------------------------- +// CAknConfAppUi::TabChangedL +// ----------------------------------------------------------------------------- +// +void CAknConfAppUi::TabChangedL( TInt aIndex ) + { + if ( iCurrentViewId != KPhysicsViewUid && aIndex == KPhysicsTabIndex ) + { + ActivateLocalViewL( TUid::Uid( KPhysicsViewUid ) ); + iCurrentViewId = KPhysicsViewUid; + } + else if ( iCurrentViewId != KGestureViewUid + && aIndex == KGestureTabIndex ) + { + ActivateLocalViewL( TUid::Uid( KGestureViewUid ) ); + iCurrentViewId = KGestureViewUid; + } + } + + +// ----------------------------------------------------------------------------- +// CAknConfAppUi::ActivateViewL +// ----------------------------------------------------------------------------- +// +void CAknConfAppUi::ActivateViewL( TUid aViewId ) + { + CAknViewAppUi::ActivateLocalViewL( aViewId ); + iCurrentViewId = aViewId.iUid; + SetTabIndex( aViewId.iUid ); + } + + +// ----------------------------------------------------------------------------- +// CAknConfAppUi::ActivateNextViewL +// ----------------------------------------------------------------------------- +// +CAknConfView* CAknConfAppUi::CurrentView() + { + return static_cast( + View( TUid::Uid( iCurrentViewId ) ) ); + } + + +// ----------------------------------------------------------------------------- +// CAknConfAppUi::HandleCommandL() +// Takes care of command handling. +// ----------------------------------------------------------------------------- +// +void CAknConfAppUi::HandleCommandL(TInt aCommand) + { + switch (aCommand) + { + case EEikCmdExit: + case EAknSoftkeyExit: + Exit(); + break; + case EAbout: + { + CAknMessageQueryDialog* dlg = new ( ELeave ) CAknMessageQueryDialog(); + dlg->PrepareLC( R_ABOUT_QUERY_DIALOG ); + HBufC* title = iEikonEnv->AllocReadResourceLC( R_ABOUT_DIALOG_TITLE ); + dlg->QueryHeading()->SetTextL( *title ); + CleanupStack::PopAndDestroy(); //title + HBufC* msg = iEikonEnv->AllocReadResourceLC( R_ABOUT_DIALOG_TEXT ); + dlg->SetMessageTextL( *msg ); + CleanupStack::PopAndDestroy(); //msg + dlg->RunLD(); + } + break; + case EAknConfView: + ActivateViewL( TUid::Uid( KPhysicsViewUid ) ); + break; + case EGestureConfView: + ActivateViewL( TUid::Uid( KGestureViewUid ) ); + break; + default: + Panic(EAknConfUi); + break; + } + } + + +// ----------------------------------------------------------------------------- +// Called by the framework when the application status pane +// size is changed. Passes the new client rectangle to the +// AppView +// ----------------------------------------------------------------------------- +// +void CAknConfAppUi::HandleStatusPaneSizeChange() + { + } + +// End of File