svgtviewer/SvgtViewerPlugin/AppSrc/SVGTViewerAppDocument.cpp
changeset 0 632761c941a7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtviewer/SvgtViewerPlugin/AppSrc/SVGTViewerAppDocument.cpp	Thu Dec 17 08:40:16 2009 +0200
@@ -0,0 +1,296 @@
+/*
+* Copyright (c) 2004,2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Document for SVGT Viewer
+*
+*/
+
+#include <avkon.hrh>
+#include <aknnotewrappers.h>
+#include <AiwGenericParam.h>
+#include <AiwGenericParam.hrh>
+
+#include "SVGTViewerAppAppUi.h"
+#include "SVGTViewerAppDocument.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::CSVGTViewerAppDocument
+// Default Constructor for CSVGTViewerAppDocument.
+// -----------------------------------------------------------------------------
+//
+CSVGTViewerAppDocument::CSVGTViewerAppDocument( 
+    CEikApplication& aApp ) : // Reference to application object
+        CAiwGenericParamConsumer( aApp ),
+        iIsFileHandleValid( EFalse )
+    {
+    // No implementation required
+    }
+
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::ConstructL
+// Second Phase constructor for CSVGTViewerAppDocument.
+// -----------------------------------------------------------------------------
+//
+void CSVGTViewerAppDocument::ConstructL()
+    {
+    iIsFileFullPathValid = EFalse;   
+    }
+
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::NewL
+// Factory function for creation of CSVGTViewerAppDocument.
+// Returns: CSVGTViewerAppDocument*  ; Pointer to created object
+//          Leaves if error occurs during creation.
+// -----------------------------------------------------------------------------
+//
+CSVGTViewerAppDocument* CSVGTViewerAppDocument::NewL( 
+    CEikApplication& aApp ) // Reference to application object
+    {
+    CSVGTViewerAppDocument* self = NewLC( aApp );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::NewL
+// Factory function for creation of CSVGTViewerAppDocument. Also pushes the
+// object on the cleanup stack.
+// Returns: CSVGTViewerAppDocument*  ; Pointer to created object
+//          Leaves if error occurs during creation.
+// -----------------------------------------------------------------------------
+//
+CSVGTViewerAppDocument* CSVGTViewerAppDocument::NewLC( 
+    CEikApplication& aApp ) // Reference to application object
+    {
+    CSVGTViewerAppDocument* self = new ( ELeave )
+        CSVGTViewerAppDocument( aApp );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+
+// Destructor
+CSVGTViewerAppDocument::~CSVGTViewerAppDocument()
+    {
+    // Close the file handle and session
+    iSvgtContentFileHandle.Close();
+    delete iFileFullPath;
+    }
+
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::GetSvgtContentFileHandle
+// This function is a get function to get the file-handle of the file content. 
+// This is used by AppUI.
+// Returns: File handle of content by reference .
+// -----------------------------------------------------------------------------
+//
+RFile& CSVGTViewerAppDocument::GetSvgtContentFileHandle() 
+    {
+    return iSvgtContentFileHandle;
+    }
+ 
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::IsFileHandleValid()
+// Used by UI class to check if file's handle is valid
+// -----------------------------------------------------------------------------
+//
+TBool CSVGTViewerAppDocument::IsFileHandleValid() const
+    {
+    return iIsFileHandleValid;
+    }
+
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::IsFileFullPathAvailable()
+// Used by UI class to check if file's full-path available.
+// -----------------------------------------------------------------------------
+//
+TBool CSVGTViewerAppDocument::IsFileFullPathAvailable() const
+    {
+    return iIsFileFullPathValid;
+    }
+
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::GetFileFullPath()
+// Used by UI class to get file's full-path.
+// -----------------------------------------------------------------------------
+//
+void CSVGTViewerAppDocument::GetFileFullPath(TFileName& filename)
+    {
+    if ( iFileFullPath )
+        {
+        filename = iFileFullPath->Des();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::GetParentAppUid()
+// Used by UI class to get parent application's uid.
+// -----------------------------------------------------------------------------
+//
+TUid CSVGTViewerAppDocument::GetParentAppUid() const
+	{
+	return iParentUid;
+	}
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::OpenFileL
+// Reimplements CAknDocument::OpenFileL inorder to support opening of SVGT
+// files through doc-handler framework.
+// Returns: NULL.
+// -----------------------------------------------------------------------------
+//
+CFileStore* CSVGTViewerAppDocument::OpenFileL( TBool aDoOpen,     // Indicates
+                                                                  // Whether doc
+                                                                  // is to be
+                                                                  // created
+                                                                  // or opened.
+                                         const TDesC& aFilename,  // SVGT
+                                                                  // Filename
+                                         RFs& aFs )               // File Srvr
+                                                                  // Session
+    {
+    // In this function we store the file-name inside the document.
+    // The opening of the document is performed by AppUI after 
+    // initialisation.
+    if ( aDoOpen )
+        {
+        CSVGTViewerAppAppUi* AppUi = static_cast<CSVGTViewerAppAppUi*>(iAppUi);
+        AppUi->SetAllowMove(0);
+
+        const CAiwGenericParamList* params = GetInputParameters();
+        if ( params )
+            {
+            TInt findIndex;
+            const TAiwGenericParam* param = params->FindFirst(findIndex,
+                EGenericParamAllowMove);
+
+            if ( param && findIndex != KErrNotFound )
+                {
+                TInt32 value = 0;
+                param->Value().Get(value);
+                AppUi->SetAllowMove(value);
+                }            
+            }
+         
+        // Get Move parameter
+        if ( params && params->Count() )
+            {        
+            TInt index = 0;
+            const TAiwGenericParam* param = NULL;
+
+            param = params->FindFirst(index, EGenericParamApplication, EVariantTypeTUid);
+
+            if ( index >= 0 && param )
+                {
+                param->Value().Get(iParentUid);              
+                }
+            }
+        }
+    
+    // Function is called with Full-path.
+    iIsFileFullPathValid = ETrue;
+    // Store the File's fullpath.
+    iFileFullPath = aFilename.AllocL();
+
+    // Open File Handle for the file
+    TInt openError = iSvgtContentFileHandle.Open( aFs, aFilename, 
+        EFileShareAny );
+    if ( openError != KErrNone )
+        {
+        User::Leave( openError );
+        }
+    iIsFileHandleValid = ETrue;
+    
+    return NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::OpenFileL
+// Reimplements CAknDocument::OpenFileL inorder to support opening of SVGT
+// files through doc-handler framework.
+// Returns: NULL.
+// -----------------------------------------------------------------------------
+//
+void CSVGTViewerAppDocument::OpenFileL(
+    CFileStore*& aFileStore, // Pointer to reference of filestore
+    RFile& aFile ) // File handle of content.
+    {
+    // Set the docstore pointer to NULL so that the framework
+    // does not try to open the file by filename
+    aFileStore = NULL;
+    
+    // In this function we store the file-name inside the document.
+    // The opening of the document is performed by AppUI after 
+    // initialisation.
+    CSVGTViewerAppAppUi* AppUi = static_cast<CSVGTViewerAppAppUi*>(iAppUi);
+    AppUi->SetAllowMove(0);
+
+    const CAiwGenericParamList* paramList = GetInputParameters();
+    if ( paramList )
+        {
+        TInt findIndex;
+        const TAiwGenericParam* param = paramList->FindFirst(findIndex,
+               EGenericParamAllowMove);
+
+        if ( param && findIndex != KErrNotFound )
+            {
+            TInt32 value = 0;
+            param->Value().Get(value);
+            AppUi->SetAllowMove(value);
+            }            
+        }
+         
+
+    if ( paramList && paramList->Count() )
+        {
+        TInt index = 0;
+        const TAiwGenericParam* param = NULL;
+        param = paramList->FindFirst(index, EGenericParamApplication, EVariantTypeTUid);
+
+        if ( index >= 0 && param )
+            {
+            param->Value().Get(iParentUid);              
+            }
+        }
+    // Function is not called with Full-path.
+    iIsFileFullPathValid = EFalse;
+    
+    // File-handle is valid
+    iIsFileHandleValid = ETrue;
+    
+    // Make a copy for our use later.
+    iSvgtContentFileHandle.Duplicate( aFile );
+
+    // Close the original file handle
+    aFile.Close();
+
+    return;
+    }
+// -----------------------------------------------------------------------------
+// CSVGTViewerAppDocument::CreateAppUiL
+// Called by the framework to create the AppUI.
+// Returns: CEikAppUi* ; Pointer to the created object.
+//          Leaves if error.
+// -----------------------------------------------------------------------------
+//
+CEikAppUi* CSVGTViewerAppDocument::CreateAppUiL()
+    {
+    // Create the application user interface, and return a pointer to it
+    // the framework takes ownership of this object
+    return ( static_cast < CEikAppUi* >
+            ( new ( ELeave ) CSVGTViewerAppAppUi ) );
+    }
+
+// End of File