diff -r 000000000000 -r 8466d47a6819 emailuis/uicomponents/src/fstreeitem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/uicomponents/src/fstreeitem.cpp Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,199 @@ +/* +* 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: Freestyle tree item implementation +* +*/ + +#include "emailtrace.h" +#include + +#include "fstreeitem.h" +#include "fstreeitemdata.h" +#include "fstreeitemvisualizer.h" +#include "fstreenode.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// Two-phased constructor. +// --------------------------------------------------------------------------- +// +EXPORT_C CFsTreeItem* CFsTreeItem::NewL( CFsTreeNode& aParent, + MFsTreeItemData& aData, MFsTreeItemVisualizer& aVisualizer ) + { + FUNC_LOG; + CFsTreeItem* self = CFsTreeItem::NewLC( aParent, aData, aVisualizer ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// Two-phased constructor. +// --------------------------------------------------------------------------- +// +EXPORT_C CFsTreeItem* CFsTreeItem::NewLC( CFsTreeNode& aParent, + MFsTreeItemData& aData, MFsTreeItemVisualizer& aVisualizer ) + { + FUNC_LOG; + CFsTreeItem* self = new( ELeave ) CFsTreeItem( &aParent, aData, + aVisualizer ); + CleanupStack::PushL( self ); + self->ConstructL( ); + return self; + } + +// --------------------------------------------------------------------------- +// C++ destructor. +// --------------------------------------------------------------------------- +// +CFsTreeItem::~CFsTreeItem() + { + FUNC_LOG; + delete iData; + delete iVisualizer; + } + +// --------------------------------------------------------------------------- +// Gets reference to item visualizer. +// --------------------------------------------------------------------------- +// +MFsTreeItemVisualizer* CFsTreeItem::ItemVisualizer() const + { + FUNC_LOG; + return iVisualizer; + } + +// --------------------------------------------------------------------------- +// Gets reference to item data. +// --------------------------------------------------------------------------- +// +MFsTreeItemData& CFsTreeItem::ItemData() const + { + FUNC_LOG; + return *iData; + } + +// --------------------------------------------------------------------------- +// Sets item visualizer object. +// --------------------------------------------------------------------------- +// +void CFsTreeItem::SetItemVisualizer( MFsTreeItemVisualizer& aVisualizer ) + { + FUNC_LOG; + iVisualizer = &aVisualizer; + } + +// --------------------------------------------------------------------------- +// Sets item data object. +// --------------------------------------------------------------------------- +// +void CFsTreeItem::SetItemData( MFsTreeItemData& aData ) + { + FUNC_LOG; + iData = &aData; + } + + +// --------------------------------------------------------------------------- +// Returns EFalse since item is not a node. +// --------------------------------------------------------------------------- +// +TBool CFsTreeItem::IsNode() const + { + FUNC_LOG; + return EFalse; + } + +// --------------------------------------------------------------------------- +// Returns NULL since the item is not a node. +// --------------------------------------------------------------------------- +// +CFsTreeNode* CFsTreeItem::Node() + { + FUNC_LOG; + return NULL; + } + +// --------------------------------------------------------------------------- +// Gets the pointer to parent node of the item. +// --------------------------------------------------------------------------- +// +CFsTreeNode* CFsTreeItem::Parent() const + { + FUNC_LOG; + return iParent; + } + +// --------------------------------------------------------------------------- +// Sets parent node for the item. +// --------------------------------------------------------------------------- +// +void CFsTreeItem::SetParent( CFsTreeNode& aParent ) + { + FUNC_LOG; + iParent = &aParent; + } + +// --------------------------------------------------------------------------- +// Returns the level of the item in tree structure. +// --------------------------------------------------------------------------- +// +TUint CFsTreeItem::Level() const + { + FUNC_LOG; + TUint itemLevel = 0; + + CFsTreeNode* parent = iParent; + while ( parent ) + { + itemLevel++; + parent = parent->Parent(); + } + + return itemLevel; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +TUint CFsTreeItem::CountChildrenRecursively() const + { + // return always 0 here. + // NOTE: this is overridden in child class CFsTreeNode! + return 0; + } + +// --------------------------------------------------------------------------- +// C++ constructor. +// --------------------------------------------------------------------------- +// +CFsTreeItem::CFsTreeItem( CFsTreeNode* aParent, MFsTreeItemData& aData, + MFsTreeItemVisualizer& aVisualizer ) + : iParent( aParent ), + iData( &aData ), + iVisualizer( &aVisualizer ) + { + FUNC_LOG; + } + + +// --------------------------------------------------------------------------- +// Second phase constructor. +// --------------------------------------------------------------------------- +// +void CFsTreeItem::ConstructL( ) + { + FUNC_LOG; + }