textinput/GSLangPlugin/inc/DualLanguageList.h
branchRCL_3
changeset 44 ecbabf52600f
parent 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/GSLangPlugin/inc/DualLanguageList.h	Wed Sep 01 12:23:33 2010 +0100
@@ -0,0 +1,148 @@
+/*
+* 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 __DUALLANGUAGE_LIST_H
+#define __DUALLANGUAGE_LIST_H
+
+
+#include <coecntrl.h>
+#include <aknsettingitemlist.h> 
+#include <akncheckboxsettingpage.h>
+#include "GSLangModel.h"
+#include "DualLanguageData.h"
+
+class CGSDualLanguageDialog;
+
+class CGSLanguageSettingItem : public CAknEnumeratedTextPopupSettingItem
+    {
+public:
+    CGSLanguageSettingItem( TInt aResourceId, TBool aPrimary, CGSDualLanguageData* aData );
+    virtual ~CGSLanguageSettingItem();
+protected:
+    virtual void CompleteConstructionL();
+private:
+    CGSDualLanguageData* iData;
+    TBool iPrimary;
+    };
+
+/**
+ * Class: CGSDualLanguageList
+ *
+ * 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 CGSDualLanguageList : 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 CGSDualLanguageList* NewL(CGSDualLanguageData* aData, CGSDualLanguageDialog* 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 CGSDualLanguageList* NewLC(CGSDualLanguageData* aData, CGSDualLanguageDialog* aDialog);
+
+    /**
+    * Function:     ~CGSPredictiveSettingList
+    *
+    * Discussion:   Virtual destructor for CGSPredictiveSettingList. Ensures that
+    *               all allocated memory is returned to the heap before
+    *               deletion of object.
+    *
+    */
+    virtual ~CGSDualLanguageList();
+
+
+    /**
+    * 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);
+    
+    // Toggle whether secondary input item is visible
+    void HideSecondaryInputL(TBool aHidden);
+    
+private:
+    /**
+    * Function:     CGSPredictiveSettingList
+    *
+    * Discussion:   Hidden, first-stage non-leaving constructor.
+    *
+    * Params:       aData - reference to the data to be displayed and edited.
+    *
+    */
+    CGSDualLanguageList(CGSDualLanguageData* aData, CGSDualLanguageDialog* 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);
+
+private:
+    CGSDualLanguageData* iData;
+    CGSDualLanguageDialog* iDialog;
+    TInt iPrimaryValue;
+    TInt iSecondaryValue;
+    };
+
+#endif // __DUALLANGUAGE_LIST_H
+