equal
deleted
inserted
replaced
68 // |
68 // |
69 EXPORT_C CAknBatteryPane::~CAknBatteryPane() |
69 EXPORT_C CAknBatteryPane::~CAknBatteryPane() |
70 { |
70 { |
71 AKNTASHOOK_REMOVE(); |
71 AKNTASHOOK_REMOVE(); |
72 |
72 |
73 MTouchFeedback* feedback = MTouchFeedback::Instance(); |
|
74 if ( feedback ) |
|
75 { |
|
76 feedback->RemoveFeedbackForControl( this ); |
|
77 } |
|
78 |
|
79 AknsUtils::DeregisterControlPosition( this ); |
73 AknsUtils::DeregisterControlPosition( this ); |
80 |
74 |
81 delete iBatteryIconControl; |
75 delete iBatteryIconControl; |
82 delete iBatteryStrengthControl; |
76 delete iBatteryStrengthControl; |
83 |
77 |
103 iBatteryStrengthControl = CAknBatteryStrength::NewL(); |
97 iBatteryStrengthControl = CAknBatteryStrength::NewL(); |
104 iBatteryStrengthControl->SetContainerWindowL( *this ); |
98 iBatteryStrengthControl->SetContainerWindowL( *this ); |
105 iPrivateFlags = 0; // reset flags |
99 iPrivateFlags = 0; // reset flags |
106 iDataObserver = new (ELeave) CAknBatteryDataObserver( this ); |
100 iDataObserver = new (ELeave) CAknBatteryDataObserver( this ); |
107 iStatusPane = CEikStatusPaneBase::Current(); |
101 iStatusPane = CEikStatusPaneBase::Current(); |
108 |
|
109 MTouchFeedback* feedback = MTouchFeedback::Instance(); |
|
110 if ( feedback ) |
|
111 { |
|
112 CFeedbackSpec* fbSpec = CFeedbackSpec::New(); |
|
113 if ( fbSpec ) |
|
114 { |
|
115 fbSpec->AddFeedback( ETouchEventStylusDown, |
|
116 ETouchFeedbackSensitiveButton ); |
|
117 fbSpec->AddFeedback( ETouchEventStylusUp, |
|
118 ETouchFeedbackSensitiveButton, |
|
119 ETouchFeedbackVibra ); |
|
120 |
|
121 feedback->SetFeedbackArea( this, |
|
122 0, |
|
123 Rect(), |
|
124 fbSpec ); |
|
125 delete fbSpec; |
|
126 } |
|
127 } |
|
128 } |
102 } |
129 |
103 |
130 |
104 |
131 // --------------------------------------------------------------------------- |
105 // --------------------------------------------------------------------------- |
132 // CAknBatteryPane::ConstructFromResourceL |
106 // CAknBatteryPane::ConstructFromResourceL |
368 feedback->EnableFeedbackForControl( this, EFalse ); |
342 feedback->EnableFeedbackForControl( this, EFalse ); |
369 } |
343 } |
370 else |
344 else |
371 { |
345 { |
372 feedback->EnableFeedbackForControl( this, ETrue ); |
346 feedback->EnableFeedbackForControl( this, ETrue ); |
373 feedback->ChangeFeedbackArea( this, |
|
374 0, |
|
375 parent ); |
|
376 } |
347 } |
377 } |
348 } |
378 } |
349 } |
379 |
350 |
380 |
351 |
580 iPrivateFlags &= (~EAknBatteryPaneButton1DownInBatteryRect); |
551 iPrivateFlags &= (~EAknBatteryPaneButton1DownInBatteryRect); |
581 return; |
552 return; |
582 } |
553 } |
583 |
554 |
584 CEikStatusPaneBase* sp = CEikStatusPaneBase::Current(); |
555 CEikStatusPaneBase* sp = CEikStatusPaneBase::Current(); |
585 if( sp ) |
556 if ( sp ) |
586 { |
557 { |
587 TInt statusPaneCurrentLayoutResourceId = sp->CurrentLayoutResId(); |
558 TInt statusPaneCurrentLayoutResourceId = sp->CurrentLayoutResId(); |
588 if(statusPaneCurrentLayoutResourceId == R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE |
559 if ( statusPaneCurrentLayoutResourceId == |
589 || statusPaneCurrentLayoutResourceId == R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE_MIRRORED) |
560 R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE || |
590 { |
561 statusPaneCurrentLayoutResourceId == |
591 MTouchFeedback* feedback = MTouchFeedback::Instance(); |
562 R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE_MIRRORED ) |
592 if ( feedback ) |
563 { |
593 { |
|
594 feedback->RemoveFeedbackForControl( this ); |
|
595 } |
|
596 |
|
597 AknsUtils::DeregisterControlPosition( this ); |
564 AknsUtils::DeregisterControlPosition( this ); |
598 return; |
565 return; |
599 } |
566 } |
600 } |
567 } |
601 // Get the rect of battery pane. |
568 // Get the rect of battery pane. |
602 TRect rect( Rect() ); |
569 TRect rect( Rect() ); |
603 |
570 |
604 // Switch by type |
571 // Switch by type |
605 switch ( aPointerEvent.iType ) |
572 switch ( aPointerEvent.iType ) |
609 // if battery pane's rect contains pointer down position |
576 // if battery pane's rect contains pointer down position |
610 if ( rect.Contains( aPointerEvent.iPosition ) ) |
577 if ( rect.Contains( aPointerEvent.iPosition ) ) |
611 { |
578 { |
612 // set flag that pointerdown was inside battery pane |
579 // set flag that pointerdown was inside battery pane |
613 iPrivateFlags |= EAknBatteryPaneButton1DownInBatteryRect; |
580 iPrivateFlags |= EAknBatteryPaneButton1DownInBatteryRect; |
|
581 MTouchFeedback* feedback = MTouchFeedback::Instance(); |
|
582 if ( feedback ) |
|
583 { |
|
584 feedback->InstantFeedback( ETouchFeedbackSensitiveButton ); |
|
585 } |
614 } |
586 } |
615 } |
587 } |
616 break; |
588 break; |
617 |
589 |
618 case TPointerEvent::EButton1Up: |
590 case TPointerEvent::EButton1Up: |
660 if ( ( iPrivateFlags & EAknBatteryPaneButton1DownInBatteryRect && |
632 if ( ( iPrivateFlags & EAknBatteryPaneButton1DownInBatteryRect && |
661 rect.Contains( aPointerEvent.iPosition ) ) || |
633 rect.Contains( aPointerEvent.iPosition ) ) || |
662 pointerUpInClockArea || |
634 pointerUpInClockArea || |
663 pointerUpInIndicatorArea ) |
635 pointerUpInIndicatorArea ) |
664 { |
636 { |
665 if ( pointerUpInClockArea || pointerUpInIndicatorArea ) |
637 MTouchFeedback* feedback = MTouchFeedback::Instance(); |
|
638 if ( feedback ) |
666 { |
639 { |
667 MTouchFeedback* feedback = MTouchFeedback::Instance(); |
640 feedback->InstantFeedback( |
668 if ( feedback ) |
641 this, |
669 { |
642 ETouchFeedbackSensitiveButton, |
670 // The pointer down was received in another |
643 ETouchFeedbackVibra, |
671 // control, so the tactile feedback must be |
644 aPointerEvent ); |
672 // given directly. |
|
673 feedback->InstantFeedback( |
|
674 this, |
|
675 ETouchFeedbackSensitiveButton, |
|
676 ETouchFeedbackVibra, |
|
677 aPointerEvent ); |
|
678 } |
|
679 } |
645 } |
680 |
646 |
681 CAknSmallIndicator* indicatorNotifier = |
647 CAknSmallIndicator* indicatorNotifier = |
682 CAknSmallIndicator::NewLC( TUid::Uid( 0 ) ); |
648 CAknSmallIndicator::NewLC( TUid::Uid( 0 ) ); |
683 indicatorNotifier->HandleIndicatorTapL(); |
649 indicatorNotifier->HandleIndicatorTapL(); |