scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginContainer.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginContainer.h Thu Dec 17 08:46:04 2009 +0200
@@ -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 <coeccntx.h>
+#include <eikclb.h>
+#include <eiklbo.h>
+
+// 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