67 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS |
67 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS |
68 #include <akntranseffect.h> |
68 #include <akntranseffect.h> |
69 #endif |
69 #endif |
70 #include <AknQueryDialog.h> |
70 #include <AknQueryDialog.h> |
71 #include <aknQueryControl.h> |
71 #include <aknQueryControl.h> |
|
72 #include <aknitemactionmenuregister.h> |
72 |
73 |
73 #include "akncbacontentobserver.h" |
74 #include "akncbacontentobserver.h" |
|
75 #include "akntrace.h" |
74 |
76 |
75 TBool IsBlankScreenDisplayed(); |
77 TBool IsBlankScreenDisplayed(); |
76 |
78 |
77 |
79 |
78 // ----------------------------------------------------------------------------- |
80 // ----------------------------------------------------------------------------- |
118 // @return ETrue if the window group is in focus, otherwise EFalse |
120 // @return ETrue if the window group is in focus, otherwise EFalse |
119 // ----------------------------------------------------------------------------- |
121 // ----------------------------------------------------------------------------- |
120 // |
122 // |
121 TBool IsFocusedWindowGroup( CEikDialog* aThis ) |
123 TBool IsFocusedWindowGroup( CEikDialog* aThis ) |
122 { |
124 { |
|
125 _AKNTRACE_FUNC_ENTER; |
123 RWindowTreeNode* node = aThis->DrawableWindow(); |
126 RWindowTreeNode* node = aThis->DrawableWindow(); |
124 // this code finds out if this control belongs to window group |
127 // this code finds out if this control belongs to window group |
125 // that is in focus, there are some rare cases when the latest opened |
128 // that is in focus, there are some rare cases when the latest opened |
126 // popup goes behind another one (e.g. system lock query -> power key menu) |
129 // popup goes behind another one (e.g. system lock query -> power key menu) |
127 // we don't want transition in that case |
130 // we don't want transition in that case |
207 |
214 |
208 #endif |
215 #endif |
209 |
216 |
210 EXPORT_C CEikDialog::CEikDialog() |
217 EXPORT_C CEikDialog::CEikDialog() |
211 { |
218 { |
|
219 _AKNTRACE_FUNC_ENTER; |
212 // __DECLARE_NAME(_S("CEikDialog")); |
220 // __DECLARE_NAME(_S("CEikDialog")); |
213 // No border in Avkon |
221 // No border in Avkon |
214 iBorder=TGulBorder(TGulBorder::ENone); |
222 iBorder=TGulBorder(TGulBorder::ENone); |
215 SetMopParent(iEikonEnv->EikAppUi()); |
223 SetMopParent(iEikonEnv->EikAppUi()); |
216 #if defined (__DEBUG__) |
224 #if defined (__DEBUG__) |
219 #endif |
227 #endif |
220 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS |
228 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS |
221 GfxTransEffect::Register(this,KGfxPopupDefaultControlUid); |
229 GfxTransEffect::Register(this,KGfxPopupDefaultControlUid); |
222 #endif |
230 #endif |
223 AKNTASHOOK_ADD( this, "CEikDialog" ); |
231 AKNTASHOOK_ADD( this, "CEikDialog" ); |
|
232 _AKNTRACE_FUNC_EXIT; |
224 } |
233 } |
225 |
234 |
226 EXPORT_C CEikDialog::~CEikDialog() |
235 EXPORT_C CEikDialog::~CEikDialog() |
227 { |
236 { |
|
237 _AKNTRACE_FUNC_ENTER; |
228 AKNTASHOOK_REMOVE(); |
238 AKNTASHOOK_REMOVE(); |
|
239 |
|
240 AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( NULL ); |
229 |
241 |
230 EnableContentObserver( EFalse ); |
242 EnableContentObserver( EFalse ); |
231 |
243 |
232 if ( GfxTransEffect::IsRegistered( this ) ) |
244 if ( GfxTransEffect::IsRegistered( this ) ) |
233 { |
245 { |
251 delete iPageSelector; |
263 delete iPageSelector; |
252 delete iButtonGroupContainer; |
264 delete iButtonGroupContainer; |
253 delete iExtension ; |
265 delete iExtension ; |
254 iExtension = NULL; |
266 iExtension = NULL; |
255 StopWaitingAsRequired(); |
267 StopWaitingAsRequired(); |
|
268 _AKNTRACE_FUNC_EXIT; |
256 } |
269 } |
257 |
270 |
258 void CEikDialog::DynamicConstructL() |
271 void CEikDialog::DynamicConstructL() |
259 { |
272 { |
|
273 _AKNTRACE_FUNC_ENTER; |
260 PreLayoutDynInitL(); |
274 PreLayoutDynInitL(); |
261 |
275 |
262 if ( iPageSelector && iPageSelector->IsForm() && Extension() ) |
276 if ( iPageSelector && iPageSelector->IsForm() && Extension() ) |
263 { |
277 { |
264 Extension()->iPublicFlags.Set( CEikDialogExtension::EFullyConstructed ); |
278 Extension()->iPublicFlags.Set( CEikDialogExtension::EFullyConstructed ); |
277 * of the stack in RunLD, the purpose is to be able to display note dialogs in OOM |
292 * of the stack in RunLD, the purpose is to be able to display note dialogs in OOM |
278 * situations. |
293 * situations. |
279 */ |
294 */ |
280 EXPORT_C void CEikDialog::PrepareLC(TInt aResourceId) |
295 EXPORT_C void CEikDialog::PrepareLC(TInt aResourceId) |
281 { |
296 { |
|
297 _AKNTRACE_FUNC_ENTER; |
282 CleanupStack::PushL(this); |
298 CleanupStack::PushL(this); |
283 BaseConstructL(); |
299 BaseConstructL(); |
284 StaticConstructL(aResourceId); |
300 StaticConstructL(aResourceId); |
285 |
301 |
286 if (!(iDialogFlags&EEikDialogFlagModeless)) |
302 if (!(iDialogFlags&EEikDialogFlagModeless)) |
287 { |
303 { |
288 AknGlobalPopupPriorityController::AddPopupToControlStackL(*this,ECoeStackPriorityDialog,ECoeStackFlagRefusesAllKeys); |
304 AknGlobalPopupPriorityController::AddPopupToControlStackL(*this,ECoeStackPriorityDialog,ECoeStackFlagRefusesAllKeys); |
289 } |
305 } |
|
306 _AKNTRACE_FUNC_EXIT; |
290 } |
307 } |
291 |
308 |
292 /** |
309 /** |
293 * Reads the dialog resources into the dialog, constructing it from the specified resource. |
310 * Reads the dialog resources into the dialog, constructing it from the specified resource. |
294 * The function is only to help loading dialog resources and |
311 * The function is only to help loading dialog resources and |
308 * it. The dialog is constructed from the resource with id aResourceId and is destroyed |
325 * it. The dialog is constructed from the resource with id aResourceId and is destroyed |
309 * on exit. |
326 * on exit. |
310 */ |
327 */ |
311 EXPORT_C TInt CEikDialog::ExecuteLD(TInt aResourceId) |
328 EXPORT_C TInt CEikDialog::ExecuteLD(TInt aResourceId) |
312 { |
329 { |
|
330 _AKNTRACE_FUNC_ENTER; |
313 PrepareLC(aResourceId); |
331 PrepareLC(aResourceId); |
|
332 _AKNTRACE_FUNC_EXIT; |
314 return(RunLD()); |
333 return(RunLD()); |
315 } |
334 } |
316 |
335 |
317 void CEikDialog::BaseConstructL() |
336 void CEikDialog::BaseConstructL() |
318 { |
337 { |
|
338 _AKNTRACE_FUNC_ENTER; |
319 CreateWindowL(); |
339 CreateWindowL(); |
320 Window().SetBackgroundColor(iEikonEnv->ControlColor(EColorDialogBackground,*this)); |
340 Window().SetBackgroundColor(iEikonEnv->ControlColor(EColorDialogBackground,*this)); |
321 EnableDragEvents(); |
341 EnableDragEvents(); |
322 Window().SetPointerGrab(ETrue); |
342 Window().SetPointerGrab(ETrue); |
323 iContext=this; |
343 iContext=this; |
326 iButtonCommandObserver=CEikDialogButtonCommandObserver::NewL(*this); |
346 iButtonCommandObserver=CEikDialogButtonCommandObserver::NewL(*this); |
327 if (!iExtension) |
347 if (!iExtension) |
328 { |
348 { |
329 iExtension = CEikDialogExtension::NewL( *this ) ; |
349 iExtension = CEikDialogExtension::NewL( *this ) ; |
330 } |
350 } |
|
351 _AKNTRACE_FUNC_EXIT; |
331 } |
352 } |
332 |
353 |
333 void CEikDialog::StaticConstructL(TInt aResourceId) |
354 void CEikDialog::StaticConstructL(TInt aResourceId) |
334 { |
355 { |
|
356 _AKNTRACE_FUNC_ENTER; |
|
357 AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this ); |
|
358 |
335 TResourceReader reader; |
359 TResourceReader reader; |
336 iCoeEnv->CreateResourceReaderLC(reader,aResourceId); |
360 iCoeEnv->CreateResourceReaderLC(reader,aResourceId); |
337 ConstructFromResourceL(reader); |
361 ConstructFromResourceL(reader); |
338 CleanupStack::PopAndDestroy(); |
362 CleanupStack::PopAndDestroy(); |
339 |
363 |
377 void CEikDialog::CommonConstructSleepingDialogL(TInt aResourceId) |
402 void CEikDialog::CommonConstructSleepingDialogL(TInt aResourceId) |
378 // |
403 // |
379 // code common to both ConstructSleepingDialogL & ConstructSleepingAlertDialogL |
404 // code common to both ConstructSleepingDialogL & ConstructSleepingAlertDialogL |
380 // |
405 // |
381 { |
406 { |
|
407 _AKNTRACE_FUNC_ENTER; |
382 iDialogFlags|=EEikDialogFlagSleeping; |
408 iDialogFlags|=EEikDialogFlagSleeping; |
383 BaseConstructL(); |
409 BaseConstructL(); |
384 StaticConstructL(aResourceId); |
410 StaticConstructL(aResourceId); |
385 MakeVisible(EFalse); |
411 MakeVisible(EFalse); |
386 if (iButtonGroupContainer) |
412 if (iButtonGroupContainer) |
387 { |
413 { |
388 // non visible CBA's do not recieve keys |
414 // non visible CBA's do not recieve keys |
389 iButtonGroupContainer->MakeVisible(EFalse); |
415 iButtonGroupContainer->MakeVisible(EFalse); |
390 } |
416 } |
|
417 _AKNTRACE_FUNC_EXIT; |
391 } |
418 } |
392 |
419 |
393 TInt CEikDialog::WaitAsRequired() |
420 TInt CEikDialog::WaitAsRequired() |
394 { |
421 { |
|
422 _AKNTRACE_FUNC_ENTER; |
395 TInt exitConfirmed=0; |
423 TInt exitConfirmed=0; |
396 #if defined (__DEBUG__) |
424 #if defined (__DEBUG__) |
397 RDebug::ProfileEnd(PROFILE_POINT_EIKON_DIALOG_LOAD); |
425 RDebug::ProfileEnd(PROFILE_POINT_EIKON_DIALOG_LOAD); |
398 TProfile profile; |
426 TProfile profile; |
399 RDebug::ProfileResult(&profile,PROFILE_POINT_EIKON_DIALOG_LOAD,1); |
427 RDebug::ProfileResult(&profile,PROFILE_POINT_EIKON_DIALOG_LOAD,1); |
421 * Rouses a sleeping dialog by dynamically constructing it and then |
449 * Rouses a sleeping dialog by dynamically constructing it and then |
422 * bringing it to the front. |
450 * bringing it to the front. |
423 */ |
451 */ |
424 EXPORT_C TInt CEikDialog::RouseSleepingDialog() |
452 EXPORT_C TInt CEikDialog::RouseSleepingDialog() |
425 { // none of following ...L calls to Leave |
453 { // none of following ...L calls to Leave |
|
454 _AKNTRACE_FUNC_ENTER; |
426 if (IsVisible()) |
455 if (IsVisible()) |
427 ExitSleepingDialog(); // eg for rousing an already roused Alert dialog |
456 ExitSleepingDialog(); // eg for rousing an already roused Alert dialog |
428 |
457 |
429 |
458 |
430 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS |
459 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS |
539 static_cast<CEikCba*>(cba)->SetSkinBackgroundId( KAknsIIDQsnBgAreaControlPopup ); |
568 static_cast<CEikCba*>(cba)->SetSkinBackgroundId( KAknsIIDQsnBgAreaControlPopup ); |
540 cba->MakeVisible(ETrue); |
569 cba->MakeVisible(ETrue); |
541 cba->DrawNow(); |
570 cba->DrawNow(); |
542 } |
571 } |
543 } |
572 } |
544 |
573 _AKNTRACE_FUNC_EXIT; |
545 return(WaitAsRequired()); |
574 return(WaitAsRequired()); |
546 } |
575 } |
547 |
576 |
548 /** |
577 /** |
549 * Exits a sleeping dialog without deleteing it. |
578 * Exits a sleeping dialog without deleteing it. |
550 */ |
579 */ |
551 EXPORT_C void CEikDialog::ExitSleepingDialog() |
580 EXPORT_C void CEikDialog::ExitSleepingDialog() |
552 { |
581 { |
|
582 _AKNTRACE_FUNC_ENTER; |
553 FadeBehindPopup(EFalse); |
583 FadeBehindPopup(EFalse); |
554 |
584 |
555 EnableContentObserver( EFalse ); |
585 EnableContentObserver( EFalse ); |
556 |
586 |
557 if(GfxTransEffect::IsRegistered(this) && IsVisible() |
587 if(GfxTransEffect::IsRegistered(this) && IsVisible() |
636 /** |
667 /** |
637 * Constructs the dialog from resources using the resource reader aReader. |
668 * Constructs the dialog from resources using the resource reader aReader. |
638 */ |
669 */ |
639 EXPORT_C void CEikDialog::ConstructFromResourceL(TResourceReader& aReader) |
670 EXPORT_C void CEikDialog::ConstructFromResourceL(TResourceReader& aReader) |
640 { |
671 { |
|
672 _AKNTRACE_FUNC_ENTER; |
641 iDialogFlags |=aReader.ReadInt32(); |
673 iDialogFlags |=aReader.ReadInt32(); |
642 |
674 |
643 #ifdef RD_SCALABLE_UI_V2 |
675 #ifdef RD_SCALABLE_UI_V2 |
644 if ( AknLayoutUtils::PenEnabled() ) |
676 if ( AknLayoutUtils::PenEnabled() ) |
645 { |
677 { |
684 } |
717 } |
685 } |
718 } |
686 |
719 |
687 void CEikDialog::CreatePageSelectorL() |
720 void CEikDialog::CreatePageSelectorL() |
688 { |
721 { |
|
722 _AKNTRACE_FUNC_ENTER; |
689 iPageSelector=CEikDialogPageSelector::NewL(*this,this); |
723 iPageSelector=CEikDialogPageSelector::NewL(*this,this); |
690 iPageSelector->SetObserver(this); |
724 iPageSelector->SetObserver(this); |
691 RegisterDialgWithPageSelector(); // Added JIn |
725 RegisterDialgWithPageSelector(); // Added JIn |
|
726 _AKNTRACE_FUNC_EXIT; |
692 } |
727 } |
693 |
728 |
694 void CEikDialog::CreatePageSelectorL(TInt aResourceId) |
729 void CEikDialog::CreatePageSelectorL(TInt aResourceId) |
695 { |
730 { |
|
731 _AKNTRACE_FUNC_ENTER; |
696 if (aResourceId) |
732 if (aResourceId) |
697 { |
733 { |
698 TResourceReader reader; |
734 TResourceReader reader; |
699 iCoeEnv->CreateResourceReaderLC(reader,aResourceId); |
735 iCoeEnv->CreateResourceReaderLC(reader,aResourceId); |
700 iPageSelector=CEikDialogPageSelector::NewL(*this,reader,this); |
736 iPageSelector=CEikDialogPageSelector::NewL(*this,reader,this); |
702 CleanupStack::PopAndDestroy(); |
738 CleanupStack::PopAndDestroy(); |
703 if (iDialogFlags&EEikDialogFlagDensePacking) |
739 if (iDialogFlags&EEikDialogFlagDensePacking) |
704 iPageSelector->SetAllPagesDensePacked(ETrue); |
740 iPageSelector->SetAllPagesDensePacked(ETrue); |
705 RegisterDialgWithPageSelector(); // Added JIn |
741 RegisterDialgWithPageSelector(); // Added JIn |
706 } |
742 } |
|
743 _AKNTRACE_FUNC_EXIT; |
707 } |
744 } |
708 |
745 |
709 void CEikDialog::CreateButtonGroupContainerL(TInt aResourceId) |
746 void CEikDialog::CreateButtonGroupContainerL(TInt aResourceId) |
710 { |
747 { |
711 // Avkon simplification: Always use CBA; always set buttons |
748 // Avkon simplification: Always use CBA; always set buttons |
712 // Flags: |
749 // Flags: |
713 // buttons are keen on drawing even if not actually visible yet, |
750 // buttons are keen on drawing even if not actually visible yet, |
714 // don't activate them in case of sleeping dialog |
751 // don't activate them in case of sleeping dialog |
715 // yet so extra drawings are suppressed until dialog is really |
752 // yet so extra drawings are suppressed until dialog is really |
716 // roused to screen |
753 // roused to screen |
717 |
754 _AKNTRACE_FUNC_ENTER; |
718 TUint flags = ( iDialogFlags & EEikDialogFlagSleeping ) ? |
755 TUint flags = ( iDialogFlags & EEikDialogFlagSleeping ) ? |
719 ( CEikButtonGroupContainer::EAddToStack | |
756 ( CEikButtonGroupContainer::EAddToStack | |
720 CEikButtonGroupContainer::EDelayActivation ) : |
757 CEikButtonGroupContainer::EDelayActivation ) : |
721 CEikButtonGroupContainer::EAddToStack; |
758 CEikButtonGroupContainer::EAddToStack; |
722 |
759 |
737 |
774 |
738 EnableContentObserver( ETrue ); |
775 EnableContentObserver( ETrue ); |
739 |
776 |
740 AknGlobalPopupPriorityController::AddSubPopupL(*this, *iButtonGroupContainer->ButtonGroup()->AsControl()); |
777 AknGlobalPopupPriorityController::AddSubPopupL(*this, *iButtonGroupContainer->ButtonGroup()->AsControl()); |
741 AknGlobalPopupPriorityController::AddPopupToControlStackL(*iButtonGroupContainer->ButtonGroup()->AsControl(), ECoeStackPriorityCba, ECoeStackFlagRefusesFocus); |
778 AknGlobalPopupPriorityController::AddPopupToControlStackL(*iButtonGroupContainer->ButtonGroup()->AsControl(), ECoeStackPriorityCba, ECoeStackFlagRefusesFocus); |
|
779 _AKNTRACE_FUNC_EXIT; |
742 } |
780 } |
743 |
781 |
744 void CEikDialog::CreateTitleBarL() |
782 void CEikDialog::CreateTitleBarL() |
745 { |
783 { |
746 iTitleBar=new(ELeave) CEikMover; |
784 iTitleBar=new(ELeave) CEikMover; |
768 * The parameter is ignored if the FlagFillAppClientRect is set. |
806 * The parameter is ignored if the FlagFillAppClientRect is set. |
769 * Otherwise it it centred and given the size asked for |
807 * Otherwise it it centred and given the size asked for |
770 */ |
808 */ |
771 EXPORT_C void CEikDialog::SetSizeAndPosition(const TSize& aSize) |
809 EXPORT_C void CEikDialog::SetSizeAndPosition(const TSize& aSize) |
772 { |
810 { |
|
811 _AKNTRACE_FUNC_ENTER; |
773 if (iDialogFlags&EEikDialogFlagFillAppClientRect) |
812 if (iDialogFlags&EEikDialogFlagFillAppClientRect) |
774 { |
813 { |
775 // if this is a view app then ask client rect from the currently active view |
814 // if this is a view app then ask client rect from the currently active view |
776 TVwsViewId uid; |
815 TVwsViewId uid; |
777 if ( iAvkonAppUi->GetActiveViewId( uid ) == KErrNone ) |
816 if ( iAvkonAppUi->GetActiveViewId( uid ) == KErrNone ) |
819 /** |
859 /** |
820 * Returns the minimum size of the area that the contents of the dialog should occupy. |
860 * Returns the minimum size of the area that the contents of the dialog should occupy. |
821 */ |
861 */ |
822 EXPORT_C TSize CEikDialog::MinimumSize() |
862 EXPORT_C TSize CEikDialog::MinimumSize() |
823 { |
863 { |
|
864 _AKNTRACE_FUNC_ENTER; |
824 if (iDialogFlags&EEikDialogFlagFillScreen) |
865 if (iDialogFlags&EEikDialogFlagFillScreen) |
825 { |
866 { |
826 TAknWindowLineLayout windowLineLayoutScreen = AknLayoutScalable_Avkon::Screen().LayoutLine(); |
867 TAknWindowLineLayout windowLineLayoutScreen = AknLayoutScalable_Avkon::Screen().LayoutLine(); |
827 TRect rectZero = TRect(0,0,0,0); |
868 TRect rectZero = TRect(0,0,0,0); |
828 TAknLayoutRect layoutRect; |
869 TAknLayoutRect layoutRect; |
959 * For Avkon, the DPSEL always stays the same size as the CEikDialog minus an optional title |
1000 * For Avkon, the DPSEL always stays the same size as the CEikDialog minus an optional title |
960 * bar. |
1001 * bar. |
961 */ |
1002 */ |
962 EXPORT_C void CEikDialog::SizeChanged() |
1003 EXPORT_C void CEikDialog::SizeChanged() |
963 { |
1004 { |
|
1005 _AKNTRACE_FUNC_ENTER; |
964 __ASSERT_DEBUG( iButtonGroupContainer->Location() == CEikButtonGroupContainer::EExternal, |
1006 __ASSERT_DEBUG( iButtonGroupContainer->Location() == CEikButtonGroupContainer::EExternal, |
965 Panic( EEikDialogPanicIllegalOption ) ); |
1007 Panic( EEikDialogPanicIllegalOption ) ); |
966 |
1008 |
967 TInt excludeCbaHeight = -1; |
1009 TInt excludeCbaHeight = -1; |
968 |
1010 |
1045 currentPage->SetFormFlag( CEikDialogPage::EFormResizeOptimisationFlag, EFalse ) ; |
1087 currentPage->SetFormFlag( CEikDialogPage::EFormResizeOptimisationFlag, EFalse ) ; |
1046 |
1088 |
1047 // <SKIN> |
1089 // <SKIN> |
1048 iExtension->iBgContext->SetParentPos( PositionRelativeToScreen() ) ; |
1090 iExtension->iBgContext->SetParentPos( PositionRelativeToScreen() ) ; |
1049 iExtension->iBgContext->SetRect( Rect() ) ; |
1091 iExtension->iBgContext->SetRect( Rect() ) ; |
|
1092 _AKNTRACE_FUNC_EXIT; |
1050 } |
1093 } |
1051 |
1094 |
1052 /** |
1095 /** |
1053 * Sets the title text for the dialog to aText. |
1096 * Sets the title text for the dialog to aText. |
1054 */ |
1097 */ |
1097 * Makes the dialog line containing the control identified by aControlId visible, i.e. sets it |
1140 * Makes the dialog line containing the control identified by aControlId visible, i.e. sets it |
1098 * to draw itself, if aVisible is ETrue. |
1141 * to draw itself, if aVisible is ETrue. |
1099 */ |
1142 */ |
1100 EXPORT_C void CEikDialog::MakeLineVisible(TInt aControlId,TBool aVisible) |
1143 EXPORT_C void CEikDialog::MakeLineVisible(TInt aControlId,TBool aVisible) |
1101 { |
1144 { |
|
1145 _AKNTRACE_FUNC_ENTER; |
1102 CEikCaptionedControl* line=Line(aControlId); |
1146 CEikCaptionedControl* line=Line(aControlId); |
1103 CCoeControl* control=line->iControl; |
1147 CCoeControl* control=line->iControl; |
1104 if (control->IsVisible()==aVisible) |
1148 if (control->IsVisible()==aVisible) |
1105 return; |
1149 return; |
1106 control->MakeVisible(aVisible); |
1150 control->MakeVisible(aVisible); |
1107 line->CheckDimmedDisplayState(); |
1151 line->CheckDimmedDisplayState(); |
|
1152 _AKNTRACE_FUNC_EXIT; |
1108 } |
1153 } |
1109 |
1154 |
1110 /** |
1155 /** |
1111 * Makes the whole dialog line containing the control identified by aControlId visible, i.e. sets it |
1156 * Makes the whole dialog line containing the control identified by aControlId visible, i.e. sets it |
1112 * to draw itself, if aVisible is ETrue. |
1157 * to draw itself, if aVisible is ETrue. |
1113 */ |
1158 */ |
1114 EXPORT_C void CEikDialog::MakeWholeLineVisible(TInt aControlId,TBool aVisible) |
1159 EXPORT_C void CEikDialog::MakeWholeLineVisible(TInt aControlId,TBool aVisible) |
1115 { |
1160 { |
|
1161 _AKNTRACE_FUNC_ENTER; |
1116 CEikCaptionedControl* line=Line(aControlId); |
1162 CEikCaptionedControl* line=Line(aControlId); |
1117 if (line->IsVisible()==aVisible) |
1163 if (line->IsVisible()==aVisible) |
1118 return; |
1164 return; |
1119 CCoeControl* control=line->iControl; |
1165 CCoeControl* control=line->iControl; |
1120 if (line->iCaption) |
1166 if (line->iCaption) |
1121 line->iCaption->MakeVisible(aVisible); |
1167 line->iCaption->MakeVisible(aVisible); |
1122 if (line->iTrailer) |
1168 if (line->iTrailer) |
1123 line->iTrailer->MakeVisible(aVisible); |
1169 line->iTrailer->MakeVisible(aVisible); |
1124 control->MakeVisible(aVisible); |
1170 control->MakeVisible(aVisible); |
1125 line->MakeVisible(aVisible); |
1171 line->MakeVisible(aVisible); |
|
1172 _AKNTRACE_FUNC_EXIT; |
1126 } |
1173 } |
1127 |
1174 |
1128 /** |
1175 /** |
1129 * Lays out the dialog, setting it to take its preferred size and position |
1176 * Lays out the dialog, setting it to take its preferred size and position |
1130 * for the screen. |
1177 * for the screen. |
1377 * |
1424 * |
1378 * @since ER5U |
1425 * @since ER5U |
1379 */ |
1426 */ |
1380 EXPORT_C void CEikDialog::SetEditableL( TBool aEditable ) |
1427 EXPORT_C void CEikDialog::SetEditableL( TBool aEditable ) |
1381 { |
1428 { |
|
1429 _AKNTRACE_FUNC_ENTER; |
|
1430 _AKNTRACE( "CEikDialog::SetEditableL() aEditable: [%d]", aEditable ); |
1382 if ( !iExtension->iFlags[CEikDialogExtension::EEditableStateInitialised] || |
1431 if ( !iExtension->iFlags[CEikDialogExtension::EEditableStateInitialised] || |
1383 iIsEditable != aEditable ) |
1432 iIsEditable != aEditable ) |
1384 { |
1433 { |
1385 iExtension->iFlags.Set(CEikDialogExtension::EEditableStateInitialised); |
1434 iExtension->iFlags.Set(CEikDialogExtension::EEditableStateInitialised); |
1386 iIsEditable = aEditable ; |
1435 iIsEditable = aEditable ; |
1387 // tell each of the pages on the dialog about the editable state... |
1436 // tell each of the pages on the dialog about the editable state... |
1388 iPageSelector->SetEditableL( aEditable ); |
1437 iPageSelector->SetEditableL( aEditable ); |
1389 DrawNow(); |
1438 DrawNow(); |
1390 } |
1439 } |
|
1440 _AKNTRACE_FUNC_EXIT; |
1391 } |
1441 } |
1392 |
1442 |
1393 /** |
1443 /** |
1394 * Returns the Editable state. This exists to support forms |
1444 * Returns the Editable state. This exists to support forms |
1395 * |
1445 * |
1396 * @since ER5U |
1446 * @since ER5U |
1397 */ |
1447 */ |
1398 EXPORT_C TBool CEikDialog::IsEditable() const |
1448 EXPORT_C TBool CEikDialog::IsEditable() const |
1399 { |
1449 { |
|
1450 _AKNTRACE( "CEikDialog::IsEditable(): [%d]", iIsEditable );; |
1400 return ( iIsEditable ) ; |
1451 return ( iIsEditable ) ; |
1401 } |
1452 } |
1402 |
1453 |
1403 /** |
1454 /** |
1404 * Returns the line index of the control aControl or KErrNotFound if the control |
1455 * Returns the line index of the control aControl or KErrNotFound if the control |
1450 * Runs the dialog and returns the id of the button used to dismiss it. |
1501 * Runs the dialog and returns the id of the button used to dismiss it. |
1451 * The dialog is destroyed on exit. |
1502 * The dialog is destroyed on exit. |
1452 */ |
1503 */ |
1453 EXPORT_C TInt CEikDialog::RunLD() |
1504 EXPORT_C TInt CEikDialog::RunLD() |
1454 { |
1505 { |
|
1506 _AKNTRACE_FUNC_ENTER; |
1455 // Moved BringForwards in the beginning to enable 1-frame animations. |
1507 // Moved BringForwards in the beginning to enable 1-frame animations. |
1456 iEikonEnv->BringForwards(ETrue); // before call to EnableBackup() |
1508 iEikonEnv->BringForwards(ETrue); // before call to EnableBackup() |
1457 AknGlobalPopupPriorityController::ShowPopup(*this, ETrue); |
1509 AknGlobalPopupPriorityController::ShowPopup(*this, ETrue); |
1458 iDialogFlags|=EEikDialogFlagBroughtForward; |
1510 iDialogFlags|=EEikDialogFlagBroughtForward; |
1459 |
1511 |
1571 } |
1623 } |
1572 |
1624 |
1573 // Claim pointer grab and send the pointer up event to the |
1625 // Claim pointer grab and send the pointer up event to the |
1574 // control that otherwise would be receiving the drag events. |
1626 // control that otherwise would be receiving the drag events. |
1575 Window().ClaimPointerGrab(ETrue); |
1627 Window().ClaimPointerGrab(ETrue); |
1576 |
1628 _AKNTRACE_FUNC_EXIT; |
1577 return(WaitAsRequired()); |
1629 return(WaitAsRequired()); |
1578 } |
1630 } |
1579 |
1631 |
1580 |
1632 |
1581 EXPORT_C void CEikDialog::Draw(const TRect& /*aRect*/) const |
1633 EXPORT_C void CEikDialog::Draw(const TRect& /*aRect*/) const |
1582 { |
1634 { |
|
1635 _AKNTRACE_FUNC_ENTER; |
1583 TRect rect=Rect(); |
1636 TRect rect=Rect(); |
1584 CWindowGc& gc=SystemGc(); //No reason to demote the gc, CWindowGc is more usable. |
1637 CWindowGc& gc=SystemGc(); //No reason to demote the gc, CWindowGc is more usable. |
1585 |
1638 |
1586 if ( iExtension->LayoutCategory() == CEikDialogExtension::EPopupLayout ) |
1639 if ( iExtension->LayoutCategory() == CEikDialogExtension::EPopupLayout ) |
1587 { |
1640 { |
1665 { |
1718 { |
1666 AknsDrawUtils::DrawFrame( skin, gc, outerRect, innerRect, |
1719 AknsDrawUtils::DrawFrame( skin, gc, outerRect, innerRect, |
1667 KAknsIIDQsnFrPopup,KAknsIIDQsnFrPopupCenter); |
1720 KAknsIIDQsnFrPopup,KAknsIIDQsnFrPopupCenter); |
1668 } |
1721 } |
1669 } |
1722 } |
|
1723 _AKNTRACE_FUNC_EXIT; |
1670 } |
1724 } |
1671 |
1725 |
1672 EXPORT_C void CEikDialog::HandlePointerEventL(const TPointerEvent& aPointerEvent) |
1726 EXPORT_C void CEikDialog::HandlePointerEventL(const TPointerEvent& aPointerEvent) |
1673 { |
1727 { |
1674 CEikBorderedControl::HandlePointerEventL(aPointerEvent); |
1728 CEikBorderedControl::HandlePointerEventL(aPointerEvent); |
1703 CCoeControl* button = buttonGroupContainer.ControlOrNull(buttonId); |
1758 CCoeControl* button = buttonGroupContainer.ControlOrNull(buttonId); |
1704 |
1759 |
1705 if (button) |
1760 if (button) |
1706 { |
1761 { |
1707 if (button->IsDimmed() || !button->IsVisible()) |
1762 if (button->IsDimmed() || !button->IsVisible()) |
1708 return EKeyWasNotConsumed; |
1763 { |
|
1764 _AKNTRACE_FUNC_EXIT; |
|
1765 return EKeyWasNotConsumed; |
|
1766 } |
1709 buttonGroupContainer.AnimateCommand(buttonId); |
1767 buttonGroupContainer.AnimateCommand(buttonId); |
1710 } |
1768 } |
1711 |
1769 |
1712 if (button || buttonId==EEikBidCancel || buttonId==EEikBidOk) |
1770 if (button || buttonId==EEikBidCancel || buttonId==EEikBidOk) |
1713 { |
1771 { |
1714 TryExitL(buttonId); |
1772 TryExitL(buttonId); |
|
1773 _AKNTRACE_FUNC_EXIT; |
1715 return EKeyWasConsumed; |
1774 return EKeyWasConsumed; |
1716 } |
1775 } |
1717 |
1776 _AKNTRACE_FUNC_EXIT; |
1718 return EKeyWasNotConsumed; |
1777 return EKeyWasNotConsumed; |
1719 } |
1778 } |
1720 |
1779 |
1721 /** |
1780 /** |
1722 * Prepares for a transistion in focus in the dialog. By default, calls the currently |
1781 * Prepares for a transistion in focus in the dialog. By default, calls the currently |
1733 * Handles the key event aKeyEvent with code aType. Returns EKeyWasConsumed if the control |
1792 * Handles the key event aKeyEvent with code aType. Returns EKeyWasConsumed if the control |
1734 * takes action on the key event or EKeyWasNotConsumed otherwise. |
1793 * takes action on the key event or EKeyWasNotConsumed otherwise. |
1735 */ |
1794 */ |
1736 EXPORT_C TKeyResponse CEikDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) |
1795 EXPORT_C TKeyResponse CEikDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) |
1737 { |
1796 { |
1738 |
1797 _AKNTRACE_FUNC_ENTER; |
1739 |
1798 |
1740 // Hide the tool tip (if there is one!) |
1799 // Hide the tool tip (if there is one!) |
1741 if ( ( iPageSelector->NumPages() == 1 ) && ( CurrentLine() ) && ( CurrentLine()->ToolTipText( ) ) ) |
1800 if ( ( iPageSelector->NumPages() == 1 ) && ( CurrentLine() ) && ( CurrentLine()->ToolTipText( ) ) ) |
1742 { |
1801 { |
1743 switch ( aKeyEvent.iScanCode ) |
1802 switch ( aKeyEvent.iScanCode ) |
1748 } |
1807 } |
1749 } |
1808 } |
1750 if (!(iDialogFlags&EEikDialogFlagDontEatUpDownEvents) && aKeyEvent.iScanCode != EStdKeyYes) |
1809 if (!(iDialogFlags&EEikDialogFlagDontEatUpDownEvents) && aKeyEvent.iScanCode != EStdKeyYes) |
1751 { |
1810 { |
1752 if (aType!=EEventKey) |
1811 if (aType!=EEventKey) |
1753 return(EKeyWasConsumed); |
1812 { |
|
1813 _AKNTRACE_FUNC_EXIT; |
|
1814 return(EKeyWasConsumed); |
|
1815 } |
1754 } |
1816 } |
1755 |
1817 |
1756 TInt code=aKeyEvent.iCode; |
1818 TInt code=aKeyEvent.iCode; |
1757 const TUint modifiers = aKeyEvent.iModifiers; |
1819 const TUint modifiers = aKeyEvent.iModifiers; |
1758 TKeyResponse response; |
1820 TKeyResponse response; |
1761 |
1823 |
1762 if (iDialogFlags&EEikDialogFlagAllKeysToButtons || ((modifiers & EAllStdModifiers) == EModifierCtrl) ) |
1824 if (iDialogFlags&EEikDialogFlagAllKeysToButtons || ((modifiers & EAllStdModifiers) == EModifierCtrl) ) |
1763 { |
1825 { |
1764 response = iButtonGroupContainer->OfferKeyEventL(aKeyEvent,aType); |
1826 response = iButtonGroupContainer->OfferKeyEventL(aKeyEvent,aType); |
1765 if(response==EKeyWasConsumed) |
1827 if(response==EKeyWasConsumed) |
1766 return EKeyWasConsumed; |
1828 { |
|
1829 _AKNTRACE_FUNC_EXIT; |
|
1830 return EKeyWasConsumed; |
|
1831 } |
1767 } |
1832 } |
1768 |
1833 |
1769 // |
1834 // |
1770 |
1835 |
1771 switch (code) |
1836 switch (code) |
1784 case EKeyEscape: |
1849 case EKeyEscape: |
1785 if (modifiers&EModifierShift) |
1850 if (modifiers&EModifierShift) |
1786 iPageSelector->OfferKeyEventL(aKeyEvent, aType); |
1851 iPageSelector->OfferKeyEventL(aKeyEvent, aType); |
1787 // Add to remove repeated keypress return event of OK key |
1852 // Add to remove repeated keypress return event of OK key |
1788 if (aKeyEvent.iRepeats&&EKeyOK==code) |
1853 if (aKeyEvent.iRepeats&&EKeyOK==code) |
1789 return EKeyWasConsumed; |
1854 { |
|
1855 _AKNTRACE_FUNC_EXIT; |
|
1856 return EKeyWasConsumed; |
|
1857 } |
1790 if ((!(modifiers&EModifierCtrl) || modifiers&EModifierPureKeycode) && |
1858 if ((!(modifiers&EModifierCtrl) || modifiers&EModifierPureKeycode) && |
1791 !(iDialogFlags&EEikDialogFlagModeless)) |
1859 !(iDialogFlags&EEikDialogFlagModeless)) |
1792 TryAnimateButtonAndExitL(code); |
1860 TryAnimateButtonAndExitL(code); |
1793 break; |
1861 break; |
1794 case EKeyTab: |
1862 case EKeyTab: |
1806 default: |
1874 default: |
1807 iPageSelector->OfferKeyEventL(aKeyEvent, aType); |
1875 iPageSelector->OfferKeyEventL(aKeyEvent, aType); |
1808 break; |
1876 break; |
1809 KeyToFocus: |
1877 KeyToFocus: |
1810 if(iPageSelector->OfferHotKeysKeyEventL(aKeyEvent,aType)==EKeyWasConsumed) |
1878 if(iPageSelector->OfferHotKeysKeyEventL(aKeyEvent,aType)==EKeyWasConsumed) |
1811 return EKeyWasConsumed; |
1879 { |
1812 |
1880 _AKNTRACE_FUNC_EXIT; |
1813 } |
1881 return EKeyWasConsumed; |
1814 |
1882 } |
|
1883 } |
|
1884 _AKNTRACE_FUNC_EXIT; |
1815 return (aKeyEvent.iScanCode == EStdKeyYes ? EKeyWasNotConsumed:EKeyWasConsumed); |
1885 return (aKeyEvent.iScanCode == EStdKeyYes ? EKeyWasNotConsumed:EKeyWasConsumed); |
1816 } |
1886 } |
1817 |
1887 |
1818 /** |
1888 /** |
1819 * Hands focus to current dialog line. |
1889 * Hands focus to current dialog line. |
1820 */ |
1890 */ |
1821 EXPORT_C void CEikDialog::FocusChanged(TDrawNow aDrawNow) |
1891 EXPORT_C void CEikDialog::FocusChanged(TDrawNow aDrawNow) |
1822 { |
1892 { |
|
1893 _AKNTRACE_FUNC_ENTER; |
1823 CEikBorderedControl::FocusChanged( aDrawNow ); |
1894 CEikBorderedControl::FocusChanged( aDrawNow ); |
1824 |
1895 |
1825 TInt controlID = IdOfFocusControl(); |
1896 TInt controlID = IdOfFocusControl(); |
1826 if (controlID) |
1897 if (controlID) |
1827 { |
1898 { |
1828 Line(controlID)->SetFocus(IsFocused(), aDrawNow); |
1899 Line(controlID)->SetFocus(IsFocused(), aDrawNow); |
1829 } |
1900 } |
|
1901 _AKNTRACE_FUNC_EXIT; |
1830 } |
1902 } |
1831 |
1903 |
1832 /** |
1904 /** |
1833 * Tries to initiate user exit of the dialog when the button identified |
1905 * Tries to initiate user exit of the dialog when the button identified |
1834 * by aButtonId is pressed, if this button should exit the dialog. See OkToExitL to |
1906 * by aButtonId is pressed, if this button should exit the dialog. See OkToExitL to |
1838 * If the EEikDialogFlagNotifyEsc flag is not set and the dialog has been cancelled it |
1910 * If the EEikDialogFlagNotifyEsc flag is not set and the dialog has been cancelled it |
1839 * immediately deletes itself. |
1911 * immediately deletes itself. |
1840 */ |
1912 */ |
1841 EXPORT_C void CEikDialog::TryExitL(TInt aButtonId) |
1913 EXPORT_C void CEikDialog::TryExitL(TInt aButtonId) |
1842 { |
1914 { |
|
1915 _AKNTRACE_FUNC_ENTER; |
1843 if ( iDialogFlags & EEikDialogFlagNoUserExit ) |
1916 if ( iDialogFlags & EEikDialogFlagNoUserExit ) |
1844 { |
1917 { |
|
1918 _AKNTRACE_FUNC_EXIT; |
1845 return; |
1919 return; |
1846 } |
1920 } |
1847 |
1921 |
1848 // use delayed exit if pointer event handling is in progress |
1922 // use delayed exit if pointer event handling is in progress |
1849 if ( Extension()->iPublicFlags.IsSet( CEikDialogExtension::EDelayedExit ) ) |
1923 if ( Extension()->iPublicFlags.IsSet( CEikDialogExtension::EDelayedExit ) ) |
1850 { |
1924 { |
1851 Extension()->iButtonId = aButtonId; |
1925 Extension()->iButtonId = aButtonId; |
1852 Extension()->StartDelayedExit(); |
1926 Extension()->StartDelayedExit(); |
|
1927 _AKNTRACE_FUNC_EXIT; |
1853 return; |
1928 return; |
1854 } |
1929 } |
1855 |
1930 |
1856 TBool effectTriggered = EFalse; |
1931 TBool effectTriggered = EFalse; |
1857 TBool effectButton = aButtonId == EEikBidCancel |
1932 TBool effectButton = aButtonId == EEikBidCancel |
2061 * dialog by default. Reimplementations of this method must |
2138 * dialog by default. Reimplementations of this method must |
2062 * activate a page before doing anything else. |
2139 * activate a page before doing anything else. |
2063 */ |
2140 */ |
2064 EXPORT_C void CEikDialog::SetInitialCurrentLine() |
2141 EXPORT_C void CEikDialog::SetInitialCurrentLine() |
2065 { |
2142 { |
|
2143 _AKNTRACE_FUNC_ENTER; |
2066 if ( !iExtension->iInitialMade ) |
2144 if ( !iExtension->iInitialMade ) |
2067 { |
2145 { |
2068 TRAP_IGNORE(iPageSelector->ActivateFirstPageL()); |
2146 TRAP_IGNORE(iPageSelector->ActivateFirstPageL()); |
2069 } |
2147 } |
2070 if( !iIsEditable ) |
2148 if( !iIsEditable ) |
2071 { |
2149 { |
2072 iPageSelector->SetInitialFocus(); |
2150 iPageSelector->SetInitialFocus(); |
2073 } |
2151 } |
|
2152 _AKNTRACE_FUNC_EXIT; |
2074 } |
2153 } |
2075 |
2154 |
2076 /** |
2155 /** |
2077 * Handles a dialog button press for the button with id aButtonId. |
2156 * Handles a dialog button press for the button with id aButtonId. |
2078 * The cancel button press is not passed to the handler unless EEikDialogFlagNotifyEsc |
2157 * The cancel button press is not passed to the handler unless EEikDialogFlagNotifyEsc |
2197 * |
2276 * |
2198 * @since ER5U |
2277 * @since ER5U |
2199 */ |
2278 */ |
2200 EXPORT_C void CEikDialog::HandleResourceChange(TInt aType) |
2279 EXPORT_C void CEikDialog::HandleResourceChange(TInt aType) |
2201 { |
2280 { |
2202 |
2281 _AKNTRACE_FUNC_ENTER; |
2203 if(aType==KEikDynamicLayoutVariantSwitch) |
2282 if(aType==KEikDynamicLayoutVariantSwitch) |
2204 { |
2283 { |
2205 if (IsVisible()) |
2284 if (IsVisible()) |
2206 DoResourceChangeLayout(); |
2285 DoResourceChangeLayout(); |
2207 else if (iExtension) |
2286 else if (iExtension) |
2208 iExtension->iFlags.Set(CEikDialogExtension::ELayoutChangeWhileInvisible); |
2287 iExtension->iFlags.Set(CEikDialogExtension::ELayoutChangeWhileInvisible); |
2209 |
2288 |
2210 CCoeControl::HandleResourceChange(aType); |
2289 CCoeControl::HandleResourceChange(aType); |
|
2290 _AKNTRACE_FUNC_EXIT; |
2211 return; |
2291 return; |
2212 } |
2292 } |
2213 else |
2293 else |
2214 { |
2294 { |
2215 CCoeControl::HandleResourceChange(aType); |
2295 CCoeControl::HandleResourceChange(aType); |
2217 |
2297 |
2218 if( !CAknEnv::Static()->TransparencyEnabled() && aType==KEikColorResourceChange) |
2298 if( !CAknEnv::Static()->TransparencyEnabled() && aType==KEikColorResourceChange) |
2219 { |
2299 { |
2220 Window().SetBackgroundColor(iEikonEnv->ControlColor(EColorDialogBackground,*this)); |
2300 Window().SetBackgroundColor(iEikonEnv->ControlColor(EColorDialogBackground,*this)); |
2221 } |
2301 } |
|
2302 _AKNTRACE_FUNC_EXIT; |
2222 } |
2303 } |
2223 |
2304 |
2224 void CEikDialog::DoResourceChangeLayout() |
2305 void CEikDialog::DoResourceChangeLayout() |
2225 { |
2306 { |
2226 // Layout must be forced through - bypass optimisations |
2307 // Layout must be forced through - bypass optimisations |
2227 // Must work through all pages |
2308 // Must work through all pages |
2228 |
2309 _AKNTRACE_FUNC_ENTER; |
2229 Layout(); |
2310 Layout(); |
2230 SizeChanged(); |
2311 SizeChanged(); |
2231 |
2312 |
2232 TInt lastPage = ( iPageSelector->PageContainer()->NumPages() - 1 ); |
2313 TInt lastPage = ( iPageSelector->PageContainer()->NumPages() - 1 ); |
2233 TInt pageIndex = 0; |
2314 TInt pageIndex = 0; |
2239 page->HandleResourceChange( KEikDynamicLayoutVariantSwitch ); |
2320 page->HandleResourceChange( KEikDynamicLayoutVariantSwitch ); |
2240 } |
2321 } |
2241 |
2322 |
2242 if (iExtension) |
2323 if (iExtension) |
2243 iExtension->iFlags.Clear(CEikDialogExtension::ELayoutChangeWhileInvisible); |
2324 iExtension->iFlags.Clear(CEikDialogExtension::ELayoutChangeWhileInvisible); |
|
2325 _AKNTRACE_FUNC_EXIT; |
2244 } |
2326 } |
2245 |
2327 |
2246 /** |
2328 /** |
2247 * Returns a pointer to the dialog's internal button command observer. This is required when creating a |
2329 * Returns a pointer to the dialog's internal button command observer. This is required when creating a |
2248 * new button group container for the dialog. |
2330 * new button group container for the dialog. |
2282 EXPORT_C void CEikDialog::CEikDialog_Reserved_2() |
2364 EXPORT_C void CEikDialog::CEikDialog_Reserved_2() |
2283 {} |
2365 {} |
2284 |
2366 |
2285 EXPORT_C void CEikDialog::MakeVisible(TBool aVisible) |
2367 EXPORT_C void CEikDialog::MakeVisible(TBool aVisible) |
2286 { |
2368 { |
|
2369 _AKNTRACE_FUNC_ENTER; |
|
2370 _AKNTRACE( "CEikDialog::MakeVisible(): [%d]", aVisible ); |
2287 if (iExtension && iExtension->iFlags[CEikDialogExtension::ELayoutChangeWhileInvisible]) |
2371 if (iExtension && iExtension->iFlags[CEikDialogExtension::ELayoutChangeWhileInvisible]) |
2288 DoResourceChangeLayout(); |
2372 DoResourceChangeLayout(); |
2289 |
2373 |
2290 // only for popup dialogs |
2374 // only for popup dialogs |
2291 if ( aVisible ) |
2375 if ( aVisible ) |
2299 AknGlobalPopupPriorityController::FadeBehindPopup(*this, iPopupFader, *this, aVisible); |
2383 AknGlobalPopupPriorityController::FadeBehindPopup(*this, iPopupFader, *this, aVisible); |
2300 } |
2384 } |
2301 } |
2385 } |
2302 |
2386 |
2303 CEikBorderedControl::MakeVisible(aVisible); |
2387 CEikBorderedControl::MakeVisible(aVisible); |
2304 |
2388 _AKNTRACE_FUNC_EXIT; |
2305 } |
2389 } |
2306 |
2390 |
2307 void CEikDialog::FadeBehindPopup(TBool aFade) |
2391 void CEikDialog::FadeBehindPopup(TBool aFade) |
2308 { |
2392 { |
2309 // record the requested fade state |
2393 // record the requested fade state |
2515 TryChangeFocusToL(CurrentLine()->iId); |
2600 TryChangeFocusToL(CurrentLine()->iId); |
2516 if (aRedraw) |
2601 if (aRedraw) |
2517 DrawDeferred(); |
2602 DrawDeferred(); |
2518 } |
2603 } |
2519 } |
2604 } |
|
2605 _AKNTRACE_FUNC_EXIT; |
2520 } |
2606 } |
2521 |
2607 |
2522 |
2608 |
2523 EXPORT_C TInt CEikDialog::GetNumberOfLinesOnPage(TInt aPageIndex) const |
2609 EXPORT_C TInt CEikDialog::GetNumberOfLinesOnPage(TInt aPageIndex) const |
2524 { |
2610 { |
|
2611 _AKNTRACE_FUNC_ENTER; |
2525 if (iPageSelector) |
2612 if (iPageSelector) |
2526 { |
2613 { |
2527 CEikDialogPageContainer* pageContainer = iPageSelector->PageContainer(); |
2614 CEikDialogPageContainer* pageContainer = iPageSelector->PageContainer(); |
2528 if (pageContainer) |
2615 if (pageContainer) |
2529 { |
2616 { |
2530 CEikDialogPage* page = pageContainer->Page(aPageIndex); |
2617 CEikDialogPage* page = pageContainer->Page(aPageIndex); |
2531 if (page) |
2618 if (page) |
2532 return page->NumberOfLines(); |
2619 { |
|
2620 _AKNTRACE( "CEikDialog::GetNumberOfLinesOnPage(): [%d]", page->NumberOfLines() ); |
|
2621 _AKNTRACE_FUNC_EXIT; |
|
2622 return page->NumberOfLines(); |
|
2623 } |
2533 } |
2624 } |
2534 } |
2625 } |
|
2626 _AKNTRACE( "CEikDialog::GetNumberOfLinesOnPage(): 0"); |
|
2627 _AKNTRACE_FUNC_EXIT; |
2535 return 0; |
2628 return 0; |
2536 } |
2629 } |
2537 |
2630 |
2538 EXPORT_C TInt CEikDialog::GetNumberOfPages() const |
2631 EXPORT_C TInt CEikDialog::GetNumberOfPages() const |
2539 { |
2632 { |
|
2633 _AKNTRACE_FUNC_ENTER; |
2540 if (iPageSelector) |
2634 if (iPageSelector) |
2541 { |
2635 { |
2542 CEikDialogPageContainer* pageContainer = iPageSelector->PageContainer(); |
2636 CEikDialogPageContainer* pageContainer = iPageSelector->PageContainer(); |
2543 if (pageContainer) |
2637 if (pageContainer) |
2544 return pageContainer->NumPages(); |
2638 { |
2545 } |
2639 _AKNTRACE( "CEikDialog::GetNumberOfPages(): [%d]", pageContainer->NumPages() ); |
|
2640 _AKNTRACE_FUNC_EXIT; |
|
2641 return pageContainer->NumPages(); |
|
2642 } |
|
2643 } |
|
2644 _AKNTRACE( "CEikDialog::GetNumberOfPages(): return 0;" ); |
|
2645 _AKNTRACE_FUNC_EXIT; |
2546 return 0; |
2646 return 0; |
2547 } |
2647 } |
2548 |
2648 |
2549 //-------------------------------------------------------------------------------- |
2649 //-------------------------------------------------------------------------------- |
2550 // CEikDialog::HandleDialogPageEventL(TInt aEventID) |
2650 // CEikDialog::HandleDialogPageEventL(TInt aEventID) |
3121 // Checking if the blank screen is being displayed. |
3221 // Checking if the blank screen is being displayed. |
3122 // If so, the blank screen will cover everything. |
3222 // If so, the blank screen will cover everything. |
3123 const TInt KWgPriorityOfBlankScreen = 10000; // copied from akncapserverentry.cpp |
3223 const TInt KWgPriorityOfBlankScreen = 10000; // copied from akncapserverentry.cpp |
3124 TBool IsBlankScreenDisplayed() |
3224 TBool IsBlankScreenDisplayed() |
3125 { |
3225 { |
|
3226 _AKNTRACE_FUNC_ENTER; |
3126 TBool isBlankScreenDisplayed(EFalse); |
3227 TBool isBlankScreenDisplayed(EFalse); |
3127 RWsSession& wsSession = CEikonEnv::Static()->WsSession(); |
3228 RWsSession& wsSession = CEikonEnv::Static()->WsSession(); |
3128 |
3229 |
3129 CArrayFixFlat<TInt> *wgIds = new CArrayFixFlat<TInt>(2); |
3230 CArrayFixFlat<TInt> *wgIds = new CArrayFixFlat<TInt>(2); |
3130 if (wgIds != NULL) |
3231 if (wgIds != NULL) |
3131 { |
3232 { |
3132 if (KErrNone == wsSession.WindowGroupList(wgIds) && wgIds->Count() > 0) |
3233 if (KErrNone == wsSession.WindowGroupList(wgIds) && wgIds->Count() > 0) |
3133 { |
3234 { |
3134 TInt priority = wsSession.GetWindowGroupOrdinalPriority(wgIds->At(0)); |
3235 TInt priority = wsSession.GetWindowGroupOrdinalPriority(wgIds->At(0)); |
3135 RDebug::Printf("IsBlankScreenDisplayed():priority:%d",priority); |
3236 _AKNTRACE( "IsBlankScreenDisplayed():priority: [%d]", priority ); |
3136 if (priority == KWgPriorityOfBlankScreen) |
3237 if (priority == KWgPriorityOfBlankScreen) |
3137 { |
3238 { |
3138 isBlankScreenDisplayed = ETrue; |
3239 isBlankScreenDisplayed = ETrue; |
3139 } |
3240 } |
3140 } |
3241 } |
3141 } |
3242 } |
3142 delete wgIds; |
3243 delete wgIds; |
3143 RDebug::Printf("IsBlankScreenDisplayed():isBlankScreenDisplayed:%d",isBlankScreenDisplayed); |
3244 _AKNTRACE( "IsBlankScreenDisplayed():isBlankScreenDisplayed: [%d]", isBlankScreenDisplayed ); |
|
3245 _AKNTRACE_FUNC_EXIT; |
3144 return isBlankScreenDisplayed; |
3246 return isBlankScreenDisplayed; |
3145 } |
3247 } |
3146 |
3248 |