--- 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 <barsread.h> // resource reader
-#include <eikapp.h>
-#include <eikenv.h>
-#include <eikrutil.h>
-#include <fbs.h> // Fonts
-#include <AknUtils.h>
-
-//Extended Icon Skin Implementation
-#include <AknsConstants.h>
-#include <AknsUtils.h>
-#include <AknsItemID.h>
-
-#include <Calcsoft.rsg>
-#include <calcsoft.mbg>
-#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