videditor/ManualVideoEditor/src/VeiIconBox.cpp
changeset 0 951a5db380a0
equal deleted inserted replaced
-1:000000000000 0:951a5db380a0
       
     1 /*
       
     2 * Copyright (c) 2010 Ixonos Plc.
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - Initial contribution
       
    11 *
       
    12 * Contributors:
       
    13 * Ixonos Plc
       
    14 *
       
    15 * Description: 
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 // INCLUDE FILES
       
    21 
       
    22 // System includes
       
    23 #include <coemain.h>
       
    24 #include <akniconutils.h>
       
    25 #include <manualvideoeditor.mbg>
       
    26 #include <videoeditoruicomponents.mbg>
       
    27 
       
    28 // User includes
       
    29 #include "veiappui.h"
       
    30 #include "veieditvideocontainer.h"
       
    31 #include "VeiIconBox.h"
       
    32 #include "VideoEditorUtils.h"
       
    33 
       
    34 
       
    35 CVeiIconBox* CVeiIconBox::NewL( const TRect& aRect, const CCoeControl* aParent )
       
    36     {
       
    37     CVeiIconBox* self = CVeiIconBox::NewLC( aRect, aParent );
       
    38     CleanupStack::Pop( self );
       
    39     return self;
       
    40     }
       
    41 
       
    42 CVeiIconBox* CVeiIconBox::NewLC( const TRect& aRect, const CCoeControl* aParent )
       
    43     {
       
    44     CVeiIconBox* self = new( ELeave )CVeiIconBox;
       
    45     CleanupStack::PushL( self );
       
    46     self->ConstructL( aRect, aParent );
       
    47     return self;
       
    48     }
       
    49 
       
    50 void CVeiIconBox::ConstructL( const TRect& aRect, const CCoeControl* aParent )
       
    51     {
       
    52     SetContainerWindowL( *aParent );
       
    53 
       
    54     TFileName mbmPath( VideoEditorUtils::IconFileNameAndPath( KManualVideoEditorIconFileId ));
       
    55     TFileName mbmPath2( VideoEditorUtils::IconFileNameAndPath( KVideoEditorUiComponentsIconFileId ));
       
    56 
       
    57     AknIconUtils::CreateIconL( iVolumeMute, 
       
    58                                iVolumeMuteMask, 
       
    59                                mbmPath, 
       
    60                                EMbmManualvideoeditorQgn_prop_ve_muted, 
       
    61                                EMbmManualvideoeditorQgn_prop_ve_muted_mask );
       
    62 
       
    63     AknIconUtils::CreateIconL( iSlowMotion, 
       
    64                                iSlowMotionMask, 
       
    65                                mbmPath, 
       
    66                                EMbmManualvideoeditorQgn_prop_ve_slow, 
       
    67                                EMbmManualvideoeditorQgn_prop_ve_slow_mask );
       
    68 
       
    69     AknIconUtils::CreateIconL( iBlackAndWhite, 
       
    70                                iBlackAndWhiteMask, 
       
    71                                mbmPath, 
       
    72                                EMbmManualvideoeditorQgn_prop_ve_bw, 
       
    73                                EMbmManualvideoeditorQgn_prop_ve_bw_mask );
       
    74 
       
    75     AknIconUtils::CreateIconL( iColour, 
       
    76                                iColourMask, 
       
    77                                mbmPath, 
       
    78                                EMbmManualvideoeditorQgn_prop_ve_colour, 
       
    79                                EMbmManualvideoeditorQgn_prop_ve_colour_mask );
       
    80 
       
    81     AknIconUtils::CreateIconL( iRecAudio, 
       
    82                                iRecAudioMask, 
       
    83                                mbmPath, 
       
    84                                EMbmManualvideoeditorQgn_prop_ve_rec, 
       
    85                                EMbmManualvideoeditorQgn_prop_ve_rec_mask );
       
    86 
       
    87     AknIconUtils::CreateIconL( iPauseAudio, 
       
    88                                iPauseAudioMask, 
       
    89                                mbmPath2, 
       
    90                                EMbmVideoeditoruicomponentsQgn_prop_ve_pause, 
       
    91                                EMbmVideoeditoruicomponentsQgn_prop_ve_pause_mask );
       
    92 
       
    93     SetRect( aRect );
       
    94     ActivateL();
       
    95     }
       
    96 
       
    97 CVeiIconBox::~CVeiIconBox()
       
    98     {
       
    99     delete iBlackAndWhite;
       
   100     delete iBlackAndWhiteMask;
       
   101     delete iColour;
       
   102     delete iColourMask;
       
   103     delete iSlowMotion;
       
   104     delete iSlowMotionMask;
       
   105     delete iVolumeMute;
       
   106     delete iVolumeMuteMask;
       
   107     delete iRecAudio;
       
   108     delete iRecAudioMask;
       
   109     delete iPauseAudio;
       
   110     delete iPauseAudioMask;
       
   111     }
       
   112 
       
   113 
       
   114 void CVeiIconBox::SizeChanged()
       
   115     {
       
   116     TRect rect = Rect();
       
   117     TSize iconSize;
       
   118     if ( !iLandscapeScreenOrientation )
       
   119         {
       
   120         iconSize.SetSize( rect.Width(), rect.Width());
       
   121         }
       
   122     else
       
   123         {
       
   124         iconSize.SetSize( rect.Height(), rect.Height());
       
   125         }
       
   126 
       
   127     AknIconUtils::SetSize( iVolumeMute, iconSize, EAspectRatioNotPreserved );
       
   128     AknIconUtils::SetSize( iSlowMotion, iconSize, EAspectRatioNotPreserved );
       
   129     AknIconUtils::SetSize( iBlackAndWhite, iconSize, EAspectRatioNotPreserved );
       
   130     AknIconUtils::SetSize( iColour, iconSize, EAspectRatioNotPreserved );
       
   131     AknIconUtils::SetSize( iRecAudio, iconSize, EAspectRatioNotPreserved );
       
   132     AknIconUtils::SetSize( iPauseAudio, iconSize, EAspectRatioNotPreserved );
       
   133     }
       
   134 
       
   135 void CVeiIconBox::SetLandscapeScreenOrientation( TBool aLandscapeScreenOrientation )
       
   136     {
       
   137     iLandscapeScreenOrientation = aLandscapeScreenOrientation;
       
   138     }
       
   139 
       
   140 void CVeiIconBox::SetVolumeMuteIconVisibility( TBool aVisible )
       
   141     {
       
   142     iVolumeMuteIconVisible = aVisible;
       
   143     DrawDeferred();
       
   144     }
       
   145 
       
   146 void CVeiIconBox::SetSlowMotionIconVisibility( TBool aVisible )
       
   147     {
       
   148     iSlowMotionIconVisible = aVisible;
       
   149     DrawDeferred();
       
   150     }
       
   151 
       
   152 void CVeiIconBox::SetBlackAndWhiteIconVisibility( TBool aVisible )
       
   153     {
       
   154     iBlackAndWhiteIconVisible = aVisible;
       
   155     DrawDeferred();
       
   156     }
       
   157 
       
   158 void CVeiIconBox::SetColourIconVisibility( TBool aVisible )
       
   159     {
       
   160     iColourIconVisible = aVisible;
       
   161     DrawDeferred();
       
   162     }
       
   163 
       
   164 void CVeiIconBox::SetRecAudioIconVisibility( TBool aVisible )
       
   165     {
       
   166     iRecAudioIconVisibile = aVisible;
       
   167     DrawDeferred();
       
   168     }
       
   169 
       
   170 void CVeiIconBox::SetPauseAudioIconVisibility( TBool aVisible )
       
   171     {
       
   172     iPauseAudioIconVisibile = aVisible;
       
   173     DrawDeferred();
       
   174     }
       
   175 
       
   176 
       
   177 
       
   178 void CVeiIconBox::Draw( const TRect& aRect )const
       
   179     {
       
   180     CWindowGc& gc = SystemGc();
       
   181 
       
   182     TRect rect = aRect;
       
   183 
       
   184     TPoint slowMotionPos;
       
   185     TPoint BWPos;
       
   186 
       
   187     /* Icon area frame */
       
   188 
       
   189     if ( !iLandscapeScreenOrientation )
       
   190     // Portrait
       
   191         {
       
   192         TInt symboldistance = STATIC_CAST( TInt, rect.Size().iHeight* 0.01428571 );
       
   193         /** volume, rec and pause icons are on same position.*/
       
   194         if ( iVolumeMuteIconVisible )
       
   195             {
       
   196             TPoint audioMutePos( rect.iTl );
       
   197             TRect clipRect( TPoint( 0, 0 ), iVolumeMute->SizeInPixels().AsPoint());
       
   198             gc.BitBltMasked( audioMutePos, iVolumeMute, clipRect, iVolumeMuteMask, EFalse );
       
   199             }
       
   200         else
       
   201             {
       
   202             if ( iRecAudioIconVisibile )
       
   203                 {
       
   204                 TPoint audioRecPos( rect.iTl );
       
   205                 TRect clipRect( TPoint( 0, 0 ), iRecAudio->SizeInPixels().AsPoint());
       
   206                 gc.BitBltMasked( audioRecPos, iRecAudio, clipRect, iRecAudioMask, EFalse );
       
   207                 }
       
   208             else if ( iPauseAudioIconVisibile )
       
   209                 {
       
   210                 TPoint audioPausePos( rect.iTl );
       
   211                 TRect clipRect( TPoint( 0, 0 ), iPauseAudio->SizeInPixels().AsPoint());
       
   212                 gc.BitBltMasked( audioPausePos, iPauseAudio, clipRect, iPauseAudioMask, EFalse );
       
   213                 }
       
   214             }
       
   215 
       
   216         if ( iSlowMotionIconVisible )
       
   217             {
       
   218             slowMotionPos.SetXY( rect.iTl.iX, rect.iTl.iY + iVolumeMute->SizeInPixels().iHeight + symboldistance );
       
   219             TRect clipRect( TPoint( 0, 0 ), iVolumeMute->SizeInPixels().AsPoint());
       
   220             gc.BitBltMasked( slowMotionPos, iSlowMotion, clipRect, iSlowMotionMask, EFalse );
       
   221             }
       
   222 
       
   223 
       
   224         if ( iBlackAndWhiteIconVisible )
       
   225             {
       
   226             BWPos.SetXY( rect.iTl.iX, rect.iTl.iY + iVolumeMute->SizeInPixels().iHeight + iSlowMotion->SizeInPixels().iHeight + symboldistance* 2 );
       
   227             TRect clipRect( TPoint( 0, 0 ), iVolumeMute->SizeInPixels().AsPoint());
       
   228             gc.BitBltMasked( BWPos, iBlackAndWhite, clipRect, iBlackAndWhiteMask, EFalse );
       
   229             }
       
   230 
       
   231         if ( iColourIconVisible )
       
   232             {
       
   233             BWPos.SetXY( rect.iTl.iX, rect.iTl.iY + iVolumeMute->SizeInPixels().iHeight + iSlowMotion->SizeInPixels().iHeight + symboldistance* 2 );
       
   234             TRect clipRect( TPoint( 0, 0 ), iVolumeMute->SizeInPixels().AsPoint());
       
   235             gc.BitBltMasked( BWPos, iColour, clipRect, iColourMask, EFalse );
       
   236             }
       
   237 
       
   238 
       
   239         }
       
   240     else
       
   241     // Landscape
       
   242         {
       
   243         TInt symboldistance = STATIC_CAST( TInt, rect.Size().iWidth* 0.04347826 );
       
   244         if ( iVolumeMuteIconVisible )
       
   245             {
       
   246             TPoint audioMutePos( rect.iTl );
       
   247             TRect clipRect( TPoint( 0, 0 ), iVolumeMute->SizeInPixels().AsPoint());
       
   248             gc.BitBltMasked( audioMutePos, iVolumeMute, clipRect, iVolumeMuteMask, EFalse );
       
   249             }
       
   250         else
       
   251             {
       
   252             if ( iRecAudioIconVisibile )
       
   253                 {
       
   254                 TPoint audioRecPos( rect.iTl );
       
   255                 TRect clipRect( TPoint( 0, 0 ), iRecAudio->SizeInPixels().AsPoint());
       
   256                 gc.BitBltMasked( audioRecPos, iRecAudio, clipRect, iRecAudioMask, EFalse );
       
   257                 }
       
   258             else if ( iPauseAudioIconVisibile )
       
   259                 {
       
   260                 TPoint audioPausePos( rect.iTl );
       
   261                 TRect clipRect( TPoint( 0, 0 ), iPauseAudio->SizeInPixels().AsPoint());
       
   262                 gc.BitBltMasked( audioPausePos, iPauseAudio, clipRect, iPauseAudioMask, EFalse );
       
   263                 }
       
   264             }
       
   265 
       
   266         if ( iSlowMotionIconVisible )
       
   267             {
       
   268             slowMotionPos.SetXY( rect.iTl.iX + iVolumeMute->SizeInPixels().iWidth + symboldistance, rect.iTl.iY );
       
   269             TRect clipRect( TPoint( 0, 0 ), iVolumeMute->SizeInPixels().AsPoint());
       
   270             gc.BitBltMasked( slowMotionPos, iSlowMotion, clipRect, iSlowMotionMask, EFalse );
       
   271             }
       
   272 
       
   273         if ( iBlackAndWhiteIconVisible )
       
   274             {
       
   275             BWPos.SetXY( rect.iTl.iX + iVolumeMute->SizeInPixels().iWidth + iSlowMotion->SizeInPixels().iWidth + symboldistance * 2, rect.iTl.iY );
       
   276             TRect clipRect( TPoint( 0, 0 ), iVolumeMute->SizeInPixels().AsPoint());
       
   277             gc.BitBltMasked( BWPos, iBlackAndWhite, clipRect, iBlackAndWhiteMask, EFalse );
       
   278             }
       
   279 
       
   280         if ( iColourIconVisible )
       
   281             {
       
   282             BWPos.SetXY( rect.iTl.iX + iVolumeMute->SizeInPixels().iWidth + iSlowMotion->SizeInPixels().iWidth + symboldistance * 2, rect.iTl.iY );
       
   283             TRect clipRect( TPoint( 0, 0 ), iVolumeMute->SizeInPixels().AsPoint());
       
   284             gc.BitBltMasked( BWPos, iColour, clipRect, iColourMask, EFalse );
       
   285             }
       
   286         }
       
   287     }
       
   288 
       
   289 // End of File