diff -r 4ae315f230bc -r a6539d1e8e43 predictivesearch/PcsAlgorithm/Algorithm1/inc/CPcsAdaptiveGridItem.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/predictivesearch/PcsAlgorithm/Algorithm1/inc/CPcsAdaptiveGridItem.h Wed Jun 09 09:26:27 2010 +0300 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2010 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: Utility class to hold a single item for Adaptive Grid. +* Used to provide quickly to client applications (Phonebook) +* The Adaptive Grid for the full list of contacts, which is +* the one that is displayed when the Find Box is empty. +*/ + +#ifndef __CPS_ADAPTIVE_GRID_ITEM_H__ +#define __CPS_ADAPTIVE_GRID_ITEM_H__ + +// SYSTEM INCLUDES +#include +#include +#include + +// CLASS DECLARATION + +/** + * Utility class to hold a single item for the Adaptive Grid. + * This class is used to represent one character of the Adaptive Grid + * with its reference counters. + * + * @lib pcsutils.lib + * @since S60 v3.2 + */ +class CPcsAdaptiveGridItem : public CBase +{ + public: + + /** + * Two phase construction + * + * @return Instance of CPcsAdaptiveGridItem + */ + static CPcsAdaptiveGridItem* NewL( const TChar& aChar ); + + /** + * Destructor + */ + ~CPcsAdaptiveGridItem( ); + + /** + * TLinearOrder rule for comparison of data objects + * + * @return order + */ + static TInt CompareByCharacter( const CPcsAdaptiveGridItem& aObject1, + const CPcsAdaptiveGridItem& aObject2 ); + + /** + * Returns the character of the Adaptive Grid item + * + * @return Character input + */ + TChar Character( ) const; + + /** + * Selectors for Adaptive Grid character reference counters + */ + enum TCounterSelector + { + EFirstNameLastName = 0, + EUnnamedCompanyName, + ECompanyName, + ENumberCounters + }; + + /** + * Return the Adaptive Grid item reference counter for a given selector + * + * @param Reference counter selector + * @return Reference counter value + */ + TUint GetRefCounter( const TUint aSelector ); + + /** + * Increments the Adaptive Grid item reference counter for a given selector + * + * @param Reference counter selector + */ + void IncrementRefCounter( const TUint aSelector ); + + /** + * Decrements the Adaptive Grid item reference counter for a given selector + * + * @param Reference counter selector + */ + void DecrementRefCounter( const TUint aSelector ); + + /** + * Checks if Adaptive Grid item reference counters for all selectors are 0 + * + * @return ETrue if all reference counters are 0 + * EFalse otherwise + */ + TBool AreRefCountersZero( ); + + /** + * Checks if Adaptive Grid item reference counters for the requested selectors are not 0 + * + * @return ETrue if one at least of the reference counters is > 0 + * EFalse otherwise + */ + TBool IsRefCounterNonZero( const TBool aCompanyName ); + + private: + + /** + * Default Constructor + */ + CPcsAdaptiveGridItem( const TChar& aChar ); + + /** + * Character of the Adaptive Grid + */ + TChar iCharacter; + + /** + * Reference counters for the Adaptive Grid characters + */ + TFixedArray iCountersArr; +}; + +#endif // __CPS_ADAPTIVE_GRID_ITEM_H__ + +// End of file