--- 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 <alf/alfmodel.h>
-#include <alf/alfutil.h>
-#include <mul/mulvarianttype.h>
-
-// Osn Headers
-#include <osn/osnnew.h> //for new(EMM)
-#include <osn/ustring.h>
-#include <mul/mulvisualitem.h>
-#include <mul/imulsliderwidget.h>
-#include <string.h>
-
-// 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<MulVisualItem> 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<KSize> 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<IMulSliderModel*>(this);
- }
- else if(param == IAlfModel::type().mImplementationId)
- {
- ret = static_cast<IAlfModel*>(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<AlfModelOperation>& /*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