uifw/AvKon/src/AknProgressDialog.cpp
branchRCL_3
changeset 4 8ca85d2f0db7
parent 0 2f259fa3e83a
child 51 fcdfafb36fe7
equal deleted inserted replaced
0:2f259fa3e83a 4:8ca85d2f0db7
    28 #include <eikcba.h>
    28 #include <eikcba.h>
    29 #include <avkon.hrh>
    29 #include <avkon.hrh>
    30 #include "aknnoteattributes.h"
    30 #include "aknnoteattributes.h"
    31 #include <akninputblock.h>
    31 #include <akninputblock.h>
    32 
    32 
       
    33 #include "akntrace.h"
       
    34 
    33 
    35 
    34 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
    36 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
    35 #include <gfxtranseffect/gfxtranseffect.h>
    37 #include <gfxtranseffect/gfxtranseffect.h>
    36 #include <akntransitionutils.h>
    38 #include <akntransitionutils.h>
    37 #endif
    39 #endif
    99 
   101 
   100 EXPORT_C CAknProgressDialog::CAknProgressDialog(TInt aFinalValue,TInt anIncrement,
   102 EXPORT_C CAknProgressDialog::CAknProgressDialog(TInt aFinalValue,TInt anIncrement,
   101          TInt anInterval,CEikDialog** aSelfPtr) :
   103          TInt anInterval,CEikDialog** aSelfPtr) :
   102          CAknNoteDialog(aSelfPtr),iInternalTimerControl(ETrue)
   104          CAknNoteDialog(aSelfPtr),iInternalTimerControl(ETrue)
   103 	{
   105 	{
       
   106 	_AKNTRACE_FUNC_ENTER;
       
   107 	_AKNTRACE("aFinalValue = %d anIncrement = %d anInterval = %d", aFinalValue, anIncrement, anInterval); 
   104 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
   108 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
   105 	GfxTransEffect::Register( this, KGfxWaitNoteControlUid );
   109 	GfxTransEffect::Register( this, KGfxWaitNoteControlUid );
   106 #endif
   110 #endif
   107 	iModel.iFinalValue = aFinalValue;
   111 	iModel.iFinalValue = aFinalValue;
   108 	iModel.iHundreths = anInterval;
   112 	iModel.iHundreths = anInterval;
   109 	iModel.iIncrement = anIncrement;
   113 	iModel.iIncrement = anIncrement;
   110 	iModel.iRunning = EFalse;
   114 	iModel.iRunning = EFalse;
   111 	AKNTASHOOK_ADD( this, "CAknProgressDialog" );
   115 	AKNTASHOOK_ADD( this, "CAknProgressDialog" );
       
   116 	_AKNTRACE_FUNC_EXIT;
   112 	}
   117 	}
   113 
   118 
   114 EXPORT_C CAknProgressDialog::CAknProgressDialog(CEikDialog** aSelfPtr) :
   119 EXPORT_C CAknProgressDialog::CAknProgressDialog(CEikDialog** aSelfPtr) :
   115 	CAknNoteDialog(aSelfPtr),iInternalTimerControl(EFalse)
   120 	CAknNoteDialog(aSelfPtr),iInternalTimerControl(EFalse)
   116 	{
   121 	{
       
   122 	_AKNTRACE_FUNC_ENTER;
   117 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
   123 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
   118 	GfxTransEffect::Register( this, KGfxWaitNoteControlUid );
   124 	GfxTransEffect::Register( this, KGfxWaitNoteControlUid );
   119 #endif
   125 #endif
   120 	AKNTASHOOK_ADD( this, "CAknProgressDialog" );
   126 	AKNTASHOOK_ADD( this, "CAknProgressDialog" );
       
   127 	_AKNTRACE_FUNC_EXIT;
   121 	}
   128 	}
   122 
   129 
   123 EXPORT_C CAknProgressDialog::CAknProgressDialog(CEikDialog** aSelfPtr,
   130 EXPORT_C CAknProgressDialog::CAknProgressDialog(CEikDialog** aSelfPtr,
   124                                                 TBool aVisibilityDelayOff)
   131                                                 TBool aVisibilityDelayOff)
   125 :	CAknNoteDialog(aSelfPtr),
   132 :	CAknNoteDialog(aSelfPtr),
   126 	iVisibilityDelayOff( aVisibilityDelayOff ),
   133 	iVisibilityDelayOff( aVisibilityDelayOff ),
   127 	iInternalTimerControl(EFalse)
   134 	iInternalTimerControl(EFalse)
   128 	{
   135 	{
       
   136 	_AKNTRACE_FUNC_ENTER;
       
   137 	_AKNTRACE("iVisibilityDelayOff = %d ", aVisibilityDelayOff); 
   129 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
   138 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
   130 	GfxTransEffect::Register( this, KGfxWaitNoteControlUid );
   139 	GfxTransEffect::Register( this, KGfxWaitNoteControlUid );
   131 #endif
   140 #endif
   132 	AKNTASHOOK_ADD( this, "CAknProgressDialog" );
   141 	AKNTASHOOK_ADD( this, "CAknProgressDialog" );
       
   142 	_AKNTRACE_FUNC_EXIT;
   133 	}
   143 	}
   134 
   144 
   135 EXPORT_C CAknProgressDialog::~CAknProgressDialog()
   145 EXPORT_C CAknProgressDialog::~CAknProgressDialog()
   136 	{
   146 	{
       
   147 	_AKNTRACE_FUNC_ENTER;
   137 	AKNTASHOOK_REMOVE();
   148 	AKNTASHOOK_REMOVE();
   138     if ( iInternalTimerControl )
   149     if ( iInternalTimerControl )
   139         {
   150         {
   140         PlayTone();
   151         PlayTone();
   141         }
   152         }
   142     iEikonEnv->RemoveFromStack(this);
   153     iEikonEnv->RemoveFromStack(this);
   143     delete iCancelWhileHidden;
   154     delete iCancelWhileHidden;
   144     delete iProgressTimer;
   155     delete iProgressTimer;
   145 	delete iProgressDialogTimer;
   156 	delete iProgressDialogTimer;
       
   157 	_AKNTRACE_FUNC_EXIT;
   146 	}
   158 	}
   147 
   159 
   148 EXPORT_C void CAknProgressDialog::PreLayoutDynInitL()
   160 EXPORT_C void CAknProgressDialog::PreLayoutDynInitL()
   149 	{
   161 	{
   150 	//If the progress bar is to be controlled externally, it won't be updated
   162 	//If the progress bar is to be controlled externally, it won't be updated
   173 	return STATIC_CAST(CAknProgressDialog*, aPtr)->DialogTimerEvent();
   185 	return STATIC_CAST(CAknProgressDialog*, aPtr)->DialogTimerEvent();
   174 	}
   186 	}
   175 
   187 
   176 TInt CAknProgressDialog::DialogTimerEvent()
   188 TInt CAknProgressDialog::DialogTimerEvent()
   177     {
   189     {
       
   190     _AKNTRACE_FUNC_ENTER;
       
   191     _AKNTRACE("CAknProgressDialog::DialogTimerEvent iState = %d", iState);
   178     switch ( iState )
   192     switch ( iState )
   179         {
   193         {
   180         case EProcessOnDisplayOff:
   194         case EProcessOnDisplayOff:
   181 			{
   195 			{
   182 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS			
   196 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS			
   257             break;
   271             break;
   258         default:
   272         default:
   259             delete iProgressDialogTimer;
   273             delete iProgressDialogTimer;
   260             iProgressDialogTimer = NULL;
   274             iProgressDialogTimer = NULL;
   261         }
   275         }
       
   276     _AKNTRACE_FUNC_EXIT;
   262     return KErrNone;
   277     return KErrNone;
   263     }
   278     }
   264 
   279 
   265 EXPORT_C void CAknProgressDialog::ProcessFinishedL()
   280 EXPORT_C void CAknProgressDialog::ProcessFinishedL()
   266     {        
   281     {
       
   282     _AKNTRACE_FUNC_ENTER;
       
   283     _AKNTRACE("CAknProgressDialog::ProcessFinishedL iState = %d", iState);
   267         switch ( iState )
   284         switch ( iState )
   268         {
   285         {
   269         case EProcessOnDisplayOff:
   286         case EProcessOnDisplayOff:
   270         case EProcessOnDisplayOnCanBeDismissed:
   287         case EProcessOnDisplayOnCanBeDismissed:
   271             iState = EProcessOffDisplayOff;
   288             iState = EProcessOffDisplayOff;
   279             iState = EProcessOffDisplayOn;
   296             iState = EProcessOffDisplayOn;
   280             break;
   297             break;
   281 		default:
   298 		default:
   282 			break;
   299 			break;
   283         }
   300         }
       
   301 	_AKNTRACE_FUNC_EXIT;   
   284     }
   302     }
   285 
   303 
   286 EXPORT_C TInt CAknProgressDialog::RunLD()
   304 EXPORT_C TInt CAknProgressDialog::RunLD()
   287 	{
   305 	{
       
   306 	_AKNTRACE_FUNC_ENTER;
       
   307 	_AKNTRACE("RunLD iInternalTimerControl = %d iVisibilityDelayOff = %d", iInternalTimerControl, iVisibilityDelayOff);
   288     CAknNoteControl* note = NoteControl();
   308     CAknNoteControl* note = NoteControl();
   289 	note->CreateProgressBarL();
   309 	note->CreateProgressBarL();
   290 
   310 
   291 	if (iInternalTimerControl)
   311 	if (iInternalTimerControl)
   292         {
   312         {
   336                                     TTimeIntervalMicroSeconds32(KMinTimeDialogOnScreen), 
   356                                     TTimeIntervalMicroSeconds32(KMinTimeDialogOnScreen), 
   337                                     TCallBack(DialogTimerCallback, this) );
   357                                     TCallBack(DialogTimerCallback, this) );
   338         
   358         
   339         iEikonEnv->EikAppUi()->AddToStackL(this,ECoeStackPriorityDialog,ECoeStackFlagRefusesAllKeys);
   359         iEikonEnv->EikAppUi()->AddToStackL(this,ECoeStackPriorityDialog,ECoeStackFlagRefusesAllKeys);
   340         }
   360         }
   341 
   361     _AKNTRACE_FUNC_EXIT;
   342     return CAknNoteDialog::RunLD();
   362     return CAknNoteDialog::RunLD();
   343     }
   363     }
   344 
   364 
   345 EXPORT_C CEikProgressInfo* CAknProgressDialog::GetProgressInfoL()
   365 EXPORT_C CEikProgressInfo* CAknProgressDialog::GetProgressInfoL()
   346 	{
   366 	{
   386         }
   406         }
   387 	}
   407 	}
   388 
   408 
   389 EXPORT_C TBool CAknProgressDialog::OkToExitL(TInt aButtonId)
   409 EXPORT_C TBool CAknProgressDialog::OkToExitL(TInt aButtonId)
   390     {
   410     {
       
   411     _AKNTRACE_FUNC_ENTER;    
   391     // if dialog is invisible and app isn't exiting, eg during view switch,
   412     // if dialog is invisible and app isn't exiting, eg during view switch,
   392     // don't stop the progress dialog - it's most likely part of some
   413     // don't stop the progress dialog - it's most likely part of some
   393     // asynchronous operation.
   414     // asynchronous operation.
   394     if ((iState == EProcessOnDisplayOff && !CAknEnv::AppWithShutterRunning()) || 
   415     if ((iState == EProcessOnDisplayOff && !CAknEnv::AppWithShutterRunning()) || 
   395     	aButtonId == EAknSoftkeyEmpty )
   416     	aButtonId == EAknSoftkeyEmpty )
   396         {
   417         {
       
   418         _AKNTRACE("CAknProgressDialog::OkToExitL return for EProcessOnDisplayOff");
   397 		delete iCancelWhileHidden;
   419 		delete iCancelWhileHidden;
   398 		iCancelWhileHidden = NULL;
   420 		iCancelWhileHidden = NULL;
   399         return EFalse;
   421         return EFalse;
   400         }
   422         }
   401     if ( iCallback )
   423     if ( iCallback )
   402         {
   424         {
       
   425         _AKNTRACE("CAknProgressDialog::OkToExitL succeed to execut DialogDismissedL");   
   403         iCallback->DialogDismissedL(aButtonId);
   426         iCallback->DialogDismissedL(aButtonId);
   404         }
   427         }
       
   428     _AKNTRACE_FUNC_EXIT;
   405     return ETrue;
   429     return ETrue;
   406     }
   430     }
   407         
   431         
   408 //-------------------------------------------------------------------------------------
   432 //-------------------------------------------------------------------------------------
   409 // CAknProgressDialog::HandlePointerEventL()
   433 // CAknProgressDialog::HandlePointerEventL()