emailuis/uicomponents/inc/fstextviewermarkfacility.h
branchRCL_3
changeset 25 3533d4323edc
parent 0 8466d47a6819
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/uicomponents/inc/fstextviewermarkfacility.h	Wed Sep 01 12:28:57 2010 +0100
@@ -0,0 +1,89 @@
+/*
+* 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:  Responsible for marking capabilities
+*
+*/
+
+
+#ifndef C_FSTEXTVIEWERMARKFACILITY_H
+#define C_FSTEXTVIEWERMARKFACILITY_H
+
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+
+#include "fstextviewervisualizerdata.h"
+
+class CFsTextViewerVisualizer;
+class CAlfVisual;
+class CAlfControl;
+class CAlfBorderBrush;
+class CFsTextViewerSkinData;
+
+class CFsTextViewerMarkFacility : public CBase
+    {
+    public:
+        static CFsTextViewerMarkFacility* NewL( 
+                CAlfLayout* aLayout, 
+                CAlfControl* aControl, 
+                CFsTextViewerVisualizerData* aNavigator,
+                CFsTextViewerSkinData* aSkinData );
+        ~CFsTextViewerMarkFacility();
+        void SetHeadOffsetL( TInt aHead );
+        void SetTailOffsetL( TInt aTail );
+        void FollowCursorL();
+        void SetLayout( CAlfLayout* aLayout );
+        void GetRange( TInt& aBegin, TInt& aEnd ) const;
+
+    protected:
+        CAlfVisual* CreateMarkVisualL( 
+                CAlfVisual* aVisual, 
+                TInt aBegin, TInt aEnd );
+        void UpdateImageVisualL( 
+                CAlfVisual* aVisual, 
+                CAlfVisual* aBaseVisual );
+        void UpdateTextVisualL( CAlfVisual* aVisual, 
+                                CAlfVisual* aBaseVisual, 
+                                TInt aBegin, TInt aEnd );
+
+    private:
+        void ConstructL();
+        CFsTextViewerMarkFacility( 
+                CAlfLayout* aLayout, 
+                CAlfControl* aControl,
+                CFsTextViewerVisualizerData* aNavigator,
+                CFsTextViewerSkinData* aSkinData );
+
+    private:
+        TInt VisualLength( CAlfVisual* aVisual );
+        TInt Find( CAlfVisual* aVisual );
+        CAlfVisual* Find( TInt aOffset );
+        TInt FindIndex( TInt aOffset );
+        TInt LocalVisOffset( TInt aGlobalOffset );
+        void DeleteUnused();
+        TBool IsHeadVisual( TInt aGlobalOffset );
+
+    private:
+        CFsTextViewerVisualizerData* iNavigator;
+        TInt iHead;
+        TInt iTail;
+        CAlfLayout* iLayout;
+        CAlfControl* iControl;
+        RArray<TFsRangedVisual> iVisuals;
+        CAlfBorderBrush* iBorder;
+        CFsTextViewerSkinData* iSkinData;
+
+    };
+
+#endif //C_FSTEXTVIEWERMARKFACILITY_H