diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharing/mmshui/src/musuistatuspanehandler.cpp --- a/mmsharing/mmshui/src/musuistatuspanehandler.cpp Thu Aug 19 09:51:39 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,325 +0,0 @@ -/* -* Copyright (c) 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 "musuistatuspanehandler.h" -#include "musuidefinitions.h" -#include "muslogger.h" // debug logging -#include - -#include -#include -#include -#include -#include -#include -#include -#include // Navi pane container ( CAknNavigationControlContainer ) -#include -#include -#include -#include - - -// constants -#define KMUSMBMFILENAME iEikonEnvironment.EikAppUi()->Application()->BitmapStoreName() - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiStatusPaneHandler* CMusUiStatusPaneHandler::NewL( CEikonEnv& aEikonEnv ) - { - CMusUiStatusPaneHandler* self = - new ( ELeave ) CMusUiStatusPaneHandler( aEikonEnv ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiStatusPaneHandler::~CMusUiStatusPaneHandler() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::~CMusUiStatusPaneHandler" ); - - delete iNaviPaneText; - delete iMediaControl; - delete iVolumePopup; - - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::~CMusUiStatusPaneHandler" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiStatusPaneHandler::CMusUiStatusPaneHandler( CEikonEnv& aEikonEnv ) - :iEikonEnvironment( aEikonEnv ) - { - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::ConstructL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::ConstructL" ); - - CEikStatusPane* statusPane = iEikonEnvironment.AppUiFactory()->StatusPane(); - - iNaviPane = STATIC_CAST( - CAknNavigationControlContainer*, - statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) ); - iTitlePane = STATIC_CAST( - CAknTitlePane*, - statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); - iContextPane = STATIC_CAST( - CAknContextPane*, - statusPane->ControlL( TUid::Uid( EEikStatusPaneUidContext ) ) ); - - iVolumePopup = CAknVolumePopup::ConstructFromResourceL( - R_AVKON_NAVI_PANE_VOLUME_INDICATOR ); - - iMediaControl = CreateMediaNaviL(); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::ConstructL" ); - } - - -// ----------------------------------------------------------------------------- -// Updates statuspane icons -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::SetStatusPaneIconsL( TInt32 aIconId, - TInt32 aIconMaskId ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::SetStatusPaneIconsL" ) - - iContextPane->SetPictureFromFileL( KMUSMBMFILENAME, aIconId, aIconMaskId ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::SetStatusPaneIconsL" ) - } - - -// ----------------------------------------------------------------------------- -// Updates statuspane icons -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::SetStatusPaneIconsL( CFbsBitmap* aBitmap ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::SetStatusPaneIconsL" ); - CEikImage* image = new (ELeave) CEikImage(); - image->SetBitmap( aBitmap ); - CEikImage* oldImage = iContextPane->SwapPicture( image ); - delete oldImage; - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::SetStatusPaneIconsL" ); - } - - -// ----------------------------------------------------------------------------- -// Hides navi-pane decorators and clears text -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::ClearNaviPaneL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::ClearNaviPaneL" ); - delete iNaviPaneText; - iNaviPaneText = NULL; - - // Pushes default decorator object (empty one) to top of the stack - // and draws it - iNaviPane->PushDefaultL(); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::ClearNaviPaneL" ); - } - - -// ----------------------------------------------------------------------------- -// Sets title-pane text -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::SetTitleL( const TDesC& aTitle ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::SetTitleL" ); - iTitlePane->SetTextL( aTitle ); - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::SetTitleL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::SetTitleFromResourceL( TInt aResourceId ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::SetTitleFromResourceL" ); - HBufC* titlePaneTitle = StringLoader::LoadLC( aResourceId ); - iTitlePane->SetTextL( *titlePaneTitle ); - CleanupStack::PopAndDestroy( titlePaneTitle ); - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::SetTitleFromResourceL" ); - } - - -// ----------------------------------------------------------------------------- -// Get the current volume setting. -// ----------------------------------------------------------------------------- -// -TInt CMusUiStatusPaneHandler::GetVolumeControlValue() const - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::GetVolumeControlValue" ); - - TInt volume = iVolumePopup->Value(); - - MUS_LOG1( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::GetVolumeControlValue: [%d]", - volume ); - return volume; - } - - -// ----------------------------------------------------------------------------- -// Activates volume control. -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::ActivateVolumeControlL( TInt aVolume, TBool aOnlyIfVisible ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::ActivateVolumeControlL" ); - - if ( aVolume < KMusVolumeMuted || aVolume > KMusVolumeMaximum ) - { - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::SetVolumeControlValue: returning" ); - return; - } - - if ( !aOnlyIfVisible || (aOnlyIfVisible && iVolumePopup->IsVisible()) ) - { - iVolumePopup->SetValue( aVolume ); - iVolumePopup->ShowVolumePopupL(); - } - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::ActivateVolumeControlL" ); - } - - -// ----------------------------------------------------------------------------- -// Activate media navi pane. -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::ActivateNaviPaneMediaL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::ActivateNaviPaneMediaL" ); - iNaviPane->PushL( *iMediaControl ); - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::ActivateNaviPaneMediaL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::ShowNaviPaneIconL( - TMusUiNaviMediaDecorator aIcon ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::ShowNaviPaneIconL" ); - CMusUiNaviMediaDecorator* mediaNavi = - static_cast( - iMediaControl->DecoratedControl() ); - mediaNavi->ShowIcon( aIcon ); - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::ShowNaviPaneIconL" ); - } - - -// ----------------------------------------------------------------------------- -// Sets navi-pane label for left side -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::SetLeftLabelL( const TDesC& aLabel ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::SetLeftLabelL" ); - - static_cast - ( iMediaControl->DecoratedControl() )->SetLeftLabelL( aLabel ); - iNaviPane->DrawNow(); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::SetLeftLabelL" ); - } - - -// ----------------------------------------------------------------------------- -// Sets navi-pane label for right side -// ----------------------------------------------------------------------------- -// -void CMusUiStatusPaneHandler::SetRightLabelL( const TDesC& aLabel ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::SetRightLabelL" ); - - static_cast - ( iMediaControl->DecoratedControl() )->SetRightLabelL( aLabel ); - iNaviPane->DrawNow(); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::SetRightLabelL" ); - } - - -// ----------------------------------------------------------------------------- -// Create media navi pane. -// ----------------------------------------------------------------------------- -// -CAknNavigationDecorator* CMusUiStatusPaneHandler::CreateMediaNaviL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiStatusPaneHandler::CreateMediaNaviL" ); - CMusUiNaviMediaDecorator* naviDecorator = CMusUiNaviMediaDecorator::NewL(); - CleanupStack::PushL( naviDecorator ); - - CAknNavigationDecorator* decoratedFolder = - CAknNavigationDecorator::NewL( - iNaviPane, - naviDecorator, - CAknNavigationDecorator::ENotSpecified ); - CleanupStack::Pop( naviDecorator );// decoratedFolder owns naviDecorator now - - CleanupStack::PushL( decoratedFolder ); - decoratedFolder->SetContainerWindowL( *iNaviPane ); - naviDecorator->SetContainerWindowL( *decoratedFolder ); - CleanupStack::Pop( decoratedFolder ); - - decoratedFolder->MakeScrollButtonVisible( EFalse ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiStatusPaneHandler::CreateMediaNaviL" ); - return decoratedFolder; - } - - -// ----------------------------------------------------------------------------- -// Get Volump Popup control pointer -// ----------------------------------------------------------------------------- -// -CAknVolumePopup* CMusUiStatusPaneHandler::GetVolumePopup() const - { - return iVolumePopup; - } - - -// end of file