videoplayback/videoplaybackcontrols/src/mpxvideoplaybackvolumebar.cpp
branchRCL_3
changeset 10 112a725ff2c2
parent 6 7d91903f795f
child 11 8970fbd719ec
--- a/videoplayback/videoplaybackcontrols/src/mpxvideoplaybackvolumebar.cpp	Mon Mar 15 12:40:47 2010 +0200
+++ b/videoplayback/videoplaybackcontrols/src/mpxvideoplaybackvolumebar.cpp	Wed Mar 31 21:34:36 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 16 %
+// Version : %version: e003sa33#19 %
 
 
 // INCLUDE FILES
@@ -28,6 +28,7 @@
 #include <AknsDrawUtils.h>
 #include <data_caging_path_literals.hrh>
 #include <aknlayoutscalable_avkon.cdl.h>
+#include <aknlayoutscalable_apps.cdl.h>
 #include <mpxvideoplaybackcontrols.mbg>
 
 #include "mpxcommonvideoplaybackview.hrh"
@@ -43,10 +44,12 @@
 // CONSTANTS
 const TInt KMPXSliderHeight = 30;
 const TInt KMPXSliderWidth = 18;
-const TInt KMPXVolumeBarWidth = 24;
 const TInt KMPXVolumeDragEventTimeOut = 100000;
 const TInt KMPXPtrEventRepeatRequestTime = 200000;
 
