--- a/securitydialogs/Autolock/src/AutolockContainer.cpp Thu Aug 19 10:45:23 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,394 +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:
-*
-*/
-
-
-// INCLUDE FILES
-#include "AutolockContainer.h"
-#include <eikenv.h>
-#include <autolock.mbg>
-#include <avkon.hrh>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <layoutmetadata.cdl.h>
-#include <data_caging_path_literals.hrh>
-#include "AutolockAppUiPS.h"
-#include <Autolock.rsg>
-#include "autolock.hrh"
-#include <eikdef.h>
-#include <aknnotedialog.h>
-#include <aknkeylock.h>
-#include <AknSoftNotifier.h>
-
-#include <coreapplicationuisdomainpskeys.h>
-
-#include <AknsLayeredBackgroundControlContext.h>
-#include <AknsDrawUtils.h>
-#include <AknBitmapAnimation.h>
-#include <AknsUtils.h>
-#include <AknUtils.h>
-
-#include <e32property.h>
-#include <PSVariables.h> // Property values
-#include <coreapplicationuisdomainpskeys.h>
-#include <startupdomainpskeys.h>
-#include <ctsydomainpskeys.h>
-_LIT(BitmapName,"AutoLock.mbm");
-
-// CONSTANTS
-
-#ifdef RD_FULLSCREEN_WALLPAPER
-enum TAutolockBgLayers
- {
- EAutolockBgLayerWallpaper = 0,
- EAutolockBgLayerBackground = 1,
- EAutolockBgLayersN = 2
- };
-#else
-enum TAutolockBgLayers
- {
- EAutolockBgLayerBackground = 0,
- EAutolockBgLayerWallpaper = 1,
- EAutolockBgLayersN = 2
- };
-#endif //RD_FULLSCREEN_WALLPAPER
-
- TInt aCallRect_x;
- TInt aCallRect_y;
- TInt aCallRect_width;
- TInt aCallRect_height;
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CAutolockContainer::ConstructL(const TRect& aRect)
-// Symbian OS two phased constructor
-// ---------------------------------------------------------
-//
-void CAutolockContainer::ConstructL(const TRect& aRect)
- {
- #if defined(_DEBUG)
- RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::ConstructL"));
- #endif
- CreateWindowL();
-
- HBufC* bitMapPath = HBufC::NewLC(KMaxPath);
- TPtr BitmapFile(bitMapPath->Des());
- BitmapFile.Append(_L("Z:"));
- BitmapFile.Append(KDC_APP_BITMAP_DIR);
- BitmapFile.Append(BitmapName);
-
- iEikBitmap = 0;
- iEikBitmapCall = 0;
- AknsUtils::CreateIconL(
- AknsUtils::SkinInstance(),
- KAknsIIDQgnGrafPhoneLocked,
- iBitmap,
- iMask,
- BitmapFile,
- EMbmAutolockQgn_graf_phone_locked,
- EMbmAutolockQgn_graf_phone_locked_mask );
- AknsUtils::CreateIconL(
- AknsUtils::SkinInstance(),
- KAknsIIDQgnGrafPhoneLocked,
- iBitmapCall,
- iMaskCall,
- BitmapFile,
- EMbmAutolockQgn_indi_button_end_call,
- EMbmAutolockQgn_indi_button_end_call_mask );
-
-#ifdef RD_FULLSCREEN_WALLPAPER
- TSize screenSize = iCoeEnv->ScreenDevice()->SizeInPixels();
- TRect wallpaperRect( TPoint(0,0), screenSize );
- iBgContext = CAknsLayeredBackgroundControlContext::NewL(
- KAknsIIDWallpaper, wallpaperRect, ETrue, EAutolockBgLayersN );
- SetRect(aRect);
-#else
- // Create background control context for skins. Use parent absolute mode,
- // as this is window owning control
- iBgContext = CAknsLayeredBackgroundControlContext::NewL(
- KAknsIIDQsnBgAreaMainIdle, aRect, ETrue, EAutolockBgLayersN );
- iBgContext->SetLayerImage( EAutolockBgLayerWallpaper, KAknsIIDWallpaper );
- iBgContext->SetLayerRect( EAutolockBgLayerWallpaper, aRect );
- SetRect(aRect);
-#endif // RD_FULLSCREEN_WALLPAPER
- ActivateL();
-
- CleanupStack::PopAndDestroy(bitMapPath); //bitMapPath
- #if defined(_DEBUG)
- RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::ConstructL END"));
- #endif
- }
-
-
-// ---------------------------------------------------------
-// CAutolockContainer::~CAutolockContainer()
-// Destructor
-// ---------------------------------------------------------
-//
-CAutolockContainer::~CAutolockContainer()
- {
- delete iBgContext;
- delete iBitmap;
- delete iMask;
- delete iBitmapCall;
- delete iMaskCall;
-
- }
-// ---------------------------------------------------------
-// CAutolockContainer::SizeChanged()
-// Called by framework when the view size is changed
-// ---------------------------------------------------------
-//
-void CAutolockContainer::SizeChanged()
- {
- #if defined(_DEBUG)
- RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::SizeChanged()"));
- #endif
-
- TRect mainPaneRect(Rect());
- TAknLayoutRect idleTradPane;
- idleTradPane.LayoutRect(mainPaneRect, AknLayoutScalable_Avkon::main_idle_trad_pane());
-
- TInt variety = 3;
- if (Layout_Meta_Data::IsLandscapeOrientation())
- {
- variety = 2;
- }
-
-
- TAknLayoutRect idlePaneG2;
- idlePaneG2.LayoutRect(idleTradPane.Rect(), AknLayoutScalable_Avkon::main_idle_pane_g2(variety));
-
- TInt callState = 0;
- RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
- if ( callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized )
- {
- AknIconUtils::SetSize( iBitmap, idlePaneG2.Rect().Size() );
- }
- else
- {
- TSize lockSize = TSize(0.8 * idlePaneG2.Rect().Size().iWidth, 0.8 * idlePaneG2.Rect().Size().iHeight);
- AknIconUtils::SetSize( iBitmap, lockSize );
- }
- TSize callSize = TSize(60,60);
- AknIconUtils::SetSize( iBitmapCall, callSize );
-
-#ifdef RD_FULLSCREEN_WALLPAPER
- TSize screenSize = iCoeEnv->ScreenDevice()->SizeInPixels();
- TRect wallpaperRect( TPoint(0,0), screenSize );
- iBgContext->SetLayerRect( EAutolockBgLayerBackground, Rect() ) ;
- iBgContext->SetLayerRect( EAutolockBgLayerWallpaper, wallpaperRect ) ;
-
- TPoint origo( 0, 0);
- iBgContext->SetParentPos(origo);
-#else
-
- iBgContext->SetLayerRect( EAutolockBgLayerBackground, Rect() ) ;
- iBgContext->SetLayerRect( EAutolockBgLayerWallpaper, Rect() ) ;
-
- TPoint positionRelativeToScreen = PositionRelativeToScreen();
- //parent must be set when using parent absolute mode.
- iBgContext->SetParentPos(positionRelativeToScreen);
-#endif //RD_FULLSCREEN_WALLPAPER
-
- RRegion autolockRegion;
-#ifdef RD_FULLSCREEN_WALLPAPER
- autolockRegion.AddRect( wallpaperRect);
-#else
- autolockRegion.AddRect(Rect());
-#endif //RD_FULLSCREEN_WALLPAPER
- Window().SetShape(autolockRegion);
- autolockRegion.Close();
-
- #if defined(_DEBUG)
- RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::SizeChanged() END"));
- #endif
- }
-// ---------------------------------------------------------
-// CAutolockContainer::CountComponentControls() const
-// ---------------------------------------------------------
-//
-TInt CAutolockContainer::CountComponentControls() const
- {
- TInt controlCount = 0;
-
- return controlCount;
- }
-
-// ---------------------------------------------------------
-// CAutolockContainer::ComponentControl(TInt aIndex) const
-// ---------------------------------------------------------
-//
-CCoeControl* CAutolockContainer::ComponentControl(TInt /*aIndex*/) const
- {
- return NULL;
- }
- // ---------------------------------------------------------
-// CAutolockContainer::Draw(const TRect& aRect) const
-// ---------------------------------------------------------
-//
-void CAutolockContainer::Draw(const TRect& aRect) const
- {
- #if defined(_DEBUG)
- RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::Draw"));
- #endif
- if (AknLayoutUtils::PenEnabled() )
- {
- TInt value = 0;
- RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, value);
- if(value <= EAutolockOff)
- { // Avoid displaying the icon
- #if defined(_DEBUG)
- RDebug::Printf( "%s %s (%u) no Draw value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, value );
- #endif
- // If it returns, it will not handle orientation changes.
- // However it will not really draw because the view is hidden
- // return;
- }
- }
-
- CWindowGc& gc = SystemGc();
- gc.SetPenStyle(CGraphicsContext::ENullPen);
- gc.SetBrushColor(KRgbWhite);
- gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
- AknsDrawUtils::Background( skin, cc, this, gc, aRect );
-
- // Draw "lock" icon centered to this control
- // fist calculate the correct x coordinate based on this
- // controls rect and bitmap width
- TInt x = Rect().Width()/2 - iBitmap->SizeInPixels().iWidth /2;
- // and do same with y
- TInt y = Rect().Height()/2 - iBitmap->SizeInPixels().iHeight/2;
- TInt width =iBitmap->SizeInPixels().iWidth;
- TInt height =iBitmap->SizeInPixels().iHeight;
-
- TInt gripStatus = EPSHWRMGripClosed;
- RProperty::Get( KPSUidHWRM, KHWRMGripStatus, gripStatus );
- #if defined(_DEBUG)
- RDebug::Printf( "%s %s (%u) gripStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, gripStatus );
- #endif
-
- TInt callState = 0;
- RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
- if ( callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized )
- {
- }
- else
- {
- if (gripStatus != EPSHWRMGripOpen)
- y-=100;
- }
-
- if (iBitmap && iMask)
- {
- // gc.BitBltMasked(TPoint(x,y),iBitmap,TRect(TPoint(0,0),iBitmap->SizeInPixels()), iMask, ETrue);
- gc.BitBltMasked(TPoint(x,y),iBitmap,TRect(TPoint(0,0),TPoint(width,height)), iMask, ETrue);
- if ( callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized )
- {
- }
- else
- {
- if (gripStatus != EPSHWRMGripOpen)
- {
- aCallRect_x=Rect().Width()/2 - iBitmapCall->SizeInPixels().iWidth/2;
- aCallRect_y=Rect().Height() * 0.75;
- }
- else
- {
- aCallRect_x=Rect().Width()* 0.75 - iBitmapCall->SizeInPixels().iWidth/2;
- aCallRect_y = Rect().Height()/2-3*10;
- }
- aCallRect_width=iBitmapCall->SizeInPixels().iWidth;
- aCallRect_height=iBitmapCall->SizeInPixels().iHeight;
- TSize cornerSize(20,20);
- TSize cornerEllipseSize(cornerSize.iHeight*2,cornerSize.iWidth*2);
- TRect box(aCallRect_x-3*10 , aCallRect_y-3*10, aCallRect_x+aCallRect_width+3*10, aCallRect_y+aCallRect_height+3*10);
- TRect cornerRectTl(box.iTl,cornerEllipseSize);
- gc.SetBrushColor(KRgbRed);
- gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- gc.SetPenStyle(CGraphicsContext::EDottedPen);
- gc.DrawRoundRect(box,cornerSize);
- gc.BitBltMasked(TPoint(aCallRect_x,aCallRect_y),iBitmapCall,TRect(TPoint(0,0),TPoint(aCallRect_width,aCallRect_height)), iMaskCall, ETrue);
- if (gripStatus != EPSHWRMGripOpen)
- aCallRect_y+=100; // coordinates are relative to TRect, not to Screen
-
- // if active call, dismiss all pending notes. This avoids them on top of the BigRedButton
- CAknSoftNotifier *softNotifier = NULL;
- TRAPD (err, {
- softNotifier = CAknSoftNotifier::NewL();
- softNotifier->AddNotificationL(ESetIdleState, 0);
- // softNotifier->SetIdleStateL(EFalse);
- };)
- delete softNotifier;
- // during any call ,the touch need to be enabled, so that BigRedButton is available
- // It will be re-enabled when the call ends
- RAknKeyLock keylock;
- if ( keylock.Connect() == KErrNone )
- {
- keylock.DisableWithoutNote();
- keylock.Close();
- }
- }
- }
- else if (iBitmap && !iMask)
- {
- gc.BitBlt(TPoint(x,y),iBitmap);
- if ( callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized )
- {
- }
- else
- {
- gc.BitBlt(TPoint(x,y+iBitmap->SizeInPixels().iHeight),iBitmapCall);
- }
- }
- #if defined(_DEBUG)
- RDebug::Print(_L("(AUTOLOCK)CAutolockContainer::Draw END"));
- #endif
- }
-
-// ---------------------------------------------------------
-// CAutolockContainer::HandleControlEventL(
-// CCoeControl* aControl,TCoeEvent aEventType)
-// ---------------------------------------------------------
-//
-void CAutolockContainer::HandleControlEventL(
- CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
- {
- }
-
-// ---------------------------------------------------------
-// CAutolockContainer::MopSupplyObject
-//
-// ---------------------------------------------------------
-//
-TTypeUid::Ptr CAutolockContainer::MopSupplyObject( TTypeUid aId )
- {
- if (aId.iUid == MAknsControlContext::ETypeId)
- {
- return MAknsControlContext::SupplyMopObject( aId, iBgContext );
- }
- return CCoeControl::MopSupplyObject( aId );
- }
-void CAutolockContainer::GiveCoords( TRect& aRect )
- {
- aRect.iBr.iX=aCallRect_x;
- aRect.iBr.iY=aCallRect_y;
- aRect.iTl.iX=aCallRect_width+2*3*10;
- aRect.iTl.iY=aCallRect_height+2*3*10;
- }
-// End of File