diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/sliders/cvtuipopupbase.cpp --- a/vtuis/videotelui/src/sliders/cvtuipopupbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,509 +0,0 @@ -/* -* Copyright (c) 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: Base class for video telephone popups -* -*/ - - -#include -#include -#include -#include - -#include "cvtuipopupbase.h" -#include "mvtuicomponentmanager.h" -#include "mvtuicomponentstateobserver.h" -#include "VtUiPanic.h" -#include -#include -#include - -// default time out time for popup -const TInt KDefaultTimeOutTime = 2; - -// max value for slider is 100 (100%) -const TInt KMaxSliderValue = 100; - -// Implementation of TVtUiBaseComponentState - -// --------------------------------------------------------------------------- -// TVtUiBaseComponentState::TVtUiBaseComponentState -// --------------------------------------------------------------------------- -// -TVtUiBaseComponentState::TVtUiBaseComponentState( - MVtUiComponent& aComponent, TVtUiBlockListBitField aBitField ) : - TVtUiComponentState( aComponent, aBitField ) - { - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::~CVtUiPopupBase -// --------------------------------------------------------------------------- -// -CVtUiPopupBase::~CVtUiPopupBase() - { - __VTPRINTENTER( "CVtUiPopupBase.~CVtUiPopupBase" ) - if ( iPopup ) - { - iPopup->CloseVolumePopup(); - } - // unregister component change registration - iComponentManager.ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::EUnregister ); - delete iPopup; - __VTPRINTEXIT( "CVtUiPopupBase.~CVtUiPopupBase" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::ComponentId -// --------------------------------------------------------------------------- -// - MVtUiComponent::TComponentId CVtUiPopupBase::ComponentId() const - { - __VTPRINTENTER( "CVtUiPopupBase.ComponentId" ) - __VTPRINTEXIT( "CVtUiPopupBase.ComponentId" ) - return iComponentId; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::ComponentAsControl -// --------------------------------------------------------------------------- -// - CCoeControl* CVtUiPopupBase::ComponentAsControl() - { - __VTPRINTENTER( "CVtUiPopupBase.ComponentAsControl" ) - __VTPRINTEXIT( "CVtUiPopupBase.ComponentAsControl" ) - return NULL; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::DoActivateL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::DoActivateL() - { - __VTPRINTENTER( "CVtUiPopupBase.DoActivateL" ) - User::LeaveIfError( - iComponentManager.ChangeResourceChangeRegistration( - *this, MVtUiComponentManager::ERegister ) ); - - User::LeaveIfError( iComponentManager.ChangeKeyEventRegistration( - *this, MVtUiComponentManager::ERegister ) ); - - ShowPopupL(); - __VTPRINTEXIT( "CVtUiPopupBase.DoActivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::DoDeactivateL() -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::DoDeactivateL() - { - __VTPRINTENTER( "CVtUiPopupBase.DoDeactivateL()" ) - iPopup->CloseVolumePopup(); - //notify observer that popup has been closed - if ( iCompStateObserver ) - { - iCompStateObserver->ComponenStateChangedL(); - } - // unregister resource change registration - iComponentManager.ChangeResourceChangeRegistration( - *this, MVtUiComponentManager::EUnregister ); - - iComponentManager.ChangeKeyEventRegistration( - *this, MVtUiComponentManager::EUnregister ); - __VTPRINTEXIT( "CVtUiPopupBase.DoDeactivateL()" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::HandleResourceChangeL() -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::HandleResourceChangeL( TInt aType ) - { - __VTPRINTENTER( "CVtUiPopupBase.HandleResourceChangeL()" ) - if ( aType == KEikDynamicLayoutVariantSwitch ) - { - iPopup->SetPosition( PopupPosition() ); - } - __VTPRINTEXIT( "CVtUiPopupBase.HandleResourceChangeL()" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::HandleControlEventL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::HandleControlEventL( CCoeControl* /*aControl*/, - TCoeEvent aEventType ) - { - __VTPRINTENTER( "CVtUiPopupBase.HandleControlEventL" ) - if ( aEventType == EEventStateChanged ) - { - // popup closed - if( !IsPopUpVisible() ) - { - ClosePopup(); - } - } - __VTPRINTEXIT( "CVtUiPopupBase.HandleControlEventL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::OfferKeyEventL() -// --------------------------------------------------------------------------- -// -TKeyResponse CVtUiPopupBase::OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode aCode ) - { - __VTPRINTENTER( "CVtUiPopupBase.OfferKeyEventL" ) - TKeyResponse response( EKeyWasNotConsumed ); - // Don't handle other types here - if ( aCode != EEventKey ) - { - return response; - } - - if ( aEvent.iScanCode == EStdKeyUpArrow || - aEvent.iScanCode == EStdKeyDownArrow ) - { - __VTPRINT( DEBUG_GEN, "CVtUiPopupBase.OfferKeyEventL" ) - TInt step( 1 ); - if ( aEvent.iScanCode == EStdKeyDownArrow ) - { - step = -step; - } - - const TInt current( Value() ); - TInt value( current + step ); - - TInt maxValue; - TInt minValue; - iPopup->GetRange( minValue, maxValue ); - - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.OfferKeyEventL iPopup minValue = %d", - minValue ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.OfferKeyEventL iPopup maxValue = %d", - maxValue ) - - minValue = minValue / iScalingConstant; - value = Max( minValue, Min( value, iStepCount ) ); - if ( value != current ) - { - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.OfferKeyEventL Volume value = %d", - value ) - SetValue( value ); - response = EKeyWasConsumed; - } - ShowPopupL(); - } - __VTPRINTEXITR( "CVtUiPopupBase.OfferKeyEventL %d", response ) - return response; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetObserver() -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetObserver( MVtUiComponentStateObserver& aCompStateObserver ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetObserver()" ) - iCompStateObserver = &aCompStateObserver; - __VTPRINTEXIT( "CVtUiPopupBase.SetObserver()" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetValueType() -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetValueType( TInt aValueType ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetValueType" ) - iPopup->SetValueType( aValueType ); - __VTPRINTEXIT( "CVtUiPopupBase.SetValueType" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetPermanenVisibility() -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetPermanenVisibility( TBool aPermanent ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetPermanenVisibility" ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase = %d", aPermanent ); - const TInt longPeriod( 86400 ); // 24 h - if ( aPermanent ) - { - iPopup->SetTimeOutAsSecond( longPeriod ); - iPopup->ClosePopupWhenTappedOutside( !aPermanent ); - } - else - { - iPopup->ClosePopupWhenTappedOutside( !aPermanent ); - iPopup->SetTimeOutAsSecond( iTimeOutTime ); - } - __VTPRINTEXIT( "CVtUiPopupBase.SetPermanenVisibility" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::CVtUiPopupBase -// --------------------------------------------------------------------------- -// -CVtUiPopupBase::CVtUiPopupBase( MVtUiComponentManager& aComponentManager, - TVtUiBlockListBitField aBitField, TComponentId aComponentId ) : - iComponentManager ( aComponentManager ), iComponentState( *this, aBitField ), - iComponentId( aComponentId ), iScalingConstant( 1 ) - { - __VTPRINTENTER( "CVtUiPopupBase.CVtUiPopupBase" ) - __VTPRINTEXIT( "CVtUiPopupBase.CVtUiPopupBase" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::BaseConstructL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::BaseConstructL() - { - __VTPRINTENTER( "CVtUiPopupBase.BaseConstructL" ) - iPopup = CAknVolumePopup::NewL( NULL, ETrue ); - iPopup->SetObserver( this ); - - // Initialized to 2 seconds - iTimeOutTime = KDefaultTimeOutTime; - - // set position - iPopup->SetPosition( PopupPosition() ); - - User::LeaveIfError( - iComponentManager.ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::ERegister ) ); - __VTPRINTEXIT( "CVtUiPopupBase.BaseConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::ShowPopupL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::ShowPopupL() - { - __VTPRINTENTER( "CVtUiPopupBase.ShowPopupL" ) - iPopup->ShowVolumePopupL(); - __VTPRINTEXIT( "CVtUiPopupBase.ShowPopupL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::OpenPopupL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::OpenPopupL() - { - __VTPRINTENTER( "CVtUiPopupBase.OpenPopupL" ) - TRAPD( error, - iComponentManager.RequestActivationL( ComponentId() ) ); - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.OpenPopupL reqAct=%d", error ); - User::LeaveIfError( error ); - __VTPRINTEXIT( "CVtUiPopupBase.OpenPopupL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::ClosePopup -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::ClosePopup() - { - __VTPRINTENTER( "CVtUiPopupBase.ClosePopup" ) - TInt error( KErrNone ); - TRAP( error, iComponentManager.DeActivateComponentL( ComponentId() ) ); - __VTPRINTEXITR( "CVtUiPopupBase.ClosePopup %d", error ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetTimeOut -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetTimeOut( TInt aTime ) - { - iTimeOutTime = aTime; - iPopup->SetTimeOutAsSecond( aTime ); - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::IsPopUpVisible -// --------------------------------------------------------------------------- -// -TBool CVtUiPopupBase::IsPopUpVisible() - { - return iPopup->IsVisible(); - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::PopupPosition -// --------------------------------------------------------------------------- -// -TPoint CVtUiPopupBase::PopupPosition() const - { - __VTPRINTENTER( "CVtUiPopupBase.PopupPosition" ) - TRect mainPaneRect; - TAknWindowLineLayout popupLineLayout; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPaneRect ); - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - popupLineLayout = - AknLayoutScalable_Apps::aid_placing_vt_slider_lsc().LayoutLine(); - } - else - { - popupLineLayout = - AknLayoutScalable_Apps::aid_placing_vt_slider_prt().LayoutLine(); - } - - TAknLayoutRect layoutRect; - layoutRect.LayoutRect( mainPaneRect, popupLineLayout ); - __VTPRINTEXIT( "CVtUiPopupBase.PopupPosition" ) - return layoutRect.Rect().iTl; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetPopupValue -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetPopupValue( TInt aValue ) - { - iPopup->SetValue( aValue * iScalingConstant ); - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetAdjustRange -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetAdjustRange( TInt aMinValue, TInt aMaxValue, - TInt aStepCount ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetAdjustRange" ) - __ASSERT_ALWAYS( aMinValue <= aMaxValue && - ( aMaxValue - aMinValue ) >= aStepCount && - aStepCount > 0, VtUiPanic::Panic( EVtUiPanicOutOfRange ) ); - - // store stepcount - iStepCount = aStepCount; - - // Aknvolumepopup does not do any scaling i.e max value - // must be 100 or otherwise the per cent value is not shown right. - // Scaling constant is used to multiple max value to be 100. - iScalingConstant = KMaxSliderValue / aMaxValue; - iPopup->SetRange( aMinValue, KMaxSliderValue ); - TInt stepSize = KMaxSliderValue / aStepCount; - iPopup->SetStepSize( stepSize ); - __VTPRINTEXIT( "CVtUiPopupBase.SetAdjustRange" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetValue -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetValue( TInt aValue ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetValue" ) - SetPopupValue( aValue ); - __VTPRINTEXITR( "CVtUiPopupBase.SetValue %d", Value() ) - } - - // --------------------------------------------------------------------------- -// CVtUiPopupBase::ScaleAndSetValue -// --------------------------------------------------------------------------- -// - void CVtUiPopupBase::ScaleAndSetValue( TInt aValue ) - { - __VTPRINTENTER( "CVtUiPopupBase.ScaleAndSetValue" ) - SetPopupValue( SliderValueWithScaling( aValue ) ); - __VTPRINTEXITR( "CVtUiPopupBase.ScaleAndSetValue %d", Value() ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::ScaledValue -// --------------------------------------------------------------------------- -// - TInt CVtUiPopupBase::ScaledValue() const - { - __VTPRINTENTER( "CVtUiPopupBase.ScaledValue" ) - TInt value = Value() * ( iMax-iMin ) / iStepCount + iMin; - __VTPRINTEXITR( "CVtUiPopupBase.ScaledValue %d", value ) - return value; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SliderValueWithScaling -// --------------------------------------------------------------------------- -// - TInt CVtUiPopupBase::SliderValueWithScaling( TInt aValue) const - { - __VTPRINTENTER( "CVtUiPopupBase.SliderValueWithScaling" ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.aValue=%d", aValue ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.iStepCount=%d", iStepCount ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.iMax=%d", iMax ) - - if ( iMax == aValue) - { - return iStepCount; - } - else if ( iMin == aValue ) - { - return 0; - } - TInt modValue = iStepCount * ( aValue - iMin) % ( iMax - iMin ); - TInt value = iStepCount * ( aValue - iMin) / ( iMax - iMin ); - - if ( modValue > ( iMax - iMin ) / 2 ) - { - value++; - } - - __VTPRINTEXITR( "CVtUiPopupBase.SliderValueWithScaling %d", value ) - return value; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetMinAndMaxValues -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetMinAndMaxValues( TInt aMin, TInt aMax ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetMaxAndMinValues" ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase..aMax=%d", aMax ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase..aMinV=%d", aMin ) - iMax = aMax; - iMin = aMin; - __VTPRINTEXIT( "CVtUiPopupBase.SetMaxAndMinValues " ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::Value -// --------------------------------------------------------------------------- -// -TInt CVtUiPopupBase::Value() const - { - __VTPRINTENTER( "CVtUiPopupBase.Value" ) - __VTPRINTEXITR( "CVtUiPopupBase.Value %d", iPopup->Value() ) - return iPopup->Value() / iScalingConstant; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::UpdatePopupL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::UpdatePopupL() - { - __VTPRINTENTER( "CVtUiPopupBase.UpdatePopupL" ) - __VTPRINTEXIT( "CVtUiPopupBase.UpdatePopupL " ) - }