diff -r 8ee96d21d9bf -r 7e0eff37aedb gsprofilesrv_plat/settings_framework_api/inc/GSMainView.h --- /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 +#include +#include +#include +#include + +// 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* 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* 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* 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