+using namespace AknLayoutScalable_Apps;
+using namespace AknLayoutScalable_Avkon;
+
 // ============================ MEMBER FUNCTIONS ===================================================
 
 CMPXVideoPlaybackVolumeBar::CMPXVideoPlaybackVolumeBar(
@@ -206,66 +209,58 @@
 {
     MPX_DEBUG(_L("CMPXVideoPlaybackVolumeBar::SetLayout()"));
 
-    //
-    // Calculate icon rects
-    //
-    iRect = TRect(0, 0, iRect.Width(), iRect.Height() );
-    TInt volumeUpDownIndicatorSize = iRect.Width() / 3;
+    TAknLayoutRect tmpLayoutRect;
+
+    iRect = TRect( 0, 0, iRect.Width(), iRect.Height() );
+
+    tmpLayoutRect.LayoutRect( iRect, bg_popup_window_pane_cp19( 9 ).LayoutLine() );
+    iVolumeControlRect = tmpLayoutRect.Rect();
+
+
+    tmpLayoutRect.LayoutRect( iRect, aid_touch_area_slider( 6 ).LayoutLine() );
+    iVolumeBarRect = tmpLayoutRect.Rect();
 
-    iVolumeControlRect = TRect( volumeUpDownIndicatorSize,
-                                iRect.iTl.iY,
-                                iRect.iBr.iX,
-                                iRect.iTl.iY + iRect.Height() * 4 / 5 );
+    tmpLayoutRect.LayoutRect( iRect, slider_pane( 6 ).LayoutLine() );
+    TRect sliderBarRect( tmpLayoutRect.Rect() );
+    TInt volumeBarEndHeight = sliderBarRect.Height() / 10;
+    iVolumeBarRectTop = TRect( sliderBarRect.iTl.iX,
+                               sliderBarRect.iTl.iY,
+                               sliderBarRect.iBr.iX,
+                               sliderBarRect.iTl.iY + volumeBarEndHeight );
 
-    iVolumeBarRect =  TRect( iVolumeControlRect.iTl.iX + iVolumeControlRect.Width() / 3,
-                             iVolumeControlRect.iTl.iY + iVolumeControlRect.Height() / 20,
-                             iVolumeControlRect.iTl.iX + iVolumeControlRect.Width() / 3 * 2,
-                             iVolumeControlRect.iTl.iY + iVolumeControlRect.Height() );
-
-    iVolumeBarRectTop = TRect( iRect.Width() / 2 - KMPXVolumeBarWidth / 2 ,
-                               iVolumeBarRect.iTl.iY,
-                               iRect.Width() / 2 + KMPXVolumeBarWidth / 2,
-                               iVolumeBarRect.iTl.iY + iVolumeBarRect.Height() / 10 );
+    iVolumeBarRectBottom = TRect( sliderBarRect.iTl.iX,
+                                  sliderBarRect.iBr.iY - volumeBarEndHeight,
+                                  sliderBarRect.iBr.iX,
+                                  sliderBarRect.iBr.iY );
 
     iVolumeBarRectMiddle = TRect( iVolumeBarRectTop.iTl.iX,
                                   iVolumeBarRectTop.iBr.iY,
                                   iVolumeBarRectTop.iBr.iX,
-                                  iVolumeBarRectTop.iBr.iY + iVolumeBarRectTop.Height() * 8 );
-
-    iVolumeBarRectBottom = TRect( iVolumeBarRectTop.iTl.iX,
-                                  iVolumeBarRectMiddle.iBr.iY,
-                                  iVolumeBarRectTop.iBr.iX,
-                                  iVolumeBarRect.iBr.iY );
+                                  iVolumeBarRectBottom.iTl.iY );
 
-    iSliderRect = TRect( iRect.Width() / 2 - KMPXSliderWidth / 2 + 3,
-                         iVolumeBarRect.iBr.iY - KMPXSliderHeight,
-                         iRect.Width() / 2 + KMPXSliderWidth / 2 + 3,
-                         iVolumeBarRect.iBr.iY );
+    TInt volumeBarMiddleX = sliderBarRect.iTl.iX + sliderBarRect.Width() / 2;
+    iSliderRect = TRect( volumeBarMiddleX - KMPXSliderWidth / 2,
+                         sliderBarRect.iBr.iY - KMPXSliderHeight,
+                         volumeBarMiddleX + KMPXSliderWidth / 2,
+                         sliderBarRect.iBr.iY );
 
-    iVolumeUpControlRect = TRect( iRect.iTl,
-                           TSize( volumeUpDownIndicatorSize,
-                                  iVolumeControlRect.Height() / 2 ) );
+    tmpLayoutRect.LayoutRect( iRect, aid_touch_area_increase( 6 ).LayoutLine() );
+    iVolumeUpControlRect = tmpLayoutRect.Rect();
 
-    iVolumeDownControlRect = TRect( TPoint ( iRect.iTl.iX, iVolumeControlRect.Height() / 2 ),
-                                    iVolumeUpControlRect.Size() );
+    tmpLayoutRect.LayoutRect( iRect, aid_touch_area_decrease( 6 ).LayoutLine() );
+    iVolumeDownControlRect = tmpLayoutRect.Rect();
 
-    iVolumeUpRect = TRect( iVolumeUpControlRect.iTl.iX + 2,
-                           iVolumeUpControlRect.iTl.iY + 8,
-                           iVolumeUpControlRect.iBr.iX + 2,
-                           iVolumeUpControlRect.iTl.iY + volumeUpDownIndicatorSize );
+    tmpLayoutRect.LayoutRect( iRect, popup_slider_window_g4( 6 ).LayoutLine() );
+    iVolumeUpRect = tmpLayoutRect.Rect();
 
-    iVolumeDownRect = TRect( iVolumeUpRect.iTl.iX,
-                             iVolumeDownControlRect.iBr.iY - volumeUpDownIndicatorSize,
-                             iVolumeUpRect.iBr.iX,
-                             iVolumeDownControlRect.iBr.iY  );
+    tmpLayoutRect.LayoutRect( iRect, popup_slider_window_g5( 6 ).LayoutLine() );
+    iVolumeDownRect = tmpLayoutRect.Rect();
 
-    iSpeakerControlRect = TRect( TPoint( iRect.iTl.iX, iVolumeControlRect.iBr.iY ),
-                                 iRect.iBr );
+    tmpLayoutRect.LayoutRect( iRect, aid_touch_area_mute( 4 ).LayoutLine() );
+    iSpeakerControlRect = tmpLayoutRect.Rect();
 
-    iSpeakerRect = TRect( iSpeakerControlRect.iTl.iX + iSpeakerControlRect.Width() / 5,
-                          iSpeakerControlRect.iTl.iY + iSpeakerControlRect.Height() / 5,
-                          iSpeakerControlRect.iBr.iX - iSpeakerControlRect.Width() / 5,
-                          iSpeakerControlRect.iBr.iY - iSpeakerControlRect.Height() / 5 );
+    tmpLayoutRect.LayoutRect( iRect, popup_slider_window_g6( 2 ).LayoutLine() );
+    iSpeakerRect = tmpLayoutRect.Rect();
 
     iOneVolumeIncrementHeight = (TReal)( iVolumeBarRect.Height() - KMPXSliderHeight )
                                 / (TReal)KPbPlaybackVolumeLevelMax;
@@ -413,7 +408,7 @@
     if ( iVolumeFrameIconTop )
     {
         AknIconUtils::SetSize( iVolumeFrameIconTop->Bitmap(),
-                               TSize( KMPXVolumeBarWidth, iVolumeBarRectTop.Height() ),
+                               TSize( iVolumeBarRectTop.Width(), iVolumeBarRectTop.Height() ),
                                EAspectRatioNotPreserved );
     }
 
@@ -429,7 +424,7 @@
     if ( iVolumeFrameIconMiddle )
     {
         AknIconUtils::SetSize( iVolumeFrameIconMiddle->Bitmap(),
-                               TSize( KMPXVolumeBarWidth, iVolumeBarRectMiddle.Height() ),
+                               TSize( iVolumeBarRectMiddle.Width(), iVolumeBarRectMiddle.Height() ),
                                EAspectRatioNotPreserved );
     }
 
@@ -445,9 +440,35 @@
     if ( iVolumeFrameIconBottom )
     {
         AknIconUtils::SetSize( iVolumeFrameIconBottom->Bitmap(),
-                               TSize( KMPXVolumeBarWidth, iVolumeBarRectBottom.Height() ),
+                               TSize( iVolumeBarRectBottom.Width(), iVolumeBarRectBottom.Height() ),
                                EAspectRatioNotPreserved );
     }
+
+    // Calculate the X coordinate to center the icon of sliderbar
+    TRect volumeBarRectPart;
+    CGulIcon* volumeFrameIconPart = NULL;
+    if ( iVolumeFrameIconTop )
+    {
+        volumeFrameIconPart = iVolumeFrameIconTop;
+        volumeBarRectPart = iVolumeBarRectTop;
+    }
+    else if ( iVolumeFrameIconMiddle )
+    {
+        volumeFrameIconPart = iVolumeFrameIconMiddle;
+        volumeBarRectPart = iVolumeBarRectMiddle;
+    }
+    else if ( iVolumeFrameIconBottom )
+    {
+        volumeFrameIconPart = iVolumeFrameIconBottom;
+        volumeBarRectPart = iVolumeBarRectBottom;
+    }
+
+    if ( volumeFrameIconPart )
+    {
+        iCenteredSliderbarIconX = volumeBarRectPart.iTl.iX +
+            ( volumeBarRectPart.Width() -
+              volumeFrameIconPart->Bitmap()->SizeInPixels().iWidth ) / 2;
+    }
 }
 
 // -------------------------------------------------------------------------------------------------
