commonuis/CommonUi/inc/DocSaver.h
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonuis/CommonUi/inc/DocSaver.h	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,251 @@
+/*
+* Copyright (c) 2002-2007 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:    
+*
+*/
+
+
+#ifndef CDOCSAVER_H
+#define CDOCSAVER_H
+
+//  INCLUDES
+#include <StringLoader.h>           // For loading resource strings
+#include <documenthandlerui.rsg>    // Resource ids
+#include <AknWaitDialog.h>          // CAknWaitDialog
+
+// CONSTANTS
+const TInt KDocNotDialogShowed = 1;
+const TInt KDocConfNoteMaxLen = 256;
+const TInt KDocWaitNoteMaxLen = 256;
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+NONSHARABLE_CLASS(CDocSaver) :public CBase
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * C++ default constructor.
+        */
+        CDocSaver();
+
+        /**
+        * Two-phased constructor.
+        */
+        static CDocSaver* NewL();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CDocSaver();
+
+    public: // New functions
+        
+        static void ConfNoteL( const TDesC& aText, TBool aWait );
+
+    private:
+
+        /**
+        * By default EPOC constructor is private.
+        */
+        void ConstructL();
+
+        // By default, prohibit copy constructor
+        CDocSaver( const CDocSaver& );
+        // Prohibit assigment operator
+        CDocSaver& operator= ( const CDocSaver& );
+    };
+
+
+
+/**
+*  DocHandler's WaitDialog
+*  Shows wait dialog if executed over 1 second, if not shows confirmation note
+*/
+class CDocWaitDialog :public CAknWaitDialog
+    {
+    public:  // Constructors and destructor
+                
+        /**
+        * C++ default constructor.
+        * @param aNoteControlId     Control id of the resource
+        * @param aSelfPtr           Pointer to itself.
+        * @param aCaption           Caption of the application
+        */
+        CDocWaitDialog( 
+            CEikDialog** aSelfPtr,
+            const TDesC& aText);            
+        
+        
+
+    public: // New functions
+        
+        /**
+        * Delete the wait dialog and show confirmation note if
+        * wait dialog hasn't been visible.
+        */
+        TBool Finish();
+        
+        /**
+        * Execute the dialog. Sets the label 
+        * and calls CAknWaitDialog's RunDlgLD().
+        * @return ?description
+        */
+        TInt ExecuteDlgLD();    
+               
+    private:
+
+        // By default, prohibit copy constructor
+        CDocWaitDialog( const CDocWaitDialog& );
+        // Prohibit assigment operator
+        CDocWaitDialog& operator= ( const CDocWaitDialog& );
+
+    private:    // Data
+        TPtrC iText;
+        TBool iFinished;
+    };
+
+
+/**
+*  DocHandler's CDocAsyncSaver
+*  Hides asynchronous saving and provides synchronous saving function
+*/
+NONSHARABLE_CLASS(CDocAsyncSaver) :public CActive
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * C++ default constructor.
+        */
+        CDocAsyncSaver();
+
+        /**
+        * Two-phased constructor.
+        */
+        static CDocAsyncSaver* NewL();
+        static CDocAsyncSaver* NewLC();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CDocAsyncSaver();
+
+    public: // New functions
+        
+        /**
+        * Write aContent to the file.
+        * @param aContent       Content
+        * @param aDestFile      Destination file
+        * @param aWaitNoteText  Wait Note text                
+        */
+        void WriteToFileL(const TDesC8& aContent, 
+                         RFile& aDestFile,                         
+                         const TDesC& aWaitNoteText );
+
+        /**
+        * Copy aSourceFile to aDestFile
+        * @param aSourceFile    Source file
+        * @param aDestFile      Destination file
+        * @param aSwitch        Switch        
+        * @param aWaitNoteText  Wait Note text                
+        */
+        void CopyFileL(CFileMan* aFileManager, 
+                      const TFileName& aSourceFile,
+                      const TFileName& aDestFile,
+                      TUint aSwitch,
+                      const TDesC& aWaitNoteText );
+                      
+        /**
+        * Copy aSourceFile to aDestFile
+        * @param aSourceFile    Filehandle of source file
+        * @param aDestFile      Destination file
+        * @param aSwitch        Switch        
+        * @param aWaitNoteText  Wait Note text                
+        */
+        void CopyFileL(CFileMan* aFileManager, 
+                      const RFile& aSourceFile,
+                      const TFileName& aDestFile,
+                      TUint aSwitch,                      
+                      const TDesC& aWaitNoteText );
+
+
+        /**
+        * Move aSourceFile to aDestFile
+        * @param aSourceFile    Source file
+        * @param aDestFile      Destination file
+        * @param aSwitch        Switch        
+        * @param aWaitNoteText  Wait Note text
+        * @param aSilent        True=silent operation (do not show waitdialog)        
+        */
+        void MoveFileL(CFileMan* aFileManager, 
+                      const TFileName& aSourceFile,
+                      const TFileName& aDestFile,
+                      TUint aSwitch,                      
+                      const TDesC& aWaitNoteText,
+                      const TBool aSilent);
+
+        /**
+        * Returns status of the asynchronous operation
+        * @return Status of the asynchronous operation
+        */
+        TRequestStatus Status();    
+        
+        /**
+        * Delete waitdialog and return status of the dialog.
+        * @return ETrue if waitdialog is visible
+        *         EFalse if waitdialog isn't visible 
+        */
+        TBool ShowDialog();
+            
+    protected:  // Functions from base classes
+        
+        /**
+        * From CActive Not implemented
+        */
+        void DoCancel() ;
+        /**
+        * From CActive Delete wait dialog and stop CActiveSchedulerWait
+        */
+        void RunL() ;
+
+    private:
+
+        /**
+        * By default EPOC constructor is private.
+        */
+        void ConstructL();
+
+        // By default, prohibit copy constructor
+        CDocAsyncSaver( const CDocAsyncSaver& );
+        // Prohibit assigment operator
+        CDocAsyncSaver& operator= ( const CDocAsyncSaver& );
+    
+    private:    // Data
+        CDocWaitDialog* iDocWaitDialog;
+        CActiveSchedulerWait iWait; // To make asychronous synchronous
+        TBool iShowDialog;
+        TBool iSilent;
+    };
+
+#endif      // CDOCSAVER_H   
+            
+// End of File