--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/browserui/browser/BrowserAppInc/BrowserWindowSelectionView.h Mon Mar 30 12:49:49 2009 +0300
@@ -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