diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/inc/CamUserSceneSetupContainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/inc/CamUserSceneSetupContainer.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,214 @@ +/* +* 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: Implements container for the user scene setup list.* +*/ + + +#ifndef CAMUSERSCENESETUPCONTAINER_H +#define CAMUSERSCENESETUPCONTAINER_H + +// INCLUDES +#include "CamContainerBase.h" +#include +#include + +// FORWARD DECLARATIONS +class CAknSettingStyleListBox; +class CCamUserSceneSetupItemArray; +class CEikFormattedCellListBox; + +// CLASS DECLARATION + +/** +* CCamUserSceneSetupContainer container control class. +* +*/ +class CCamUserSceneSetupContainer : public CCamContainerBase, + public MEikListBoxObserver + //, public MCoeControlObserver + { + /* enum TVfState moved to CCamContainerBase. + */ + + // ======================================================= + // Constructors and destructor + public: + + /** + * Symbian two-phased constructor. + * @param aRect reference to the rectangular area for the container. + * @param aSettingsModel reference to the settings model. + * @return pointer to the created CCamUserSceneSetupContainer object. + * @since 2.8 + */ + static CCamUserSceneSetupContainer* NewLC( const TRect& aRect, + TInt aResourceId, + CCamAppController& aController, + CAknView& aView ); + /** + * Symbian two-phased constructor. + * @param aRect reference to the rectangular area for the container. + * @param aSettingsModel reference to the settings model. + * @return pointer to the created CCamUserSceneSetupContainer object. + * @since 2.8 + */ + static CCamUserSceneSetupContainer* NewL( const TRect& aRect, + TInt aResourceId, + CCamAppController& aController, + CAknView& aView ); + + /** + * Destructor. + * @since 2.8 + */ + virtual ~CCamUserSceneSetupContainer(); + + // ------------------------------------------------------- + // From CCoeControl + private: + + /** + * @since 2.8 + */ + TInt CountComponentControls() const; + + /** + * @since 2.8 + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * @since 2.8 + * @param aKeyEvent the key event + * @param aType the type of the event + * @return TKeyResponse key event was used by this control or not + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + // ------------------------------------------------------- + // From MEikListBoxObserver + public: + + /** + * Handles a list box event. + * @param aListBox a reference to the list box. + * @param aEventType the type of event. + * @since 2.8 + */ + void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType ); + + /** + * Handles the user selection of a list item. + * @since 2.8 + */ + void HandleSelectionL(); + + // ------------------------------------------------------- + // New functions + public: + + /** + * Handles a change in the item list visibility. + * @since 2.8 + */ + void UpdateDisplayL(); + + /** + * Returns the resource Id of the title for this container. + * @return the resource Id + * @since 2.8 + */ + TInt TitlePaneTextResourceId(); + + /** + * Updates the list items with the settings model values. + * @since 2.8 + */ + void UpdateListItems(); + + /** + * Updates the current list item with it's associated + * settings model value. + * @since 2.8 + */ + void UpdateCurrentListItem(); + + /** + * Returns wheather user scene restore is highlighted + */ + TBool IsUserSceneResetHighlighted(); + + private: + + /** + * Updates a list item with its corresponding settings model value. + * @param aIndex the index of the list item. + * @since 2.8 + */ + void UpdateListItem( TInt aIndex ); + + /** + * Returns the command id for activating the UI control that is + * associated with the currently selected list item. + * @return the command id. + * @since 2.8 + */ + TInt CommandIdForActivatingCurrentItemControl(); + + /** + * Returns a pointer to the list box. + * @return the list box pointer. + * @since 2.8 + */ + CEikFormattedCellListBox* ListBox(); + + // ------------------------------------------------------- + // Constructors + private: + + /** + * C++ Constructor + * @param aController a reference to the controller. + * @param aView a reference to the view that contains this container. + * @since 2.8 + */ + CCamUserSceneSetupContainer( CCamAppController& aController, CAknView& aView ); + + /** + * 2nd phase constructor. + * @since 2.8 + * @param aRect reference to the rectangular area for the container. + * @param aSettingsModel reference to the settings model. + */ + void ConstructL( const TRect& aRect, TInt aResourceId ); + + // ======================================================= + // Data + private: + + // User scene setup list owned by this container. + CAknSettingStyleListBox* iUserSceneSetupList; + + // Array of user scene setup list items owned by this container. + CCamUserSceneSetupItemArray* iUserSceneSetupItemArray; + + // The resource if for the title of the scene setup list. + TInt iTitleResourceId; + + // ======================================================= + }; + +#endif + +// End of File