multimediacommsengine/tsrc/testdriver/testclient/ui/src/CTcSettingsDialog.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/tsrc/testdriver/testclient/ui/src/CTcSettingsDialog.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,120 @@
+/*
+* Copyright (c) 2004 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.
+*
+*/
+
+#include <eikchlst.h>
+#include <eikdef.h>
+#include <eikenv.h>
+#include "CTcIAPManager.h"
+
+#include "CTcSettingsDialog.h"
+#include "TTcSettings.h"
+#include "TestClient.hrh"
+#include <TestClient.rsg>
+
+CTcSettingsDialog::CTcSettingsDialog( TTcSettings& aSettings )
+	: iSettings( aSettings )
+	{
+	}
+
+CTcSettingsDialog::~CTcSettingsDialog()
+	{
+	delete iIAPManager;
+	}
+
+void CTcSettingsDialog::ConstructL()
+	{
+	iIAPManager = CTcIAPManager::NewL();
+	}
+
+void CTcSettingsDialog::PreLayoutDynInitL()
+	{
+	CEikChoiceList* iapList =
+		reinterpret_cast< CEikChoiceList* >( Control( ECtrlIAPName ) );
+
+	CDesCArray* names = iapList->DesCArray();
+	names->Delete( 0 );	// delete dummy item from array
+
+	TInt count = iIAPManager->MdcaCount();
+	for( TInt i = 0; i < count; i++ )
+		{
+		TBuf< KCommsDbSvrMaxFieldLength > name16;
+		name16.Copy( iIAPManager->MdcaPoint( i ) );
+		names->AppendL( name16 );
+		if( (TInt)iIAPManager->Id( i ) == iSettings.iIAPId )
+			{
+			iapList->SetCurrentItem( i );
+			}
+		}
+
+	SetChoiceListCurrentItem( ECtrlConnection, iSettings.iBearerType );
+	
+	TBuf<40> remoteAddrText;
+	iSettings.iTCPRemoteAddr.Output( remoteAddrText );
+	SetEdwinTextL(ECtrlRemoteAddr, &remoteAddrText);
+	
+	SetNumberEditorValue( ECtrlTcpPort, iSettings.iTCPPort );
+
+    SetChoiceListCurrentItem( ECtrlCSYName, iSettings.iCSYName );
+    SetChoiceListCurrentItem( ECtrlCommPort, iSettings.iCommPort );
+    SetNumberEditorValue( ECtrlBaudrate, iSettings.iBaudrate );
+    
+	TInt autoconnect( 1 );
+	if( !iSettings.iAutoConnect )
+		{
+		autoconnect = 0;	// no autoconnect
+		}
+	SetChoiceListCurrentItem( ECtrlAutoConnect, autoconnect );
+	}
+
+TBool CTcSettingsDialog::OkToExitL( TInt /*aKeycode*/ )
+	{
+	CEikChoiceList* iapList =
+		reinterpret_cast< CEikChoiceList* >( Control( ECtrlIAPName ) );
+	iSettings.iIAPId = iIAPManager->Id( iapList->CurrentItem() );
+
+	iSettings.iBearerType = ChoiceListCurrentItem( ECtrlConnection );
+	
+	TBuf<40> remoteAddrText;
+	GetEdwinText(remoteAddrText, ECtrlRemoteAddr);
+	if (KErrNone != iSettings.iTCPRemoteAddr.Input(remoteAddrText))
+		{
+		_LIT(KInvalidAddressText, "Invalid remote IP");
+		CEikonEnv::Static()->AlertWin(KInvalidAddressText);
+		return EFalse;
+		}
+
+	iSettings.iTCPPort = NumberEditorValue( ECtrlTcpPort );
+	
+	iSettings.iCSYName = ChoiceListCurrentItem( ECtrlCSYName );
+	                            
+	iSettings.iCommPort = ChoiceListCurrentItem( ECtrlCommPort );
+	                            
+	iSettings.iBaudrate = NumberEditorValue( ECtrlBaudrate );
+
+	if( ChoiceListCurrentItem( ECtrlAutoConnect ) == 1 )
+		{
+		iSettings.iAutoConnect = ETrue;
+		}
+	else
+		{
+		iSettings.iAutoConnect = EFalse;
+		}
+
+	iSettings.Store();
+	return ETrue;
+	}
+