diff -r aaeeca1f15af -r e8d784ac1a4b scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginContainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginContainer.h Wed Sep 01 12:30:40 2010 +0100 @@ -0,0 +1,160 @@ +/* +* 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 "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: This header defines the container for the settings list +* +*/ + + + +#ifndef C_SCREENSAVERANIMPLUGINCONTAINER_H +#define C_SCREENSAVERANIMPLUGINCONTAINER_H + +// INCLUDES +#include +#include +#include + +// CLASS DECLARATION + +/** +* CScreenSaverAnimPluginContainer container class +* +*/ +class CScreenSaverAnimPluginContainer : public CCoeControl, + public MEikListBoxObserver + { + public: // Constructors and destructor + + static CScreenSaverAnimPluginContainer* NewLC( + CScreenSaverAnimPlugin* aCaller, + const CCoeControl* aParent, + CScreenSaverAnimSettingObject* aSettingObject ); + + static CScreenSaverAnimPluginContainer* NewL( + CScreenSaverAnimPlugin* aCaller, + const CCoeControl* aParent, + CScreenSaverAnimSettingObject* aSettingObject ); + + CScreenSaverAnimPluginContainer( + CScreenSaverAnimPlugin* aCaller, + CScreenSaverAnimSettingObject* aSettingObject ); + + virtual void ConstructL( const CCoeControl* aParent, + const TRect& aRect ); + + /** + * Constructs all common parts of the container. + * @param aRect Listbox control's rect. + * @param aResTitleId Resource id for title. + * @param aResLbxId Resource id for listbox. + * @return void + */ + void BaseConstructL( const TRect& aRect, TInt aResTitleId, + TInt aResLbxId = 0 ); + + /** + * Destructor. + */ + ~CScreenSaverAnimPluginContainer(); + + public: //new + + /** + * Updates listbox's item's value. + * @param aItemId An item which is updated. + * @return void. + */ + void UpdateListBoxL( TInt aItemId ); + + void HandleListBoxSelectionL(); + + /** + * Sets feature support - see screensaveranimpluginconst.h for feature list. + * @param aFeatureBitFlags feature support bitflags. + */ + void GetFeatureSupportL( TBitFlags& aFeatureBitFlags ) const; + + /** + * Checks if feature is supported. + * @param aFeatureID feature ID. + * @return ETrue if feature is supported, EFalse otherwise. + */ + TBool IsFeatureSupported( TInt aFeatureID ); + + public: //MEikListBoxObserver + + virtual void HandleListBoxEventL( CEikListBox* aListBox, + TListBoxEvent aEventType ); + + public: //From CCoeControl + + virtual void HandleResourceChange( TInt aType ); + + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); // this processes key events + + virtual void SetContainerWindowL( const CCoeControl& aContainer ); + + // Focus change handler + void FocusChanged( TDrawNow aDrawNow ); + + protected: // New methods + + /** + * Constructs listbox. + * @param aResLbxId Resource id for listbox. + * @return void + */ + virtual void ConstructListBoxL( TInt aResLbxId ); + + private: // new + void CreateListBoxItemsL(); + void MakeAnimTimeOutItemL(); + void MakeLightsTimeOutItemL(); + void MakeFileNameItem(); + void ShowFileNameItemL(); + void ShowAnimTimeOutItemL(); + void ShowLightsTimeOutItemL(); + + private: // from CCoeControl + + void SizeChanged(); + + TInt CountComponentControls() const; + + CCoeControl* ComponentControl( TInt /*aIndex*/ ) const; + + void GetNormalScreenLayoutRect( TRect& aRect ) const; + + protected: // Data + CEikTextListBox* iListBox; + + private: // new + CDesCArrayFlat* iItems; + CDesCArray* iItemArray; + TBuf<128> iItem; + CScreenSaverAnimSettingObject* iSettingObject; + CScreenSaverAnimPlugin* iCaller; + TBool iInShowFileItem; + + /** + * Defines which features are supported. + */ + TBitFlags iFeaturesSupport; + + }; + +#endif // C_SCREENSAVERANIMPLUGINCONTAINER_H + +// End of File