diff -r 000000000000 -r 8466d47a6819 emailuis/uicomponents/src/fstextviewerselect.cpp --- /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) +* +*/ + + +// removed __FS_ALFRED_SUPPORT flag +//#include +// removed __FS_ALFRED_SUPPORT flag +// SF +#include "emailtrace.h" +#include +#include +// +#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; + } +