diff -r b023a8d2866a -r ea65f74e6de4 photosgallery/viewframework/views/cloudview/src/glxcloudviewcontrol.cpp --- a/photosgallery/viewframework/views/cloudview/src/glxcloudviewcontrol.cpp Thu Jul 15 18:39:01 2010 +0300 +++ b/photosgallery/viewframework/views/cloudview/src/glxcloudviewcontrol.cpp Thu Aug 19 09:55:03 2010 +0300 @@ -44,7 +44,6 @@ #include //attribute context #include //for medialist -#include "glxcontainerinfobubble.h" //intelligent class for data of infobubble #include "glxcloudview.hrh" #include "mglxcloudviewmskobserver.h" // For Msk Observer #include "mglxenterkeyeventobserver.h" // For enterkey observer @@ -62,7 +61,7 @@ const TInt KRowHeight = 72; const TInt KLeftMargin = 10; const TInt KNumMinRowSpace = 2; -const TInt KColSpace = 20; +const TInt KColSpace = 30; const TInt KRightmargin = 10;//Aligning Right margin const TInt KMinTagSize = 77; const TInt KTagScreenHeight = 460; @@ -272,20 +271,23 @@ TInt CGlxCloudViewControl::LayoutVisibleRows(TPoint aStartPoint,TInt aRowStartIndex , TInt aRowEndIndex) { - TRACER("GLX_CLOUD::CGlxCloudViewControl::DrawRow"); + TRACER("CGlxCloudViewControl::LayoutVisibleRows"); TSize vsize; TPoint tl, br; tl = aStartPoint; + br.iX = 0; br.iY = tl.iY + KRowHeight; + const TInt KMaxScreenWidth = iTagScreenWidth - iScrollPaneHandle.iW; //drawing in reverse for arabic hebrew support if ( GlxGeneralUiUtilities::LayoutIsMirrored ()) { - br.iX = aStartPoint.iX; - const TInt KMaxScreenWidth = iTagScreenWidth - iScrollPaneHandle.iW; + GLX_LOG_INFO("Mirrorred Layout"); + //In Mirrored layout, 'BottomRight' considers scrollpane width for each row + br.iX = aStartPoint.iX - iScrollPaneHandle.iW; //Set the positions of tags in a row. for (TInt j = aRowStartIndex; j <= aRowEndIndex; j++) { - vsize = iLabels[j]->TextExtents (); + vsize = iLabels[j]->TextExtents(); if ( vsize.iWidth < KMinTagSize ) { vsize.iWidth = KMinTagSize; @@ -295,15 +297,15 @@ { TAlfRealSize tagSize( KMaxScreenWidth, br.iY ); iLabels[j]->SetWrapping( CAlfTextVisual::ELineWrapTruncate ); - vsize = iLabels[j]->TextExtents (); tl.iX -= aStartPoint.iX; tl.iY = aStartPoint.iY; br.iX = tagSize.iWidth; } else { - tl.iX -= (vsize.iWidth + KColSpace); + tl.iX = br.iX - vsize.iWidth; } + //Set the anchor points for the tags iLayout->SetAnchor (EAlfAnchorTopLeft, iLayoutIndex, EAlfAnchorOriginLeft, EAlfAnchorOriginTop, @@ -313,17 +315,17 @@ EAlfAnchorOriginLeft, EAlfAnchorOriginTop, EAlfAnchorMetricAbsolute, EAlfAnchorMetricAbsolute, TAlfTimedPoint (br.iX, br.iY)); + //Bottom-Right corner for next tag in same row br.iX -= (vsize.iWidth + KColSpace); iLayoutIndex += 1; } - } else { - const TInt KMaxScreenWidth = iTagScreenWidth - iScrollPaneHandle.iW; + GLX_LOG_INFO("NOT Mirrorred Layout"); for (TInt j = aRowStartIndex; j <= aRowEndIndex; j++) { - vsize = iLabels[j]->TextExtents (); + vsize = iLabels[j]->TextExtents(); if( vsize.iWidth < KMinTagSize ) { vsize.iWidth = KMinTagSize; @@ -331,7 +333,6 @@ if (vsize.iWidth > KMaxScreenWidth) { TAlfRealSize tagSize( KMaxScreenWidth, br.iY ); - TAlfRealPoint startPos( aStartPoint.iX, 0 ); iLabels[j]->SetWrapping( CAlfTextVisual::ELineWrapTruncate ); tl.iX = aStartPoint.iX; tl.iY = aStartPoint.iY; @@ -339,8 +340,9 @@ } else { - br.iX += vsize.iWidth + KColSpace; + br.iX = tl.iX + vsize.iWidth; } + iLayout->SetAnchor (EAlfAnchorTopLeft, iLayoutIndex, EAlfAnchorOriginLeft, EAlfAnchorOriginTop, EAlfAnchorMetricAbsolute, EAlfAnchorMetricAbsolute, @@ -349,22 +351,21 @@ EAlfAnchorOriginLeft, EAlfAnchorOriginTop, EAlfAnchorMetricAbsolute, EAlfAnchorMetricAbsolute, TAlfTimedPoint (br.iX, br.iY)); - tl.iX = br.iX; + //Top-Left Corner for next tag in same row + tl.iX += (vsize.iWidth + KColSpace); iLayoutIndex += 1; } } return 0; } - - - // --------------------------------------------------------------------------- // LayoutVisibleArea() // // --------------------------------------------------------------------------- void CGlxCloudViewControl::LayoutVisibleArea() { + TRACER("CGlxCloudViewControl::LayoutVisibleArea"); //screen height for boundary check:how many rows fit in. //find out how many rows can fit in. //add upper and lower margin spacing 5 pixels @@ -377,13 +378,13 @@ { startpoint.iX = iTagScreenWidth - KRightmargin; } - - //else start from biginning + //else start from beginning else { startpoint.iX = KLeftMargin; } startpoint.iY = KNumMinRowSpace; + //associate the active visuals with anchor layout GLX_LOG_INFO("GLX_CLOUD ::CGlxCloudViewControl::::LayoutVisibleArea Layout reset"); GLX_LOG_INFO1("GLX_CLOUD ::CGlxCloudViewControl::::LayoutVisibleArea layout Count after reset %d ", iLayout->Count ()); @@ -394,7 +395,6 @@ { GLX_LOG_INFO("GLX_CLOUD ::CGlxCloudViewControl::::FindEndRowIndex Entering layout append"); - TAlfTimedValue opacity; opacity.SetValueNow(1.0); // immediate change iLabels[j]->SetOpacity(opacity); @@ -447,9 +447,7 @@ iScrollEventData.mViewLength, 0); DisplayScrollBar(); - } - //constructing the bubblecontainer - CreateBubleContainer(); + } iLayout->UpdateChildrenLayout (); //update layout @@ -458,7 +456,6 @@ MoveDownIfRequired(); } - // --------------------------------------------------------------------------- // OfferEventL() // --------------------------------------------------------------------------- @@ -649,7 +646,6 @@ iScrollDirection = 1; } - // --------------------------------------------------------------------------- // HandleKeyDown() // --------------------------------------------------------------------------- @@ -691,7 +687,6 @@ } } - // --------------------------------------------------------------------------- // FocusUpdate() // --------------------------------------------------------------------------- @@ -706,7 +701,6 @@ LayoutVisibleArea(); } - // --------------------------------------------------------------------------- // ResetLayout() // --------------------------------------------------------------------------- @@ -723,25 +717,23 @@ iLabels.Reset(); } - // --------------------------------------------------------------------------- // GetRownum() // --------------------------------------------------------------------------- // TInt CGlxCloudViewControl::RowNumber(TInt aItemIndex) const -{ - -TRACER("GLX_CLOUD::CGlxCloudViewControl::GetRownum"); -//Get the rownumber of the given item index. -TInt i; -for (i = 0; i < iCloudInfo.Count (); i++) - { - if ( (aItemIndex >= iCloudInfo[i].iStartIndex) && (aItemIndex <=iCloudInfo[i].iEndIndex)) - break; - } -return i; - -} + { + TRACER("GLX_CLOUD::CGlxCloudViewControl::GetRownum"); + //Get the rownumber of the given item index. + TInt i; + for (i = 0; i < iCloudInfo.Count(); i++) + { + if ((aItemIndex >= iCloudInfo[i].iStartIndex) && (aItemIndex + <= iCloudInfo[i].iEndIndex)) + break; + } + return i; + } // --------------------------------------------------------------------------- // FetchAttributeFromCacheL() @@ -775,7 +767,6 @@ } } - //medialist Observers // --------------------------------------------------------------------------- @@ -814,7 +805,6 @@ InitPhysicsL(); } - // --------------------------------------------------------------------------- // HandleMediaL(). // --------------------------------------------------------------------------- @@ -969,7 +959,6 @@ // --------------------------------------------------------------------------- // void CGlxCloudViewControl::UpdateRowDataL() - { TRACER("GLX_CLOUD::CGlxCloudViewControl::UpdateRowData()"); @@ -991,7 +980,7 @@ //Setting the Font Styles based on association counts //Finding the maximum value of image association //Determining the Font(Style) for each visual - TInt maxCount= MaxUsageCount (); //Maximum Association count + TInt maxCount = MaxUsageCount (); //Maximum Association count GLX_LOG_INFO1("GLX_CLOUD ::CGlxCloudViewControl::UpdateRowData mediaCount %d ", maxCount); GLX_LOG_INFO1("GLX_CLOUD ::CGlxCloudViewControl::UpdateRowData iLabels.Count() %d ",iLabels.Count()); if ( 0 == maxCount ) @@ -1030,7 +1019,7 @@ } // Current row width will be progressively incremented to fit as many tags as possible - rowWidth += currentTagSize.iWidth + 10; + rowWidth += currentTagSize.iWidth + KColSpace; GLX_LOG_INFO1("GLX_CLOUD ::CGlxCloudViewControl::UpdateRowData currentTagSize.iWidth %d ", currentTagSize.iWidth); GLX_LOG_INFO1("GLX_CLOUD ::CGlxCloudViewControl::UpdateRowData rowWidth %d ", rowWidth); @@ -1054,7 +1043,7 @@ // then we must fit the current visual into the next row. // Do that check now and adjust accordingly. // Fix for EAHN-7BZD78 is to exclude the gap value between the row's tags from the logic - else if ( rowWidth - 10 > KMaxScreenWidth ) + else if ( rowWidth - KColSpace > KMaxScreenWidth ) { GLX_LOG_INFO("GLX_CLOUD :: CGlxCloudViewControl::UpdateRowData Row added"); lastRowStartTagIndex = currentTagIndex - 1; @@ -1267,7 +1256,6 @@ iLabels[iMediaList.FocusIndex()]->SetColor (KAknsIIDQsnHighlightColors ,EAknsCIQsnHighlightColorsCG3); } - // --------------------------------------------------------------------------- // SetBubleMidPoint() // --------------------------------------------------------------------------- @@ -1281,14 +1269,6 @@ } // --------------------------------------------------------------------------- -// CreateBubleContainer() -// --------------------------------------------------------------------------- -// -void CGlxCloudViewControl::CreateBubleContainer() - { - } - -// --------------------------------------------------------------------------- // MoveUpIfRequired() // --------------------------------------------------------------------------- // @@ -1323,7 +1303,6 @@ Scroll(); } - // --------------------------------------------------------------------------- // MoveDownIfRequired() // --------------------------------------------------------------------------- @@ -1868,30 +1847,31 @@ AknLayoutUtils::LayoutMetricsRect (AknLayoutUtils::EMainPane, rect); if ((rect.Width() != (iTagScreenWidth + KRightmargin)) || (rect.Height() != iScreenHeight)) { - //set the new screen dimensions - iScreenHeight=rect.Height(); - iTagScreenWidth = rect.Width()- KRightmargin; - if(IsLandscape()) - { - iTagScreenHeight = rect.Height(); - } - else - { - iTagScreenHeight = KTagScreenHeight; - } + //set the new screen dimensions + iScreenHeight = rect.Height(); + iTagScreenWidth = rect.Width() - KRightmargin; + if (IsLandscape()) + { + iTagScreenHeight = rect.Height(); + } + else + { + iTagScreenHeight = KTagScreenHeight; + } - iViewPortLayout->SetSize(TAlfRealSize(iTagScreenWidth,iTagScreenHeight), 0); - //delete all layout associations - if ( iCloudInfo.Count ()!= 0)//check for the empty cloud view - { - UpdateLayout(); - FetchAttributeFromCacheL(); - //generate row structures and draw rows on screen - UpdateRowDataL (); + iViewPortLayout->SetSize( + TAlfRealSize(iTagScreenWidth, iTagScreenHeight), 0); + //delete all layout associations + if (iCloudInfo.Count() != 0)//check for the empty cloud view + { + UpdateLayout(); + FetchAttributeFromCacheL(); + //generate row structures and draw rows on screen + UpdateRowDataL(); - InitPhysicsL(); - } - } + InitPhysicsL(); + } + } } // --------------------------------------------------------------------------- @@ -1963,6 +1943,7 @@ return EFalse; } } + // --------------------------------------------------------------------------- // TimerCompleteL() // --------------------------------------------------------------------------- @@ -1990,6 +1971,7 @@ iTagsContextMenuControl->SetDisplay(midpoint); } } + // --------------------------------------------------------------------------- // ShowContextItemMenuL() // ---------------------------------------------------------------------------