diff -r 000000000000 -r 05e9090e2422 skins/AknSkins/srvinc/AknsSrvExclusion.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/skins/AknSkins/srvinc/AknsSrvExclusion.h Thu Dec 17 09:14:12 2009 +0200 @@ -0,0 +1,164 @@ +/* +* Copyright (c) 2002-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: Exclusion query class. +* +*/ + + +#ifndef AKNSSRVEXCLUSIONUTILS_H +#define AKNSSRVEXCLUSIONUTILS_H + +// INCLUDE FILES + +#include + +// FORWARD DECLARATIONS + +class CAknsSrvExclusionList; + +// CLASS DECLARATION + +/** +* Exclusion query class can be used to check whether the given item is excluded +* based on the parameters set in the query object. +* +* @since 2.0 +*/ +class TAknsSrvExclusionQuery + { + public: + /** + * Constructor. + * + * @param aList Exclusion query list to be used for concrete queries. + */ + TAknsSrvExclusionQuery( CAknsSrvExclusionList* aList ); + + public: + /** + * Sets the parameters used in the query. + * + * @param aArabic ETrue if Arabic language is currently active, + * EFalse otherwise. + * + * @param aHebrew ETrue if Hebrew language is currently active, + * EFalse otherwise. + */ + void SetParameters( const TBool aArabic, const TBool aHebrew ); + + /** + * Sets the highlight animation enable/disable status. Status is read + * from AknSkins CenRep key (as SkinExclusions.ini is not used for + * variation). + */ + void SetHighlightAnimEnabled( const TBool aValue ); + + /** + * The current enable/disable status of highlight animation. + * + * @return ETrue if highlight animation is enabled, EFalse otherwise. + */ + TBool IsHighlightAnimEnabled() const; + + /** + * Checks whether the given item is currently excluded. + * + * @param aIID Item ID of the item to be checked. + * + * @return ETrue if item is currently excluded, EFalse otherwise. + */ + TBool IsExcluded( const TAknsItemID& aIID ) const; + + /** + * Checks whether the given item should be mapped to another item, + * and performs remapping. + * + * @param aIID Item ID of the item to be checked. If remapping is + * performed, this value is modified accordingly. + * + * @return ETrue if the item has been remapped, EFalse otherwise. + */ + TBool MapIID( TAknsItemID& aIID ) const; + + private: + CAknsSrvExclusionList* iList; + TBool iArabicEnabled; + TBool iHebrewEnabled; + TBool iHighlightAnimEnabled; + }; + +/** +* Exclusion list entry class. +*/ +struct TAknsSrvExclusionListEntry + { + public: + TAknsItemID iIID; + TInt iFlags; + TAknsItemID iTargetIID; + + public: + static TInt LinearOrder( + const TAknsSrvExclusionListEntry& aFirst, + const TAknsSrvExclusionListEntry& aSecond ); + }; + +/** +* Exclusion list is used to store the array of the items that are excluded, +* as well as the item-specific exclusion parameters. +* +* @since 2.0 +*/ +NONSHARABLE_CLASS( CAknsSrvExclusionList ) : public CBase + { + public: + /** + * Static constructor. + * + * @return Newly constructed exclusion list object. + */ + static CAknsSrvExclusionList* NewL(); + + /** + * Destructor. + */ + ~CAknsSrvExclusionList(); + + public: + /** + * Loads the exclusion list from the file. + */ + void LoadDefaultListFromFileL( RFs& aRFs ); + + /** + * Finds the specified exclusion list entry. + * + * @param aIID Item ID of the item to be searched for. + * + * @return Pointer to the item, or @c NULL if not found. + */ + TAknsSrvExclusionListEntry* FindEntry( + const TAknsItemID& aIID ); + + private: + /** + * Private constructor. + */ + CAknsSrvExclusionList(); + + private: + RArray iArray; + }; + +#endif