--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/uicomponents/inc/fstextviewercontrol.h Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,134 @@
+/*
+* Copyright (c) 2007 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: Control class for TextViewer component
+*
+*/
+
+
+#ifndef C_FSTEXTVIEWERCONTROL_H
+#define C_FSTEXTVIEWERCONTROL_H
+
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+// <cmail> SF
+#include <alf/alfcontrol.h>
+#include <eiksbobs.h> // MEikScrollBarObserver
+#include <aknphysicsobserveriface.h> // MAknPhysicsObserver
+// </cmail>
+
+#include "fstextviewerobserver.h"
+#include "fstextviewervisualizer.h"
+
+class CAknPhysics;
+class CFsTextViewerVisualizer;
+class MFsTextViewerObserver;
+class CFsTextViewerKeys;
+
+class CFsTextViewerControl :
+ public CAlfControl,
+ public MEikScrollBarObserver,
+ public MAknPhysicsObserver
+ {
+
+ public:
+ static CFsTextViewerControl* NewL( CAlfEnv& aEnv );
+ ~CFsTextViewerControl();
+
+ public:
+ void SetVisualizer( CFsTextViewerVisualizer* aVis );
+ void SetObserver( MFsTextViewerObserver* aObserver );
+ void EnableCursorScroll( TBool aStatus = ETrue );
+ TBool CursorScroll();
+ void SetKeys( CFsTextViewerKeys* aKeys );
+ CFsTextViewerKeys* Keys();
+ TBool IsScrollEventHandlingOngoing();
+
+ // Scroll specified offset, direction is calculated based on the
+ // given offset and view's current position.
+ void ScrollL(
+ const TInt aOffset,
+ const TInt aTime = CFsTextViewerVisualizer::EUseDefaultScrollTime );
+ // Scroll specified offset to specified direction. If aOffset is
+ // less than zero, scrolls default amount.
+ void ScrollL(
+ const MFsTextViewerObserver::TFsTextViewerEvent aEventDirection,
+ const TInt aOffset = CFsTextViewerVisualizer::EUseDefaultScrollOffset,
+ const TInt aTime = CFsTextViewerVisualizer::EUseDefaultScrollTime );
+
+ protected:
+ /**
+ * From CAlfControl
+ */
+ void NotifyControlVisibility( TBool aIsVisible, CAlfDisplay& aDisplay );
+
+ private:
+ CFsTextViewerControl( );
+ void ConstructL( CAlfEnv& aEnv );
+
+ private:
+ TBool OfferEventL( const TAlfEvent& aEvent );
+ TBool HandleKeyEventL( const TAlfEvent& aEvent );
+ TBool HandlePointerEventL( const TAlfEvent& aEvent );
+ void UpdatePhysicsL();
+
+ public:
+ /**
+ * From MEikScrollBarObserver
+ *
+ * Callback method for scroll bar events
+ *
+ * Scroll bar observer should implement this method to get scroll bar events.
+ *
+ * @since S60 0.9
+ * @param aScrollBar A pointer to scrollbar which created the event
+ * @param aEventType The event occured on the scroll bar
+ */
+ void HandleScrollEventL( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType );
+
+ private: // from MAknPhysicsObserver
+
+ /**
+ * @see MAknPhysicsObserver::ViewPositionChanged
+ */
+ virtual void ViewPositionChanged( const TPoint& aNewPosition, TBool aDrawNow, TUint aFlags );
+
+ /**
+ * @see MAknPhysicsObserver::PhysicEmulationEnded
+ */
+ virtual void PhysicEmulationEnded();
+
+ /**
+ * @see MAknPhysicsObserver::ViewPosition
+ */
+ virtual TPoint ViewPosition() const;
+
+ private:
+ CFsTextViewerVisualizer* iVisualizer;
+ MFsTextViewerObserver* iObserver;
+ TBool iCursorUDScroll;
+ CFsTextViewerKeys* iKeys;
+ CAknPhysics* iPhysics;
+ TBool iScrollEventHandlingOngoing;
+ TBool iIsVisible;
+ TBool iStartHotspotAction;
+ TBool iIsDragging;
+ TBool iIsFlicking;
+ TPoint iPreviousPosition;
+ TPoint iOriginalPosition;
+ TTime iStartTime;
+ };
+
+#endif // C_FSTEXTVIEWERCONTROL_H
+