00001
00002
00003
00004
00005
00006
00007
00008 #include <avkon.hrh>
00009 #include <aknnotewrappers.h>
00010
00011 #include <utf.h>
00012
00013 #include "handler.pan"
00014 #include "handlerAppUi.h"
00015 #include "handlerAppView.h"
00016 #include "handler.hrh"
00017 #include "handlerDocument.h"
00018
00019 #include <DocumentHandler.h>
00020 #include <eikenv.h>
00021 #include <eikappui.h>
00022 #include <eikapp.h>
00023 #include <APPARC.H>
00024 #include <eikproc.H>
00025 #include <apmstd.h>
00026
00027 #include <handler.rsg>
00028 #include <eikbtgpc.h>
00029
00030 #define KEnableSkinFlag 0x1000
00031 #define KLayoutAwareFlag 0x08
00032
00033 void CHandlerAppUi::ConstructL()
00034 {
00035 #ifdef __SERIES60_3X__
00036 BaseConstructL(EAknEnableSkin);
00037 #else
00038 BaseConstructL(KEnableSkinFlag | KLayoutAwareFlag);
00039 #endif
00040
00041 iAppView = CHandlerAppView::NewL(ClientRect());
00042
00043 if (IsEmbedded())
00044 {
00045
00046
00047 CEikButtonGroupContainer * iCba = CEikButtonGroupContainer::Current();
00048 if( iCba)
00049 {
00050 iCba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK );
00051 iCba->DrawNow();
00052 }
00053 }
00054
00055 AddToStackL(iAppView);
00056 }
00057
00058 CHandlerAppUi::CHandlerAppUi()
00059 {
00060
00061 }
00062
00063 CHandlerAppUi::~CHandlerAppUi()
00064 {
00065 if (iAppView)
00066 {
00067 RemoveFromStack(iAppView);
00068 delete iAppView;
00069 iAppView = NULL;
00070 }
00071
00072
00073 if( iDoorObserver )
00074 {
00075 iDoorObserver->NotifyExit( MApaEmbeddedDocObserver::ENoChanges );
00076 }
00077
00078 }
00079
00080
00081 void CHandlerAppUi::HandleCommandL(TInt aCommand)
00082 {
00083 switch(aCommand)
00084 {
00085 case EEikCmdExit:
00086 case EAknSoftkeyBack:
00087
00088
00089
00090 case EAknSoftkeyExit:
00091
00092
00093
00094 if( iDoorObserver )
00095 {
00096 SaveL();
00097 }
00098 Exit();
00099 break;
00100
00101 default:
00102 Panic(EhandlerBasicUi);
00103 break;
00104 }
00105 }
00106
00107 void CHandlerAppUi::SetFileData(TFileName& aFileName, TDes8& aData)
00108 {
00109 if (iAppView)
00110 {
00111 iAppView->SetFileData(aFileName,aData);
00112 }
00113 }
00114
00115 void CHandlerAppUi::HandleResourceChangeL(TInt aType)
00116 {
00117 CAknAppUi::HandleResourceChangeL(aType);
00118
00119
00120
00121
00122
00123
00124 if ( aType == 0x101F8121 )
00125 {
00126 iAppView->SetRect( ClientRect() );
00127 }
00128 }
00129
00130 TBool CHandlerAppUi::ProcessCommandParametersL(TApaCommand ,TFileName& )
00131 {
00132 return ETrue;
00133 }
00134
00135 TBool CHandlerAppUi::ProcessCommandParametersL(TApaCommand ,TFileName& ,const TDesC8& )
00136 {
00137
00138 return ETrue;
00139 }
00140
00141
00142
00143 void CHandlerAppUi::OpenFileL(const TDesC& aFileName)
00144 {
00145
00146 CHandlerDocument* doc = static_cast<CHandlerDocument*> (Document());
00147 doc->OpenFileL( ETrue, aFileName, iEikonEnv->FsSession() );
00148 }
00149 TBool CHandlerAppUi::IsEmbedded()
00150 {
00151 #ifdef __SERIES60_3X__
00152 return iEikonEnv->StartedAsServerApp();
00153 #else
00154 return (iDoorObserver != NULL);
00155 #endif
00156 }
00157
00158