--- /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