diff -r 000000000000 -r e4d67989cc36 lowlevellibsandfws/apputils/src/BACELL.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lowlevellibsandfws/apputils/src/BACELL.CPP Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,135 @@ +// Copyright (c) 1997-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 +#include + +EXPORT_C TCellRef operator+(const TCellRef& aLeft,const TCellRef& aRight) + { + return TCellRef(aLeft.iRow+aRight.iRow,aLeft.iCol+aRight.iCol); + } + +EXPORT_C TCellRef operator-(const TCellRef& aLeft,const TCellRef& aRight) + { + return TCellRef(aLeft.iRow-aRight.iRow,aLeft.iCol-aRight.iCol); + } + +EXPORT_C void TCellRef::Offset(TInt aRowOffset,TInt aColOffset) +/** Adds the specified row and column numbers to this cell's row and column values. + +@param aRowOffset The row number to be added. The value may be positive, zero +or negative. +@param aColOffset The column number to be added. The value may be positive, +zero or negative. */ + { + iRow += aRowOffset; + iCol += aColOffset; + } + +EXPORT_C void TCellRef::InternalizeL(RReadStream& aStream) +/** Internalises an object of this class from a read stream. + +The presence of this function means that the standard templated operator>>() +can be used to internalise objects of this class. + +Note that the function has assignment semantics. It replaces the old value +of the object with a new value read from the read stream. + +@param aStream Stream from which the object is to be internalised. */ + { + iRow = aStream.ReadInt32L(); + iCol = aStream.ReadInt32L(); + } + +// class TRangeRef + +EXPORT_C TBool TRangeRef::operator==(const TRangeRef& aRange) const +/** Compares this cell range with the specified cell range for equality. + +@param aRange The cell range to be compared. +@return ETrue, if the start cells and the end cells are the same. */ + { + return aRange.iFrom==iFrom && aRange.iTo==iTo; + } + +EXPORT_C TInt TRangeRef::NoCells() const +/** Gets the number of cells represented by the range. + +@return The number of cells. */ + { + return NoRows()*NoCols(); + } + +EXPORT_C TBool TRangeRef::Contains(const TCellRef& aCell) const +/** Tests whether the specified cell is contained within the range. + +A range includes its outer perimeter. + +@param aCell The cell to be tested. +@return ETrue, if the specified cell is contained within the range; +EFalse, otherwise. */ + { + TInt row=aCell.iRow; + TInt col=aCell.iCol; + return row>=iFrom.iRow && row<=iTo.iRow && col>=iFrom.iCol && col<=iTo.iCol; + } + +EXPORT_C void TRangeRef::InternalizeL(RReadStream& aStream) +/** Internalises an object of this class from a read stream. + +The presence of this function means that the standard templated operator>>() +can be used to internalise objects of this class. + +Note that the function has assignment semantics. It replaces the old value +of the object with a new value read from the read stream. + +@param aStream Stream from which the object is to be internalised. */ + { + aStream>>iFrom>>iTo; + } + +EXPORT_C void TRangeRef::ExternalizeL(RWriteStream& aStream) const +/** Externalises an object of this class to a write stream. + +The presence of this function means that the standard templated operator<<() +can be used to externalise objects of this class. + +@param aStream Stream to which the object should be externalised. */ + { + aStream<