diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/mmshui/inc/musuizoomindicator.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshui/inc/musuizoomindicator.h Wed Sep 01 12:31:01 2010 +0100 @@ -0,0 +1,274 @@ +/* +* 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: Class for displaying icons in viewfinder view +* +*/ + + +#ifndef CMUSUIZOOMINDICATORS_H +#define CMUSUIZOOMINDICATORS_H + +// SYSTEM +#include +#include +#include + +class MAknsSkinInstance; +class CGulIcon; +class MMusUiZoomIndicatorObserver; + +/** +* Class for displaying icons in viewfinder view +* @since 2.8 +*/ +class CMusUiZoomIndicator : public CCoeControl + { + + + public: // Constructors and destructor + + /** + * Symbian OS two-phased constructor. + * @since 2.8 + * @param aController reference to CCcorController + */ + static CMusUiZoomIndicator* NewLC( + TInt aZoomMin, + TInt aZoomMax, + MMusUiZoomIndicatorObserver* aObserver ); + + /** + * Symbian OS two-phased constructor. + * @since 2.8 + * @param aController reference to CCcorController + */ + static CMusUiZoomIndicator* NewL( + TInt aZoomMin, + TInt aZoomMax, + MMusUiZoomIndicatorObserver* aObserver ); + + /** + * Destructor. + */ + ~CMusUiZoomIndicator(); + + public: // New functions + + /** + * + * @since 3.2 + */ + void SetZoomLevel( TInt aZoomLevel ); + + /** + * + * @since 3.2 + */ + TInt GetZoomLevel(); + + /** + * + * @since 3.2 + */ + void SetZoomMin( TInt aZoomMin ); + + /** + * + * @since 3.2 + */ + void SetZoomMax( TInt aZoomMax ); + + /** + * + * @since 3.2 + */ + void SetFullRect( const TRect aRect ); + + + + private: // From CCoeConrol + + /** + * Handles the size change events. + * + */ + void SizeChanged(); + + /** + * Draws the control. + * + * @param aRect The region of the control to be redrawn. + */ + void Draw(const TRect& aRect) const; + + TInt CountComponentControls() const; + + CCoeControl* ComponentControl( TInt aIndex ) const; + + + + private: // Constructors and destructor + + /** + * C++ constructor + * @since 2.8 + * @param aController reference to CCcorController + */ + CMusUiZoomIndicator( TInt aZoomMin, + TInt aZoomMax, + MMusUiZoomIndicatorObserver* aObserver ); + + /** + * Symbian 2nd phase constructor. + * @since 2.8 + */ + void ConstructL(); + + + private: // HELPERS + + /** + * + */ + void DrawIcons( const TRect& aRect ); + + /** + * + */ + void UpdateZoomLayout(); + + void ConstructImageL( CEikImage* aImage, + MAknsSkinInstance* aSkin, + const TAknsItemID& aId, + TInt aBitmapId, + TInt aMaskId ); + + /** + * Callback for disable zoom indicator. + * @since 2.8 + * @return KErrNone + */ + static TInt DisableZoomIndicator( TAny* aThis ); + + /** + * + */ + void DisableTimer(); + + /** + * + */ + void EnableTimer(); + + + private: //data + + /** + * + */ + TRect iParentRect; + + /** + * + */ + TRect iViewfinderRect; + + /** + * + */ + TInt iZoomMin; + + /** + * + */ + TInt iZoomMax; + + /** + * + */ + TInt iZoomLevel; + + /** + * + */ + CPeriodic* iDisableZoomTimer; // owned + + /** + * + */ + TRgb iIconColor; + + /** + * + */ + CEikImage* iIconElevator; + + /** + * + */ + CEikImage* iIconMin; + + /** + * + */ + CEikImage* iIconMax; + + /** + * + */ + CEikImage* iIconBg; + + /** + * + */ + TInt iTopMargin; + + /** + * + */ + TInt iBottomMargin; + + /** + * + */ + TInt iScaleStep; + + /** + * + */ + TInt iScaleY; + + /** + * + */ + TInt iMiddle; + + /** + * NOT OWN!!! + */ + MMusUiZoomIndicatorObserver* iObserver; + + TInt iElevatorWidth; + + TInt iElevatorHeight; + + TRect iFullRect; + + + }; + + +#endif + +// End of File