mmshplugins/mmshsettingsuiplugin/inc/mussettingscontainer.h
changeset 0 f0cf47e981f9
child 2 b31261fd4e04
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmshplugins/mmshsettingsuiplugin/inc/mussettingscontainer.h	Thu Dec 17 08:44:37 2009 +0200
@@ -0,0 +1,199 @@
+/*
+* Copyright (c) 2006-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:  Container for MUSSettingsPlugin.
+*
+*/
+
+
+
+#ifndef C_CMUSSETTINGSCONTAINER_H
+#define C_CMUSSETTINGSCONTAINER_H
+
+
+#include	"mussettings.h"
+#include    <gsbasecontainer.h>
+#include    <bldvariant.hrh>
+
+
+class CGSListBoxItemTextArray;
+class CEikTextListBox;
+class CMusSettingsModel;
+
+
+/**  Buffer size for general settings menu items */
+const TInt KGSBufSize128 = 128;
+
+
+/**
+ *  CMusSettingsContainer container class.
+ *  Container class for MUSSettingsPlugin.
+ *
+ *  @since S60 v3.2
+ */
+class CMusSettingsContainer : public CGSBaseContainer
+    {
+public:
+
+    /**
+     * C++ constructor, public since no NewL factory function implemented.
+     *
+     * @param aModel Reference to CMuSSettingsModel class.
+     */
+    CMusSettingsContainer( CMusSettingsModel& aModel );
+
+    /**
+     * Symbian OS second phase constructor. Public for owner to specify size
+     * of client rectangle.
+     *
+     * @param aRect Rectangle of container area.
+     */
+    void ConstructL( const TRect& aRect );
+
+    /**
+     * Destructor.
+     */
+    ~CMusSettingsContainer();
+
+    /**
+     * Updates listbox's item's value.
+     *
+     * @param aFeatureId An item which is updated.
+     */
+    void UpdateListBoxL( TInt aFeatureId );
+
+    /**
+     * Retrieves the currently selected listbox feature id.
+     * @return feature id.
+     */
+    TInt CurrentFeatureId() const;
+
+    /**
+     * Shows notification of newly selected SIP profile taken to use after
+     * active call.
+     */
+    void ShowNewProfileActiveAfterCallL();
+
+protected:
+
+// from base class CGSBaseContainer.
+
+    /**
+     * From CGSBaseContainer.
+     * Creates listbox. See baseclass for further description.
+     *
+     * @param aResLbxId Resource identifier for listbox to be created.
+     */
+    virtual void ConstructListBoxL( TInt aResLbxId );
+
+private:
+
+	/**
+	 * Add an item to list of settings.
+	 */
+    void AddItemL( TInt aId, const TPtrC aText );
+
+	/**
+	 * Create settings list items.
+	 */
+    void CreateListBoxItemsL();
+
+    /**
+     * Create VS activation settings list item.
+     */
+    void MakeActivationItemL();
+
+    /**
+     * Create Operator VS activation settings list item.
+     */
+    void MakeOperatorActivationItemL();
+
+    /**
+     * Create SIP profile settings list item.
+     */
+    void MakeSIPProfileItemL();
+
+    /**
+     * Create autorecord settings list item.
+     */
+    void MakeAutoRecordItemL();
+
+    /**
+     * Create note settings list item.
+     */
+    void MakeNoteItemL();
+
+    /**
+     * Create save recorded video settings list item.
+     */
+    void MakeRecordedVideoSavingItemL();
+
+    /**
+     * Required for help.
+     */
+    void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+    /**
+     * Hide some itesm if needed in operator variant mode
+     */
+    void HideItemsL( TInt aItemIndex );
+
+private: // data
+
+    /**
+     * Reference to data model.
+     */
+    CMusSettingsModel& iModel;
+
+    /**
+     * List items in VS activation mode.
+     * Own.
+     */
+    CDesCArrayFlat* iActivationItems;
+
+    /**
+     * List items in SIP profile mode.
+     * Own.
+     */
+    CDesCArrayFlat* iProfileItems;
+
+    /**
+     * List items in autorecord mode.
+     * Own.
+     */
+    CDesCArrayFlat* iAutoRecordItems;
+
+    /**
+     * List items in note.
+     * Own.
+     */
+    CDesCArrayFlat* iNoteItems;
+
+    /**
+     * Operator variant current value.
+     */
+    MusSettingsKeys::TOperatorVariant iOperatorVariant;
+
+    /**
+     * VS activation current value.
+     */
+    MusSettingsKeys::TActivation iVSActication;
+
+    /**
+     * Listbox items.
+     */
+    CGSListBoxItemTextArray* iListboxItemArray;
+
+    };
+
+#endif // C_CMUSSETTINGSCONTAINER_H