diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/mmshui/inc/musuilevelindicator.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshui/inc/musuilevelindicator.h Wed Sep 01 12:31:01 2010 +0100 @@ -0,0 +1,205 @@ +/* +* 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 MUSUILEVELINDICATOR_H +#define MUSUILEVELINDICATOR_H + +#include "musuidefinitions.h" +#include "musuiactivetimerobserver.h" + +// SYSTEM +#include +#include +#include + +class MAknsSkinInstance; +class CGulIcon; +class MMusUiLevelIndicatorObserver; +class CAknSlider; + +/** +* Class for displaying icons in viewfinder view +*/ +class CMusUiLevelIndicator : public CCoeControl, + public MCoeControlObserver, + public MMusUiActiveTimerObserver + { + + + public: // Constructors and destructor + + /** + * Symbian OS two-phased constructor. + * @param aController reference to CCcorController + */ + static CMusUiLevelIndicator* NewL( + TAknOrientation aLayout, + TInt aMinLevel, + TInt aMaxLevel, + CCoeControl* aParent, + const TRect& aRect, + MMusUiLevelIndicatorObserver* aObserver ); + + /** + * Symbian OS two-phased constructor. + * @param aController reference to CCcorController + */ + static CMusUiLevelIndicator* NewLC( + TAknOrientation aLayout, + TInt aMinLevel, + TInt aMaxLevel, + CCoeControl* aParent, + const TRect& aRect, + MMusUiLevelIndicatorObserver* aObserver ); + + /** + * Destructor. + */ + ~CMusUiLevelIndicator(); + + + public: // New functions + + /** + * + */ + void SetLevelL( TMusUiIndicatorType aType, + TInt aLevel, + TBool aUseTimer ); + + /** + * + */ + TInt GetLevel(TMusUiIndicatorType aType); + + /** + * + */ + void SetRange( TInt aMinLevel, TInt aMaxLevel, TBool aUseTimer); + + /** + * + */ + void SetIndicatorType( TMusUiIndicatorType aType ); + + /** + * + */ + TMusUiIndicatorType GetIndicatorType(); + + + private: // From CCoeControl + + /** + * Handles the size change events. + * + */ + virtual void SizeChanged(); + + virtual void Draw(const TRect& aRect) const; + + virtual TInt CountComponentControls() const; + + virtual CCoeControl* ComponentControl( TInt aIndex ) const; + + virtual void HandleResourceChange( TInt aType ); + + + private: // From CCoeControlObserver + + virtual void HandleControlEventL( CCoeControl* aControl, + TCoeEvent aEventType ); + + + private: // From MMusUiActiveTimerObserver + + virtual void TimerComplete( CMusUiActiveTimer* aTimer ); + + + private: // Constructors and destructor + + /** + * C++ constructor + */ + CMusUiLevelIndicator( TInt aMinLevel, + TInt aMaxLevel, + MMusUiLevelIndicatorObserver* aObserver ); + + /** + * Symbian 2nd phase constructor. + */ + void ConstructL( TAknOrientation aLayout, + CCoeControl* aParent, + const TRect& aRect ); + + + private: // HELPERS + + void ConstructImageL( CEikImage* aImage, + MAknsSkinInstance* aSkin, + const TAknsItemID& aId, + TInt aBitmapId, + TInt aMaskId, + TParse aParse ); + + /** + * Callback for disable level indicator. + * @since 2.8 + * @return KErrNone + */ + //static TInt DisableLevelIndicator( TAny* aThis ); + //void DisableTimer(); + //void EnableTimer(); + + + private: //data + + + TRect iParentRect; + + TRect iViewfinderRect; + + TInt iMinLevel; + + TInt iMaxLevel; + + TInt iZoomLevel; + + TInt iBrightnessLevel; + + TInt iDurationLevel; + + CMusUiActiveTimer* iDisableLevelTimer; + + TMusUiIndicatorType iIndicatorType; + + CAknSlider* iSlider; + + CMusUiActiveTimer* iSliderEventTimer; + + /** + * NOT OWN!!! + */ + MMusUiLevelIndicatorObserver* iObserver; + + }; + + +#endif + +// End of File