diff -r 0f21a5ec0db7 -r 41b775cdc0c8 extras/calcsoft/src/CalcOutSheet.cpp --- a/extras/calcsoft/src/CalcOutSheet.cpp Thu Aug 19 09:56:23 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,821 +0,0 @@ -/* -* Copyright (c) 2002 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: The OutputSheet sub-pane class, CCalcOutputSheet. -* Derived from CCoeControl. -* The CCalcOutputSheet displays histroy data. -* History data is scroll up and down. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include "CalcEnv.h" -#include "CalcCont.h" -#include "CalcOutSheet.h" -#include "CalcDoc.h" -#include "CalcEditline.h" -#include "CalcAppUi.h" -#include "CalcHistory.h" -#include "CalcDrawingConst.laf" -#include "fbs.h" -#include -#include -#include -#include - - -#include -#include - -// LOCAL CONSTANTS AND MACROS - -// ================= MEMBER FUNCTIONS ======================= - -// Two-phased constructor. -CCalcOutputSheet* CCalcOutputSheet::NewL( - CCalcContainer* aContainer) - { - CCalcOutputSheet* self = new (ELeave) CCalcOutputSheet(); - CleanupStack::PushL(self); - self->ConstructL(aContainer); - CleanupStack::Pop(self); - return self; - } - -// Destructor -CCalcOutputSheet::~CCalcOutputSheet() - { - delete iOpSheetContext; - if(iOperatorLayout) - { - iOperatorLayout->Reset(); - delete iOperatorLayout; - } - if(iOperandLayout) - { - iOperandLayout->Reset(); - delete iOperandLayout; - } - if(iEqualLineLayout) - { - iEqualLineLayout->Reset(); - delete iEqualLineLayout; - } - if(iResultsLineLayout) - { - iResultsLineLayout->Reset(); - delete iResultsLineLayout; - } - if (iCRKey) - { - delete iCRKey; - iCRKey = NULL; - } - - //Delete the scrollbar frame - if(iSBFrame) - { - delete iSBFrame; - iSBFrame = NULL; - } - } - -// --------------------------------------------------------- -// CCalcOutputSheet::ScrollToBottomL -// Scroll to bottom line. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcOutputSheet::ScrollToBottomL() - { - iScrollOffset = 0; - - //If scrollbar is present, update the scrollbar as well - if( AknLayoutUtils::PenEnabled() ) - { - UpdateScrollIndicatorL(); - } - DrawNow(); - } - -// --------------------------------------------------------- -// CCalcOutputSheet::NotifyClearHistory -// Called after clearing calculation history. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcOutputSheet::NotifyClearHistoryL() - { - iScrollOffset = 0; - if( AknLayoutUtils::PenEnabled() ) - { - UpdateScrollIndicatorL(); - } - DrawNow(); - } - - -// --------------------------------------------------------- -// CCalcOutputSheet::CanUp -// Check whether scroll-up can be done or not. -// (other items were commented in a header). -// --------------------------------------------------------- -// -TBool CCalcOutputSheet::CanUp() const - { - // The number of lines of the history which a document has is got. - TInt historyLine(iCalcHistory->Count()); - if ( (iCalcOutputSheetLines + iScrollOffset) < historyLine ) - { - return ETrue; - } - return EFalse; - } - -// --------------------------------------------------------- -// CCalcOutputSheet::CanDown -// Check whether scroll-down can be done or not. -// (other items were commented in a header). -// --------------------------------------------------------- -// -TBool CCalcOutputSheet::CanDown() const - { - // The number of lines of the history which a document has is got. - return (iScrollOffset != 0); - } - - -// --------------------------------------------------------- -// CCalcOutputSheet::ScrollUp -// history is scrolled up. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcOutputSheet::ScrollUp() - { - - if (CanUp()) - { - iScrollOffset++; - DrawNow(); - } - } - -// --------------------------------------------------------- -// CCalcOutputSheet::ScrollDown -// history is scrolled down. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcOutputSheet::ScrollDown() - { - - if (CanDown()) - { - iScrollOffset--; - DrawNow(); - } - } - -// C++ default constructor can NOT contain any code, that -// might leave. -// -CCalcOutputSheet::CCalcOutputSheet() - { - } - -// default constructor can leave. -void CCalcOutputSheet::ConstructL - (CCalcContainer* aContainer) - - { - SetContainerWindowL(*aContainer); - - iCalcContainer = aContainer; - - iCalcAppEnv = CCalcAppEnv::Static(); - iCalcPaper = iCalcAppEnv->PaperBitmap(); - iCalcAppEnv->ScalablePaperBitmaps(iCalcScalablePaper); -#ifdef __SCALABLE_ICONS - iCalcResultsLine = iCalcAppEnv->ResultsLineBitmap(); -#endif - - CCalcAppUi* appui = iCalcAppEnv->AppUi(); - CCalcDocument* calcDocument = - STATIC_CAST(CCalcDocument*, appui->Document()); - iCalcHistory = calcDocument->History(); - TAknLayoutScalableParameterLimits listLimits; - listLimits = AknLayoutScalable_Apps::list_calc_item_pane_ParamLimits(); - iCalcOutputSheetLines = (listLimits.LastRow()-listLimits.FirstRow()) + 1; - iOpSheetContext = CAknsBasicBackgroundControlContext::NewL(KAknsIIDQsnFrCalcPaper , TRect(0,0,0,0), EFalse); - iOperatorLayout = new(ELeave)CArrayFixFlat(iCalcOutputSheetLines); - iOperandLayout = new(ELeave)CArrayFixFlat(iCalcOutputSheetLines); - iResultsLineLayout = new(ELeave)CArrayFixFlat(iCalcOutputSheetLines-1); - iEqualLineLayout = new(ELeave)CArrayFixFlat(iCalcOutputSheetLines-1); - iUiLanguage = User::Language(); - } - -// --------------------------------------------------------- -// CCalcOutputSheet::SizeChanged -// Set size of control. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcOutputSheet::SizeChanged() - { - TRAP_IGNORE( SizeChangedOutSheetL() ); - } - -// --------------------------------------------------------- -// CCalcOutputSheet::SizeChanged -// Set size of control. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcOutputSheet::SizeChangedOutSheetL() - { - TRect parentRect(iCalcContainer->Rect()); - - TAknLayoutScalableParameterLimits listLimits; - if(AknLayoutUtils::PenEnabled()) - { - listLimits = AknLayoutScalable_Apps::list_calc_item_pane_ParamLimits(enTouch_enabled); - } - else - { - listLimits = AknLayoutScalable_Apps::list_calc_item_pane_ParamLimits(enTouch_disabled); - } - iCalcOutputSheetLines = (listLimits.LastRow()-listLimits.FirstRow()) + 1; - iOperatorLayout->ResizeL(iCalcOutputSheetLines); - iOperandLayout->ResizeL(iCalcOutputSheetLines); - iResultsLineLayout->ResizeL(iCalcOutputSheetLines-1); - iEqualLineLayout->ResizeL(iCalcOutputSheetLines-1); - - iOperatorLayout->Reset(); - iOperandLayout->Reset(); - iResultsLineLayout->Reset(); - iEqualLineLayout->Reset(); - - TAknLayoutRect rectParent; - TAknWindowLineLayout layoutOfParentResultsLine; - TAknLayoutRect rectListCalcPane; - - - - if( AknLayoutUtils::ScalableLayoutInterfaceAvailable() ) - { - TAknWindowLineLayout calcPaperPane; - - //For Touch UI Layouts, different configuration - if( AknLayoutUtils::PenEnabled() ) - { - if (Layout_Meta_Data::IsLandscapeOrientation()) - { - calcPaperPane = AknLayoutScalable_Apps::calc_paper_pane(enTouch_with_lsc).LayoutLine(); - } - else - { - calcPaperPane = AknLayoutScalable_Apps::calc_paper_pane(enTouch_with_prt).LayoutLine(); - } - } - else - { - calcPaperPane = AknLayoutScalable_Apps::calc_paper_pane(enTouch_disabled).LayoutLine(); - } - TAknLayoutRect rectcalcPaperPane; - rectcalcPaperPane.LayoutRect(parentRect,calcPaperPane); - iSBBrPoint = rectcalcPaperPane.Rect().iBr; - TAknWindowLineLayout layoutListCalcPane; - if( AknLayoutUtils::PenEnabled() ) - { - layoutListCalcPane = AknLayoutScalable_Apps::list_calc_pane(enTouch_enabled).LayoutLine(); - } - else - { - layoutListCalcPane = AknLayoutScalable_Apps::list_calc_pane(enTouch_disabled).LayoutLine(); - } - - rectListCalcPane.LayoutRect(rectcalcPaperPane.Rect(),layoutListCalcPane); - } - - TInt nTimes=(iCalcOutputSheetLines-1); - for (TInt cnt(0); cnt < iCalcOutputSheetLines; cnt++) - { - if (AknLayoutUtils::ScalableLayoutInterfaceAvailable()) - { - if(AknLayoutUtils::PenEnabled()) - { - if (Layout_Meta_Data::IsLandscapeOrientation()) - { - layoutOfParentResultsLine = AknLayoutScalable_Apps::list_calc_item_pane(nTimes,enTouch_enabled).LayoutLine(); - } - else - { - layoutOfParentResultsLine = AknLayoutScalable_Apps::list_calc_item_pane(nTimes,enTouch_enabled).LayoutLine(); - } - - } - else - { - layoutOfParentResultsLine = AknLayoutScalable_Apps::list_calc_item_pane(nTimes,enTouch_disabled).LayoutLine(); - } - - - rectParent.LayoutRect(rectListCalcPane.Rect(),layoutOfParentResultsLine) ; - - TAknLayoutText operatorLayout; - TAknLayoutText operendLayout; - if(AknLayoutUtils::PenEnabled()) - { - operatorLayout.LayoutText(rectParent.Rect(),AknLayoutScalable_Apps::list_calc_item_pane_t2(enTouch_with_prt).LayoutLine(),iCalcAppEnv->OutSheetOperatorFont()); - iOperatorLayout->AppendL(operatorLayout); - - operendLayout.LayoutText(rectParent.Rect(),AknLayoutScalable_Apps::list_calc_item_pane_t1(enTouch_with_lsc).LayoutLine(),iCalcAppEnv->OutSheetOperatorFont()); - iOperandLayout->AppendL(operendLayout); - } - else - { - operatorLayout.LayoutText(rectParent.Rect(),AknLayoutScalable_Apps::list_calc_item_pane_t2(enTouch_disabled).LayoutLine(),iCalcAppEnv->OutSheetOperatorFont()); - iOperatorLayout->AppendL(operatorLayout); - - operendLayout.LayoutText(rectParent.Rect(),AknLayoutScalable_Apps::list_calc_item_pane_t1(enTouch_disabled).LayoutLine(),iCalcAppEnv->OutSheetOperatorFont()); - iOperandLayout->AppendL(operendLayout); - } - - // aCustomFont - --nTimes; - - } - - else - { - - - //Scalable UI. - - TAknLayoutText operatorLayout; - TAknLayoutText operendLayout; - operatorLayout.LayoutText(parentRect,AppLayout::Calculator_texts_Line_8(nTimes),iCalcAppEnv->OutSheetOperatorFont()); // aCustomFont - iOperatorLayout->AppendL(operatorLayout); - - operendLayout.LayoutText(parentRect,AppLayout::Calculator_texts_Line_7(nTimes), NULL); - iOperandLayout->AppendL(operendLayout); - --nTimes; - } - } - - //Scalable UI. - nTimes = iCalcOutputSheetLines - 2; - for (TInt ii(0); ii < (iCalcOutputSheetLines - 1); ii++) - { - - - if( AknLayoutUtils::ScalableLayoutInterfaceAvailable() ) - { -#ifdef __SCALABLE_ICONS - layoutOfParentResultsLine = AknLayoutScalable_Apps::list_calc_item_pane(nTimes).LayoutLine(); - - rectParent.LayoutRect(rectListCalcPane.Rect(),layoutOfParentResultsLine) ; - TAknWindowLineLayout layoutOfResultsLine = AknLayoutScalable_Apps::list_calc_item_pane_g1().LayoutLine(); - TAknLayoutRect lineLayout; - lineLayout.LayoutRect(rectParent.Rect(),layoutOfResultsLine); - iResultsLineLayout->AppendL(lineLayout); -#else - TAknLayoutRect lineLayout; - lineLayout.LayoutRect(parentRect,AppLayout::Calculator_elements_Line_3(nTimes)); - iEqualLineLayout->AppendL(lineLayout); -#endif - } - else - { - TAknLayoutRect lineLayout; - lineLayout.LayoutRect(parentRect,AppLayout::Calculator_elements_Line_3(nTimes)); - iEqualLineLayout->AppendL(lineLayout); - } - - --nTimes; - } - - TAknLayoutRect paperRect; - if( AknLayoutUtils::ScalableLayoutInterfaceAvailable() ) - { - TAknLayoutRect rectCalcPaperPane; - TAknLayoutRect rectbgCalcPaperPane; - //Different configuration for Touch Layouts - if( AknLayoutUtils::PenEnabled() ) - { - //In landscape mode different configuration is needed - if (Layout_Meta_Data::IsLandscapeOrientation()) - { - rectCalcPaperPane.LayoutRect(parentRect,AknLayoutScalable_Apps::calc_paper_pane(enTouch_with_lsc).LayoutLine()); - } - else - { - rectCalcPaperPane.LayoutRect(parentRect,AknLayoutScalable_Apps::calc_paper_pane(enTouch_with_prt).LayoutLine()); - } - rectbgCalcPaperPane.LayoutRect(rectCalcPaperPane.Rect(),AknLayoutScalable_Apps::bg_calc_paper_pane(enTouch_enabled).LayoutLine()); - } - else - { - rectCalcPaperPane.LayoutRect(parentRect,AknLayoutScalable_Apps::calc_paper_pane(enTouch_disabled).LayoutLine()); - rectbgCalcPaperPane.LayoutRect(rectCalcPaperPane.Rect(),AknLayoutScalable_Apps::bg_calc_paper_pane().LayoutLine()); - } - - iPaperPaneRect = rectCalcPaperPane; - - - iCalcPaperLayout[0].LayoutRect(rectbgCalcPaperPane.Rect(),AknLayoutScalable_Apps::bg_calc_paper_pane_g1().LayoutLine()); - iCalcPaperLayout[1].LayoutRect(rectbgCalcPaperPane.Rect(),AknLayoutScalable_Apps::bg_calc_paper_pane_g2().LayoutLine()); - iCalcPaperLayout[2].LayoutRect(rectbgCalcPaperPane.Rect(),AknLayoutScalable_Apps::bg_calc_paper_pane_g3().LayoutLine()); - iCalcPaperLayout[3].LayoutRect(rectbgCalcPaperPane.Rect(),AknLayoutScalable_Apps::bg_calc_paper_pane_g4().LayoutLine()); - iCalcPaperLayout[4].LayoutRect(rectbgCalcPaperPane.Rect(),AknLayoutScalable_Apps::bg_calc_paper_pane_g5().LayoutLine()); - iCalcPaperLayout[5].LayoutRect(rectbgCalcPaperPane.Rect(),AknLayoutScalable_Apps::bg_calc_paper_pane_g6().LayoutLine()); - iCalcPaperLayout[6].LayoutRect(rectbgCalcPaperPane.Rect(),AknLayoutScalable_Apps::bg_calc_paper_pane_g7().LayoutLine()); - iCalcPaperLayout[7].LayoutRect(rectbgCalcPaperPane.Rect(),AknLayoutScalable_Apps::bg_calc_paper_pane_g8().LayoutLine()); - iCalcPaperLayout[8].LayoutRect(rectbgCalcPaperPane.Rect(),AknLayoutScalable_Apps::calc_bg_paper_pane_g9().LayoutLine()); - } - - iOpSheetContext->SetRect(Rect()); - - //Only for touch UI, scrollbars are present - if( AknLayoutUtils::PenEnabled() ) - { - UpdateScrollIndicatorL(); - } - else - { - if(iSBFrame) - { - delete(iSBFrame); - iSBFrame = NULL; - } - - } - - } - - -// --------------------------------------------------------- -// CCalcOutputSheet::UpdateScrollIndicatorL -// Creates and updates the scrollbar -// (other items were commented in a header). -// --------------------------------------------------------- -void CCalcOutputSheet::UpdateScrollIndicatorL() - { - - if( !AknLayoutUtils::PenEnabled() ) - { - return; - } - - TAknLayoutRect rectCalcScrollPane; - - //Get the layout information for the scrollbar - if( AknLayoutUtils::PenEnabled() ) - { - if (Layout_Meta_Data::IsLandscapeOrientation()) - { - rectCalcScrollPane.LayoutRect(iPaperPaneRect.Rect(),AknLayoutScalable_Apps::scroll_pane_cp024().LayoutLine()); - } - else - { - rectCalcScrollPane.LayoutRect(iPaperPaneRect.Rect(),AknLayoutScalable_Apps::scroll_pane_cp024().LayoutLine()); - } - - } - //Create scrollbar if not created already - if ( !iSBFrame ) - { - //Make this class as the observer class as well - iSBFrame = new( ELeave ) CEikScrollBarFrame( this,this, ETrue ); - - // Decide which type of scrollbar is to be shown - CAknAppUi* appUi = iAvkonAppUi; - if (AknLayoutUtils::DefaultScrollBarType(appUi) == CEikScrollBarFrame::EDoubleSpan) - { - // For EDoubleSpan type scrollbar - iSBFrame->CreateDoubleSpanScrollBarsL(ETrue, EFalse); // non-window owning scrollbar - iSBFrame->SetTypeOfVScrollBar(CEikScrollBarFrame::EDoubleSpan); - } - else - { - // For EArrowHead type scrollbar - iSBFrame->SetTypeOfVScrollBar(CEikScrollBarFrame::EArrowHead); - } - iSBFrame->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,CEikScrollBarFrame::EOff); - } - - TEikScrollBarModel hSbarModel; - TEikScrollBarModel vSbarModel; - - //By default span is one if only one page is present - if(iCalcHistory->Count() < iCalcOutputSheetLines) - { - vSbarModel.iScrollSpan = 1; - vSbarModel.iThumbPosition = 0; - - } - else - { - //span calculator if no of lines exceeds one page - vSbarModel.iScrollSpan = 1 + iCalcHistory->Count() - iCalcOutputSheetLines; - } - - iPrevThumbPosition = vSbarModel.iThumbPosition = vSbarModel.iScrollSpan - 1; - vSbarModel.iThumbSpan = 1; - - TRect clientRect( iAvkonAppUi->ClientRect() ); - TRect rec(rectCalcScrollPane.Rect()); - TPoint point = rectCalcScrollPane.Rect().iBr; - TInt width = rectCalcScrollPane.Rect().Width(); - TInt rightPointRectX = iSBBrPoint.iX; - TInt pointRectX = point.iX; - TInt pointRectY = point.iY; - pointRectX = rightPointRectX; - TPoint newPoint; - newPoint.SetXY( pointRectX, pointRectY ); - TRect rect; - rect.SetRect( rec.iTl, newPoint ); - - TEikScrollBarFrameLayout layout; - layout.iTilingMode = TEikScrollBarFrameLayout::EInclusiveRectConstant; - - if (iSBFrame->TypeOfVScrollBar() == CEikScrollBarFrame::EDoubleSpan) - { - // For EDoubleSpan type scrollbar - if (vSbarModel.iThumbPosition + vSbarModel.iThumbSpan > vSbarModel.iScrollSpan) - { - // Not let scrollbar values overflow - vSbarModel.iThumbPosition = vSbarModel.iScrollSpan - vSbarModel.iThumbSpan; - } - - TAknDoubleSpanScrollBarModel hDsSbarModel(hSbarModel); - TAknDoubleSpanScrollBarModel vDsSbarModel(vSbarModel); - - if (iCalcHistory->Count() <= iCalcOutputSheetLines ) - { - iSBFrame->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EOff); - } - else - { - iSBFrame->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EOn); - } - - iSBFrame->TileL(&hDsSbarModel, &vDsSbarModel, clientRect, rect, layout); - iSBFrame->SetVFocusPosToThumbPos(vDsSbarModel.FocusPosition()); - } - else - { - iSBFrame->TileL( &hSbarModel, &vSbarModel, clientRect, rect, layout ); - iSBFrame->SetVFocusPosToThumbPos( vSbarModel.iThumbPosition ); - } - } - - -// --------------------------------------------------------- -// CCalcOutputSheet::Draw -// Drawing frame and history. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcOutputSheet::Draw - (const TRect& aRect) const - { - - CWindowGc& gc = SystemGc(); - gc.Clear(aRect); - gc.SetClippingRect(aRect); - TRect rect(Rect()); - - - - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - - AknsDrawUtils::Background( AknsUtils:: SkinInstance(), AknsDrawUtils::ControlContext(this), this, gc, rect ); - - - gc.SetBrushStyle(CGraphicsContext::ENullBrush); - gc.SetPenStyle(CGraphicsContext::ENullPen); - //set the size of the bitmap. SVG-T upgrade. - CAknsItemData* idata = NULL; - if (skin) - { - idata = skin->GetCachedItemData( KAknsIIDQsnFrCalcPaper); - } - - if ( idata && idata->Type() == EAknsITImageTable ) - { - if ( AknLayoutUtils::PenEnabled() ) - {//when touch input,the paper become bigger,so it needs only one paper - AknIconUtils::SetSize(iCalcScalablePaper[0]->Bitmap(),iCalcPaperLayout[0].Rect().Size(),EAspectRatioNotPreserved); - AknIconUtils::SetSize(iCalcScalablePaper[0]->Mask(),iCalcPaperLayout[0].Rect().Size(),EAspectRatioNotPreserved); - iCalcPaperLayout[0].DrawImage(gc, iCalcScalablePaper[0]->Bitmap(),iCalcScalablePaper[0]->Mask()); - } - else - { - for(TInt Cnt=0;Cnt < 9; Cnt++) - { - AknIconUtils::SetSize(iCalcScalablePaper[Cnt]->Bitmap(),iCalcPaperLayout[Cnt].Rect().Size(),EAspectRatioNotPreserved); - AknIconUtils::SetSize(iCalcScalablePaper[Cnt]->Mask(),iCalcPaperLayout[Cnt].Rect().Size(),EAspectRatioNotPreserved); - iCalcPaperLayout[Cnt].DrawImage(gc, iCalcScalablePaper[Cnt]->Bitmap(),iCalcScalablePaper[Cnt]->Mask()); - } - } - } - else - { - // Make outsheet displayed in Jingmask is the same size as in other themes - // when there is a scrollbar on outsheet. - if ( AknLayoutUtils::PenEnabled() ) - { - AknsDrawUtils::Background( AknsUtils:: SkinInstance(), iOpSheetContext, this, gc, iCalcPaperLayout[0].Rect() ); - } - else - { - AknsDrawUtils::Background( AknsUtils:: SkinInstance(), iOpSheetContext, this, gc, rect ); - } - } - - - for (TInt loop(iCalcOutputSheetLines - 1); loop >= 0; loop--) - { - const TCalcEditLine& history = (*iCalcHistory)[loop + iScrollOffset]; - TCalcEditLine::TCalcOperatorType operatorType( - history.Operator()); - - if (loop < iCalcOutputSheetLines - 1) - { - // When an operator is Equal, a line is drawn at an upper end. - if (TCalcEditLine::ECalcEqual == operatorType) - { - TRgb ResultsLineolor; - TInt error1 = AknsUtils::GetCachedColor( skin, ResultsLineolor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG29); - if(error1 == KErrNone) - { - AknIconUtils::SetIconColor(iCalcResultsLine->Bitmap(),ResultsLineolor); - } - if( AknLayoutUtils::ScalableLayoutInterfaceAvailable() ) - { -#ifdef __SCALABLE_ICONS - TAknLayoutRect& lineLayout = iResultsLineLayout->At(loop); - AknIconUtils::SetSize(iCalcResultsLine->Bitmap(),lineLayout.Rect().Size(),EAspectRatioNotPreserved); - AknIconUtils::SetSize(iCalcResultsLine->Mask(),lineLayout.Rect().Size(),EAspectRatioNotPreserved); - lineLayout.DrawImage(gc, iCalcResultsLine->Bitmap(),iCalcResultsLine->Mask()); -#else - TAknLayoutRect& equalLineLayout= iEqualLineLayout->At(loop); - TRect rectLine = equalLineLayout.Rect(); - equalLineLayout.DrawRect(gc); -#endif - } - else - { - TAknLayoutRect& equalLineLayout= iEqualLineLayout->At(loop); - TRect rectLine = equalLineLayout.Rect(); - equalLineLayout.DrawRect(gc); - } - } - } - TRgb color; - TInt error = AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG29); - if(error == KErrNone) - { - gc.SetPenColor(color); - } - - //change TBuf<10> to TBuf - TBuf keyvalue; - - keyvalue.Append(history.NumberString()); - AknTextUtils::LanguageSpecificNumberConversion (keyvalue); - // An operand's drawing - TAknLayoutText& operendLayout = iOperandLayout->At(loop); - - if ( iUiLanguage == ELangFarsi || iUiLanguage == ELangHindi || - iUiLanguage == ELangUrdu || iUiLanguage == ELangArabic ) - { - if( iUiLanguage == ELangUrdu || iUiLanguage == ELangArabic ) - { - TInt len = keyvalue.Length(); - TInt pos = KErrNotFound; - TBuf<1> ch; - ch.Append(iCalcAppEnv->MinusIndicator()); - if( (pos = keyvalue.Locate(iCalcAppEnv->MinusIndicator())) != KErrNotFound && - pos == keyvalue.LocateReverse(iCalcAppEnv->MinusIndicator())) - { - keyvalue.Delete( pos, 1 ); - keyvalue.Insert( 0, ch ); - } - } - operendLayout.DrawText(gc,keyvalue,EFalse,color); - } - else - { - operendLayout.DrawText(gc,history.NumberString(),EFalse,color); - } - // An operator's drawing - TPtrC operatorString( - iCalcAppEnv->OutSheetOperator(operatorType)); - TAknLayoutText& operatorLayout = iOperatorLayout->At(loop); - operatorLayout.DrawText(gc, operatorString , EFalse, color); - } - - - } - -// --------------------------------------------------------- -// CCalcOutputSheet::HandleScrollEventL -// Handles the events from the scrollbar -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcOutputSheet::HandleScrollEventL(CEikScrollBar* aScrollBar, TEikScrollEvent aEventType) - { - //Only on page up/down,scroll up/down and drag events - if((aEventType == EEikScrollPageDown) || (aEventType == EEikScrollPageUp) || - (aEventType == EEikScrollThumbDragVert) || (aEventType == EEikScrollUp) || - (aEventType == EEikScrollDown)) - - { - //Get the current position from the scroll bar - - if(iPrevThumbPosition >aScrollBar->ThumbPosition() ) - { - //Move the scroll bar n times up - while(iPrevThumbPosition != aScrollBar->ThumbPosition()) - { - ScrollUp(); - iPrevThumbPosition--; - } - } - else - { - //Move the scroll bar n times down - while( iPrevThumbPosition != aScrollBar->ThumbPosition() ) - { - ScrollDown(); - iPrevThumbPosition++; - } - } - - DrawNow(); - } - } - -// --------------------------------------------------------- -// CCalcOutputSheet::HandleResourceChange -// Handles the events that needs to be taken care after resource change -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcOutputSheet::HandleResourceChange(TInt aType) -{ - TRAP_IGNORE(HandleResourceChangeOutSheetL(aType) ); - } - -// --------------------------------------------------------- -// CCalcOutputSheet::HandleResourceChangeOutSheetL -// Handles the events that needs to be taken care after resource change -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcOutputSheet::HandleResourceChangeOutSheetL(TInt aType) - -{ - - if ( aType == KEikDynamicLayoutVariantSwitch ) - { - if (AknLayoutUtils::PenEnabled()) - { - ScrollToBottomL(); - } - } - if ( aType == KAknsMessageSkinChange ) - { - if (AknLayoutUtils::PenEnabled()) - { - delete (iSBFrame); - iSBFrame = NULL; - - UpdateScrollIndicatorL(); - } - } -} -// End of File