diff -r 000000000000 -r 951a5db380a0 videditor/SimpleCutVideo/inc/veinavipanecontrol.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videditor/SimpleCutVideo/inc/veinavipanecontrol.h Fri Jan 29 14:08:33 2010 +0200 @@ -0,0 +1,175 @@ +/* +* Copyright (c) 2010 Ixonos Plc. +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the "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: +* Ixonos Plc +* +* Description: +* Navipane control for SVE. +* +*/ + +#ifndef C_CVEINAVIPANECONTROL_H +#define C_CVEINAVIPANECONTROL_H + +#include +#include // MCoeControlObserver +#include "mtimelabelnaviobserver.h" + +class CEikStatusPane; +class CAknNavigationDecorator; +class CAknNavigationControlContainer; +class CVeiTimeLabelNavi; +class CAknVolumeControl; +class CPeriodic; +class MVeiNaviPaneControlObserver; + +/** + * Navipane control. + * + * @code + * ?good_class_usage_example(s) + * @endcode + * + * @lib internal (VedSimpleCutVideo.exe) + * @since S60 v5.0 + */ +class CVeiNaviPaneControl : public CBase, MCoeControlObserver, + MTimeLabelNaviObserver + { + +public: + + /** + * Two-phased constructor. + * @param aStatusPane aPointer to app status pane + */ + static CVeiNaviPaneControl* NewL( CEikStatusPane* aStatusPane ); + + /** + * Destructor. + */ + ~CVeiNaviPaneControl(); + + /** + * DrawTimeNaviL + * + * @since S60 v5.0 + * @param aElapsed Elapsed time + * @param aTotal Total time + */ + void DrawTimeNaviL( TTime aElapsed, TTime aTotal ); + + /** + * SetObserver + * + * @since S60 v5.0 + * @param aObserver Navi pane control observer. + * See "mveinavipanecontrolobserver.h" + */ + void SetObserver( MVeiNaviPaneControlObserver* aObserver ) + { + ASSERT( aObserver ); + iObserver = aObserver; + }; + + /** + * SetPauseIconVisibilityL + * + * @since S60 v5.0 + * @param aVisible ETrue = visible + */ + void SetPauseIconVisibilityL( TBool aVisible ); + + /** + * SetVolumeIconVisibilityL + * + * @since S60 v5.0 + * @param aVisible ETrue = visible + */ + void SetVolumeIconVisibilityL( TBool aVisible ); + + /** + * ShowVolumeLabelL + * + * @since S60 v5.0 + * @param aVolume Volume level + */ + void ShowVolumeLabelL( TInt aVolume ); + + /** + * HandleResourceChange + * + * @since S60 v5.0 + * @param aType Type of the resource change. + */ + void HandleResourceChange( TInt aType ); + +// from base class MCoeControlObserver + void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType); + +// from base class MTimeLabelNaviObserver + void HandleNaviEventL(); + +private: + + CVeiNaviPaneControl( CEikStatusPane* aStatusPane ); + void ConstructL(); + +// Implementation + + CAknNavigationDecorator* CreateTimeLabelNaviL(); + CVeiTimeLabelNavi* GetTimeLabelControl(); + CAknVolumeControl* GetVolumeControl(); + static TInt HideVolumeCallbackL(TAny* aPtr); + void HideVolume(); + +private: // data + + /** + * Ref to StatusPane. + * Not own. + */ + CEikStatusPane* iStatusPane; + + /** + * Ref to NaviPane. + * Not own. + */ + CAknNavigationControlContainer* iNaviPane; + + /** + * Time Navi item. + * Own. + */ + CAknNavigationDecorator* iTimeNavi; + + /** + * Volume navi decorator. + * Own. + */ + CAknNavigationDecorator* iVolumeNavi; + + /** + * Volume navi decorator. + * Own. + */ + CPeriodic* iVolumeHider; + + /** + * Ref to observer. + * Not own. + */ + MVeiNaviPaneControlObserver* iObserver; + }; + + +#endif // C_CVEINAVIPANECONTROL_H