--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/emailui/src/FreestyleEmailUiFolderListControl.cpp Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,182 @@
+/*
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Implements control for the application.
+*
+*/
+
+#include "emailtrace.h"
+#include <AknUtils.h>
+// <cmail> SF
+#include <alf/alfevent.h>
+// </cmail>
+#include "FreestyleEmailUiFolderListControl.h"
+#include "FreestyleEmailUiFolderListVisualiser.h"
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CFSEmailUiFolderListControl* CFSEmailUiFolderListControl::NewL(CAlfEnv& aEnv, CFSEmailUiFolderListVisualiser& aVisualiser)
+ {
+ FUNC_LOG;
+ CFSEmailUiFolderListControl* self = CFSEmailUiFolderListControl::NewLC(aEnv, aVisualiser);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CFSEmailUiFolderListControl* CFSEmailUiFolderListControl::NewLC(CAlfEnv& aEnv, CFSEmailUiFolderListVisualiser& aVisualiser)
+ {
+ FUNC_LOG;
+ CFSEmailUiFolderListControl* self = new (ELeave) CFSEmailUiFolderListControl(aVisualiser);
+ CleanupStack::PushL(self);
+ self->ConstructL(aEnv);
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+//C++ constructor.
+// ---------------------------------------------------------------------------
+//
+CFSEmailUiFolderListControl::CFSEmailUiFolderListControl(CFSEmailUiFolderListVisualiser& aVisualiser)
+ : CAlfControl(),
+ iVisualiser(aVisualiser)
+ {
+ FUNC_LOG;
+ }
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiFolderListControl::ConstructL(CAlfEnv& aEnv)
+ {
+ FUNC_LOG;
+ CAlfControl::ConstructL(aEnv);
+ }
+
+// ---------------------------------------------------------------------------
+// Virtual destructor.
+// ---------------------------------------------------------------------------
+//
+CFSEmailUiFolderListControl::~CFSEmailUiFolderListControl()
+ {
+ FUNC_LOG;
+ }
+
+// ---------------------------------------------------------------------------
+// CFSEmailUiFolderListControl::OfferEventL
+// ---------------------------------------------------------------------------
+//
+TBool CFSEmailUiFolderListControl::OfferEventL( const TAlfEvent& aEvent )
+ {
+ FUNC_LOG;
+ // Handle expand/collapse functionality, but only in full screen mode
+ if ( aEvent.IsKeyEvent() && iVisualiser.IsFullScreen() )
+ {
+ // Recalculate the horizontal position when scrolling is finished
+ if ( aEvent.Code() == EEventKeyUp &&
+ ( aEvent.KeyEvent().iScanCode == EStdKeyUpArrow ||
+ aEvent.KeyEvent().iScanCode == EStdKeyDownArrow ) )
+ {
+ iVisualiser.DoHorizontalScrollL();
+ }
+
+ // Check expanding an collapsing
+ else if ( aEvent.Code() == EEventKey )
+ {
+ // Swap left and right with mirrored layout
+ TInt scanCode = aEvent.KeyEvent().iScanCode;
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ if ( scanCode == EStdKeyLeftArrow ) scanCode = EStdKeyRightArrow;
+ else if ( scanCode == EStdKeyRightArrow ) scanCode = EStdKeyLeftArrow;
+ }
+
+ // Left click collapses the current node, right click expands it
+ switch ( scanCode )
+ {
+ case EStdKeyLeftArrow:
+ {
+ iVisualiser.ExpandOrCollapseL(
+ CFSEmailUiFolderListVisualiser::EFolderListCollapse );
+ }
+ break;
+
+ case EStdKeyRightArrow:
+ {
+ iVisualiser.ExpandOrCollapseL(
+ CFSEmailUiFolderListVisualiser::EFolderListExpand );
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+
+// <cmail> Touch
+ // Offer events to view
+
+ TBool result = EFalse;
+
+ if ( aEvent.IsPointerEvent() )
+ {
+
+ result = iVisualiser.HandlePointerEventL( aEvent );
+ }
+ else
+ {
+ result = iVisualiser.OfferEventL( aEvent );
+ }
+ return result;
+// </cmail>
+ }
+
+// ---------------------------------------------------------------------------
+// CFSEmailUiFolderListControl::HandleCommandL
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiFolderListControl::HandleCommandL( TInt aCommand )
+ {
+ FUNC_LOG;
+ // Offer aCommand to view
+ return iVisualiser.HandleCommandL( aCommand );
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CFSEmailUiFolderListControl::TimerEventL( CFSEmailUiGenericTimer* /*aTriggeredTimer*/ )
+ {
+ FUNC_LOG;
+ iVisualiser.ExpandOrCollapseL(
+ CFSEmailUiFolderListVisualiser::EFolderListAutomatic );
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+/*
+void CFSEmailUiFolderListControl::StartTestTimer()
+ {
+ iFolderListTimer.Start( KAutoExpandCollapseDelay * 5 );
+ }
+*/
+