diff -r 3ab5c078b490 -r c63ee96dbe5f taskswitcher/server/src/tsmodelitem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/server/src/tsmodelitem.cpp Thu Sep 16 12:11:40 2010 +0100 @@ -0,0 +1,157 @@ +/* +* Copyright (c) 2009 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: +* +*/ +#include "tsmodel.h" +// ----------------------------------------------------------------------------- +/** + * Constructor + * @param model - data owner + * @param offset - data index + */ +TTsModelItem::TTsModelItem(const MTsModel& model, TInt offset) +: +mModel(model), +mIndex(offset) +{} + +// ----------------------------------------------------------------------------- +/** + * Copy constructor + * @param item - template item + */ +TTsModelItem::TTsModelItem(const TTsModelItem& item) +: +mModel(item.mModel), +mIndex(item.mIndex) +{} + +// ----------------------------------------------------------------------------- +/** + * Validate item instance and retrieve display name data + * @return item display name + */ +const TDesC& TTsModelItem::displayNameL() const +{ + validateL(); + return mModel.displayNameL(mIndex); +} + +// ----------------------------------------------------------------------------- +/** + * Validate item instance and retrieve icon handle ( CFbsBitmap handle ) + * @return item icon handle + */ +TInt TTsModelItem::iconHandleL() const +{ + validateL(); + return mModel.iconHandleL(mIndex); +} + +// ----------------------------------------------------------------------------- +/** + * Validate item instance and retrieve entry key + * @return item key + */ +TTsModelItemKey TTsModelItem::keyL() const +{ + validateL(); + return mModel.keyL(mIndex); +} + +// ----------------------------------------------------------------------------- +/** + * Validate item instance and retrieve entry timestamp + * @return item timestamp + */ +TTime TTsModelItem::timestampL() const +{ + validateL(); + return mModel.timestampL(mIndex); +} + +// ----------------------------------------------------------------------------- +/** + * Validate item instance and retrieve activity status + * @return activity status + */ +TBool TTsModelItem::isActiveL() const +{ + validateL(); + return mModel.isActiveL(mIndex); +} + +// ----------------------------------------------------------------------------- +/** + * Validate item instance and retrieve closable status + * @return closable status + */ +TBool TTsModelItem::isClosableL() const +{ + validateL(); + return mModel.isClosableL(mIndex); +} + +// ----------------------------------------------------------------------------- +/** + * Validate item instance and forward close request to its owner + * @return EFalse on failure + */ +TBool TTsModelItem::closeL() const +{ + validateL(); + return mModel.closeL(keyL()); +} + +// ----------------------------------------------------------------------------- +/** + * Validate item instance and forward launch request to its owner + * @return EFalse on failure + */ +TBool TTsModelItem::launchL() const +{ + validateL(); + return mModel.launchL(keyL()); +} + +// ----------------------------------------------------------------------------- +/** + * Validate item instance + */ +void TTsModelItem::validateL() const +{ + if (mModel.count() <= mIndex) { + User::Leave(KErrOverflow); + } +} + +// ----------------------------------------------------------------------------- +/** + * Serialize item into destination stream + * @param stream - output stream + */ + +void TTsModelItem::ExternalizeL(RWriteStream& stream) const +{ + stream.WriteInt32L(displayNameL().Length()); + if (0 < displayNameL().Length()) { + stream << displayNameL(); + } + stream.WriteInt32L(iconHandleL()); + stream.WriteInt32L(TTsModelItemKey::size()); + stream << keyL(); + stream.WriteInt32L(isActiveL()); + stream.WriteInt32L(isClosableL()); +}