diff -r 5db69f4c3d06 -r b048e15729d6 perfmon/ui/avkon/src/perfmon_datapopupcontainer.cpp --- a/perfmon/ui/avkon/src/perfmon_datapopupcontainer.cpp Mon Aug 23 15:50:54 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,210 +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: -* -*/ - - -// INCLUDE FILES -#include "perfmon_datapopupcontainer.h" -#include "perfmon.hrh" -#include "perfmon_document.h" -#include "perfmon_appui.h" -#include "perfmon_model.h" - -#include - -_LIT(KPercentageFormat,"%S %d%%"); -_LIT(KFreeFormat,"%S free %S%S"); - -const TInt KLeftMargin = 2; - - -// ===================================== MEMBER FUNCTIONS ===================================== - -void CPerfMonDataPopupContainer::ConstructL(const TRect& /*aRect*/) - { - iModel = static_cast(reinterpret_cast(iEikonEnv->AppUi())->Document())->Model(); - iFont = LatinPlain12(); - iFontSize = iFont->FontMaxHeight(); - - // set windowgroup so that it always on top and does not receive focus - iWindowGroup = RWindowGroup(iCoeEnv->WsSession()); - User::LeaveIfError(iWindowGroup.Construct((TUint32)&iWindowGroup)); - iWindowGroup.SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront); - iWindowGroup.EnableReceiptOfFocus(EFalse); - - CreateWindowL(&iWindowGroup); - //SetRect(aRect); - SetPositionAndSize(); - SetBlank(); - - ActivateL(); - } - -// -------------------------------------------------------------------------------------------- - -CPerfMonDataPopupContainer::~CPerfMonDataPopupContainer() - { - iWindowGroup.Close(); - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonDataPopupContainer::Draw(const TRect& aRect) const - { - CWindowGc& gc = SystemGc(); - gc.SetBrushColor(KRgbWhite); - gc.Clear(aRect); - - // check if sample array has been constructed - if (iModel->SampleEntryArray()) - { - // init font - gc.SetPenColor(KRgbBlack); - gc.UseFont( iFont ); - - // draw a rect around the popup - gc.DrawRect(aRect); - - TInt posCounter(1); - - for (TInt i=0; iSampleEntryArray()->Count(); i++) - { - // check if this setting has been enabled and it has some data - if (iModel->Settings().iDataPopupSources.iSrcEnabled[i] && iModel->SampleEntryArray()->At(i).iSampleDataArray->Count() > 0) - { - TSampleData& currentSample = iModel->SampleEntryArray()->At(i).iSampleDataArray->At(0); - TBuf<32> buf; - - // for CPU draw %, other amount of free memory - if (i == ESourceCPU) - { - buf.Format(KPercentageFormat, &iModel->SampleEntryArray()->At(i).iDescription, currentSample.iSize > 0 ? TInt( (1 - ((TReal)(currentSample.iFree) / (TReal)currentSample.iSize)) * 100) : 0 ); - gc.DrawText(buf, TPoint(KLeftMargin, iFontSize*posCounter)); - } - else - { - TBuf<32> freeBuf; - freeBuf.AppendNum(currentSample.iFree, TRealFormat(KDefaultRealWidth, 0)); - - TBuf<32> buf; - buf.Format(KFreeFormat, &iModel->SampleEntryArray()->At(i).iDescription, &freeBuf, &iModel->SampleEntryArray()->At(i).iUnitTypeShort); - gc.DrawText(buf, TPoint(KLeftMargin, iFontSize*posCounter)); - } - - posCounter++; - } - } - - gc.DiscardFont(); - } - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonDataPopupContainer::SizeChanged() - { - DrawNow(); - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonDataPopupContainer::SetPositionAndSize() - { - CWsScreenDevice* screenDevice = iEikonEnv->ScreenDevice(); - - // top right - if (iModel->Settings().iDataPopupLocation == EDataPopupLocationTopRight) - { - // screen orientation is landscape with softkeys on right - if (AknLayoutUtils::CbaLocation()==AknLayoutUtils::EAknCbaLocationRight) - { - SetRect( - TRect( - screenDevice->SizeInPixels().iWidth-102-15, - 0, - screenDevice->SizeInPixels().iWidth-15, - iModel->Settings().iDataPopupSources.EnabledSourcesCount()*iFontSize + 3 - )); - } - - // any other orientation - else - { - SetRect( - TRect( - screenDevice->SizeInPixels().iWidth-102, - 0, - screenDevice->SizeInPixels().iWidth, - iModel->Settings().iDataPopupSources.EnabledSourcesCount()*iFontSize + 3 - )); - } - } - - // bottom middle - else if (iModel->Settings().iDataPopupLocation == EDataPopupLocationBottomMiddle) - { - SetRect( - TRect( - screenDevice->SizeInPixels().iWidth/2-102/2, - screenDevice->SizeInPixels().iHeight - iModel->Settings().iDataPopupSources.EnabledSourcesCount()*iFontSize - 3, - screenDevice->SizeInPixels().iWidth/2+102/2, - screenDevice->SizeInPixels().iHeight - )); - } - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonDataPopupContainer::UpdateVisibility(TBool aForeground) - { - // application has been brought to foregound - if (aForeground) - { - if (iModel->Settings().iDataPopupVisibility==EDataPopupVisbilityAlwaysOn) - { - MakeVisible(ETrue); - } - else - { - MakeVisible(EFalse); - } - } - - // application has been sent to background - else - { - if (iModel->Settings().iDataPopupVisibility==EDataPopupVisbilityAlwaysOn - || iModel->Settings().iDataPopupVisibility==EDataPopupVisbilityBackgroundOnly) - { - MakeVisible(ETrue); - } - else - { - MakeVisible(EFalse); - } - } - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonDataPopupContainer::DrawUpdate() - { - DrawDeferred(); - } - -// -------------------------------------------------------------------------------------------- - -// End of File