--- a/fep/aknfep/peninputplugins/peninputimepluginjp/inc/pluginfepmanagerbase.h Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,519 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: Layout UI interface base class
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERBASE_H
-#define C_PLUGINFEPMANAGERBASE_H
-
-//Include
-#include <e32base.h>
-#include <frmtlay.h>
-#include <eikon.hrh>
-#include <AknFepManagerInterface.h>
-#include <peninputcmd.h>
-
-//Forward declaration
-class CPenInputImePluginJp;
-class RPeninputServer;
-class CAknEdwinState;
-class CRepository;
-/**
- * CPluginFepManagerBase is the layout UI interface base class.
- * It is something like a "proxy" class of layout UI plugin, sending
- * commands from FEP to layout UI plugin.
- *
- * @lib peninputimepluginjp.lib
- * @since S60 v3.2
- */
-class CPluginFepManagerBase: public CBase, public MAknFepManagerInterface
- {
-public:
-
- /**
- * Destructor.
- */
- ~CPluginFepManagerBase();
-
- /**
- * Initalize UI when first time starting up.
- * The first time means when the instance created.
- *
- * @since S60 v3.2
- *
- * @return None.
- */
- virtual void OnInit();
-
- /**
- * Explicitly get ICF max length from layout UI and save the
- * value to iMaxEditorLength.
- *
- * @since S60 v3.2
- *
- * @return None.
- */
- void RetrieveEditorMaxLength();
-
- /**
- * Update local copy of case mode when
- * user change case in layout UI.
- *
- * @since S60 v3.2
- *
- * @param aCaseMode The case mode to save locally.
- * @return None.
- */
- void UpdateCaseMode(TInt aCaseMode);
-
-// From MAknFepManagerInterface
-
- /**
- * Set layout UI current number mode key mapping.
- * For example, 0-9 ; 0-9,*,# and etc.
- *
- * @since S60 v3.2
- *
- * @param aAknEditorNumericKeymap Key mapping enum value.
- * @return None.
- */
- void SetNumberModeKeyMappingL(TAknEditorNumericKeymap aAknEditorNumericKeymap);
-
- /**
- * Handle key event.
- * Since most plugin layout UIs are based on animation, they receive
- * key and process key events before this function.
- *
- * @since S60 v3.2
- *
- * @param aKey Key event code.
- * @param aLength Key press length.
- * @return ETrue if processed, EFalse otherwise.
- */
- TBool HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey);
-
- /**
- * Handle command come from FEP.
- *
- * @since S60 v3.2
- *
- * @param aCommandId Command id.
- * @return None
- */
- void HandleCommandL(TInt aCommandId);
-
- /**
- * Handle command come from FEP.
- *
- * @since S60 v3.2
- *
- * @param aCommandId Command id.
- * @param aParam Command parameter.
- * @return None.
- */
- void HandleCommandL(TInt aCommandId, TInt aParam);
-
- /**
- * Close plugin layout UI.
- *
- * @since S60 v3.2
- *
- * @return None.
- */
- void CloseUI();
-
- /**
- * Activate plugin layout UI.
- *
- * @since S60 v3.2
- *
- * @return None.
- */
- void ActivateUI();
-
- /**
- * Get max text length of layout UI ICF control.
- *
- * @since S60 v3.2
- * @return Max ICF text length.
- */
- TInt EditorMaxLength();
-
- /**
- * When screen size changes, SizeChanged is called by FEP.
- *
- * @since S60 v3.2
- * @return None.
- */
- void ResourceChanged(TInt aType);
-
- /**
- * Set underlining UI.
- * Since plugin layout UI and HKB can be used at same time,
- * HKB UI layout need to be notified after plugin layout UI
- * processes some events
- *
- * @since S60 v3.2
- * @param aNextUI The underlining UI pointer.
- * @return None.
- */
- void SetNextFepUI(MAknFepManagerInterface* aNextUi);
-
- /**
- * Get support language in sepecfied mode.
- * The method leaves here only for compatibility.
- *
- * @since S60 v3.2
- *
- * @param aMode Input mode.
- * @return Language supported.
- */
- TInt SupportLanguage(TInt aMode) const;
-
- /**
- * Set current language, which is required by editor
- *
- * @since S60 v3.2
- *
- * @param aLanguage Language to set.
- * @return None.
- */
- void SetInputLanguageL(TLanguage aLanguage);
-
- /**
- * Set editor text and cursor information to layout UI
- * ICF control.
- *
- * @since S60 v3.2
- * @param aTotalTextLen Total text length in eidtor.
- * @param aStartPos Offset of aText to the start of editor text.
- * @param aCursorSel Cursor position.
- * @param aText A part of editor text start from aStartPos.
- *
- * @return None.
- */
- void SetFepAwareEditorText(const TFepInputContextFieldData& aIcfData);
-
- /**
- * Set layout UI mode.
- * The method leaves here only for compatibility
- *
- * @since S60 v3.2
- *
- * @param aMode Mode to set.
- * @param aPredictive Whether the current mode support predictive.
- * @param aWwertyInputMode Whether the current HKB is qwerty.
- * @return None.
- */
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode,
- TInt aKeyboardType = EPtiKeyboardNone) ;
-#else
- void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode);
-#endif
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- virtual TBool IsValidFnKeyPress() const;
- virtual TBool IsValidLongChrKeyPress() const;
-#endif
-
- /**
- * Set layout UI current case.
- * The method leaves here only for compatibility. Since plugin layout
- * UI is different from HKB tranditional UI, they use something like
- * "case mode" other than case which is set by a FEP command.
- *
- * @since S60 v3.2
- *
- * @param aCase Case to set.
- * @return None.
- */
- void SetCase(TCase aCase);
-
- /**
- * The method leaves here only for compatibility.
- *
- * @since S60 v3.2
- *
- * @return None.
- */
- void ExpireMultitapTimer();
-
- /**
- * The method leaves here only for compatibility.
- *
- * @since S60 v3.2
- *
- * @param aKey The key presssed.
- * @return ETrue if long press, EFalse otherwise.
- */
- TBool IsValidNumericLongKeyPress(TInt aKey) const;
-
- /**
- * The method leaves here only for compatibility.
- *
- * @since S60 v3.2
- *
- * @param aText Text to add to user dictionary.
- * @return None.
- */
- void AddTextToUserDictionaryL(const TDesC& aText);
-
- /**
- * The method leaves here only for compatibility.
- *
- * @since S60 v3.2
- *
- * @param aFormat On return, contains the formatting to
- * apply to the inline text (or to a portion of it).
- * @param aNumberOfCharactersWithSameFormat On return,
- contains the number of characters in the inline
- text (starting at aPositionOfCharacter)
- which have the same formatting
- * @param aPositionOfCharacter Start position within the inline text
- * @return None.
- */
- void GetFormatOfFepInlineText(TCharFormat& aFormat,
- TInt& aNumberOfCharactersWithSameFormat,
- TInt aPositionOfCharacter) const;
-
- /**
- * The method leaves here only for compatibility.
- *
- * @since S60 v3.2
- *
- * @return ETrue if valid, EFalse otherwise.
- */
- TBool IsValidShiftKeyPress() const;
-
- /**
- * The method leaves here only for compatibility.
- *
- * @since S60 v3.2
- *
- * @return None.
- */
- void SetEditorContext(TInt aContext);
-
- /**
- * Set the Star key flag
- *
- * @param aSet TBool.
- * @return None
- */
- void SetStarKeyFlag( TBool aSet );
-
- /**
- * Check the character width.
- *
- * @since S60 v3.2
- *
- * @return ETrue is Full-width.
- */
- TBool IsCharWidth() const;
-
- /**
- * Check the Japanese predictive.
- *
- * @since S60 v3.2
- *
- * @return ETrue is predictive on.
- */
- TBool IsJapanesePredictive() const;
-
- /**
- * Check the Japanese HWR conversion.
- *
- * @since S60 v3.2
- *
- * @return ETrue is Japanese HWR conversion on.
- */
- TBool IsJapaneseHwrConversion() const;
-
-protected:
-
- /**
- * C++ default constructor.
- *
- * @since S60 v3.2
- * @param aOwner IME plugin pointer.
- * @param aPenInputServer Pen input server pointer
- */
- CPluginFepManagerBase(CPenInputImePluginJp& aOwner,
- RPeninputServer* aPenInputServer);
-
- /**
- * By default Symbian 2nd phase constructor.
- *
- * @since S60 v3.2
- * @return None
- */
- void BaseConstructL();
-
- /**
- * Set layout permited ranges.
- *
- * @param aPermittedMode Ranges of current editor allowed.
- * @return None
- */
- virtual void SetLayoutPermitedRanges(TInt aPermittedRanges);
-
- /**
- * Set layout primary range.
- *
- * @since S60 v3.2
- * @param aEditorState Current editor state.
- * @return None
- */
- virtual void SetLayoutRange(const CAknEdwinState* aEditorState);
-
- /**
- * Send command to pen input server utility function.
- *
- * @since S60 v3.2
- * @param aCommandId The command id to sent.
- * @return None
- */
- void SendCommandToServer(TInt aCommandId);
-
- /**
- * Send command to pen input server utility function.
- *
- * @since S60 v3.2
- * @param aCommandId The command id to sent.
- * @param aParam The command param.
- * @return None
- */
- void SendCommandToServer(TInt aCommandId, TInt aParam);
-
- /**
- * Send command to pen input server utility function.
- *
- * @since S60 v3.2
- * @param aCommandId The command id to sent.
- * @param aParam The command param.
- * @return None
- */
- void SendCommandToServer(TInt aCommandId, const TDesC8& aParam);
-
- /**
- * Get layout UI last used range.
- *
- * @since S60 v3.2
- * @return Range last used.
- */
- TInt LayoutLastUsedRange();
-
- /**
- * Set layout UI position.
- * Move layout UI not to overlap with some editors.
- *
- * @since S60 v3.2
- * @param aBottomRight The bottom right position of layout UI.
- * The value is only a suggest value, layout UI may adjust it.
- * @return None.
- */
- void SetLayoutPosition(const TRect& aParam);
-
- TLanguage GetLocalLanguage(const CAknEdwinState* aEditorState) const;
-
- /**
- * Save the current information.
- *
- * @since S60 v3.2
- * @param aParam
- */
- void SaveCurrentInfo(const TInt aParam);
-
-protected:
-
- /**
- * IME plugin reference.
- */
- CPenInputImePluginJp& iOwner;
-
- /**
- * Pen input server pointer. Not own.
- */
- RPeninputServer* iPenInputServer;
-
- /**
- * The premitted range of current editor.
- */
- TInt iPermittedRange;
-
- TInt iHkbMode;
-
- /**
- * Current language.
- */
- TLanguage iLanguage;
-
- /**
- * The width of character, Full-width(ETrue)
- * or Half-width(EFalse)
- */
- TBool iCharWidth;
-
- /**
- * Predictive is ON(ETrue) or OFF(EFalse).
- */
- TBool iPredictive;
-
- /**
- * Conversion is ON(ETrue) or OFF(EFalse).
- */
- TBool iConversion;
-
-private:
-
- /**
- * Repository object used to get last used range.
- */
- CRepository* iRepository;
-
- /**
- * Local copy of ICF max text length.
- */
- TInt iMaxEditorLength;
-
- /**
- * Local copy of layout current case mode
- */
- TInt iLastCase;
-
- /**
- * Underlineing UI interface
- */
- MAknFepManagerInterface* iHkbUi;
-
- /**
- * subrage for ERangeNative
- */
- TInt iSubRange;
- };
-#endif // C_PLUGINFEPMANAGERBASE_H
-
-// End Of File