tsrc/mustestapp/src/AiwTestAppAppUi.cpp
branchRCL_3
changeset 22 73a1feb507fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/mustestapp/src/AiwTestAppAppUi.cpp	Tue Aug 31 15:12:07 2010 +0300
@@ -0,0 +1,265 @@
+/*
+* Copyright (c) 2002-2005 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:  
+*
+*/
+
+
+// INCLUDE FILES
+#include "aiwtestappappui.h"
+#include "aiwtestappcontainer.h" 
+#include "musmanager.h"
+#include <mustestapp.rsg>
+#include "aiwtestapp.hrh"
+#include "musresourceproperties.h"
+#include "musavainterface.h"
+#include "muscallmonitor.h"
+
+#include <e32property.h>
+#include <flogger.h>
+#include <e32math.h>
+
+#include <avkon.hrh>
+#include <aknutils.h>
+
+#include <aknmessagequerydialog.h>
+#include <aknquerydialog.h>
+
+#include <aiwservicehandler.h>
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------------
+// CAiwTestAppUi::ConstructL()
+// 
+// ----------------------------------------------------------
+//
+void CAiwTestAppUi::ConstructL()
+    {
+    BaseConstructL();
+
+    iPlugin = NULL;
+
+    // Creates a container object and adds it to the application's control stack.
+    iAppContainer = new (ELeave) CAiwTestContainer;
+    iAppContainer->SetMopParent( this );
+    iAppContainer->ConstructL( ClientRect() );
+    AddToStackL( iAppContainer );
+
+    // Create service handler instance.    
+    iServiceHandler = CAiwServiceHandler::NewL();
+ 
+    // Attach menu service interests to AIW framework.
+    iServiceHandler->AttachMenuL(R_AIWTEST_MENU, R_AIWTESTAPP_INTEREST);
+    //iServiceHandler->AttachMenuL(R_UMASETTINGS_MAIN_MENU, R_UMASETTINGSUI_INTEREST);    
+    
+    // Attach base service interests to AIW framework.
+    iServiceHandler->AttachL(R_AIWTESTAPP_BASEINTEREST);
+
+    iManager = CMusManager::NewL();
+
+          RProperty::Define( NMusResourceApi::KCategoryUid, 
+                                         NMusResourceApi::KCameraAvailability, 
+                                         RProperty::EInt); 
+
+            // 2. keypad property
+           RProperty::Define( NMusResourceApi::KCategoryUid, 
+                               NMusResourceApi::KKeypadAvailability, 
+                               RProperty::EInt );
+
+            // 3. video player property
+           RProperty::Define( NMusResourceApi::KCategoryUid, 
+                               NMusResourceApi::KVideoPlayerAvailability, 
+                               RProperty::EInt 
+                               );
+
+            RProperty::Set( NMusResourceApi::KCategoryUid, 
+                               NMusResourceApi::KCameraAvailability, 
+                               ( TInt ) NMusResourceApi::EAvailable );
+
+            // 2. keypad property
+           RProperty::Set( NMusResourceApi::KCategoryUid, 
+                               NMusResourceApi::KKeypadAvailability, 
+                               ( TInt ) NMusResourceApi::EAvailable );
+
+            // 3. video player property
+           RProperty::Set( NMusResourceApi::KCategoryUid, 
+                               NMusResourceApi::KVideoPlayerAvailability, 
+                               ( TInt ) NMusResourceApi::EAvailable );
+
+    // Next line is an example of how to use base service commands.
+    //iServiceHandler->ExecuteServiceCmdL(4, iServiceHandler->InParamListL(),
+    //    iServiceHandler->OutParamListL());
+    }
+
+// ----------------------------------------------------
+// CAiwTestAppUi::~CAiwTestAppUi()
+// Destructor
+// Frees reserved resources
+// ----------------------------------------------------
+//
+CAiwTestAppUi::~CAiwTestAppUi()
+    {
+    delete iServiceHandler; 
+    
+    if (iAppContainer)
+        {
+        RemoveFromStack( iAppContainer );
+        delete iAppContainer;
+        }
+    
+    if ( iPlugin )
+        {
+        iPlugin->StopL();
+        delete iPlugin;
+        }
+    
+   iManager->StopApplicationL();
+    
+    delete iManager;
+    }
+
+// ------------------------------------------------------------------------------
+// CAiwTestAppUi::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
+// This function is called by the EIKON framework just before it displays
+// a menu pane. Its default implementation is empty, and by overriding it,
+// the application can set the state of menu items dynamically according
+// to the state of application data.
+// ------------------------------------------------------------------------------
+//
+void CAiwTestAppUi::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
+    {
+    if (iServiceHandler->HandleSubmenuL(*aMenuPane))
+        {
+        return;
+        }
+          
+    if (iServiceHandler->IsAiwMenu(aResourceId))
+        {
+        TFileName filename(_L("image.jpg")); // This is just an axample of how to fill param list.
+        TAiwVariant variant(filename);
+        TAiwGenericParam param(EGenericParamFile, variant);
+        CAiwGenericParamList& inList = iServiceHandler->InParamListL();
+        inList.AppendL(param);  
+
+        iServiceHandler->InitializeMenuPaneL(*aMenuPane, aResourceId, 5000, 
+            iServiceHandler->InParamListL());        
+        }    
+    }
+
+// ----------------------------------------------------
+// CAiwTestAppUi::HandleKeyEventL(const TKeyEvent& aKeyEvent, 
+//     TEventCode aType)
+// Takes care of key event handling.
+// ----------------------------------------------------
+//
+TKeyResponse CAiwTestAppUi::HandleKeyEventL(const TKeyEvent& /*aKeyEvent*/,
+    TEventCode /*aType*/)
+    {
+    return EKeyWasNotConsumed;
+    }
+
+// ----------------------------------------------------
+// CAiwTestAppUi::HandleCommandL(TInt aCommand)
+// Takes care of command handling.
+// ----------------------------------------------------
+//
+void CAiwTestAppUi::HandleCommandL(TInt aCommand)
+    {
+    switch ( aCommand )
+        {
+        case EAknSoftkeyBack:  // fallthrough
+        case EEikCmdExit:
+            {
+            RDebug::Print(_L("This is a debug message - Exit"));
+            Exit();
+            break;
+            }
+        case EAiwTestAppCmdBATTest:
+            {
+            break;
+            }
+        case EAiwTestAppCmdCoreInfo:
+            {
+            break;
+            }
+        case EAiwTestAppCmdEngineInfo:
+            {
+            break;
+            }
+        case 1000:     // 'Testi' menu item.
+            {
+
+            iManager->ExamineAvailabilityL();
+            }
+            break;
+           
+            
+           
+        case 1001:
+                {
+       
+                iManager->StartApplicationL( MultimediaSharing::EMusLiveVideo );
+              
+                }
+            break;
+        case 1002:
+                {
+                iPlugin = CMusAvaInterface::NewL();
+                iPlugin->SetObserver( *this );
+                
+                iPlugin->StartL();
+                //iCallMonitor = CMusCallMonitor::NewL( *this );
+                //iCallMonitor->StartMonitoringL();
+                
+                
+                
+                }
+            break;
+        default:
+            {
+
+            
+            CAiwGenericParamList& in = iServiceHandler->InParamListL();
+            // in.AppendL(param);
+
+            // Executes menu service command.
+            iServiceHandler->ExecuteMenuCmdL(aCommand, in, iServiceHandler->OutParamListL());
+
+            //CleanupStack::PopAndDestroy(2);
+            }
+            break;      
+        }
+    }
+
+     void CAiwTestAppUi::AvailabilityState( TAvailabilityState aState, 
+                                              TAvailabilityStatus aStatus,
+                                              TAvailabilityName aName )
+        {
+        if( aState == EMusAvaMinimum )
+            iMinimumStatus = aStatus;
+        else if( aState == EMusAvaMandatory )
+            iMandatoryStatus = aStatus;
+        else if( aState == EMusAvaExtension )
+            iExtensionStatus = aStatus;
+        }
+    
+
+    void CAiwTestAppUi::StopComplete()
+        {
+        
+        }
+
+
+// End of File