--- a/imstutils/imconversationview/imcvuiapp/src/cimcvapptextviewcontrol.cpp Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,866 +0,0 @@
-/*
-* Copyright (c) 2009 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:
-* Export help related files.
-*
-*/
-
-
-// INCLUDE FILES
-#include "cimcvapptextviewcontrol.h"
-
-#include "cimcvappcustomdraw.h"
-#include <frmtview.h> // CTextView
-#include <AknUtils.h>
-#include <avkon.mbg>
-#include <aknappui.h>
-#include "mimcvapptextview.h"
-#include <aknlayoutscalable_apps.cdl.h>
-#include <AknsBasicBackgroundControlContext.h>
-#include <AknsDrawUtils.h>
-#include "imcvlogger.h"
-#include "imcvuiapputils.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::CIMCVAppTextViewControl
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CIMCVAppTextViewControl::CIMCVAppTextViewControl()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::ConstructL( const TRect& aRect,
- const CCoeControl& aParent,
- MLayDoc* aTextLayout )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::ConstructL() start") );
- CreateWindowL( &aParent );
-
- // get the drawing device
- CWindowGc& gc = SystemGc();
- CBitmapDevice* device = static_cast<CBitmapDevice*>( gc.Device() );
-
- // create text layout and text view
-
- iViewRect = aRect;
- iClipping = new ( ELeave ) RRegion( aRect );
-
- iLayout = CTextLayout::NewL( aTextLayout, iViewRect.Width() );
- iTextView = CTextView::NewL( iLayout, iViewRect,
- device, device, &Window(), NULL, &iCoeEnv->WsSession() );
-
- iTextView->EnableFlickerFreeRedraw();
- iTextView->SetOpaque( ETrue );
-
- // create our background drawer
- iCustomDraw = new( ELeave )CIMCVAppCustomDraw( iViewRect );
- iLayout->SetCustomDraw( iCustomDraw );
-
- // and scrollbar
- if( IMCVUiAppUtils::PenEnabled() )
- {
- // Observer
- iScrollBar = new( ELeave )CEikScrollBarFrame( this, this );
- }
- else
- {
- // No observer
- iScrollBar = new( ELeave )CEikScrollBarFrame( this, NULL );
- }
-
-
- if (AknLayoutUtils::DefaultScrollBarType(iAvkonAppUi) == CEikScrollBarFrame::EDoubleSpan)
- {
-
- // For EDoubleSpan type scrollbar
- // If pen is supported, SB needs to own a window
- iScrollBar->CreateDoubleSpanScrollBarsL( IMCVUiAppUtils::PenEnabled(),
- EFalse, ETrue, EFalse );
- iScrollBar->SetTypeOfVScrollBar(CEikScrollBarFrame::EDoubleSpan);
-
- }
- else
- {
- // For EArrowHead type scrollbar
- iScrollBar->SetTypeOfVScrollBar(CEikScrollBarFrame::EArrowHead);
- }
- iScrollBar->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
- CEikScrollBarFrame::EOn );
- TEikScrollBarModel vSbarModel;
- vSbarModel.iThumbPosition = 0; // current position
- vSbarModel.iScrollSpan = 0; // how many items
- vSbarModel.iThumbSpan = 0; // ignored
-
- iScrollBar->Tile( &vSbarModel );
- iScrollBar->SetVFocusPosToThumbPos( vSbarModel.iThumbPosition );
-
- iBgContext = CAknsBasicBackgroundControlContext::NewL(
- KAknsIIDQsnBgAreaMain, Rect(), ETrue );
- iCustomDraw->SetBackgroundContext( iBgContext, this );
-
- // set extensions
- ActivateL();
-
- // we're ready
- static_cast<CCoeAppUi*>( iEikonEnv->AppUi() )->AddToStackL( this );
- iAddedToStack = ETrue;
-
- // Enable draging
- if ( DrawableWindow() && IMCVUiAppUtils::PenEnabled() )
- {
- EnableDragEvents();
- Window().SetPointerGrab( ETrue );
- }
-
- // Enable draging
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::ConstructL() end") );
- }
-
-
-// Destructor
-CIMCVAppTextViewControl::~CIMCVAppTextViewControl()
- {
- if( iAddedToStack )
- {
- static_cast<CCoeAppUi*>( iEikonEnv->AppUi() )->RemoveFromStack( this );
- }
-
- delete iScrollBar;
- delete iCustomDraw;
- delete iTextView;
- delete iLayout;
-
- delete iBgContext;
- if( iClipping )
- {
- iClipping->Destroy();
- iClipping = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::UpdateScrollBarsL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::UpdateScrollBarsL( TBool aScrollDraw /*ETrue*/ )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::UpdateScrollBarsL() start") );
- TInt height = iLayout->FormattedHeightInPixels();
- TInt span = iViewRect.Height();
- TInt pos = iLayout->PixelsAboveBand();
-
- if( span < 0 )
- {
- span = 0;
- }
-
- if( pos < 0 )
- {
- pos = 0;
- }
-
- TEikScrollBarModel vSbarModel;
- vSbarModel.iThumbPosition = pos; // current position
- vSbarModel.iScrollSpan = height; // total length
- vSbarModel.iThumbSpan = span; // bar length
-
- // Double span
- if( iScrollBar )
- {
- if ( iScrollBar->TypeOfVScrollBar() == CEikScrollBarFrame::EDoubleSpan )
- {
- TAknDoubleSpanScrollBarModel vDsModel( vSbarModel );
- iScrollBar->Tile( &vDsModel );
- iScrollBar->SetVFocusPosToThumbPos( vDsModel.FocusPosition());
- }
- // ArrowHead
- else
- {
- iScrollBar->Tile( &vSbarModel );
- iScrollBar->SetVFocusPosToThumbPos( vSbarModel.iThumbPosition );
- }
- if( aScrollDraw )
- {
- iScrollBar->DrawScrollBarsNow();
- }
- }
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::UpdateScrollBarsL() end") );
- }
-
-void CIMCVAppTextViewControl::UpdateChatViewL ()
-{
- UpdateViewL ();
-}
-
-
-void CIMCVAppTextViewControl:: SmileyDialogLaunched (TBool aLaunched)
-{
- iSmileyDialogLaunched = aLaunched;
-}
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::UpdateViewL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::UpdateViewL()
- {
- // do not refresh if smiley dialog is launched.
- if (iSmileyDialogLaunched)
- return;
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::UpdateViewL() start") );
- iTextView->FormatTextL();
- iTextView->SetSelectionVisibilityL( EFalse );
- TCursorSelection sel;
- // Don't scroll if some item is highlighted
- if ( !iIsHighlighted )
- {
- sel = TCursorSelection( iLayout->DocumentLength(), 0 );
- ScrollVisibleL( sel, ETrue );
- }
- else
- {
- sel = iTextView->Selection();
- ScrollVisibleL( sel, ETrue );
- }
-
- DrawDeferred();
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::UpdateViewL() end") );
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::SetHighlighted
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::SetHighlighted( TBool aIsHighlighted )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::SetHighlighted() start") );
- iIsHighlighted = aIsHighlighted;
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::SetHighlighted() end") );
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::ScrollBarFrame
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const CEikScrollBarFrame* CIMCVAppTextViewControl::ScrollBarFrame()
- {
- return iScrollBar;
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::ScrollBarFrame
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CIMCVAppTextViewControl::FindDocPos( TPoint aPoint )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::FindDocPos() start") );
- TTmPosInfo2 posInfo;
- TBool found = EFalse;
-
- TRAPD( err, found = iTextView->FindXyPosL( aPoint, posInfo ) );
- if ( err )
- {
- CActiveScheduler::Current()->Error( err );
- // Return not found
- return KErrNotFound;
- }
-
- if ( found )
- {
-
- return posInfo.iDocPos.iPos;
- }
- // not found
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::FindDocPos() end") );
- return KErrNotFound;
- }
-
-// ---------------------------------------------------------
-// CIMCVAppTextViewControl::MopSupplyObject
-//
-// ---------------------------------------------------------
-//
-TTypeUid::Ptr CIMCVAppTextViewControl::MopSupplyObject( TTypeUid aId )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::MopSupplyObject() start") );
- if ( aId.iUid == MAknsControlContext::ETypeId )
- {
- return MAknsControlContext::SupplyMopObject( aId, iBgContext );
- }
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::MopSupplyObject() end") );
- return CCoeControl::MopSupplyObject( aId );
- }
-
-// ---------------------------------------------------------
-// CIMCVAppTextViewControl::HandleScrollEventL
-//
-// ---------------------------------------------------------
-//
-void CIMCVAppTextViewControl::HandleScrollEventL( CEikScrollBar* /*aScrollBar*/,
- TEikScrollEvent aEventType )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::HandleScrollEventL() start") );
- switch( aEventType )
- {
- case EEikScrollUp:
- {
- ScrollLinesL( 1 );
- break;
- }
- case EEikScrollDown:
- {
- ScrollLinesL( -1 );
- break;
- }
- case EEikScrollPageUp:
- {
- iTextView->ScrollDisplayL( TCursorPosition::EFPageUp );
- UpdateScrollBarsL();
- DrawDeferred();
- break;
- }
- case EEikScrollPageDown:
- {
- iTextView->ScrollDisplayL( TCursorPosition::EFPageDown );
- UpdateScrollBarsL();
- DrawDeferred();
- break;
- }
- case EEikScrollThumbDragVert:
- {
- // Get position values from scrollbar
- const TEikScrollBarModel* model =
- iScrollBar->VerticalScrollBar()->Model();
- TInt thumb = model->iThumbPosition;
- if( CEikScrollBarFrame::EDoubleSpan ==
- iScrollBar->TypeOfVScrollBar() )
- {
- const TAknDoubleSpanScrollBarModel* dsModel =
- static_cast <const TAknDoubleSpanScrollBarModel*>( model );
- thumb = dsModel->FocusPosition();
- }
-
- // Scroll the textview according to scrollbar
- TViewYPosQualifier yPosQua;
- yPosQua.SetHotSpot( TViewYPosQualifier::EFViewTopOfLine );
- TInt topPos = -thumb;
- iTextView->SetViewL( 0, topPos, yPosQua );
- break;
- }
- case EEikScrollThumbReleaseVert:
- {
- // Nothing to do here because EEikScrollThumbDragVert gets
- // the scrollbar in correct state
- break;
- }
- default:
- {
- break;
- }
- }
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::HandleScrollEventL() end") );
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::OfferKeyEventL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CIMCVAppTextViewControl::OfferKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::OfferKeyEventL() start") );
- // Commented because it generates so much log
- // CHAT_DP( D_CHAT_LIT("CIMCVAppTextViewControl::OfferKeyEventL %d, type %d"),
- // aKeyEvent, aType )
-
- if( aType != EEventKey )
- {
- return EKeyWasNotConsumed;
- }
-
- switch( aKeyEvent.iCode )
- {
- case EKeyDownArrow:
- {
- //scroll lines one line down
- ScrollLinesL( -1 );
- return EKeyWasConsumed;
-
- }
- case EKeyUpArrow:
- {
- //scroll lines one line up
- ScrollLinesL( 1 );
- return EKeyWasConsumed;
-
- }
- default:
- {
- // No handling for other events
- break;
- }
- }
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::OfferKeyEventL() end") );
- return EKeyWasNotConsumed;
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::HandlePointerEventL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::HandlePointerEventL(
- const TPointerEvent& aPointerEvent )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::HandlePointerEventL() start") );
-
- if( !IMCVUiAppUtils::PenEnabled() )
- {
- return;
- }
-
- switch( iPenType )
- {
- case EPenForwardToChild:
- {
- // normal (CCoeControl) behaviour
- CCoeControl::HandlePointerEventL( aPointerEvent );
- break;
- }
- case EPenForwardToParent:
- {
- // forward all to parent
- if( Parent() )
- {
- Parent()->HandlePointerEventL( aPointerEvent );
- }
- break;
- }
- // Process event ourself
- case EPenProcessEvent:
- {
- ProcessStylusEventL( aPointerEvent );
- break;
- }
- case EPenIgnoreEvent:
- {
- // Ignore all
- break;
- }
- default:
- {
- // Can't be
- break;
- }
- }
-
-
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::HandlePointerEventL() end") );
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::Draw
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::Draw( const TRect& aRect ) const
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::Draw() start") );
- CWindowGc& gc = SystemGc();
-
- // Clip text control and scrollbar to prevent flickering
- gc.SetClippingRegion( *iClipping );
-
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- if (iBgContext)
- {
- // Draw the skin background
- AknsDrawUtils::Background(
- skin, iBgContext, this, gc, aRect);
- }
- else
- {
- // clear the area
- gc.SetBrushColor( iEikonEnv->ControlColor( EColorWindowBackground, *this ) );
- gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- gc.Clear( aRect );
- }
-
- TRAP_IGNORE( iTextView->DrawL( aRect ) );
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::Draw() end") );
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::SizeChanged
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::SizeChanged()
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::SizeChanged() start") );
- TAknWindowLineLayout rpLayout( AknLayoutScalable_Apps::list_im_pane( 3 ) );
- TAknLayoutRect rpLayoutRect;
- rpLayoutRect.LayoutRect( Rect(), rpLayout );
-
- // update rects
- iViewRect = rpLayoutRect.Rect();
-
- iCustomDraw->SetRect( iViewRect );
- iTextView->SetViewRect( iViewRect );
- iLayout->SetWrapWidth( iViewRect.Width() );
-
- if (AknLayoutUtils::DefaultScrollBarType(iAvkonAppUi) == CEikScrollBarFrame::EDoubleSpan)
- {
- // For EDoubleSpan type scrollbar
- TAknWindowLineLayout sbLayout( AknLayoutScalable_Apps::scroll_pane_cp07( 3 ) );
- AknLayoutUtils::LayoutVerticalScrollBar( iScrollBar, Rect(), sbLayout );
- TAknLayoutRect sbLayoutRect;
- sbLayoutRect.LayoutRect( Rect(), sbLayout );
- }
- if ( iBgContext )
- {
- iBgContext->SetRect( Parent()->Rect() );
- iBgContext->SetParentPos( Parent()->PositionRelativeToScreen() );
- }
-
- // Setup clipping region
- iClipping->Clear();
- iClipping->AddRect( Rect() );
-
- // clip text control
- iClipping->SubRect( iTextView->ViewRect() );
-
- // clip scrollbar
- if ( iScrollBar->TypeOfVScrollBar() == CEikScrollBarFrame::EDoubleSpan)
- {
- //fix for the tsw bug id:EKYT-7B68G9 //start.
- TAknWindowLineLayout sbLayout( AknLayoutScalable_Apps::scroll_pane_cp07( 3 ) );
- AknLayoutUtils::LayoutVerticalScrollBar( iScrollBar, Rect(), sbLayout );
- TAknLayoutRect sbLayoutRect;
- sbLayoutRect.LayoutRect( Rect(), sbLayout );
- iClipping->SubRect( sbLayoutRect.Rect() );
- //fix for the tsw bug id:EKYT-7B68G9 //end.
- }
-
- // and update view
- TRAPD( err, ScrollLinesL( 0 );
- UpdateViewL() );
- if( err != KErrNone )
- {
- CActiveScheduler::Current()->Error( err );
- }
-
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::SizeChanged() end") );
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::HandleFormatChangedL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::HandleFormatChangedL( TCursorSelection& aChanged,
- TBool aPreserveFocus /* = EFalse */ )
- {
- if (iSmileyDialogLaunched)
- return;
-
- // rich text has changed, inform viewer
- iTextView->SetSelectionVisibilityL( EFalse );
-
- if( aPreserveFocus )
- {
- // Preserve focus
- TCursorSelection sel = iTextView->Selection();
- // This seems to be the only method which doesn't change focus.
- // --> so it's possible to preserve focus without flicker
- iTextView->HandleGlobalChangeNoRedrawL();
- ScrollVisibleL( sel, EFalse );
- DrawDeferred();
-
- }
- else
- {
- // Move focus along with changes
- iTextView->HandleRangeFormatChangeL( aChanged, ETrue );
- //ScrollVisibleL( aChanged, ETrue );
- UpdateViewL ();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::HandleInsertDeleteL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::HandleInsertDeleteL( TCursorSelection& aChanged,
- TInt aDeletedChars )
- {
- if (iSmileyDialogLaunched)
- return;
-
- // inform about insertion or deletion
- iTextView->SetSelectionVisibilityL( EFalse );
- iTextView->HandleInsertDeleteL( aChanged, aDeletedChars );
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::HandleAdditionL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::HandleAdditionL( TBool aFirst,
- TCursorSelection& aSelection,
- TBool aTop )
- {
- // inform about addition
- if( aFirst )
- {
- iTextView->FormatTextL();
- }
- else
- {
- iTextView->HandleAdditionalCharactersAtEndL();
- }
-
- // if smiley dialog is launched, then dont draw.
- if (iSmileyDialogLaunched)
- return;
-
- ScrollVisibleL( aSelection, aTop );
- DrawDeferred();
-
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::ScrollVisibleL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::ScrollVisibleL( TCursorSelection& aSelection, TBool aTop )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::ScrollVisibleL() start") );
- // if smiley dialog is launched, then dont draw.
- if (iSmileyDialogLaunched)
- return;
-
-
- TCursorSelection sel( aSelection );
- if( !ParagraphFits( sel.LowerPos() ) )
- {
- // selection doesn't fit to screen
- TInt pos( aTop ? aSelection.LowerPos() : aSelection.HigherPos() );
- sel.SetSelection( pos, pos );
- }
-
- // scroll selection to screen
- iTextView->SetSelectionVisibilityL( EFalse );
- iTextView->SetSelectionL( sel );
-
- // and update scroll bars
- UpdateScrollBarsL();
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::ScrollVisibleL() end") );
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::ScrollSelectionL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TCursorSelection CIMCVAppTextViewControl::ScrollSelection()
- {
- return iTextView->Selection();
- }
-
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::ScrollLinesL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::ScrollLinesL( TInt aAmount )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::ScrollLinesL() start"));
- iLayout->ScrollLinesL( aAmount );
- UpdateScrollBarsL();
- DrawDeferred();
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::ScrollLinesL() end") );
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::IsVisible
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CIMCVAppTextViewControl::IsVisible( TInt aPos )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::IsVisible() start") );
- TTmDocPos pos( aPos, ETrue );
- TTmLineInfo lineInfo;
-
- if( !iLayout->PosInBand( pos, &lineInfo ) )
- {
- // current position outside
- return EFalse;
- }
-
- if( !ParagraphFits( aPos ) )
- {
- // paragraph doesn't fit to screen
- // extend scrolling one line up and down
-
- // iLineNumber starts from 0 and FirstCharOnLine assumes first line to be 1
- TInt lineNo( lineInfo.iLineNumber + 1 );
-
- // check previous line (if it exists)
- if( lineNo > 1 )
- {
- pos.iPos = iLayout->FirstCharOnLine( lineNo - 1 );
-
- if( !iLayout->PosInBand( pos ) )
- {
- // previous line outside
- return EFalse;
- }
- }
-
- // check next line
- pos.iPos = iLayout->FirstCharOnLine( lineNo + 1 );
-
- return iLayout->PosInBand( pos );
- }
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::IsVisible() end") );
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::ParagraphFits
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CIMCVAppTextViewControl::ParagraphFits( TInt aPos )
- {
- return iLayout->ParagraphHeight( aPos ) <= iViewRect.Height();
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::RedrawL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::Redraw()
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::Redraw() start" ));
- DrawDeferred();
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::Redraw() end" ));
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::CountComponentControls
-// -----------------------------------------------------------------------------
-//
-TInt CIMCVAppTextViewControl::CountComponentControls() const
- {
- if (iScrollBar && iScrollBar->TypeOfVScrollBar() == CEikScrollBarFrame::EDoubleSpan)
- {
- return 1;
- }
- else
- {
- return 0;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::ComponentControl
-// -----------------------------------------------------------------------------
-//
-CCoeControl* CIMCVAppTextViewControl::ComponentControl(TInt aIndex) const
- {
- if (aIndex == 0 && iScrollBar &&
- iScrollBar->TypeOfVScrollBar() == CEikScrollBarFrame::EDoubleSpan)
- {
- return iScrollBar->VerticalScrollBar();
- }
- else
- {
- return NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::SetPenBehaviour
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::SetPenBehaviour( TPenBehaviour aPen )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::SetPenBehaviour() start" ));
- iPenType = aPen;
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::SetPenBehaviour() end" ));
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::PenBehaviour
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MIMCVAppTextView::TPenBehaviour CIMCVAppTextViewControl::PenBehaviour()
- {
- return iPenType;
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::ProcessStylusEventL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::ProcessStylusEventL(
- const TPointerEvent& /*aPointerEvent*/ )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::ProcessStylusEventL() start" ));
- // nothing to do. Let derived classes to handle text selection.
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::ProcessStylusEventL() end" ));
- }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppTextViewControl::HandleGlobalChangeNoRedrawL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppTextViewControl::HandleGlobalChangeNoRedrawL(
- TViewYPosQualifier aYPosQualifier /*= TViewYPosQualifier()*/ )
- {
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::HandleGlobalChangeNoRedrawL() start" ));
- iTextView->HandleGlobalChangeNoRedrawL( aYPosQualifier );
- IM_CV_LOGS(TXT("CIMCVAppTextViewControl::HandleGlobalChangeNoRedrawL() end" ));
- }
-
-
-// End of File