00001
00002
00003
00004
00005
00006
00007
00008 #include <avkon.hrh>
00009 #include <aknnotewrappers.h>
00010
00011 #include "TestApp.pan"
00012 #include "TestAppAppUi.h"
00013 #include "TestAppAppView.h"
00014 #include "TestApp.hrh"
00015
00016 #include <apmstd.h>
00017 #include <DocumentHandler.h>
00018 #include <apgcli.h>
00019
00020 #ifdef __SERIES60_3X__
00021 _LIT(KTestFile,"c:\\data\\Images\\Pictures\\test.new");
00022 #else
00023 _LIT(KTestFile,"c:\\nokia\\Images\\Pictures\\test.new");
00024 #endif
00025
00026 #ifdef __SERIES60_3X__
00027 _LIT(KTestFile2,"c:\\data\\Images\\Pictures\\test2.new");
00028 #else
00029 _LIT(KTestFile2,"c:\\nokia\\Images\\Pictures\\test2.new");
00030 #endif
00031
00032 void CTestAppAppUi::ConstructL()
00033 {
00034 BaseConstructL();
00035
00036 iAppView = CTestAppAppView::NewL(ClientRect());
00037 iDocHandler = CDocumentHandler::NewL( CEikonEnv::Static()->Process() );
00038
00039 AddToStackL(iAppView);
00040 }
00041
00042 CTestAppAppUi::CTestAppAppUi()
00043 {
00044
00045 }
00046
00047 CTestAppAppUi::~CTestAppAppUi()
00048 {
00049 if (iAppView)
00050 {
00051 RemoveFromStack(iAppView);
00052 delete iAppView;
00053 iAppView = NULL;
00054 }
00055 delete iDocHandler;
00056 }
00057
00058
00059 void CTestAppAppUi::HandleCommandL(TInt aCommand)
00060 {
00061 switch(aCommand)
00062 {
00063 case EEikCmdExit:
00064 case EAknSoftkeyExit:
00065 Exit();
00066 break;
00067
00068 case ETestAppCommand1:
00069 {
00070 LaunchFileL(EFalse);
00071 break;
00072 }
00073
00074 case ETestAppCommand2:
00075 {
00076 LaunchFileL(ETrue);
00077 break;
00078 }
00079 break;
00080
00081 default:
00082 Panic(ETestAppBasicUi);
00083 break;
00084 }
00085 }
00086
00087 void CTestAppAppUi::LaunchFileL(TBool aEmbedded)
00088 {
00089 TFileName path;
00090 if (iCount++ % 2 == 0)
00091 {
00092 path = KTestFile;
00093 }
00094 else
00095 {
00096 path = KTestFile2;
00097 }
00098
00099 TDataType empty = TDataType();
00100
00101 if( aEmbedded )
00102 {
00103
00104
00105 iDocHandler->SetExitObserver(this);
00106 iDocHandler->OpenFileEmbeddedL(path,empty );
00107 }
00108 else
00109 {
00110 iDocHandler->OpenFileL(path,empty );
00111
00112
00113
00114 TUid handlerUid;
00115 TInt err = KErrNone;
00116 #ifdef __SERIES60_3X__
00117 err = iDocHandler->HandlerAppUid(handlerUid);
00118 #else
00119 RApaLsSession apaLs;
00120 User::LeaveIfError( apaLs.Connect() );
00121 err = apaLs.AppForDocument(path, handlerUid, empty);
00122 apaLs.Close();
00123 #endif
00124
00125 if( !err )
00126 {
00127 RefreshDocumentFileL(handlerUid, path);
00128 }
00129 else if( err == KNotInitialized )
00130 {
00131
00132 }
00133 else
00134 {
00135
00136 }
00137
00138 }
00139
00140 }
00141
00142 TBool CTestAppAppUi::RefreshDocumentFileL(const TUid& aUid, const TDesC& aFileName )
00143 {
00144 TApaTaskList taskList(iCoeEnv->WsSession());
00145 TApaTask task = (taskList.FindApp(aUid));
00146
00147 if (task.Exists())
00148 {
00149
00150 User::LeaveIfError(task.SwitchOpenFile(aFileName));
00151
00152 return ETrue;
00153 }
00154 return EFalse;
00155 }
00156
00157 void CTestAppAppUi::HandleResourceChangeL(TInt aType)
00158 {
00159 CAknAppUi::HandleResourceChangeL(aType);
00160
00161
00162
00163
00164
00165
00166 if ( aType == 0x101F8121 )
00167 {
00168 iAppView->SetRect( ClientRect() );
00169 }
00170 }
00171
00172
00173 #ifdef __SERIES60_3X__
00174 void CTestAppAppUi::HandleServerAppExit (TInt aReason)
00175 {
00176
00177 MAknServerAppExitObserver::HandleServerAppExit( aReason );
00178 }
00179 #else
00180 void CTestAppAppUi::NotifyExit(TExitMode aMode)
00181 {
00182
00183
00184
00185
00186 switch (aMode)
00187 {
00188
00190 case EKeepChanges:
00191 {
00192
00193 }
00194 break;
00195
00198 case ERevertToSaved:
00199 {
00200
00201 }
00202 break;
00204 case ENoChanges:
00205 {
00206
00207 }
00208 break;
00210 case EEmpty:
00211 {
00212
00213 }
00214 break;
00215 default:
00216
00217 break;
00218 }
00219 }
00220 #endif