00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <eikmenup.h>
00020 #include <eikmfne.h>
00021 #include <eikconso.h>
00022
00023 #include "SecureSockets.h"
00024 #include "SecureSockets.hrh"
00025
00026 #include <eikstart.h>
00027
00028
00029
00030
00031 CConsoleControl* CConsoleControl::NewL(const TRect& aClientRect)
00032 {
00033 CConsoleControl* self=new (ELeave) CConsoleControl();
00034 CleanupStack::PushL(self);
00035 self->ConstructL(aClientRect);
00036 CleanupStack::Pop();
00037 return self;
00038 }
00039
00040 void CConsoleControl::ConstructL(const TRect& aClientRect)
00041 {
00042 iConsole=new(ELeave) CEikConsoleScreen;
00043 _LIT(KEikSec,"EikSec");
00044 iConsole->ConstructL(KEikSec,aClientRect.iTl, aClientRect.Size(),0,EEikConsWinInPixels);
00045 }
00046
00047
00048 CConsoleControl::~CConsoleControl()
00049 {
00050 delete iConsole;
00051 }
00052
00053 CConsoleBase& CConsoleControl::Console()
00054 {
00055 return *iConsole;
00056 }
00057
00058 void CConsoleControl::ActivateL()
00059
00060 {
00061 CCoeControl::ActivateL();
00062 iConsole->SetKeepCursorInSight(EFalse);
00063 iConsole->DrawCursor();
00064 iConsole->ConsoleControl()->SetFocus(ETrue, EDrawNow);
00065 }
00066
00067
00068 TBool CSettingsDialog::RunDlgLD(TConnectSettings& aConnectSettings)
00069 {
00070 CEikDialog* dialog=new(ELeave) CSettingsDialog(aConnectSettings);
00071 return (dialog->ExecuteLD(R_SECS_SETTINGS));
00072 }
00073
00074 CSettingsDialog::CSettingsDialog(TConnectSettings& aConnectSettings)
00075 : iConnectSettings(aConnectSettings)
00076 {
00077 }
00078
00079 void CSettingsDialog::PreLayoutDynInitL()
00080 {
00081
00082 CEikEdwin* name=(CEikEdwin*)Control(EServerName);
00083 name->SetTextL(&iConnectSettings.iAddress);
00084 CEikEdwin* page=(CEikEdwin*)Control(EPage);
00085 TBuf<KSettingFieldWidth> temp;
00086 temp.Copy(iConnectSettings.iPage);
00087 page->SetTextL(&temp);
00088 CEikNumberEditor* port = (CEikNumberEditor*)Control(EPort);
00089 port->SetNumber(iConnectSettings.iPortNum);
00090 }
00091
00092 TBool CSettingsDialog::OkToExitL(TInt )
00093 {
00094
00095 CEikEdwin* name=(CEikEdwin*)Control(EServerName);
00096 name->GetText(iConnectSettings.iAddress);
00097 CEikEdwin* page=(CEikEdwin*)Control(EPage);
00098 TBuf<KSettingFieldWidth> temp;
00099 page->GetText(temp);
00100 iConnectSettings.iPage.Copy(temp);
00101 CEikNumberEditor* port = (CEikNumberEditor*)Control(EPort);
00102 iConnectSettings.iPortNum = port->Number();
00103
00104 return ETrue;
00105 }
00106
00107
00108
00109
00110
00111
00112 CSecAppUi::CSecAppUi(CSecEngine* aSecEngine)
00113 : iSecEngine(aSecEngine)
00114 {
00115 _LIT(KFile,"\\secsocout.txt");
00116 iOutputFileName = KFile;
00117 iConnectSettings.iPortNum = 443;
00118 }
00119
00120 void CSecAppUi::ConstructL()
00121
00122 {
00123 BaseConstructL();
00124
00125 iConsoleControl=CConsoleControl::NewL(ClientRect());
00126 AddToStackL(iConsoleControl);
00127 iConsoleControl->ActivateL();
00128
00129 iSecEngine -> SetConsole( iConsoleControl->Console() );
00130 _LIT(KStart,"\nChoose Connect from the menu to get a secure web page\n");
00131 iConsoleControl->Console().Printf(KStart);
00132 }
00133
00134
00135 CSecAppUi::~CSecAppUi()
00136 {
00137 RemoveFromStack(iConsoleControl);
00138 delete iConsoleControl;
00139 }
00140
00141 void CSecAppUi::HandleCommandL(TInt aCommand)
00142
00143 {
00144 switch (aCommand)
00145 {
00146
00147 case ECmdStart:
00148 if (CSettingsDialog::RunDlgLD(iConnectSettings))
00149 {
00150 User::LeaveIfError(iOutputFile.Replace(iEikonEnv->FsSession(),
00151 iOutputFileName,
00152 EFileWrite));
00153 iSecEngine -> SetOutputFile(iOutputFile);
00154 iSecEngine -> ConnectL(iConnectSettings);
00155 }
00156
00157 else
00158 {
00159
00160 iConnectSettings.iAddress=_L(" 203.124.140.161");
00161 iConnectSettings.iPage=_L8("https://www.mail.mphasis.com");
00162
00163 User::LeaveIfError(iOutputFile.Replace(iEikonEnv->FsSession(),
00164 iOutputFileName,
00165 EFileWrite));
00166 iSecEngine -> SetOutputFile(iOutputFile);
00167 iSecEngine -> ConnectL(iConnectSettings);
00168 }
00169 break;
00170
00171 case ECmdCancel:
00172 iSecEngine -> Cancel();
00173 break;
00174
00175 case EEikCmdExit:
00176 iSecEngine -> Cancel();
00177 Exit();
00178 default:;
00179 }
00180 }
00181
00182 void CSecAppUi::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
00183 {
00184 if (aResourceId == R_CONS_FILE_MENU)
00185 {
00186
00187 aMenuPane->SetItemDimmed(ECmdStart,iSecEngine->InUse());
00188 aMenuPane->SetItemDimmed(ECmdCancel,!(iSecEngine->InUse()));
00189 }
00190 }
00191
00192 CSecDocument::CSecDocument(CEikApplication& aApp)
00193 : CEikDocument(aApp) { }
00194
00195 CSecDocument* CSecDocument::NewL(CEikApplication& aApp)
00196 {
00197 CSecDocument* self=new (ELeave) CSecDocument(aApp);
00198 CleanupStack::PushL(self);
00199 self->ConstructL();
00200 CleanupStack::Pop();
00201 return self;
00202 }
00203
00204 void CSecDocument::ConstructL()
00205 {
00206 iSecEngine = CSecEngine::NewL();
00207 }
00208 CSecDocument::~CSecDocument()
00209 {
00210 delete iSecEngine;
00211 }
00212
00213 CEikAppUi* CSecDocument::CreateAppUiL()
00214 {
00215 return(new(ELeave) CSecAppUi(iSecEngine));
00216 }
00217
00218 TUid CSecApplication::AppDllUid() const
00219 {
00220 return(KUidSecApp);
00221 }
00222
00223 CApaDocument* CSecApplication::CreateDocumentL()
00224 {
00225 return CSecDocument::NewL(*this);
00226 }
00227
00228 EXPORT_C CApaApplication* NewApplication()
00229 {
00230 return(new CSecApplication);
00231 }
00232
00233 GLDEF_C TInt E32Main()
00234 {
00235 return EikStart::RunApplication(NewApplication);
00236 }
00237