diff -r 000000000000 -r 2e3d3ce01487 systemsettings/gssensorplugin/inc/gssensorplugincontainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/systemsettings/gssensorplugin/inc/gssensorplugincontainer.h Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,228 @@ +/* +* Copyright (c) 2006 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 the sensor settings +* +*/ + + +#ifndef GSSENSORPLUGINCONTAINER_H +#define GSSENSORPLUGINCONTAINER_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class CGSListBoxItemTextArray; +class CGSSensorPluginModel; +class CAknViewAppUi; +class CGSPluginInterface; +class MGSSensorMskObserver; + +// CLASS DECLARATION + +/** + * GSSensorPluginContainer container class + * + * container class for sensor settings view + * + * @lib gssensorplugin.lib + * @since S60 5.0 + */ +class CGSSensorPluginContainer : public CGSBaseContainer + { + public: + + /** + * Symbian 2nd phase constructor. + * This constructL is not used, but it needs to be here + * as it is derived from CGSbaseContainer + * + * @param aRect Listbox's rectancle + */ + void ConstructL( const TRect& aRect ); + + /** + * Symbian 2nd phase constructor. + * + * @param aRect Rectangle + * @param aAppUi Application UI + * @param aPluginArray Contains information of child plugins + */ + void ConstructL( + const TRect& aRect, + CAknViewAppUi* aAppUi, + CArrayPtrFlat* aPluginArray ); + + /** + * Destructor. + */ + virtual ~CGSSensorPluginContainer(); + + /** + * C++ constructor + * + * @param aModel Model of this plug-in + */ + CGSSensorPluginContainer( CGSSensorPluginModel* aModel, + MGSSensorMskObserver& aMskObserver ); + + /** + * 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 TInt Current feature id. + */ + TInt CurrentFeatureId() const; + + /** + * Sets Dynamic Text value + * + * @param aValue Sensors status value + */ + void SetSensorStatusTextL( TInt aValue ); + + /** + * Finds user selected plugin from plugin array + * + * @return Plugin which is selected in the lbx or leaves + * with KErrnotFound if no plugins exist. + */ + CGSPluginInterface* SelectedPluginL(); + + /** + * Makes extended plugins item + */ + void MakeExtendedPluginsItemL(); + + /** + * Checks are there extended plugins and activates if only one exists + */ + void ActivateExtendedPluginL(); + + protected: + + /** + * From CGSBaseContainer. Constructs listbox and initializes its sub-folders + * + * @param aResLbxId: resource ID of the listbox item array + */ + void ConstructListBoxL( TInt aResLbxId ); + + private: + + /** + * Create listbox from resource + */ + void CreateListBoxItemsL(); + + /** + * Makes Sensors view visible + */ + void MakeSensorsItemL(); + + /** + * Makes Tapping Control view visible + */ + void MakeTapCtrlItemL(); + + /** + * Makes Turning Control view visible + */ + void MakeTurnCtrlItemL(); + + /** + * Makes Orientation view visible + */ + void MakeOrientationItemL(); + + /** + * From CGSBaseContainer. Required for help. + * + * @param aContext Contains help context + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + + /** + * From CGSBaseContainer. Constructs correct textformat for one list box item + * and adds it in listbox + * + * @param aPos Position of text in listbox + * @param aFirstLabel Text in first row of listbox item + * @param aSecondLabel Text in second row of listbox item + */ + void AppendListItemL( const TInt aPos, + const TDesC16& aFirstLabel, + const TDesC16& aSecondLabel ); + + /** + * Handles changes in MSK label between item changes in listbox + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + private: // Data + + /** + * listbox item array. Contains listbox items + */ + CGSListBoxItemTextArray* iListboxItemArray; + + /** + * Listbox item text array. Contains listbox item texts + */ + CDesCArray* iListBoxTextArray; + + /** + * General list box items. Contains localized listbox texts + * from resource file. + */ + CDesCArrayFlat* iListItems; + + /** + * Model pointer. Does not own it, so do not delete this pointer. + */ + CGSSensorPluginModel* iModel; + + /** + * Sensors ON / OFF text + */ + CDesCArrayFlat* iSensorStatusText; + + /** + * Application UI. Not owned. + */ + CAknViewAppUi* iAppUi; + + /** + * Array of the child plugins. Owned by CGSSensorPlugin. + */ + CArrayPtrFlat* iPluginArray; + + /** + * Reference to main view. Does not own + */ + MGSSensorMskObserver& iMskObserver; + + /** + * General item count. Used when calculating item indexes to extedned plugins + */ + TInt iGeneralItemCount; + }; + +#endif //GSSENSORPLUGINCONTAINER_H