videditor/VideoEditorUiComponents/inc/VeiTextDisplay.h
author Mikael Laine <mikael.laine@ixonos.com>
Fri, 29 Jan 2010 14:08:33 +0200
changeset 0 951a5db380a0
permissions -rw-r--r--
Committing the Video Editor package under the Eclipse Public License

/*
* 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:  
*
*/



#ifndef VEITEXTDISPLAY_H
#define VEITEXTDISPLAY_H

#include <coecntrl.h>
#include <ConeResLoader.h>


/**
 * CVeiTextDisplay control class.
 */
class CVeiTextDisplay : public CCoeControl
    {
    public:
        /**
         * Destructor.
         */
        IMPORT_C virtual ~CVeiTextDisplay();

		/** 
		 * Static factory method.
		 * 
		 * @return  the created CVeiTextDisplay object
		 */
		IMPORT_C static CVeiTextDisplay* NewL( const TRect& aRect, const CCoeControl* aParent );

		/** 
		 * Static factory method. Leaves the created object in the cleanup
		 * stack.
		 *
		 * @return  the created CVeiCutAudioBar object
		 */
		IMPORT_C static CVeiTextDisplay* NewLC( const TRect& aRect, const CCoeControl* aParent );


	public:

		enum TVeiLayout
			{
			EOnlyName = 0x77,
			ENameAndDuration,
			EEverything,
			ECutInCutOut,
			EArrowsHorizontal,
			EArrowsVertical,
			ERecording,
			ERecordingPaused,
            EOnlyDuration
			};
			
    	/**
		 * CVeiTextDisplay components.
		 */
		 enum TTextDisplayComponent
			{
			EStartTimeText= 1,
			EEndTimeText,
			EStartTimeIcon,
			EEndTimeIcon			
			};			

		IMPORT_C void SetLandscapeScreenOrientation( TBool aLandscapeScreenOrientation );

		IMPORT_C void SetCutIn( const TTimeIntervalMicroSeconds& aCutInTime );
		
		IMPORT_C void SetCutOut( const TTimeIntervalMicroSeconds& aCutOutTime );

		IMPORT_C void SetTime( const TTime& aClipTime );

		IMPORT_C void SetLocation( const TDesC& aClipLocation );

		IMPORT_C void SetLayout( TVeiLayout aLayout );

		IMPORT_C void SetName( const TDesC& aName );

		IMPORT_C void SetDuration( const TTimeIntervalMicroSeconds& aDuration );

		/** 
		 * Control Up arrow visibility.
		 * 
		 * @param aVisible True/False
		 */
		IMPORT_C void SetUpperArrowVisibility(TBool aVisible);

		/** 
		 * Control Lower arrow visibility.
		 * 
		 * @param aVisible True/False
		 */
		IMPORT_C void SetLowerArrowVisibility(TBool aVisible);

		/** 
		 * Control Right arrow visibility.
		 * 
		 * @param aVisible True/False
		 */
		IMPORT_C void SetRightArrowVisibility(TBool aVisible);

		/** 
		 * Control Left arrow visibility.
		 * 
		 * @param aVisible True/False
		 */
		IMPORT_C void SetLeftArrowVisibility(TBool aVisible);
		
		/** 
		 * Set slow motion on status.
		 * 
		 * @param aOn True/False
		 */
		IMPORT_C void SetSlowMotionOn(TBool aOn);

		/** 
		 * slow motion on status.
		 * 
		 * @return aOn True/False
		 */
		IMPORT_C TBool SlowMotionOn() const;
		
		/** 
		 * Set value of slow motion effect.
		 * 
		 * @param aPreset
		 */
		IMPORT_C void SetSlowMotionPreset(TInt aPreset);

		/** 
		 * Slow motion effect value.
		 * 
		 * @return value 
		 */
		IMPORT_C TInt SlowMotionPreset() const;

		IMPORT_C void SetArrowSize(const TSize& aArrowSize);

		void ParseTimeToMinSec( TDes& aLayoutTime, const TTimeIntervalMicroSeconds& aDuration ) const;
		
		/** 
		 * Sets the rect of a component
		 * 
		 * @param aComponentIndex specifies the component
		 * @param aRect the rect that the component is set
		 *
		 * @return  the end mark position
		 */		
		IMPORT_C void SetComponentRect(TTextDisplayComponent aComponentIndex, TRect aRect);

    private:
        /**
         * Default constructor.
		 *
         */
        void ConstructL( const TRect& aRect, const CCoeControl* aParent );

        /**
         * C++ default constructor.
		 *
         */
		CVeiTextDisplay::CVeiTextDisplay();

       /**
        * From CCoeControl,Draw.
		*
		* @param aRect  rectangle to draw
        */
        void Draw(const TRect& aRect) const;

		static TInt UpdateBlinker( TAny* aThis );
		void DoUpdateBlinker();
		void SizeChanged();

    private:	// data
		HBufC*		iClipName;
		TTimeIntervalMicroSeconds iDuration;
		TTime		iClipTime;		
		HBufC*		iClipLocation;
		
		TTimeIntervalMicroSeconds	iCutInTime;
		TTimeIntervalMicroSeconds	iCutOutTime;

		TVeiLayout	iLayout;

		CFbsBitmap* iUpperArrow;
		CFbsBitmap* iLowerArrow;
		CFbsBitmap* iRightArrow;
		CFbsBitmap* iLeftArrow;
		CFbsBitmap* iUpperArrowMask;
		CFbsBitmap* iLowerArrowMask;
		CFbsBitmap* iRightArrowMask;
		CFbsBitmap* iLeftArrowMask;
		CFbsBitmap* iStartMarkIcon;
		CFbsBitmap* iStartMarkIconMask;
		CFbsBitmap* iEndMarkIcon;
		CFbsBitmap* iEndMarkIconMask;

		TBool		iUpperArrowVisible;
		TBool		iLowerArrowVisible;
		TBool		iRightArrowVisible;
		TBool		iLeftArrowVisible;

		TBool		iLandscapeScreenOrientation;
		TBool		iSlowMotionOn;
		TInt		iPresetValue;	
		
		CPeriodic*	iBlinkTimer;
		TBool		iBlinkFlag;

		TSize		iDynamicArrowSize;
		
		TPoint 		iUpperArrowPoint;
		TPoint 		iLowerArrowPoint;

		RConeResourceLoader 	iResLoader;

		TRect	iStartTimeIconRect;
    	TRect	iEndTimeIconRect;
       	TRect	iStartTimeTextRect;
    	TRect	iEndTimeTextRect;

    };
#endif

// End of File