diff -r 951a5db380a0 -r d87d32eab1a9 videditor/VideoEditorUiComponents/src/VeiCutterBar.cpp --- a/videditor/VideoEditorUiComponents/src/VeiCutterBar.cpp Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,886 +0,0 @@ -/* -* 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: -* -*/ - - -// INCLUDE FILES - -// System includes -#include -#include -#include -#include -#include -#include -#include -#include - - -// User includes -#include "VeiCutterBar.h" -#include "VideoEditorUtils.h" - - -EXPORT_C CVeiCutterBar* CVeiCutterBar::NewL( const CCoeControl* aParent, TBool aDrawBorder ) - { - CVeiCutterBar* self = CVeiCutterBar::NewLC( aParent, aDrawBorder ); - CleanupStack::Pop(self); - return self; - } - -EXPORT_C CVeiCutterBar* CVeiCutterBar::NewLC( const CCoeControl* aParent, TBool aDrawBorder ) - { - CVeiCutterBar* self = new (ELeave) CVeiCutterBar; - CleanupStack::PushL( self ); - self->ConstructL( aParent, aDrawBorder ); - return self; - } - -void CVeiCutterBar::ConstructL( const CCoeControl* aParent, TBool aDrawBorder ) - { - SetContainerWindowL( *aParent ); - - TFileName mbmPath( VideoEditorUtils::IconFileNameAndPath(KVideoEditorUiComponentsIconFileId) ); - - if( !AknLayoutUtils::PenEnabled() ) - { - AknIconUtils::CreateIconL( iScissorsIcon, iScissorsIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded_scissors, - EMbmVideoeditoruicomponentsQgn_indi_vded_scissors_mask ); - - // left end of the slider when that part is unselected - AknIconUtils::CreateIconL( iSliderLeftEndIcon, iSliderLeftEndIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_end_left, - EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_end_left_mask ); - - // middle part of the slider when that part is unselected - // should be qgn_graf_nslider_vded_middle but that icon is currently incorrect - AknIconUtils::CreateIconL( iSliderMiddleIcon, iSliderMiddleIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_end_middle, - EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_end_middle_mask ); - - // right end of the slider when that part is unselected - AknIconUtils::CreateIconL( iSliderRightEndIcon, iSliderRightEndIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_end_right, - EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_end_right_mask ); - - // left end of the cut selection slider - AknIconUtils::CreateIconL( iSliderSelectedLeftEndIcon, iSliderSelectedLeftEndIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_end_left_selected, - EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_end_left_selected_mask ); - - // middle part of the cut selection slider - AknIconUtils::CreateIconL( iSliderSelectedMiddleIcon, iSliderSelectedMiddleIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_middle_selected, - EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_middle_selected_mask ); - - // right end of the cut selection slider - AknIconUtils::CreateIconL( iSliderSelectedRightEndIcon, iSliderSelectedRightEndIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_end_right_selected, - EMbmVideoeditoruicomponentsQgn_graf_nslider_vded_end_right_selected_mask ); - - // playhead - AknIconUtils::CreateIconL( iPlayheadIcon, iPlayheadIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded_playhead, - EMbmVideoeditoruicomponentsQgn_indi_vded_playhead_mask ); - - // left/right border of cut selection slider - AknIconUtils::CreateIconL( iCutAreaBorderIcon, iCutAreaBorderIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded_timeline_selected, - EMbmVideoeditoruicomponentsQgn_indi_vded_timeline_selected_mask ); - } - else - { - // left end of the slider when that part is unselected - AknIconUtils::CreateIconL( iSliderLeftEndIcon, iSliderLeftEndIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_graf_nslider_vded2_end_left, - EMbmVideoeditoruicomponentsQgn_graf_nslider_vded2_end_left_mask ); - - // middle part of the slider when that part is unselected - // should be qgn_graf_nslider_vded_middle but that icon is currently incorrect - AknIconUtils::CreateIconL( iSliderMiddleIcon, iSliderMiddleIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_graf_nslider_vded2_middle, - EMbmVideoeditoruicomponentsQgn_graf_nslider_vded2_middle_mask ); - - // right end of the slider when that part is unselected - AknIconUtils::CreateIconL( iSliderRightEndIcon, iSliderRightEndIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_graf_nslider_vded2_end_right, - EMbmVideoeditoruicomponentsQgn_graf_nslider_vded2_end_right_mask ); - - // middle part of the cut selection slider - AknIconUtils::CreateIconL( iSliderSelectedMiddleIcon, iSliderSelectedMiddleIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_graf_nslider_vded2_middle_selected, - EMbmVideoeditoruicomponentsQgn_graf_nslider_vded2_middle_selected_mask ); - - // playhead - AknIconUtils::CreateIconL( iPlayheadIcon, iPlayheadIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded2_playhead, - EMbmVideoeditoruicomponentsQgn_indi_vded2_playhead_mask ); - - // pressed playhead - AknIconUtils::CreateIconL( iPlayheadIconPressed, iPlayheadIconPressedMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded2_playhead_pressed, - EMbmVideoeditoruicomponentsQgn_indi_vded2_playhead_pressed_mask ); - - // Start mark - AknIconUtils::CreateIconL( iStartMarkIcon, iStartMarkIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded2_start, - EMbmVideoeditoruicomponentsQgn_indi_vded2_start_mask ); - - // Pressed Start mark - AknIconUtils::CreateIconL( iStartMarkIconPressed, iStartMarkIconPressedMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded2_start_pressed, - EMbmVideoeditoruicomponentsQgn_indi_vded2_start_pressed_mask ); - - // End Mark - AknIconUtils::CreateIconL( iEndMarkIcon, iEndMarkIconMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded2_end, - EMbmVideoeditoruicomponentsQgn_indi_vded2_end_mask ); - - // Pressed End Mark - AknIconUtils::CreateIconL( iEndMarkIconPressed, iEndMarkIconPressedMask, - mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded2_end_pressed, - EMbmVideoeditoruicomponentsQgn_indi_vded2_end_pressed_mask ); - } - - iDrawBorder = aDrawBorder; - iInPoint = 0; - iCurrentPoint = 0; - iTotalDuration = 1; - iDimmed = EFalse; - iDrawPlayHead = ETrue; - iOutPoint = 13; - iFinished = ETrue; - } - -EXPORT_C CVeiCutterBar::~CVeiCutterBar() - { - if (iScissorsIcon) - { - delete iScissorsIcon; - delete iScissorsIconMask; - } - - delete iSliderLeftEndIcon; - delete iSliderLeftEndIconMask; - delete iSliderMiddleIcon; - delete iSliderMiddleIconMask; - delete iSliderRightEndIcon; - delete iSliderRightEndIconMask; - - if (iSliderSelectedLeftEndIcon) - { - delete iSliderSelectedLeftEndIcon; - delete iSliderSelectedLeftEndIconMask; - } - - delete iSliderSelectedMiddleIcon; - delete iSliderSelectedMiddleIconMask; - - if (iSliderSelectedRightEndIcon) - { - delete iSliderSelectedRightEndIcon; - delete iSliderSelectedRightEndIconMask; - } - - delete iPlayheadIcon; - delete iPlayheadIconMask; - - if (iPlayheadIconPressed) - { - delete iPlayheadIconPressed; - delete iPlayheadIconPressedMask; - } - if (iStartMarkIcon) - { - delete iStartMarkIcon; - delete iStartMarkIconMask; - } - if (iStartMarkIconPressed) - { - delete iStartMarkIconPressed; - delete iStartMarkIconPressedMask; - } - if (iEndMarkIcon) - { - delete iEndMarkIcon; - delete iEndMarkIconMask; - } - if (iEndMarkIconPressed) - { - delete iEndMarkIconPressed; - delete iEndMarkIconPressedMask; - } - if (iCutAreaBorderIcon) - { - delete iCutAreaBorderIcon; - delete iCutAreaBorderIconMask; - } - } - -TInt CVeiCutterBar::CountComponentControls() const - { - return 0; - } - -void CVeiCutterBar::DrawCoordinate(TInt aX, TInt aY, TInt aData1, TInt aData2, const TDesC& aInfo) const -{ - CWindowGc& gc = SystemGc(); - TPoint writepoint(aX, aY); - - _LIT(KXY, "%S:(%d,%d)"); - _LIT(KX, "%S:%d"); - TBuf<200> buffer; - if (aData2 > 0) - { - buffer.Format(KXY, &aInfo, aData1, aData2); - } - else - { - buffer.Format(KX, &aInfo, aData1); - } - const CFont* font = AknLayoutUtils::FontFromId( EAknLogicalFontSecondaryFont ); - gc.UseFont( font ); - - // Get text color from skin - TRgb textColor( KRgbBlack ); - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - AknsUtils::GetCachedColor(skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ); - gc.SetPenColor( textColor ); - - gc.DrawText( buffer, writepoint ); - - gc.DiscardFont(); -} - - -void CVeiCutterBar::Draw( const TRect& /*aRect*/ ) const - { - CWindowGc& gc = SystemGc(); - - if( !AknLayoutUtils::PenEnabled() ) - { - gc.BitBltMasked(iScissorsIconRect.iTl, iScissorsIcon, iScissorsIconRect.Size(), - iScissorsIconMask, EFalse ); - } - - // The following three icons are visible only when the user has selected an area to be cut. - // In the initial state, the whole slider is selected so these icons won't be shown. - - // draw left end of the slider - gc.BitBltMasked(iSliderLeftEndIconRect.iTl, iSliderLeftEndIcon, iSliderLeftEndIconRect.Size(), - iSliderLeftEndIconMask, EFalse ); - - // draw middle part of the slider - gc.BitBltMasked(iSliderMiddleIconRect.iTl, iSliderMiddleIcon, iSliderMiddleIconRect.Size(), - iSliderMiddleIconMask, EFalse ); - - // draw right end of the slider - gc.BitBltMasked(iSliderRightEndIconRect.iTl, iSliderRightEndIcon, iSliderRightEndIconRect.Size(), - iSliderRightEndIconMask, EFalse ); - - // the selected area of the slider is constructed from 3 icons: - // - // |<-------------- whole slider ------------------------>| - // - // |<-------- selected area ------------>| - // - // ----- -----a-------------------------b----- ---------- - // | |left | middle |right| | - // | |end | part |end | | - // ----- ----- ------------------------- ----- ---------- - - TRect selectedArea(CalculateCutAreaRect()); - - if( !AknLayoutUtils::PenEnabled() ) - { - // if the start and end mark are close to each other, the width of the left and - // right end icons has to be decreased - TRect leftRect(iSliderSelectedLeftEndIconRect); - TRect rightRect(iSliderSelectedRightEndIconRect); - - // the width of the selected area is smaller than the width of the left/right end - if (selectedArea.Width() <= iSliderSelectedRightEndIconRect.Width()) - { - leftRect = selectedArea; - rightRect = selectedArea; - } - - // calculate point a - TInt leftEndWidth = iSliderSelectedLeftEndIconRect.Width(); - TInt xA = selectedArea.iTl.iX + leftEndWidth; - TPoint pointA = TPoint(xA, selectedArea.iTl.iY); - - // calculate point b - TInt rightEndWidth = rightRect.Width(); - TInt xB = selectedArea.iBr.iX - rightEndWidth; - TPoint pointB = TPoint(xB, selectedArea.iTl.iY); - - // calculate the size of the middle part - TInt middlePartWidth = pointB.iX - pointA.iX; - TSize middlePartSize = TSize(middlePartWidth, iSliderSelectedMiddleIconRect.Height()); - - // draw left end of the cut selection slider - gc.BitBltMasked(selectedArea.iTl, iSliderSelectedLeftEndIcon, leftRect.Size(), - iSliderSelectedLeftEndIconMask, EFalse ); - - // draw middle part of the cut selection slider - gc.BitBltMasked(pointA, iSliderSelectedMiddleIcon, middlePartSize, - iSliderSelectedMiddleIconMask, EFalse ); - - // draw right end of the cut selection slider - gc.BitBltMasked(pointB, iSliderSelectedRightEndIcon, rightRect.Size(), - iSliderSelectedRightEndIconMask, EFalse ); - - if ( iFinished && !iDimmed ) - { - // draw the left border of cut selection slider if the start mark has been set - if ( iInPoint > 0 ) - { - gc.BitBltMasked(iStartMarkRect.iTl, iCutAreaBorderIcon, iCutAreaBorderIconRect.Size(), - iCutAreaBorderIconMask, EFalse ); - } - - // draw the right border of the cut selection slider if the end mark has been set - if (iOutPoint < iTotalDuration) - { - gc.BitBltMasked(iEndMarkRect.iTl, iCutAreaBorderIcon, iCutAreaBorderIconRect.Size(), - iCutAreaBorderIconMask, EFalse ); - } - } - } - else - { - // draw middle part of the cut selection slider - gc.BitBltMasked(selectedArea.iTl, iSliderSelectedMiddleIcon, selectedArea.Size(), - iSliderSelectedMiddleIconMask, EFalse ); - - if ( iFinished && !iDimmed ) - { - TPoint startPoint(selectedArea.iTl); - startPoint.iX = startPoint.iX - iStartMarkRect.Width(); - - if( iPressedComponent == EPressedStartMarkTouch ) - { - gc.BitBltMasked(startPoint, iStartMarkIconPressed, iStartMarkRect.Size(), - iStartMarkIconPressedMask, EFalse ); - } - else - { - gc.BitBltMasked(startPoint, iStartMarkIcon, iStartMarkRect.Size(), - iStartMarkIconMask, EFalse ); - } - - TPoint endPoint(selectedArea.iBr); - endPoint.iY = iEndMarkRect.iTl.iY; - - if( iPressedComponent == EPressedEndMarkTouch ) - { - gc.BitBltMasked(endPoint, iEndMarkIconPressed, iEndMarkRect.Size(), - iEndMarkIconPressedMask, EFalse ); - } - else - { - gc.BitBltMasked(endPoint, iEndMarkIcon, iEndMarkRect.Size(), - iEndMarkIconMask, EFalse ); - } - - } - } - - // calculate the playhead position - TUint width = iCutBarRect.Width(); - TInt currentPointX = 0; - if (iTotalDuration > 0) - { - currentPointX = iCurrentPoint * width / iTotalDuration + iCutBarRect.iTl.iX; - - // set the center of the playhead icon to the current position - currentPointX = currentPointX - ( iPlayheadIconRect.Width()/2 ); - } - - if( !AknLayoutUtils::PenEnabled() ) - { - // don't draw the playhead outside the cut bar area because it is not refreshed often enough - if ( currentPointX < iCutBarRect.iTl.iX ) - { - currentPointX = iCutBarRect.iTl.iX; - } - else if ( currentPointX > iCutBarRect.iBr.iX ) - { - currentPointX = iCutBarRect.iBr.iX; - } - - // draw playhead - gc.BitBltMasked(TPoint(currentPointX,iCutBarRect.iTl.iY), iPlayheadIcon, iPlayheadIconRect.Size(), - iPlayheadIconMask, EFalse ); - } - else - { - // draw playhead - if( iPressedComponent == EPressedPlayheadTouch ) - { - gc.BitBltMasked(TPoint(currentPointX,iCutBarRect.iBr.iY - iPlayheadIconRect.Height()), iPlayheadIconPressed, - iPlayheadIconRect.Size(), iPlayheadIconPressedMask, EFalse ); - } - else - { - gc.BitBltMasked(TPoint(currentPointX,iCutBarRect.iBr.iY - iPlayheadIconRect.Height()), iPlayheadIcon, iPlayheadIconRect.Size(), - iPlayheadIconMask, EFalse ); - } - } - } - -CCoeControl* CVeiCutterBar::ComponentControl( TInt /*aIndex*/ ) const - { - return NULL; - } - - -EXPORT_C void CVeiCutterBar::Dim( TBool aDimmed ) - { - iDimmed = aDimmed; - DrawDeferred(); - } - -EXPORT_C void CVeiCutterBar::SetPlayHeadVisible( TBool aVisible ) - { - iDrawPlayHead = aVisible; - } - -void CVeiCutterBar::HandleControlEventL( CCoeControl* /*aControl*/, - TCoeEvent /*aEventType*/ ) - { - DrawDeferred(); - } - -void CVeiCutterBar::SizeChanged() - { - // the component rects are set in CVeiSimpleCutVideoContainer::SizeChanged(), - // CVeiEditVideoContainer::SetCursorLocation() or CVeiCutVideoContainer::SizeChanged() - - // left end of the slider when that part is unselected - AknIconUtils::SetSize( iSliderLeftEndIcon, iSliderLeftEndIconRect.Size(), EAspectRatioNotPreserved); - - // middle part of the slider when that part is unselected - AknIconUtils::SetSize( iSliderMiddleIcon, iSliderMiddleIconRect.Size(), EAspectRatioNotPreserved); - - // right end of the slider when that part is unselected - AknIconUtils::SetSize( iSliderRightEndIcon, iSliderRightEndIconRect.Size(), EAspectRatioNotPreserved); - - if( !AknLayoutUtils::PenEnabled() ) - { - // left end of the cut selection slider - AknIconUtils::SetSize( iSliderSelectedLeftEndIcon, iSliderSelectedLeftEndIconRect.Size(), EAspectRatioNotPreserved); - - // middle part of the cut selection slider - AknIconUtils::SetSize( iSliderSelectedMiddleIcon, iSliderSelectedMiddleIconRect.Size(), EAspectRatioNotPreserved); - - // right end of the cut selection slider - AknIconUtils::SetSize( iSliderSelectedRightEndIcon, iSliderSelectedRightEndIconRect.Size(), EAspectRatioNotPreserved); - - // left/right border of cut selection slider - AknIconUtils::SetSize( iCutAreaBorderIcon, iCutAreaBorderIconRect.Size(), EAspectRatioNotPreserved); - - AknIconUtils::SetSize( iScissorsIcon, iScissorsIconRect.Size(), EAspectRatioNotPreserved); - - iStartMarkRect = TRect(CalculateCutAreaRect().iTl, iCutAreaBorderIconRect.Size()); - - TInt xD = CalculateCutAreaRect().iBr.iX - iCutAreaBorderIconRect.Width(); - TPoint pointD = TPoint (xD, iSliderSelectedLeftEndIconRect.iTl.iY); - - // set the end mark rect - iEndMarkRect = TRect(pointD, iCutAreaBorderIconRect.Size()); - } - else - { - // middle part of the cut selection slider - AknIconUtils::SetSize( iSliderSelectedMiddleIcon, TSize(iCutBarRect.Size().iWidth, iSliderSelectedMiddleIconRect.Size().iHeight), EAspectRatioNotPreserved); - - // left border of cut selection slider - AknIconUtils::SetSize( iStartMarkIcon, iStartMarkRect.Size(), EAspectRatioNotPreserved); - AknIconUtils::SetSize( iStartMarkIconPressed, iStartMarkRect.Size(), EAspectRatioNotPreserved); - - // right border of cut selection slider - AknIconUtils::SetSize( iEndMarkIcon, iEndMarkRect.Size(), EAspectRatioNotPreserved); - AknIconUtils::SetSize( iEndMarkIconPressed, iEndMarkRect.Size(), EAspectRatioNotPreserved); - } - - // playhead - AknIconUtils::SetSize( iPlayheadIcon, iPlayheadIconRect.Size(), EAspectRatioNotPreserved); - AknIconUtils::SetSize( iPlayheadIconPressed, iPlayheadIconRect.Size(), EAspectRatioNotPreserved); - } - -TKeyResponse CVeiCutterBar::OfferKeyEventL( const TKeyEvent& /*aKeyEvent*/, - TEventCode /*aType*/ ) - { - return EKeyWasNotConsumed; - } - -EXPORT_C void CVeiCutterBar::SetInPoint( const TTimeIntervalMicroSeconds& aIn ) - { - iInPoint = static_cast((aIn.Int64()/1000)); - - if( !AknLayoutUtils::PenEnabled() ) - { - iStartMarkRect = TRect(CalculateCutAreaRect().iTl, iCutAreaBorderIconRect.Size()); - DrawDeferred(); - return; - } - - TInt xD = CalculateCutAreaRect().iTl.iX - iStartMarkRect.Width(); - TPoint pointD = TPoint (xD, iStartMarkRect.iTl.iY); - TInt delta = pointD.iX - iStartMarkRect.iTl.iX; - iStartMarkTouchRect.iTl.iX += delta; - iStartMarkTouchRect.iBr.iX += delta; - - // set the start mark rect - iStartMarkRect = TRect(pointD, iStartMarkRect.Size()); - DrawDeferred(); - } - -EXPORT_C void CVeiCutterBar::SetOutPoint( const TTimeIntervalMicroSeconds& aOutPoint ) - { - iOutPoint = static_cast((aOutPoint.Int64()/1000)); - - // calculate the top left point (d in the picture below) for the end mark rect - // for more clarification, see the picture in Draw function - // - // right - // |<- end ->| - // -----b-----d---c--------- - // | |bor| - // | |der| - // ------------------------- - - if( !AknLayoutUtils::PenEnabled() ) - { - TInt xD = CalculateCutAreaRect().iBr.iX - iCutAreaBorderIconRect.Width(); - TPoint pointD = TPoint (xD, iSliderSelectedLeftEndIconRect.iTl.iY); - - // set the end mark rect - iEndMarkRect = TRect(pointD, iCutAreaBorderIconRect.Size()); - } - else - { - TPoint pointD = TPoint (CalculateCutAreaRect().iBr.iX, iEndMarkRect.iTl.iY); - TInt delta = pointD.iX - iEndMarkRect.iTl.iX; - iEndMarkTouchRect.iTl.iX += delta; - iEndMarkTouchRect.iBr.iX += delta; - - iEndMarkRect = TRect(pointD, iEndMarkRect.Size()); - } - - DrawDeferred(); - } - -EXPORT_C void CVeiCutterBar::SetFinishedStatus( TBool aStatus ) - { - iFinished = aStatus; -// iCurrentPoint = 0; - SetCurrentPoint( 0 ); - DrawDeferred(); - } - -EXPORT_C void CVeiCutterBar::SetTotalDuration( const TTimeIntervalMicroSeconds& aDuration ) - { - TTimeIntervalMicroSeconds duration (aDuration); - if ( duration.Int64() == 0 ) - { - duration = 1; - } - - TInt64 i = duration.Int64(); - for (;0 == (i/1000);i++) - { - ; - } - duration = i; - - iTotalDuration = static_cast((duration.Int64()/1000)); - SetOutPoint(aDuration); -// DrawDeferred(); - } - -EXPORT_C void CVeiCutterBar::SetCurrentPoint( TInt aLocation ) - { - if( AknLayoutUtils::PenEnabled() ) - { - // calculate the playhead position - TUint width = iCutBarRect.Width(); - TInt currentPointX = 0; - if (iTotalDuration > 0) - { - currentPointX = aLocation * width / iTotalDuration + iCutBarRect.iTl.iX; - } - currentPointX = currentPointX - ( iPlayheadTouchRect.Width()/2 ); - iPlayheadTouchRect.iBr.iX = currentPointX + iPlayheadTouchRect.Width(); - iPlayheadTouchRect.iTl.iX = currentPointX; - } - - iCurrentPoint = aLocation; - DrawDeferred(); - } - -// ---------------------------------------------------------------------------- -// CVeiCutterBar::ProgressBarRect -// -// ---------------------------------------------------------------------------- -// -EXPORT_C TRect CVeiCutterBar::ProgressBarRect() - { - return iCutBarRect; - } - -// ---------------------------------------------------------------------------- -// CVeiCutterBar::PlayHeadRect -// -// ---------------------------------------------------------------------------- -// -EXPORT_C TRect CVeiCutterBar::PlayHeadRect() - { - return iPlayheadTouchRect; - } - -// ---------------------------------------------------------------------------- -// CVeiCutterBar::StartMarkRect -// -// ---------------------------------------------------------------------------- -// -EXPORT_C TRect CVeiCutterBar::StartMarkRect() - { - if( AknLayoutUtils::PenEnabled() ) - { - return iStartMarkTouchRect; - } - - TRect startMarkArea; - - // start mark has not been set - if (iInPoint == 0) - { - startMarkArea = TRect(0,0,0,0); - } - else - { - startMarkArea = iStartMarkRect; - } - return startMarkArea; - } - -// ---------------------------------------------------------------------------- -// CVeiCutterBar::EndMarkRect -// -// ---------------------------------------------------------------------------- -// -EXPORT_C TRect CVeiCutterBar::EndMarkRect() - { - if( AknLayoutUtils::PenEnabled() ) - { - return iEndMarkTouchRect; - } - - TRect endMarkArea; - - // end mark has not been set - if (iOutPoint == iTotalDuration) - { - endMarkArea = TRect(0,0,0,0); - } - else - { - endMarkArea = iEndMarkRect; - } - return endMarkArea; - } - -// ---------------------------------------------------------------------------- -// CVeiCutterBar::StartMarkPoint -// -// ---------------------------------------------------------------------------- -// -EXPORT_C TUint CVeiCutterBar::StartMarkPoint() -{ - // start mark hasn't been set - if (iInPoint == 0) - { - return 0; - } - // start mark has been set - else - { - TInt startPoint = iInPoint * iCutBarRect.Width() / iTotalDuration + iCutBarRect.iTl.iX; - return startPoint; - } -} - -// ---------------------------------------------------------------------------- -// CVeiCutterBar::EndMarkPoint -// -// ---------------------------------------------------------------------------- -// -EXPORT_C TUint CVeiCutterBar::EndMarkPoint() -{ - // end mark hasn't been set - if (iOutPoint == iTotalDuration) - { - return iCutBarRect.iBr.iX; - } - // end mark has been set - else - { - TInt endPoint = iOutPoint * iCutBarRect.Width() / iTotalDuration + iCutBarRect.iTl.iX; - return endPoint; - } -} - - -// ---------------------------------------------------------------------------- -// CVeiCutterBar::SetComponentRect -// -// ---------------------------------------------------------------------------- -// -EXPORT_C void CVeiCutterBar::SetComponentRect(TCutterBarComponent aComponentIndex, TRect aRect) - { - switch ( aComponentIndex ) - { - case EScissorsIcon: - { - iScissorsIconRect = aRect; - break; - } - case EProgressBar: - { - iCutBarRect = aRect; - break; - } - case ESliderLeftEndIcon: - { - iSliderLeftEndIconRect = aRect; - break; - } - case ESliderMiddleIcon: - { - iSliderMiddleIconRect = aRect; - break; - } - case ESliderRightEndIcon: - { - iSliderRightEndIconRect = aRect; - break; - } - case ESliderSelectedLeftEndIcon: - { - iSliderSelectedLeftEndIconRect = aRect; - break; - } - case ESliderSelectedMiddleIcon: - { - iSliderSelectedMiddleIconRect = aRect; - break; - } - case ESliderSelectedRightEndIcon: - { - iSliderSelectedRightEndIconRect = aRect; - break; - } - case EPlayheadIcon: - { - iPlayheadIconRect = aRect; - break; - } - case ECutAreaBorderIcon: - { - iCutAreaBorderIconRect = aRect; - break; - } - case EStartMarkIcon: - { - iStartMarkRect = aRect; - break; - } - case EEndMarkIcon: - { - iEndMarkRect = aRect; - break; - } - case EPlayheadTouch: - { - iPlayheadTouchRect = aRect; - SetCurrentPoint(iCurrentPoint); - break; - } - case EStartMarkTouch: - { - iStartMarkTouchRect = aRect; - break; - } - case EEndMarkTouch: - { - iEndMarkTouchRect = aRect; - break; - } - } - } - -// ---------------------------------------------------------------------------- -// CVeiCutterBar::SetPressedComponent -// -// ---------------------------------------------------------------------------- -// -EXPORT_C void CVeiCutterBar::SetPressedComponent(TCutterBarPressedIcon aComponentIndex) - { - iPressedComponent = aComponentIndex; - } - -// ---------------------------------------------------------------------------- -// CVeiCutterBar::CalculateCutAreaRect -// -// ---------------------------------------------------------------------------- -// -TRect CVeiCutterBar::CalculateCutAreaRect() const - { - - TUint width = iCutBarRect.Width(); - TInt inPointX = 0; - TInt outPointX = 0; - - if (0 < iTotalDuration) - { - inPointX = iInPoint * width / iTotalDuration + iCutBarRect.iTl.iX; - outPointX = iOutPoint * width / iTotalDuration + iCutBarRect.iTl.iX; - } - - if ( outPointX > iCutBarRect.iBr.iX ) - { - outPointX = iCutBarRect.iBr.iX; - } - - // area to be cut - TRect selectedArea( iCutBarRect ); - - if ( iFinished && !iDimmed ) - { - selectedArea.iTl.iX = inPointX; - selectedArea.iBr.iX = outPointX; - } - - return selectedArea; - - } - -// End of File