diff -r 6385c4c93049 -r 8e6fa1719340 browserui/browser/BrowserAppInc/BrowserWindowSelectionView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserui/browser/BrowserAppInc/BrowserWindowSelectionView.h Wed Sep 01 12:31:04 2010 +0100 @@ -0,0 +1,169 @@ +/* +* 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 the License "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: +* Declaration of class CBrowserWindowSelectionView. +* +* +*/ + + +#ifndef BROWSERWINDOWSELECTIONVIEW_H +#define BROWSERWINDOWSELECTIONVIEW_H + +// INCLUDES +#include +#include "BrowserAppViewBase.h" +#include "WindowInfoProvider.h" +#include "WindowObserver.h" + +// FORWARD DECLARATIONS +class CBrowserWindowSelectionContainer; + +// CLASS DECLARATION + +/** +* CBrowserWindowSelectionView view class. +* +*/ +class CBrowserWindowSelectionView : public CBrowserViewBase, + MWindowInfoProvider, + MWindowObserver + { + public: // Constructors and destructor + + /** + * Two-phased constructor. Leaves on failure. Places the instance + * on the cleanup stack. + * @param aApiProvider The API provider. + * @return The constructed view. + */ + static CBrowserWindowSelectionView* NewLC( MApiProvider& aApiProvider ); + + /** + * Constructor + */ + CBrowserWindowSelectionView( MApiProvider& aApiProvider ); + + /** + * default constructor. + */ + void ConstructL(); + + /** + * Destructor. + */ + ~CBrowserWindowSelectionView(); + + public: // Functions from base classes + + /** + * From CAknView returns Uid of View + * @return TUid uid of the view + */ + TUid Id() const; + + /** + * Return command set id, to be displayed. + * @since 1.2 + * @return The command set's resource id. + */ + virtual TInt CommandSetResourceIdL(); + + /** + * Set command set lsk,rsk,msk dynamically via pointers. + * Derived classes should implement, though it can be empty. + * If it does nothing, empty softkeys will be assigned + * @since 5.0 + */ + void CommandSetResourceDynL(TSKPair& /*lsk*/, TSKPair& /*rsk*/, TSKPair& /*msk*/) {}; + + /** + * From MEikMenuObserver delegate commands from the menu + * @param aCommand a command emitted by the menu + * @return void + */ + void HandleCommandL(TInt aCommand); + + /** + * From CAknView reaction if size change + * @return void + */ + void HandleClientRectChange(); + + /** + * Changes the tabs according to available windows, by + * recreating all tabs based on WindowManager. + */ + void UpdateTabsL(); + + /** + * + */ + void UpdateTumbnailL(); + + /** + * Updates the title of the view according to the highlighted tab. + */ + void UpdateTitleL(); + + /** + * From MWindowObserver + */ + void WindowEventHandlerL( TWindowEvent aEvent, TInt aWindowId ); + + /** + * @return Id of the window to activate. + */ + TInt GetWindowIdFromTabIndex( TInt aActiveTabIndex ); + + private: + + /** + * From CAknView activate the view + * @param aPrevViewId + * @param aCustomMessageId + * @param aCustomMessage + * @return void + */ + void DoActivateL(const TVwsViewId& aPrevViewId,TUid aCustomMessageId, + const TDesC8& aCustomMessage); + + /** + * From CAknView deactivate the view (free resources) + * @return void + */ + void DoDeactivate(); + + /** + * From MWindowInfoProvider + */ + HBufC* CreateWindowInfoLC( const CBrowserWindow& aWindow ); + + /** + * @return Pointer to the window`s title text. + */ + HBufC* GetWindowTitleFromTabIndex( TInt aActiveTabIndex ); + + private: // Data + CBrowserWindowSelectionContainer* iContainer; + CArrayFixFlat* iWindowInfo; // Array of all available windows + CArrayFixFlat* iWindowIds; // Array of window id`s + CArrayFixFlat* iTitles; // Array of window titles + TVwsViewId iLastViewId; + TBool iWindowEventsDisabled; // False if the object not handles events. + }; + +#endif + +// End of File