diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/inc/CamPostCaptureContainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/inc/CamPostCaptureContainer.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,204 @@ +/* +* 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 still Post capture view +* +*/ + + + +#ifndef CAMPOSTCAPTURECONTAINER_H +#define CAMPOSTCAPTURECONTAINER_H + +// INCLUDES +#include "CamContainerBase.h" +#include "CamControllerObservers.h" + +#include "cambatterypanecontroller.h" + +// FORWARD DECLARATIONS +class CCamAppController; +class CAknView; + +// CLASS DECLARATION + +/** +* Container for still image Post capture view +*/ +class CCamPostCaptureContainer : public CCamContainerBase, + public MCamControllerObserver, + public MCamBatteryPaneObserver + { + public: + + enum TCamPostCaptureSubControls + { + ECamPostCaptureSubControlNaviPane = 1, + ECamPostCaptureActivePalette + }; + + public: // Constructors and destructor + + /** + * Symbian OS two-phased constructor + * @since 2.8 + * @param aController reference to CCamAppControllerBase instance + * @param aView reference to the view containing this container + * @param aRect Frame rectangle for container. + */ + static CCamPostCaptureContainer* NewL( CCamAppController& aController, + CAknView& aView, + const TRect& aRect ); + + /** + * Destructor. + * @since 2.8 + */ + virtual ~CCamPostCaptureContainer(); + + private: + /** + * Symbian OS 2nd phase constructor. + * @since 2.8 + * @param aRect Frame rectangle for container. + */ + void ConstructL( const TRect& aRect ); + + /** + * C++ constructor + * @since 2.8 + * @param aController reference to CCamAppControllerBase instance + * @param aView reference to the view containing this container + */ + CCamPostCaptureContainer( CCamAppController& aController, + CAknView& aView ); + + public: // Functions from base classes + /** + * 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 ); + + /** + * Will show the zoom pane for a set time + * Only implemented by pre capture containers + * @since 2.8 + */ + void ShowZoomPaneWithTimer(); + + /** + * We check for the file name whenever we call the UMP + * or Properties view and come back. + */ + void CheckForFileName( TBool aDoCheck ); + + /** + * Requests that the camera application redraws the supplied area + * @since 3.0 + * @param aArea the area to redraw + */ + virtual void Redraw(const TRect& aArea); + + /** + * From CCamContainerBase / CCoeControl + * Locally takes actions needed due to resource changes, then + * calls the implementation in CCamContainerBase + * @since 2.8 + * @param aType resource change + */ + virtual void HandleResourceChange( TInt aType ); + + /** + * Handle application level event. + * For example focus gained and lost are notified through this method. + * @param aEvent Event type + */ + virtual void HandleAppEvent( const TCamAppEvent& aEvent ); + + /** + * From MCamBatteryPaneObserver + * Called when battery pane has changed and redraw is needed + * @since 3.1 + */ + void BatteryPaneUpdated(); + + /** + * From CoeControl + * @param aPointerEvent the pointer event to handle + */ + void HandlePointerEventL(const TPointerEvent& aPointerEvent); + + protected: // Functions from base classes + /** + * From CoeControl + * @since 2.8 + * @return number of contained controls + */ + TInt CountComponentControls() const; + + /** + * From CoeControl + * @since 2.8 + * @return number of contained controls + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * From CCoeControl + * @since 2.8 + * @param aRect area where to draw + */ + void Draw( const TRect& aRect ) const; + + + /** + * From MCamControllerObserver + * @since 2.8 + * @param aEvent The enumerated code for the event received + * @param aError The error code associated with the event + */ + void HandleControllerEventL( TCamControllerEvent aEvent, + TInt aError ); + + private: // Data + // The full screen dimensions + TSize iScreenSize; + + CCamBatteryPaneController* iBatteryPaneController; + TBool iCheckForFileNameChange; + + TBool iUpdatingBatteryPane; //Needed for drawing black background behind battery pane in Video mode + + // Play icon bitmaps + CFbsBitmap* iPlayIcon; + CFbsBitmap* iPlayIconMask; + + CFbsBitmap* iPlayIconBg; + CFbsBitmap* iPlayIconBgMask; + + CFbsBitmap* iPlayIconBgPressed; + CFbsBitmap* iPlayIconBgPressedMask; + + //Bools to control play button feedback + TBool iPlayIconPressed; + TBool iDraggedInAlready; + }; + +#endif + +// End of File