320 iListBox ); |
281 iListBox ); |
321 CleanupStack::PopAndDestroy( iconHelper ); |
282 CleanupStack::PopAndDestroy( iconHelper ); |
322 } |
283 } |
323 |
284 |
324 // --------------------------------------------------------------------------- |
285 // --------------------------------------------------------------------------- |
325 // Starts theme preview. |
|
326 // --------------------------------------------------------------------------- |
|
327 // |
|
328 void CPslnGeneralThemeContainer::StartThemePreviewL( TBool aTouch ) |
|
329 { |
|
330 // Start timer with 0.5s delay. |
|
331 iPreviewIdle->Cancel(); |
|
332 |
|
333 if( PslnFeatures::IsSupported( KPslnSupportFastPreviewTheme ) ) |
|
334 { |
|
335 iPreviewIdle->Start( |
|
336 aTouch ? iPreviewDelayTime : iPreviewDelayTimeOnHardKey, |
|
337 iPreviewIntervalTime, |
|
338 TCallBack( DoHandleIdleTimeL, this ) ); |
|
339 } |
|
340 else |
|
341 { |
|
342 iPreviewIdle->Start( |
|
343 KIdlePreviewDelay, |
|
344 KIdlePreviewInterval, |
|
345 TCallBack( DoHandleIdleTimeL, this ) ); |
|
346 } |
|
347 } |
|
348 |
|
349 // --------------------------------------------------------------------------- |
|
350 // Cancel theme preview. |
|
351 // --------------------------------------------------------------------------- |
|
352 // |
|
353 void CPslnGeneralThemeContainer::CancelThemePreviewL() |
|
354 { |
|
355 iPreviewIdle->Cancel(); |
|
356 } |
|
357 |
|
358 // --------------------------------------------------------------------------- |
|
359 // Sets theme preview observer. |
|
360 // --------------------------------------------------------------------------- |
|
361 // |
|
362 void CPslnGeneralThemeContainer::SetThemePreviewObserver( |
|
363 MPslnThemePreviewObserver* aObserver ) |
|
364 { |
|
365 iObserver = aObserver; |
|
366 } |
|
367 |
|
368 // --------------------------------------------------------------------------- |
|
369 // Locks up and down key events. |
|
370 // --------------------------------------------------------------------------- |
|
371 // |
|
372 void CPslnGeneralThemeContainer::LockUpAndDownKeys( const TBool& aLocked ) |
|
373 { |
|
374 TRAPD( transitionEffectsValue, iModel->GetTransitionEffectStateL() ); |
|
375 // Effects are enabled if value is NOT KMaxTInt. |
|
376 // Only lock keys, if transition effects are off. |
|
377 if( transitionEffectsValue == KMaxTInt ) |
|
378 { |
|
379 iLockedKeys = aLocked; |
|
380 } |
|
381 } |
|
382 |
|
383 // --------------------------------------------------------------------------- |
|
384 // Gets help context for Help application. |
286 // Gets help context for Help application. |
385 // --------------------------------------------------------------------------- |
287 // --------------------------------------------------------------------------- |
386 // |
288 // |
387 void CPslnGeneralThemeContainer::GetHelpContext( |
289 void CPslnGeneralThemeContainer::GetHelpContext( |
388 TCoeHelpContext& aContext ) const |
290 TCoeHelpContext& aContext ) const |
389 { |
291 { |
390 aContext.iMajor = KUidPsln; |
292 aContext.iMajor = KUidPsln; |
391 aContext.iContext = KSKINS_HLP_LIST; |
293 aContext.iContext = KSKINS_HLP_LIST; |
392 } |
294 } |
393 |
295 |
394 // --------------------------------------------------------------------------- |
|
395 // Handles key events. |
|
396 // Starts the new preview theme load before passing the event to base class. |
|
397 // --------------------------------------------------------------------------- |
|
398 // |
|
399 TKeyResponse CPslnGeneralThemeContainer::OfferKeyEventL( |
|
400 const TKeyEvent& aKeyEvent, |
|
401 TEventCode aType ) |
|
402 { |
|
403 TKeyResponse resp = EKeyWasConsumed; |
|
404 |
|
405 // If lock is active, ignore up and down key events. |
|
406 if ( iLockedKeys && |
|
407 !( aKeyEvent.iCode == EKeyUpArrow || aKeyEvent.iCode == EKeyDownArrow ) || |
|
408 !iLockedKeys ) |
|
409 { |
|
410 resp = CPslnBaseContainer::OfferKeyEventL( aKeyEvent, aType ); |
|
411 } |
|
412 |
|
413 // React to up and down arrow key events IF download skin is not selected. |
|
414 if ( aType == EEventKey && |
|
415 (aKeyEvent.iCode == EKeyUpArrow || aKeyEvent.iCode == EKeyDownArrow ) && |
|
416 !iLockedKeys ) |
|
417 { |
|
418 iObserver->HandlePreviewStateChange( ETrue ); |
|
419 StartThemePreviewL( EFalse ); |
|
420 } |
|
421 |
|
422 return resp; |
|
423 } |
|
424 |
|
425 // --------------------------------------------------------------------------- |
|
426 // Creates the skin item list for local item skinning. |
|
427 // --------------------------------------------------------------------------- |
|
428 // |
|
429 void CPslnGeneralThemeContainer::CreateSkinItemList() |
|
430 { |
|
431 PSLN_TRACE_DEBUG("CPslnGeneralThemeContainer::CreateSkinItemList" ); |
|
432 TInt retVal = KErrNone; |
|
433 |
|
434 // Main area, screen, status pane and control pane. |
|
435 retVal += AddItemToList( KAknsIIDQsnBgScreen ); |
|
436 //retVal += AddItemToList( KAknsIIDQsnBgAreaMainListGene ); |
|
437 retVal += AddItemToList( KAknsIIDQsnBgAreaStaconRt ); |
|
438 retVal += AddItemToList( KAknsIIDQsnBgAreaStaconLt ); |
|
439 retVal += AddItemToList( KAknsIIDQsnBgAreaStaconRb ); |
|
440 retVal += AddItemToList( KAknsIIDQsnBgAreaStaconLb ); |
|
441 retVal += AddItemToList( KAknsIIDQsnBgAreaControl ); |
|
442 retVal += AddItemToList( KAknsIIDQsnBgAreaControlPopup ); |
|
443 retVal += AddItemToList( KAknsIIDQsnBgAreaStatus ); |
|
444 retVal += AddItemToList( KAknsIIDQsnFrStatusFlat ); |
|
445 retVal += AddItemToList( KAknsIIDQsnFrStatusFlatCornerTl ); |
|
446 retVal += AddItemToList( KAknsIIDQsnFrStatusFlatCornerTr ); |
|
447 retVal += AddItemToList( KAknsIIDQsnFrStatusFlatCornerBl ); |
|
448 retVal += AddItemToList( KAknsIIDQsnFrStatusFlatCornerBr ); |
|
449 retVal += AddItemToList( KAknsIIDQsnFrStatusFlatSideT ); |
|
450 retVal += AddItemToList( KAknsIIDQsnFrStatusFlatSideB ); |
|
451 retVal += AddItemToList( KAknsIIDQsnFrStatusFlatSideL ); |
|
452 retVal += AddItemToList( KAknsIIDQsnFrStatusFlatSideR ); |
|
453 retVal += AddItemToList( KAknsIIDQsnFrStatusFlatCenter ); |
|
454 |
|
455 // Navipane |
|
456 retVal += AddItemToList( KAknsIIDQsnBgNavipaneSolid ); |
|
457 retVal += AddItemToList( KAknsIIDQsnBgNavipaneWipe ); |
|
458 retVal += AddItemToList( KAknsIIDQgnIndiNaviArrowLeft ); |
|
459 retVal += AddItemToList( KAknsIIDQgnIndiNaviArrowRight ); |
|
460 |
|
461 // Battery pane, signal pane |
|
462 retVal += AddItemToList( KAknsIIDQgnIndiSignalStrength ); |
|
463 retVal += AddItemToList( KAknsIIDQgnIndiBatteryStrength ); |
|
464 |
|
465 // Scrollbars |
|
466 retVal += AddItemToList( KAknsIIDQsnCpScrollBgTop ); |
|
467 retVal += AddItemToList( KAknsIIDQsnCpScrollBgMiddle ); |
|
468 retVal += AddItemToList( KAknsIIDQsnCpScrollBgBottom ); |
|
469 retVal += AddItemToList( KAknsIIDQsnCpScrollHandleBgTop ); |
|
470 retVal += AddItemToList( KAknsIIDQsnCpScrollHandleBgMiddle ); |
|
471 retVal += AddItemToList( KAknsIIDQsnCpScrollHandleBgBottom ); |
|
472 retVal += AddItemToList( KAknsIIDQsnCpScrollHandleTop ); |
|
473 retVal += AddItemToList( KAknsIIDQsnCpScrollHandleMiddle ); |
|
474 retVal += AddItemToList( KAknsIIDQsnCpScrollHandleBottom ); |
|
475 |
|
476 // Tabs |
|
477 retVal += AddItemToList( KAknsIIDQgnGrafTabActiveL ); |
|
478 retVal += AddItemToList( KAknsIIDQgnGrafTabActiveM ); |
|
479 retVal += AddItemToList( KAknsIIDQgnGrafTabActiveR ); |
|
480 retVal += AddItemToList( KAknsIIDQgnGrafTabPassiveL ); |
|
481 retVal += AddItemToList( KAknsIIDQgnGrafTabPassiveM ); |
|
482 retVal += AddItemToList( KAknsIIDQgnGrafTabPassiveR ); |
|
483 |
|
484 // Highlight |
|
485 retVal += AddItemToList( KAknsIIDQsnFrList ); |
|
486 retVal += AddItemToList( KAknsIIDQsnFrListCornerTl ); |
|
487 retVal += AddItemToList( KAknsIIDQsnFrListCornerTr ); |
|
488 retVal += AddItemToList( KAknsIIDQsnFrListCornerBl ); |
|
489 retVal += AddItemToList( KAknsIIDQsnFrListCornerBr ); |
|
490 retVal += AddItemToList( KAknsIIDQsnFrListSideT ); |
|
491 retVal += AddItemToList( KAknsIIDQsnFrListSideB ); |
|
492 retVal += AddItemToList( KAknsIIDQsnFrListSideL ); |
|
493 retVal += AddItemToList( KAknsIIDQsnFrListSideR ); |
|
494 retVal += AddItemToList( KAknsIIDQsnFrListCenter ); |
|
495 |
|
496 // Options menu |
|
497 retVal += AddItemToList( KAknsIIDQsnFrPopup ); |
|
498 retVal += AddItemToList( KAknsIIDQsnFrPopupCornerTl ); |
|
499 retVal += AddItemToList( KAknsIIDQsnFrPopupCornerTr ); |
|
500 retVal += AddItemToList( KAknsIIDQsnFrPopupCornerBl ); |
|
501 retVal += AddItemToList( KAknsIIDQsnFrPopupCornerBr ); |
|
502 retVal += AddItemToList( KAknsIIDQsnFrPopupSideT ); |
|
503 retVal += AddItemToList( KAknsIIDQsnFrPopupSideB ); |
|
504 retVal += AddItemToList( KAknsIIDQsnFrPopupSideL ); |
|
505 retVal += AddItemToList( KAknsIIDQsnFrPopupSideR ); |
|
506 retVal += AddItemToList( KAknsIIDQsnFrPopupCenter ); |
|
507 retVal += AddItemToList( KAknsIIDQsnFrPopupSub ); |
|
508 retVal += AddItemToList( KAknsIIDQsnFrPopupSubCornerTl ); |
|
509 retVal += AddItemToList( KAknsIIDQsnFrPopupSubCornerTr ); |
|
510 retVal += AddItemToList( KAknsIIDQsnFrPopupSubCornerBl ); |
|
511 retVal += AddItemToList( KAknsIIDQsnFrPopupSubCornerBr ); |
|
512 retVal += AddItemToList( KAknsIIDQsnFrPopupSubSideT ); |
|
513 retVal += AddItemToList( KAknsIIDQsnFrPopupSubSideB ); |
|
514 retVal += AddItemToList( KAknsIIDQsnFrPopupSubSideL ); |
|
515 retVal += AddItemToList( KAknsIIDQsnFrPopupSubSideR ); |
|
516 retVal += AddItemToList( KAknsIIDQsnFrPopupCenterSubmenu ); |
|
517 retVal += AddItemToList( KAknsIIDQgnIndiSubmenu ); |
|
518 |
|
519 // Icons |
|
520 retVal += AddItemToList( KAknsIIDQgnPropPslnActive ); |
|
521 retVal += AddItemToList( KAknsIIDQgnIndiMmcAdd ); |
|
522 |
|
523 // QHD specific CBA. |
|
524 retVal += AddItemToList( KAknsIIDQgnIndiSctrlMaskInactLsc ); |
|
525 retVal += AddItemToList( KAknsIIDQgnIndiSctrlMaskActLsc ); |
|
526 retVal += AddItemToList( KAknsIIDQgnFrSctrlButton ); |
|
527 retVal += AddItemToList( KAknsIIDQgnFrSctrlButtonCornerTl ); |
|
528 retVal += AddItemToList( KAknsIIDQgnFrSctrlButtonCornerTr ); |
|
529 retVal += AddItemToList( KAknsIIDQgnFrSctrlButtonCornerBl ); |
|
530 retVal += AddItemToList( KAknsIIDQgnFrSctrlButtonCornerBr ); |
|
531 retVal += AddItemToList( KAknsIIDQgnFrSctrlButtonSideT ); |
|
532 retVal += AddItemToList( KAknsIIDQgnFrSctrlButtonSideB ); |
|
533 retVal += AddItemToList( KAknsIIDQgnFrSctrlButtonSideL ); |
|
534 retVal += AddItemToList( KAknsIIDQgnFrSctrlButtonSideR ); |
|
535 retVal += AddItemToList( KAknsIIDQgnFrSctrlButtonCenter ); |
|
536 retVal += AddItemToList( KAknsIIDQgnFrSctrlSkButton ); |
|
537 retVal += AddItemToList( KAknsIIDQgnFrSctrlSkButtonCornerTl ); |
|
538 retVal += AddItemToList( KAknsIIDQgnFrSctrlSkButtonCornerTr ); |
|
539 retVal += AddItemToList( KAknsIIDQgnFrSctrlSkButtonCornerBl ); |
|
540 retVal += AddItemToList( KAknsIIDQgnFrSctrlSkButtonCornerBr ); |
|
541 retVal += AddItemToList( KAknsIIDQgnFrSctrlSkButtonSideT ); |
|
542 retVal += AddItemToList( KAknsIIDQgnFrSctrlSkButtonSideB ); |
|
543 retVal += AddItemToList( KAknsIIDQgnFrSctrlSkButtonSideL ); |
|
544 retVal += AddItemToList( KAknsIIDQgnFrSctrlSkButtonSideR ); |
|
545 retVal += AddItemToList( KAknsIIDQgnFrSctrlSkButtonCenter ); |
|
546 |
|
547 __ASSERT_DEBUG( retVal == KErrNone, User::Panic(_L("Error in inserting"), 1) ); |
|
548 } |
|
549 |
|
550 // --------------------------------------------------------------------------- |
|
551 // Adds one item to skin item list. |
|
552 // --------------------------------------------------------------------------- |
|
553 // |
|
554 TInt CPslnGeneralThemeContainer::AddItemToList( const TAknsItemID& aSkinID ) |
|
555 { |
|
556 TAknsItemID skinItem; |
|
557 skinItem.Set( aSkinID.iMajor, aSkinID.iMinor ); |
|
558 TInt error = iSkinItemList.InsertInOrder( skinItem, TAknsItemID::LinearOrder ); |
|
559 PSLN_TRACE_DEBUG3("CPslnGeneralThemeContainer::AddItemToList item=%d %d added %d", |
|
560 aSkinID.iMajor, aSkinID.iMinor, error ); |
|
561 return error; |
|
562 } |
|
563 |
|
564 // ----------------------------------------------------------------------------- |
|
565 // Callback function when application is idle. |
|
566 // ----------------------------------------------------------------------------- |
|
567 // |
|
568 TInt CPslnGeneralThemeContainer::DoHandleIdleTimeL( TAny* aAny ) |
|
569 { |
|
570 static_cast< CPslnGeneralThemeContainer* >( aAny )->HandleIdleTimeL(); |
|
571 return KErrNone; |
|
572 } |
|
573 |
|
574 // ----------------------------------------------------------------------------- |
|
575 // Callback function when application is idle. |
|
576 // ----------------------------------------------------------------------------- |
|
577 // |
|
578 TInt CPslnGeneralThemeContainer::DoHandleEffectEndL( TAny* aAny ) |
|
579 { |
|
580 static_cast< CPslnGeneralThemeContainer* >( aAny )->HandleEffectEndL(); |
|
581 return KErrNone; |
|
582 } |
|
583 |
|
584 // ----------------------------------------------------------------------------- |
|
585 // Handle idle time. |
|
586 // ----------------------------------------------------------------------------- |
|
587 // |
|
588 void CPslnGeneralThemeContainer::HandleIdleTimeL() |
|
589 { |
|
590 PSLN_TRACE_DEBUG("CPslnGeneralThemeContainer::HandleIdleTimeL" ); |
|
591 // First stop timer. |
|
592 iPreviewIdle->Cancel(); |
|
593 |
|
594 // No re-preview the same theme |
|
595 if( iActiveSkinItemIndex == iListBox->CurrentItemIndex() ) |
|
596 { |
|
597 return; |
|
598 } |
|
599 |
|
600 // Check free mem |
|
601 TInt freeMem = 0; |
|
602 HAL::Get( HALData::EMemoryRAMFree , freeMem ); |
|
603 if( freeMem <= KPslnMinMemSize ) |
|
604 { |
|
605 HBufC* errorBuf = StringLoader::LoadLC( |
|
606 R_PSLN_QTN_MEMLO_RAM_OUT_OF_MEM ); |
|
607 // Display global note. |
|
608 CAknGlobalNote* errorNote = CAknGlobalNote::NewLC(); |
|
609 errorNote->ShowNoteL( EAknGlobalErrorNote, *errorBuf ); |
|
610 CleanupStack::PopAndDestroy( 2 ); // errorNote & errorBuf |
|
611 return; |
|
612 } |
|
613 |
|
614 iActiveSkinItemIndex = iListBox->CurrentItemIndex(); |
|
615 // Ignore download skin item if it is available. |
|
616 TInt modifier = IsEmbeddedLinkVisible(); |
|
617 TInt activeSkinIndex = iActiveSkinItemIndex - modifier; |
|
618 |
|
619 TBool usbAttached = static_cast<CPslnUi*>( ControlEnv()->AppUi() )->USBAttachState(); |
|
620 |
|
621 if( iModel->IsValidForPreview(activeSkinIndex) == EFalse ) |
|
622 { |
|
623 // If skin file didn't valid, preview active skin. |
|
624 activeSkinIndex = iModel->ActiveSkinIndex(); |
|
625 } |
|
626 if ( IsEmbeddedLinkVisible() && iListBox->CurrentItemIndex() == 0 ) |
|
627 { |
|
628 activeSkinIndex = iModel->ActiveSkinIndex(); |
|
629 } |
|
630 if( iModel->IsThemeOnMemoryCard( activeSkinIndex ) && usbAttached) |
|
631 { |
|
632 activeSkinIndex = 0; |
|
633 } |
|
634 |
|
635 CPslnSkinEntry* activeSkin = iModel->VisibleSkin( activeSkinIndex ); |
|
636 |
|
637 if ( activeSkin ) |
|
638 { |
|
639 // Re-create the list, since skin preview library removes skinned items |
|
640 // from used list (performance reasons). |
|
641 iSkinItemList.Reset(); |
|
642 CreateSkinItemList(); |
|
643 PSLN_TRACE_DEBUG("CPslnGeneralThemeContainer::HandleIdleTimeL Create Preview" ); |
|
644 static_cast<CPslnUi*>( ControlEnv()->AppUi() )->ToggleScreenBlankerL( ETrue, ETrue, EFalse ); |
|
645 |
|
646 if ( iModel->IsActiveSkinSelected( activeSkinIndex ) ) |
|
647 { |
|
648 // Remove locally skinned items. |
|
649 MAknsSkinInstance* si = AknsUtils::SkinInstance(); |
|
650 if ( si ) |
|
651 { |
|
652 si->SetChangeEventsEnabled( EFalse ); |
|
653 si->RemoveLocalItemDefs(); |
|
654 si->SetChangeEventsEnabled( ETrue ); |
|
655 } |
|
656 } |
|
657 else |
|
658 { |
|
659 TRAPD(err,iLocalSkinInstance->ApplyL( activeSkin->FullName(), iSkinItemList )); |
|
660 if (err == EAknsSrvProtected) |
|
661 { |
|
662 ShowErrorNoteL( R_PSLN_QTN_DRM_PREV_RIGHTS_SET ); |
|
663 } |
|
664 else if (err == KErrCorrupt) |
|
665 { |
|
666 //Skin corrupt |
|
667 ShowErrorNoteL( R_PSLN_QTN_SKINS_ERROR_CORRUPTED ); |
|
668 //Preview the active skin |
|
669 TRAP_IGNORE(iLocalSkinInstance->ApplyL( |
|
670 iModel->VisibleSkin(iModel->ActiveSkinIndex())->FullName(), |
|
671 iSkinItemList )); |
|
672 SetCurrentItemIndex( iModel->ActiveSkinIndex() + modifier); |
|
673 if ( iMSKObserver ) |
|
674 { |
|
675 iMSKObserver->CheckMiddleSoftkeyLabelL(); |
|
676 } |
|
677 } |
|
678 else |
|
679 { |
|
680 User::LeaveIfError(err); |
|
681 } |
|
682 } |
|
683 |
|
684 // This is needed to make the list effects update |
|
685 CAknListLoader::InvalidateAll(); |
|
686 |
|
687 if( PslnFeatures::IsSupported( KPslnSupportFastPreviewTheme ) ) |
|
688 { |
|
689 iPreviewIdle->Start( |
|
690 iPreviewDelayTime, |
|
691 iPreviewIntervalTime, |
|
692 TCallBack( DoHandleEffectEndL, this ) ); |
|
693 } |
|
694 else |
|
695 { |
|
696 iPreviewIdle->Start( |
|
697 KIdlePreviewDelay, |
|
698 KIdlePreviewInterval, |
|
699 TCallBack( DoHandleEffectEndL, this ) ); |
|
700 } |
|
701 } |
|
702 } |
|
703 |
|
704 // --------------------------------------------------------------------------- |
|
705 // Handle effect end. |
|
706 // --------------------------------------------------------------------------- |
|
707 // |
|
708 void CPslnGeneralThemeContainer::HandleEffectEndL() |
|
709 { |
|
710 // First stop timer. |
|
711 iPreviewIdle->Cancel(); |
|
712 static_cast<CPslnUi*>( ControlEnv()->AppUi() )-> |
|
713 ToggleScreenBlankerL( EFalse, EFalse ); |
|
714 iObserver->HandlePreviewStateChange( EFalse ); |
|
715 } |
|
716 |
|
717 |
|
718 |
|
719 // --------------------------------------------------------------------------- |
|
720 // Restart Quick Preview |
|
721 // --------------------------------------------------------------------------- |
|
722 // |
|
723 void CPslnGeneralThemeContainer::RestartQuickPreviewL() |
|
724 { |
|
725 TInt modifier = IsEmbeddedLinkVisible(); |
|
726 TInt activeSkinIndex = iListBox->CurrentItemIndex() - modifier; |
|
727 if( iModel->IsThemeOnMemoryCard(activeSkinIndex) ) |
|
728 { |
|
729 HandleIdleTimeL(); |
|
730 } |
|
731 } |
|
732 |
|
733 // --------------------------------------------------------------------------- |
|
734 // Get Preview Skin Index |
|
735 // --------------------------------------------------------------------------- |
|
736 // |
|
737 TInt CPslnGeneralThemeContainer::PreviewSkinIndex() |
|
738 { |
|
739 // Ignore download skin item if it is available. |
|
740 TInt modifier = IsEmbeddedLinkVisible(); |
|
741 TInt previewSkinIndex = iListBox->CurrentItemIndex() - modifier; |
|
742 |
|
743 TBool usbAttached = static_cast<CPslnUi*>( ControlEnv()->AppUi() )->USBAttachState(); |
|
744 |
|
745 if( !iModel->IsValidForPreview(previewSkinIndex) ) |
|
746 { |
|
747 // If skin file on memorycard and usb attached, preview default skin. |
|
748 previewSkinIndex = 0; |
|
749 } |
|
750 else if( iModel->IsThemeOnMemoryCard( previewSkinIndex ) && usbAttached) |
|
751 { |
|
752 // If skin file didn't exist, preview default skin. |
|
753 previewSkinIndex = 0; |
|
754 } |
|
755 return previewSkinIndex; |
|
756 } |
|
757 |
|
758 // --------------------------------------------------------------------------- |
|
759 // Set theme preview state active. |
|
760 // --------------------------------------------------------------------------- |
|
761 // |
|
762 void CPslnGeneralThemeContainer::SetPreviewStateActive() |
|
763 { |
|
764 iObserver->HandlePreviewStateChange( ETrue ); |
|
765 } |
|
766 |
|
767 // --------------------------------------------------------------------------- |
|
768 // Checks if current focus theme is in preview state. |
|
769 // --------------------------------------------------------------------------- |
|
770 // |
|
771 TBool CPslnGeneralThemeContainer::CurrentThemeInPreviewState() |
|
772 { |
|
773 return iListBox->CurrentItemIndex() != iActiveSkinItemIndex; |
|
774 } |
|
775 |
|
776 // ----------------------------------------------------------------------------- |
|
777 // Load preview delay time settings from CenRep. |
|
778 // ----------------------------------------------------------------------------- |
|
779 // |
|
780 void CPslnGeneralThemeContainer::InitPreviewTime() |
|
781 { |
|
782 //load from cenrep |
|
783 iPreviewDelayTime = KErrNone; |
|
784 iPreviewDelayTimeOnHardKey = KErrNone; |
|
785 iPreviewIntervalTime = KErrNone; |
|
786 CRepository* timeRepository = NULL; |
|
787 TRAPD( err, timeRepository = CRepository::NewL( KCRUidThemes ) ); |
|
788 if( err != KErrNone ) |
|
789 { |
|
790 return; |
|
791 } |
|
792 timeRepository->Get( KThemesPreviewDelayTime, iPreviewDelayTime ); |
|
793 timeRepository->Get( KThemesPreviewDelayTimeOnHardKey, iPreviewDelayTimeOnHardKey ); |
|
794 timeRepository->Get( KThemesPreviewIntervalTime, iPreviewIntervalTime ); |
|
795 delete timeRepository; |
|
796 timeRepository = NULL; |
|
797 } |
|
798 |
|
799 // ----------------------------------------------------------------------------- |
|
800 // Show Error Note. |
|
801 // ----------------------------------------------------------------------------- |
|
802 // |
|
803 void CPslnGeneralThemeContainer::ShowErrorNoteL( TInt aResourceId ) |
|
804 { |
|
805 HBufC* errorText = StringLoader::LoadLC(aResourceId); |
|
806 CAknErrorNote * note = new(ELeave) CAknErrorNote (EFalse); |
|
807 note->ExecuteLD(*errorText); |
|
808 CleanupStack::PopAndDestroy(errorText); |
|
809 } |
|
810 |
|
811 // ----------------------------------------------------------------------------- |
|
812 // Handle Pointer Event. |
|
813 // ----------------------------------------------------------------------------- |
|
814 // |
|
815 void CPslnGeneralThemeContainer::HandlePointerEventL( const TPointerEvent &aPointerEvent ) |
|
816 { |
|
817 // Cancel this kind of preview, in conflict with kinetic scrolling. |
|
818 /* |
|
819 // Launch theme preview when pen up, in case pen is out of listbox. |
|
820 if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) |
|
821 { |
|
822 iObserver->HandlePreviewStateChange( ETrue ); |
|
823 StartThemePreviewL( ETrue ); |
|
824 } |
|
825 */ |
|
826 |
|
827 CCoeControl::HandlePointerEventL( aPointerEvent ); |
|
828 } |
|
829 |
|
830 // End of File |
296 // End of File |