diff -r ebd48d2de13c -r ecbabf52600f textinput/GSLangPlugin/inc/PredictiveSettingList.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/GSLangPlugin/inc/PredictiveSettingList.h Wed Sep 01 12:23:33 2010 +0100 @@ -0,0 +1,168 @@ +/* +* 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 SettingExampleSettingList.h + * ============================================================================ + */ + +#ifndef __GSPREDICTIVESETTING_LIST_H +#define __GSPREDICTIVESETTING_LIST_H + + +#include +#include +#include + + +//class CGSPredictiveSettingData; +#include "PredictiveSettingData.h" + +class CGSPredictiveSettingDialog; + +/** + * Class: CGSMultiSelectionSettingItem + * + * Discussion: An implementation of CAknBigSettingItemBase, providing a + * big setting item that opens a multiselection (checkbox) + * setting page. Specialized implementation to show + * word autocompletion settings. + * + */ +class CGSMultiSelectionSettingItem : public CAknBigSettingItemBase + { +public: + CGSMultiSelectionSettingItem( TInt aResourceId, CGSPredictiveSettingData &aData, + CCoeEnv* aCoeEnv ); + ~CGSMultiSelectionSettingItem(); + virtual void EditItemL( TBool aCalledFromMenu ); + virtual void StoreL(); + virtual void LoadL(); + +private: + CSelectionItemList* CreateSelectionItemListL(); + + CGSPredictiveSettingData &iData; // not owned + CSelectionItemList* iSelection; + CCoeEnv* iCoeEnv; + TInt iItutIndex; + TInt iHalfQwertyIndex; + TInt iQwertyIndex; + }; + +/** + * Class: CGSPredictiveSettingList + * + * Discussion: A specialised subclass of CAknSettingItemList. This class is + * the control used to both display the current values of the + * settings and to launch the relevant editor for those items. + * + */ +class CGSPredictiveSettingList : public CAknSettingItemList + { +public: + /** + * Function: NewL + * + * Discussion: Factory function used to create a new instance of + * CGSPredictiveSettingList + * + * Params: aData - reference to the data to be displayed and edited. + * + * Returns: A newly created instance of CGSPredictiveSettingList + */ + static CGSPredictiveSettingList* NewL(CGSPredictiveSettingData &aData, CGSPredictiveSettingDialog &aDialog); + + /** + * Function: NewLC + * + * Discussion: Factory function used to create a new instance of + * CGSPredictiveSettingList and leave a pointer to it on the + * cleanup stack. + * + * Params: aData - reference to the data to be displayed and edited. + * + * Returns: A newly created instance of CGSPredictiveSettingList + */ + static CGSPredictiveSettingList* NewLC(CGSPredictiveSettingData &aData, CGSPredictiveSettingDialog &aDialog); + + /** + * Function: ~CGSPredictiveSettingList + * + * Discussion: Virtual destructor for CGSPredictiveSettingList. Ensures that + * all allocated memory is returned to the heap before + * deletion of object. + * + */ + virtual ~CGSPredictiveSettingList(); + + + /** + * Function: SizeChanged + * + * Discussion: Inherited from CCoeControl. Calculates size based on + * contained control required sizes. + * + */ + void SizeChanged(); + + /** + * Function: EditCurrentItemL + * Params: aCalledFromMenu - ETrue if called from menu, EFalse otherwise. + * + * + * Discussion: Starts the setting page for the currently selected item + * in the list. + */ + void EditCurrentItemL(TBool aCalledFromMenu); + + TBool DeviceHasMultipleKeyboards(); + TBool DeviceHasQwertyKeyboard(); + TBool DeviceHasNonHalfQwertyKeyboard(); + +private: + /** + * Function: CGSPredictiveSettingList + * + * Discussion: Hidden, first-stage non-leaving constructor. + * + * Params: aData - reference to the data to be displayed and edited. + * + */ + CGSPredictiveSettingList(CGSPredictiveSettingData &aData, CGSPredictiveSettingDialog &aDialog); + + /** + * Function: CreateSettingItemL + * + * Discussion: Factory function for creating CAknSettingItem derived + * SettingItem classes used t display current values + * + * Params: aSettingId - the id of the control which should be created + * + */ + CAknSettingItem* CreateSettingItemL (TInt aSettingId); + + void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); + void HandleResourceChange(TInt aType); + +private: + CGSPredictiveSettingData &iSettingsData; /* Reference to data owned by Dialog */ + CGSPredictiveSettingDialog &iSettingsDialog; + }; + +#endif // __GSPREDICTIVESETTING_LIST_H +