camerauis/cameraapp/generic/inc/CamSceneSettingContainer.h
changeset 19 d9aefe59d544
parent 3 8b2d6d0384b0
child 21 fa6d9f75d6a6
child 28 3075d9b614e6
--- 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 <aknutils.h>
-
-// 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<TAknLayoutRect>& aArray ) const;
-        void ReadLayoutL( TInt aResourceId, RArray<TAknLayoutText>& 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<CCamSceneSettingItem> iSettingItemArray;
-        // Arrays to store the layout data for the list
-        // large icon positions
-        RArray<TAknLayoutRect> iHighlightIcons;
-        // default icon positions
-        RArray<TAknLayoutRect> iNormalIcons;
-        // displaced icon positions
-        RArray<TAknLayoutRect> iDisplacedIcons;
-        // highlight positions
-        RArray<TAknLayoutRect> iHighlightArray;
-        // highlighted title positions
-        RArray<TAknLayoutText> iHighlightTitles;
-        // highlighted decsription positions
-        RArray<TAknLayoutText> iHighlightDescriptions;
-        // default title positions
-        RArray<TAknLayoutText> iNormalTitles;
-        // displaced title positions
-        RArray<TAknLayoutText> 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