cmmanager/cmmgr/Framework/Src/cmpbasesettingsdlgadv.cpp
branchRCL_3
changeset 58 83ca720e2b9a
parent 0 5a93021fdf25
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmmanager/cmmgr/Framework/Src/cmpbasesettingsdlgadv.cpp	Wed Sep 01 12:23:51 2010 +0100
@@ -0,0 +1,159 @@
+/*
+* 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:  Dialog for advanced settings for plugin base.
+*
+*/
+
+#include <avkon.hrh>
+#include <eikdef.h>
+#include <eikenv.h>
+#include <eikedwin.h>
+#include <cmmanager.rsg>
+#include <data_caging_path_literals.hrh>
+#include <aknnavide.h>
+#include <akntitle.h>
+#include <eikmenup.h>
+#include <StringLoader.h>
+#include <akntextsettingpage.h>
+#include <cmconnectionmethoddef.h>
+
+#include <mcmdexec.h>
+#include <cmpbasesettingsdlgadv.h>
+#include "cmpluginmenucommands.hrh"
+#include "cmmanager.hrh"
+
+using namespace CMManager;
+
+enum TSMTPSettingIds
+    {
+    EPluginBaseCmCmdSmtp
+    };
+    
+// --------------------------------------------------------------------------
+// CmPluginBaseSettingsDlgAdv::CmPluginBaseSettingsDlgAdv()
+// --------------------------------------------------------------------------
+//
+EXPORT_C CmPluginBaseSettingsDlgAdv::CmPluginBaseSettingsDlgAdv( 
+                                           CCmPluginBaseEng& aCmPluginBase )
+    : CmPluginBaseSettingsDlg( aCmPluginBase )
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CmPluginBaseSettingsDlgAdv::~CmPluginBaseSettingsDlgAdv
+// Destructor
+// --------------------------------------------------------------------------
+//
+EXPORT_C  CmPluginBaseSettingsDlgAdv::~CmPluginBaseSettingsDlgAdv()
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CmPluginBaseSettingsDlgAdv::DynInitMenuPaneL
+// --------------------------------------------------------------------------
+//
+EXPORT_C void CmPluginBaseSettingsDlgAdv::DynInitMenuPaneL( 
+                                                    TInt aResourceId,
+                                                    CEikMenuPane* aMenuPane )
+    {
+    CmPluginBaseSettingsDlg::DynInitMenuPaneL( aResourceId, aMenuPane );
+    if ( aResourceId == R_PLUGIN_BASE_MENU )
+        {
+        aMenuPane->SetItemDimmed( EPluginBaseCmdAdvanced, ETrue  );           
+        }
+    }
+
+// --------------------------------------------------------------------------
+// CmPluginBaseSettingsDlgAdv::UpdateListBoxContentBearerSpecificL
+// --------------------------------------------------------------------------
+//
+void CmPluginBaseSettingsDlgAdv::UpdateListBoxContentBearerSpecificL( 
+                                                 CDesCArray& /*aItemArray*/ )
+    {
+    // Empty implementation - forced by inheritance
+    }
+    
+// --------------------------------------------------------------------------
+// CmPluginBaseSettingsDlgAdv::RunAdvancedSettingsL
+// --------------------------------------------------------------------------
+//
+EXPORT_C void CmPluginBaseSettingsDlgAdv::RunAdvancedSettingsL()
+    {
+    // Empty implementation. This function has no meaning here
+    }
+    
+// --------------------------------------------------------------------------
+// CmPluginBaseSettingsDlgAdv::UpdateListBoxContentL
+// --------------------------------------------------------------------------
+//
+EXPORT_C void CmPluginBaseSettingsDlgAdv::UpdateListBoxContentL()
+    {
+    // Must save listbox indexes because content will be deleted
+    TInt lastListBoxPos = iListbox->CurrentItemIndex();
+    TInt lastListBoxTopPos = iListbox->TopItemIndex();
+
+    // deleting listbox content
+    MDesCArray* itemList = iListbox->Model()->ItemTextArray();
+    CDesCArray* itemArray = (CDesCArray*)itemList;
+    while ( itemArray->Count() )
+        {
+        itemArray->Delete( 0 );
+        }
+    while ( iSettingIndex->Count() )
+        {
+        iSettingIndex->Delete( 0 );
+        }
+
+    UpdateListBoxContentBearerSpecificL( *itemArray );
+                     
+    // Handle content changes
+    iListbox->Reset();
+    
+    iListbox->HandleItemAdditionL();
+    
+    // Listbox might not have index
+    if ( lastListBoxPos != -1 )
+        {
+        iListbox->SetCurrentItemIndex( lastListBoxPos );
+        iListbox->SetTopItemIndex( lastListBoxTopPos );
+        }
+    // Draw it
+    iListbox->DrawNow();
+    }
+
+//---------------------------------------------------------------------------         
+// CmPluginBaseSettingsDlgAdv::ShowPopupSettingPageL
+//---------------------------------------------------------------------------
+//
+EXPORT_C TBool CmPluginBaseSettingsDlgAdv::ShowPopupSettingPageL( 
+                                           TInt aAttribute, TInt aCommandId )
+    {
+    TBool retval( EFalse );
+    
+    switch ( aAttribute )
+        {
+        case EPluginBaseCmCmdSmtp:
+            {
+            // Show the SMTP settings page
+            User::Leave( KErrNotSupported );
+            break;
+            }      
+        default:
+            {
+            CmPluginBaseSettingsDlg::ProcessCommandL( aCommandId );
+            break;
+            }
+        }
+    return retval;
+    }