--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/widgetinstaller/inc/WidgetUIHandler.h Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,245 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: This file contains the header file of the CMidletUI class.
+*
+* This class implements the ECom SWInstUIPluginAPI interface
+* for midlet installation.
+*
+*/
+
+
+
+#ifndef WIDGETUIHANDLER_H
+#define WIDGETUIHANDLER_H
+
+// INCLUDES
+
+#include <e32base.h>
+#include <swi/msisuihandlers.h>
+#include "CUIDialogs.h"
+
+namespace SwiUI
+{
+/**
+* This interface defines an observer for user initiated cancel.
+*
+* @since 3.1
+*/
+class MWidgetUICancelObserver
+ {
+ public:
+
+ /**
+ * Called when user has cancelled the operation.
+ * @since 3.0
+ */
+ virtual void UserCancelL( TBool aCancelImmediately ) = 0;
+ };
+
+/**
+* This class handles the UI for widget installations.
+*
+* @lib WidgetInstallerUI.lib
+* @since 3.1
+*/
+class CWidgetUIHandler : public CBase,
+ public CommonUI::MCUIWaitDialogCallback
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Enumeration for install mode.
+ * @since 3.1
+ */
+ enum TInstallMode
+ {
+ EModeInstall,
+ EModeUninstall
+ };
+
+ /**
+ * Two-phased constructor.
+ * @param aMode - Indicates if this is for install or uninstall
+ * @param aCancelObserver - the object to handle the user cancel event
+ */
+ static CWidgetUIHandler* NewL( TInstallMode aMode, MWidgetUICancelObserver* aCancelObserver );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CWidgetUIHandler();
+
+ public: // From base classes
+
+ /**
+ * From, MCUIWaitDialogCallback, called when wait/progress dialog is about
+ * to be cancelled.
+ */
+ TBool HandleDialogExitL( TInt aButtonId );
+
+ public: // new
+
+ /**
+ * Displays a dialog at the beginning of an installation
+ * @param aWidgetName - display name of the widget
+ * @return Yes if user would want to install, No if user cancels install
+ */
+ TBool DisplayInstallL( const TDesC& aWidgetName );
+
+ /**
+ * Displays a dialog at the beginning of an update
+ * @param aWidgetName - display name of the widget
+ * @return Yes if user would want to update, No if user cancels update
+ */
+ TBool DisplayOverwriteL( const TDesC& aWidgetName );
+
+ /**
+ * Displays a dialog asking whether we want to upgrade an
+ * application present on the device.
+ */
+ TBool DisplayUpgradeL( const Swi::CAppInfo& aAppInfo,
+ const Swi::CAppInfo& aExistingAppInfo );
+
+ /**
+ * Displays a dialog at the start of the uninstallation with
+ * information about the application to be uninstalled. The user may cancel the
+ * uninstallation at this stage. This dialog must be shown in TrustedUI mode.
+ */
+ TBool DisplayUninstallL( const TDesC& aWidgetName );
+
+ /**
+ * Prompt user to select a drive to install the widget
+ * @param aDrive - returns user's drive selection
+ * @param aSufficientSpace - return whether user's selected drive is big enough
+ * @return true if user selected a drive, false if user chose cancel.
+ */
+ TBool SelectDriveL( RFs& aFs, TDriveUnit& aDrive,
+ TBool& aSufficientSpace, TInt aTotalSize );
+
+ /**
+ * Displays a dialog containing text. This dialog has only a
+ * Continue button if aOption is EInstFileTextOptionContinue, or Yes and No buttons
+ * otherwise.
+ */
+ TBool DisplayTextL( const TDesC& aText );
+
+ /**
+ * Displays a dialog showing an error message.
+ * @param aErr - an error code
+ */
+ void DisplayErrorL( const TInt aErr );
+
+ /**
+ * Displays a dialog showing completion message.
+ */
+ void DisplayCompleteL();
+
+ /**
+ * Displays a dialog showing cancel message.
+ */
+ void DisplayCancelL();
+
+ /**
+ * Informs user that the applications are in use during an uninstallation.
+ * Return ETrue if the user wishes to continue the removal process and
+ * close the applications anyway.
+ */
+ TBool DisplayApplicationsInUseL( const Swi::CAppInfo& aAppInfo,
+ const RPointerArray<TDesC>& aAppNames );
+
+ /**
+ * Show progress dialog and pass total uncompressed package size.
+ * This method should be called only after SelectDrive is called.
+ * @since 3.1
+ */
+ void DisplayProgressDialogL();
+
+ /**
+ * Update progress information during installation.
+ * @since 3.1
+ * @param aSize - the increment on progress
+ */
+ void UpdateProgressDialogL( TInt aSize );
+
+ /**
+ * Close progress dialog
+ */
+ void CloseProgressDialogL() { iCommonDialogs->CloseProgressDialogL(); }
+
+ /**
+ * Display Finalize dialog
+ */
+ void DisplayFinalizeDialogL();
+
+ /**
+ * Close the finalize dialog
+ */
+ void CloseFinalizeDialogL() { iCommonDialogs->CloseWaitDialogL(); }
+
+ /**
+ * Display unintall in progress dialog
+ * @since 5.0
+ */
+ void DisplayUninstallInProgressL();
+
+ /**
+ * Close the wait dialog
+ * @since 5.0
+ */
+ void CloseUninstallInProgressDialogL() { iCommonDialogs->CloseWaitDialogL(); }
+
+ /**
+ * Show the untrusted widget dialog
+ * @since 5.0
+ * @return Yes if user would wants to continue with install,
+ * No if user cancels install
+ */
+ TBool DisplayUntrustedSecurityDialogL();
+
+ protected:
+
+ /**
+ * Constructor.
+ * @param aMode - Indicates if this is for install or uninstall
+ */
+ CWidgetUIHandler( TInstallMode aMode, MWidgetUICancelObserver* aCancelObserver );
+
+ private:
+
+ /**
+ * 2nd phase constructor.
+ */
+ void ConstructL();
+
+
+ protected: // Data
+ MWidgetUICancelObserver* iCancelObserver; // not owned, used for callback
+
+ CommonUI::CCUIDialogs* iCommonDialogs; // Owned
+
+ TInstallMode iMode; // Indicates whether we have install or uninstall in progress
+
+ TBool iShowingDialog; // show dialog or not
+
+ TBool iShownFinalNote; // is final note shown or not
+
+ TInt iUncompressedSize; // uncompressed size of the whole package
+
+ TInt iInstalledSize; // total installed size
+
+ CArrayFixFlat<TInt>* iProgressNumbers; // owned
+ };
+}
+
+#endif