mpx/viewframework/baseviewplugins/src/mpxaknviewplugin.cpp
changeset 0 a2952bb97e68
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/viewframework/baseviewplugins/src/mpxaknviewplugin.cpp	Thu Dec 17 08:55:47 2009 +0200
@@ -0,0 +1,126 @@
+/*
+* Copyright (c) 2006 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:  MPX Avkon view plugin definition.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <aknViewAppUi.h>
+#include <aknview.h>
+#include <mpxcustomcommandobserver.h>
+#include <mpxviewutilitycommanddef.h>
+
+#include "mpxaknviewplugin.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CMPXAknViewPlugin::~CMPXAknViewPlugin()
+    {
+    // do nothing
+    }
+
+// ---------------------------------------------------------------------------
+// From CMPXViewPlugin
+// Interface method to create view.
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CMPXAknViewPlugin::CreateViewL()
+    {
+    // no need to create again if view already exist
+    if ( !iView )
+        {
+        CAknView* view = ConstructViewLC();
+        iAvkonViewAppUi->AddViewL( view );
+        CleanupStack::Pop( view );  // ownership transferred
+        iView = view;
+        }    
+    }
+
+// ---------------------------------------------------------------------------
+// From CMPXViewPlugin
+// Interface method to destroy view.
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CMPXAknViewPlugin::DestroyView()
+    {
+    ASSERT( iView );
+    }
+
+// ---------------------------------------------------------------------------
+// From CMPXViewPlugin
+// Interface method to activate view.
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CMPXAknViewPlugin::ActivateViewL( 
+    const TDesC* aParam )
+    {
+    if ( !iView )
+        {
+        CreateViewL();
+        }
+
+    if ( !aParam )
+        {
+        iAvkonViewAppUi->ActivateLocalViewL( iView->Id() );
+        }
+    else
+        {
+        // Create a narrow heap descriptor from a unicode descriptor
+        HBufC8* des8 = HBufC8::NewLC( aParam->Length() );
+        des8->Des().Copy( *aParam );
+
+        iAvkonViewAppUi->ActivateLocalViewL( iView->Id(), KNullUid, *des8 );
+
+        CleanupStack::PopAndDestroy( des8 );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// From CMPXViewPlugin
+// Interface method to activate as default view, will not bring to foreground
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CMPXAknViewPlugin::SetAsDefaultViewL()
+    {
+    if ( !iView )
+        {
+        CreateViewL();
+        }
+    iAvkonViewAppUi->SetDefaultViewL( *iView );
+    }
+
+// ---------------------------------------------------------------------------
+// From CMPXViewPlugin
+// Interface method to deactivate view.
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CMPXAknViewPlugin::DeactivateView()
+    {
+    if ( iCommandObserver )
+        {
+        TPckgC<TInt> selfPtr( reinterpret_cast<TInt>( this ) );        
+        iCommandObserver->HandleCustomCommand( 
+            TUid::Uid( KMPXViewUtilityCustomCommand ), 
+            EMPXViewUtilCmdViewDeActivated,
+            selfPtr );
+        }    
+    }
+
+// End of File