uifw/AvKon/tsrc/bc/bctestlauncher/src/bctestlaunchercontainer.cpp
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/tsrc/bc/bctestlauncher/src/bctestlaunchercontainer.cpp	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,202 @@
+/*
+* Copyright (c) 2006-2007 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:  Implementation of application container class.
+*
+*/
+
+
+#include <coemain.h>
+#include <barsread.h>
+#include <aknappui.h>
+#include <eikprogi.h>
+#include <aknenv.h>
+#include <avkon.hrh>
+#include <akntitle.h>
+#include <aknquerydialog.h>
+#include <bctestlauncher.rsg>
+#include <stringloader.h> // StringLoader
+#include <f32file.h>  // link against efsrv.lib
+#include <s32file.h>
+#include <eikenv.h>
+#include <aknnotewrappers.h>
+
+#include "bctestlauncherdefs.h"
+#include "bctestlaunchercontainer.h"
+
+// ============================ MEMBER FUNCTIONS =============================
+
+// ---------------------------------------------------------------------------
+// CBCTestLauncherContainer::CBCTestLauncherContainer()
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ---------------------------------------------------------------------------
+//
+CBCTestLauncherContainer::CBCTestLauncherContainer()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestLauncherContainer::ConstructL
+// Symbian 2nd phase constructor can leave.
+// ---------------------------------------------------------------------------
+//
+void CBCTestLauncherContainer::ConstructL( const TRect& aRect )
+    {
+    CreateWindowL();
+
+    Window().SetShadowDisabled( EFalse );
+
+    CEikStatusPane *sp = 
+        ( ( CAknAppUi* )iEikonEnv->EikAppUi() )->StatusPane();
+    iTitlePane = ( CAknTitlePane * )sp->ControlL( 
+        TUid::Uid( EEikStatusPaneUidTitle ) );
+   	iCba = CEikButtonGroupContainer::Current();
+
+    SetRect( aRect );
+    ActivateL();
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestLauncherContainer::~CBCTestLauncherContainer
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CBCTestLauncherContainer::~CBCTestLauncherContainer()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestLauncherContainer::CountComponentControls() const
+// amount of component controls
+// ---------------------------------------------------------------------------
+//
+TInt CBCTestLauncherContainer::CountComponentControls() const
+    {
+    return 0; // return nbr of controls inside this container
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestLauncherContainer::ComponentControl( TInt aIndex ) const
+// Returns ptr to component controls
+// ---------------------------------------------------------------------------
+//
+CCoeControl* CBCTestLauncherContainer::ComponentControl( 
+    TInt /*aIndex*/ ) const
+    {
+    return NULL;
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestLauncherContainer::Draw( const TRect& aRect ) const
+// Draw function
+// ---------------------------------------------------------------------------
+//
+void CBCTestLauncherContainer::Draw( const TRect& aRect ) const
+    {
+    CWindowGc& gc = SystemGc();
+    gc.SetPenStyle( CGraphicsContext::ENullPen );
+    gc.SetBrushColor( KRgbWhite );
+    gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+    gc.DrawRect( aRect );
+    gc.Clear();
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestLauncherContainer::HandleControlEventL(
+//     CCoeControl* aControl,TCoeEvent aEventType)
+// ---------------------------------------------------------------------------
+//
+void CBCTestLauncherContainer::HandleControlEventL(
+    CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/ )
+    {
+    }
+// ---------------------------------------------------------------------------
+// CBCTestLauncherContainer::ClearScreen()
+// Clears the screen.
+// ---------------------------------------------------------------------------
+//    
+void CBCTestLauncherContainer::ClearScreen()
+	{
+	CEikStatusPaneBase* sp = 
+	    ( ( CAknAppUi* )iEikonEnv->EikAppUi() )->StatusPane();
+	sp->MakeVisible( EFalse );
+	iCba->MakeVisible( EFalse );
+	DrawNow();
+	}
+	
+// ---------------------------------------------------------------------------
+// CBCTestLauncherContainer::RestoreScreen()
+// Makes status pane and cba labels visible which ClearScreen() hides.
+// ---------------------------------------------------------------------------
+//	
+void CBCTestLauncherContainer::RestoreScreen()
+	{
+	CEikStatusPaneBase *sp = 
+	    ( ( CAknAppUi* )iEikonEnv->EikAppUi() )->StatusPane();
+	sp->MakeVisible( ETrue );
+	iCba->MakeVisible( ETrue );
+	DrawNow();
+	}
+
+// -----------------------------------------------------------------------------
+// CBCTestLauncherContainer::SetSdkVersion
+// Set the SDK version.
+// -----------------------------------------------------------------------------
+//	
+ void CBCTestLauncherContainer::SetSdkVersion()
+	{
+	TBuf<8> sdkVer;
+	CAknTextQueryDialog* verQuery = CAknTextQueryDialog::NewL( sdkVer );
+	CleanupStack::PushL(verQuery);
+	verQuery->SetMaxLength( 2 );
+	//EAknEditorSecretAlphaInputMode EAknEditorNumericInputMode
+	verQuery->SetDefaultInputMode( EAknEditorNumericInputMode );
+	HBufC* prompt;
+	// Pushes prompt onto the Cleanup Stack.
+	prompt = StringLoader::LoadLC(R_BCTESTLAUNCHER_QUERY_CAPTION);	
+	verQuery->SetPromptL(*prompt);
+	CleanupStack::PopAndDestroy(prompt);
+	CleanupStack::Pop(verQuery);
+	if (verQuery->ExecuteLD(R_AVKON_DIALOG_QUERY_VALUE_NUMBER))
+		{
+		// write sdk version into file
+	    RFs fs;
+	    User::LeaveIfError( fs.Connect() );
+	    CleanupClosePushL( fs );
+		RFileWriteStream writeStream;
+        writeStream.Replace( fs, KSdkVerFile, EFileWrite );
+	    CleanupClosePushL( writeStream );
+	    //writeStream.WriteL( sdkVer );
+	    TInt verNum;
+	    TLex lex(sdkVer);
+	    lex.Val(verNum);
+	    
+	    TBuf<120> buf;
+	    if ( verNum<MinVersionValue || verNum >MaxVersionValue )
+	    {
+	    verNum = 0;
+	    CAknInformationNote* tInfoNote = new( ELeave ) CAknInformationNote();
+        buf.Format( _L( "The value should between %d and %d" ), 
+            MinVersionValue, MaxVersionValue );
+        tInfoNote->ExecuteLD( buf );	
+	    }
+	    
+	    writeStream.WriteInt32L(verNum);
+	    writeStream.CommitL ();
+	    CleanupStack::PopAndDestroy( 2 );
+	    fs.Close();     	
+
+		}
+	}
+