networkingutils/nameresolverutility/src/nslookup.cpp
branchGCC_SURGE
changeset 17 03d9ade4748d
parent 14 5d7fec11a5ce
parent 15 5b5908ec640f
--- a/networkingutils/nameresolverutility/src/nslookup.cpp	Fri Jun 11 16:24:17 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,989 +0,0 @@
-// Copyright (c) 2004-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:
-// nslookup.cpp - nslookup client main module
-//
-
-#include <coemain.h>
-#include <eikenv.h>
-#include <eikdef.h>
-#include <eikappui.h>
-#include <eikapp.h>
-#include <techview/eikdialg.h>
-#include <eikdoc.h>
-#include <techview/eikchkbx.h>
-#include <techview/eiktbar.h>
-#include <techview/eikedwin.h>
-
-#if EPOC_SDK >= 0x06000000
-#   include <techview/eikon.hrh>
-#else
-#   include <eikdialg.hrh>
-#   include <eikedwin.hrh>
-#   include <eikcmds.hrh>
-#endif
-
-#ifdef MAKE_EXE_APPLICATION
-#include <eikstart.h>
-#endif
-
-#include <nslookup.rsg>
-#include "engine.h"
-#include "nslookup.hrh"
-#include "nslookup.h"
-
-#ifdef CALYPSO
-#include <AknTextSettingPage.h>
-#endif
-
-// 
-// CConsoleControl
-//
-
-
-CConsoleControl::~CConsoleControl()
-	{
-    delete iConsole;
-	}
-
-void CConsoleControl::ConstructL(const TPoint& aTopLeft, const TSize& aSize, TInt aFlags)
-    {
-    TRect rect(aTopLeft,aTopLeft + aSize.AsPoint());
-#if EPOC_SDK >= 0x06000000
-    SetRect(rect);
-#else
-    SetRectL(rect);
-#endif
-    iConsole=new(ELeave) CEikConsoleScreen;
-    iConsole->ConstructL(_L("TEST"),aTopLeft,aSize,aFlags,EEikConsWinInPixels);
-    iConsole->SetHistorySizeL(200,0);
-    iHistory=200;
-    }
-
-void CConsoleControl::ActivateL()
-    {
-    CCoeControl::ActivateL();
-    iConsole->SetKeepCursorInSight(TRUE);
-    iConsole->DrawCursor();
-    iConsole->SetAtt(ATT_NORMAL);
-    }
-
-
-void CConsoleControl::HandleCommandL(TInt /* aCommand */)
-	{
-	}
-
-void CConsoleControl::FocusChanged(TDrawNow aDrawNow)
-	{
-    iConsole->ConsoleControl()->SetFocus(IsFocused(), aDrawNow); 
-	}
-
-
-void CConsoleControl::SetScrollBarVisibilityL(CEikScrollBarFrame::TScrollBarVisibility aHBarVisibility, CEikScrollBarFrame::TScrollBarVisibility aVBarVisibility)
-	{
-    iConsole->SetScrollBarVisibilityL(aHBarVisibility,aVBarVisibility);
-    iConsole->ConsoleControl()->UpdateArea();
-    iConsole->UpdateScrollBars();
-    iConsole->ConsoleControl()->UpdateArea();
-	}
-
-
-void CConsoleControl::DrawCursor()
-	{
-    iConsole->DrawCursor();
-	}
-
-
-void CConsoleControl::Write(const TDesC &aMsg)
-	{
-    iConsole->Write(aMsg);
-    iConsole->FlushChars();
-	}
-
-
-
-CEikConsoleControl *CConsoleControl::ConsoleControl() const
-	{
-    return iConsole->ConsoleControl();
-	}
-
-TBool CConsoleControl::UpdateScrollBars()
-	{
-    return iConsole->UpdateScrollBars();
-	}
-
-void CConsoleControl::ClearScreen()
-	{
-    iConsole->ClearScreen();
-	}
-
-
-void CConsoleControl::Redraw(const TRect &aRect)
-	{
-	iConsole->Redraw(aRect);
-	}
-
-void CConsoleControl::Lf()
-	{
-    iConsole->Lf();
-	}
-
-
-TSize CConsoleControl::ScreenSize() const
-	{
-    return iConsole->ScreenSize();
-	}
-
-
-CNslookupView::CNslookupView(CNslookup *aModel)
-	{
-    iModel = aModel;
-	}
-
-void CNslookupView::ConstructL(const TRect& aRect)
-{
-    CreateWindowL();
-    Window().SetShadowDisabled(ETrue);
-    iContext=this;
-    iBrushStyle=CGraphicsContext::ESolidBrush;
-    iBrushColor=KRgbWhite;
-#if EPOC_SDK >= 0x06000000
-    SetRect(aRect);
-#else
-    SetRectL(aRect);
-#endif
-    
-    // Create its only component, a CNslookupContainer
-    
-    iContainer = new(ELeave) CNslookupContainer(iModel);
-    iContainer->SetContainerWindowL(*this);
-    TRect containerRect = Rect();
-    iContainer->ConstructL(containerRect);
-
-    ActivateL();
-    DrawNow();
-}
-
-CNslookupView::~CNslookupView()
-    {
-
-    delete iContainer;
-    }
-    
-TInt CNslookupView::CountComponentControls() const
-    {   
-    return 1; //Just the container
-    }
-
-CCoeControl* CNslookupView::ComponentControl(TInt /*aIndex*/) const
-    {
-    return iContainer;
-    }
-
-
-void CNslookupView::ResetScreen()
-{
-    iContainer->ResetScreen();
-}
-
-
-TKeyResponse CNslookupView::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/)
-{
-    return EKeyWasNotConsumed;
-}
-
-void CNslookupView::Draw(const TRect& /*aRect*/) const
-    {
-
-    CWindowGc& gc = SystemGc();
-    gc.SetPenStyle(CGraphicsContext::ENullPen);
-    gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
-    gc.DrawRect(Rect());
-
-    }
-
-
-//
-// CNslookupcontainer
-//
-const TInt KLabelHeight=25;
-
-
- // Construction
-CNslookupContainer::CNslookupContainer(CNslookup* aModel)
-	{
-    iModel = aModel;
-	}
-
-
-// Destruction
-CNslookupContainer::~CNslookupContainer()
-{
-    delete iLabel;
-    delete iLabel2;
-    delete iConsole;
-}
-
-void CNslookupContainer::ConstructL(const TRect& aRect)
-{
-    iModel->SetConsole(this);
-
-#if EPOC_SDK >= 0x06000000
-    SetRect(aRect);
-#else
-    SetRectL(aRect);
-#endif
-
-    TRect rect=Rect();
-    rect.iTl.iY += KLabelHeight;    // make way for top label
-    rect.iBr.iY -= KLabelHeight;    // make way for bottom label
-
-    CreateConsoleL(rect);
-
-    //Bottom label
-    iLabel=new (ELeave) CEikLabel;
-    rect=Rect();
-    rect.iTl.iY=rect.iBr.iY-KLabelHeight; // make it bottom 20 pixels
-    iLabel->SetContainerWindowL(*this);
-#if EPOC_SDK >= 0x06000000
-    iLabel->SetRect(rect);
-#else
-    iLabel->SetRectL(rect);
-#endif
-    iLabel->SetAlignment(EHLeftVCenter); // center text
-    iLabel->SetBufferReserveLengthL(500); // nice long buffer
-    iLabel->SetTextL(_L("ok"));			// Label needs to have some content to prevent panics..
-    //Top label
-    iLabel2=new (ELeave) CEikLabel;
-    rect=Rect();
-    rect.iBr.iY=rect.iTl.iY+KLabelHeight; // make it top 20 pixels
-    iLabel2->SetContainerWindowL(*this);
-#if EPOC_SDK >= 0x06000000
-    iLabel2->SetRect(rect);
-#else
-    iLabel2->SetRectL(rect);
-#endif
-    iLabel2->SetAlignment(EHLeftVCenter); // center text
-    iLabel2->SetBufferReserveLengthL(500); // nice long buffer
-    WriteHostL(_L("<None>"));
-    ActivateL();
-}
-
-
-void CNslookupContainer::CreateConsoleL(const TRect& aRect)
-{
-    iConsole = new(ELeave) CConsoleControl;
-#if defined(CRYSTAL)  //This is a patch to put the console in the right place. 
-                //For some unknown reason appears displaced.
-    aRect.iBr.iX += 92;
-    aRect.iTl.iX += 92;
-    iConsole->ConstructL(aRect.iTl, aRect.Size(), CEikConsoleScreen::ENoInitialCursor);
-#elif defined(CALYPSO)
-    TSize size;
-    size.iHeight = aRect.iBr.iY - aRect.iTl.iY;
-    size.iWidth = aRect.iBr.iX - aRect.iTl.iX - 10; // -10 to leave some space on the right
-                                                    // (based on trial and error)
-    TPoint position;
-    position.iY = 70; // To skip the status pane and host name field (based on trial and error)
-    position.iX = 5;  // 5 to leave some space on the left (based on trial and error)
-
-    iConsole->ConstructL(position, size, CEikConsoleScreen::ENoInitialCursor);
-#else
-    iConsole->ConstructL(aRect.iTl, aRect.Size(), CEikConsoleScreen::ENoInitialCursor);    
-#endif
-    
-    iConsole->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,CEikScrollBarFrame::EAuto);
-}
-
-void CNslookupContainer::ResetScreen()
-	{
-    iConsole->ClearScreen();
-	}
-
-void CNslookupContainer::WriteHostL(const TDesC& aHostname)
-{
-    TBuf<100> aux;
-    
-    aux.Append(aHostname);
-
-    iLabel2->SetTextL(aux);
-    iLabel2->DrawNow();
-}
-
-
-void CNslookupContainer::WriteLine(const TDesC& abuf)
-	{
-    iConsole->Write(abuf);
-	}
-
-TKeyResponse CNslookupContainer::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/)
-	{
-    return EKeyWasNotConsumed;
-	}
-
-// Virtual, defined by CCoeControl; replaces the default implementation
-// provided by CCoeControl.
-void CNslookupContainer::Draw(const TRect& aRect) const
-{
-    CWindowGc& gc = SystemGc();
-    gc.SetClippingRect(aRect);
-    gc.DrawRect(Rect());
-
-}
-    
-// Virtual, defined by CCoeControl; replaces the default implementation
-// provided by CCoeControl. 
-TInt CNslookupContainer::CountComponentControls() const
-{
-    return 3;
-}
-
-// Virtual, defined by CCoeControl; replaces the default implementation
-// provided by CCoeControl.
-CCoeControl* CNslookupContainer::ComponentControl(TInt aIndex) const
-{
-    switch (aIndex)
-    {
-    case 0: return iLabel;
-    case 1: return iLabel2;
-    case 2: return iConsole;
-    //case 2: return iEdit;
-	default: break;
-    }
-
-    return NULL;
-}
-
-// Defined as pure virtual by the mixin class MCoeControlObserver 
-// inherited by CCoeControl. An empty implementation provided by 
-// this class (its containees do not report events).
-void CNslookupContainer::HandleControlEventL(CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
-{
-
-
-}
-
-
-//
-// CHostNameDialog
-//
-#ifdef CALYPSO
-CHostNameDialog::CHostNameDialog(TDes& aHostname) : CAknTextQueryDialog(aHostname)
-{
-}
-#else
-CHostNameDialog::CHostNameDialog(CNslookup *aModel):CEikDialog()
-{
-    iModel=aModel;
-}
-#endif
-
-// Checks if data entered by user is correct
-// returns ETrue to exit dialog anf EFalse to not exit it (no name entered)
-
-#ifdef CALYPSO
-TBool CHostNameDialog::OkToExitL(TInt aButton)
-{   
-    return CAknTextQueryDialog::OkToExitL(aButton);
-}
-#else
-TBool CHostNameDialog::OkToExitL(TInt aButton)
-{   
-	iModel->iQueryType = ChoiceListCurrentItem(ENslookupQueryType);
- 	iModel->iShowSource = (CheckBoxState(ENslookupShowSource)== CEikButtonBase::ESet);
-
-    TBuf<KHostNameLimit> hostname(_L(""));
-    if (aButton==EEikBidCancel) //CANCEL BUTTON
-    {
-        iOKPressed=EFalse;
-        return ETrue;
-    }
-    
-    GetEdwinText(hostname,ENslookupHostName);
-    
-    if (hostname.Length()!=0)
-    {
-        iModel->SetHostName(hostname);
-        return ETrue;
-    }
-    else
-        return EFalse;  //If no hostname specified can't continue
-    
-}
-#endif // CALYPSO
-
-//To initialize dialog data
-#ifdef CALYPSO
-void CHostNameDialog::PreLayoutDynInitL()
-{
-    CAknTextQueryDialog::PreLayoutDynInitL();
-}
-#else
-void CHostNameDialog::PreLayoutDynInitL()
-{
-	SetCheckBoxState(ENslookupShowSource, iModel->iShowSource  ? CEikButtonBase::ESet : CEikButtonBase::EClear);
-	SetChoiceListCurrentItem(ENslookupQueryType, iModel->iQueryType);
-    SetEdwinTextL(ENslookupHostName,iModel->GetHostName());
-}
-#endif
-
-
-
-//
-// CNslookupAppUi
-//
-
-void CNslookupAppUi::ConstructL()
-{
-    BaseConstructL();
-    
-    InitModelL();
-    iAppView=new(ELeave) CNslookupView(iModel);
-    iAppView->ConstructL(ClientRect());
-
-#if EPOC_SDK < 0x06000000
-    //Just to watch the name of the file on the top of the toolbar
-    CEikFileNameLabel* pingLabel=(CEikFileNameLabel*)iToolBar->ControlById(ENslookupCmdFileName);
-    pingLabel->UpdateL();
-#endif
-
-#ifndef CALYPSO
-    
-    // add app view to stack; enables key event handling.
-    AddToStackL(iAppView);
-    
-#else // if CALYPSO defined
-    
-    AppViewToStackL();
-
-    iAppView->ActivateL();
-
-    iSettingView = new (ELeave) CSettingView(iModel);
-    iSettingView->ConstructL(ClientRect());
-    iSettingView->SetComponentsToInheritVisibility( ETrue );
-
-    SettingViewToStackL();
-
-    iSettingView->ActivateL();
-
-    ShowAppViewL();
-    
-#endif
-}
-
-#ifdef CALYPSO
-
-void CNslookupAppUi::ShowAppViewL()
-{
-    iSettingView->MakeVisible( EFalse );
-    SettingViewFromStack();
-    AppViewToStackL();
-    iAppView->MakeVisible( ETrue );
-    iAppView->DrawNow();
-
-    CEikButtonGroupContainer *cba = ((CAknAppUi*)CEikonEnv::Static()->EikAppUi())->Cba();
-    cba->SetCommandSetL(R_NSLOOKUP_CBA);
-    cba->DrawDeferred();
-
-    // Make sure that setting view's scroll indicators are not shown in the app view
-    iSettingView->ListBox()->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff);
-    iSettingView->ListBox()->UpdateScrollBarsL();
-}
-
-void CNslookupAppUi::ShowSettingViewL()
-{
-    iAppView->MakeVisible( EFalse );
-    AppViewFromStack();
-    SettingViewToStackL();
-    iSettingView->MakeVisible( ETrue );
-    iSettingView->DrawNow();
-
-    CEikButtonGroupContainer *cba = ((CAknAppUi*)CEikonEnv::Static()->EikAppUi())->Cba();
-    cba->SetCommandSetL(R_SETTINGS_CBA);
-    cba->DrawDeferred();
-
-    // Make sure that scroll bars are shown if needed
-    iSettingView->ListBox()->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOn, CEikScrollBarFrame::EAuto);
-    iSettingView->ListBox()->UpdateScrollBarsL();
-}
-
-void CNslookupAppUi::AppViewToStackL()
-{
-    if (!iAppViewOnStack)
-    {
-        AddToStackL(iAppView);
-        iAppViewOnStack = ETrue;
-    }
-}
-
-void CNslookupAppUi::SettingViewToStackL()
-{
-    if (!iSettingViewOnStack)
-    {
-        AddToStackL(iSettingView);
-        iSettingViewOnStack = ETrue;
-    }
-}
-
-void CNslookupAppUi::AppViewFromStack()
-{
-    if (iAppViewOnStack) 
-    {
-        RemoveFromStack(iAppView);
-        iAppViewOnStack = EFalse;
-    }
-}
-
-void CNslookupAppUi::SettingViewFromStack()
-{
-    if (iSettingViewOnStack)
-    {
-        RemoveFromStack(iSettingView);
-        iSettingViewOnStack = EFalse;
-    }
-}
-
-#endif // #ifdef CALYPSO
-
-void CNslookupAppUi::InitModelL()
-{
-    TPreferences param;
-
-    RestorePreferencesL(param); //Reads the .ini file
-
-    iModel= new (ELeave) CNslookup();
-    iModel->ConstructL(param);
-}
-
-void CNslookupAppUi::HandleCommandL(TInt aCommand)
-{
-    TPreferences param;
-    
-    switch (aCommand)
-    {
-    case ENslookupStart:
-        if (!(iModel->IsRunning()))
-            if (CreateHostNameDialogL())
-                iModel->BeginL();
-        break;
-
-    case ENslookupStop: //Stop ping
-        if (iModel->IsRunning())
-            iModel->EndNslookup();
-        break;
-
-    case ENslookupReset:
-        iAppView->ResetScreen();
-        break;
-
-    case ENslookupAbout:
-        CreateAboutDialogL();
-        break;
-
-    case EEikCmdExit:
-        if (iModel->IsRunning())
-            iModel->EndNslookup();
-        iModel->GetPreferences(param);
-        StorePreferencesL(param);
-#ifdef CALYPSO
-        AppViewFromStack();
-        SettingViewFromStack();
-#endif        
-        Exit();
-        return;
-
-#ifdef CALYPSO
-        
-    case ENslookupSave:
-        // Try to save settings data
-        if ( iSettingView->SaveSettingsL() )
-        {
-            // Switch back to the normal view
-            ShowAppViewL();
-        }
-        break;
-
-    case ENslookupCancel:
-        // Simply switch back to the normal view
-        ShowAppViewL();
-        break;
-
-#endif // #ifdef CALYPSO
-
-	default:
-		break;
-    }
-}
-
-    
-// Launches a dialog to show an about box
-void CNslookupAppUi::CreateAboutDialogL() const
-    {
-    CEikDialog* dialog = new (ELeave) CEikDialog();
-    dialog->ExecuteLD(R_NSLOOKUP_ABOUT);    //Final D means the dialog is destructed by itself
-    }
-
-
-//Launches a dialog to specify a hostname and returns if Ok has been pressed to
-//
-#ifdef CALYPSO
-TBool CNslookupAppUi::CreateHostNameDialogL()
-{
-    TBuf<KHostNameLimit> hostname;
-
-    hostname.Copy(*(iModel->GetHostName()));
-
-    CAknTextQueryDialog* dialog = new (ELeave) CHostNameDialog(hostname);
-
-    TInt button = dialog->ExecuteLD(R_NSLOOKUP_HOSTNAME_AVKON);
-
-    if ((button == EAknSoftkeyOk) && (hostname.Length() != 0))
-    {
-        iModel->SetHostName(hostname);
-        return ETrue;
-    }
-    else
-    {
-        return EFalse;
-    }
-}
-#else
-TBool CNslookupAppUi::CreateHostNameDialogL()
-    {
-    CEikDialog* dialog = new (ELeave) CHostNameDialog(iModel);
-    TInt button=dialog->ExecuteLD(R_NSLOOKUP_HOSTNAME); //Final D means the dialog is destructed by itself
-    return (button==EEikBidOk); // If button is CANCEL then the ping is not executed
-    }
-#endif // CALYPSO
-
-void CNslookupAppUi::RestorePreferencesL(TPreferences& aPreferences) const
-{
-	CNslookup::DefaultPreferences(aPreferences);
-}
-
-
-void CNslookupAppUi::StorePreferencesL(const TPreferences & /*aPreferences*/) const
-{
-	// not supported
-}
-
-
-
-CNslookupAppUi::~CNslookupAppUi()
-    {
-#ifndef CALYPSO
-	RemoveFromStack(iAppView);
-#endif
-    delete iAppView;
-#ifdef CALYPSO
-    delete iSettingView;
-#endif
-    delete iModel;
-    }
-
-//
-// CNslookupDocument
-//
-
-CNslookupDocument::CNslookupDocument(CEikApplication& aApp)
-        : CEikDocument(aApp)
-    {
-    }
-
-CEikAppUi* CNslookupDocument::CreateAppUiL()
-    {
-    return(new(ELeave) CNslookupAppUi);
-    }
-
-//
-// CNslookupApplication
-//
-
-TUid CNslookupApplication::AppDllUid() const
-    {
-    return KUidNslookupApp;
-    }
-
-
-CApaDocument* CNslookupApplication::CreateDocumentL()
-    {
-    return new(ELeave) CNslookupDocument(*this);
-    }
-
-//
-// EXPORTed functions
-//
-
-EXPORT_C CApaApplication* NewApplication()
-    {
-    return new CNslookupApplication;
-    }
-
-
-#ifdef MAKE_EXE_APPLICATION
-
-GLDEF_C TInt E32Main()
-	{
-	return EikStart::RunApplication(NewApplication);
-	}
-
-#else
-
-
-#endif // MAKE_EXE_APPLICATION
-
-#ifdef CALYPSO
-
-//------------------------------------------------------------------
-// CNslookupBinaryPopupSettingItem
-//
-// NOTE. This class is implemented only to circumvent
-// a bug (?) in CAknBinaryPopupSettingItem::Load
-//------------------------------------------------------------------
-
-CNslookupBinaryPopupSettingItem::CNslookupBinaryPopupSettingItem( TInt aIdentifier, TBool& aBinaryValue ) :
-   CAknBinaryPopupSettingItem( aIdentifier, aBinaryValue )
-	{
-	}
-
-void CNslookupBinaryPopupSettingItem::LoadL()
-	{
-    // Call CAknEnumeratedTextPopupSettingItem::LoadL to copy
-    // the external boolean value to an internal value
-    // NOTE. CAknBinaryPopupSettingItem::LoadL must NOT be called
-    CAknEnumeratedTextPopupSettingItem::LoadL();
-	}
-
-//-----------------------------------------------------------------
-// CNslookupTextSettingItem
-//
-// NOTE. This is a re-implementation/copy of CAknTextSettingItem
-// (the only difference is in the LoadL method) due to a bug/
-// feature in CAknTextSettingItem::LoadL()
-//-----------------------------------------------------------------
-
-CNslookupTextSettingItem::CNslookupTextSettingItem( TInt aIdentifier, TDes& aText ) : 
-   CAknSettingItem(aIdentifier), iExternalText( aText ), iInternalTextPtr(0,0)
-	{
-	}
-
-CNslookupTextSettingItem::~CNslookupTextSettingItem()
-	{
-    delete iInternalText;
-	}
-
-void CNslookupTextSettingItem::StoreL()
-	{
-    // Copy the internal to the external
-    iExternalText.Copy(iInternalText->Des() );
-	}
-
-// NOTE. This is the only method that has changed from CAknTextSettingItem
-void CNslookupTextSettingItem::LoadL()
-	{
-    delete iInternalText;
-    iInternalText = 0;
-    // NOTE. The difference is below
-    // OLD CODE:
-    // iInternalText = iExternalText.AllocL();
-    // END OF OLD CODE
-    // NEW CODE:
-    iInternalText = HBufC::NewL( iExternalText.MaxLength() );
-    TPtr ptrText = iInternalText->Des();
-    ptrText.Copy( iExternalText );
-    // END OF NEW CODE
-    // Use Set so that the whole TPtr is just overwritten - and gets a new buffer 
-    iInternalTextPtr.Set(iInternalText->Des() );
-	}
-
-const TDesC& CNslookupTextSettingItem::SettingTextL()
-{
-    return *iInternalText;
-}
-
-void CNslookupTextSettingItem::EditItemL( TBool /* aCalledFromMenu */)
-	{
-    CAknSettingPage* dlg = new( ELeave )CAknTextSettingPage( SettingPageResourceId(), iInternalTextPtr, 0 );
-    SetSettingPage( dlg );
-    SettingPage()->SetSettingPageObserver(this);
-    SetUpStandardSettingPageL();
-    SettingPage()->ExecuteLD(CAknSettingPage::EUpdateWhenChanged);
-	}
-
-TPtr& CNslookupTextSettingItem::InternalTextPtr()
-{
-    return iInternalTextPtr;
-}
-
-TPtrC CNslookupTextSettingItem::ExternalText()
-{
-    return (TPtrC)(iExternalText);
-}
-
-void CNslookupTextSettingItem::SetExternalText( TDesC& aNewExternalText )
-{
-    iExternalText.Copy( aNewExternalText );
-}
-
-//-----------------------------------------------------------------
-// CSettingView
-//-----------------------------------------------------------------
-
-void CSettingView::ConstructL(const TRect& /*aRect*/)
-{
-    // Copy data from the model to member variables
-
-    iLimitPacketCount = iModel->iPackLimit ? ETrue : EFalse;
-    iMaxPacketCount.Num( iModel->iTotalPackets );
-    iPacketDataSize.Num( iModel->iPacketDataSize );
-    iWaitTime.Num( iModel->iSecWait );
-    iLastWaitTime.Num( iModel->iLastSecWait );
-
-    iPattern.Copy( iModel->iPattern );
-    iQuiet = iModel->iQuiet ? ETrue : EFalse;
-    iVerbose = iModel->iVerbose ? ETrue : EFalse;
-    iDebug = iModel->iDebug ? ETrue : EFalse;
-
-    CAknSettingItemList::ConstructFromResourceL( R_NSLOOKUP_SETTINGS );
-}
-
-CSettingView::CSettingView(CNslookup *aModel)
-	{
-    iModel = aModel;
-	}
-
-CSettingView::~CSettingView()
-	{
-	}
-
-void CSettingView::ProcessCommandL(TInt /*aCommand*/)
-	{
-	}
-
-CAknSettingItem* CSettingView::CreateSettingItemL( TInt identifier )
-	{
-    CAknSettingItem* settingItem;
-
-    switch (identifier)
-    {
-        case 1:
-            settingItem = new (ELeave) CNslookupBinaryPopupSettingItem( identifier, iLimitPacketCount );
-            return settingItem;
-            break;
-        case 2:
-            settingItem = new (ELeave) CNslookupTextSettingItem( identifier, iMaxPacketCount );
-            return settingItem;
-            break;
-        case 3:
-            settingItem = new (ELeave) CNslookupTextSettingItem(identifier, iPacketDataSize);
-            return settingItem;
-            break;
-        case 4:
-            settingItem = new (ELeave) CNslookupTextSettingItem(identifier, iWaitTime);
-            return settingItem;
-            break;
-        case 5:
-            settingItem = new (ELeave) CNslookupTextSettingItem(identifier, iLastWaitTime);
-            return settingItem;
-            break;
-        case 6:
-            settingItem = new (ELeave) CNslookupTextSettingItem(identifier, iPattern);
-            return settingItem;
-            break;
-        case 7:
-            settingItem = new (ELeave) CNslookupBinaryPopupSettingItem( identifier, iQuiet );
-            return settingItem;
-            break;
-        case 8:
-            settingItem = new (ELeave) CNslookupBinaryPopupSettingItem( identifier, iVerbose );
-            return settingItem;
-            break;
-        case 9:
-            settingItem = new (ELeave) CNslookupBinaryPopupSettingItem( identifier, iDebug );
-            return settingItem;
-            break;
-        default:
-            settingItem = new (ELeave) CAknSettingItem(identifier);
-            return settingItem;
-            break;
-    }
-}
-
-TBool CSettingView::SaveSettingsL()
-	{
-    // Save settings to the member variables
-
-    StoreSettingsL();
-
-    // Validate input
-
-    TLex lex;
-
-    TInt maxPacketCount;
-    lex.Assign( iMaxPacketCount );
-    if ( lex.Val( maxPacketCount ) != KErrNone ) 
-    {
-        CEikonEnv::Static()->InfoMsg(_L("Packet count must be numeric"));
-        return EFalse;
-    }
-
-    TInt packetDataSize;
-    lex.Assign( iPacketDataSize );
-    if ( lex.Val( packetDataSize ) != KErrNone ) 
-    {
-        CEikonEnv::Static()->InfoMsg(_L("Packet size must be numeric"));
-        return EFalse;
-    }
-
-    TInt waitTime;
-    lex.Assign( iWaitTime );
-    if ( lex.Val( waitTime ) != KErrNone ) 
-    {
-        CEikonEnv::Static()->InfoMsg(_L("Wait time must be numeric"));
-        return EFalse;
-    }
-
-    TInt lastWaitTime;
-    lex.Assign( iLastWaitTime );
-    if ( lex.Val( lastWaitTime ) != KErrNone ) 
-    {
-        CEikonEnv::Static()->InfoMsg(_L("Last wait time must be numeric"));
-        return EFalse;
-    }
-
-    lex.Assign( iPattern );
-    while (!lex.Eos())
-    {
-        if (!lex.Get().IsHexDigit())
-        {
-            CEikonEnv::Static()->InfoMsg(_L("Pattern must be hexadecimal"));
-            return EFalse;
-        }
-    }
-
-    // Validation OK, so save settings to the model
-
-    iModel->iPackLimit = iLimitPacketCount;
-    iModel->iTotalPackets = maxPacketCount;
-    iModel->iPacketDataSize = packetDataSize;
-    iModel->iSecWait = waitTime;
-    iModel->iLastSecWait = lastWaitTime;
-    iModel->iPattern.Copy(iPattern);
-    iModel->iQuiet = iQuiet;
-    iModel->iVerbose = iVerbose;
-    iModel->iDebug = iDebug;
-
-    return ETrue;
-}
-    
-#endif // #ifdef CALYPSO