diff -r e52958d06c29 -r 20b99a6d6175 graphicsuis_plat/svgt_viewer_ui_api/inc/SVGTUIDialog.h --- /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 +#include +#include +#include + +// 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