videoplayback/videoplaybackcontrols/src/mpxvideoplaybackvolumebar.cpp
branchRCL_3
changeset 10 112a725ff2c2
parent 6 7d91903f795f
child 11 8970fbd719ec
equal deleted inserted replaced
9:5294c000a26d 10:112a725ff2c2
    13 *
    13 *
    14 * Description: Volume bar control
    14 * Description: Volume bar control
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 // Version : %version: 16 %
    18 // Version : %version: e003sa33#19 %
    19 
    19 
    20 
    20 
    21 // INCLUDE FILES
    21 // INCLUDE FILES
    22 #include <eikenv.h>
    22 #include <eikenv.h>
    23 #include <gulicon.h>
    23 #include <gulicon.h>
    26 #include <AknIconUtils.h>
    26 #include <AknIconUtils.h>
    27 #include <StringLoader.h>
    27 #include <StringLoader.h>
    28 #include <AknsDrawUtils.h>
    28 #include <AknsDrawUtils.h>
    29 #include <data_caging_path_literals.hrh>
    29 #include <data_caging_path_literals.hrh>
    30 #include <aknlayoutscalable_avkon.cdl.h>
    30 #include <aknlayoutscalable_avkon.cdl.h>
       
    31 #include <aknlayoutscalable_apps.cdl.h>
    31 #include <mpxvideoplaybackcontrols.mbg>
    32 #include <mpxvideoplaybackcontrols.mbg>
    32 
    33 
    33 #include "mpxcommonvideoplaybackview.hrh"
    34 #include "mpxcommonvideoplaybackview.hrh"
    34 #include "mpxvideoplaybackvolumebar.h"
    35 #include "mpxvideoplaybackvolumebar.h"
    35 #include "mpxvideoplaybackviewfiledetails.h"
    36 #include "mpxvideoplaybackviewfiledetails.h"
    41 #endif //RD_TACTILE_FEEDBACK
    42 #endif //RD_TACTILE_FEEDBACK
    42 
    43 
    43 // CONSTANTS
    44 // CONSTANTS
    44 const TInt KMPXSliderHeight = 30;
    45 const TInt KMPXSliderHeight = 30;
    45 const TInt KMPXSliderWidth = 18;
    46 const TInt KMPXSliderWidth = 18;
    46 const TInt KMPXVolumeBarWidth = 24;
       
    47 const TInt KMPXVolumeDragEventTimeOut = 100000;
    47 const TInt KMPXVolumeDragEventTimeOut = 100000;
    48 const TInt KMPXPtrEventRepeatRequestTime = 200000;
    48 const TInt KMPXPtrEventRepeatRequestTime = 200000;
       
    49 
       
    50 using namespace AknLayoutScalable_Apps;
       
    51 using namespace AknLayoutScalable_Avkon;
    49 
    52 
    50 // ============================ MEMBER FUNCTIONS ===================================================
    53 // ============================ MEMBER FUNCTIONS ===================================================
    51 
    54 
    52 CMPXVideoPlaybackVolumeBar::CMPXVideoPlaybackVolumeBar(
    55 CMPXVideoPlaybackVolumeBar::CMPXVideoPlaybackVolumeBar(
    53     CMPXVideoPlaybackControlsController* aController, TRect aRect )
    56     CMPXVideoPlaybackControlsController* aController, TRect aRect )
   204 //
   207 //
   205 void CMPXVideoPlaybackVolumeBar::SetLayout()
   208 void CMPXVideoPlaybackVolumeBar::SetLayout()
   206 {
   209 {
   207     MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::SetLayout()"));
   210     MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::SetLayout()"));
   208 
   211 
   209     //
   212     TAknLayoutRect tmpLayoutRect;
   210     // Calculate icon rects
   213 
   211     //
   214     iRect = TRect( 0, 0, iRect.Width(), iRect.Height() );
   212     iRect = TRect(0, 0, iRect.Width(), iRect.Height() );
   215 
   213     TInt volumeUpDownIndicatorSize = iRect.Width() / 3;
   216     tmpLayoutRect.LayoutRect( iRect, bg_popup_window_pane_cp19( 9 ).LayoutLine() );
   214 
   217     iVolumeControlRect = tmpLayoutRect.Rect();
   215     iVolumeControlRect = TRect( volumeUpDownIndicatorSize,
   218 
   216                                 iRect.iTl.iY,
   219 
   217                                 iRect.iBr.iX,
   220     tmpLayoutRect.LayoutRect( iRect, aid_touch_area_slider( 6 ).LayoutLine() );
   218                                 iRect.iTl.iY + iRect.Height() * 4 / 5 );
   221     iVolumeBarRect = tmpLayoutRect.Rect();
   219 
   222 
   220     iVolumeBarRect =  TRect( iVolumeControlRect.iTl.iX + iVolumeControlRect.Width() / 3,
   223     tmpLayoutRect.LayoutRect( iRect, slider_pane( 6 ).LayoutLine() );
   221                              iVolumeControlRect.iTl.iY + iVolumeControlRect.Height() / 20,
   224     TRect sliderBarRect( tmpLayoutRect.Rect() );
   222                              iVolumeControlRect.iTl.iX + iVolumeControlRect.Width() / 3 * 2,
   225     TInt volumeBarEndHeight = sliderBarRect.Height() / 10;
   223                              iVolumeControlRect.iTl.iY + iVolumeControlRect.Height() );
   226     iVolumeBarRectTop = TRect( sliderBarRect.iTl.iX,
   224 
   227                                sliderBarRect.iTl.iY,
   225     iVolumeBarRectTop = TRect( iRect.Width() / 2 - KMPXVolumeBarWidth / 2 ,
   228                                sliderBarRect.iBr.iX,
   226                                iVolumeBarRect.iTl.iY,
   229                                sliderBarRect.iTl.iY + volumeBarEndHeight );
   227                                iRect.Width() / 2 + KMPXVolumeBarWidth / 2,
   230 
   228                                iVolumeBarRect.iTl.iY + iVolumeBarRect.Height() / 10 );
   231     iVolumeBarRectBottom = TRect( sliderBarRect.iTl.iX,
       
   232                                   sliderBarRect.iBr.iY - volumeBarEndHeight,
       
   233                                   sliderBarRect.iBr.iX,
       
   234                                   sliderBarRect.iBr.iY );
   229 
   235 
   230     iVolumeBarRectMiddle = TRect( iVolumeBarRectTop.iTl.iX,
   236     iVolumeBarRectMiddle = TRect( iVolumeBarRectTop.iTl.iX,
   231                                   iVolumeBarRectTop.iBr.iY,
   237                                   iVolumeBarRectTop.iBr.iY,
   232                                   iVolumeBarRectTop.iBr.iX,
   238                                   iVolumeBarRectTop.iBr.iX,
   233                                   iVolumeBarRectTop.iBr.iY + iVolumeBarRectTop.Height() * 8 );
   239                                   iVolumeBarRectBottom.iTl.iY );
   234 
   240 
   235     iVolumeBarRectBottom = TRect( iVolumeBarRectTop.iTl.iX,
   241     TInt volumeBarMiddleX = sliderBarRect.iTl.iX + sliderBarRect.Width() / 2;
   236                                   iVolumeBarRectMiddle.iBr.iY,
   242     iSliderRect = TRect( volumeBarMiddleX - KMPXSliderWidth / 2,
   237                                   iVolumeBarRectTop.iBr.iX,
   243                          sliderBarRect.iBr.iY - KMPXSliderHeight,
   238                                   iVolumeBarRect.iBr.iY );
   244                          volumeBarMiddleX + KMPXSliderWidth / 2,
   239 
   245                          sliderBarRect.iBr.iY );
   240     iSliderRect = TRect( iRect.Width() / 2 - KMPXSliderWidth / 2 + 3,
   246 
   241                          iVolumeBarRect.iBr.iY - KMPXSliderHeight,
   247     tmpLayoutRect.LayoutRect( iRect, aid_touch_area_increase( 6 ).LayoutLine() );
   242                          iRect.Width() / 2 + KMPXSliderWidth / 2 + 3,
   248     iVolumeUpControlRect = tmpLayoutRect.Rect();
   243                          iVolumeBarRect.iBr.iY );
   249 
   244 
   250     tmpLayoutRect.LayoutRect( iRect, aid_touch_area_decrease( 6 ).LayoutLine() );
   245     iVolumeUpControlRect = TRect( iRect.iTl,
   251     iVolumeDownControlRect = tmpLayoutRect.Rect();
   246                            TSize( volumeUpDownIndicatorSize,
   252 
   247                                   iVolumeControlRect.Height() / 2 ) );
   253     tmpLayoutRect.LayoutRect( iRect, popup_slider_window_g4( 6 ).LayoutLine() );
   248 
   254     iVolumeUpRect = tmpLayoutRect.Rect();
   249     iVolumeDownControlRect = TRect( TPoint ( iRect.iTl.iX, iVolumeControlRect.Height() / 2 ),
   255 
   250                                     iVolumeUpControlRect.Size() );
   256     tmpLayoutRect.LayoutRect( iRect, popup_slider_window_g5( 6 ).LayoutLine() );
   251 
   257     iVolumeDownRect = tmpLayoutRect.Rect();
   252     iVolumeUpRect = TRect( iVolumeUpControlRect.iTl.iX + 2,
   258 
   253                            iVolumeUpControlRect.iTl.iY + 8,
   259     tmpLayoutRect.LayoutRect( iRect, aid_touch_area_mute( 4 ).LayoutLine() );
   254                            iVolumeUpControlRect.iBr.iX + 2,
   260     iSpeakerControlRect = tmpLayoutRect.Rect();
   255                            iVolumeUpControlRect.iTl.iY + volumeUpDownIndicatorSize );
   261 
   256 
   262     tmpLayoutRect.LayoutRect( iRect, popup_slider_window_g6( 2 ).LayoutLine() );
   257     iVolumeDownRect = TRect( iVolumeUpRect.iTl.iX,
   263     iSpeakerRect = tmpLayoutRect.Rect();
   258                              iVolumeDownControlRect.iBr.iY - volumeUpDownIndicatorSize,
       
   259                              iVolumeUpRect.iBr.iX,
       
   260                              iVolumeDownControlRect.iBr.iY  );
       
   261 
       
   262     iSpeakerControlRect = TRect( TPoint( iRect.iTl.iX, iVolumeControlRect.iBr.iY ),
       
   263                                  iRect.iBr );
       
   264 
       
   265     iSpeakerRect = TRect( iSpeakerControlRect.iTl.iX + iSpeakerControlRect.Width() / 5,
       
   266                           iSpeakerControlRect.iTl.iY + iSpeakerControlRect.Height() / 5,
       
   267                           iSpeakerControlRect.iBr.iX - iSpeakerControlRect.Width() / 5,
       
   268                           iSpeakerControlRect.iBr.iY - iSpeakerControlRect.Height() / 5 );
       
   269 
   264 
   270     iOneVolumeIncrementHeight = (TReal)( iVolumeBarRect.Height() - KMPXSliderHeight )
   265     iOneVolumeIncrementHeight = (TReal)( iVolumeBarRect.Height() - KMPXSliderHeight )
   271                                 / (TReal)KPbPlaybackVolumeLevelMax;
   266                                 / (TReal)KPbPlaybackVolumeLevelMax;
   272 }
   267 }
   273 
   268 
   411 		    EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_top_mask );
   406 		    EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_top_mask );
   412 
   407 
   413     if ( iVolumeFrameIconTop )
   408     if ( iVolumeFrameIconTop )
   414     {
   409     {
   415         AknIconUtils::SetSize( iVolumeFrameIconTop->Bitmap(),
   410         AknIconUtils::SetSize( iVolumeFrameIconTop->Bitmap(),
   416                                TSize( KMPXVolumeBarWidth, iVolumeBarRectTop.Height() ),
   411                                TSize( iVolumeBarRectTop.Width(), iVolumeBarRectTop.Height() ),
   417                                EAspectRatioNotPreserved );
   412                                EAspectRatioNotPreserved );
   418     }
   413     }
   419 
   414 
   420     delete iVolumeFrameIconMiddle;
   415     delete iVolumeFrameIconMiddle;
   421     iVolumeFrameIconMiddle = NULL;
   416     iVolumeFrameIconMiddle = NULL;
   427 		    EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_middle_mask );
   422 		    EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_middle_mask );
   428 
   423 
   429     if ( iVolumeFrameIconMiddle )
   424     if ( iVolumeFrameIconMiddle )
   430     {
   425     {
   431         AknIconUtils::SetSize( iVolumeFrameIconMiddle->Bitmap(),
   426         AknIconUtils::SetSize( iVolumeFrameIconMiddle->Bitmap(),
   432                                TSize( KMPXVolumeBarWidth, iVolumeBarRectMiddle.Height() ),
   427                                TSize( iVolumeBarRectMiddle.Width(), iVolumeBarRectMiddle.Height() ),
   433                                EAspectRatioNotPreserved );
   428                                EAspectRatioNotPreserved );
   434     }
   429     }
   435 
   430 
   436     delete iVolumeFrameIconBottom;
   431     delete iVolumeFrameIconBottom;
   437     iVolumeFrameIconBottom = NULL;
   432     iVolumeFrameIconBottom = NULL;
   443 		    EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_bottom_mask );
   438 		    EMbmMpxvideoplaybackcontrolsQgn_graf_nslider_vertical_bottom_mask );
   444 
   439 
   445     if ( iVolumeFrameIconBottom )
   440     if ( iVolumeFrameIconBottom )
   446     {
   441     {
   447         AknIconUtils::SetSize( iVolumeFrameIconBottom->Bitmap(),
   442         AknIconUtils::SetSize( iVolumeFrameIconBottom->Bitmap(),
   448                                TSize( KMPXVolumeBarWidth, iVolumeBarRectBottom.Height() ),
   443                                TSize( iVolumeBarRectBottom.Width(), iVolumeBarRectBottom.Height() ),
   449                                EAspectRatioNotPreserved );
   444                                EAspectRatioNotPreserved );
       
   445     }
       
   446 
       
   447     // Calculate the X coordinate to center the icon of sliderbar
       
   448     TRect volumeBarRectPart;
       
   449     CGulIcon* volumeFrameIconPart = NULL;
       
   450     if ( iVolumeFrameIconTop )
       
   451     {
       
   452         volumeFrameIconPart = iVolumeFrameIconTop;
       
   453         volumeBarRectPart = iVolumeBarRectTop;
       
   454     }
       
   455     else if ( iVolumeFrameIconMiddle )
       
   456     {
       
   457         volumeFrameIconPart = iVolumeFrameIconMiddle;
       
   458         volumeBarRectPart = iVolumeBarRectMiddle;
       
   459     }
       
   460     else if ( iVolumeFrameIconBottom )
       
   461     {
       
   462         volumeFrameIconPart = iVolumeFrameIconBottom;
       
   463         volumeBarRectPart = iVolumeBarRectBottom;
       
   464     }
       
   465 
       
   466     if ( volumeFrameIconPart )
       
   467     {
       
   468         iCenteredSliderbarIconX = volumeBarRectPart.iTl.iX +
       
   469             ( volumeBarRectPart.Width() -
       
   470               volumeFrameIconPart->Bitmap()->SizeInPixels().iWidth ) / 2;
   450     }
   471     }
   451 }
   472 }
   452 
   473 
   453 // -------------------------------------------------------------------------------------------------
   474 // -------------------------------------------------------------------------------------------------
   454 //   CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL
   475 //   CMPXVideoPlaybackVolumeBar::HandleVolumeIncreaseL
   740 {
   761 {
   741     MPX_ENTER_EXIT(_L("CMPXVideoPlaybackController::DoHandleVolumeDragEventTimeOut()"));
   762     MPX_ENTER_EXIT(_L("CMPXVideoPlaybackController::DoHandleVolumeDragEventTimeOut()"));
   742 
   763 
   743     if ( iDragging == EVolumeBarDragging )
   764     if ( iDragging == EVolumeBarDragging )
   744     {
   765     {
   745         SetVolumeL( iVolumeWhileDraggingEvent );
   766         MPX_TRAPD( err, SetVolumeL( iVolumeWhileDraggingEvent ) );
   746     }
   767     }
   747 }
   768 }
   748 
   769 
   749 // -------------------------------------------------------------------------------------------------
   770 // -------------------------------------------------------------------------------------------------
   750 //   CMPXVideoPlaybackVolumeBar::HandlePointerEventL
   771 //   CMPXVideoPlaybackVolumeBar::HandlePointerEventL
   885                          TRect(iVolumeDownRect.Size()),
   906                          TRect(iVolumeDownRect.Size()),
   886                          iVolumeDownIcon->Mask(),
   907                          iVolumeDownIcon->Mask(),
   887                          ETrue );
   908                          ETrue );
   888     }
   909     }
   889 
   910 
       
   911     TPoint srcPoint( iCenteredSliderbarIconX, 0 );
   890     if ( iVolumeFrameIconTop )
   912     if ( iVolumeFrameIconTop )
   891     {
   913     {
   892         gc.BitBltMasked( iVolumeBarRectTop.iTl,
   914         srcPoint.iY = iVolumeBarRectTop.iTl.iY;
       
   915         gc.BitBltMasked( srcPoint,
   893                          iVolumeFrameIconTop->Bitmap(),
   916                          iVolumeFrameIconTop->Bitmap(),
   894                          TRect(iVolumeBarRectTop.Size()),
   917                          TRect(iVolumeBarRectTop.Size()),
   895                          iVolumeFrameIconTop->Mask(),
   918                          iVolumeFrameIconTop->Mask(),
   896                          ETrue );
   919                          ETrue );
   897     }
   920     }
   898 
   921 
   899     if ( iVolumeFrameIconMiddle )
   922     if ( iVolumeFrameIconMiddle )
   900     {
   923     {
   901         gc.BitBltMasked( iVolumeBarRectMiddle.iTl,
   924         srcPoint.iY = iVolumeBarRectMiddle.iTl.iY;
       
   925         gc.BitBltMasked( srcPoint,
   902                          iVolumeFrameIconMiddle->Bitmap(),
   926                          iVolumeFrameIconMiddle->Bitmap(),
   903                          TRect(iVolumeBarRectMiddle.Size()),
   927                          TRect(iVolumeBarRectMiddle.Size()),
   904                          iVolumeFrameIconMiddle->Mask(),
   928                          iVolumeFrameIconMiddle->Mask(),
   905                          ETrue );
   929                          ETrue );
   906     }
   930     }
   907 
   931 
   908     if ( iVolumeFrameIconBottom )
   932     if ( iVolumeFrameIconBottom )
   909     {
   933     {
   910         gc.BitBltMasked( iVolumeBarRectBottom.iTl,
   934         srcPoint.iY = iVolumeBarRectBottom.iTl.iY;
       
   935         gc.BitBltMasked( srcPoint,
   911                          iVolumeFrameIconBottom->Bitmap(),
   936                          iVolumeFrameIconBottom->Bitmap(),
   912                          TRect(iVolumeBarRectBottom.Size()),
   937                          TRect(iVolumeBarRectBottom.Size()),
   913                          iVolumeFrameIconBottom->Mask(),
   938                          iVolumeFrameIconBottom->Mask(),
   914                          ETrue );
   939                          ETrue );
   915     }
   940     }