btobexprofiles/obexserviceman/utils/inc/obexutilsdialog.h
author hgs
Mon, 12 Jul 2010 18:51:05 +0300
changeset 42 b72428996822
parent 32 19bd632b5100
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32
hgs
parents:
diff changeset
     1
/*
42
hgs
parents: 32
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
32
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef COBEXUTILSDIALOG_H
hgs
parents:
diff changeset
    20
#define COBEXUTILSDIALOG_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include    <e32base.h>
hgs
parents:
diff changeset
    23
42
hgs
parents: 32
diff changeset
    24
#include <hbdeviceprogressdialogsymbian.h>
hgs
parents: 32
diff changeset
    25
#include <hbdevicedialogsymbian.h>
hgs
parents: 32
diff changeset
    26
#include <hbdevicemessageboxsymbian.h>
hgs
parents: 32
diff changeset
    27
#include <hbsymbianvariant.h>
hgs
parents: 32
diff changeset
    28
32
hgs
parents:
diff changeset
    29
class CObexUtilsDialogTimer;
hgs
parents:
diff changeset
    30
42
hgs
parents: 32
diff changeset
    31
enum TButtonId
hgs
parents: 32
diff changeset
    32
    {
hgs
parents: 32
diff changeset
    33
    ECancelButton = -1,
hgs
parents: 32
diff changeset
    34
    EYesButton,
hgs
parents: 32
diff changeset
    35
    ENoButton
hgs
parents: 32
diff changeset
    36
    };
32
hgs
parents:
diff changeset
    37
/**
hgs
parents:
diff changeset
    38
*  An observer interface for asking progress status of an operation using 
hgs
parents:
diff changeset
    39
*  a progress dialog.
hgs
parents:
diff changeset
    40
*/
hgs
parents:
diff changeset
    41
NONSHARABLE_CLASS(  MObexUtilsProgressObserver )
hgs
parents:
diff changeset
    42
    {
hgs
parents:
diff changeset
    43
    public:
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
        /**
hgs
parents:
diff changeset
    46
        * Returns the progress status of the operation.
hgs
parents:
diff changeset
    47
        * @since 2.6
hgs
parents:
diff changeset
    48
        * @return A progress value relative to final value.
hgs
parents:
diff changeset
    49
        */
hgs
parents:
diff changeset
    50
        virtual TInt GetProgressStatus() = 0;
hgs
parents:
diff changeset
    51
    };
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
// CLASS DECLARATION
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
/**
hgs
parents:
diff changeset
    56
*  An observer interface for informing about dialog events.
hgs
parents:
diff changeset
    57
*/
hgs
parents:
diff changeset
    58
NONSHARABLE_CLASS(  MObexUtilsDialogObserver )
hgs
parents:
diff changeset
    59
    {
hgs
parents:
diff changeset
    60
    public:
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
        /**
hgs
parents:
diff changeset
    63
        * Informs the observer that a dialog has been dismissed.
hgs
parents:
diff changeset
    64
        * @since 2.6
42
hgs
parents: 32
diff changeset
    65
        * todo check whether the parameter is required
32
hgs
parents:
diff changeset
    66
        * @param aButtonId The button that was used to dismiss the dialog.
hgs
parents:
diff changeset
    67
        */
42
hgs
parents: 32
diff changeset
    68
        virtual void DialogDismissed(TInt aButtonId) = 0; //TInt aButtonId
32
hgs
parents:
diff changeset
    69
    };
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
// CLASS DECLARATION
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
/**
hgs
parents:
diff changeset
    75
*  A class for launching and managing dialogs.
hgs
parents:
diff changeset
    76
*/
42
hgs
parents: 32
diff changeset
    77
NONSHARABLE_CLASS( CObexUtilsDialog ) : public CBase, 
hgs
parents: 32
diff changeset
    78
                                        public MHbDeviceProgressDialogObserver,
hgs
parents: 32
diff changeset
    79
                                        public MHbDeviceDialogObserver,
hgs
parents: 32
diff changeset
    80
                                        public MHbDeviceMessageBoxObserver
