diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharing/mmshui/src/musuilevelindicator.cpp --- a/mmsharing/mmshui/src/musuilevelindicator.cpp Thu Aug 19 09:51:39 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,490 +0,0 @@ -/* -* Copyright (c) 2003, 2004 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: Class for displaying level indicator icons -* -*/ - - -// USER -#include "musuilevelindicator.h" -#include "musuilevelindicatorobserver.h" -#include "muslogger.h" -#include "musresourcefinderutil.h" -#include "musuiactivetimer.h" -#include -#include - -// SYSTEM -#include -#include -#include -#include -#include -#include -#include -#include - - -// CONSTANTS -const TInt KMusUiLevelDisableTime = 4000000; -const TInt KMusUiSliderEventDelay = 300000; - - -_LIT( KMyBitmapRomFile, "Z:\\resource\\apps\\musuiicons.mif" ); -//_LIT( KMyBitmapRamFile, "C:\\resource\\apps\\musuiicons.mif" ); - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiLevelIndicator::CMusUiLevelIndicator( - TInt aMinLevel, - TInt aMaxLevel, - MMusUiLevelIndicatorObserver* aObserver ) - : iMinLevel( aMinLevel ), - iMaxLevel( aMaxLevel ), - iObserver( aObserver ) - { - MUS_LOG( "mus: mus: [MUSUI ] -> CMusUiLevelIndicator::CMusUiLevelIndicator()" ); - // pass - MUS_LOG( "mus: [MUSUI ] <- CMusUiLevelIndicator::CMusUiLevelIndicator()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiLevelIndicator* CMusUiLevelIndicator::NewL( - TAknOrientation aLayout, - TInt aMinLevel, - TInt aMaxLevel, - CCoeControl* aParent, - const TRect& aRect, - MMusUiLevelIndicatorObserver* aObserver ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLevelIndicator::NewL()" ); - - CMusUiLevelIndicator* self = NewLC( aLayout, - aMinLevel, - aMaxLevel, - aParent, - aRect, - aObserver ); - CleanupStack::Pop( self ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLevelIndicator::NewL()" ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiLevelIndicator* CMusUiLevelIndicator::NewLC( - TAknOrientation aLayout, - TInt aMinLevel, - TInt aMaxLevel, - CCoeControl* aParent, - const TRect& aRect, - MMusUiLevelIndicatorObserver* aObserver ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLevelIndicator::NewLC()" ); - - CMusUiLevelIndicator* self = new ( ELeave ) CMusUiLevelIndicator( - aMinLevel, - aMaxLevel, - aObserver ); - CleanupStack::PushL( self ); - self->ConstructL( aLayout, aParent, aRect ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLevelIndicator::NewLC()" ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiLevelIndicator::~CMusUiLevelIndicator() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLevelIndicator::~CMusUiLevelIndicator()" ); - - delete iSlider; - delete iSliderEventTimer; - delete iDisableLevelTimer; - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLevelIndicator::~CMusUiLevelIndicator()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLevelIndicator::ConstructL( TAknOrientation aLayout, - CCoeControl* aParent, - const TRect& aRect ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLevelIndicator::ConstructL()" ); - - SetRect(aRect); - - if( iMinLevel > iMaxLevel ) - { - User::Leave( KErrArgument ); - } - - iDisableLevelTimer = CMusUiActiveTimer::NewL( this ); - iSliderEventTimer = CMusUiActiveTimer::NewL( this ); - - iSlider = new CAknSlider(); - - TResourceReader reader; - - if( aLayout == EAknOrientationHorizontal ) - { - iEikonEnv->CreateResourceReaderLC( reader, R_MUS_SLIDER_HORIZONTAL ); - MUS_LOG( "mus: [MUSUI ] -> ConstructFromResourceL" ); - iSlider->ConstructFromResourceL( aParent, 0, reader); - CleanupStack::PopAndDestroy(); // reader - iSlider->SetRange( iMinLevel, iMaxLevel ); - iSlider->SetRect( aRect ); - } - else - { - iEikonEnv->CreateResourceReaderLC( reader, R_MUS_SLIDER_VERTICAL ); - iSlider->ConstructFromResourceL( aParent, 0 ,reader); - CleanupStack::PopAndDestroy(); // reader - TRect rect = TRect( TPoint( (aRect.iBr.iX - iSlider->Size().iWidth),(aRect.iTl.iY) ),TSize( iSlider->Size() ) ); - iSlider->SetRect(rect); - - /* Draw the Min and Max Zoom */ - TParse parse; - parse.Set( KMyBitmapRomFile, &KDC_APP_RESOURCE_DIR, NULL ); - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - AknsUtils::CreateIconL(AknsUtils::SkinInstance(), - KAknsIIDQsnBgScreen, - bitmap, - mask, - parse.FullName(), - EMbmMusuiiconsQgn_indi_browser_tb_zoom_in, - EMbmMusuiiconsQgn_indi_browser_tb_zoom_in_mask); - iSlider->SetGraphics(CAknSlider::EElemEmptyLeftCap,bitmap,mask); - AknsUtils::CreateIconL(AknsUtils::SkinInstance(), - KAknsIIDQsnBgScreen, - bitmap, - mask, - parse.FullName(), - EMbmMusuiiconsQgn_indi_browser_tb_zoom_out, - EMbmMusuiiconsQgn_indi_browser_tb_zoom_out_mask); - iSlider->SetGraphics(CAknSlider::EElemEmptyRightCap,bitmap,mask); - } - - iSlider->HandleResourceChange( - KEikMessageCaptionedControlEditableStateChange ); - iSlider->SetObserver( this ); - iSlider->SetPositionIndicators( CAknSlider::EPosMarker ); - iSlider->SetTicksEnabled( EFalse ); - iSlider->EnableDrag(); - iSlider->SetStepSize( 1 ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLevelIndicator::ConstructL()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLevelIndicator::SetLevelL( TMusUiIndicatorType aType, - TInt aLevel, - TBool aUseTimer ) - { - MUS_LOG1( "mus: [MUSUI ] -> CMusUiLevelIndicator::SetLevelL( %d ) ", - aLevel ); - if ( aLevel >= iMinLevel && aLevel <= iMaxLevel ) - { - switch(aType) - { - case EMusUiIndicatorTypeZoom: - { - iZoomLevel=aLevel; - break; - } - case EMusUiIndicatorTypeBrightness: - { - iBrightnessLevel=aLevel; - break; - } - case EMusUiIndicatorTypeDuration: - { - iDurationLevel=aLevel; - break; - } - } - } - - // Set it to the slider - if ( !iSliderEventTimer->IsActive() ) - { - iSlider->SetValueL( aLevel ); - } - - DrawNow(); - - if ( aUseTimer ) - { - iDisableLevelTimer->After( KMusUiLevelDisableTime ); - } - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLevelIndicator::SetLevelL()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TInt CMusUiLevelIndicator::GetLevel( TMusUiIndicatorType aType ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLevelIndicator::GetLevel()" ); - - TInt ret=KErrNotFound; - - switch(aType) - { - case EMusUiIndicatorTypeZoom: - { - ret=iZoomLevel; - break; - } - case EMusUiIndicatorTypeBrightness: - { - ret=iBrightnessLevel; - break; - } - - case EMusUiIndicatorTypeDuration: - { - ret = iSlider->Value(); - break; - } - } - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLevelIndicator::GetLevel()" ); - return ret; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLevelIndicator::SetRange( TInt aMinLevel, - TInt aMaxLevel, - TBool aUseTimer) - { - MUS_LOG2( "mus: [MUSUI ] -> CMusUiLevelIndicator::SetRange( %d - %d ) ", - aMinLevel, aMaxLevel ); - - if( aMinLevel < aMaxLevel ) - { - iMinLevel = aMinLevel; - iMaxLevel = aMaxLevel; - iSlider->SetRange( iMinLevel, iMaxLevel ); - } - - if ( aUseTimer ) - { - iDisableLevelTimer->After( KMusUiLevelDisableTime ); - } - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLevelIndicator::SetRange()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLevelIndicator::SetIndicatorType( TMusUiIndicatorType aType ) - { - iIndicatorType = aType; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TMusUiIndicatorType CMusUiLevelIndicator::GetIndicatorType() - { - return iIndicatorType; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLevelIndicator::SizeChanged() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLevelIndicator::SizeChanged()" ); - - if ( iSlider ) - { - iSlider->SetRect( Rect() ); - } - - DrawNow(); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLevelIndicator::SizeChanged()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -void CMusUiLevelIndicator::Draw( const TRect& aRect ) const - { - CWindowGc& gc = SystemGc(); - gc.SetBrushColor( iEikonEnv->ControlColor( EColorWindowBackground, *this ) ); - gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); - gc.Clear( aRect ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TInt CMusUiLevelIndicator::CountComponentControls() const - { - return 1; // return nbr of controls inside this container - } - - -// ----------------------------------------------------------------------------- -// Called by framework to retrieve the control specified by index. -// ----------------------------------------------------------------------------- -// -CCoeControl* CMusUiLevelIndicator::ComponentControl( TInt aIndex ) const - { - switch ( aIndex ) - { - case 0: - { - return iSlider; - } - default: - { - return NULL; - } - } - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLevelIndicator::HandleResourceChange( TInt aType ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLevelIndicator::HandleResourceChange()" ); - - if( aType==KEikDynamicLayoutVariantSwitch ) - { - if ( iSlider ) // Force a re-layout - { - iSlider->SetRect( Rect() ); - } - } - - DrawNow(); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLevelIndicator::HandleResourceChange()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLevelIndicator::HandleControlEventL( CCoeControl* aControl, - TCoeEvent aEventType) - { - // No logging due to huge amount of events - - if ( aControl == iSlider && - aEventType == MCoeControlObserver::EEventStateChanged ) - { - // Restart the disable timer if running - if ( iDisableLevelTimer->IsActive() ) - { - iDisableLevelTimer->After( KMusUiLevelDisableTime ); - } - - if ( iObserver ) - { - iSliderEventTimer->After( KMusUiSliderEventDelay ); - } - } - - // No logging due to huge amount of events - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLevelIndicator::TimerComplete( CMusUiActiveTimer* aTimer ) - { - if ( aTimer == iSliderEventTimer ) - { - MUS_LOG( "mus: [MUSUI ] Slider event timer complete" ); - - if ( iObserver ) - { - iObserver->IndicatorLevelChanged( iSlider->Value() ); - } - } - else if ( aTimer == iDisableLevelTimer ) - { - MUS_LOG( "mus: [MUSUI ] Slider visibility timer complete" ); - - if ( iObserver ) - { - iObserver->SetLevelIndicatorVisibility( EFalse ); - } - } - else - { - // NOP - } - } - - - -// End of File - - -