00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __AKN_PROGRESS_DIALOG__
00025 #define __AKN_PROGRESS_DIALOG__
00026
00027 #include <aknnotedialog.h>
00028 #include <aknprogresstimer.h>
00029
00030 class CEikProgressInfo;
00031
00037 class MProgressDialogCallback
00038 {
00039 public:
00044 virtual void DialogDismissedL( TInt aButtonId ) = 0;
00045 };
00046
00047
00129 class CAknProgressDialog : public CAknNoteDialog
00130 {
00131 public:
00142 IMPORT_C CAknProgressDialog(TInt aFinalValue,TInt anIncrement,TInt anInterval, CEikDialog** aSelfPtr);
00143
00152 IMPORT_C CAknProgressDialog(CEikDialog** aSelfPtr);
00153
00165 IMPORT_C CAknProgressDialog(CEikDialog** aSelfPtr,TBool aVisibilityDelayOff);
00166
00170 IMPORT_C virtual ~CAknProgressDialog();
00171
00176 IMPORT_C virtual TInt RunLD();
00177
00181 IMPORT_C CEikProgressInfo* GetProgressInfoL();
00182
00186 IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
00187
00192 IMPORT_C void ProcessFinishedL();
00193
00199 IMPORT_C void SetCallback( MProgressDialogCallback* aCallback );
00200
00206 IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00207
00208 protected:
00212 enum TProgressDialogState
00213 {
00214 EProcessOnDisplayOff,
00215 EProcessOnDisplayOn,
00216 EProcessOffDisplayOff,
00217 EProcessOffDisplayOn,
00218 EProcessOffDisplayOnCanBeDismissed,
00219 EProcessOnDisplayOnCanBeDismissed
00220 };
00221
00225 IMPORT_C void PreLayoutDynInitL(void);
00226
00232 static TInt DialogTimerCallback(TAny* aPtr);
00233
00237 TInt DialogTimerEvent();
00238
00246 IMPORT_C TBool OkToExitL(TInt aButtonId);
00247
00248 private:
00252 IMPORT_C void* ExtensionInterface( TUid aInterface );
00253
00254 protected:
00256 CPeriodic* iProgressDialogTimer;
00258 TProgressDialogState iState;
00260 TTimerModel iModel;
00262 MProgressDialogCallback* iCallback;
00265 TBool iVisibilityDelayOff;
00266
00267 private:
00268
00269
00270 TBool iInternalTimerControl;
00271
00272
00273 CAknProgressTimer* iProgressTimer;
00274
00275 class CCancelWhileHidden;
00276 CCancelWhileHidden* iCancelWhileHidden;
00277
00278 TInt iSpare[3];
00279
00280 private:
00281 IMPORT_C virtual void CEikDialog_Reserved_1();
00282 IMPORT_C virtual void CEikDialog_Reserved_2();
00283 private:
00284 IMPORT_C virtual void CAknNoteDialog_Reserved();
00285 };
00286
00287 #endif