00001 /* ==================================================================== 00002 * File: handlerAppUi.cpp 00003 * Created: 09/27/05 00004 * Author: 00005 * Copyright (c): All rights reserved 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> //TDAtatype, Link against: apmime.lib 00026 00027 #include <handler.rsg> 00028 #include <eikbtgpc.h> //CEikButtonGroupContainer 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 //If the handler application is launched as embedded 00046 //then set the right softkey to "Back" 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 // no implementation required 00061 } 00062 00063 CHandlerAppUi::~CHandlerAppUi() 00064 { 00065 if (iAppView) 00066 { 00067 RemoveFromStack(iAppView); 00068 delete iAppView; 00069 iAppView = NULL; 00070 } 00071 00072 //This only works in 1st and 2nd edition 00073 if( iDoorObserver ) 00074 { 00075 iDoorObserver->NotifyExit( MApaEmbeddedDocObserver::ENoChanges ); 00076 } 00077 00078 } 00079 00080 // handle any menu commands 00081 void CHandlerAppUi::HandleCommandL(TInt aCommand) 00082 { 00083 switch(aCommand) 00084 { 00085 case EEikCmdExit: 00086 case EAknSoftkeyBack: 00087 //The application was embedded, now just closes this and 00088 //goes back to the launcher application 00089 00090 case EAknSoftkeyExit: 00091 //Closes the possible launcher app also if launched embedded 00092 //In the embedded case the Exit was choosen from the options 00093 //menu 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); //call to upper class 00118 00119 // ADDED FOR SCALABLE UI SUPPORT 00120 // ***************************** 00121 //if ( aType == KEikDynamicLayoutVariantSwitch ) 00122 //hard coded constant so it can be compiled with first edition 00123 00124 if ( aType == 0x101F8121 ) 00125 { 00126 iAppView->SetRect( ClientRect() ); 00127 } 00128 } 00129 00130 TBool CHandlerAppUi::ProcessCommandParametersL(TApaCommand /*aCommand*/,TFileName& /*aDocumentName*/) 00131 { 00132 return ETrue; 00133 } 00134 00135 TBool CHandlerAppUi::ProcessCommandParametersL(TApaCommand /*aCommand*/,TFileName& /*aDocumentName*/,const TDesC8& /*aTail*/) 00136 { 00137 //return true here so that document's OpenFileL gets called 00138 return ETrue; 00139 } 00140 00141 00142 00143 void CHandlerAppUi::OpenFileL(const TDesC& aFileName) 00144 { 00145 // File changed. Open new file with documents OpenFileL method. 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 //End of file
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.