gsprofilesrv_plat/settings_framework_api/inc/GSMainView.h
branchRCL_3
changeset 25 7e0eff37aedb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gsprofilesrv_plat/settings_framework_api/inc/GSMainView.h	Wed Sep 01 12:20:44 2010 +0100
@@ -0,0 +1,215 @@
+/*
+* Copyright (c) 2005 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.
+*
+*/
+
+
+
+#ifndef GSMAINVIEW_H
+#define GSMAINVIEW_H
+
+// INCLUDES
+#include    "gspluginloader.h"
+#include    "gschildviewmanager.h"
+#include    <data_caging_path_literals.hrh>
+#include    <ConeResLoader.h>
+#include    <gstabbedviewowner.h>
+#include    <aknview.h>
+#include    <eikmenup.h>
+
+// CONSTANTS
+_LIT( KGSMainViewResourceFileName, "z:GSApp.rsc" );
+
+// FORWARD DECLARATIONS
+class CGSMainContainer;
+class CGSPluginInterface;
+
+// CLASS DECLARATION
+
+/**
+* CGSMainView view class
+*
+* Main view of GS
+*
+* This view is responsible for visualizing the first level of settings
+* plugins.
+*
+*/
+class CGSMainView :
+    public CAknView,
+    public MGSPluginLoadObserver,
+    public MGSTabbedViewOwner,
+    public MGSChildViewManager
+    {
+    public: // Constructors and destructor
+
+        CGSMainView();
+
+        /**
+        * Symbian OS two-phased constructor
+        * @return GS main view.
+        */
+        static CGSMainView* NewL();
+
+        /**
+        * Symbian OS two-phased constructor
+        * @return GS main view.
+        */
+        static CGSMainView* NewLC();
+
+        /**
+        * Symbian OS default constructor.
+        */
+        void ConstructL();
+
+        /**
+        * Destructor
+        */
+        ~CGSMainView();
+
+    public: // New
+
+        /**
+        * Returns pointer to the owned plugins.
+        */
+        CArrayPtrFlat<CGSPluginInterface>* Plugins();
+
+        /**
+        * Updates plugin's view. This can be used when child plugin's values
+        * are changed.
+        */
+        void UpdateView();
+        
+        /**
+         * represent the position of ListBox
+         */
+        struct TListBoxPosition
+		    {
+		    /**
+		     * The three items are all set to -1 as an initial value because their legal
+		     * value should be no less than 0.
+		     */
+		    inline void Reset()
+		    	{
+		        iCurrentItemIndex = -1;
+		    	iItemOffsetInPixels = -1;
+		    	iTopItemIndex = -1;
+		    	}
+		    TInt iCurrentItemIndex;
+		    TInt iItemOffsetInPixels;
+		    TInt iTopItemIndex;
+		    };
+
+    public: // From CAknView
+
+        /**
+        * See base view.
+        */
+        TUid Id() const;
+
+    public: // From MGSPluginLoadObserver
+
+        /**
+        * See base view.
+        */
+        void HandlePluginLoaded( KGSPluginLoaderStatus aStatus );
+
+    public: // From MGSChildViewManager
+
+        /**
+        * See base view.
+        */
+        void TransferDynamicPluginL( CGSPluginInterface* aPlugin );
+
+    public: // From MGSTabbedViewOwner
+
+        /**
+        * See base view.
+        */
+        CArrayPtrFlat<CGSPluginInterface>* TabbedViews();
+
+        /**
+        * See base class.
+        */
+        void TabChangedL( TUid selectedTabUid );
+
+    protected: // From CAknView
+
+        /**
+        * See base view.
+        */
+        void DoActivateL(
+            const TVwsViewId& aPrevViewId,
+            TUid aCustomMessageId,
+            const TDesC8& aCustomMessage );
+
+        /**
+        * See base view.
+        */
+        void DoDeactivate();
+
+        /**
+        * See base view.
+        */
+        void HandleCommandL( TInt aCommand );
+    
+    protected: // From MEikMenuObserver
+
+        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+    private:
+
+        /**
+        * Opens the nearest localized resourcefile.
+        */
+        void OpenLocalizedResourceFileL( const TDesC& aResourceFileName );
+
+        /**
+        * Creates new container.
+        */
+        void NewContainerL();
+
+    private: // Data
+
+        // Pointer to Application UI. Not owned.
+        CAknViewAppUi* iAppUi;
+
+        // Pointer to owned container.
+        CGSMainContainer* iContainer;
+
+        // GS plug-ins owned by this view. CGSPluginLoader defines the
+        // ordering of items.
+        CArrayPtrFlat<CGSPluginInterface>* iPluginArray;
+
+        // Asynchronous loader for the GS plug-ins.
+        CGSPluginLoader* iPluginLoader;
+
+        // Resource loader.
+        RConeResourceLoader iResourceLoader;
+
+        // UID of the selected plugin in the container's lbx.
+        TUid iSelectedPluginUid;
+        
+        //keep the exact position of the listbox including current item index,
+        //ItemOffsetInPixels and  TopItemindex
+        TListBoxPosition iPosition;
+        
+        //record the screen mode, portrait/landscape
+        TBool iIsLandscapeOrientation;
+    };
+
+
+#endif  // GSMAINVIEW_H
+// End of File