browserui/browser/BrowserAppInc/BrowserWindowSelectionView.h
branchRCL_3
changeset 48 8e6fa1719340
parent 0 84ad3b177aa3
--- /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 <aknview.h>
+#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<CWindowInfo*>* iWindowInfo; // Array of all available windows
+        CArrayFixFlat<TInt>* iWindowIds; // Array of window id`s
+        CArrayFixFlat<HBufC*>* iTitles; // Array of window titles
+        TVwsViewId iLastViewId; 
+        TBool iWindowEventsDisabled; // False if the object not handles events.
+    };
+
+#endif
+
+// End of File