diff -r ebd48d2de13c -r ecbabf52600f fep/aknfep/inc/AknFepSharedDataInterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fep/aknfep/inc/AknFepSharedDataInterface.h Wed Sep 01 12:23:33 2010 +0100 @@ -0,0 +1,792 @@ +/* +* 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: +* +*/ + + + + + + + + + + + + +#ifndef _AKNFEP_SHARED_DATA_INT_H__ +#define _AKNFEP_SHARED_DATA_INT_H__ + +#include +#include +#include +#include +#include +#include // for TPluginInputMode + +class CRepository; + +class CAknFepRepositoryWatcher : public CBase, public MCenRepNotifyHandlerCallback + { +public: + static CAknFepRepositoryWatcher* NewL( + const TUid aUid, + const TUint32 aKey, + CCenRepNotifyHandler::TCenRepKeyType aKeyType, + TCallBack aCallBack, + CRepository* aRepository); + + static CAknFepRepositoryWatcher* NewL( + const TUid aUid, + TCallBack aCallBack, + CRepository* aRepository); + + ~CAknFepRepositoryWatcher(); + + TUint32 ChangedKey(); +#ifdef RD_INTELLIGENT_TEXT_INPUT + inline TBool IsGenericCenrepChange(){return iIsGeneric;} +#endif + +public: // from MCenRepNotifyHandlerCallback + void HandleNotifyInt (TUint32 aKey, TInt aNewValue); + void HandleNotifyError (TUint32 aKey, TInt aError, CCenRepNotifyHandler* aHandler); + void HandleNotifyGeneric(TUint32 aId); + +private: + CAknFepRepositoryWatcher( + const TUid aUid, + const TUint32 aKey, + TCallBack aCallBack, + CRepository* aRepository); + + void ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType); + + void ConstructL(); + +private: + TUid iUid; + TUint32 iKey; + TUint32 iChangedKey; + TCallBack iCallBack; + CRepository* iRepository; + CCenRepNotifyHandler* iNotifyHandler; +#ifdef RD_INTELLIGENT_TEXT_INPUT + TBool iIsGeneric; +#endif + }; + + +class CAknFepManager; + +class CAknFepSharedDataInterface : public CBase + { +public: + /** + * Two phase constructor for this class + */ + static CAknFepSharedDataInterface* NewL(CAknFepManager* aFepManager); + + /** + * C++ Destructor + */ + ~CAknFepSharedDataInterface(); + +public: + /** + * Queries the value of PredictiveTextOn from shared data + * + * @return 1 for on or 0 for off + */ + TInt PredictiveTextOn(); + + /** + * Queries the value of Japanese PredictiveTextOn from shared data + * + * @since 2.6 + * @return 1 for on or 0 for off + */ + TInt PredictiveTextJapaneseOn(); + + /** + * Queries the value of InputMode from shared data + * + * @since 2.6 + * @return value of current input mode + */ + TInt InputMode(); + + /** + * Sets the value of InputMode in shared data to the passed value + * + * @since 2.6 + * @param aValue new value set to InputMode shared data item which + * represents the input mode currently being used + */ + void SetInputMode(TInt aInputMode); + + /** + * Queries the value of CangJieMode from shared data + * + * @since 3.0 + * @return value of current input mode + */ + TInt CangJieMode(); + + /** + * Sets the value of CangJieMode in shared data to the passed value + * + * @since 3.0 + * @param aValue new value set to CangJieMode shared data item which + * represents the input mode currently being used + */ + void SetCangJieMode(TInt aNewCangJieMode); + + /** + * Queries the value of iInputTextLang from shared data + * + * @return language code of currently used language + */ + TInt InputTextLanguage(); + + /** + * Sets the value of InputTextLanguage in shared data to the passed value + * + * @param aValue new value set to InputTextLanguage shared data item which + * represents the language code currently being used + */ + void SetInputTextLanguage(TInt aValue); + + /** + * Queries the value of iDisplayLang from shared data + * + * @return language code of currently display language + */ + TInt DisplayLanguage(); +#ifdef RD_INTELLIGENT_TEXT_INPUT + /** + * Sets the Fn key state and copies it to Cenrep. + * + * @return Nothing + */ + void SetFnKeyState(TInt aState); + TInt GetFnKeyState(); +#ifdef FF_DUAL_LANGUAGE_SUPPORT + /** + * Queries the value of secondary input language from shared data + * + * @return language code of currently used language + */ + TInt InputTextLanguageSecondary(); + /** + * Sets the value of secondary input language in shared data to the passed value + * + * @param aValue new value set to InputTextLanguageSecondary shared data item + * which represents the language code currently being used + */ + void SetInputTextLanguageSecondary(TInt aValue); +#endif // FF_DUAL_LANGUAGE_SUPPORT +#endif + + /** + * Sets the value of PredictiveTextOn to 1 in shared data - this + * is used to represent predictive text being on + */ + void SetPredictiveTextOn(); + + /** + * Sets the value of PredictiveTextOn to 0 in shared data - this + * is used to represent predictive text being off + */ + void ResetPredictiveTextOn(); + + /** + * Sets the value of Japanese PredictiveTextOn to 1 in shared data + * - this is used to represent Japanese predictive text being on + * + * @since 2.6 + */ + void SetJapanesePredictiveTextOn(); + + /** + * Sets the value of Japanese PredictiveTextOn to 0 in shared data + * - this is used to represent Japanese predictive text being off + * + * @since 2.6 + */ + void ResetJapanesePredictiveTextOn(); + + /** + * Query if KAknFepScrollLatinPredictive feature is enabled in shared data. + * + * @since 2.6 + * @return Value of KAknFepScrollLatinPredictive setting. + */ + TInt ScrollLatinPredictiveCandidates() const; + + /** + * Query if KAknFepSpaceWithScrollRight feature is enabled in shared data. + * + * @since 2.6 + * @return Value of KAknFepSpaceWithScrollRight setting. + */ + TInt SpaceWithScrollRight() const; + + /** + * Query if KAknFepEnterWithScrollDown feature is enabled in shared data. + * + * @since 2.6 + * @return Value of KAknFepEnterWithScrollDown setting. + */ + TInt EntersWithScrollDown() const; + + /** + * Query Qwerty input mode. + * + * @since 2.6 + * @return Value of KAknQwertyInputModeActive setting. + */ + TInt QwertyInputMode() ; //const; +#ifdef RD_INTELLIGENT_TEXT_INPUT + /** + * Reads Cenrep and returns the keyboard layout + * + */ + TInt KeyboardLayout() ;//const +#endif + + + /** + * Returns a value indicating whether edit-submenu functionality should be + * used in options menu. + * + * @since 3.1 + * @return Value indicating whether edit submenu should be used. + */ + TInt EditSubmenuInUse() const; + + /** + * Returns a value indicating whether edit-submenu functionality should be + * used in options menu. + * + * @since 3.1 + * @return Value indicating whether edit submenu should be used. + */ + TInt HashKeySelectionInUse(); + + /** + * Multitap timer value. + * Replaces the constant KMultiTapTimeoutMS in Japanese variant. + * + * @since 3.0 + * @return Value of KAknFepMultiTapTimer setting. + */ + TInt MultiTapTimer() const; + /** + * Japanese Qwerty Flags value. + * Replaces the constant KAknFepJapaneseSpecialCharFlag in Japanese variant. + * + * @since 3.0 + * @return Value of KAknFepJapaneseSpecialCharFlag setting. + */ + TInt JapaneseQwertyFlags() const; + + /** + * Get the last used plugin input mode + * + * @since 3.2 + * @return Value of KAknFepLastUsedInput setting. + */ + TInt PluginInputMode() const; + + /** + * Replaces the last used plugin input mode + * + * @since 3.2 + * @return Replace value of KAknFepLastUsedInput setting. + */ + void SetPluginInputMode(TInt aId); + + + /** + * Get the last used plugin UI language + * + * @since 3.2 + * @return Value of KAknFepLastUsedUILanguage setting. + */ + TInt PluginUILanguage() const; + + /** + * Replaces the last used plugin UI language + * + * @since 3.2 + * @param aLanguage Replace value of KAknFepLastUsedUILanguage setting. + */ + void SetPluginUILanguage(TInt aLanguage); + + + /** + * Get current pen input language + * @since 3.0 + * + * @return Value of KSettingsPenInputLang + */ + TInt PenInputLanguage() const; + + /** + * Replaces the value of number input mode + * + * @since 3.2 + * @param aMode (KSettingsDefaultNumberMode or KSettingsIndicDefaultNumberMode) + * @param aValue a value + */ + void SetDefaultNumberMode( TInt aMode, TInt aValue ); + + /** + * Returns a value of current clear direction. + * + * @since 3.2 + * @return Value of KAknFepClearDirection setting. + */ + TInt ClearDirection() const; + + /** + * Set a value of current clear direction. + * + * @since 3.2 + * @param aValue new value set to Clear Direction shared data item which + * represents the direction currently being used + */ + void SetClearDirection(TInt aValue); + /** + * Queries the value of PredictiveText Auto Word Completion state to be On from shared data + * + * @return 1 for on or 0 for off + * Since 5.0 + */ + TInt CAknFepSharedDataInterface::PredictiveTextAutoCompleteOn(); + + + /** + * Sets the value of PredictiveText Auto Word Completion state to 1 in shared data - this + * is used to represent predictive text Auto Word Completion being on + * Since 5.0 + */ + void CAknFepSharedDataInterface::SetPredictiveTextAutoCompleteOn(); + + + /** + * Sets the value of PredictiveText Auto Word Completion state to 0 in shared data - this + * is used to represent predictive text Auto Word Completion being off + * Since 5.0 + */ + void CAknFepSharedDataInterface::ResetPredictiveTextAutoCompleteOn(); +#ifndef RD_INTELLIGENT_TEXT_INPUT + + /** + * Handles a change in predictive text Auto Word Completion setting from general settings + * Since 5.0 + */ + void CAknFepSharedDataInterface::HandlePredictiveTextAutoCompleteSettingGSChange(); +#endif +#ifdef RD_INTELLIGENT_TEXT_INPUT + + /** + * Handles a change in predictive text Auto Word Completion setting from general settings + * Since 5.0 + */ + void HandlePredictiveTextAutoCompleteSettingGSChange(); +#endif // + + /** + * Returns a value of Hwr conversion ON/OFF. + * + * @since 3.2 + * @return Value of KAknFepJapaneseHwrConversion value + */ + TInt JapaneseHwrConversion() const; + + /** + * Set a value of Hwr conversion ON/OFF. + * + * @since 3.2 + * @param aValue new value set to Hwr conversion ON/OFF shared data item which + * represents the conversion ON/OFF currently being used + */ + void SetJapaneseHwrConversion(TInt aValue); +#ifdef RD_INTELLIGENT_TEXT_INPUT + /** + * Queries the value of PredictiveText Typing Correction Level from shared data + * + * @return Typing Correction Level + */ + TInt PredictiveTextTypingCorrectionLevel(); + + + /** + * Sets the value of PredictiveText Typing Correction Level state to aCorrectionLevel in shared data + */ + void SetPredictiveTextTypingCorrectionLevel(TInt aCorrectionLevel); + + + /** + * Handles a change in predictive text Typing Correction Level setting. + */ + void HandlePredictiveTextTypingCorrectionLevelChange(); + + /** + * Queries the value of PredictiveText Number Candidate Shown state to be On from shared data + * + * @return 1 for shown or 0 for not shown + */ + TInt PredictiveTextNumberCandidateShown(); + + + /** + * Sets the value of PredictiveText Number Candidate Shown state to 1 in shared data - this + * is used to represent predictive text Number Candidate Shown being shown. + */ + void SetPredictiveTextNumberCandidateShown(); + + + /** + * Sets the value of PredictiveText Number Candidate Shown state to 0 in shared data - this + * is used to represent predictive text Number Candidate Shown being not shown. + */ + void ResetPredictiveTextNumberCandidateShown(); + + + /** + * Handles a change in predictive text NumberCandidateShown setting. + */ + void HandlePredictiveTextNumberCandidateSettingChange(); + + /** + * Queries the value of PredictiveText Primary candidate setting from shared data + * + * @return Primary candidate setting(0 for Exact or 1 for Suggested) + */ + TInt PredictiveTextPrimaryCandidate(); + + + /** + * Sets the value of PredictiveText Primary candidate setting state to aPrimaryCandidate in shared data + */ + void SetPredictiveTextPrimaryCandidate(TInt aPrimaryCandidate); + + + /** + * Handles a change in predictive text Primary candidate setting. + */ + void HandlePredictiveTextPrimaryCandidateChange(); +#endif // RD_INTELLIGENT_TEXT_INPUT + + TInt FepShowFsqPreviewStatus(); + + void SetFepShowFsqPreviewStatus(TInt aValue); + + TInt FepShowVkbPreviewStatus(); + + void SetFepShowVkbPreviewStatus(TInt aValue); + + TInt FepLastUseVkbModeForLandscape(); + + void SetFepLastUseVkbModeForLandscape(TInt aValue); + + TBool AutoRotateEnabled(); + + TBool ThemeEffectsEnabled(); +#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__ +#ifdef RD_INTELLIGENT_TEXT_INPUT + /** + * Queries if numbers (and other characters found behind Fn) can be entered with long key press on QWERTY. + */ + TBool LongPressNumberEntryOnQwerty() const; + /** + * Queries if copy-pasting with shift+softkeys is available also on QWERTY. + */ + TBool ShiftCopyPastingOnQwerty() const; +#endif // RD_INTELLIGENT_TEXT_INPUT +#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__ +#ifdef RD_SCALABLE_UI_V2 + /** + * Get a value of current default on screen vkb. + * It depends on input lanage is PRC/HW/TW Chinese. + * + * @return Value of current default on screen vkb + */ + TInt DefaultOnScreenVKB(); +#endif + + /** + * Returns a value of default arabic finger hwr orientation. + * + * @since 5.2 + * @return 0 is portrait. + * 1 is landscape. + */ + TInt DefaultArabicFingerHwrOrientation() const; + + /** + * Set a value of default arabic finger hwr orientation. + * + * @since 5.2 + * @param aValue new value set to default arabic finger hwr orientation shared data item which + * represents the default orientation. + * 0 is portrait. + * 1 is landscape. + */ + void SetDefaultArabicFingerHwrOrientation(TInt aValue); + /** + * Returns a value of default arabic finger hwr number mode. + * + * @since 5.2 + * @return 0 is portrait. + * 1 is landscape. + */ + TInt DefaultArabicNumberMode() const; + + /** + * Set a value of default arabic finger hwr number mode. + * + * @since 5.2 + * @param aValue new value set to default arabic finger hwr number mode + * ared data item which represents the default number mode. + * 0 is latin nubmer. + * 1 is arabic native number. + */ + void SetDefaultArabicNumberMode(TInt aValue); + + /** + * Get the last used plugin input mode for portrait orientation + * + * @since 5.2 + * @return value of KAknFepLastUsedPortraitInput value. + */ + TPluginInputMode PluginPortraitInputMode() const; + + /** + * Replaces the last used plugin input mode for portrait orientation + * + * @since 5.2 + * @param Replace value of KAknFepLastUsedPortraitInput value. + */ + void SetPluginPortraitInputMode( TPluginInputMode aLastUsedPortraitInputMode ); +private: + /** + * C++ Constructor + */ + CAknFepSharedDataInterface(CAknFepManager* aFepManager); + /** + * Second phase constructor for this class + */ + void ConstructL(); + +private: + + /** + * Handles a change in hash key selection setting + */ + static TInt HashKeySelectionNotification(TAny* aObj); + + /** + * Handles a change in input mode from general settings + */ + static TInt InputModeChangeGSNotification(TAny* aObj); + + /** + * Handles a change in input language from general settings + */ + static TInt InputTextLangGSNotification(TAny* aObj); + + /** + * Handles a change in predictive text setting from general settings + */ + static TInt PredictiveTextSettingChangeGSNotification(TAny* aObj); +#ifndef RD_INTELLIGENT_TEXT_INPUT + + /** + * Handles a change in predictive text Auto Word Completion setting from general settings + * Since 5.0 + */ + static TInt PredictiveTextAutoCompleteSettingChangeGSNotification(TAny* aObj); +#endif // RD_PRED_AW_COMPLETION +#ifdef RD_INTELLIGENT_TEXT_INPUT + /** + Handles the change in keyboard layout. + */ + void HandleKeyboardLayoutChange(); + /** + * Call back function to handle a change in keyboard layout. + */ + static TInt HandleKeyboardLayoutChangeNotification(TAny* aObj); + +#ifdef RD_SCALABLE_UI_V2 + /** + Handles the change to virtual keyboard layout. + */ + void HandleVirtualKeyboardLayoutChange(); + + /** + * Call back function to handle a change to virtual keyboard layout. + */ + static TInt HandleVirtualKeyboardLayoutChangeNotification(TAny* aObj); +#endif // RD_SCALABLE_UI_V2 + +#endif +#ifdef RD_INTELLIGENT_TEXT_INPUT + + /** + * Handles a change in predictive text Auto Word Completion setting from general settings + * Since 3.2 + */ + static TInt PredictiveTextAutoCompleteSettingChangeGSNotification(TAny* aObj); +#endif // RD_INTELLIGENT_TEXT_INPUT + /** + * Handles a change in Japanese predictive text setting from general settings + */ + static TInt JapanesePredictiveTextSettingChangeGSNotification(TAny* aObj); +#ifdef RD_INTELLIGENT_TEXT_INPUT + /** + * Handles a change in predictive text Typing Correction Level setting. + */ + static TInt PredictiveTextTypingCorrectionLevelChangeNotification(TAny* aObj); + + /** + * Handles a change in predictive text Number Candidate setting. + */ + static TInt PredictiveTextNumberCandidateSettingChangeNotification(TAny* aObj); + + /** + * Handles a change in predictive text Primary Candidate setting. + */ + static TInt PredictiveTextPrimaryCandidateChangeNotification(TAny* aObj); +#endif // RD_INTELLIGENT_TEXT_INPUT + + /** + * Handles a change in qwerty input mode setting. + */ + static TInt QwertyModeChangeNotification(TAny* aObj); + + /** + * Handles a change in hash key selection + */ + void HandleHashKeySelectionChange(); + + /** + * Handles a change in input mode from general settings + */ + void HandleInputModeGSChange(); + + /** + * Handles a change in input language from general settings + */ + void HandleInputTextLanguageGSChange(); + + /** + * Handles a change in predictive text setting from general settings + */ + void HandlePredictiveTextSettingGSChange(); + + /** + * Handles a change in Japanese predictive text setting from general settings + */ + void HandleJapanesePredictiveTextSettingGSChange(); + + /** + * Call back function to handle a change in MultiTapTimer from general settings + */ + static TInt MultiTapTimerChangeGSNotification(TAny* aObj); + /** + * Handles a change in MultiTapTimer from general settings + */ + void HandleMultiTapTimerChangeGSNotification(); + + /** + * Call back function to handle a change in Japanese Qwerty Flags from general settings + */ + static TInt JapaneseQwertyFlagsChangeGSNotification(TAny* aObj); + /** + * Handle change notification for Japanese Qwerty Flags. + */ + void HandleJapaneseQwertyFlagsChangeGSNotification(); + + /** + * Handles a change in qwerty input mode setting. + */ + void HandleQwertyModeChangeNotification(); + TInt NumberModeChangesGSNotification(); + + static TInt HandleRepositoryCallBack(TAny* aPtr); +#ifdef RD_INTELLIGENT_TEXT_INPUT + static TInt HandleGenericRepositoryChange(TAny* aPtr); + TPtiKeyboardType ActiveKeyboardType() const; +#endif + static TInt HandleLocaleRepositoryCallBack(TAny* aPtr); + + class CSubscriber : public CActive + { + public: + CSubscriber(TCallBack aCallBack, RProperty& aProperty); + ~CSubscriber(); + + public: // New functions + void SubscribeL(); + void StopSubscribe(); + + private: // from CActive + void RunL(); + void DoCancel(); + + private: + TCallBack iCallBack; + RProperty& iProperty; + }; + + CSubscriber* iQwertyModeStatusSubscriber; + RProperty iQwertyModeStatusProperty; +#ifdef RD_INTELLIGENT_TEXT_INPUT + CSubscriber* iKeyboardLayoutStatusSubscriber; + RProperty iKeyboardLayoutStatusProperty; +#ifdef RD_SCALABLE_UI_V2 + CSubscriber* iVirtualKeyboardLayoutStatusSubscriber; + RProperty iVirtualKeyboardLayoutStatusProperty; +#endif // #ifdef RD_SCALABLE_UI_V2 +#endif + + friend class CSubscriber; + +private: + CAknFepManager* iFepManager; //not owned + + CRepository* iCommonEngineRepository; + CRepository* iAknFepRepository; + CRepository* iGsPenSettings; //for global setting + CRepository* iLocaleRepository; // locale related settings + CRepository* iSensorRepository; + CRepository* iThemeEffectsRepository;//transition effects + CAknFepRepositoryWatcher* iAknFepRepositoryWatcher; + CAknFepRepositoryWatcher* iAknFepLocaleRepositoryWatcher; + + TInt iSharedDataScrollLatinPredictive; + TInt iSharedDataSpaceWithScrollRight; + TInt iSharedDataEnterWithScrollDown; + + TInt iHashKeySelectionInUse; + }; + +#endif + +// End of File