diff -r 5456b4e8b3a8 -r 3321d3e205b6 idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlListBox.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlListBox.h Tue Sep 14 20:58:58 2010 +0300 @@ -0,0 +1,206 @@ +/* +* Copyright (c) 2010 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: Content Control example +* +*/ + + +#ifndef __HSCONTENTCONTROLLISTBOX_H__ +#define __HSCONTENTCONTROLLISTBOX_H__ + +// Includes +#include +#include +#include +#include + +// Forward declarations +class MEikCommandObserver; +class CAknSingleStyleTreeList; +class CAknsBasicBackgroundControlContext; +class CAknNavigationDecorator; +class CAknTabGroup; +class CAknStylusPopUpMenu; +class CHsCcApiClient; +class CHsContentInfoArray; + +/** + * Container class for HsContentControlListBox + * + * @class CHsContentControlListBox HsContentControlListBox.h + */ +class CHsContentControlListBox : public CCoeControl, + public MAknTreeListObserver, + public MAknTabObserver, + public MEikMenuObserver, + public MHsContentControl + { +public: + // constructors and destructor + + /** + * Two-phased constructor. + */ + static CHsContentControlListBox* NewL( + const TRect& aRect, + const CCoeControl* aParent, + MEikCommandObserver* aCommandObserver ); + + /** + * Two-phased constructor. + */ + static CHsContentControlListBox* NewLC( + const TRect& aRect, + const CCoeControl* aParent, + MEikCommandObserver* aCommandObserver ); + + /** + * Destructor + */ + ~CHsContentControlListBox(); + +public: + // from CCoeControl + + /** + * @see CCoeControl + */ + TInt CountComponentControls() const; + + /** + * @see CCoeControl + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * @see CCoeControl + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + /** + * @see CCoeControl + */ + void HandleResourceChange( TInt aType ); + + /** + * @see CCoeControl + */ + void SizeChanged(); + + /** + * @see CCoeControl + */ + TTypeUid::Ptr MopSupplyObject( TTypeUid aId ); + +private: + // from MAknTreeListObserver + + /** + * @see MAknTreeListObserver + */ + TInt HandleTreeListEvent( + CAknTreeList& aList, + TAknTreeItemID aItem, + TEvent aEvent ); + +private: + // From MEikMenuObserver + + /** + * @see MEikMenuObserver + */ + void ProcessCommandL( TInt aCommandId ); + + /** + * @see MEikMenuObserver + */ + void SetEmphasis( CCoeControl* aMenuControl, TBool aEmphasis ); + +private: + // from MAknTabObserver + + /** + * @see MAknTabObserver + */ + void TabChangedL( TInt aIndex ); + +private: + // from MHsContentControl + + /** + * @see MHsContentControl + */ + void NotifyWidgetListChanged(); + + /** + * @see MHsContentControl + */ + void NotifyViewListChanged(); + + /** + * @see MHsContentControl + */ + void NotifyAppListChanged(); + +private: + // new functions + + void InitializeControlsL(); + void LayoutControls(); + void PopulateListL(); + + static TInt PopulateList( TAny* aAny ); + +private: + // constructors + + /** + * C++ default constructor + */ + CHsContentControlListBox(); + + /** + * 2nd phase constructor + */ + void ConstructL( + const TRect& aRect, + const CCoeControl* aParent, + MEikCommandObserver* aCommandObserver ); + +private: + // data + + /** Homescreen content control client, owned */ + CHsCcApiClient* iHsCcApiClient; + /** Callback, owned */ + CAsyncCallBack* iCallback; + /** Popup menu, owned */ + CAknStylusPopUpMenu* iPopup; + /** List box, owned */ + CAknSingleStyleTreeList* iListBox; + /** Bg context, owned */ + CAknsBasicBackgroundControlContext* iBgContext; + /** Content info array, owned */ + CHsContentInfoArray* iArray; + /** Navigation decorator, owned */ + CAknNavigationDecorator* iDecorator; + /** Tab group, not owned */ + CAknTabGroup* iTabGroup; + /** Selected tree item */ + TAknTreeItemID iSelectedItem; + /** Active tab index */ + TInt iTabIndex; + }; + +#endif // __HSCONTENTCONTROLLISTBOX_H__