psln/Src/PslnScreenSaverView.cpp
changeset 14 3320e4e6e8bb
parent 0 2f259fa3e83a
equal deleted inserted replaced
0:2f259fa3e83a 14:3320e4e6e8bb
    19 // INCLUDE FILES
    19 // INCLUDE FILES
    20 
    20 
    21 // RProperty keys.
    21 // RProperty keys.
    22 #include <e32cmn.h>
    22 #include <e32cmn.h>
    23 #include <e32def.h>
    23 #include <e32def.h>
    24 #include <ScreensaverInternalPSKeys.h>
       
    25 #include <ScreensaverInternalCRKeys.h>
       
    26 
    24 
    27 // Central repository.
    25 // Central repository.
    28 #include <centralrepository.h>
    26 #include <centralrepository.h>
    29 #include <cenrepnotifyhandler.h>
    27 #include <cenrepnotifyhandler.h>
    30 
    28 
    70     {
    68     {
    71     BaseConstructL( R_PSLN_SCREENSAVER_VIEW );
    69     BaseConstructL( R_PSLN_SCREENSAVER_VIEW );
    72 
    70 
    73     iNaviPaneContext = iPslnUi->PslnTabGroup();
    71     iNaviPaneContext = iPslnUi->PslnTabGroup();
    74 
    72 
    75     iScreenSaverRepository = CRepository::NewL( KCRUidScreenSaver );
    73     iScreenSaverRepository = NULL;
    76     iScreenSaverNotifier = CCenRepNotifyHandler::NewL(
    74     iScreenSaverNotifier = CCenRepNotifyHandler::NewL(
    77         *this,
    75         *this,
    78         *iScreenSaverRepository,
    76         *iScreenSaverRepository,
    79         CCenRepNotifyHandler::EIntKey,
    77         CCenRepNotifyHandler::EIntKey,
    80         KScreenSaverObject );
    78         NULL );
    81 
    79 
    82     // Load screensavers.
    80     // Load screensavers.
    83     iModel->LoadScreensaverArrayL();
    81     iModel->LoadScreensaverArrayL();
    84     }
    82     }
    85 
    83 
   305     if ( self->iPreviewStateSubscriber )
   303     if ( self->iPreviewStateSubscriber )
   306         {
   304         {
   307         self->iPreviewStateProperty.Get( value );
   305         self->iPreviewStateProperty.Get( value );
   308         }
   306         }
   309 
   307 
   310     if ( value == EScreenSaverPreviewNone ||
       
   311          value == EScreenSaverPreviewEnd ||
       
   312          value == EScreenSaverPreviewCancel ||
       
   313          value == EScreenSaverPreviewError ||
       
   314          value == EScreenSaverPreviewInvalid )
       
   315         {
       
   316 
       
   317         // Stop listening for preview mode changes.
       
   318         if ( self->iPreviewStateSubscriber )
       
   319             {
       
   320             self->iPreviewStateSubscriber->Cancel();
       
   321             }
       
   322         }
       
   323     else
       
   324         {
       
   325         switch ( value )
       
   326             {
       
   327             case EScreenSaverPreviewLoading:
       
   328                 self->LaunchNote();
       
   329                 break;
       
   330             case EScreenSaverPreviewLoaded:
       
   331             case EScreenSaverPreviewStart:
       
   332                 self->RemoveNote();
       
   333                 break;
       
   334             default:
       
   335                 break;
       
   336             }
       
   337         }
       
   338     return KErrNone;
   308     return KErrNone;
   339     }
   309     }
   340 
   310 
   341 // -----------------------------------------------------------------------------
   311 // -----------------------------------------------------------------------------
   342 // Screensaver array needs to be loaded before activating the view.
   312 // Screensaver array needs to be loaded before activating the view.
   508 
   478 
   509 // -----------------------------------------------------------------------------
   479 // -----------------------------------------------------------------------------
   510 // If wallpaper image has changed, update container.
   480 // If wallpaper image has changed, update container.
   511 // -----------------------------------------------------------------------------
   481 // -----------------------------------------------------------------------------
   512 //
   482 //
   513 void CPslnScreenSaverView::HandleNotifyInt( TUint32 aId, TInt /*aNewValue*/ )
   483 void CPslnScreenSaverView::HandleNotifyInt( TUint32 /*aId*/, TInt /*aNewValue*/ )
   514     {
   484     {
   515     if ( aId != KScreenSaverObject )
       
   516         {
       
   517         return;
       
   518         }
       
   519 
   485 
   520     TInt value = KErrNone;
   486     TInt value = KErrNone;
   521     if ( iPreviewModeSubscriber )
   487     if ( iPreviewModeSubscriber )
   522         {
   488         {
   523         iPreviewModeProperty.Get( value );
   489         iPreviewModeProperty.Get( value );
   536 // If the whole repository changes, update container.
   502 // If the whole repository changes, update container.
   537 // -----------------------------------------------------------------------------
   503 // -----------------------------------------------------------------------------
   538 //
   504 //
   539 void CPslnScreenSaverView::HandleNotifyGeneric( TUint32 aId )
   505 void CPslnScreenSaverView::HandleNotifyGeneric( TUint32 aId )
   540     {
   506     {
   541     if ( ( aId == NCentralRepositoryConstants::KInvalidNotificationId ||
   507     if (  aId == NCentralRepositoryConstants::KInvalidNotificationId || iContainer )
   542            aId == KScreenSaverObject ) && iContainer )
       
   543         {
   508         {
   544         // Update container.
   509         // Update container.
   545         TRAP_IGNORE(
   510         TRAP_IGNORE(
   546             static_cast<CPslnScreenSaverContainer*>
   511             static_cast<CPslnScreenSaverContainer*>
   547                 (iContainer)->UpdateListBoxL() );
   512                 (iContainer)->UpdateListBoxL() );
   640 // -----------------------------------------------------------------------------
   605 // -----------------------------------------------------------------------------
   641 //
   606 //
   642 void CPslnScreenSaverView::HandleScreenSaverSettingsL( TInt aCurrentItem )
   607 void CPslnScreenSaverView::HandleScreenSaverSettingsL( TInt aCurrentItem )
   643     {
   608     {
   644     // Indicate to the plugin that active screensaver is possibly modified.
   609     // Indicate to the plugin that active screensaver is possibly modified.
   645     TInt selectedItem = iModel->CurrentPropertyIndexL( KPslnScreenSettingId );
       
   646     if ( selectedItem == aCurrentItem )
       
   647         {
       
   648         User::LeaveIfError(
       
   649             RProperty::Set(
       
   650                 KPSUidScreenSaver,
       
   651                 KScreenSaverPluginSettingsChanged,
       
   652                 EScreenSaverPluginSettingsChanging ) );
       
   653         }
       
   654     // Configure plugin.
   610     // Configure plugin.
   655     TRAP_IGNORE( DoInvokeScreenSaverFunctionL(
   611     TRAP_IGNORE( DoInvokeScreenSaverFunctionL(
   656         aCurrentItem,
   612         aCurrentItem,
   657         EScpCapsConfigure ) );
   613         EScpCapsConfigure ) );
   658     }
   614     }
   743 //
   699 //
   744 void CPslnScreenSaverView::CreatePreviewModeSubscriberL()
   700 void CPslnScreenSaverView::CreatePreviewModeSubscriberL()
   745     {
   701     {
   746     if ( !iPreviewModeSubscriber )
   702     if ( !iPreviewModeSubscriber )
   747         {
   703         {
   748         User::LeaveIfError(
       
   749             iPreviewModeProperty.Attach(
       
   750                 KPSUidScreenSaver,
       
   751                 KScreenSaverPreviewMode ) );
       
   752         iPreviewModeSubscriber =
   704         iPreviewModeSubscriber =
   753             new (ELeave) CPslnPropertySubscriber(
   705             new (ELeave) CPslnPropertySubscriber(
   754                 TCallBack( HandlePreviewModeChanged, this ),
   706                 TCallBack( HandlePreviewModeChanged, this ),
   755                 iPreviewModeProperty );
   707                 iPreviewModeProperty );
   756         }
   708         }
   759 
   711 
   760 void CPslnScreenSaverView::CreatePreviewStateSubscriberL()
   712 void CPslnScreenSaverView::CreatePreviewStateSubscriberL()
   761     {
   713     {
   762     if ( !iPreviewStateSubscriber )
   714     if ( !iPreviewStateSubscriber )
   763         {
   715         {
   764         User::LeaveIfError(
       
   765                 iPreviewStateProperty.Attach(
       
   766                 KPSUidScreenSaver,
       
   767                 KScreenSaverPreviewState ) );
       
   768         iPreviewStateSubscriber =
   716         iPreviewStateSubscriber =
   769             new (ELeave) CPslnPropertySubscriber(
   717             new (ELeave) CPslnPropertySubscriber(
   770                 TCallBack( HandlePreviewStateChanged, this ),
   718                 TCallBack( HandlePreviewStateChanged, this ),
   771                 iPreviewStateProperty );
   719                 iPreviewStateProperty );
   772         }
   720         }