textinput/peninputcommonlayout/inc/peninputlayoutconfig.h
changeset 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputcommonlayout/inc/peninputlayoutconfig.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,282 @@
+/*
+* Copyright (c) 2002-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:  common layout config
+*
+*/
+
+
+#ifndef C_CPENINPUTLAYOUTCONFIG_H
+#define C_CPENINPUTLAYOUTCONFIG_H
+
+
+// System includes
+#include <barsread.h>
+#include <peninputvkbctrllayout.h>
+
+// Forward decalaration
+class CPeninputClientLayoutInfo;
+class CPeninputVkbLayoutInfo;
+class CPeninputRangeBarInfo;
+class CPeninputShiftCapsInfo;
+class CPeninputCtrlPool;
+/**
+ *  Peninput commonlayout layout config
+ *
+ *  @lib peninputcommonlayout.lib
+ *  @since S60 v3.2
+ */
+class CPeninputLayoutConfig : public CBase
+    {
+
+public:
+
+    /**
+     * Symbian constructor
+     *
+     * @since S60 v3.2
+     * @param aResUtils Resource Utils
+     * @param aReader Resource reader
+     * @return Pointer to created CPeninputLayoutConfig object
+     */
+    IMPORT_C static CPeninputLayoutConfig* NewL( CAknFepCtrlVkbLayout& aVkblayout,
+                                                 TResourceReader& aReader );
+
+    /**
+     * Destructor
+     *
+     * @since S60 v3.2
+     * @return None
+     */
+    IMPORT_C virtual ~CPeninputLayoutConfig();
+
+    /**
+     * Get language id
+     *
+     * @since S60 v3.2
+     * @return Language id
+     */
+    inline TInt Language();
+
+    /**
+     * Get language name
+     *
+     * @since S60 v3.2
+     * @return Language name
+     */
+    inline HBufC* LanguageString();
+
+    /**
+     * Get case sensitive flag
+     *
+     * @since S60 v3.2
+     * @return Case sensitive flag
+     */
+    inline TBool CaseSensitive();
+
+    /**
+     * Get guide line
+     *
+     * @since S60 v3.2
+     * @return The guide line style
+     */
+    inline TInt GuideLine();
+    
+    /**
+     * The position percent of top guide line
+     *
+     * @since S60 v3.2
+     * @return The position percent of top guide line
+     */
+    inline TInt PositionTopLine();
+    
+    /**
+     * The position percent of bottom guide line
+     *
+     * @since S60 v3.2
+     * @return The position percent of bottom guide line
+     */
+    inline TInt PositionBottomLine();
+            
+    /**
+     * Get client layout info list
+     *
+     * @since S60 v3.2
+     * @return The reference of pointer array containing client layout list
+     */
+    inline RPointerArray<CPeninputClientLayoutInfo>& ClientLayoutInfoList();
+
+    /**
+     * Get vkb layout info list
+     *
+     * @since S60 v3.2
+     * @return The reference of pointer array containing vkb layout list
+     */
+    inline RPointerArray<CPeninputVkbLayoutInfo>& VkbLayoutInfoList();
+    
+    /**
+     * Get shift&caps info
+     *
+     * @since S60 v3.2
+     * @return The reference of pointer array containing shift&caps info
+     */
+    inline RPointerArray<CPeninputShiftCapsInfo>& ShiftCapsInfoList();
+    
+    /**
+     * Get client layout info
+     *
+     * @since S60 v3.2
+     * @param aLayoutId Client layout id  
+     * @return The pointer to CPeninputClientLayoutInfo object
+     */
+    IMPORT_C CPeninputClientLayoutInfo* FindClientLayoutInfo( 
+        TInt aLayoutId );
+    
+    /**
+     * Get vkb layout info
+     *
+     * @since S60 v3.2
+     * @param aLayoutId Vkb layout id
+     * @return The pointer to CPeninputVkbLayoutInfo object
+     */
+    IMPORT_C CPeninputVkbLayoutInfo* FindVkbLayoutInfo( TInt aLayoutId );
+    
+    /**
+     * Get shift&caps info
+     *
+     * @since S60 v3.2
+     * @param aRangeId Range id  
+     * @return The pointer to CPeninputShiftCapsInfo object
+     */
+    IMPORT_C CPeninputShiftCapsInfo* FindShiftCapsInfo( TInt aRangeId );
+    
+    /**
+     * Get vkb layout id
+     *
+     * @since S60 v3.2
+     * @param aRangeId Range id  
+     * @param aShiftCapsSingleId Shift&caps single id
+     * @return The vkb layout id
+     */
+    IMPORT_C TInt ShiftCapsSingleVkbLayoutId( TInt aRangeId,
+                                              TInt aShiftCapsSingleId );
+
+    /**
+     * Get vkb layout id
+     *
+     * @since S60 v3.2
+     * @param aRangeId Range id  
+     * @param aCase The case
+     * @return The vkb layout id
+     */
+    IMPORT_C TInt ShiftCapsSingleVkbLayoutByCase( TInt aRangeId,
+                                                  TInt aCase );
+    /**
+     * Get range bar info
+     *
+     * @since S60 v3.2
+     * @return The pointer to CPeninputRangeBarInfo object
+     */
+    inline CPeninputRangeBarInfo* RangeBarInfo();
+
+    /**
+     * Get range bar resource id
+     *
+     * @since S60 v3.2
+     * @return The resource id
+     */    
+    inline TInt RangebarResId();
+    
+protected:
+
+    /**
+     * Constructor
+     *
+     * @since S60 v3.2
+     * @return None
+     */
+    CPeninputLayoutConfig();
+
+    /**
+     * Second phase constructor
+     *
+     * @since S60 v3.2
+     * @param aResUtils Resource Utils
+     * @param aReader Resource reader
+     * @return None
+     */
+    void ConstructL( CAknFepCtrlVkbLayout& aVkblayout, TResourceReader& aReader  );  
+
+private: // Data
+
+    /**
+     * Language id
+     */ 
+    TInt iLanguage;
+
+    /**
+     * Language string
+     * Own
+     */
+    HBufC* iLanguageString;
+
+    /**
+     * Case sensitive flag
+     */ 
+    TBool iCaseSensitive;
+    
+    /**
+     * Guide line style
+     */ 
+    TInt iGuideLine;
+
+    /**
+     * The position percent of top guide line
+     */ 
+    TInt iPositionTopLine;
+
+    /**
+     * The position percent of bottom guide line
+     */ 
+    TInt iPositionBottomLine;
+
+    /**
+     * Client layout info list
+     */ 
+    RPointerArray<CPeninputClientLayoutInfo> iClientLayoutInfoList;
+
+    /**
+     * Vkb layout info list
+     */ 
+    RPointerArray<CPeninputVkbLayoutInfo> iVkbLayoutInfoList;
+
+    /**
+     * Range bar info
+     * Own
+     */
+    CPeninputRangeBarInfo* iRangeBarInfo;
+
+    /**
+     * Shift&caps info list
+     */ 
+    RPointerArray<CPeninputShiftCapsInfo> iShiftCapsInfoList;
+
+    /**
+     * Resource Id for range bar
+     */ 
+    TInt iRangeBarResId;
+    };
+
+#include "peninputlayoutconfig.inl"
+
+#endif // C_CPENINPUTLAYOUTCONFIG_H