/** Copyright (c) 2009 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:**//* * ============================================================================ * Name : CGSPredictiveSettingList from AknFepPredictiveSettingList * ============================================================================ */#ifndef __GSPREDICTIVESETTING_DIALOG_H#define __GSPREDICTIVESETTING_DIALOG_H#include <AknDialog.h>#include "PredictiveSettingList.h"#include "PredictiveSettingData.h"enum TInputSettings{ EAutoWordCompletion, ETypingCorrectionLevel, ENumberCandidate, EPrimaryCandidate};class CGSPredictiveSettingDialog : public CAknDialog{ public: /** * Function: NewL * * Discussion: Factory function used to create a new instance of * CGSPredictiveSettingDialog * * Params: aMenuResId - menu resource id. * Params: aConfirmationQueryResId - Confirmation Query resource id. * Returns: A newly created instance of CGSPredictiveSettingDialog */ static CGSPredictiveSettingDialog* NewL(TInt aMenuResId, TInt aConfirmationQueryResId); /** * Function: NewLC * * Discussion: Factory function used to create a new instance of * CGSPredictiveSettingDialog and leave a pointer to it on the * cleanup stack. * * Params: aMenuResId - menu resource id. * Params: aConfirmationQueryResId - Confirmation Query resource id. * Returns: A newly created instance of CGSPredictiveSettingDialog */ static CGSPredictiveSettingDialog* NewLC(TInt aMenuResId, TInt aConfirmationQueryResId); /** * Function: ~CGSPredictiveSettingDialog * * Discussion: Virtual destructor for CGSPredictiveSettingDialog. Ensures that all * allocated memory is returned to the heap before deletion * of object. * */ virtual ~CGSPredictiveSettingDialog(); virtual SEikControlInfo CreateCustomControlL(TInt aControlType); virtual CGSPredictiveSettingDialog::TFormControlTypes ConvertCustomControlTypeToBaseControlType(TInt aControlType) const; virtual TBool OkToExitL(TInt aButtonId); virtual void ProcessCommandL(TInt aCommandId); virtual void HandleResourceChange(TInt aType); void EditItemL(TBool aCalledFromMenu); void HandlePointerEventL(const TPointerEvent& aPointerEvent); // From MEikMenuObserver virtual void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); private: void ConstructL( TInt aMenuTitleResourceId ); CGSPredictiveSettingDialog(TInt aConfirmationQueryResId); void ReadSettingsDataL(); void SaveSettingsDataL() const; void SaveCurrentSettingsDataL() const; void LaunchPredictiveSettingOffQueryIfNecessaryL(TInt aPrevSettings); TInt CurrentSettings(); TInt iConfirmationQueryResId; TInt iPredictiveTextFlag; TBool iPredictiveSettingOffQueryNotShown;#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__ static TInt EventCheckCallback(TAny* aObj); void AttemptToExitL(); TInt iOriginalKeyboardLayout; // iSettingItemInEditingState is introduced to avoid the crash when we are editing // the settings item and the flip staus changes. TBool iSettingItemInEditingState; CIdle* iItemCloseEventCheck;#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__ protected: CGSPredictiveSettingList* iSettingsList; CGSPredictiveSettingData* iSettingsData;};#endif //__GSPREDICTIVESETTING_DIALOG_H