diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/ccapplication/ccapp/inc/ccaappstatuspanehandler.h --- /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 + +//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__ +