mulwidgets/muldatamodel/src/mulvisualitem.cpp
changeset 17 3eca7e70b1b8
parent 3 4526337fb576
--- a/mulwidgets/muldatamodel/src/mulvisualitem.cpp	Tue Feb 02 00:28:09 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,374 +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:  Visual item class
-*
-*/
-
-
-#include <mul/mulvisualitem.h>
-
-#include <mul/imulvarianttype.h>
-#include <mul/mulvarianttype.h>
-
-#include <osn/ustring.h>
-#include <stdexcept>
-
-#include <e32math.h>	// for Pow function
-#include "mul/mulmodelutility.h"
-
-using namespace osncore;
-using namespace std;
-
-namespace Alf
-    {
-// ---------------------------------------------------------------------------
-// Defination of class MulAttribute
-// ---------------------------------------------------------------------------
-//
-class MulVisualItem::MulAttribute
-    {
-public: //Constructor and destructor
-
-	/**
-	 * C++ constructor.
-	 */
-	MulAttribute():mValue(NULL),mFlag(0)
-		{
-		}
-		
-	/**
-	 * C++ constructor.
-	 *
-	 * @param aValue value of the attribute
-	 * @param aAttributeFlags property of this attribute
-	 */
-	 MulAttribute( IMulVariantType* aValue, int aAttributeFlags = 0 )
-	 	{
-	 	mValue = aValue;
-	 	mFlag = aAttributeFlags;
-	 	}
-
-	/**
-	 * Copy constructor.
-	 *
-	 * @param aAttribute existing attribute
-	 */
-	MulAttribute( const MulAttribute& aAttribute )
-	 	{
-	 	mValue = aAttribute.mValue->Clone().release();
-	 	mFlag = aAttribute.mFlag;
-	 	}
-
-	/**
-	 * Destructor.
-	 */
-	~MulAttribute()
-		{
-		delete mValue;
-		}	
-	
-public: //data
-     
-	IMulVariantType* mValue ; //own    
-    int mFlag ; 
-    
-    };
-    
-// ---------------------------------------------------------------------------
-// Constructor
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT MulVisualItem::MulVisualItem( )
-	{				
-	// Clearing dirty bit flags to 0;
-	mBitAttrFlag1 = 0;
-	mBitAttrFlag2 = 0;
-	}
-
-// ---------------------------------------------------------------------------
-// Copy Constructor
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT MulVisualItem::MulVisualItem( const MulVisualItem& aVisualItem )
-	{	
-	map<mulvisualitem::TVisualAttribute,MulAttribute*> mapToCopy = aVisualItem.mVisualItem;
-	map<mulvisualitem::TVisualAttribute,MulAttribute*>::iterator itr;
-	for( itr = mapToCopy.begin(); itr!= mapToCopy.end(); ++itr )
-		{
-		mVisualItem[itr->first] = new (EMM) MulAttribute( *itr->second );
-		}
-	mBitAttrFlag1 = aVisualItem.mBitAttrFlag1;
-	mBitAttrFlag2 = aVisualItem.mBitAttrFlag2;
-	}
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT MulVisualItem::~MulVisualItem()
-	{
-	map<mulvisualitem::TVisualAttribute,MulAttribute* >::iterator itr;
-	for( itr = mVisualItem.begin(); itr!= mVisualItem.end(); ++itr )
-		{
-		delete itr->second;
-		itr->second = NULL;
-		}
-	mVisualItem.clear();
-	}
-
-// ---------------------------------------------------------------------------
-// Add new attributes to visual item
-// ---------------------------------------------------------------------------
-//
-//OSN_EXPORT void MulVisualItem::SetAttribute( mulvisualitem::TVisualAttribute aName, 
-//											 const UString& aValue, int aAttributeFlags )
-//	{
-//	auto_ptr<MulVariantType> variantdata(new (EMM) MulVariantType( aValue ));
-//	
-//	SetAttribute( aName, variantdata.release(),aAttributeFlags,EDoesOwn);
-//	}
-
-// ---------------------------------------------------------------------------
-// Add new attributes to visual item
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT void MulVisualItem::SetAttribute( mulvisualitem::TVisualAttribute aName, 
-                                             const TDesC& aValue, int aAttributeFlags )
-    {
-    auto_ptr<MulVariantType> variantdata(new (EMM) MulVariantType( aValue ));
-    
-    SetAttribute( aName, variantdata.release(),aAttributeFlags,EDoesOwn);
-    }
-
-
-// ---------------------------------------------------------------------------
-// Add new attributes to visual item
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT void MulVisualItem::SetAttribute( mulvisualitem::TVisualAttribute aName, 
-											  int aValue,int aAttributeFlags )
-	{	
-	auto_ptr<MulVariantType> variantdata(new ( EMM ) MulVariantType( aValue ));
-		
-	SetAttribute(aName,variantdata.release(),aAttributeFlags,EDoesOwn);	
-	}
-
-
-// ---------------------------------------------------------------------------
-// Add new attributes to visual item
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT void MulVisualItem::SetAttribute( mulvisualitem::TVisualAttribute aName, IMulVariantType* aValue, 
-		  									   int aAttributeFlags ,
-		  									   TAttributeOwnership /*aAttributeOwership*/ )
-	{
-	map<mulvisualitem::TVisualAttribute,MulAttribute* >::iterator findIter = mVisualItem.find( aName );
-	if( findIter != mVisualItem.end() )
-		{
-		delete findIter->second;
-		findIter->second = NULL;
-		mVisualItem.erase( aName );
-		}
-	mVisualItem[aName] = new (EMM) MulAttribute(aValue,aAttributeFlags );
-	SetDirty(aName, true);
-	}
-
-
-// ---------------------------------------------------------------------------
-// Is the input attribute dirty, to be queried before a redraw
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT bool MulVisualItem::IsDirty(mulvisualitem::TVisualAttribute aAttr) const
-{
-	int i = (int)aAttr;
-	TReal base  = 2.0;
-	TReal r = 0.0;
-	TReal val = 0.0;
-	TInt err = KErrNone;
-
-	// If mBitAttrflag is binary 101, AND'ing it with 100(attribute 3) will 
-	// set 100 to return true for attribute 3 being dirty
-
-	// if attribute index <18 check against mBitAttrFlag1, else check
-	// against mBitAttrFlag2
-	if(i < 18)
-		{
-		val = i;
-		err = Math::Pow(r, base, val);
-		if(KErrNone != err)
-			return true;
-			
-		return mBitAttrFlag1 & (int)r;
-		}
-	else
-		{
-		val = (int)(mulvisualitem::KMul_n) - i;
-		err = Math::Pow(r, base, val);
-		if(KErrNone != err)
-			return true;
-		
-		return mBitAttrFlag2 & (int)r;
-		}
-    
-}
- 
-
-// ---------------------------------------------------------------------------
-// Set the attribute as dirty in this Visual item based on input flag
-// ---------------------------------------------------------------------------
-//
-void MulVisualItem::SetDirty(mulvisualitem::TVisualAttribute aAttr, bool aDirty)
-{
-	int i = (int)aAttr;
-	TReal base  = 2.0;
-	TReal r = 0.0;
-	TReal val = i;
-	TInt err = KErrNone;
-	// If mBitAttrflag is binary 001, OR'ing it with 100(attribute 3) will 
-	// set 101 to set bit for attribute 3 as 1 in dirty flag
-	if(aDirty)
-		{
-		// if attribute index <18 operate on mBitAttrFlag1
-		// else operate against mBitAttrFlag1
-		if(i < 18)
-			{ 
-			err = Math::Pow(r,base,val);
-			mBitAttrFlag1 |= (int)r;
-			}
-			else
-			{
-			err = Math::Pow(r,base,(TReal)((int)(mulvisualitem::KMul_n) - i));
-			mBitAttrFlag2 |= (int)r;
-			}
-		}
-	else
-	{
-		// if attribute index <18 operate on mBitAttrFlag1
-		// else operate against mBitAttrFlag1
-		if(i < 18)
-		{
-			err = Math::Pow(r,base,val);
-			mBitAttrFlag1 &= ~(int)r;
-		}
-		else
-		{
-			err = Math::Pow(r, base,(TReal)((int)(mulvisualitem::KMul_n) - i));
-			mBitAttrFlag2 &= ~(int)r;
-		}
-	}
-	if(KErrNone != err)
-		throw std::invalid_argument("Error setting dirty flag for attribute"); 
-}
-
-
-// ---------------------------------------------------------------------------
-// ResetDirtyAttribute
-// ---------------------------------------------------------------------------
-//
-void MulVisualItem::ResetDirtyAttribute(const MulVisualItem& aVisualItem)
-{
-	mBitAttrFlag1 = aVisualItem.mBitAttrFlag1;
-	mBitAttrFlag2 = aVisualItem.mBitAttrFlag2;
-}
-// ---------------------------------------------------------------------------
-// Attribute
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT IMulVariantType* MulVisualItem::Attribute( mulvisualitem::TVisualAttribute aName ) const
-	{
-	map<mulvisualitem::TVisualAttribute,MulAttribute* >::const_iterator findIter = mVisualItem.find( aName );
-	if( findIter != mVisualItem.end() )
-		{		
-		MulAttribute* attribute = findIter->second;
-		IMulVariantType* attributeValue = attribute->mValue;
-		return  attributeValue;
-		}
-	else
-		{
-		//throw std::invalid_argument("Invalid attribute name.");
-		return NULL;
-		}
-	}
-
-// ---------------------------------------------------------------------------
-// AttributeAsInt
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT int MulVisualItem::AttributeAsInt( mulvisualitem::TVisualAttribute aName ) const 
-	{
-	IMulVariantType* attributeValue = Attribute(aName);
-	if( attributeValue ) 
-	    {
-	    return attributeValue->integer();
-	    }
-	throw std::invalid_argument("Invalid attribute name."); 
-	}
-
-// ---------------------------------------------------------------------------
-// AttributeAsString
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT const TDesC& MulVisualItem::AttributeAsString( mulvisualitem::TVisualAttribute aName ) const
-	{
-	IMulVariantType* attributeValue = Attribute(aName);
-    if( attributeValue ) 
-        {
-        return attributeValue->DesC();
-        }
-	throw std::invalid_argument("Invalid attribute name."); 
-	}
-
-// ---------------------------------------------------------------------------
-// ExistingAttributes
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT const std::vector<mulvisualitem::TVisualAttribute> MulVisualItem::Attributes() const 
-	{
-	map<mulvisualitem::TVisualAttribute,MulAttribute* >::const_iterator itr;
-	std::vector<mulvisualitem::TVisualAttribute> attributesName;
-	for( itr = mVisualItem.begin(); itr!= mVisualItem.end(); ++itr )
-		{
-		attributesName.push_back( itr->first );
-		}
-	return attributesName;
-	}
-
-// ---------------------------------------------------------------------------
-// Flag
-// ---------------------------------------------------------------------------
-//
-int MulVisualItem::Flag( mulvisualitem::TVisualAttribute aName ) 
-    {
-     MulAttribute* attribute = mVisualItem.find( aName )->second;
-     return attribute->mFlag;
-    }
-
-// ---------------------------------------------------------------------------
-// RemoveAttribute
-// ---------------------------------------------------------------------------
-//
-void MulVisualItem::RemoveAttribute( mulvisualitem::TVisualAttribute aName )
-    {
-    map<mulvisualitem::TVisualAttribute,MulAttribute* >::iterator findIter = mVisualItem.find( aName );
-    if( findIter != mVisualItem.end() )
-		{
-		delete findIter->second;
-		findIter->second = NULL;
-		mVisualItem.erase( aName );
-		}
-    }
-
-    }// namespace Alf	
-
-//End of file