diff -r 000000000000 -r 9736f095102e networkingutils/ipadministrationtool/src/ipadm.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkingutils/ipadministrationtool/src/ipadm.cpp Tue Jan 26 15:16:33 2010 +0200 @@ -0,0 +1,468 @@ +// 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: +// ipadm.cpp - IP administration tool main module +// + +#include +#ifndef CALYPSO +#include +#endif + +#if EPOC_SDK < 0x06000000 +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#endif + +#ifdef MAKE_EXE_APPLICATION +#include +#endif + +#include "ipadm.h" +#include "engine.h" + +// +// 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); + //iConsole->SetAllPrintable(ETrue); + iHistory=200; + } + +void CConsoleControl::ActivateL() + { + CCoeControl::ActivateL(); + iConsole->SetKeepCursorInSight(TRUE); + iConsole->DrawCursor(); + iConsole->SetAtt(ATT_NORMAL); + } + +void CConsoleControl::HandleCommandL(TInt aCommand) + { + switch (aCommand) + { + case EConsolFontDialog: +#if EPOC_SDK >= 0x06000000 + { +#ifndef CALYPSO + TCharFormat charFormat; + charFormat.iFontSpec = iConsole->Font(); + TCharFormatMask dummy; + if (CEikFontDialog::RunDlgLD(charFormat, dummy)) + { + //charFormat.iFontSpec.iTypeface.SetIsProportional(EFalse); + iConsole->SetFontL(charFormat.iFontSpec); + } +#endif + } +#else + { + TCharFormat charFormat; + charFormat.iFontSpec = iConsole->Font(); + TCharFormatMask dummy; + CEikFontDialog* dialog=new(ELeave) CEikFontDialog(charFormat,dummy); + if (dialog->ExecuteLD(R_EIK_DIALOG_FONT)) + { + //charFormat.iFontSpec.iTypeface.SetIsProportional(EFalse); + iConsole->SetFontL(charFormat.iFontSpec); + } + } +#endif + break; +#if 0 + case EConsolHistory: + { + CHistoryDialog* dialog2 = new(ELeave) CHistoryDialog(&iHistory); + if (dialog2->ExecuteLD(R_KMD_HISTORY_DIALOG)) + iConsole->SetHistorySizeL(iHistory,0); + } + break; +#endif + case EConsolScrollNone: + iConsole->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,CEikScrollBarFrame::EOff); + break; + case EConsolScrollHor: + iConsole->SetScrollBarVisibilityL(CEikScrollBarFrame::EAuto,CEikScrollBarFrame::EOff); + break; + case EConsolScrollVert: + iConsole->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,CEikScrollBarFrame::EAuto); + break; + case EConsolScrollBoth: + iConsole->SetScrollBarVisibilityL(CEikScrollBarFrame::EAuto,CEikScrollBarFrame::EAuto); + break; + default: + break; + } + } + +void CConsoleControl::FocusChanged(TDrawNow aDrawNow) + { + iConsole->ConsoleControl()->SetFocus(IsFocused(), aDrawNow); + } + +void CConsoleControl::ToggleFontStyleAndRedrawL(TMessageControlFontStyle aStyleElement) + { + switch (aStyleElement) + { + case EStyleElementColor: + if ( iConsole->Att() & ATT_COLORMASK ) // color? + iConsole->SetAtt(ATT_NORMAL); // then set normal + else // else + iConsole->SetAtt(4,11); // set 4 (darkgray) on 11 (lightgray) + break; + case EStyleElementBold: + // clear color flag (just to be sure) and switch bold flag + iConsole->SetAtt( (iConsole->Att()&(~ATT_COLORMASK)) ^ ATT_BOLD ); + break; + case EStyleElementItalic: + // clear color flag (just to be sure) and switch italic flag + iConsole->SetAtt( (iConsole->Att()&(~ATT_COLORMASK)) ^ ATT_ITALIC ); + break; + case EStyleElementInverse: + // clear color flag (just to be sure) and switch inverse flag + iConsole->SetAtt( (iConsole->Att()&(~ATT_COLORMASK)) ^ ATT_INVERSE ); + break; + case EStyleElementUnderline: + // clear color flag (just to be sure) and switch underline flag + iConsole->SetAtt( (iConsole->Att()&(~ATT_COLORMASK)) ^ ATT_UNDERLINE ); + break; + } + } + +void CConsoleControl::SetScrollBarVisibilityL(CEikScrollBarFrame::TScrollBarVisibility aHBarVisibility, CEikScrollBarFrame::TScrollBarVisibility aVBarVisibility) + { + iConsole->SetScrollBarVisibilityL(aHBarVisibility,aVBarVisibility); + iConsole->ConsoleControl()->UpdateArea(); + iConsole->UpdateScrollBars(); + iConsole->ConsoleControl()->UpdateArea(); + //TBool b=iConsole->RecalculateSize(); + } + + +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(); + } + + + +// **************** +// APPLICATION VIEW +// **************** +// +void CIpAdmView::ConstructL(const TRect& aRect) + { + CreateWindowL(); +#if EPOC_SDK >= 0x06000000 + SetRect(aRect); +#else + SetRectL(aRect); +#endif + iContext = this; + iBrushStyle = CGraphicsContext::ESolidBrush; + iBrushColor = KRgbWhite; + CreateBigConsoleL(CEikConsoleScreen::ENoInitialCursor); + + StartL(); + + ActivateL(); + } + +void CIpAdmView::CreateBigConsoleL(TInt aFlags) + { + iConsole =new(ELeave) CConsoleControl; +// TRect rect=Rect(); +// rect.Shrink(3,3); + iConsole->ConstructL(Position(),Rect().Size(),aFlags); + iConsole->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,CEikScrollBarFrame::EAuto); + + } + +CIpAdmView::~CIpAdmView() + { + delete iConsole; + delete iModel; + } + +TInt CIpAdmView::CountComponentControls() const + { + return 1; + } + +CCoeControl* CIpAdmView::ComponentControl(TInt aIndex) const + { + switch (aIndex) + { + case 0: + return iConsole; + default: + return 0; + } + } + +void CIpAdmView::Draw(const TRect& /*aRect*/) const + { +#if 0 + CWindowGc& gc = SystemGc(); + + gc.SetPenStyle(CGraphicsContext::ESolidPen); + TSize penSizeBold(3,3); + gc.SetPenSize(penSizeBold); + gc.SetBrushStyle(CGraphicsContext::ESolidBrush); + + TRect rect=iConsole->Rect(); //Lines around the Console + rect.Grow(3,3); + gc.DrawRect(rect); +#endif + } + +void CIpAdmView::StartL() + { + TInt err; + + if (!iModel) + { + iModel = new CIpAdmEngine(this); + CEikonEnv::Static()->BusyMsgL(R_BUSY); + TRAP(err, iModel->ConstructL()); + CEikonEnv::Static()->BusyMsgCancel(); + if (err!=KErrNone) + { + TBuf<50> msg; + msg.Format(_L("Error initializing: %d"), err); + ShowError(msg); + StopL(); + } + } + else + CEikonEnv::Static()->InfoMsg(_L("Already Running!")); + } + + +void CIpAdmView::Write(const TDesC &aMsg) + { + iConsole->Write(aMsg); + iConsole->Write(_L("\n")); + } + +void CIpAdmView::ShowError(TInt aId) + { + iEikonEnv->InfoMsg(aId); + } + +void CIpAdmView::ShowError(const TDes &msg) + { + iEikonEnv->InfoMsg(msg); + } + +void CIpAdmView::ShowError(const TDes &msg, TInt aErr) + { + TBuf<100> txt; + TBuf<100> txt2; + + txt.Format(msg); + iEikonEnv->GetErrorText(txt2,aErr); + txt.AppendFormat(txt2); + iEikonEnv->InfoMsg(txt); + } + +void CIpAdmView::StopL() + { + if (iModel) + { + CEikonEnv::Static()->BusyMsgL(R_BUSY); + delete iModel; + CEikonEnv::Static()->BusyMsgCancel(); + Write(_L("*Stopped*")); + } + else + CEikonEnv::Static()->InfoMsg(_L("Not running!")); + iModel = NULL; + } + + +void CIpAdmView::ClearScreenL() + { + delete iConsole; + iConsole = NULL; + CreateBigConsoleL(CEikConsoleScreen::ENoInitialCursor); + } + +void CIpAdmView::HandleCommandL(TInt aCommand) + { + switch (aCommand) + { + case EIpAdmClearScreen: + ClearScreenL(); + break; + + default: + ASSERT(iConsole != NULL); + iConsole->HandleCommandL(aCommand); + if (iModel) + iModel->HandleCommandL(aCommand); + break; + } + } + +// ************** +// APPLICATION UI +// ************** +// +void CIpAdmAppUi::ConstructL() + { + BaseConstructL(); + + iAppView= new (ELeave) CIpAdmView; + iAppView->ConstructL(ClientRect()); + +#if EPOC_SDK < 0x06000000 + CEikFileNameLabel* filenameLabel=STATIC_CAST(CEikFileNameLabel*, iToolBar->ControlById(EIpAdmFilename)); + filenameLabel->UpdateL(); +#endif + } + +void CIpAdmAppUi::HandleCommandL(TInt aCommand) + { + switch (aCommand) + { + case EEikCmdExit: + Exit(); + return; + default: + iAppView->HandleCommandL(aCommand); + } + } + +CIpAdmAppUi::~CIpAdmAppUi() + { +#ifndef CALYPSO + RemoveFromStack(iAppView); +#endif + delete iAppView; + } + +// ******** +// DOCUMENT +// ******** +CIpAdmDocument::CIpAdmDocument(CEikApplication& aApp) + : CEikDocument(aApp) + { + } + +CEikAppUi* CIpAdmDocument::CreateAppUiL() + { + return new (ELeave) CIpAdmAppUi; + } + +// *********** +// APPLICATION +// *********** +// +TUid CIpAdmApplication::AppDllUid() const + { + return KUidIpAdmApp; + } + +CApaDocument* CIpAdmApplication::CreateDocumentL() + { + return new(ELeave) CIpAdmDocument(*this); + } + +// **** +// MAIN +// **** +// +EXPORT_C CApaApplication* NewApplication() + { + return new CIpAdmApplication; + } + + +#ifdef MAKE_EXE_APPLICATION + +GLDEF_C TInt E32Main() + { + return EikStart::RunApplication(NewApplication); + } + +#else + +#ifndef EKA2 +GLDEF_C TInt E32Dll(TDllReason /*aReason*/) + { + return KErrNone; + } +#endif + +#endif // MAKE_EXE_APPLICATION