phonebookui/Phonebook2/ccapplication/ccapp/inc/ccaappstatuspanehandler.h
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook2/ccapplication/ccapp/inc/ccaappstatuspanehandler.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,186 @@
+/*
+* Copyright (c) 2007 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:  Handling status pane.
+ *
+*/
+
+
+#ifndef __CCAAPPSTATUSPANEHANDLER_H__
+#define __CCAAPPSTATUSPANEHANDLER_H__
+
+//INCLUDES
+#include <e32base.h>                             
+
+//FORWARD DECLARATIONS
+class CCCAAppAppUi;
+class CAknTabGroup; 
+class CAknNavigationDecorator;
+
+//CONSTS
+const TInt KCCAppMinPluginCountForTabs = 2;
+const TInt KCCAppMinPluginCountForMaxTabs = 3;
+
+/**
+ *  CCCAppStatusPaneHandler
+ *  Class for handling status pane.
+ *
+ *  @code
+ *   
+ *  @endcode
+ *
+ *  @lib ccaapp
+ *  @since S60 v5.0
+ */
+class CCCAppStatusPaneHandler : 
+    public CBase,
+    public MAknTabObserver
+	{
+#ifdef __CCAPPUNITTESTMODE
+    friend class UT_CCAappStatusPaneHandler;
+#endif// __CCAPPUNITTESTMODE  	
+	
+public:
+	/**
+	 * Two-phased constructor.
+	 */
+    static CCCAppStatusPaneHandler* NewL( CCCAppView& aView );
+
+    /**
+     * Destructor.
+     */
+    ~CCCAppStatusPaneHandler();
+
+private:
+	/**
+	 * Constructor.
+	 */    
+    CCCAppStatusPaneHandler( CCCAppView& aView );
+    void ConstructL();
+
+private:// from MAknTabObserver
+
+    /**
+     * from MAknTabObserver
+     */
+    void TabChangedL( TInt aIndex );    
+    
+public: // Implementation
+
+	/**
+	 * Creates tabs if there are KCCAppMinPluginCountForTabs (or more) plugins
+	 *
+	 * @since S60 v5.0
+	 */
+    void CreateTabsL();
+
+	/**
+	 * Set given tab active if iTabGroup available 
+	 *
+	 * @since S60 v5.0
+	 * @param aTabIndex: Activates given tab. 
+	 */
+    void ActivateTab( TInt aTabIndex ); 
+
+    /**
+     * Set next/previous tab active if iTabGroup available 
+     *
+     * @since S60 v5.0
+     * @param aForward next/previous
+     */    
+    void ActivateTabL( TBool aForward );
+
+	/**
+	 * Returns current tab index. If no iTabGroup available
+	 * returns KErrNotFound.
+	 *
+	 * @since S60 v5.0
+	 * @return current tab index.
+	 */
+    TInt ActiveTabIndex(); 
+
+	/**
+	 * Counts tabs. If no iTabGroup available
+     * returns KErrNotFound.
+	 *
+	 * @since S60 v5.0
+	 * @return count of tab items. 
+	 */
+    TInt TabCount(); 
+    
+    /**
+     * Helper Function to identify whether a Tab has been
+     * Created or not. If there is only 1 plugin, then the tab 
+     * will not be created. If there is more than 1Plugin interested 
+     * in the CCAParam then Tabs will be created and made visible
+     * Use this function to check the availability of the tab
+     * and pass the tab related functionalities like
+     * switching between tabs
+     *
+     * @since S60 v5.0
+     * @return ETrue - If Tab Created and Visible 
+     *          EFalse - Otherwise 
+     */
+    TBool IsTabAvailable();
+    
+private: //Implementation 
+    
+    /**
+     * Helper function for adding bitmaps.
+     *
+     * @since S60 v5.0
+     * @param index of plugin 
+     */
+    void AddBitmapsL(TInt aPlugin);
+
+    /**
+     * Creates navipane
+     *
+     * @since S60 v5.0
+     */    
+    void CreateNavipaneL();
+
+    /**
+     * Adds a plugin into navipane.
+     *
+     * @since S60 v5.0
+     * @param index of plugin 
+     */
+    void AddTabL( TInt aPlugin );    
+    
+private: //Data
+
+	/**
+	 * Decorated tab-group.
+	 * Own.  
+	 */
+    CAknNavigationDecorator* iDecoratedTabGroup;
+
+	/**
+	 * Tab-group.
+	 * Not own. Ownership transferred to NavigationDecoration  
+	 */
+     CAknTabGroup* iTabGroupRef; 
+
+	/**
+	 * Reference to view -class
+	 * Not own. 
+	 */     
+     CCCAppView& iView;
+     
+     //Tab is available or not ETrue/EFalse
+     TBool iTabAvailability;
+	};
+
+#endif // __CCAAPPSTATUSPANEHANDLER_H__
+