diff -r 514d98f21c43 -r 4ea6f81c838a mulwidgets/mulsliderwidget/src/mulslidermodel.cpp --- a/mulwidgets/mulsliderwidget/src/mulslidermodel.cpp Mon Jun 21 16:15:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,683 +0,0 @@ -/* -* Copyright (c) 2007-2008 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: Implementation of slider model interface - * -*/ - -//Class headers -#include "mulslidermodel.h" - -// Alf headers - -#include -#include -#include - -// Osn Headers -#include //for new(EMM) -#include -#include -#include -#include - -// For Common strings - -#include "mulslidervertical.h" -#include "mulsliderwidget.h" - -const int KMaxrange = 100; -const int KTick = 1; -const int KSize = 50; -namespace Alf -{ - -struct SliderModelDataImpl - { - int mSldMaxRange;// Slider Maximum Value - int mSldMinRange;// Slider Maximum Value - int mSldTick;// Size of single click movement - int mSldPrimaryTick;// Current Handle Position - int mSldSecondaryTick;// Secondary progress position - char* mSldLeftText;// Left text - char* mSldRightText;// Right text - char* mSldPercentText;// Percentage text for zoom slider - MulSliderWidget* mSliderWidget; - IMulSliderBaseElementInternal * mSliderElement;// Element pointer - sliderTemplate mTemplateId; // template ID - std::auto_ptr mItem; - SliderModelDataImpl() - { - mItem = ( new (EMM) MulVisualItem() ); - mSldMaxRange = KMaxrange; - mSldMinRange = 0; - mSldTick = KTick; - mSldPrimaryTick = 0; - mSldSecondaryTick = 0; - mSldLeftText = NULL; - mSldRightText =NULL; - mSldPercentText = NULL; - mSliderWidget = NULL; - mSliderElement = NULL; - mTemplateId = ESliderTemplateNone; - } - }; - - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -MulSliderModel::MulSliderModel(): -mModel ( NULL ) - { - mSldrModelData = new(EMM)SliderModelDataImpl(); - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -MulSliderModel::~MulSliderModel() - { - if(mSldrModelData) - { - delete mSldrModelData; - } - else - { - - } - } - -// --------------------------------------------------------------------------- -// SetData -// --------------------------------------------------------------------------- -// -void MulSliderModel::SetData(const MulVisualItem& aSliderItem) - { - - UString str; - - - if(aSliderItem.Attribute(mulvisualitem::KMulMaxRange)) - { - SetMaxRange( - aSliderItem.AttributeAsInt(mulvisualitem::KMulMaxRange)); - } - if(aSliderItem.Attribute(mulvisualitem::KMulMinRange)) - { - SetMinRange( - aSliderItem.AttributeAsInt(mulvisualitem::KMulMinRange)); - } - if(aSliderItem.Attribute(mulvisualitem::KMulTick)) - { - SetTick(aSliderItem. - AttributeAsInt(mulvisualitem::KMulTick)); - } - if(aSliderItem.Attribute(mulvisualitem::KMulPrimaryTick)) - { - SetPrimaryValue(aSliderItem. - AttributeAsInt(mulvisualitem::KMulPrimaryTick)); - } - if(aSliderItem.Attribute(mulvisualitem::KMulSecondaryTick)) - { - SetSecondaryValue(aSliderItem. - AttributeAsInt(mulvisualitem::KMulSecondaryTick)); - } - - if(aSliderItem.Attribute(mulvisualitem::KMulPercent1)) - { - - int percentValue = aSliderItem. - AttributeAsInt(mulvisualitem::KMulPercent1); - - _LIT8(KPercent,""); - TBuf8 PercentText(KPercent); - PercentText.AppendNum (percentValue); - PercentText.Append(_L("%")); - mSldrModelData->mSldPercentText = (char*)PercentText.PtrZ(); - - } - - UpdateElement(); - } - - -// --------------------------------------------------------------------------- -// Return MulVisual Item -// --------------------------------------------------------------------------- -// -const MulVisualItem& MulSliderModel::Data() const - { - mSldrModelData->mItem->SetAttribute ( mulvisualitem::KMulMaxRange, - (int)mSldrModelData->mSldMaxRange); - mSldrModelData->mItem->SetAttribute ( mulvisualitem::KMulMinRange, - (int)mSldrModelData->mSldMinRange); - mSldrModelData->mItem->SetAttribute ( mulvisualitem::KMulTick, - (int)mSldrModelData->mSldTick); - mSldrModelData->mItem->SetAttribute ( mulvisualitem::KMulPrimaryTick, - (int)mSldrModelData->mSldPrimaryTick); - mSldrModelData->mItem->SetAttribute ( mulvisualitem::KMulSecondaryTick, - (int)mSldrModelData->mSldSecondaryTick); - mSldrModelData->mItem->SetAttribute ( mulvisualitem::KMulCounter1, - (int)mSldrModelData->mSldLeftText ); - mSldrModelData->mItem->SetAttribute ( mulvisualitem::KMulCounter2, - (int)mSldrModelData->mSldRightText ); - mSldrModelData->mItem->SetAttribute ( mulvisualitem::KMulPercent1, - (int)mSldrModelData->mSldPercentText ); - return *(mSldrModelData->mItem); - } - -// --------------------------------------------------------------------------- -// SetValue -// --------------------------------------------------------------------------- -// -void MulSliderModel::SetPrimaryValue(int aValue) - { - int maxRange = mSldrModelData->mSldMaxRange; - int minRange = mSldrModelData->mSldMinRange; - // Validate aValue - if(aValue != mSldrModelData->mSldPrimaryTick) - { - if( (aValue >= minRange) && (aValue <= maxRange)) - { - mSldrModelData->mSldPrimaryTick = aValue; - } - else if(aValue <= minRange) - { - mSldrModelData->mSldPrimaryTick = minRange; - } - else if(aValue >= maxRange) - { - mSldrModelData->mSldPrimaryTick = maxRange; - } - // Update the visualization - if(GetElement()) - { - GetElement()->updateVisualization(); - } - } - } - -// --------------------------------------------------------------------------- -// Gets the Slider Element -// --------------------------------------------------------------------------- -// -IMulSliderBaseElementInternal* MulSliderModel::GetElement() - { - if(mSldrModelData->mSliderWidget) - { - return mSldrModelData->mSliderWidget->GetSliderElement(); - } - else - { - - } - return NULL; - } - - - // --------------------------------------------------------------------------- -// update element visualization -// --------------------------------------------------------------------------- -// -void MulSliderModel::UpdateElement() - { - if(mSldrModelData->mSliderWidget) - { - if(mSldrModelData->mSliderWidget->GetSliderElement()) - { - mSldrModelData->mSliderWidget->GetSliderElement()->updateVisualization(); - } - } - } - -// --------------------------------------------------------------------------- -// Value -// --------------------------------------------------------------------------- -// -int MulSliderModel::PrimaryValue() const - { - return mSldrModelData->mSldPrimaryTick; - } - -// --------------------------------------------------------------------------- -// SetValue -// --------------------------------------------------------------------------- -// -void MulSliderModel::SetSecondaryValue(int aValue) - { - int maxRange = mSldrModelData->mSldMaxRange; - int minRange = mSldrModelData->mSldMinRange; - if(mSldrModelData->mSldSecondaryTick != aValue) - { - // Validate aValue - if( (aValue >= minRange) && (aValue <= maxRange)) - { - mSldrModelData->mSldSecondaryTick = aValue; - } - - UpdateElement(); - } - } - -// --------------------------------------------------------------------------- -// Value -// --------------------------------------------------------------------------- -// -int MulSliderModel::SecondaryValue() const - { - return mSldrModelData->mSldSecondaryTick; - } - - -// --------------------------------------------------------------------------- -// TotalTicks -// --------------------------------------------------------------------------- -// -int MulSliderModel::TotalTicks() const - { - //MUL_LOG_INFO("CMulSliderModel::TotalTicks"); - - int maxRange = mSldrModelData->mSldMaxRange; - int minRange = mSldrModelData->mSldMinRange; - int tick = mSldrModelData->mSldTick; - if(tick == 0) - { - tick = 1; - } - return ((maxRange-minRange)/tick); - } - -// --------------------------------------------------------------------------- -// SetTemplate -// --------------------------------------------------------------------------- -// -void MulSliderModel::SetTemplate( sliderTemplate aTemplateId) - { - if(mSldrModelData->mTemplateId != aTemplateId) - { - mSldrModelData->mTemplateId = aTemplateId; - if(mSldrModelData->mSliderWidget) - { - // Change the tempate - mSldrModelData->mSliderWidget->changeTemplate(aTemplateId); - } - else - { - //do nothing - } - } - } - -// --------------------------------------------------------------------------- -// makeInterface -// --------------------------------------------------------------------------- -// -IAlfInterfaceBase* MulSliderModel::makeInterface( const IfId& aType) - { - //MUL_LOG_INFO("CMulSliderModel::makeInterface"); - IAlfInterfaceBase* ret(0); - UString param(aType.mImplementationId); - if ( param == IMulSliderModel::type().mImplementationId ) - { - ret = static_cast(this); - } - else if(param == IAlfModel::type().mImplementationId) - { - ret = static_cast(this); - } - return ret; - - } - -// --------------------------------------------------------------------------- -// SetMinRange -// --------------------------------------------------------------------------- -// - -void MulSliderModel::SetMinRange(int aMinRange) - { - // Validate aMinRange - if(aMinRange != mSldrModelData->mSldMinRange) - { - mSldrModelData->mSldMinRange = aMinRange; - - if(aMinRange > mSldrModelData->mSldMaxRange) - { - mSldrModelData->mSldMaxRange = aMinRange; - mSldrModelData->mSldTick = 0; - } - else - { - if(mSldrModelData->mSldTick > mSldrModelData->mSldMaxRange - mSldrModelData->mSldMinRange || mSldrModelData->mSldTick == 0) - { - mSldrModelData->mSldTick = mSldrModelData->mSldMaxRange - mSldrModelData->mSldMinRange; - } - } - - mSldrModelData->mSldPrimaryTick = aMinRange; - UpdateElement(); - } - - } - -// --------------------------------------------------------------------------- -// SetMaxRange -// --------------------------------------------------------------------------- -// - -void MulSliderModel::SetMaxRange(int aMaxRange) - { - if(aMaxRange != mSldrModelData->mSldMaxRange) - { - mSldrModelData->mSldMaxRange = aMaxRange; - - if(aMaxRange < mSldrModelData->mSldMinRange) - { - mSldrModelData->mSldMinRange = aMaxRange; - mSldrModelData->mSldTick = 0; - } - else - { - if(mSldrModelData->mSldTick > mSldrModelData->mSldMaxRange - mSldrModelData->mSldMinRange || mSldrModelData->mSldTick == 0 ) - { - mSldrModelData->mSldTick = mSldrModelData->mSldMaxRange - mSldrModelData->mSldMinRange; - } - } - - mSldrModelData->mSldPrimaryTick = mSldrModelData->mSldMinRange; - UpdateElement(); - } - } - -// --------------------------------------------------------------------------- -// MinRange -// --------------------------------------------------------------------------- -// - -int MulSliderModel::MinRange() const - { - //MUL_LOG_INFO("CMulSliderModel::makeInterface"); - return mSldrModelData->mSldMinRange; - } - -// --------------------------------------------------------------------------- -// MaxRange -// --------------------------------------------------------------------------- -// - -int MulSliderModel::MaxRange() const - { - //MUL_LOG_INFO("CMulSliderModel::makeInterface"); - return mSldrModelData->mSldMaxRange; - } -// --------------------------------------------------------------------------- -// SetTick -// --------------------------------------------------------------------------- -// - -void MulSliderModel::SetTick(int aTick) - { - //MUL_LOG_INFO("CMulSliderModel::makeInterface"); - if(aTick != mSldrModelData->mSldTick && aTick > 0) - { - if(aTick > mSldrModelData->mSldMaxRange - mSldrModelData->mSldMinRange) - { - mSldrModelData->mSldTick = mSldrModelData->mSldMaxRange - mSldrModelData->mSldMinRange; - } - else - { - mSldrModelData->mSldTick = aTick; - } - mSldrModelData->mSldPrimaryTick = mSldrModelData->mSldMinRange; - if(GetElement()) - { - GetElement()->updateVisualization(); - } - } - } - -// --------------------------------------------------------------------------- -// Tick -// --------------------------------------------------------------------------- -// - -int MulSliderModel::Tick() const - { - //MUL_LOG_INFO("CMulSliderModel::makeInterface"); - return mSldrModelData->mSldTick; - } - - -// --------------------------------------------------------------------------- -// SetRightText -// --------------------------------------------------------------------------- -// - -void MulSliderModel::SetRightText(char* aRightText) - { - if(aRightText) - { - mSldrModelData->mSldRightText = aRightText; - UpdateElement(); - } - - } - -// --------------------------------------------------------------------------- -// SetLeftText -// --------------------------------------------------------------------------- -// - -void MulSliderModel::SetLeftText(char* aLeftText) - { - if(aLeftText) - { - mSldrModelData->mSldLeftText = aLeftText; - UpdateElement(); - } - } - -// --------------------------------------------------------------------------- -// SetPercentText -// --------------------------------------------------------------------------- -// - -void MulSliderModel::SetPercentText(char* aPercText) - { - if(aPercText) - { - mSldrModelData->mSldPercentText = aPercText; - if(GetElement()) - { - GetElement()->updateTextVisualization(); - } - } - - } - -// --------------------------------------------------------------------------- -// GetRightText -// --------------------------------------------------------------------------- -// - -const char* MulSliderModel::GetRightText() - { - //MUL_LOG_INFO("CMulSliderModel::makeInterface"); - return mSldrModelData->mSldRightText; - } - -// --------------------------------------------------------------------------- -// GetLeftText -// --------------------------------------------------------------------------- -// - -const char* MulSliderModel::GetLeftText() - { - //MUL_LOG_INFO("CMulSliderModel::makeInterface"); - return mSldrModelData->mSldLeftText; - } - -// --------------------------------------------------------------------------- -// GetPercentText -// --------------------------------------------------------------------------- -// - -const char* MulSliderModel::GetPercentText() - { - //MUL_LOG_INFO("CMulSliderModel::makeInterface"); - return mSldrModelData->mSldPercentText; - } - - -// --------------------------------------------------------------------------- -// addModelChangeObserver -// --------------------------------------------------------------------------- -// -void MulSliderModel::addModelChangeObserver( IAlfModelChangeObserver& /*aObserver*/ ) - { - //MUL_LOG_INFO("CMulSliderModel::addModelChangeObserver"); - } - -// --------------------------------------------------------------------------- -// removeModelChangeObserver -// --------------------------------------------------------------------------- -// -void MulSliderModel::removeModelChangeObserver( IAlfModelChangeObserver& /*aObserver*/ ) - { - //MUL_LOG_INFO("CMulSliderModel::removeModelChangeObserver"); - } - -// --------------------------------------------------------------------------- -// setData -// --------------------------------------------------------------------------- -// -void MulSliderModel::setData( IAlfVariantType* /*aData*/ ) - { - //MUL_LOG_INFO("CMulSliderModel::setData"); - } - -// --------------------------------------------------------------------------- -// updateData -// --------------------------------------------------------------------------- -// -void MulSliderModel::updateData(int /*aNumContainerIndices*/,int* /*aContainerIndices*/, - IAlfVariantType* /*aData*/ ) - { - //MUL_LOG_INFO("CMulSliderModel::updateData"); - } - -// --------------------------------------------------------------------------- -// addData -// --------------------------------------------------------------------------- -// -void MulSliderModel::addData(int /*aNumContainerIndices*/,int* /*aContainerIndices*/, - IAlfVariantType* /*aData*/ ) - { - //MUL_LOG_INFO("CMulSliderModel::addData"); - } - -// --------------------------------------------------------------------------- -// removeData -// --------------------------------------------------------------------------- -// -void MulSliderModel::removeData(int /*aNumContainerIndices*/,int* /*aContainerIndices*/ ) - { - //MUL_LOG_INFO("CMulSliderModel::removeData"); - } - -// --------------------------------------------------------------------------- -// executeOperations -// --------------------------------------------------------------------------- -// -void MulSliderModel::executeOperations(AlfPtrVector& /*aOperationsArray*/) - { - //MUL_LOG_INFO("CMulSliderModel::executeOperations"); - - - } - -// --------------------------------------------------------------------------- -// executeOperation -// --------------------------------------------------------------------------- -// -void MulSliderModel::executeOperation(AlfModelOperation* /*aOperation*/) - { - //MUL_LOG_INFO("CMulSliderModel::executeOperation"); - } - -// --------------------------------------------------------------------------- -// clearModel -// --------------------------------------------------------------------------- -// -void MulSliderModel::clearModel() - { - //MUL_LOG_INFO("CMulSliderModel::clearModel"); - } - -// --------------------------------------------------------------------------- -// data -// --------------------------------------------------------------------------- -// -IAlfVariantType* MulSliderModel::data() const - { - //MUL_LOG_INFO("CMulSliderModel::data"); - return NULL; - } - -// --------------------------------------------------------------------------- -// StoreWidget -// --------------------------------------------------------------------------- -// -void MulSliderModel::storeWidget(MulSliderWidget* aWidget) - { - mSldrModelData->mSliderWidget = aWidget; - } -// --------------------------------------------------------------------------- -// GetTemplate -// --------------------------------------------------------------------------- -// -sliderTemplate MulSliderModel::GetTemplate() - { - return mSldrModelData->mTemplateId ; - } - -// --------------------------------------------------------------------------- -// IsLandscape -// -// --------------------------------------------------------------------------- -// - bool MulSliderModel::IsLandscape() - { - - bool landscape = false; - if(mSldrModelData->mSliderWidget) - { - TSize size = AlfUtil::ScreenSize(); - if(size.iHeight < size.iWidth) - { - landscape = true; - } - else if(size.iWidth < size.iHeight) - { - landscape = false; - } - } - return landscape; - } - - } // Namespace Alf - -//End of file