@@ -742,7 +763,7 @@
 
     if ( iDragging == EVolumeBarDragging )
     {
-        SetVolumeL( iVolumeWhileDraggingEvent );
+        MPX_TRAPD( err, SetVolumeL( iVolumeWhileDraggingEvent ) );
     }
 }
 
@@ -887,9 +908,11 @@
                          ETrue );
     }
 
+    TPoint srcPoint( iCenteredSliderbarIconX, 0 );
     if ( iVolumeFrameIconTop )
     {
-        gc.BitBltMasked( iVolumeBarRectTop.iTl,
+        srcPoint.iY = iVolumeBarRectTop.iTl.iY;
+        gc.BitBltMasked( srcPoint,
                          iVolumeFrameIconTop->Bitmap(),
                          TRect(iVolumeBarRectTop.Size()),
                          iVolumeFrameIconTop->Mask(),
@@ -898,7 +921,8 @@
 
     if ( iVolumeFrameIconMiddle )
     {
-        gc.BitBltMasked( iVolumeBarRectMiddle.iTl,
+        srcPoint.iY = iVolumeBarRectMiddle.iTl.iY;
+        gc.BitBltMasked( srcPoint,
                          iVolumeFrameIconMiddle->Bitmap(),
                          TRect(iVolumeBarRectMiddle.Size()),
                          iVolumeFrameIconMiddle->Mask(),
@@ -907,7 +931,8 @@
 
     if ( iVolumeFrameIconBottom )
     {
-        gc.BitBltMasked( iVolumeBarRectBottom.iTl,
+        srcPoint.iY = iVolumeBarRectBottom.iTl.iY;
+        gc.BitBltMasked( srcPoint,
                          iVolumeFrameIconBottom->Bitmap(),
                          TRect(iVolumeBarRectBottom.Size()),
                          iVolumeFrameIconBottom->Mask(),