systemsettings/gssensorplugin/inc/gssensorplugin.h
changeset 0 2e3d3ce01487
--- /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 <gsbaseview.h>
+#include <gspluginloader.h>
+#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<CGSPluginInterface>* 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