diff -r d189ee25cf9d -r 3533d4323edc emailuis/uicomponents/inc/fstextviewercontrol.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/uicomponents/inc/fstextviewercontrol.h Wed Sep 01 12:28:57 2010 +0100 @@ -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 + +// removed __FS_ALFRED_SUPPORT flag +//#include +// removed __FS_ALFRED_SUPPORT flag +// SF +#include +#include // MEikScrollBarObserver +#include // MAknPhysicsObserver +// + +#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 +