fep/aknfep/inc/AknFepUiManagerChinese.h
changeset 0 eb1f2e154e89
child 22 bd83ceabce89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/inc/AknFepUiManagerChinese.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,312 @@
+/*
+* Copyright (c) 2003-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:           
+*       Provides the CAknFepUIManagerChinese definition.
+*
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+#ifndef __AKN_FEP_UI_MANAGER_CHINESE_H__
+#define __AKN_FEP_UI_MANAGER_CHINESE_H__
+
+// INCLUDES
+#include <uikon.hrh>                        //TAknEditorNumericKeymap
+#include "AknFepUIManagerStateInterface.h"
+#include "AknFepUICtrlInputPane.h"
+#include "AknFepUiInputStateChineseBase.h"
+#include <PtiDefs.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+class CAknFepUIManagerBase;
+class MAknFepUICtrlContainerChinese;
+
+/**
+ *  CAknFepUIManagerChinese class.
+ *
+ *  @lib AknFep.lib
+ *  @since 2.6
+ *
+ */
+class CAknFepUIManagerChinese : public CAknFepUIManagerBase
+    {
+private:
+    /**
+     * private constants
+     */
+    enum
+        {
+        EBaseLanguageNumericKeymapIndex = 0x00FF,
+        EMaskShiftOffset                = 8 ,
+        ESupportPinyinPhrase            = 0x0010,
+        ESupportZhuyinPhrase            = 0x0020,
+        ESupportStrokePhrase            = 0x0040,
+        EQueryPtiEngineAlready          = 0x0080
+        };
+
+public: // Constructors and destructor
+    /**
+     * 
+     * 
+     * @since 2.6
+     */
+    static CAknFepUIManagerChinese* NewL(MAknFepManagerUIInterface* aFepMan, 
+                                         CAknFepCaseManager* aCaseMan, TLanguage aLanguage);
+
+    /**
+     * 
+     * 
+     * @since 2.6
+     */
+    virtual ~CAknFepUIManagerChinese();
+
+public: // Functions from base classes
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 2.6
+     */
+    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength,TEventCode aEventCode = EEventKey);
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 2.6
+     */
+    void CloseUI();
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 2.6
+     */
+    void GetFormatOfFepInlineText(TCharFormat& aFormat, TInt& aNumberOfCharactersWithSameFormat, 
+                                  TInt aPositionOfCharacter) const;
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 2.6
+     */
+    TInt SupportLanguage(TInt aMode) const;
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 2.6
+     */
+    void SetInputLanguageL(TLanguage aLanguage);
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 2.6
+     */
+    void SetEditorContext(TInt aContext);
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 2.6
+     */
+    TUIState ChangeState(TUIState aState);
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 3.0
+     */
+    void ChangeStatetItut(TUIState aState);
+    
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 3.0
+     */
+    void ChangeStateQwerty(TUIState aState);
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 2.6
+     */
+    TBool IsValidChineseInputKey(TInt aKey) const;
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 3.0
+     */
+    TBool IsValidChineseInputKeyQwerty(TInt aKey) const;
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 3.0
+     */
+    TBool IsQwertyZhuyinToneMarkKey(TInt aKey) const;
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 2.6
+     */
+    TPtr GetLatestDeliberateSelection() const;
+
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 3.0
+     */
+    void UpdateCangJieState();
+    
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 3.0
+     */ 
+    TBool IsValidChineseSymbol(TInt aKey) const;
+
+private: // Functions from base classes
+    /**
+     * From CAknFepUIManagerBase
+     * 
+     * @since 2.6
+     */
+    TAknFepInputStateBase* FepUIState();
+
+    /**
+    * Clears all flags down
+    */
+    inline void ResetFlags();
+
+    /**
+    *  Clears aFlag bitfield in iFlags
+    */
+    inline void ClearFlag(TInt aFlag);
+
+    /**
+    *  Sets aFlag bitfield in iFlags
+    */
+    inline void SetFlag(TInt aFlag);
+    
+    /**
+    * Returns ETrue if the aFlag bitfield in iFlags is set, EFalse if it
+    * is clear
+    */    
+    inline TBool IsFlagSet(TInt aFlag) const;
+    /**
+    * Query PtiEngine for phrase input
+    */ 
+    void QueryPtiEngine();
+#ifdef RD_INTELLIGENT_TEXT_INPUT    
+    /**
+     * Decide if the key mapped stroke
+     * 
+     * since 3.2.3
+     */   
+    TBool IsKeyMappedStroke(TInt aKey) const;
+#endif
+public: // New Fanctions
+    /**
+     * 
+     * 
+     * @since 2.6
+     */
+    MAknFepUICtrlContainerChinese* UIContainer() const;
+
+    /**
+    * Check valid shift key press
+    */ 
+    TBool IsValidShiftKeyPress() const;
+#ifdef RD_INTELLIGENT_TEXT_INPUT     
+    TBool IsValidFnKeyPress() const;  
+
+    TBool IsValidLongChrKeyPress() const;
+
+#endif    
+#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
+#ifdef RD_INTELLIGENT_TEXT_INPUT
+protected: // from CAknFepUIManagerBase
+    TBool RollbackPreviousCharL();
+#endif // RD_INTELLIGENT_TEXT_INPUT	
+#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
+private: // New Fanctions
+    /**
+     * 
+     * 
+     * @since 2.6
+     */
+    CAknFepUIManagerChinese(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan);
+
+    /**
+     * 
+     * 
+     * @since 2.6
+     */
+    void ConstructL(TLanguage aLanguage);
+
+private: // Data
+    TAknFepInputStateChineseBase iFepUiState;
+    MAknFepUICtrlContainerChinese* iContainerPane;
+
+    // note that this must be stored in the manager, as the input states cannot allocate any memory
+    TBufC<MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark> iLatestDeliberateSelection;
+	TUint iFlags;
+    TInt iPrevMode;
+    TBool iQwertyMode;
+    };
+    
+inline void CAknFepUIManagerChinese::SetFlag(TInt aFlag)
+    {
+    iFlags |= aFlag;
+    }
+
+inline void CAknFepUIManagerChinese::ClearFlag(TInt aFlag)
+    {
+    iFlags &= ~aFlag;
+    }
+
+inline void CAknFepUIManagerChinese::ResetFlags()
+    {
+    iFlags = 0;
+    }
+
+inline TBool CAknFepUIManagerChinese::IsFlagSet(TInt aFlag) const
+    {
+    return iFlags & aFlag;
+    }
+
+
+#endif //__AKN_FEP_UI_MANAGER_CHINESE_H__
+
+// End of file