skins/AknSkins/srvinc/AknsSrvExclusion.h
changeset 0 05e9090e2422
--- /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 <AknsItemID.h>
+
+// 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<TAknsSrvExclusionListEntry> iArray;
+    };
+
+#endif