diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/handler_document_8cpp_source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/handler_document_8cpp_source.html Tue Mar 30 16:16:55 2010 +0100 @@ -0,0 +1,126 @@ + + +
+ +00001 /* ==================================================================== +00002 * File: handlerDocument.cpp +00003 * Created: 09/27/05 +00004 * Author: +00005 * Copyright (c): , All rights reserved +00006 * ==================================================================== */ +00007 +00008 #include "handlerAppUi.h" +00009 #include "handlerDocument.h" +00010 #include "Common.h" +00011 +00012 #include <f32file.h> +00013 #include <eikenv.h> +00014 #include <eikappui.h> +00015 #include <eikapp.h> +00016 #include <apparc.h> +00017 #include <eikproc.H> +00018 #include <apgwgnam.h> //Link against: apgrfx.lib +00019 #include <avkon.hrh> +00020 #include <aknnotewrappers.h> +00021 +00022 CHandlerDocument* CHandlerDocument::NewL(CEikApplication& aApp) +00023 { +00024 CHandlerDocument* self = NewLC(aApp); +00025 CleanupStack::Pop(self); +00026 return self; +00027 } +00028 +00029 CHandlerDocument* CHandlerDocument::NewLC(CEikApplication& aApp) +00030 { +00031 CHandlerDocument* self = new (ELeave) CHandlerDocument(aApp); +00032 CleanupStack::PushL(self); +00033 self->ConstructL(); +00034 return self; +00035 } +00036 +00037 void CHandlerDocument::ConstructL() +00038 { +00039 // no implementation required +00040 } +00041 +00042 CHandlerDocument::CHandlerDocument(CEikApplication& aApp) : CAknDocument(aApp) +00043 { +00044 // no implementation required +00045 } +00046 +00047 CHandlerDocument::~CHandlerDocument() +00048 { +00049 // no implementation required +00050 } +00051 +00052 CEikAppUi* CHandlerDocument::CreateAppUiL() +00053 { +00054 // Create the application user interface, and return a pointer to it, +00055 // the framework takes ownership of this object +00056 iAppUi = new (ELeave) CHandlerAppUi; +00057 return iAppUi; +00058 } +00059 +00060 CFileStore* CHandlerDocument::OpenFileL( TBool aDoOpen, const TDesC& aFilename, RFs& aFs ) +00061 { +00062 if (aDoOpen) +00063 { +00064 TFileName name = aFilename; +00065 if( iFileName == name ) //The same file, do nothing +00066 { +00067 return NULL; +00068 } +00069 iFileName = name; +00070 CHandlerAppUi *appui = static_cast<CHandlerAppUi *> (iAppUi); +00071 TBuf8<KTextLengthToRead> buf; +00072 +00073 RFile file; +00074 +00075 TInt err = file.Open(aFs, aFilename, EFileRead|EFileShareAny); +00076 if( err == KErrNone ) +00077 { +00078 CleanupClosePushL(file); +00079 User::LeaveIfError( file.Read(buf,KTextLengthToRead) ); +00080 CleanupStack::PopAndDestroy();//file +00081 } +00082 appui->SetFileData(iFileName, buf); +00083 } +00084 +00085 return NULL; +00086 } +00087 +00088 void CHandlerDocument::OpenFileL(CFileStore*& aFileStore, RFile& aFile) +00089 { +00090 aFileStore = NULL; //So the other OpenFileL version is not called +00091 +00092 TFileName name; +00093 #ifdef __SERIES60_3X__ +00094 aFile.Name(name); +00095 //aFile.FullName(name); //If the location is required +00096 #endif +00097 //This function is never used in 1st or 2nd edition, +00098 //so the RFile::Name function is always executed. +00099 //That way we know that name variable contains aFile name. +00100 if( iFileName == name) +00101 { +00102 return; +00103 } +00104 iFileName = name; +00105 +00106 TBuf8<KTextLengthToRead> buf; +00107 User::LeaveIfError( aFile.Read(buf,KTextLengthToRead) ); +00108 CHandlerAppUi *appui = static_cast<CHandlerAppUi *> (iAppUi); +00109 appui->SetFileData(iFileName, buf); +00110 } +