diff -r 8b2d6d0384b0 -r d9aefe59d544 camerauis/cameraapp/generic/inc/CamSceneSettingContainer.h --- a/camerauis/cameraapp/generic/inc/CamSceneSettingContainer.h Tue Feb 02 00:01:39 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,476 +0,0 @@ -/* -* 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: Container for scene setting view -* -*/ - - - -#ifndef CAMSCENESETTINGCONTAINER_H -#define CAMSCENESETTINGCONTAINER_H - -// INCLUDES -#include "CamContainerBase.h" -#include "CamAppController.h" -#include "CamSettings.hrh" -#include - -// DATA TYPES -// Container class holding data for animated scene icons -class TCamAnimationData - { -public: - /** - * Set up animation data for scene setting icon - * @since 2.8 - * @param aRect The initial highlighted rect - */ - void Initialise( const TRect& aRect ); - - // the current highlighted rect to fade in - TRect iCurrentRect; - // old rect to rub out - TRect iCurrentRectOld; - // the previous rect to fade out - TRect iPreviousRect; - // old rect to rub out - TRect iPreviousRectOld; - // the icon rect to fade out - TRect iIconRectFadeOut; - // old rect to rub out - TRect iIconRectFadeOutOld; - // the icon rect to fade in - TRect iIconRectFadeIn; - // old rect to rub out - TRect iIconRectFadeInOld; - // the title rect to fade out - TRect iTitleFadeOut; - // old rect to rub out - TRect iTitleFadeOutOld; - // the title rect to fade in - TRect iTitleFadeIn; - // old rect to rub out - TRect iTitleFadeInOld; - // the pen color to use fading out - TRgb iPenFadeOut; - // the pen color to use fading in - TRgb iPenFadeIn; - // icon to fade out - const CFbsBitmap* iIconFadeOut; - // icon to fade in - const CFbsBitmap* iIconFadeIn; - // moving down the list - TBool iMovingDown; - // amount of pixels to animate the fade in/out - TBool iDeltaY; - // amount of pixels to scroll the list by - TBool iScrollingY; - // current step in the animation - TInt iStep; - // amount to add to the left margin when fading icons in/out - TReal iIconLeftInc; - // left margin offset for drawing the icon when fading in/out - TReal iIconLeftOffset; - // off screen bitmap to assist with the scrolling of the list - CFbsBitmap* iOffScreenBitmap; - // is the list in scrolling mode - TBool iScrolling; - // the position of the off screen bitmap - TPoint iOffScreenPos; - }; - -// the size of the icons used during fading -enum TCamIconSize - { - ECamIconSizeLarge, - ECamIconSizeSmall, - ECamIconSizeOne, - ECamIconSizeTwo, - ECamIconSizeThree, - ECamIconSizeFour, - ECamIconSizeFive, - ECamIconSizeSix - }; - -// FORWARD DECLARATIONS -class CAknView; - -// CLASS DECLARATION - -class CCamSceneSettingItem : public CBase - { - public: - - /** - * Symbian OS two-phased constructor - * @since 2.8 - * @param aSceneId Id of scene to create - * @param aLargeBmpSize the size of the largest icon to use - * @param aSmallBmpSize the size of the smallest icon to use - */ - static CCamSceneSettingItem* NewL( TCamSceneId aSceneId, - const TSize& aLargeBmpSize, - const TSize& aSmallBmpSize ); - - /** - * Destructor. - * @since 2.8 - */ - virtual ~CCamSceneSettingItem(); - - /** - * Returns the scene id - * @return the scene id for this item - * @since 2.8 - */ - TCamSceneId SceneId() const; - - /** - * returns the bitmap for the given size - * @param aSize The bitmap size to return - * @return The bitmap for the size given - * @since 2.8 - */ - const CFbsBitmap* Icon( TCamIconSize aSize ) const; - - /** - * returns the item title - * @return the item title - * @since 2.8 - */ - const HBufC* Title() const; - - /** - * returns the item description - * @return the item description - * @since 2.8 - */ - const HBufC* Description() const; - - - private: - - /** - * Symbian OS 2nd phase constructor. - * @param aLargeBmpSize the size of the largest icon to use - * @param aSmallBmpSize the size of the smallest icon to use - * @since 2.8 - */ - void ConstructL( const TSize& aLargeBmpSize, - const TSize& aSmallBmpSize ); - - /** - * C++ constructor - * @param aSceneId Id of scene to create - * @since 2.8 - */ - CCamSceneSettingItem( TCamSceneId aSceneId ); - - private: - // the bitmap for non-highlighted items - CFbsBitmap* iBitmapSmall; - // bitmap 1 in the fade in/out animation - CFbsBitmap* iBitmap1; - // bitmap 2 in the fade in/out animation - CFbsBitmap* iBitmap2; - // bitmap 3 in the fade in/out animation - CFbsBitmap* iBitmap3; - // bitmap 4 in the fade in/out animation - CFbsBitmap* iBitmap4; - // bitmap 5 in the fade in/out animation - CFbsBitmap* iBitmap5; - // bitmap 6 in the fade in/out animation - CFbsBitmap* iBitmap6; - // the bitmap to use for highlighted items - CFbsBitmap* iBitmapLarge; - // the title of the item - HBufC* iTitle; - // the description of the icon - HBufC* iDescription; - // the scene id of the item - TCamSceneId iSceneId; - - }; - - -/** -* Container for still image Post capture view -*/ -class CCamSceneSettingContainer : public CCamContainerBase, - public MEikScrollBarObserver - { - public: // Constructors and destructor - - /** - * Symbian OS two-phased constructor - * @since 2.8 - * @param aRect Frame rectangle for container. - * @param aView Reference to the view containing this container - * @param aMode Current capture mode - * @param aController reference to CCamAppControllerBase instance - * @param aUserBaseScenes Specifies whether this list should - * display the base scenes for the user scene. - */ - static CCamSceneSettingContainer* NewL( const TRect& aRect, - CAknView& aView, - TCamCameraMode aMode, - CCamAppController& aController, - TBool aUserBaseScenes = EFalse ); - - /** - * Destructor. - * @since 2.8 - */ - virtual ~CCamSceneSettingContainer(); - - private: - /** - * Symbian OS 2nd phase constructor. - * @since 2.8 - * @param aRect Frame rectangle for container. - */ - void ConstructL( const TRect& aRect ); - - /** - * Reads the layout info from the resource - * @since 2.8 - * @param aResourceId The resource containing the layout info - * @param aArray The array to add the layout info to. - */ - void ReadLayoutL( TInt aResourceId, RArray& aArray ) const; - void ReadLayoutL( TInt aResourceId, RArray& aArray ) const; - - /** - * C++ constructor - * @since 2.8 - * @param aMode Current capture mode - * @param aController reference to CCamAppControllerBase instance - * @param aView Reference to the view containing this container - * @param aUserBaseScenes Specifies whether this list should - * display the base scenes for the user scene. - */ - CCamSceneSettingContainer( TCamCameraMode aMode, - CCamAppController& aController, - CAknView& aView, - TBool aUserBaseScenes ); - - public: // New functions - /** - * Is the user scene currently selected - * @since 2.8 - * @return ETrue if user scene highlighted - */ - TBool UserSceneHighlighted(); - - /** - * Saves the selected scene in dynamic settings - * @since 2.8 - * @return ETrue if the scene setting was changed successfully. - */ - TBool SaveSceneSettingL(); - - protected: // Functions from base classes - /** - * From CoeControl - * @since 2.8 - * @return number of contained controls - */ - TInt CountComponentControls() const; - - /** - * From CCoeControl - * @since 2.8 - * @param aIndex The index of the required control - * @return Returns the requested control - */ - CCoeControl* ComponentControl( TInt aIndex ) const; - - /** - * From CCoeControl - * @since 2.8 - * @param aRect area where to draw - */ - void Draw( const TRect& aRect ) const; - - /** - * From CamContainerBase - * @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 MEikScrollBarObserver - * Called when a new thumbnail has been generated - * @since 2.8 - * @param aScrollBar - * @param aEventType - */ - void HandleScrollEventL( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType ); - - private: - - /** - * Sets up the scroll bar, used on start up and when items are deleted - * to update the state - * @since 2.8 - */ - void SetupScrollbarL(); - - /** - * Populates iSettingItemArray with scenes - * and scene bitmaps from the MBM file - * @param aResourceId resource id for scene array. - * @since 2.8 - */ - void CreateSceneArrayL( TInt aResourceId ); - - /** - * Sets the current position of the scene array to the element - * associated with a particular scene id. - * @param aSceneId the id of the scene. - * @since 2.8 - */ - void SetCurrentPositionToScene( TCamSceneId aSceneId ); - - /** - * Called to start the amination - * @since 2.8 - */ - void StartAnimation(); - - /** - * Called when the animation timer expires - * @since 2.8 - * @param aPtr pointer to the object that called the timer - * @return Error code - */ - static TInt TimerExpired( TAny* aPtr ); - - /** - * Animates the list - * @since 2.8 - */ - void Animate(); - - /** - * Updates the highlight on each call of Animate - * @since 2.8 - * @returns ETrue if the highlight has finished updating - */ - TBool UpdateHighlight(); - - /** - * Updates the pen/icons on each call of Animate - * @since 2.8 - */ - void UpdateAnimationData(); - - /** - * Draws the text on each call of Animate - * @since 2.8 - * @param aText The text to draw - * @param aFont The font to use for drawing - * @param aBaseline The baseline of the text - * @param aFadeOut Whether text is fading in/out - */ - void DrawText( const TDesC& aText, const CAknLayoutFont* aFont, - TInt aBaseline, TBool aFadeOut ) const; - - /** - * Draws the icons on each call of Animate - * @since 2.8 - * @param aFadeOut whether the icon to draw is fading in/out - */ - void DrawIcon( TBool aFadeOut ); - - /** - * Draws the highlight on each call of Animate - * @since 2.8 - */ - void DrawHighlight() const; - - /** - * Draws the list onto an off screen bitmap for - * scrolling purposes - * @since 2.8 - */ - void DrawListL(); - - /** - * Animates the list when scrolling occurs - * @since 2.8 - * @return ETrue if the scrolling has completed - */ - TBool ScrollList(); - - /** - * Moves the highlight position ready for animating - * @since 2.8 - */ - void MoveHighlight(); - - private: // data - - // Array containing all pointers to all scene items - RPointerArray iSettingItemArray; - // Arrays to store the layout data for the list - // large icon positions - RArray iHighlightIcons; - // default icon positions - RArray iNormalIcons; - // displaced icon positions - RArray iDisplacedIcons; - // highlight positions - RArray iHighlightArray; - // highlighted title positions - RArray iHighlightTitles; - // highlighted decsription positions - RArray iHighlightDescriptions; - // default title positions - RArray iNormalTitles; - // displaced title positions - RArray iDisplacedTitles; - // current highlight position - TInt iCurrentArrayPosition; - // previous highlight position - TInt iPreviousArrayPosition; - // position in array of item at the top of screen - TInt iTopDisplayPosition; - // number of icons to display on screen at any time - TInt iNumberOfIconsToDisplay; - // the capture mode - TCamCameraMode iMode; - // Specifies whether or not the scene list is for - // the user base scenes - TBool iUserBaseScenes; - // An animation timer object - CPeriodic* iAnimTimer; - // Animation Data - TCamAnimationData iAnimData; - // the scrollbar frame - CEikScrollBarFrame* iScrollFrame; - // the model to use for the scrollbar - TAknDoubleSpanScrollBarModel ivModel; - // the position of the scrollbar - TAknLayoutRect iScrollLayout; - - }; - -#endif // CAMSCENESETTINGCONTAINER_H - -// End of File