--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videditor/ManualVideoEditor/src/VeiPopup.cpp Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,1029 @@
+/*
+* 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 <avkon.hrh>
+#include <manualvideoeditor.rsg>
+
+
+#include <akntitle.h>
+#include <aknlists.h>
+#include <aknquerydialog.h>
+#include <eikmenub.h>
+#include <caknfileselectiondialog.h>
+#include <stringloader.h>
+#include <mgfetch.h>
+#include <akncolourselectiongrid.h>
+
+// User includes
+#include "VeiEditVideoView.h"
+#include "manualvideoeditor.hrh"
+#include "veipopup.h"
+#include "veiaddqueue.h"
+#include "veieditvideocontainer.h"
+#include "videoeditorcommon.h"
+#include "veiappui.h"
+
+
+CVeiPopup* CVeiPopup::NewL( CVeiEditVideoView& aView )
+ {
+ CVeiPopup* self = CVeiPopup::NewLC( aView );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+CVeiPopup* CVeiPopup::NewLC( CVeiEditVideoView& aView )
+ {
+ CVeiPopup* self = new( ELeave )CVeiPopup( aView );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+CVeiPopup::CVeiPopup( CVeiEditVideoView& aView ): iView( aView )
+{
+
+}
+
+
+void CVeiPopup::ConstructL()
+ {
+ LOG( KVideoEditorLogFile, "CVeiPopup::ConstructL: in" );
+ LOG( KVideoEditorLogFile, "CVeiPopup::ConstructL: out" );
+ }
+
+CVeiPopup::~CVeiPopup()
+ {
+ LOG( KVideoEditorLogFile, "CVeiPopup::~CVeiPopup" );
+ }
+
+TInt CVeiPopup::ExecutePopupListL( TInt aSoftkeysResourceId,
+ TInt aPopupTitleResourceId,
+ TInt aArrayResourceId,
+ TInt aTablesize,
+ TBool aDynPopup ) const
+ {
+
+ // Create listbox and PUSH it.
+ CAknSinglePopupMenuStyleListBox* listBox = new( ELeave )CAknSinglePopupMenuStyleListBox;
+ CleanupStack::PushL( listBox );
+
+ // Create popup list and PUSH it.
+ CAknPopupList* popupList = CAknPopupList::NewL( listBox, aSoftkeysResourceId );
+ CleanupStack::PushL( popupList );
+
+ // Set title for popup from defined resource.
+ HBufC* title = CCoeEnv::Static()->AllocReadResourceLC( aPopupTitleResourceId );
+ popupList->SetTitleL( *title );
+ CleanupStack::PopAndDestroy( title );
+
+ // initialize listbox.
+ listBox->ConstructL( popupList, EAknListBoxMenuList );
+
+ // Make listitems. and PUSH it
+ CDesCArrayFlat* items = CCoeEnv::Static()->ReadDesCArrayResourceL( aArrayResourceId );
+ CleanupStack::PushL( items );
+
+ // Remove given index if at correct range.
+
+ if ( aDynPopup )
+ {
+ TInt i;
+ for ( i = aTablesize - 1; i >= 0; i-- )
+ {
+ if ( 0 == RemoveArrayIndex[i] )
+ {
+ items->Delete( i );
+ }
+ }
+ }
+ else
+ {
+ if ( aTablesize >= 0 && aTablesize <= ( items->Count() - 1 ))
+ {
+ items->Delete( aTablesize );
+ }
+ }
+
+
+ // Set listitems.
+ CTextListBoxModel* model = listBox->Model();
+ model->SetItemTextArray( items );
+ model->SetOwnershipType( ELbmOwnsItemArray );
+
+ CleanupStack::Pop( items ); // Pop effect items
+
+ listBox->CreateScrollBarFrameL( ETrue );
+ listBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
+
+ TInt popOk = popupList->ExecuteLD();
+
+ TInt returnValue;
+
+ if ( popOk )
+ {
+ // Return selected item's index.
+ returnValue = listBox->CurrentItemIndex();
+ }
+ else
+ {
+ returnValue = - 1;
+ }
+
+ // Clenup and destroy.
+ CleanupStack::Pop( popupList );
+ CleanupStack::PopAndDestroy( listBox );
+
+ return returnValue;
+ }
+
+
+void CVeiPopup::ShowEndTransitionPopupListL()
+ {
+ TInt removeIndex;
+ // Which effect to remove from listbox.
+ switch ( iView.Movie()->EndTransitionEffect())
+ {
+ case EVedEndTransitionEffectFadeToBlack:
+ removeIndex = 0;
+ break;
+ case EVedEndTransitionEffectFadeToWhite:
+ removeIndex = 1;
+ break;
+ case EVedEndTransitionEffectNone:
+ removeIndex = 2;
+ break;
+ default:
+ removeIndex = - 1;
+ break;
+ }
+
+ TInt selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL,
+ R_VEI_TRANSTION_POPUP_TITLE,
+ R_VEI_END_TRANSITION_LIST_BOX_ARRAY,
+ removeIndex,
+ EFalse );
+
+ switch ( selectedIndex )
+ {
+ case 0:
+ {
+ if ( removeIndex == 0 )
+ {
+ iView.Movie()->SetEndTransitionEffect( EVedEndTransitionEffectFadeToWhite );
+ }
+ else
+ {
+ iView.Movie()->SetEndTransitionEffect( EVedEndTransitionEffectFadeToBlack );
+ }
+ break;
+ }
+ case 1:
+ {
+ if ( removeIndex <= 1 )
+ {
+ iView.Movie()->SetEndTransitionEffect( EVedEndTransitionEffectNone );
+ }
+ else
+ {
+ iView.Movie()->SetEndTransitionEffect( EVedEndTransitionEffectFadeToWhite );
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ }
+
+void CVeiPopup::ShowMiddleTransitionPopupListL()
+ {
+ TInt currentindex = iView.Container()->CurrentIndex() - 1;
+ TInt removeIndex;
+ switch ( iView.Movie()->MiddleTransitionEffect( currentindex ))
+ {
+ case EVedMiddleTransitionEffectWipeTopToBottom:
+ removeIndex = 0;
+ break;
+ case EVedMiddleTransitionEffectWipeBottomToTop:
+ removeIndex = 1;
+ break;
+ case EVedMiddleTransitionEffectWipeLeftToRight:
+ removeIndex = 2;
+ break;
+ case EVedMiddleTransitionEffectWipeRightToLeft:
+ removeIndex = 3;
+ break;
+ case EVedMiddleTransitionEffectCrossfade:
+ removeIndex = 4;
+ break;
+ case EVedMiddleTransitionEffectDipToBlack:
+ removeIndex = 5;
+ break;
+ case EVedMiddleTransitionEffectDipToWhite:
+ removeIndex = 6;
+ break;
+ case EVedMiddleTransitionEffectNone:
+ removeIndex = 7;
+ break;
+ default:
+ removeIndex = - 1;
+ break;
+ }
+
+ TInt selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL,
+ R_VEI_TRANSTION_POPUP_TITLE,
+ R_VEI_MIDDLE_TRANSITION_LIST_BOX_ARRAY,
+ removeIndex,
+ EFalse );
+
+ switch ( selectedIndex )
+ {
+ case 0:
+ {
+ if ( removeIndex == 0 )
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeBottomToTop, currentindex );
+ }
+ else
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeTopToBottom, currentindex );
+ }
+ break;
+ }
+ case 1:
+ {
+ if ( removeIndex <= 1 )
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeLeftToRight, currentindex );
+ }
+ else
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeBottomToTop, currentindex );
+ }
+ break;
+ }
+ case 2:
+ {
+ if ( removeIndex <= 2 )
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeRightToLeft, currentindex );
+ }
+ else
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeLeftToRight, currentindex );
+ }
+ break;
+ }
+ case 3:
+ {
+ if ( removeIndex <= 3 )
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectCrossfade, currentindex );
+ }
+ else
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeRightToLeft, currentindex );
+ }
+ break;
+ }
+ case 4:
+ {
+ if ( removeIndex <= 4 )
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectDipToBlack, currentindex );
+ }
+ else
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectCrossfade, currentindex );
+ }
+ break;
+ }
+ case 5:
+ {
+ if ( removeIndex <= 5 )
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectDipToWhite, currentindex );
+ }
+ else
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectDipToBlack, currentindex );
+ }
+ break;
+ }
+ case 6:
+ {
+ if ( removeIndex <= 6 )
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectNone, currentindex );
+ }
+ else
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectDipToWhite, currentindex );
+ }
+ break;
+ }
+ case 7:
+ {
+ if ( removeIndex <= 7 )
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeLeftToRight, currentindex );
+ }
+ else
+ {
+ iView.Movie()->SetMiddleTransitionEffect( EVedMiddleTransitionEffectNone, currentindex );
+ iView.Movie()->SetEndTransitionEffect( EVedEndTransitionEffectFadeToWhite );
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ }
+
+void CVeiPopup::ShowStartTransitionPopupListL()
+ {
+ TInt removeIndex;
+ switch ( iView.Movie()->StartTransitionEffect())
+ {
+ case EVedStartTransitionEffectFadeFromBlack:
+ removeIndex = 0;
+ break;
+ case EVedStartTransitionEffectFadeFromWhite:
+ removeIndex = 1;
+ break;
+ case EVedStartTransitionEffectNone:
+ removeIndex = 2;
+ break;
+ default:
+ removeIndex = - 1;
+ break;
+ }
+
+ TInt selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL,
+ R_VEI_TRANSTION_POPUP_TITLE,
+ R_VEI_START_TRANSITION_LIST_BOX_ARRAY,
+ removeIndex,
+ EFalse );
+
+ switch ( selectedIndex )
+ {
+ case 0:
+ {
+ if ( removeIndex == 0 )
+ {
+ iView.Movie()->SetStartTransitionEffect( EVedStartTransitionEffectFadeFromWhite );
+ }
+ else
+ {
+ iView.Movie()->SetStartTransitionEffect( EVedStartTransitionEffectFadeFromBlack );
+ }
+ break;
+ }
+ case 1:
+ {
+ if ( removeIndex <= 1 )
+ {
+ iView.Movie()->SetStartTransitionEffect( EVedStartTransitionEffectNone );
+ }
+ else
+ {
+ iView.Movie()->SetStartTransitionEffect( EVedStartTransitionEffectFadeFromWhite );
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ }
+
+void CVeiPopup::ShowInsertAudioPopupList()
+ {
+ TInt selectedIndex; // Selected item's index in popup list.
+ TInt removeIndex; // Index to remove from list.
+
+ removeIndex = - 1; // -1 = Nothing to remove from list array.
+
+ selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL,
+ R_VEI_POPUP_INSERT_AUDIO_TITLE,
+ R_VEI_INSERT_AUDIO_LIST_BOX_ARRAY,
+ removeIndex,
+ EFalse );
+
+ switch ( selectedIndex )
+ {
+ /**
+ * Sound clip
+ */
+ case 0:
+ iView.HandleCommandL( EVeiCmdEditVideoViewInsertAudio );
+ break;
+ /**
+ * New sound clip
+ */
+ case 1:
+ iView.InsertNewAudio();
+ break;
+ default:
+ break;
+ }
+
+ }
+
+/*
+Show popup list when cursor is on empty video track.
+Video, text, image etc..
+ */
+
+void CVeiPopup::ShowInsertStuffPopupList()
+ {
+ TInt selectedIndex; // Selected item's index in popup list.
+ TInt removeIndex; // Index to remove from list.
+
+ removeIndex = - 1; // -1 = Nothing to remove from list array.
+
+ selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL,
+ R_VEI_POPUP_INSERT_STUFF_TITLE,
+ R_VEI_INSERT_STUFF_LIST_BOX_ARRAY,
+ removeIndex,
+ EFalse );
+
+ switch ( selectedIndex )
+ {
+ /**
+ * Video clip
+ */
+ case 0:
+ iView.HandleCommandL( EVeiCmdEditVideoViewInsertVideo );
+ break;
+ /**
+ INSERT IMAGE
+ */
+ case 1:
+ iView.HandleCommandL( EVeiCmdEditVideoViewInsertImage );
+ break;
+ /**
+ INSERT Text
+ */
+ case 2:
+ ShowInsertTextPopupList();
+ break;
+ default:
+ break;
+ }
+
+ }
+
+/*
+Show popup list when cursor is on empty video track.
+Video, text, image etc..
+ */
+
+
+void CVeiPopup::ShowInsertTextPopupList()
+ {
+ TInt selectedIndex; // Selected item's index in popup list.
+ TInt removeIndex; // Index to remove from list.
+
+ removeIndex = - 1; // -1 = Nothing to remove from list array.
+
+ selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL,
+ R_VEI_POPUP_INSERT_STUFF_TITLE,
+ R_VEI_INSERT_TEXT_LIST_BOX_ARRAY,
+ removeIndex,
+ EFalse );
+
+ switch ( selectedIndex )
+ {
+ case 0:
+ iView.HandleCommandL( EVeiCmdEditVideoViewInsertTextTitle );
+ break;
+ case 1:
+ iView.HandleCommandL( EVeiCmdEditVideoViewInsertTextTitleFading );
+ break;
+ case 2:
+ iView.HandleCommandL( EVeiCmdEditVideoViewInsertTextSubTitle );
+ break;
+ case 3:
+ iView.HandleCommandL( EVeiCmdEditVideoViewInsertTextSubTitleFading );
+ break;
+ case 4:
+ iView.HandleCommandL( EVeiCmdEditVideoViewInsertTextCredits );
+ break;
+ default:
+ break;
+ }
+ }
+
+void CVeiPopup::ShowEffectSelectionPopupListL()
+ {
+ TInt currentIndex = iView.Container()->CurrentIndex();
+ TInt removeIndex;
+
+ // Which effect to remove from listbox.
+ switch ( iView.Movie()->VideoClipColorEffect( currentIndex ))
+ {
+ case EVedColorEffectBlackAndWhite:
+ removeIndex = 0; // blackandwhite removed from list
+ break;
+ /*case EVedColorEffectToning: // some other color must be able to be chosen still
+ removeIndex = 1;
+ break;
+ */
+ case EVedColorEffectNone:
+ removeIndex = 2;
+ break;
+ default:
+ removeIndex = - 1; // Remove nothing from array.
+ break;
+ }
+
+
+ /*
+ array indexes:
+ qtn_vei_list_query_select_effect_black_white;
+ qtn_vei_list_query_select_effect_colour;
+ qtn_vei_list_query_select_effect_no_effect;
+
+ */
+
+ // Execute popup list with proper parameters.
+ TInt selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL,
+ R_VEI_POPUP_SELECT_EFFECT_TITLE,
+ R_VEI_EFFECT_LIST_BOX_ARRAY, // order: bw, col, no effect
+ removeIndex,
+ EFalse );
+ switch ( selectedIndex )
+ {
+ case 0:
+ // blackandwhite
+ {
+ if ( removeIndex == 0 )
+ // current effect blackandwhite -> colour chosen
+ {
+ TRgb color;
+ if ( !ShowColorSelectorL( color ))
+ {
+ break;
+ }
+
+ iView.Movie()->VideoClipSetColorTone( currentIndex, color );
+ iView.Movie()->VideoClipSetColorEffect( currentIndex, EVedColorEffectToning );
+ }
+ else
+ {
+ iView.Movie()->VideoClipSetColorEffect( currentIndex, EVedColorEffectBlackAndWhite );
+ }
+ break;
+ }
+ case 1:
+ // colour
+ {
+ if ( removeIndex == 0 )
+ // // current effect blackandwhite -> no effect chosen
+ {
+ iView.Movie()->VideoClipSetColorEffect( currentIndex, EVedColorEffectNone );
+ }
+ else
+ {
+ // current event none
+ TRgb color;
+
+ if ( !ShowColorSelectorL( color ))
+ {
+ break;
+ }
+
+ // TInt R_ct = color.Red();
+ // TInt G_ct = color.Green();
+ // TInt B_ct = color.Blue();
+
+ iView.Movie()->VideoClipSetColorTone( currentIndex, color );
+ iView.Movie()->VideoClipSetColorEffect( currentIndex, EVedColorEffectToning );
+
+ // TRgb toning = iView.Movie()->VideoClipColorTone(currentIndex);
+ // R_ct = toning.Red();
+ // G_ct = toning.Green();
+ // B_ct = toning.Blue();
+ }
+ break;
+ }
+ case 2:
+ // no effect
+ {
+ iView.Movie()->VideoClipSetColorEffect( currentIndex, EVedColorEffectNone );
+ break;
+ }
+ default:
+ break;
+ }
+
+ }
+
+void CVeiPopup::ShowEditTextPopupList()
+ {
+ TInt selectedIndex = - 1; // Selected item's index in popup list.
+ TInt listSelection = - 1; // -1 = Nothing to remove from list array.
+ TInt removeIndex = - 1; // -1 = Nothing to remove from list array.
+
+ TBool oneclip = EFalse;
+
+ if ( iView.Movie()->VideoClipCount() <= 1 )
+ {
+ removeIndex = 0;
+ oneclip = ETrue;
+ }
+
+ selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL, R_VEI_POPUP_EDIT_TEXT_TITLE, R_VEI_EDIT_TEXT_LIST_BOX_ARRAY, removeIndex, EFalse );
+
+ listSelection = selectedIndex;
+
+ if ( selectedIndex >= 0 )
+ {
+ if ( oneclip )
+ {
+ listSelection++;
+ }
+ }
+
+ switch ( listSelection )
+ {
+ case 0:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextMove );
+ break;
+ case 1:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextRemove );
+ break;
+ case 2:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextChangeDuration );
+ break;
+ case 3:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextChangeText );
+ break;
+ case 4:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextSetTextColor );
+ break;
+ case 5:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextSetBackGround );
+ break;
+ case 6:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextAddColorEffect );
+ break;
+ case 7:
+ ShowEditTextStylePopUpList();
+ break;
+ case 8:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextDuplicate );
+ break;
+ default:
+ break;
+ }
+
+ }
+
+void CVeiPopup::ShowEditTextStylePopUpList()
+ {
+
+ TInt selectedIndex; // Selected item's index in popup list.
+ TInt removeIndex; // Index to remove from list.
+
+ removeIndex = - 1; // -1 = Nothing to remove from list array.
+
+ selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL, R_VEI_POPUP_EDIT_TEXT_TITLE, R_VEI_INSERT_TEXT_LIST_BOX_ARRAY, removeIndex, EFalse );
+
+ switch ( selectedIndex )
+ {
+ case 0:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextStyleTitle );
+ break;
+ case 1:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextStyleTitleFading );
+ break;
+ case 2:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextStyleSubTitle );
+ break;
+ case 3:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextStyleSubTitleFading );
+ break;
+ case 4:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextStyleCredit );
+ break;
+ default:
+ break;
+ }
+
+ }
+
+void CVeiPopup::ShowEditVideoPopupList()
+ {
+
+ TInt originalIndex = - 1;
+ // Selected item's index in original list (read from resource file)
+ TInt dynamicIndex = - 1;
+ // Selected item's index in dynamic list (where some items in original list may be removed)
+
+ // by default, all items are included in list (all are 1s)
+ for ( TInt i = 0; i < KAmountOfMenuItems; i++ )
+ {
+ RemoveArrayIndex[i] = 1;
+ }
+
+ // next some items are possibly removed from the list (by marking their index with '0's)
+ // the reference order MUST be the same what it is in the original list in .rss
+
+ // menu item "Cut" removed
+ TTimeIntervalMicroSeconds duration = iView.Movie()->VideoClipInfo( iView.Container()->CurrentIndex())->Duration();
+ if ( duration.Int64() < KMinCutVideoLength )
+ {
+ RemoveArrayIndex[0] = 0;
+ }
+ // menu item "Move" removed
+ if ( iView.Movie()->VideoClipCount() <= 1 )
+ {
+ RemoveArrayIndex[1] = 0;
+ }
+
+ // menu items "Mute" and "Unmute" removed
+ if ( EFalse == iView.Movie()->VideoClipIsMuteable( iView.Container()->CurrentIndex()))
+ {
+ RemoveArrayIndex[4] = 0;
+ RemoveArrayIndex[5] = 0;
+ }
+ else
+ {
+ // menu item "Mute" removed
+ if ( iView.Movie()->VideoClipIsMuted( iView.Container()->CurrentIndex()) )
+ {
+ RemoveArrayIndex[4] = 0;
+ }
+ // menu item "Unmute" removed
+ else
+ {
+ RemoveArrayIndex[5] = 0;
+ }
+ }
+
+ if ( !( iView.Movie()->VideoClipInfo( iView.Container()->CurrentIndex()))->HasAudio())
+ {
+ RemoveArrayIndex[6] = 0; //EVeiCmdEditVideoAdjustVolume);
+ }
+
+
+ dynamicIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL, R_VEI_POPUP_EDIT_VIDEO_TITLE, R_VEI_EDIT_VIDEO_LIST_BOX_ARRAY, KAmountOfMenuItems, ETrue );
+
+ if ( dynamicIndex < 0 )
+ {
+ return ;
+ }
+
+ // next find out what was the selected item in the original list
+ // i.e. count 1's until dynamicIndex reached
+ TInt cnt = - 1;
+ for ( TInt i = 0; i < KAmountOfMenuItems; i++ )
+ {
+ if ( 1 == RemoveArrayIndex[i] )
+ {
+ cnt++;
+ if ( dynamicIndex == cnt )
+ {
+ originalIndex = i;
+ break;
+ }
+ }
+ }
+
+ switch ( originalIndex )
+ {
+ case 0:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditVideoCutting );
+ break;
+ case 1:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditVideoMove );
+ break;
+ case 2:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditVideoColorEffect );
+ break;
+ case 3:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditVideoSlowMotion );
+ break;
+ case 4:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditVideoMute );
+ break;
+ case 5:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditVideoUnmute );
+ break;
+ case 6:
+ iView.HandleCommandL( EVeiCmdEditVideoAdjustVolume );
+ break;
+ case 7:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditVideoRemove );
+ break;
+ case 8:
+ iView.HandleCommandL( EVeiCmdEditVideoDuplicate );
+ break;
+ default:
+ break;
+ }
+ }
+
+void CVeiPopup::ShowEditImagePopupList()
+ {
+ TInt selectedIndex = - 1; // Selected item's index in popup list.
+ TInt listSelection = - 1; // -1 = Nothing to remove from list array.
+ TInt removeIndex = - 1; // -1 = Nothing to remove from list array.
+
+ TBool oneclip = EFalse;
+
+ if ( iView.Movie()->VideoClipCount() <= 1 )
+ {
+ removeIndex = 0;
+ oneclip = ETrue;
+ }
+
+
+ selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL, R_VEI_POPUP_EDIT_IMAGE_TITLE, R_VEI_EDIT_IMAGE_LIST_BOX_ARRAY, removeIndex, EFalse );
+
+ listSelection = selectedIndex;
+
+ if ( selectedIndex >= 0 )
+ {
+ if ( oneclip )
+ {
+ listSelection++;
+ }
+ }
+
+ switch ( listSelection )
+ {
+ case 0:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditImageMove );
+ break;
+ case 1:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditImageRemove );
+ break;
+ case 2:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditImageChangeDuration );
+ break;
+ case 3:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditImageBackGround );
+ break;
+ case 4:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditImageAddColorEffect );
+ break;
+ case 5:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditImageDuplicate );
+ break;
+ default:
+ break;
+ }
+
+ }
+
+TInt CVeiPopup::ShowTitleScreenBackgroundSelectionPopupL( TBool& aImageSelected )const
+ {
+ TInt selectedItem( - 1 );
+ CAknListQueryDialog* query = new( ELeave )CAknListQueryDialog( &selectedItem );
+ query->PrepareLC( R_VEI_TITLESCREEN_BACKGROUND_LIST_QUERY );
+ if ( !query->RunLD())
+ {
+ return KErrCancel;
+ }
+
+ if ( selectedItem == 0 )
+ {
+ aImageSelected = ETrue;
+ }
+ else
+ {
+ aImageSelected = EFalse;
+ }
+
+ return KErrNone;
+
+ }
+
+void CVeiPopup::ShowTitleScreenStyleSelectionPopupL()
+ {
+ TInt selectedIndex; // Selected item's index in popup list.
+ TInt removeIndex; // Index to remove from list.
+
+ removeIndex = - 1; // -1 = Nothing to remove from list array.
+
+ selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL, R_VEI_POPUP_SELECT_TEXT_STYLE_TITLE, R_VEI_INSERT_TEXT_LIST_BOX_ARRAY, removeIndex, EFalse );
+
+ switch ( selectedIndex )
+ {
+ case 0:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextStyleTitle );
+ break;
+ case 1:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextStyleTitleFading );
+ break;
+ case 2:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextStyleSubTitle );
+ break;
+ case 3:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextStyleSubTitleFading );
+ break;
+ case 4:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditTextStyleCredit );
+ break;
+ default:
+ break;
+ }
+
+ }
+
+void CVeiPopup::ShowEditAudioPopupList()
+ {
+ TInt selectedIndex; // Selected item's index in popup list.
+ TInt removeIndex; // Index to remove from list.
+
+ removeIndex = - 1; // -1 = Nothing to remove from list array.
+
+ selectedIndex = ExecutePopupListL( R_AVKON_SOFTKEYS_SELECT_CANCEL, R_VEI_POPUP_EDIT_AUDIO_TITLE, R_VEI_EDIT_AUDIO_LIST_BOX_ARRAY, removeIndex, EFalse );
+
+ switch ( selectedIndex )
+ {
+ case 0:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditVideoCutting );
+ break;
+ case 1:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditVideoMove );
+ break;
+ case 2:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditAudioSetDuration );
+ break;
+ case 3:
+ iView.HandleCommandL( EVeiCmdEditVideoAdjustVolume );
+ break;
+ case 4:
+ iView.HandleCommandL( EVeiCmdEditVideoViewEditVideoRemove );
+ break;
+ case 5:
+ iView.HandleCommandL( EVeiCmdEditVideoDuplicate );
+ break;
+ default:
+ break;
+ }
+
+ }
+
+TBool CVeiPopup::ShowColorSelectorL( TRgb& aColor )const
+ {
+ TBool noneChosen = EFalse;
+ /* None color option: True/False */
+
+
+ TBool noneExist = EFalse;
+
+ CArrayFixFlat < TRgb > * colors = new( ELeave )CArrayFixFlat < TRgb > ( 16 );
+ CleanupStack::PushL( colors );
+
+ colors->AppendL( TRgb( 0xffffff ));
+ colors->AppendL( TRgb( 0xcccccc ));
+ colors->AppendL( TRgb( 0x4d4d4d ));
+ colors->AppendL( TRgb( 0x000000 ));
+ colors->AppendL( TRgb( 0x00ffff ));
+ colors->AppendL( TRgb( 0x44d8ff ));
+ colors->AppendL( TRgb( 0x0268ff ));
+ colors->AppendL( TRgb( 0x001ef1 ));
+ colors->AppendL( TRgb( 0x00ffb9 ));
+ colors->AppendL( TRgb( 0x00c873 ));
+ colors->AppendL( TRgb( 0x026c3e ));
+ colors->AppendL( TRgb( 0x0017c8 ));
+ colors->AppendL( TRgb( 0xe7be7a ));
+ colors->AppendL( TRgb( 0xff9b00 ));
+ colors->AppendL( TRgb( 0xb36718 ));
+ colors->AppendL( TRgb( 0x803e00 ));
+
+
+ CAknColourSelectionGrid* d = CAknColourSelectionGrid::NewL( colors, noneExist, noneChosen, aColor );
+ TBool selected = d->ExecuteLD();
+ CleanupStack::PopAndDestroy( colors );
+
+ //return !noneChosen;
+ return selected;
+ }
+
+// End of File