33 #include <alf/alfcontrolgroup.h> |
33 #include <alf/alfcontrolgroup.h> |
34 //layouts |
34 //layouts |
35 #include <alf/alfflowlayout.h> |
35 #include <alf/alfflowlayout.h> |
36 #include <alf/alfdecklayout.h> |
36 #include <alf/alfdecklayout.h> |
37 #include <alf/alfgridlayout.h> |
37 #include <alf/alfgridlayout.h> |
|
38 #include <alf/alfanchorlayout.h> |
38 //brushes |
39 //brushes |
39 #include <alf/alfbrusharray.h> |
40 #include <alf/alfbrusharray.h> |
40 #include <alf/alfbrush.h> |
41 #include <alf/alfbrush.h> |
41 #include <alf/alfborderbrush.h> |
42 #include <alf/alfborderbrush.h> |
42 #include <alf/alfimagebrush.h> |
43 #include <alf/alfimagebrush.h> |
70 #include "fsseparatordata.h" |
71 #include "fsseparatordata.h" |
71 ////alf specific |
72 ////alf specific |
72 #include "fsalfscrollbarlayout.h" |
73 #include "fsalfscrollbarlayout.h" |
73 #include "fsalftextstylemanager.h" |
74 #include "fsalftextstylemanager.h" |
74 #include "fsinteractioninterval.h" |
75 #include "fsinteractioninterval.h" |
|
76 #include "muicscrollbar.h" |
|
77 #include "cuicaknscrollbaradapter.h" |
|
78 #include "cuicscrollbar.h" |
75 |
79 |
76 #include <aknphysics.h> |
80 #include <aknphysics.h> |
|
81 |
77 |
82 |
78 //CONSTANTS |
83 //CONSTANTS |
79 const TInt KDefaultShadowWidth = 4; |
84 const TInt KDefaultShadowWidth = 4; |
80 const TInt KFSListDefaultSelectorBorderWidth = 0; |
85 const TInt KFSListDefaultSelectorBorderWidth = 0; |
81 const TInt KZero = 0; |
86 const TInt KZero = 0; |
82 _LIT8( KPropertyItemId, "PropItemID" ); |
87 _LIT8( KPropertyItemId, "PropItemID" ); |
83 |
88 |
84 // check from aknphysicsconstants.h |
89 // check from aknphysicsconstants.h |
85 const TInt KFlickMaxDuration( 500000 ); |
90 const TInt KFlickMaxDuration( 500000 ); |
86 const TInt KDefaultFriction( 35 ); // avkon default is 10 |
91 const TInt KDefaultFriction( 25 ); // avkon default is 10 |
87 |
92 |
88 // ======== LOCAL FUNCTIONS ======== |
93 // ======== LOCAL FUNCTIONS ======== |
89 |
94 |
90 // --------------------------------------------------------------------------- |
95 // --------------------------------------------------------------------------- |
91 // Deletes and sets pointer to NULL. |
96 // Deletes and sets pointer to NULL. |
454 } |
459 } |
455 |
460 |
456 // --------------------------------------------------------------------------- |
461 // --------------------------------------------------------------------------- |
457 // TWorld::GetItemRect |
462 // TWorld::GetItemRect |
458 // --------------------------------------------------------------------------- |
463 // --------------------------------------------------------------------------- |
459 TInt TWorld::GetItemRect(const TFsTreeItemId aItemId, TRect& aRect, |
464 TInt TWorld::GetItemRect(const TFsTreeItemId aItemId, TRect& aRect, |
460 const TInt aStartIndex ) const |
465 const TInt aStartIndex ) const |
461 { |
466 { |
462 TInt result(KErrNotFound); |
467 TInt result(KErrNotFound); |
463 const TInt itemCount(iItems.Count()); |
468 const TInt itemCount(iItems.Count()); |
464 for (TInt i = aStartIndex; i < itemCount; i++) |
469 for (TInt i = aStartIndex; i < itemCount; i++) |
911 // Two-phased constructor. |
916 // Two-phased constructor. |
912 // --------------------------------------------------------------------------- |
917 // --------------------------------------------------------------------------- |
913 // |
918 // |
914 EXPORT_C CFsTreeVisualizerBase* CFsTreeVisualizerBase::NewL( |
919 EXPORT_C CFsTreeVisualizerBase* CFsTreeVisualizerBase::NewL( |
915 CAlfControl* aOwnerControl, CAlfLayout& aParent, |
920 CAlfControl* aOwnerControl, CAlfLayout& aParent, |
916 const TBool aDirectTouchMode) |
921 const TBool aPopUpMode) |
917 { |
922 { |
918 FUNC_LOG; |
923 FUNC_LOG; |
919 CFsTreeVisualizerBase* self = new (ELeave) CFsTreeVisualizerBase( |
924 CFsTreeVisualizerBase* self = new (ELeave) CFsTreeVisualizerBase( |
920 aOwnerControl, aParent, aDirectTouchMode); |
925 aOwnerControl, aParent, aPopUpMode); |
921 CleanupStack::PushL(self); |
926 CleanupStack::PushL(self); |
922 self->ConstructL(); |
927 self->ConstructL(); |
923 CleanupStack::Pop(self); |
928 CleanupStack::Pop(self); |
924 return self; |
929 return self; |
925 } |
930 } |
2527 // --------------------------------------------------------------------------- |
2533 // --------------------------------------------------------------------------- |
2528 // |
2534 // |
2529 void CFsTreeVisualizerBase::SetItemsAlwaysExtendedL(TBool aAlwaysExtended) |
2535 void CFsTreeVisualizerBase::SetItemsAlwaysExtendedL(TBool aAlwaysExtended) |
2530 { |
2536 { |
2531 FUNC_LOG; |
2537 FUNC_LOG; |
2532 iFlags.Assign(EItemsAlwaysExtended, aAlwaysExtended); |
2538 if (iFlags.IsSet(EItemsAlwaysExtended) != aAlwaysExtended ) |
2533 TFsTreeIterator treeIter( |
2539 { |
2534 iTreeData->Iterator(KFsTreeRootID, KFsTreeRootID)); |
2540 iFlags.Assign(EItemsAlwaysExtended, aAlwaysExtended); |
2535 while (treeIter.HasNext()) |
2541 TFsTreeIterator treeIter( |
2536 { |
2542 iTreeData->Iterator(KFsTreeRootID, KFsTreeRootID)); |
2537 TFsTreeItemId itemId(treeIter.Next()); |
2543 while (treeIter.HasNext()) |
2538 if (itemId != KFsTreeNoneID && !iTreeData->IsNode(itemId)) |
2544 { |
2539 { |
2545 TFsTreeItemId itemId(treeIter.Next()); |
2540 MFsTreeItemVisualizer* itemviz(iTreeData->ItemVisualizer(itemId)); |
2546 if (itemId != KFsTreeNoneID && !iTreeData->IsNode(itemId)) |
2541 ApplyListSpecificValuesToItem(itemviz); |
2547 { |
2542 } |
2548 MFsTreeItemVisualizer* itemviz(iTreeData->ItemVisualizer(itemId)); |
2543 } |
2549 ApplyListSpecificValuesToItem(itemviz); |
2544 const TBool isUpdating(iWorld.IsUpdating()); |
2550 } |
2545 if (!isUpdating) |
2551 } |
2546 { |
2552 const TBool isUpdating(iWorld.IsUpdating()); |
2547 iWorld.BeginUpdate(); |
2553 if (!isUpdating) |
2548 } |
2554 { |
2549 iWorld.RemoveAllL(); |
2555 iWorld.BeginUpdate(); |
2550 treeIter = iTreeData->Iterator(KFsTreeRootID, KFsTreeRootID, |
2556 } |
2551 KFsTreeIteratorSkipCollapsedFlag); |
2557 iWorld.RemoveAllL(); |
2552 while (treeIter.HasNext()) |
2558 treeIter = iTreeData->Iterator(KFsTreeRootID, KFsTreeRootID, |
2553 { |
2559 KFsTreeIteratorSkipCollapsedFlag); |
2554 TFsTreeItemId itemId(treeIter.Next()); |
2560 while (treeIter.HasNext()) |
2555 if (itemId != KFsTreeNoneID) |
2561 { |
2556 { |
2562 TFsTreeItemId itemId(treeIter.Next()); |
2557 MFsTreeItemVisualizer* itemviz(iTreeData->ItemVisualizer(itemId)); |
2563 if (itemId != KFsTreeNoneID) |
2558 iWorld.AppendL(itemId, itemviz->Size()); |
2564 { |
2559 } |
2565 MFsTreeItemVisualizer* itemviz(iTreeData->ItemVisualizer(itemId)); |
2560 } |
2566 iWorld.AppendL(itemId, itemviz->Size()); |
2561 // Below line commetned out. ViewPort is now not moved to the top of mail list |
2567 } |
2562 //iViewPort.SetPositionL(TPoint(), EFalse); |
2568 } |
2563 iViewPort.ClearCache(); |
2569 // Below line commetned out. ViewPort is now not moved to the top of mail list |
2564 if (!isUpdating) |
2570 //iViewPort.SetPositionL(TPoint(), EFalse); |
2565 { |
2571 iViewPort.ClearCache(); |
2566 iWorld.EndUpdateL(); |
2572 if (!isUpdating) |
|
2573 { |
|
2574 iWorld.EndUpdateL(); |
|
2575 } |
2567 } |
2576 } |
2568 } |
2577 } |
2569 |
2578 |
2570 // --------------------------------------------------------------------------- |
2579 // --------------------------------------------------------------------------- |
2571 // The function returns if items are always in extended state or in normal. |
2580 // The function returns if items are always in extended state or in normal. |
3326 // --------------------------------------------------------------------------- |
3339 // --------------------------------------------------------------------------- |
3327 // |
3340 // |
3328 void CFsTreeVisualizerBase::HandleActionL( |
3341 void CFsTreeVisualizerBase::HandleActionL( |
3329 const TAlfActionCommand& aActionCommand) |
3342 const TAlfActionCommand& aActionCommand) |
3330 { |
3343 { |
3331 // <cmail> Change scrollbar to avkon (to support skinning & touch) |
|
3332 if (KAknsMessageSkinChange == aActionCommand.Id()) |
3344 if (KAknsMessageSkinChange == aActionCommand.Id()) |
3333 {//layoout has changed |
3345 { |
3334 // HideList(EFalse, EFalse); |
3346 iScrollBar->NotifyThemeChanged(); |
3335 // ShowListL(ETrue, EFalse); |
3347 } |
3336 iScrollBar->HandleResourceChange(KAknsMessageSkinChange); |
|
3337 } |
|
3338 // </cmail> |
|
3339 } |
3348 } |
3340 |
3349 |
3341 // --------------------------------------------------------------------------- |
3350 // --------------------------------------------------------------------------- |
3342 // Hides visible list items. Clears the visible items table. |
3351 // Hides visible list items. Clears the visible items table. |
3343 // --------------------------------------------------------------------------- |
3352 // --------------------------------------------------------------------------- |
3344 // |
3353 // |
3345 // <cmail> |
|
3346 void CFsTreeVisualizerBase::ClearVisibleItemsListL(TBool /*aRemoveAll*/, |
3354 void CFsTreeVisualizerBase::ClearVisibleItemsListL(TBool /*aRemoveAll*/, |
3347 TBool /*aScrollList*/) |
3355 TBool /*aScrollList*/) |
3348 // </cmail> |
|
3349 { |
3356 { |
3350 FUNC_LOG; |
3357 FUNC_LOG; |
3351 } |
3358 } |
3352 |
3359 |
3353 // --------------------------------------------------------------------------- |
3360 // --------------------------------------------------------------------------- |
3663 void CFsTreeVisualizerBase::UpdateScrollBarIfNeededL() |
3670 void CFsTreeVisualizerBase::UpdateScrollBarIfNeededL() |
3664 { |
3671 { |
3665 FUNC_LOG; |
3672 FUNC_LOG; |
3666 if (iScrollBar->ThumbPosition() != iViewPort.Position().iY) |
3673 if (iScrollBar->ThumbPosition() != iViewPort.Position().iY) |
3667 { |
3674 { |
3668 iScrollbarModel.SetFocusPosition(iViewPort.Position().iY); |
3675 SetScrollBarModelValues(); |
3669 iScrollBar->SetModelL(&iScrollbarModel); |
3676 iScrollBar->UpdateModelL(iScrollBarModel); |
3670 iScrollBar->DrawDeferred(); |
3677 iScrollBar->Redraw(); |
3671 } |
3678 } |
|
3679 } |
|
3680 |
|
3681 // --------------------------------------------------------------------------- |
|
3682 // Sets scrollbar model values. |
|
3683 // --------------------------------------------------------------------------- |
|
3684 // |
|
3685 void CFsTreeVisualizerBase::SetScrollBarModelValues() |
|
3686 { |
|
3687 const TInt pageSize(iViewPort.Size().iHeight); |
|
3688 iScrollBarModel.SetHeight(Max(iWorld.Height(), pageSize)); |
|
3689 iScrollBarModel.SetWindowHeight(pageSize); |
|
3690 iScrollBarModel.SetWindowPosition(iViewPort.Position().iY); |
3672 } |
3691 } |
3673 |
3692 |
3674 // --------------------------------------------------------------------------- |
3693 // --------------------------------------------------------------------------- |
3675 // Updates scrollbar. |
3694 // Updates scrollbar. |
3676 // --------------------------------------------------------------------------- |
3695 // --------------------------------------------------------------------------- |
3680 FUNC_LOG; |
3699 FUNC_LOG; |
3681 |
3700 |
3682 TRect mainPaneRect; |
3701 TRect mainPaneRect; |
3683 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainPaneRect); |
3702 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainPaneRect); |
3684 TRect listRect(iRootLayout->DisplayRectTarget()); |
3703 TRect listRect(iRootLayout->DisplayRectTarget()); |
3685 listRect.Move(mainPaneRect.iTl); |
3704 if (!(iScrollBar->LayoutHints() & MUiCScrollBar::ELayoutRelativeToList)) |
|
3705 { |
|
3706 listRect.Move(mainPaneRect.iTl); |
|
3707 } |
|
3708 else |
|
3709 { |
|
3710 const TPoint& tl( listRect.iTl ); |
|
3711 listRect.Move( -tl.iX, -tl.iY ); |
|
3712 } |
3686 TRect scrollPane, listPane; |
3713 TRect scrollPane, listPane; |
3687 CFsLayoutManager::LayoutMetricsRect(listRect, |
3714 CFsLayoutManager::LayoutMetricsRect(listRect, |
3688 CFsLayoutManager::EFsLmSpFsScrollPane, scrollPane); |
3715 CFsLayoutManager::EFsLmSpFsScrollPane, scrollPane); |
3689 CFsLayoutManager::LayoutMetricsRect(listRect, |
3716 CFsLayoutManager::LayoutMetricsRect(listRect, |
3690 CFsLayoutManager::EFsLmMainSpFsListPane, listPane); |
3717 CFsLayoutManager::EFsLmMainSpFsListPane, listPane); |
3691 |
3718 SetScrollBarModelValues(); |
3692 const TInt pageSize(iViewPort.Size().iHeight); |
3719 iScrollBar->UpdateModelL(iScrollBarModel); |
3693 iScrollbarModel.SetScrollSpan(Max(iWorld.Height(), pageSize)); |
3720 iScrollBar->Redraw(); |
3694 iScrollbarModel.SetWindowSize(pageSize); |
|
3695 iScrollbarModel.SetFocusPosition(iViewPort.Position().iY); |
|
3696 iScrollBar->SetModelL(&iScrollbarModel); |
|
3697 iScrollBar->DrawDeferred(); |
|
3698 |
3721 |
3699 RArray<TInt> columns; |
3722 RArray<TInt> columns; |
3700 CleanupClosePushL(columns); |
3723 CleanupClosePushL(columns); |
3701 TBool updateLayouts(EFalse); |
3724 TBool updateLayouts(EFalse); |
3702 if (iViewPort.IsScrollBarNeeded() && iVisualizationState |
3725 if (iViewPort.IsScrollBarNeeded() && iVisualizationState |
3703 == EFsTreeVisible) |
3726 == EFsTreeVisible) |
3704 { |
3727 { |
3705 iScrollBar->SetRect(scrollPane); |
3728 iScrollBar->SetRect(scrollPane); |
3706 if (AknLayoutUtils::LayoutMirrored()) |
3729 if (AknLayoutUtils::LayoutMirrored()) |
3707 { |
3730 { |
3708 columns.AppendL(scrollPane.Width()); |
3731 if (iScrollBar->LayoutHints() & MUiCScrollBar::ELayoutOnTopOfList) |
3709 columns.AppendL(listPane.Width()); |
3732 { |
|
3733 columns.AppendL(0); |
|
3734 columns.AppendL(listRect.Width()); |
|
3735 } |
|
3736 else |
|
3737 { |
|
3738 columns.AppendL(scrollPane.Width()); |
|
3739 columns.AppendL(listPane.Width()); |
|
3740 } |
3710 } |
3741 } |
3711 else |
3742 else |
3712 { |
3743 { |
3713 columns.AppendL(listPane.Width()); |
3744 if (iScrollBar->LayoutHints() & MUiCScrollBar::ELayoutOnTopOfList) |
3714 columns.AppendL(scrollPane.Width()); |
3745 { |
|
3746 columns.AppendL(listRect.Width()); |
|
3747 columns.AppendL(0); |
|
3748 } |
|
3749 else |
|
3750 { |
|
3751 columns.AppendL(listPane.Width()); |
|
3752 columns.AppendL(scrollPane.Width()); |
|
3753 } |
3715 } |
3754 } |
3716 iComponentLayout->SetColumnsL(columns); |
3755 iComponentLayout->SetColumnsL(columns); |
3717 iScrollBar->MakeVisible(ETrue); |
3756 iScrollBar->Show(ETrue); |
3718 updateLayouts = ETrue; |
3757 updateLayouts = ETrue; |
3719 } |
3758 } |
3720 else if (!iViewPort.IsScrollBarNeeded()) |
3759 else if (!iViewPort.IsScrollBarNeeded()) |
3721 { |
3760 { |
3722 if (AknLayoutUtils::LayoutMirrored()) |
3761 if (AknLayoutUtils::LayoutMirrored()) |
3723 { |
3762 { |
3724 columns.AppendL(0); |
3763 columns.AppendL(0); |
3725 columns.AppendL(listPane.Width()); |
3764 columns.AppendL(listRect.Width()); |
3726 } |
3765 } |
3727 else |
3766 else |
3728 { |
3767 { |
3729 columns.AppendL(listPane.Width()); |
3768 columns.AppendL(listRect.Width()); |
3730 columns.AppendL(0); |
3769 columns.AppendL(0); |
3731 } |
3770 } |
3732 iComponentLayout->SetColumnsL(columns); |
3771 iComponentLayout->SetColumnsL(columns); |
3733 iScrollBar->MakeVisible(EFalse); |
3772 iScrollBar->Show(EFalse); |
3734 updateLayouts = ETrue; |
3773 updateLayouts = ETrue; |
3735 } |
3774 } |
3736 CleanupStack::PopAndDestroy(); // columns.Close() |
3775 CleanupStack::PopAndDestroy(); // columns.Close() |
3737 if (updateLayouts) |
3776 if (updateLayouts) |
3738 { |
3777 { |
4602 // --------------------------------------------------------------------------- |
4641 // --------------------------------------------------------------------------- |
4603 // C++ constructor. |
4642 // C++ constructor. |
4604 // --------------------------------------------------------------------------- |
4643 // --------------------------------------------------------------------------- |
4605 // |
4644 // |
4606 CFsTreeVisualizerBase::CFsTreeVisualizerBase( CAlfControl* aOwnerControl, |
4645 CFsTreeVisualizerBase::CFsTreeVisualizerBase( CAlfControl* aOwnerControl, |
4607 CAlfLayout& aParent, const TBool aDirectTouchMode ) |
4646 CAlfLayout& aParent, const TBool aPopUpMode ) |
4608 : iVisualizationState(EFsTreeHidden), |
4647 : iVisualizationState(EFsTreeHidden), |
4609 iOwnerControl ( aOwnerControl ), |
4648 iOwnerControl ( aOwnerControl ), |
4610 iParentLayout ( aParent ), |
4649 iParentLayout ( aParent ), |
4611 iTreeData ( NULL ), |
4650 iTreeData ( NULL ), |
4612 iFocusedItem ( KFsTreeNoneID ), |
4651 iFocusedItem ( KFsTreeNoneID ), |
4638 iMarqueCycleStartDelay ( 500 ), //half a sec cycle delay |
4677 iMarqueCycleStartDelay ( 500 ), //half a sec cycle delay |
4639 iMarqueeRepetitions (-1), //infinite loop |
4678 iMarqueeRepetitions (-1), //infinite loop |
4640 iViewPort( *this, iWorld ) |
4679 iViewPort( *this, iWorld ) |
4641 { |
4680 { |
4642 FUNC_LOG; |
4681 FUNC_LOG; |
4643 iFlags.Set(EAutoRefresh); |
4682 iFlags.Set( EAutoRefresh ); |
4644 iFlags.Assign(EDirectTouchMode, aDirectTouchMode); |
4683 iFlags.Assign( EPopupMode, aPopUpMode ); |
4645 iFlags.Set( EExpandCollapseOnLongTap ); |
4684 iFlags.Set( EExpandCollapseOnLongTap ); |
4646 } |
4685 } |
4647 // </cmail> |
4686 // </cmail> |
4648 |
4687 |
4649 // --------------------------------------------------------------------------- |
4688 // --------------------------------------------------------------------------- |
4658 if (CAknPhysics::FeatureEnabled()) |
4697 if (CAknPhysics::FeatureEnabled()) |
4659 { |
4698 { |
4660 iPhysics = CAknPhysics::NewL(*this, NULL ); |
4699 iPhysics = CAknPhysics::NewL(*this, NULL ); |
4661 iDragHandler = CDragHandler::NewL(*this, |
4700 iDragHandler = CDragHandler::NewL(*this, |
4662 iPhysics->HighlightTimeout(), iFlags); |
4701 iPhysics->HighlightTimeout(), iFlags); |
4663 iPhysics->SetFriction(KDefaultFriction); |
4702 iPhysics->SetFriction(KDefaultFriction); |
4664 } |
4703 } |
4665 |
4704 |
4666 iRootData = CFsTreePlainOneLineItemData::NewL(); |
4705 iRootData = CFsTreePlainOneLineItemData::NewL(); |
4667 HBufC* empty = StringLoader::LoadL(R_AVKON_EMPTY_POPUP_LIST_TEXT); |
4706 HBufC* empty = StringLoader::LoadL(R_AVKON_EMPTY_POPUP_LIST_TEXT); |
4668 CleanupStack::PushL(empty); |
4707 CleanupStack::PushL(empty); |
4744 TAlfTimedPoint(0.0f, 0.5f)); |
4783 TAlfTimedPoint(0.0f, 0.5f)); |
4745 iBorderBrush->SetLayer(EAlfBrushLayerForeground); |
4784 iBorderBrush->SetLayer(EAlfBrushLayerForeground); |
4746 |
4785 |
4747 iScrollbarVisibility = EFsScrollbarShowAlways; |
4786 iScrollbarVisibility = EFsScrollbarShowAlways; |
4748 |
4787 |
4749 iScrollBar = new (ELeave) CAknDoubleSpanScrollBar(0); |
4788 iScrollBarLayout = CAlfAnchorLayout::AddNewL( *iOwnerControl, iListDeck ); |
4750 iScrollBar->ConstructL(ETrue, this, 0, CEikScrollBar::EVertical, 1000); |
4789 iScrollBarLayout->SetFlags( EAlfVisualFlagIgnorePointer ); |
4751 |
4790 |
4752 iScrollbarModel.SetScrollSpan(iComponentLayout->Size().Target().iY); |
4791 if ( iFlags.IsSet( EPopupMode ) ) |
4753 iScrollbarModel.SetFocusPosition(iViewPort.Position().iY); |
4792 { |
4754 iScrollbarModel.SetWindowSize(iListLayout->Size().iY.Target()); |
4793 iScrollBar = CUiCAknScrollBarAdapter::NewL( *this ); |
4755 |
4794 } |
4756 iScrollBar->MakeVisible(EFalse); |
4795 else |
4757 iScrollBar->SetModelL(&iScrollbarModel); |
4796 { |
4758 |
4797 iScrollBar = CUiCScrollBar::NewL( iOwnerControl->Env(), iScrollBarLayout ); |
4759 // </cmail> |
4798 } |
|
4799 |
|
4800 iScrollBarModel.SetHeight(iComponentLayout->Size().Target().iY); |
|
4801 iScrollBarModel.SetWindowPosition(iViewPort.Position().iY); |
|
4802 iScrollBarModel.SetWindowHeight(iListLayout->Size().iY.Target()); |
|
4803 |
|
4804 iScrollBar->Show( EFalse ); |
|
4805 iScrollBar->UpdateModelL( iScrollBarModel ); |
4760 |
4806 |
4761 iFadeEffect = CFsFadeEffect::NewL(iOwnerControl, this, iRootLayout, 0); |
4807 iFadeEffect = CFsFadeEffect::NewL(iOwnerControl, this, iRootLayout, 0); |
4762 iSlideEffect = CFsSlideEffect::NewL(iOwnerControl, this, iRootLayout, 0); |
4808 iSlideEffect = CFsSlideEffect::NewL(iOwnerControl, this, iRootLayout, 0); |
4763 |
4809 |
4764 iFadeInEffectTime = KFsListDefaultFadeInTime; |
4810 iFadeInEffectTime = KFsListDefaultFadeInTime; |
4771 iWorld.AddObserverL(iViewPort); |
4817 iWorld.AddObserverL(iViewPort); |
4772 iWorld.AddObserverL(*this); |
4818 iWorld.AddObserverL(*this); |
4773 UpdateViewPortL(); |
4819 UpdateViewPortL(); |
4774 } |
4820 } |
4775 |
4821 |
4776 // <cmail> Change scrollbar to avkon (to support skinning & touch) |
|
4777 // --------------------------------------------------------------------------- |
4822 // --------------------------------------------------------------------------- |
4778 // Handle scrollbar events |
4823 // Handle scrollbar events |
4779 // --------------------------------------------------------------------------- |
4824 // --------------------------------------------------------------------------- |
4780 // |
4825 // |
4781 void CFsTreeVisualizerBase::HandleScrollEventL(CEikScrollBar* aScrollBar, |
4826 void CFsTreeVisualizerBase::HandleScrollEventL( const MUiCScrollBar& aScrollBar, |
4782 TEikScrollEvent aEventType) |
4827 MUiCScrollBar::TEvent aEvent ) |
4783 { |
4828 { |
4784 FUNC_LOG; |
4829 FUNC_LOG; |
4785 |
4830 switch (aEvent) |
4786 if (iPhysics) |
4831 { |
4787 { |
4832 case MUiCScrollBar::EScrollHome: |
4788 iPhysics->StopPhysics(); |
4833 // Home |
4789 } |
4834 break; |
4790 |
4835 case MUiCScrollBar::EScrollEnd: |
4791 if (aScrollBar == iScrollBar) |
4836 // End |
4792 { |
4837 break; |
4793 |
4838 default: |
4794 switch (aEventType) |
4839 TPoint position(iViewPort.Position()); |
4795 { |
4840 position.iY = aScrollBar.ThumbPosition(); |
4796 case EEikScrollHome: |
4841 iViewPort.SetPositionL(position); |
4797 //Jump to beginning |
4842 break; |
4798 break; |
|
4799 case EEikScrollEnd: |
|
4800 //Jump to end |
|
4801 break; |
|
4802 default: |
|
4803 TPoint position(iViewPort.Position()); |
|
4804 position.iY = aScrollBar->ThumbPosition(); |
|
4805 iViewPort.SetPositionL(position); |
|
4806 break; |
|
4807 } |
|
4808 } |
4843 } |
4809 } |
4844 } |
4810 |
4845 |
4811 // --------------------------------------------------------------------------- |
4846 // --------------------------------------------------------------------------- |
4812 // Handle visibility change |
4847 // Handle visibility change |
4889 fullUpdate); |
4924 fullUpdate); |
4890 TAlfRefreshMode rm(EAlfRefreshModeAutomatic); |
4925 TAlfRefreshMode rm(EAlfRefreshModeAutomatic); |
4891 rm = CAlfStatic::Env().RefreshMode(); |
4926 rm = CAlfStatic::Env().RefreshMode(); |
4892 CAlfStatic::Env().SetRefreshMode(EAlfRefreshModeManual); |
4927 CAlfStatic::Env().SetRefreshMode(EAlfRefreshModeManual); |
4893 iListLayout->SetFlag(EAlfVisualFlagFreezeLayout); |
4928 iListLayout->SetFlag(EAlfVisualFlagFreezeLayout); |
4894 |
4929 |
4895 if(aUpdateByPhysic == EUpdatedByPhisicEnd) |
4930 if(aUpdateByPhysic == EUpdatedByPhisicEnd) |
4896 { |
4931 { |
4897 RArray<TFsTreeItemId> myVisibleItems; |
4932 RArray<TFsTreeItemId> myVisibleItems; |
4898 TInt myOffset; |
4933 TInt myOffset; |
4899 CleanupClosePushL(myVisibleItems); |
4934 CleanupClosePushL(myVisibleItems); |
4900 aViewPort.GetVisibleItemsL(myVisibleItems, myOffset); |
4935 aViewPort.GetVisibleItemsL(myVisibleItems, myOffset); |
4901 |
4936 |
4902 for (TInt i = 0; i < myVisibleItems.Count(); i++) |
4937 for (TInt i = 0; i < myVisibleItems.Count(); i++) |
4903 { |
4938 { |
4904 const TFsTreeItemId itemId(myVisibleItems[i]); |
4939 const TFsTreeItemId itemId(myVisibleItems[i]); |
4905 if (itemId != KFsTreeNoneID) |
4940 if (itemId != KFsTreeNoneID) |
4906 { |
4941 { |
4907 MFsTreeItemVisualizer* visualizer = iTreeData->ItemVisualizer( |
4942 MFsTreeItemVisualizer* visualizer = iTreeData->ItemVisualizer( |
4908 itemId); |
4943 itemId); |
4909 visualizer->UpdateL(iTreeData->ItemData(itemId), |
4944 visualizer->UpdateL(iTreeData->ItemData(itemId), |
4910 IsItemFocused(itemId) && IsFocusShown(), |
4945 IsItemFocused(itemId) && IsFocusShown(), |
4911 iTreeData->Level(itemId), iMarkIcon, iMenuIcon, |
4946 iTreeData->Level(itemId), iMarkIcon, iMenuIcon, |
4912 0); |
4947 0); |
4913 } |
4948 } |
4914 } |
4949 } |
4958 MFsTreeItemVisualizer* visualizer = iTreeData->ItemVisualizer( |
4993 MFsTreeItemVisualizer* visualizer = iTreeData->ItemVisualizer( |
4959 itemId); |
4994 itemId); |
4960 visualizer->ShowL(*iListLayout); |
4995 visualizer->ShowL(*iListLayout); |
4961 TSize size(visualizer->Size()); |
4996 TSize size(visualizer->Size()); |
4962 TInt listInnerWidth(iListLayout->Size().IntTarget().iX); |
4997 TInt listInnerWidth(iListLayout->Size().IntTarget().iX); |
4963 TAlfTimedPoint tpItemSize(listInnerWidth, size.iHeight); |
4998 TAlfTimedPoint tpItemSize( listInnerWidth, size.iHeight ); |
4964 tpItemSize.SetTarget(TAlfRealPoint(listInnerWidth, size.iHeight), |
|
4965 0); |
|
4966 CAlfLayout& visualizerLayout(visualizer->Layout()); |
4999 CAlfLayout& visualizerLayout(visualizer->Layout()); |
4967 visualizerLayout.SetSize(tpItemSize); |
5000 visualizerLayout.SetSize(tpItemSize); |
|
5001 visualizer->UpdateL(iTreeData->ItemData(itemId), |
|
5002 IsItemFocused(itemId) && IsFocusShown(), |
|
5003 iTreeData->Level(itemId), iMarkIcon, iMenuIcon, |
|
5004 0); |
4968 visualizerLayout.PropertySetIntegerL(KPropertyItemId(), itemId); |
5005 visualizerLayout.PropertySetIntegerL(KPropertyItemId(), itemId); |
4969 |
|
4970 // if(aUpdateByPhysic != EUpdatedByPhisic) |
|
4971 // { |
|
4972 visualizer->UpdateL(iTreeData->ItemData(itemId), |
|
4973 IsItemFocused(itemId) && IsFocusShown(), |
|
4974 iTreeData->Level(itemId), iMarkIcon, iMenuIcon, |
|
4975 0); |
|
4976 // } |
|
4977 |
|
4978 visualizerLayout.Brushes()->AppendL(iBorderBrush, |
5006 visualizerLayout.Brushes()->AppendL(iBorderBrush, |
4979 EAlfDoesNotHaveOwnership); |
5007 EAlfDoesNotHaveOwnership); |
4980 CAlfBrush* bgBrush(NULL); |
5008 CAlfBrush* bgBrush(NULL); |
4981 if (visualizer->GetBackgroundBrush(bgBrush)) |
5009 if (visualizer->GetBackgroundBrush(bgBrush)) |
4982 { |
5010 { |
5052 iPhysics = CAknPhysics::NewL(*this, NULL ); |
5080 iPhysics = CAknPhysics::NewL(*this, NULL ); |
5053 const TSize viewSize(iViewPort.Size()); |
5081 const TSize viewSize(iViewPort.Size()); |
5054 const TSize worldSize(viewSize.iWidth, Max(iWorld.Height(), |
5082 const TSize worldSize(viewSize.iWidth, Max(iWorld.Height(), |
5055 viewSize.iHeight)); |
5083 viewSize.iHeight)); |
5056 iPhysics->InitPhysicsL(worldSize, viewSize, EFalse); |
5084 iPhysics->InitPhysicsL(worldSize, viewSize, EFalse); |
5057 iPhysics->SetFriction(KDefaultFriction); |
5085 iPhysics->SetFriction(KDefaultFriction); |
5058 } |
5086 } |
5059 } |
5087 } |
5060 |
5088 |
5061 // --------------------------------------------------------------------------- |
5089 // --------------------------------------------------------------------------- |
5062 // Returns viewPort top-left position |
5090 // Returns viewPort top-left position |
5087 // --------------------------------------------------------------------------- |
5115 // --------------------------------------------------------------------------- |
5088 // |
5116 // |
5089 void CFsTreeVisualizerBase::PhysicEmulationEnded() |
5117 void CFsTreeVisualizerBase::PhysicEmulationEnded() |
5090 { |
5118 { |
5091 FUNC_LOG; |
5119 FUNC_LOG; |
5092 |
5120 |
5093 TRAP_IGNORE( iViewPort.SetCenterPositionL(iViewPort.CenterPosition(), ETrue, EUpdatedByPhisicEnd)); |
5121 TRAP_IGNORE( iViewPort.SetCenterPositionL(iViewPort.CenterPosition(), ETrue, EUpdatedByPhisicEnd)); |
5094 |
5122 |
5095 iFlags.Clear(EPhysicsOn); |
5123 iFlags.Clear(EPhysicsOn); |
5096 if (iFlags.IsSet(EUpdatePhysicsAfterSimulationFinished)) |
5124 if (iFlags.IsSet(EUpdatePhysicsAfterSimulationFinished)) |
5097 { |
5125 { |
5098 iFlags.Clear(EUpdatePhysicsAfterSimulationFinished); |
5126 iFlags.Clear(EUpdatePhysicsAfterSimulationFinished); |
5099 TRAP_IGNORE( UpdatePhysicsL() ); |
5127 TRAP_IGNORE( UpdatePhysicsL() ); |