diff -r 000000000000 -r 2e3d3ce01487 systemsettings/gssensorplugin/inc/gssensorplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/systemsettings/gssensorplugin/inc/gssensorplugin.h Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,249 @@ +/* +* 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: Main view for Sensor plug-in. +* +*/ + + +#ifndef GSSENSORPLUGIN_H +#define GSSENSORPLUGIN_H + +// INCLUDES +#include +#include +#include "gssensormskobserver.h" + +// FORWARD CLASS DECLARATION +class CAknView; +class CAknViewAppUi; +class CGSSensorPluginContainer; +class CGSSensorPluginModel; + + +// CLASS DECLARATION + +/** + * CGSSensorPlugin view class + * + * Plugin implementation for sensor settings + * + * @lib gssensorplugin.lib + * @since S60 5.0 + */ +class CGSSensorPlugin : public CGSBaseView, + public MGSPluginLoadObserver, + public MGSSensorMskObserver + { + public: + + /** + * Symbian OS two-phased constructor + * + * @param aInitParams Initialization parameters + */ + static CGSSensorPlugin* NewL( TAny* aInitParams ); + + /** + * Destructor. + */ + virtual ~CGSSensorPlugin(); + + /** + * Returns view id. This is same as this plug-ins UID + * + * @return TUid + */ + TUid Id() const; + + /** + * Handles commands from user. + * + * @param aCommand Command to be handled. + */ + void HandleCommandL( TInt aCommand ); + + /** + * From MEikCommandObserver, handles the commands. + * + * @param aCommand identifies the command given. + */ + void ProcessCommandL( TInt aCommand ); + + /** + * @see CGSPluginInterface header file. + */ + void GetCaptionL( TDes& aCaption ) const; + + /** + * @see CGSPluginInterface header file. + */ + TInt PluginProviderCategory() const; + + /** + * @see CGSPluginInterface header file. + */ + CGulIcon* CreateIconL( const TUid aIconType ); + + /** + * @see MGSPluginLoadObserver header file. + */ + void HandlePluginLoaded( KGSPluginLoaderStatus aStatus ); + + /** + * Updates listbox's item's value. + * + * @param aItemId An item which is updated. + */ + void UpdateListBoxL( TInt aItemId ); + + /** + * Get CGSSensorPlugin's container. + */ + CGSSensorPluginContainer* Container(); + + /** + * From MGSSensorMskObserver. + * Checks currently activated item in list and updates MSK label if needed + */ + void CheckMiddleSoftkeyLabelL(); + + protected: + + /** + * From CAknView. Handles a view activation. + * + * @param aPrevViewId Specifies the view previously active. + * @param aCustomMessageId Specifies the message type. + * @param aCustomMessage The activation message. + */ + void DoActivateL( const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + /** + * Deactivates current view. + */ + void DoDeactivate(); + + /** + * From MEikMenuObserver. + * Changes MenuPane dynamically. + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * From CGSBaseView. Override function to create container, + */ + void CreateContainerL(); + + protected: + + /** + * C++ default constructor. + */ + CGSSensorPlugin(); + + /** + * Symbian OS default constructor. + */ + void ConstructL(); + + private: + + /** + * From CGSBaseView. Creates new container + */ + void NewContainerL(); + + /** + * From CGSBaseView. Handles list box selection + */ + void HandleListBoxSelectionL(); + + /** + * Called when plugin is not used anymore. Frees view UIDs this plugin has. + */ + void RemoveLocalViews(); + + /** + * Creates local view. + * + * @param aLocalViewId Identifier of the local view to be created + */ + void CreateLocalViewL( TUid aLocalViewId ); + + /** + * Selects and creates current view. Calls CreateLocalViewL + */ + void SelectLocalViewL(); + + /** + * From CGSBaseView. Change sensors active status setting without + * displaying the setting page + */ + void ChangeSensorActiveSettingL(); + + /** + * Removes current label from MSK + */ + void RemoveCommandFromMSK(); + + /** + * Adds new label for MSK + * + * @param aResourceId Text of the new label + * @param aCommandId Command id of the MSK + */ + void SetMiddleSoftKeyLabelL( const TInt aResourceId, const TInt aCommandId ); + + /** + * Retreives Cba from base classes if iCba is NULL + */ + CEikButtonGroupContainer* ButtonGroup(); + + /** + * Checks the exit status and shows query, note or neither + */ + void CheckExitStatusL(); + + private: // Data + + /** + * resource loader + */ + RConeResourceLoader iResourceLoader; + + /** + * Pointer to model of this plug-in + */ + CGSSensorPluginModel* iModel; + + /** + * Extended plugin array for sensor specific plugins + */ + CArrayPtrFlat* iPluginArray; + + /** + * Asynchronous loader for the GS plug-ins. + */ + CGSPluginLoader* iPluginLoader; + + /** + * All the views below are owned by iAppUi + */ + CAknView* iTappingCtrlView; + CAknView* iTurningCtrlView; + }; + +#endif // GSSENSORPLUGIN_H