diff -r 0f21a5ec0db7 -r 41b775cdc0c8 extras/calcsoft/src/CalcEnv.cpp --- a/extras/calcsoft/src/CalcEnv.cpp Thu Aug 19 09:56:23 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,572 +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: Global data class, CCalcAppEnv, derived from CBase -* This class maintain global data. e.g font, bitmap. -* -*/ - - - -// INCLUDE FILES -#include // resource reader -#include -#include -#include -#include // Fonts -#include - -//Extended Icon Skin Implementation -#include -#include -#include - -#include -#include -#include "CalcEnv.h" -#include "CalcAppUi.h" - -// LOCAL CONSTANTS AND MACROS - -// ================= MEMBER FUNCTIONS ======================= -// Two-phased constructor. -CCalcAppEnv* CCalcAppEnv::NewL -(CCalcAppUi* aAppUi) - { - CCalcAppEnv* self = new (ELeave) CCalcAppEnv(aAppUi); - CleanupStack::PushL(self); - self->ConstructAppEnvL(); - CleanupStack::Pop(self); - // Set to TLS(Thread Local Storage). - UserSvr::DllSetTls(67338721, self); - - return self; - } - -void CCalcAppEnv::InitializeAppUI(CCalcAppUi* aAppUi) - { - iAppUi = aAppUi; - } - - -// Destructor -CCalcAppEnv::~CCalcAppEnv() - { - // Text - delete iEditorOperArray; - delete iOutSheetOperArray; -#ifdef __SCALABLE_ICONS - delete iResultsLineBitmap; -#endif - - - // Bitmap - delete iDisplaySideLBitmap; - delete iDisplayCenterBitmap; - delete iDisplaySideRBitmap; - - delete iPaperBitmap; - for(TInt Cnt=0;Cnt<9;Cnt++) - { - delete iScalablePaperBitmap[Cnt]; - } - - // font - // free font for number and operator - CBitmapDevice* device = iEnv->ScreenDevice(); - device->ReleaseFont(iNumberShadowFont); - device->ReleaseFont(iNumberFont); - device->ReleaseFont(iOperatorShadowFont); - device->ReleaseFont(iOperatorFont); - device->ReleaseFont(iOutSheetOperatorFont); - - - //Extended Icon Skin Implementation - iAknsConstArray.Close(); - iAknsConstArrayForPaper.Close(); - } - - -// --------------------------------------------------------- -// CCalcAppEnv::Static -// Return value of thread-local storage. -// This value is set pointer of CCalcAppEnc class in CCalcAppEnv::NewL(). -// (other items were commented in a header). -// --------------------------------------------------------- -// -CCalcAppEnv* CCalcAppEnv::Static() - { - return REINTERPRET_CAST(CCalcAppEnv*, UserSvr::DllTls(67338721)); - } - - -// C++ default constructor can NOT contain any code, that -// might leave. -// - -CCalcAppEnv::CCalcAppEnv() - { - } - - -CCalcAppEnv::CCalcAppEnv -(CCalcAppUi* aAppUi) -: iAppUi(aAppUi) - { - } - -// Second-phase constructor -void CCalcAppEnv::ConstructAppEnvL() - { - iEnv = CEikonEnv::Static(); - - // Read char code for operator. - TResourceReader editOperRr; - iEnv ->CreateResourceReaderLC( - editOperRr, R_CALC_EDITOR_OPERATOR_ARRAY); - TResourceReader osheetOperRr; - iEnv->CreateResourceReaderLC( - osheetOperRr, R_CALC_OUTSHEET_OPERATOR_ARRAY); - - editOperRr.ReadInt16(); // Read count of items - osheetOperRr.ReadInt16(); // Read count of items - - iEditorOperArray = - new (ELeave) CDesCArrayFlat(KCalcCountOfOperatorType); - iOutSheetOperArray = - new (ELeave) CDesCArrayFlat(KCalcCountOfOperatorType); - - TChar editorOper; - TChar outSheetOper; - - for (TInt cnt(0); cnt < KCalcCountOfOperatorType; cnt++) - { - editorOper = editOperRr.ReadUint16(); - outSheetOper = osheetOperRr.ReadUint16(); - TBuf<1> editorOperBuf; - TBuf<1> outSheetOperBuf; - editorOperBuf.Append(editorOper); - outSheetOperBuf.Append(outSheetOper); - iEditorOperArray->AppendL(editorOperBuf); - iOutSheetOperArray->AppendL(outSheetOperBuf); - } - - CleanupStack::PopAndDestroy(2); // editOperRr, osheetOperRr - - - // TLocale::DecimalSeparator() must be used when decimal separator is get. - TLocale locale; - iDecimalSeparator = locale.DecimalSeparator(); - - TBuf<1> buf; - iEnv->ReadResourceL(buf, R_CALC_MINUS_INDICATOR); - iMinusIndicator = buf[0]; - iEnv->ReadResourceL(iMemoryIndicator, R_CALC_STTUS_SAVED_TO_MEM); - iEnv->ReadResourceL(iMemoryIndicatorShadow, R_CALC_STTUS_SAVED_TO_MEM_SHA); - - CEikApplication* app = iEnv->EikAppUi()->Application(); - TFileName bmpPath(app->BitmapStoreName()); - - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - - //Ext Icon Skinning implementation for Display - - AknsUtils::CreateIconL(skin,KAknsIIDQsnFrCalcDisplaySideL,bitmap,mask,bmpPath, - EMbmCalcsoftQsn_fr_calc_display_side_l, EMbmCalcsoftQsn_fr_calc_display_side_l_mask); - - iDisplaySideLBitmap = CGulIcon::NewL(bitmap, mask); - bitmap = NULL; - mask = NULL; - - - AknsUtils::CreateIconL(skin,KAknsIIDQsnFrCalcDisplayCenter,bitmap,mask,bmpPath, - EMbmCalcsoftQsn_fr_calc_display_center, EMbmCalcsoftQsn_fr_calc_display_center_mask); - - iDisplayCenterBitmap = CGulIcon::NewL(bitmap, mask); - bitmap = NULL; - mask = NULL; - - AknsUtils::CreateIconL(skin,KAknsIIDQsnFrCalcDisplaySideR,bitmap,mask,bmpPath, - EMbmCalcsoftQsn_fr_calc_display_side_r, EMbmCalcsoftQsn_fr_calc_display_side_r_mask); - - iDisplaySideRBitmap = CGulIcon::NewL(bitmap, mask); - - //Ext Icon Skinning implementation for Paper - bitmap = NULL; - mask = NULL; - AknsUtils::CreateIconL(skin,KAknsIIDQgnGrafCalcPaper,bitmap,mask,bmpPath, - EMbmCalcsoftQgn_graf_calc_paper,EMbmCalcsoftQgn_graf_calc_paper_mask); - iPaperBitmap = CGulIcon::NewL(bitmap, mask); - - bitmap = NULL; - mask = NULL; - -#ifdef __SCALABLE_ICONS - AknsUtils::CreateIconL(skin,KAknsIIDQgnGrafCalcResultsLine, bitmap,mask,bmpPath, - EMbmCalcsoftQgn_graf_calc_results_line,EMbmCalcsoftQgn_graf_calc_results_line_mask); - iResultsLineBitmap = CGulIcon::NewL(bitmap, mask); -#endif - bitmap = NULL; - mask = NULL; - iIsSkinChanged = EFalse; - UpdateAknConstArrayforPaper(); - LoadPaperBitmapsL(); - - UpdateAknConstArray(); - - LoadFuncMapBitmapL(); - - - } - - -// --------------------------------------------------------- -// CCalcAppEnv::LoadPaperBitmapsL -// Load bitmaps for Paper Pane. -// (other items were commented in a header). -// --------------------------------------------------------- -// - void CCalcAppEnv::LoadPaperBitmapsL() - { - CEikApplication* app = iEnv->EikAppUi()->Application(); - TFileName bmpPath(app->BitmapStoreName()); - TInt startBitmapId = EMbmCalcsoftQsn_fr_calc_paper_center; - TInt startMaskId = EMbmCalcsoftQsn_fr_calc_paper_center_mask; - TInt startIndex=0; - TInt count = 9; - TInt bmpId(startBitmapId); - TInt maskId(startMaskId); - - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - - for (TInt cnt(startIndex); cnt < (count + startIndex); cnt++) - { - - AknsUtils::CreateIconL(skin, (iAknsConstArrayForPaper)[cnt],bitmap,mask, - bmpPath, bmpId, maskId); - - if(!iIsSkinChanged) - { - iScalablePaperBitmap[cnt] = CGulIcon::NewL(bitmap, mask); - } - else - { - iScalablePaperBitmap[cnt]->SetBitmap(bitmap); - iScalablePaperBitmap[cnt]->SetMask(mask); - } - bmpId = bmpId + 2; - maskId = maskId + 2; - } - } - -// --------------------------------------------------------- -// CCalcAppEnv::LoadFuncMapBitmapL -// Load bitmaps for FunctionMap SubPane. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcAppEnv::LoadFuncMapBitmapL() - { - - CEikApplication* app = iEnv->EikAppUi()->Application(); - TFileName bmpPath(app->BitmapStoreName()); - - if(iIsSkinChanged) //EISkin2.6 - { - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - - //Ext Icon Skinning implementation for Display - - AknsUtils::CreateIconL(skin,KAknsIIDQsnFrCalcDisplaySideL,bitmap,mask,bmpPath, - EMbmCalcsoftQsn_fr_calc_display_side_l, EMbmCalcsoftQsn_fr_calc_display_side_l_mask); - - iDisplaySideLBitmap->SetBitmap(bitmap); - iDisplaySideLBitmap->SetMask(mask); - - bitmap = NULL; - mask = NULL; - - - AknsUtils::CreateIconL(skin,KAknsIIDQsnFrCalcDisplayCenter,bitmap,mask,bmpPath, - EMbmCalcsoftQsn_fr_calc_display_center, EMbmCalcsoftQsn_fr_calc_display_center_mask); - - iDisplayCenterBitmap->SetBitmap(bitmap); - iDisplayCenterBitmap->SetMask(mask); - - bitmap = NULL; - mask = NULL; - - AknsUtils::CreateIconL(skin,KAknsIIDQsnFrCalcDisplaySideR,bitmap,mask,bmpPath, - EMbmCalcsoftQsn_fr_calc_display_side_r, EMbmCalcsoftQsn_fr_calc_display_side_r_mask); - - iDisplaySideRBitmap->SetBitmap(bitmap); - iDisplaySideRBitmap->SetMask(mask); - - //Ext Icon Skinning implementation for Paper - bitmap = NULL; - mask = NULL; - AknsUtils::CreateIconL(skin,KAknsIIDQgnGrafCalcPaper,bitmap,mask,bmpPath, - EMbmCalcsoftQgn_graf_calc_paper,EMbmCalcsoftQgn_graf_calc_paper_mask); - - iPaperBitmap->SetBitmap(bitmap); - iPaperBitmap->SetMask(mask); - bitmap = NULL; - mask = NULL; -#ifdef __SCALABLE_ICONS - AknsUtils::CreateIconL(skin,KAknsIIDQgnGrafCalcResultsLine, bitmap,mask,bmpPath, - EMbmCalcsoftQgn_graf_calc_results_line,EMbmCalcsoftQgn_graf_calc_results_line_mask); - - iResultsLineBitmap->SetBitmap(bitmap); - iResultsLineBitmap->SetMask(mask); -#endif - bitmap = NULL; - mask = NULL; - LoadPaperBitmapsL(); - } - - if(!iIsSkinChanged) - { - - - if( AknLayoutUtils::PenEnabled() ) - { - - - LoadBitmapForFuncMapL( - EMbmCalcsoftQgn_indi_calc_cancel, - EMbmCalcsoftQgn_indi_calc_cancel_mask, - 0, - KCountOfButtonsTouch, iUnpressedButtonBmp, ENORMAL); - } - - else - { - LoadBitmapForFuncMapL( - EMbmCalcsoftQgn_indi_calc_button_plus, - EMbmCalcsoftQgn_indi_calc_button_plus_mask, - 0, - KCountOfButtons, iUnpressedButtonBmp, ENORMAL); - - LoadBitmapForFuncMapL( - EMbmCalcsoftQgn_indi_calc_button_plus_pressed, - EMbmCalcsoftQgn_indi_calc_button_plus_pressed_mask, - 0, - KCountOfButtons, iPressedButtonBmp, EPRESSED); - - } - } - - } - -// --------------------------------------------------------- -// CCalcAppEnv::UpdateAknConstArrayForFuncmap -// Update array for function map. -// (other items were commented in a header). -// --------------------------------------------------------- -// -void CCalcAppEnv::UpdateAknConstArrayForFuncMap() - { - UpdateAknConstArray(); - } - -// --------------------------------------------------------- -// CCalcAppEnv::LoadBitmapForFuncMapButtonL -// Load bitmaps for FunctionMap button. -// (other items were commented in a header). -// --------------------------------------------------------- -// - -void CCalcAppEnv::LoadBitmapForFuncMapL(TInt aStartBitmapId, TInt aStartMaskId, TInt aStartIndex, - TInt aCount, CGulIcon* aBitmapArray[], ButtonType aType) - { - CEikApplication* app = iEnv->EikAppUi()->Application(); - TFileName bmpPath(app->BitmapStoreName()); - TInt bmpId(aStartBitmapId); - TInt maskId(aStartMaskId); - - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - - // Get the text color of theme - TRgb iconColor; - AknsUtils::GetCachedColor( skin, iconColor, - KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG29 ); - - for (TInt cnt(aStartIndex); cnt < (aCount + aStartIndex); cnt++) - { - switch(aType) - { - case EPRESSED: - { - if(!AknLayoutUtils::PenEnabled() ) - { - AknsUtils::CreateIconL(skin,(iAknsConstArray)[cnt + KCalcCountOfButtonPressed],bitmap,mask, - bmpPath, bmpId, maskId); - - } - } - break; - case ENORMAL: - { - if(!AknLayoutUtils::PenEnabled() ) - { - AknsUtils::CreateIconL(skin,(iAknsConstArray)[cnt],bitmap,mask, - bmpPath, bmpId, maskId); - } - else - { - AknsUtils::CreateIconL(skin,(iAknsConstArray)[cnt]/*KAknsIIDQgnIndiCalcAdd*/,bitmap,mask, - bmpPath, bmpId, maskId); - // Set the color of icons - AknIconUtils::SetIconColor( bitmap, iconColor ); - } - - } - break; - case EACTIVE_INACTIVE: - { - AknsUtils::CreateIconL(skin,(iAknsConstArray)[cnt + KCalcCountOfButtonInactive],bitmap,mask, - bmpPath, bmpId, maskId); - } - break; - default: - break; - - } - - CGulIcon* icon = CGulIcon::NewL(bitmap, mask); - aBitmapArray[cnt] = icon; - - bmpId = bmpId + 2; - maskId = maskId + 2; - } - - } - -//--------------------------------------------------------- -// CCalcAppEnv::UpdateAknConstArrayforPaper -//Updates the array with avkon skin constant Ids for paper bitmaps. -// --------------------------------------------------------- -// - void CCalcAppEnv::UpdateAknConstArrayforPaper() - { - iAknsConstArrayForPaper.Append(KAknsIIDQsnFrCalcPaperCenter); - iAknsConstArrayForPaper.Append(KAknsIIDQsnFrCalcPaperCornerTl); - iAknsConstArrayForPaper.Append(KAknsIIDQsnFrCalcPaperCornerTr); - iAknsConstArrayForPaper.Append(KAknsIIDQsnFrCalcPaperCornerBl); - iAknsConstArrayForPaper.Append(KAknsIIDQsnFrCalcPaperCornerBr); - iAknsConstArrayForPaper.Append(KAknsIIDQsnFrCalcPaperSideT); - iAknsConstArrayForPaper.Append(KAknsIIDQsnFrCalcPaperSideB); - iAknsConstArrayForPaper.Append(KAknsIIDQsnFrCalcPaperSideL); - iAknsConstArrayForPaper.Append(KAknsIIDQsnFrCalcPaperSideR); - - } - -//--------------------------------------------------------- -// CCalcAppEnv::UpdateAknConstArray -//Updates the array with avkon skin constant Ids for bitmaps. -// --------------------------------------------------------- -// -void CCalcAppEnv::UpdateAknConstArray() - { - iAknsConstArray.Reset(); - if( AknLayoutUtils::PenEnabled() ) - { - iAknsConstArray.Append( KAknsIIDQgnIndiCalcCancel ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcSeven ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcFour ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcOne ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcZero ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcSquareroot ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcEight ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcFive ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcTwo ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcSeparator ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcPercent ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcNine ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcSix ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcThree ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcSign ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcDivide ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcMultiply ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcSubtract ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcAdd ); - iAknsConstArray.Append( KAknsIIDQgnIndiCalcEquals ); - } - else - { - //Akn Const for +, -, *, /....etc 0-9 - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonPlus); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonMinus); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonMultiply); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonDivide); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonSign); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonEquals); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonSquareroot); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonPercent); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonUp); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonDown); - - - //Akn Const for pressed +, -, *, /....etc 10-19 - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonPlusPressed); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonMinusPressed); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonMultiplyPressed); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonDividePressed); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonSignPressed); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonEqualsPressed); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonSquarerootPressed); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonPercentPressed); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonUpPressed); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonDownPressed); - - //Akn Const for Active/ Inactive icons 20-24 - /*iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonSignInactive); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonSignInactive); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonSquarerootInactive); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonPercentInactive); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonUpInactive); - iAknsConstArray.Append(KAknsIIDQgnIndiCalcButtonDownInactive);*/ - //} - } - } -//EISkin2.6 -//----------------------------------------------------------- -//CCalcAppEnv::LoadFuncMapBitmapSkinChangeL -//Loads the function map Icons when the skin changes -//----------------------------------------------------------- -// -void CCalcAppEnv::LoadFuncMapBitmapSkinChangeL() - { - iIsSkinChanged = ETrue; - LoadFuncMapBitmapL(); - } - - -//----------------------------------------------------------- -//CCalcAppEnv::SetSkinChangedValue -//Sets if the skin is changed or not -//----------------------------------------------------------- - -void CCalcAppEnv::SetSkinChangedValue(TBool aValue) -{ - iIsSkinChanged = aValue; -} -// End of File