connectionutilities/ConnectionDialogs/ConnectionUiUtilities/src/ChangeConnectionDlg.cpp
changeset 0 5a93021fdf25
child 3 f7816ffc66ed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/connectionutilities/ConnectionDialogs/ConnectionUiUtilities/src/ChangeConnectionDlg.cpp	Thu Dec 17 08:55:21 2009 +0200
@@ -0,0 +1,300 @@
+/*
+* Copyright (c) 2002 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: 
+*     Defines dialog CChangeConnectionDlg from Connection Ui Utilities
+*
+*/
+
+
+// INCLUDE FILES
+
+#include <AknIconArray.h>
+#include <AknsUtils.h>
+#include <aknmessagequerycontrol.h>
+#include <StringLoader.h>
+#include <featmgr.h>
+#include <WlanCdbCols.h>
+
+#include <data_caging_path_literals.hrh>
+#include <ConnectionUiUtilities.rsg>
+#include <apsettings.mbg>
+
+#include "ChangeConnectionDlg.h"
+#include "ActiveCChangeConnectionDlg.h"
+#include "ConnectionDialogsLogger.h"
+#include "ExpiryTimer.h"
+
+// CONSTANTS
+
+// ROM folder
+_LIT( KDriveZ, "z:" );
+
+// Name of the MBM file containing icons
+_LIT( KFileIcons, "ApSettings.mbm" );
+
+#if defined(_DEBUG)
+_LIT( KErrNullPointer, "NULL pointer" );
+#endif
+
+LOCAL_D const TInt KIconsGranularity = 4;
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// Constructor
+CChangeConnectionDlg::CChangeConnectionDlg( TInt aIndex,
+                                    TUint32* aIAPId, 
+                                    CActiveCChangeConnectionDlg* aActiveDlg,
+                                    TDes& aConnectionName )
+: CAknListQueryDialog( &aIndex ),
+  iIAPId( aIAPId ),
+  iConnectionName( aConnectionName ),
+  iIsWLANFeatureSupported( EFalse ),
+  iActiveDlg( aActiveDlg )
+    {
+    }
+
+
+// Destructor
+CChangeConnectionDlg::~CChangeConnectionDlg()
+    {
+    delete iExpiryTimer;
+    }
+
+
+// ---------------------------------------------------------
+// CChangeConnectionDlg::NewL
+// ---------------------------------------------------------
+//
+CChangeConnectionDlg* CChangeConnectionDlg::NewL( TUint32* aIAPId, 
+                                      CActiveCChangeConnectionDlg* aActiveDlg,
+                                      TDes& aConnectionName)
+    {
+    CChangeConnectionDlg* temp = new ( ELeave )CChangeConnectionDlg(
+                                    0, aIAPId, aActiveDlg, aConnectionName );
+    CleanupStack::PushL( temp ); 
+    temp->ConstructL();                                    
+    CleanupStack::Pop( temp );
+    return temp;
+    }
+
+
+// ---------------------------------------------------------
+// CChangeConnectionDlg::ConstructAndRunLD
+// Constructs the dialog and runs it.
+// ---------------------------------------------------------
+//
+void CChangeConnectionDlg::ConstructL()
+    {
+    FeatureManager::InitializeLibL();
+    iIsWLANFeatureSupported = 
+                    FeatureManager::FeatureSupported( KFeatureIdProtocolWlan );
+    FeatureManager::UnInitializeLib();
+    }
+
+
+
+// ---------------------------------------------------------
+// CChangeConnectionDlg::OkToExitL( TInt aButtonId)
+// called by framework when the OK button is pressed
+// ---------------------------------------------------------
+//
+TBool CChangeConnectionDlg::OkToExitL( TInt aButtonId )
+    {
+    CLOG_ENTERFN( "CChangeConnectionDlg::OkToExitL " );  
+    
+    TBool result( EFalse );
+    __ASSERT_DEBUG( iActiveDlg, User::Panic( KErrNullPointer, KErrNone ) );
+    
+    
+    if ( aButtonId == EAknSoftkeySelect || aButtonId == EAknSoftkeyOk )
+        {
+        TInt index = ListBox()->CurrentItemIndex();
+        CConnectionInfo* tempInfo = iActiveDlg->ActIAPs()->At( index );
+        *iIAPId = tempInfo->Id();
+
+        CLOG_WRITEF( _L( "*iIAPId : %d" ), *iIAPId );
+        
+        iActiveDlg->Cancel();
+        iActiveDlg->SetSelected( ETrue );
+                
+        result = ETrue;
+        }
+    else if ( aButtonId == EAknSoftkeyCancel )
+        {
+        iActiveDlg->Cancel();  
+                  
+        result = ETrue;
+        }
+    
+    CLOG_LEAVEFN( "CChangeConnectionDlg::OkToExitL " );  
+    
+    return result;
+    }
+
+
+
+// ---------------------------------------------------------
+// CChangeConnectionDlg::PreLayoutDynInitL()
+// called by framework before dialog is shown
+// ---------------------------------------------------------
+//
+void CChangeConnectionDlg::PreLayoutDynInitL()
+    {
+    CLOG_ENTERFN( "CChangeConnectionDlg::PreLayoutDynInitL " );  
+    
+    CAknListQueryDialog::PreLayoutDynInitL();
+
+    HBufC *desc = StringLoader::LoadL( R_CHANGE_CONNECTION_DESC, 
+                                       iConnectionName );
+    CleanupStack::PushL( desc );
+    MessageBox()->SetMessageTextL( desc );
+    CleanupStack::PopAndDestroy( desc );
+
+    SetOwnershipType( ELbmOwnsItemArray );
+    SetItemTextArray( iActiveDlg->ActIAPs() );       
+    SetOwnershipType( ELbmDoesNotOwnItemArray );
+
+    SetIconsL();
+    
+    iExpiryTimer = CExpiryTimer::NewL( *this );
+    iExpiryTimer->Start();
+    CLOG_LEAVEFN( "CChangeConnectionDlg::PreLayoutDynInitL " );  
+    
+    }
+
+
+// ---------------------------------------------------------
+// CChangeConnectionDlg::RefreshDialogL
+// ---------------------------------------------------------
+//    
+void CChangeConnectionDlg::RefreshDialogL()
+    {  
+    CLOG_ENTERFN( "CChangeConnectionDlg::RefreshDialogL " );  
+     
+    SetItemTextArray( iActiveDlg->ActIAPs() );
+    ListBox()->HandleItemAdditionL();  
+    
+    Layout();   
+    SizeChanged();
+    DrawNow();
+    
+    CLOG_LEAVEFN( "CChangeConnectionDlg::RefreshDialogL " );  
+              
+    }
+
+
+// ---------------------------------------------------------
+// CChangeConnectionDlg::SetIconsL()
+// ---------------------------------------------------------
+//
+void CChangeConnectionDlg::SetIconsL()
+    {
+    CArrayPtr< CGulIcon >* icons = new( ELeave ) CAknIconArray( 
+                                                        KIconsGranularity );
+    CleanupStack::PushL( icons );
+
+    MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
+
+    TFileName iconsFileName;
+
+    iconsFileName.Append( KDriveZ );
+
+    iconsFileName.Append( KDC_APP_BITMAP_DIR );
+
+    iconsFileName.Append( KFileIcons );
+
+    icons->AppendL( AknsUtils::CreateGulIconL( skinInstance, 
+                            KAknsIIDQgnPropWmlGprs,
+                            iconsFileName, 
+                            EMbmApsettingsQgn_prop_wml_gprs, 
+                            EMbmApsettingsQgn_prop_wml_gprs_mask ) );
+
+    icons->AppendL( AknsUtils::CreateGulIconL( skinInstance, 
+                            KAknsIIDQgnPropWmlCsd,
+                            iconsFileName, 
+                            EMbmApsettingsQgn_prop_wml_csd, 
+                            EMbmApsettingsQgn_prop_wml_csd_mask ) );
+
+    icons->AppendL( AknsUtils::CreateGulIconL( skinInstance, 
+                            KAknsIIDQgnPropWmlHscsd,
+                            iconsFileName, 
+                            EMbmApsettingsQgn_prop_wml_hscsd, 
+                            EMbmApsettingsQgn_prop_wml_hscsd_mask ) );
+
+    if ( iIsWLANFeatureSupported )
+        {
+        icons->AppendL( AknsUtils::CreateGulIconL( skinInstance, 
+                            KAknsIIDQgnPropWlanEasy,
+                            iconsFileName, 
+                            EMbmApsettingsQgn_prop_wlan_easy, 
+                            EMbmApsettingsQgn_prop_wlan_easy_mask ) );
+    
+        icons->AppendL( AknsUtils::CreateGulIconL( skinInstance, 
+                            KAknsIIDQgnPropWlanBearer,
+                            iconsFileName, 
+                            EMbmApsettingsQgn_prop_wlan_bearer, 
+                            EMbmApsettingsQgn_prop_wlan_bearer_mask ) );
+        }
+    
+    SetIconArrayL( icons );
+
+    CleanupStack::Pop( icons );
+    }
+
+
+
+
+// ----------------------------------------------------------------------------
+// void CChangeConnectionDlg::HandleResourceChange( TInt aType )
+// Handle resource change events. 
+// ----------------------------------------------------------------------------
+//
+void CChangeConnectionDlg::HandleResourceChange( TInt aType )
+    {
+    if ( aType == KAknsMessageSkinChange )
+        {
+        CAknListQueryDialog::HandleResourceChange( aType );
+
+        TRAP_IGNORE( SetIconsL() );
+        SizeChanged();
+        }
+    else
+        {
+        if ( aType == KEikDynamicLayoutVariantSwitch )
+            {
+            TRect mainPaneRect;
+            AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane,
+                                               mainPaneRect );
+
+            TAknLayoutRect layoutRect;
+            layoutRect.LayoutRect( TRect( TPoint( 0, 0 ), 
+                                   mainPaneRect.Size() ),
+                                   AKN_LAYOUT_WINDOW_list_gen_pane( 0 ) );
+
+            ListBox()->SetRect( layoutRect.Rect() );
+            }
+
+        // Base call
+        CAknListQueryDialog::HandleResourceChange( aType );
+        }
+    }
+
+void CChangeConnectionDlg::HandleTimedOut()
+    {
+    TRAP_IGNORE( TryExitL(EAknSoftkeyCancel) );
+    }
+
+
+// End of File