bluetoothengine/btui/Ecom/src/BTUIMainContainer.cpp
changeset 19 43824b19ee35
parent 17 f05641c183ff
child 33 837dcc42fd6a
--- a/bluetoothengine/btui/Ecom/src/BTUIMainContainer.cpp	Mon May 03 12:40:50 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,466 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:   This is the implementation of main container. It contains 
-*				  all necessary AVKON components and handles user inputs.
-*
-*/
-
-#include <e32base.h>
-#include <centralrepository.h> 
-#include <barsread.h>   // Resource reader
-#include <BtuiViewResources.rsg>     // Compiled resource ids
-#include <btfeaturescfg.h>					// For EnterpriseEnablementL()
-#include "BTUIMainContainer.h"
-#include "debug.h"      // Global declarations
-#include "btui.h"
-#ifdef __SERIES60_HELP
-#include <csxhelp/bt.hlp.hrh>   // Help ids
-#endif
-
-// ---------------------------------------------------------
-// CBTUIMainContainer::ConstructL
-// Symbian OS 2nd phase constructor can leave
-// ---------------------------------------------------------
-//
-void CBTUIMainContainer::ConstructL(const TRect& aRect, CBTUIMainView* aMainView )
-    {
-    TRACE_FUNC_ENTRY
-
-    CreateWindowL();
-
-	iMainView = aMainView;
-	
-    // Check if listbox is empty
-    __ASSERT_DEBUG(iBtMainListBox==0, PANIC( EBTMainListNotEmpty ));
-    __ASSERT_DEBUG(iBtAllItemsArray==0, PANIC( EBTAllFormatStingsArrayNotEmpty ));
-    __ASSERT_DEBUG(iBtListItemArray==0, PANIC( EBTFormatStingsArrayNotEmpty ));
-
-    // Create main itemlist
-    iBtMainListBox = new (ELeave) CAknSettingStyleListBox;
-    iBtMainListBox->SetContainerWindowL( *this );
-    iBtMainListBox->ConstructL( this, EAknListBoxMarkableList );
-
-
-    // Update settings from original sources via model    
-    iBtEngSettingsRef = iMainView->GetBtSettingsReference();    
-        
-    __ASSERT_DEBUG(iBtEngSettingsRef!=0, PANIC(EBTPanicIllegalValue));
-        
-    // Read all format strings from resources and create array for them
-    iBtAllItemsArray = iCoeEnv->ReadDesCArrayResourceL( R_BT_LABEL_STRINGS );
-    iBtListItemArray = new (ELeave) TMainListItemArray( 
-      iBtAllItemsArray, aMainView, iBtEngSettingsRef );
-
-    // Set up/down arrows at bottom of the screen (scrollbar)
-    iBtMainListBox->CreateScrollBarFrameL( ETrue );
-    iBtMainListBox->ScrollBarFrame()->SetScrollBarVisibilityL( 
-      CEikScrollBarFrame::EOn, CEikScrollBarFrame::EAuto );
-
-    // Set text labels for list items again (overwriting resource definitions)
-    iBtMainListBox->Model()->SetItemTextArray( iBtListItemArray );
-    iBtMainListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );   // Does not delete items array
-
-    // Set up the observer (events listener)
-    iBtMainListBox->SetListBoxObserver( this );
-
-    
-    
-    SetRect(aRect);
-    ActivateL();    
-
-    TRACE_FUNC_EXIT
-    }
-
-// ---------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------
-//
-CBTUIMainContainer::~CBTUIMainContainer()
-    {
-	TRACE_FUNC_ENTRY		   
-    delete iBtMainListBox;
-    delete iBtAllItemsArray;
-    delete iBtListItemArray;
-	TRACE_FUNC_EXIT
-    }
-
-// ---------------------------------------------------------
-// CBTUIMainContainer::SizeChanged()
-// From CCoeControl
-// Called by framework when the view size is changed
-// ---------------------------------------------------------
-//
-void CBTUIMainContainer::SizeChanged()
-    {
-	TRACE_FUNC_ENTRY    
-    iBtMainListBox->SetRect(Rect());    // Mandatory, otherwise not drawn
-    }
-
-// ---------------------------------------------------------
-// From CCoeControl
-// CBTUIMainContainer::CountComponentControls() const
-// ---------------------------------------------------------
-//
-TInt CBTUIMainContainer::CountComponentControls() const
-    {
-	TRACE_FUNC_ENTRY    
-	if(iBtMainListBox )
-    	return  1;
-    else
-    	return  0; // return nbr of controls inside this container
-    }
-
-// ---------------------------------------------------------
-// From CCoeControl
-// CBTUIMainContainer::ComponentControl(TInt aIndex) const
-// ---------------------------------------------------------
-//
-CCoeControl* CBTUIMainContainer::ComponentControl(TInt aIndex) const
-    {
-    TRACE_FUNC_ENTRY
-    if( aIndex ==0 )
-    	{
-    	return iBtMainListBox;
-    	}
-    return NULL;
-    }
-
-// ---------------------------------------------------------
-// From CCoeControl
-// CBTUIMainContainer::Draw
-// ---------------------------------------------------------
-//
-void CBTUIMainContainer::Draw(const TRect& /* aRect */) const
-    {
-    }
-
-// ---------------------------------------------------------
-// From CoeControl
-// CBTUIMainContainer::HandleControlEventL
-// ---------------------------------------------------------
-//
-void CBTUIMainContainer::HandleControlEventL( CCoeControl* /* aControl */, TCoeEvent /* aEventType */)
-    {
-    }
-
-// ---------------------------------------------------------
-// From CoeControl
-// CBTUIMainContainer::OfferKeyEventL
-// Redirect keypresses to the listbox
-// ---------------------------------------------------------
-//
-TKeyResponse CBTUIMainContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
-    {
-	TRACE_FUNC_ENTRY    
-    if(( iBtMainListBox ) && ( aKeyEvent.iCode != EKeyLeftArrow ) 
-      && (aKeyEvent.iCode != EKeyRightArrow ))
-        {
-        TKeyResponse res = iBtMainListBox->OfferKeyEventL( aKeyEvent, aType );
-        
-        // Store current item index for options list usage later
-        //
-        iCurrentItemIndex = iBtMainListBox->CurrentItemIndex();
-        return res;
-        }
-    return EKeyWasNotConsumed;
-    }
-
-// ---------------------------------------------------------
-// From MEikListBoxObserver 
-// CBTUIMainContainer::HandleListBoxEventL
-// ---------------------------------------------------------
-//
-void CBTUIMainContainer::HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType)
-    {
-	TRACE_FUNC_ENTRY
-	
-    __ASSERT_DEBUG(iMainView!=0, PANIC(EBTPanicIllegalValue));
-
-	// this is no longer called, unless MSK is disabled.
-	// if msk is not disabled, then  
-	// BTMainView::HandleCommand(EBTUICmdMSK) is called instead
-    if( aEventType == EEventEnterKeyPressed
-    || aEventType == EEventItemSingleClicked ) // Selection key pressed, or item clicked
-        {
-        TInt currentHighLightPosition = aListBox->CurrentItemIndex();
-        switch(currentHighLightPosition)
-            {
-            case EBTMainListItemPowerMode:
-                iMainView->HandleCommandL( EBTUICmdChangePowerStateSelect );
-                break;
-            case EBTMainListItemVisibilityMode:
-                iMainView->HandleCommandL( EBTUICmdChangeVisibilitySelect );
-                break;
-            case EBTMainListItemNameSetting:
-                iMainView->HandleCommandL( EBTUICmdChangeBTNameSelect );
-                break;
-                
-			// For Bluetooth SIM Access Profile feature
-			//
-			case EBTMainListItemSapMode:
-				iMainView->HandleCommandL( EBTUICmdChangeSapStateSelect );
-				break;
-            default:
-                break;
-            }
-        aListBox->DrawItem(currentHighLightPosition);   // Redraw item only to the screen
-        }
-    }
-
-// ----------------------------------------------------
-// From CEikListBox 
-// CBTUIMainContainer::CurrentItemIndex
-// ----------------------------------------------------
-//
-TInt CBTUIMainContainer::CurrentItemIndex()
-    {
-	TRACE_FUNC_ENTRY
-
-    return iBtMainListBox->CurrentItemIndex();
-    }
-
-// ----------------------------------------------------
-// CBTUIMainContainer::SettingChangedL
-// ----------------------------------------------------
-//
-void CBTUIMainContainer::SettingChanged( TBTMainListItemIndexes /* aListItem */ )
-    {
-	TRACE_FUNC_ENTRY
-
-    iBtMainListBox->DrawDeferred();
-    }    
-    
-#ifdef __SERIES60_HELP
-
-// ---------------------------------------------------------
-// From CCoeControl
-// CBTUIMainContainer::GetHelpContext
-// ---------------------------------------------------------
-//
-void CBTUIMainContainer::GetHelpContext(TCoeHelpContext& aContext) const
-    {
- 	TRACE_FUNC_ENTRY
-
-    aContext.iMajor = KBtuiUid3;
-    aContext.iContext = KBT_HLP_MAIN;
-    }
-
-#else
-
-// ---------------------------------------------------------
-// From CCoeControl
-// CBTUIMainContainer::GetHelpContext
-// ---------------------------------------------------------
-//
-void CBTUIMainContainer::GetHelpContext(TCoeHelpContext& /*aContext*/) const
-    {
-	TRACE_FUNC_ENTRY    
-    }
-
-#endif
-
-// ---------------------------------------------------------
-// From CCoeControl
-// CBTUIMainContainer::HandleResourceChange
-// ---------------------------------------------------------
-//
-void CBTUIMainContainer::HandleResourceChange( TInt aType )
-    {
-	TRACE_FUNC_ENTRY
-	//Pass the event to base class, so whenever resource changing happened, 
-	//this control will be considered to be re-drawed by base class, therefore
-	//no specific DrawNow() function call is needed here.
-    CCoeControl::HandleResourceChange(aType); 
-    
-    //Handle change in layout orientation
-    //aType == KAknsMessageSkinChange is handled by base class.
-    if (aType == KEikDynamicLayoutVariantSwitch)
-        {
-        //"TRect rect = iAvkonAppUi->ClientRect();"
-        // The line above provides to big rectangle in the bottom causing cba's overdrawn by by blank area.
-        // Correct way to do this is below.
-        TRect mainPaneRect;
-        AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainPaneRect);
-        SetRect(mainPaneRect);
-		}      
-    }
-    
-// ---------------------------------------------------------
-// From CCoeControl
-// CBTUIMainContainer::FocusChanged
-// ---------------------------------------------------------
-//
-void CBTUIMainContainer::FocusChanged(TDrawNow /*aDrawNow*/)
-    {
-	TRACE_FUNC_ENTRY        
-	  if( iBtMainListBox)
-        {
-        iBtMainListBox->SetFocus( IsFocused() );
-        }
-    }
-
-    
-// ******************************************* 
-//    Nested class function implemenations:
-// *******************************************
-
-// ----------------------------------------------------
-// CBTUIMainContainer::TMainListItemArray::TMainListItemArray
-// Initialize friend class
-// ----------------------------------------------------
-CBTUIMainContainer::TMainListItemArray::TMainListItemArray( CDesCArray* aBtAllItemsArray, 
-																CBTUIMainView* aMainView, CBTEngSettings* aBtEngSettings)
-																
-        : iArray( *aBtAllItemsArray ),  // Store references
-        iMainView( aMainView ),        
-        iBtEngSettingsRef( aBtEngSettings )
-        
-    {
-	TRACE_FUNC_ENTRY        
-    }
-
-// ----------------------------------------------------
-// CBTUIMainContainer::TMainListItemArray::MdcaCount()
-// ----------------------------------------------------
-//
-TInt CBTUIMainContainer::TMainListItemArray::MdcaCount() const
-    {
-	TRACE_FUNC_ENTRY    
-    return KNumberOfMainViewItems;
-    }
-
-// ----------------------------------------------------
-// CBTUIMainContainer::TMainListItemArray::MdcaPointL
-// Main view listbox item formatter:
-// Returns the current format string depending value
-// of the item concerned.
-// ----------------------------------------------------
-//
-TPtrC CBTUIMainContainer::TMainListItemArray::MdcaPoint( TInt aIndex ) const
-    {
-	TRACE_FUNC_ENTRY    
-    _LIT(KBTUIEmptyFormatString, " \t \t\t "); // Empty format string if illegal indexing
-    TPtrC chosen;
-    	
-    switch ( aIndex )
-        {
-        case EBTMainListItemPowerMode:
-            {
-            TBTPowerStateValue powerState;
-            iBtEngSettingsRef->GetPowerState(powerState);            
-            if( powerState==EBTPowerOn )
-                chosen.Set( iArray.MdcaPoint( EBTUISettModulePowerOn ));
-            else
-                chosen.Set( iArray.MdcaPoint( EBTUISettModulePowerOff ));
-            break;
-            }
-
-        case EBTMainListItemVisibilityMode:
-            {
-        	TBTVisibilityMode mode;
-        	iBtEngSettingsRef->GetVisibilityMode(mode);          	
-            
-            switch(mode)
-                {                
-                case EBTVisibilityModeGeneral:
-                    chosen.Set( iArray.MdcaPoint( EBTUISettVisibilityModeGeneral ));
-                    break;
-                                 
-                case EBTVisibilityModeHidden:
-                    chosen.Set( iArray.MdcaPoint( EBTUISettVisibilityModeHidden ));
-                    break;
-                   
-                case EBTVisibilityModeTemporary:
-                    chosen.Set( iArray.MdcaPoint( EBTUISettVisibilityModeTemp ));
-                    break;                    
-                   
-                default:
-                    break;
-                }
-            break;
-            }
-
-        case EBTMainListItemNameSetting:
-            {
-            TDes &buf = MUTABLE_CAST(TBuf<KBTUIMaxFormattedNameLength>&,iItemText);
-            buf.Zero();
-            buf.Append( iArray.MdcaPoint( EBTUISettBTNameHeader ) );
-            buf.Append( *iMainView->GetBTLocalName() );
-            chosen.Set( iItemText );
-            break;
-            }
-
-		// For Bluetooth SIM Access Profile feature
-		case EBTMainListItemSapMode:
-            {
-			BluetoothFeatures::TEnterpriseEnablementMode mode = BluetoothFeatures::EEnabled;
-			TRAPD(err, mode = BluetoothFeatures::EnterpriseEnablementL());
-			if ( err == KErrNone )
-				{
-				if ( mode == BluetoothFeatures::EDataProfilesDisabled )
-					{
-					chosen.Set( iArray.MdcaPoint( EBTUISettSapDisabled ));
-					break;
-					}
-				}
-			
-			TInt sapStatus;    
-			TRAP_IGNORE(GetSapStatusL(sapStatus););
-			    
-			if(sapStatus==EBTSapEnabled)
-				{
-				 chosen.Set( iArray.MdcaPoint( EBTUISettSapEnabled ));
-				}
-			else
-				{
-				 chosen.Set( iArray.MdcaPoint( EBTUISettSapDisabled ));
-				}          
-				   
-			TInt sapMode = KErrNone;
-			TRAP_IGNORE(sapMode = iMainView->GetSapStatusL());  
-			
-			
-			if(sapMode==EBTSapEnabled)
-				{
-				if ( sapMode ) 
-					{			
-					chosen.Set( iArray.MdcaPoint( EBTUISettSapEnabled ));
-					}
-				else
-					{
-					chosen.Set( iArray.MdcaPoint( EBTUISettSapDisabled ));
-					}
-				}
-			               
-            break;
-            }	
-        default:
-            chosen.Set( KBTUIEmptyFormatString );
-            break;
-        }
-
-    return chosen;
-    }
-
-// ----------------------------------------------------------------------
-// CBTUIMainContainer::TMainListItemArray::GetSapStatusL(TInt& aStatus)
-// ----------------------------------------------------------------------
-//
-void CBTUIMainContainer::TMainListItemArray::GetSapStatusL( TInt& aStatus )
-{    
-    CRepository* repository = CRepository::NewL(KCRUidBTEngPrivateSettings);
-    CleanupStack::PushL(repository);            	
-    repository->Get(KBTSapEnabled, aStatus);
-    CleanupStack::PopAndDestroy(repository);      
-}