emailuis/uicomponents/src/fstextviewerselect.cpp
changeset 0 8466d47a6819
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/uicomponents/src/fstextviewerselect.cpp	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,212 @@
+/*
+* 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:  Base class for selectables (hotspots and expand areas)
+*
+*/
+
+
+//<cmail> removed __FS_ALFRED_SUPPORT flag
+//#include <fsconfig.h>
+//</cmail> removed __FS_ALFRED_SUPPORT flag
+// <cmail> SF
+#include "emailtrace.h"
+#include <alf/alfvisual.h>
+#include <alf/alftextvisual.h>
+// </cmail>
+#include "fstextviewerselect.h"
+
+#include "fstextviewervisualizer.h"
+#include "fstextviewervisualizerdata.h"
+#include "fstextviewerselectsmanager.h"
+
+// ---------------------------------------------------------------------------
+// ~CFsTextViewerSelect
+// ---------------------------------------------------------------------------
+CFsTextViewerSelect::~CFsTextViewerSelect()
+    {
+    FUNC_LOG;
+    iVisuals.Close();
+    }
+
+// ---------------------------------------------------------------------------
+// SetType
+// ---------------------------------------------------------------------------
+void CFsTextViewerSelect::SetType( TFsTextViewerSelectType aType )
+    {
+    FUNC_LOG;
+    iType = aType;
+    }
+
+// ---------------------------------------------------------------------------
+// GetType
+// ---------------------------------------------------------------------------
+CFsTextViewerSelect::TFsTextViewerSelectType CFsTextViewerSelect::GetType()
+    {
+    FUNC_LOG;
+    return iType;
+    }
+
+// ---------------------------------------------------------------------------
+// SetId
+// ---------------------------------------------------------------------------
+void CFsTextViewerSelect::SetId( TInt aId )
+    {
+    FUNC_LOG;
+    iId = aId;
+    }
+
+// ---------------------------------------------------------------------------
+// GetId
+// ---------------------------------------------------------------------------
+TInt CFsTextViewerSelect::GetId() const
+    {
+    FUNC_LOG;
+    return iId;
+    }
+
+// ---------------------------------------------------------------------------
+// AppendVisualL
+// ---------------------------------------------------------------------------
+void CFsTextViewerSelect::AppendVisualL( TFsRangedVisual* aVisual )
+    {
+    FUNC_LOG;
+    for ( TInt i = 0; i < iVisuals.Count(); ++i )
+        {
+        if ( aVisual == iVisuals[i] )
+            {
+            return;
+            }
+        }
+    if ( iVisuals.Count() > 0 )
+        {
+        iRect.iBr = aVisual->iRect.iBr;
+        }
+    else
+        {
+        iRect = aVisual->iRect;
+        }
+    iEndChar = aVisual->iEnd;
+    iVisuals.AppendL( aVisual );
+    }
+
+// ---------------------------------------------------------------------------
+// RemoveVisual
+// ---------------------------------------------------------------------------
+void CFsTextViewerSelect::RemoveVisual( TFsRangedVisual* aVisual )
+    {
+    FUNC_LOG;
+    for ( TInt i = 0; i < iVisuals.Count(); ++i )
+        {
+        if ( iVisuals[i] == aVisual )
+            {
+            iVisuals.Remove( i );
+            }
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// GetStartHeight
+// ---------------------------------------------------------------------------
+TInt CFsTextViewerSelect::GetStartHeight()
+    {
+    FUNC_LOG;
+    TInt retVal = -1;
+    for ( TInt i = 0; i < iVisuals.Count(); ++i )
+        {
+        if ( iVisuals[i]->iVisual->DisplayRectTarget().iTl.iY > retVal )
+            {
+            retVal = iVisuals[i]->iRect.iTl.iY;
+            }
+        }
+    return retVal;
+    }
+
+// ---------------------------------------------------------------------------
+// GetStartLine
+// ---------------------------------------------------------------------------
+TInt CFsTextViewerSelect::GetStartLine()
+    {
+    FUNC_LOG;
+    TInt retVal = -1;
+    CFsTextViewerVisualizerData* navigator = 
+        iManager->Visualizer()->Navigator();
+    for ( TInt i = 0; i < iVisuals.Count(); ++i )
+        {
+        if ( iVisuals[i]->iLineNumber < retVal 
+              || retVal < 0 ) 
+            {
+            retVal = iVisuals[i]->iLineNumber;
+            }
+        }
+    return retVal;
+    }
+
+// ---------------------------------------------------------------------------
+// IsVisible
+// ---------------------------------------------------------------------------
+TBool CFsTextViewerSelect::IsVisible()
+    {
+    FUNC_LOG;
+    TBool retVal = EFalse;
+    TInt minY = -1;
+    TInt maxY = -1;
+    
+    
+    if ( iVisuals.Count() > 0 )
+        {
+        if ( !iVisuals[0]->iVisual )
+            {
+            retVal = EFalse;
+            }
+        else 
+            {
+            minY = iVisuals[0]->iVisual->DisplayRectTarget().iTl.iY;
+            }
+        }
+
+    for ( TInt i = 0; i < iVisuals.Count(); ++i )
+        {
+        if ( !iVisuals[i]->iVisual )
+            {
+            retVal = EFalse;
+            }
+        else
+            {
+            if ( minY > iVisuals[i]->iVisual->DisplayRectTarget().iTl.iY )
+                {
+                minY = iVisuals[i]->iVisual->DisplayRectTarget().iTl.iY;
+                }
+            if ( maxY < iVisuals[i]->iVisual->DisplayRectTarget().iBr.iY )
+                {
+                maxY = iVisuals[i]->iVisual->DisplayRectTarget().iBr.iY;
+                }
+            }
+        }
+    TInt screenHeight = iManager->Visualizer()->iDisplaySize.iHeight;
+    if ( minY >= 0 && maxY <= screenHeight )
+        {
+        retVal = ETrue;
+        }
+    
+    return retVal;
+    }
+
+// ---------------------------------------------------------------------------
+// ContructL
+// ---------------------------------------------------------------------------
+void CFsTextViewerSelect::ConstructL()
+    {
+    FUNC_LOG;
+    }
+