graphicsuis_plat/svgt_viewer_ui_api/inc/SVGTUIDialog.h
branchRCL_3
changeset 14 20b99a6d6175
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsuis_plat/svgt_viewer_ui_api/inc/SVGTUIDialog.h	Wed Sep 01 12:29:59 2010 +0100
@@ -0,0 +1,337 @@
+/*
+* 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:  SVGT UI Dialog implements a custom dialog used to display
+*                SVGT content.
+*
+*/
+
+
+#ifndef __SVGTUIDIALOG_H__
+#define __SVGTUIDIALOG_H__
+#include <AknDialog.h>
+#include <aknnavide.h> 
+#include <SVGTCustControl.h> 
+#include <SvgtApplicationExitObserver.h>
+
+// FORWARD DECLARATIONS
+class CSVGTCustControl;
+class MSvgtAppObserver;
+class MSVGTProgressBarDrawImpl;
+class TCoeHelpContext;
+
+/**
+*  Provides the dialog functionality for viewing SVGT files.
+*  @lib SVGTUIControl.lib
+*  @since 3.0
+*/
+ 
+class CSVGTUIDialog : public CAknDialog, 
+                      public MSVGTProgressBarDrawImpl,
+                      public MSVGTMSKImpl,		//Added since 3.2 interface for MSK label impl
+                      public MSvgtApplicationExitObserver,
+                      public MSvgAudioMuteListener,
+                      public MCustControlPointerEventHandler
+    {
+    public:  // Constructors and destructor
+        /**
+        * Two-phased constructor.
+        */
+        IMPORT_C static CSVGTUIDialog* NewL();
+
+        /**
+        * Two-phased constructor.
+        */
+        IMPORT_C static CSVGTUIDialog* NewLC();
+        
+        
+
+        // Destructor
+        virtual ~CSVGTUIDialog();
+    public: // New functions
+    public: // Functions from base classes
+        /**
+        * From CAknDialog Executes the dialog and deletes the dialog on exit.
+        * @since 3.0
+        * @param aFileHandle File handle to the SVGT content.
+        * @param aAppObs Implementation Class provided by application that
+        *   uses this dialog
+        * Note: The ownership of the file handle is not transferred. 
+        *       It is the responsibility of the caller to close this file 
+        *       after deleting this dialog.        
+        * @return Integer - Indicates Exit Reason.
+        */
+        virtual TInt ExecuteLD( RFile& aFileHandle,
+                                MSvgtAppObserver  *ptr );
+                                
+        /**
+        * From CAknDialog - Called by framework to process commands invoked by
+        *  the user.
+        */
+        virtual void ProcessCommandL( TInt aCommandId );
+                                
+    public: //From MSvgtApplicationExitObserver
+        void HandleApplicationExitL( TInt aExitCommand );
+        IMPORT_C void AssignImageData( const TDesC& aUri, HBufC8* aData );
+        
+    public:// From MSvgAudioMuteListener
+    		/**
+        *  This method is to remove the muted icon
+        * @since 5.0
+        * @param aIsVolumeMuted: indicates if volume is to be muted
+        * @return none.
+        */
+        void VolumeMuted(TBool aIsVolumeMuted);
+    public:                                           
+               
+        
+        /**
+        * This function is called by the application to check whether the
+        * loading of the svg content is done.
+        * @since 3.0
+        * @return TBool iIsLoadingDone
+        */                                       
+        virtual TBool IsLoadingDone();   
+        /**
+        * Function used by the application to handle background/foreground
+        * events. When the application goes to background the presentation
+        * needs to be paused. When application comes back to foreground,
+        * the user would need to start the paused presentation. 
+        * @param aForeground: ETrue: Foreground event, 
+        *                     EFalse: Background event.
+        * @since 3.0
+        */
+        virtual void HandleApplicationForegroundEvent( TBool aForeground );
+
+        /**
+        * Function used by the client to indicate the filehandle is
+        * no longer going to be valid. e.g. In Move operation of the
+        * file, client could close old file and open new one after
+        * move is over.
+        * @since 3.0
+        */
+        virtual void StopUsingContentFileHandle();
+        /**
+        * Function used by the client to indicate the filehandle is
+        * going to be valid now. e.g. In Move operation of the
+        * file, client could close old file and open new one after
+        * move is over.
+        * @since 3.0
+        */
+        virtual void StartUsingContentFileHandle();
+
+        /**
+        * Function used by the client to check if text in the content
+        * was modified, to check if save is needed.
+        * @since 3.1
+        */
+        virtual TBool IsTextContentChanged();
+        
+        /**
+        * Function used by the client to save the modified svg content
+        * @since 3.1
+        */
+        virtual TInt SaveSvgDom( const TDesC& aFileName );
+
+        /**
+        * Function used by the client to notify dialog that save is complete
+        * @since 3.1
+        */
+        virtual void SaveComplete( TInt aError );
+
+    protected: // New functions
+        /**
+        * Convert a time given in milliseconds to a descriptor.
+        * The format depends on how big the given duration is.
+        * Durations of less than an hour are formatted using
+        * the short format (02:24). Longer durations are formatted
+        * using the long format (1:02:04). Maximum duration is 10 hours.
+        *
+        * @since 3.0
+        * @param aDuration duration in seconds
+        * @param aBuf      descriptor to hold the converted string
+        *
+        */
+        void FormatTimeL( const TUint& aDuration,
+                          TDes& aBuf ) const;
+        
+        /**
+        * This function is called when the user presses back or Exit.
+        * prompts a confirmation query to the user and then calls DoSaveL
+        * @param aButtonId  
+        * @since 3.0
+        */                          
+        TBool SaveNeededL( TInt aButtonId );
+        
+        /**
+        * This function prompts a save confirmation query to the user     
+        * @since 3.0
+        */  
+        TBool LaunchSaveQueryDialogL() const;        
+        
+        /**
+        * This function changes the layout of the dialog to full screen mode     
+        * @since 3.0
+        */  
+        void SwitchDialogLayoutL( TBool aIsFullScreen );        
+        
+    protected: // Functions from base classes
+        // From CEikDialog
+        // From CAknDialog
+
+        /**
+        * From CAknDialog - Called by framework to dynamically manipulate
+        *  the menu for the dialog.
+        */
+        void  DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+        
+        /**
+        * From CAknDialog - Framework method to determine if it OK
+        *  to exit the dialog.
+        */
+        TBool OkToExitL( TInt aButtonId );
+        
+        /**
+        * From CAknDialog - Called by framework to add custom control to the
+        *  dialog when specified in resource.
+        */
+        SEikControlInfo CreateCustomControlL( TInt aControlType );
+       
+        /**
+        * From CAknDialog - Called by framework to notify resize of dialog.
+        */
+        void SizeChanged();
+
+        /**
+        * From CCoeControl Key Handling Method for control.
+        * @since 3.0
+        * @param aKeyEvent Key Event.
+        * @param aType Type of Key Event.
+        * @return TKeyResponse - EKeyWasConsumed/EKeyWasNotConsumed.
+        */
+        TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+                                     TEventCode aType );
+      
+#ifdef __SERIES60_HELP        
+        /**
+        * From CCoeControl Context Sensitive Help ID retrieving function.
+        * @since 3.0
+        * @see CCoeControl
+        */
+        void GetHelpContext( TCoeHelpContext& aContext ) const;
+#endif        
+        /**
+        * From CCoeControl 
+        * @see CCoeControl::HandleResourceChange
+        */
+        void HandleResourceChange( TInt aType );
+        
+        /**
+        * From MSVGTProgressBarDrawImpl. This function is called in 
+        * order to render the progress indicator.
+        * @since 3.0
+        * @param aTimeElapsed - Contains the time elapsed in seconds.
+        * @param aTotalTime - Contains the total time in seconds
+        */
+        void DrawProgressBarL( TUint aTimeElapsed, TUint aTotalTime );
+        
+        /**
+        * Sets the mute icon & text to the navi pane .
+        * @since 3.2
+        * @param aIsVolumeMuted whether to show the the mute icon.
+        * @param aText The text show the progress info.
+        */
+        void SetNaviPaneInfoL(TBool aIsVolumeMuted, const TDesC& aText);
+        
+    private:
+    	
+    	static TInt ButtonContainerTimerCallBack(TAny* aAny);
+        virtual TBool HandleCustControlPointerEventL(const TPointerEvent& aPointerEvent);
+
+    	/**
+    	* From MSVGTMSKImpl. This function is called to draw the MSK label by
+    	* pushing the command to position button's stack.
+	    * @since 3.2
+	    * @param aResourceID - The MSK label resourceID
+	    * @param aCommandID	- The command associated with that label
+	    */
+    	void DrawMSKLabelL(TInt aResourceID,TInt aCommandID);
+    	
+    	/**
+    	* From MSVGTMSKImpl. This function is called to remove MSK label from
+    	* button group's stack
+		* @since 3.2
+		*/
+    	void RemoveMSKLabel();
+    	
+        /**
+        * C++ default constructor.
+        */
+        CSVGTUIDialog();
+
+        /**
+        * Second Phase constructor.
+        */
+        void ConstructL();
+
+    private:    // Data
+        CPeriodic* iBtnCntrTimer;
+        
+        TBool iIsButtonContainerVisible;
+         
+        TSize iBtnGrpSize;
+        TPoint iBtnGrpPos;
+        // Descriptor that contains the path to the SVGT file.
+        RFile* iFileHandlePtr;
+
+        // Is the Content file handle valid.
+        TBool iIsFileHandleValid;
+
+        // Integer storing resource offset to DLL resource file
+        TInt iResourceOffset;
+
+        // Pointer to Custom CCoeControl.
+        CSVGTCustControl *iCustControl;
+
+        // Pointer to application implementation of callbacks.
+        MSvgtAppObserver *iAppObserver;
+
+        // Boolean Indicating whether Save functionality is required.
+        TBool iSaveEnable;
+        
+        // Boolean to store whether the content is preview or not
+        TBool iPreview;
+        
+        // Navigation Pane - for progress indicator display
+        CAknNavigationDecorator* iNaviDecorator;
+        // Application Title Text
+        HBufC* iAppTitleText;
+
+        // Short Time format - initialised from resource
+        HBufC* iTimeFormatShort;
+
+        // Long Time format string - initialised from resource
+        HBufC* iTimeFormatLong;        
+        //Button group container - for MSK label updation 
+        CEikButtonGroupContainer* iCbaGroup;
+        
+        HBufC* iProgressText;
+        
+        TBool iIsVolumeMuted;
+
+        TInt iLastCommandID;
+        TBool iQuietExitWhenOrientationChange;
+    };
+
+#endif // __SVGTUIDIALOG_H__
+// End of File