32
hgs
parents:
diff changeset
    81
    {
hgs
parents:
diff changeset
    82
    public:// Constructors and destructor
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
        /**
hgs
parents:
diff changeset
    85
        * Two-phased constructor.
hgs
parents:
diff changeset
    86
        */
hgs
parents:
diff changeset
    87
        IMPORT_C static CObexUtilsDialog* NewL( 
hgs
parents:
diff changeset
    88
            MObexUtilsDialogObserver* aObserverPtr );        
hgs
parents:
diff changeset
    89
        
hgs
parents:
diff changeset
    90
        IMPORT_C static CObexUtilsDialog* NewLC( 
hgs
parents:
diff changeset
    91
            MObexUtilsDialogObserver* aObserverPtr );
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
        /**
hgs
parents:
diff changeset
    94
        * Destructor.
hgs
parents:
diff changeset
    95
        */
hgs
parents:
diff changeset
    96
        virtual ~CObexUtilsDialog();
hgs
parents:
diff changeset
    97
   
hgs
parents:
diff changeset
    98
    public: // New functions
hgs
parents:
diff changeset
    99
        
42
hgs
parents: 32
diff changeset
   100
        
32
hgs
parents:
diff changeset
   101
        /**
hgs
parents:
diff changeset
   102
        * Launches a progress dialog.
hgs
parents:
diff changeset
   103
        * @param aObserverPtr A pointer to progress observer. A NULL pointer if 
hgs
parents:
diff changeset
   104
                              the progress dialog is updated manually.
42
hgs
parents: 32
diff changeset
   105
        * @param aFileCount Total number of files to be sent.
hgs
parents: 32
diff changeset
   106
        * @param aDeviceName Device Name to which files to be sent.
32
hgs
parents:
diff changeset
   107
        * @param aTimeoutValue A value telling how often should the dialog be
42
hgs
parents: 32
diff changeset
   108
                               updated. Relevant only if observer is given.
32
hgs
parents:
diff changeset
   109
        */
hgs
parents:
diff changeset
   110
        IMPORT_C void LaunchProgressDialogL( 
42
hgs
parents: 32
diff changeset
   111
            MObexUtilsProgressObserver* aObserverPtr, TInt aFileCount, 
hgs
parents: 32
diff changeset
   112
            const TDesC& aDeviceName, TInt aTimeoutValue );
hgs
parents: 32
diff changeset
   113
        
hgs
parents: 32
diff changeset
   114
        /**
hgs
parents: 32
diff changeset
   115
        * Updates the progress dialog with new file information when multiples files are sent.
hgs
parents: 32
diff changeset
   116
        * @param aFileSize Size of the file to be sent
hgs
parents: 32
diff changeset
   117
        * @param aFileIndex Index of the file to be sent
hgs
parents: 32
diff changeset
   118
        * @param aFileName Name of the file to be sent.
hgs
parents: 32
diff changeset
   119
        */
hgs
parents: 32
diff changeset
   120
        IMPORT_C void UpdateProgressNoteL( TInt aFileSize,TInt aFileIndex, const TDesC& aFileName );    
32
hgs
parents:
diff changeset
   121
        
hgs
parents:
diff changeset
   122
        /**
hgs
parents:
diff changeset
   123
        * Launches a wait dialog.
42
hgs
parents: 32
diff changeset
   124
        * @param aDisplayText Text that needs to be displayed.
32
hgs
parents:
diff changeset
   125
        */
42
hgs
parents: 32
diff changeset
   126
        IMPORT_C void LaunchWaitDialogL( const TDesC& aDisplayText );
32
hgs
parents:
diff changeset
   127
        
hgs
parents:
diff changeset
   128
        /**
hgs
parents:
diff changeset
   129
        * Cancels a wait dialog if one exists.
hgs
parents:
diff changeset
   130
        * @since 2.6        
hgs
parents:
diff changeset
   131
        * @return None.
hgs
parents:
diff changeset
   132
        */
42
hgs
parents: 32
diff changeset
   133
        IMPORT_C void CancelWaitDialog();
32
hgs
parents:
diff changeset
   134
        
hgs
parents:
diff changeset
   135
        /**
hgs
parents:
diff changeset
   136
        * Cancels a wait progress dialog if one exists.
hgs
parents:
diff changeset
   137
        * @since 2.6       
hgs
parents:
diff changeset
   138
        * @return None.
hgs
parents:
diff changeset
   139
        */
42
hgs
parents: 32
diff changeset
   140
        IMPORT_C void CancelProgressDialog();
32
hgs
parents:
diff changeset
   141
        
hgs
parents:
diff changeset
   142
        /**
42
hgs
parents: 32
diff changeset
   143
        * Updates a progress dialog with the latest progress value 
32
hgs
parents:
diff changeset
   144
        * @param aValue A progress value relative to final value.
hgs
parents:
diff changeset
   145
        * @return None
hgs
parents:
diff changeset
   146
        */
42
hgs
parents: 32
diff changeset
   147
        IMPORT_C void UpdateProgressDialogL( TInt aProgressValue );
32
hgs
parents:
diff changeset
   148
        
hgs
parents:
diff changeset
   149
        /**
hgs
parents:
diff changeset
   150
        * Show a query note
42
hgs
parents: 32
diff changeset
   151
        * @param aConfirmText text for the note.
hgs
parents: 32
diff changeset
   152
        * @return None		
32
hgs
parents:
diff changeset
   153
        */
42
hgs
parents: 32
diff changeset
   154
        IMPORT_C void LaunchQueryDialogL( const TDesC& aConfirmText );
32
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
        /**
42
hgs
parents: 32
diff changeset
   157
        * Shows an error note.
hgs
parents: 32
diff changeset
   158
        * @param aTextId A resource id for the note.
hgs
parents: 32
diff changeset
   159
        * @return None.
32
hgs
parents:
diff changeset
   160
        */
42
hgs
parents: 32
diff changeset
   161
        IMPORT_C void ShowErrorNoteL( const TDesC& aErrorText );
32
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
        /**
42
hgs
parents: 32
diff changeset
   164
        * Shows an information note.
hgs
parents: 32
diff changeset
   165
        * @param aTextId A resource id for the note.
hgs
parents: 32
diff changeset
   166
        * @return None.
32
hgs
parents:
diff changeset
   167
        */
42
hgs
parents: 32
diff changeset
   168
        IMPORT_C void ShowInformationNoteL( const TDesC& aInfoText );
32
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
    public: // New functions (not exported)
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
        /**
hgs
parents:
diff changeset
   173
        * Updates the progress dialog.
hgs
parents:
diff changeset
   174
        * @return None.
hgs
parents:
diff changeset
   175
        */
hgs
parents:
diff changeset
   176
        void UpdateProgressDialog();
hgs
parents:
diff changeset
   177
hgs
parents:
diff changeset
   178
    private: // Functions from base classes
42
hgs
parents: 32
diff changeset
   179
        
32
hgs
parents:
diff changeset
   180
        /**
42
hgs
parents: 32
diff changeset
   181
        * From MHbDeviceProgressDialogObserver called when dialog is closed by pressing the "cancel" button
hgs
parents: 32
diff changeset
   182
        * @param aDialog Pointer to dialog that was cancelled.
hgs
parents: 32
diff changeset
   183
        * @return None.
hgs
parents: 32
diff changeset
   184
        */
hgs
parents: 32
diff changeset
   185
        void ProgressDialogCancelled(const CHbDeviceProgressDialogSymbian* aDialog);
hgs
parents: 32
diff changeset
   186
        
hgs
parents: 32
diff changeset
   187
        /**
hgs
parents: 32
diff changeset
   188
        * From MHbDeviceProgressDialogObserver called when a device progress dialog is has closed
hgs
parents: 32
diff changeset
   189
        * @param aDialog Pointer to dialog instance that has closed.
32
hgs
parents:
diff changeset
   190
        * @return None.
hgs
parents:
diff changeset
   191
        */
42
hgs
parents: 32
diff changeset
   192
        void ProgressDialogClosed(const CHbDeviceProgressDialogSymbian* aDialog )  ; 
hgs
parents: 32
diff changeset
   193
        
hgs
parents: 32
diff changeset
   194
        /**
hgs
parents: 32
diff changeset
   195
          * From MHbDeviceDialogObserver called when data is received from a device dialog
hgs
parents: 32
diff changeset
   196
          * @param aDialog Pointer to dialog instance that has closed.
hgs
parents: 32
diff changeset
   197
          * @return None.
hgs
parents: 32
diff changeset
   198
          */
hgs
parents: 32
diff changeset
   199
        void DataReceived(CHbSymbianVariantMap& aData);
hgs
parents: 32
diff changeset
   200
       
hgs
parents: 32
diff changeset
   201
        /**
hgs
parents: 32
diff changeset
   202
          * From MHbDeviceDialogObserver called when a device dialog is closed
hgs
parents: 32
diff changeset
   203
          * @param  aData contains data from the dialog plugin.
hgs
parents: 32
diff changeset
   204
          * @return None.
hgs
parents: 32
diff changeset
   205
          */
hgs
parents: 32
diff changeset
   206
         void DeviceDialogClosed(TInt aCompletionCode);
hgs
parents: 32
diff changeset
   207
        
hgs
parents: 32
diff changeset
   208
        /**
hgs
parents: 32
diff changeset
   209
        * from base class MHbDeviceMessageBoxObserver
hgs
parents: 32
diff changeset
   210
        * @param aMessageBox Pointer to dialog instance that has closed.
hgs
parents: 32
diff changeset
   211
        * @param aButton the id of the button the user pressed
hgs
parents: 32
diff changeset
   212
        */    
hgs
parents: 32
diff changeset
   213
        void  MessageBoxClosed(const CHbDeviceMessageBoxSymbian *aMessageBox, 
hgs
parents: 32
diff changeset
   214
                CHbDeviceMessageBoxSymbian::TButtonId aButton); 
32
hgs
parents:
diff changeset
   215
hgs
parents:
diff changeset
   216
    private:
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
        /**
hgs
parents:
diff changeset
   219
        * C++ default constructor.
hgs
parents:
diff changeset
   220
        */
hgs
parents:
diff changeset
   221
        CObexUtilsDialog( MObexUtilsDialogObserver* aObserverPtr );
hgs
parents:
diff changeset
   222
	
hgs
parents:
diff changeset
   223
        /**
hgs
parents:
diff changeset
   224
        * By default Symbian OS constructor is private.
hgs
parents:
diff changeset
   225
        */
hgs
parents:
diff changeset
   226
        void ConstructL();
hgs
parents:
diff changeset
   227
42
hgs
parents: 32
diff changeset
   228
        /**
hgs
parents: 32
diff changeset
   229
         * Add a data item into the given CHbSymbianVariantMap.
hgs
parents: 32
diff changeset
   230
         * @param aMap the instance to which the data item will be added.
hgs
parents: 32
diff changeset
   231
         * @param aKey the key of the data item.
hgs
parents: 32
diff changeset
   232
         * @param aData the value of the data item
hgs
parents: 32
diff changeset
   233
         * @param aDataType the data-type of the data item
hgs
parents: 32
diff changeset
   234
         */
hgs
parents: 32
diff changeset
   235
        void AddDataL(CHbSymbianVariantMap* aMap, const TDesC& aKey, 
hgs
parents: 32
diff changeset
   236
                const TAny* aData, CHbSymbianVariant::TType aDataType);
hgs
parents: 32
diff changeset
   237
        
hgs
parents: 32
diff changeset
   238
        /**
hgs
parents: 32
diff changeset
   239
         * Creates and shows a message box.
hgs
parents: 32
diff changeset
   240
         * @param aType the type of the message box to create.
hgs
parents: 32
diff changeset
   241
         * @param aText the text to be shown in the message box
hgs
parents: 32
diff changeset
   242
         * @param aObserver the observer that receives the events from the 
hgs
parents: 32
diff changeset
   243
         *         message box
hgs
parents: 32
diff changeset
   244
         * @param aTimeout the timeout value of the message box 
hgs
parents: 32
diff changeset
   245
         */
hgs
parents: 32
diff changeset
   246
        CHbDeviceMessageBoxSymbian* CreateAndShowMessageBoxL(
hgs
parents: 32
diff changeset
   247
                CHbDeviceMessageBoxSymbian::TType aType,
hgs
parents: 32
diff changeset
   248
                const TDesC& aText, 
hgs
parents: 32
diff changeset
   249
                MHbDeviceMessageBoxObserver* aObserver,
hgs
parents: 32
diff changeset
   250
                TInt aTimeout );
hgs
parents: 32
diff changeset
   251
        
32
hgs
parents:
diff changeset
   252
    private: // Data
hgs
parents:
diff changeset
   253
42
hgs
parents: 32
diff changeset
   254
        CHbDeviceDialogSymbian *iProgressDialog;
hgs
parents: 32
diff changeset
   255
        CHbDeviceProgressDialogSymbian* iWaitDialog;
hgs
parents: 32
diff changeset
   256
        CHbDeviceMessageBoxSymbian* iMessageBox;
hgs
parents: 32
diff changeset
   257
        
32
hgs
parents:
diff changeset
   258
        CObexUtilsDialogTimer*      iObexDialogTimer;
42
hgs
parents: 32
diff changeset
   259
        TInt                        iFileIndex;
hgs
parents: 32
diff changeset
   260
        TInt                        iFileCount;
hgs
parents: 32
diff changeset
   261
        RBuf                        iDeviceName;
32
hgs
parents:
diff changeset
   262
hgs
parents:
diff changeset
   263
        // Not Owned
hgs
parents:
diff changeset
   264
        //
hgs
parents:
diff changeset
   265
        MObexUtilsProgressObserver* iProgressObserverPtr;
hgs
parents:
diff changeset
   266
        MObexUtilsDialogObserver*   iDialogObserverPtr;
hgs
parents:
diff changeset
   267
    };
hgs
parents:
diff changeset
   268
hgs
parents:
diff changeset
   269
#endif      // COBEXUTILSDIALOG_H
hgs
parents:
diff changeset
   270
            
hgs
parents:
diff changeset
   271
// End of File