uifw/AvKon/AknKeyRotator/implementation/AknKeyRotatorImpl.h
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/AknKeyRotator/implementation/AknKeyRotatorImpl.h	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,100 @@
+/*
+* Copyright (c) 2005 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:  Key rotation implementation
+*
+*/
+
+#ifndef CAKNKEYROTATORIMPL_H
+#define CAKNKEYROTATORIMPL_H
+
+// INCLUDES
+#include <AknKeyRotator.h>
+#include <e32property.h>
+#include <bitstd.h>
+
+// FORWARD DECLARATIONS
+class TRawEvent;
+class MAnimGeneralFunctions;
+
+// CLASS DECLARATION
+
+/**
+*  Key rotation implementation.
+*
+*  @lib AknKeyRotator.lib
+*  @since Series 60 3.0
+*/
+class CAknKeyRotatorImpl : public CAknKeyRotator
+    { 
+    public: // Constructor and destructor
+        static CAknKeyRotatorImpl* NewL();
+        ~CAknKeyRotatorImpl();
+
+    public: // Functions from base classes
+        
+        /**
+        * From CAknKeyRotator
+        */
+        TBool CheckRotation( 
+            const TRawEvent &aRawEvent,
+            MAnimGeneralFunctions& aAnimGeneralFunctions );
+            
+    private:
+        CAknKeyRotatorImpl();
+        void ConstructL();
+        void LoadHwStateRotationsL();
+        void DoCheckRotation(
+            TRawEvent& aNewRawEvent,
+            MAnimGeneralFunctions& aAnimGeneralFunctions);
+        static TBool IsArrowScanCode(TInt aScanCode);
+        
+        // Gets key rotator compensation value from wsini.ini
+        static TInt GetKeyRotatorCompensationL();
+        
+        // Checks if character is end of line marker.
+        inline static TBool IsEndOfLine( TText aChar );
+        // Checks if character is byte ordering marker.
+        inline static TBool IsByteOrderingMarker( TText aChar );
+        // Reads wsini.ini file to memory
+        static HBufC* GetWsiniLC();
+        // Flags - returned by SkipSpaces
+        enum TAknSkipSpacesFlags
+            {
+            // There was a space character (not end of line)
+            EAknWasSpace = 1,
+            // There was other kind of character
+            EAknWasCharacter = 2
+            };
+        // Skips spaces, but stops if end of line.
+        static TInt SkipSpaces( TLex& aLex );
+        // Goes over digit sequence and returns string.
+        static TPtrC GetDigits( TLex& aLex );
+        // Checks if compensation value is ok.
+        inline static TBool CheckCompensationValue( TInt aValue );
+
+    private:
+        RProperty iProperty; 
+        TBool iRotatedRawEvent;   
+        RArray<CFbsBitGc::TGraphicsOrientation> iHwRotations;
+        CFbsBitGc::TGraphicsOrientation iUsedRotationForDownEvent;
+        
+        // Key rotator compensation value.
+        TInt iKeyRotatorCompensation;
+        
+    };
+    
+    
+#endif      // CAKNKEYROTATORIMPL_H   
+            
+// End of File