psln/pslnslidesetdialog/src/pslnslidesetwallpaperdialog.cpp
changeset 37 89c890c70182
parent 34 6b5204869ed5
child 45 667edd0b8678
--- a/psln/pslnslidesetdialog/src/pslnslidesetwallpaperdialog.cpp	Fri Jun 25 18:53:58 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,318 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Wallpaper slide set setting dialog.
-*
-*/
-
-
-// General
-#include <e32std.h>
-#include <StringLoader.h>
-#include <csxhelp/skins.hlp.hrh>
-
-// Central repository.
-#include <centralrepository.h>
-#include <AknSkinsInternalCRKeys.h>
-#include <pslninternalcrkeys.h>
-
-// From AVKON
-#include <avkon.hrh>
-#include <aknappui.h>
-#include <aknradiobuttonsettingpage.h>
-#include <AknsSrvClient.h>
-
-// Psln Slide set specific.
-#include "pslnslidesetwallpaperdialog.h"
-#include "pslnslidesetdialog.hrh"
-#include "pslnslidesetmodel.h"
-#include "pslnslidesetconst.h"
-
-// Resources
-#include <pslnslidesetdialogrsc.rsg>
-
-const TInt KPslnSsSettingsItemArray = 6;
-const TInt KPslnSsSlideSetType = 2;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CPslnWallpaperSlidesetDialog::CPslnWallpaperSlidesetDialog()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CPslnWallpaperSlidesetDialog::ConstructL()
-    {
-#ifndef RD_SLIDESHOW_WALLPAPER
-    User::Leave( KErrNotSupported );
-#endif // RD_SLIDESHOW_WALLPAPER
-    BaseConstructL(
-        GetDialogFlag( CPslnSlidesetDialogInterface::EPslnDialogType ) );
-
-    iSlideSetTypeItems = iCoeEnv->ReadDesC16ArrayResourceL(
-        R_PSLN_SLIDESET_TYPE_WP_SETTING_PAGE_LBX );
-
-    // Add each line separately, since it needs language-dependant conversion.
-    iIntervalItems = new( ELeave ) CDesCArrayFlat( KPslnSsSettingsItemArray );
-    AppendIntervalItemL( R_PSLN_SLIDESET_INTERVAL_1_MINUTE );
-    AppendIntervalItemL( R_PSLN_SLIDESET_INTERVAL_10_MINUTE );
-    AppendIntervalItemL( R_PSLN_SLIDESET_INTERVAL_30_MINUTE );
-    AppendIntervalItemL( R_PSLN_SLIDESET_INTERVAL_1_HOUR );
-    AppendIntervalItemL( R_PSLN_SLIDESET_INTERVAL_1_DAY );
-    }
-
-// -----------------------------------------------------------------------------
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CPslnWallpaperSlidesetDialog* CPslnWallpaperSlidesetDialog::NewL()
-    {
-    CPslnWallpaperSlidesetDialog* self = NewLC();
-    CleanupStack::Pop(); // Self
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CPslnWallpaperSlidesetDialog* CPslnWallpaperSlidesetDialog::NewLC()
-    {
-    CPslnWallpaperSlidesetDialog* self =
-        new ( ELeave ) CPslnWallpaperSlidesetDialog();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// Destructor
-CPslnWallpaperSlidesetDialog::~CPslnWallpaperSlidesetDialog()
-    {
-    // base class destroys iSlideSetTypeItems.
-    delete iIntervalItems;
-    }
-
-// -----------------------------------------------------------------------------
-// Executes dialog.
-// -----------------------------------------------------------------------------
-//
-TInt CPslnWallpaperSlidesetDialog::ExecuteDialogLD()
-    {
-    return CAknDialog::ExecuteLD( R_PSLN_SETTINGS_DIALOG );
-    }
-
-// -----------------------------------------------------------------------------
-// Configures dialog.
-// -----------------------------------------------------------------------------
-//
-void CPslnWallpaperSlidesetDialog::SetDialogFlag(
-    const TInt aFlag, const TInt aValue )
-    {
-    switch( aFlag )
-        {
-        case CPslnSlidesetDialogInterface::EPslnDialogType:
-            // Cannot be changed.
-            break;
-        case CPslnSlidesetDialogInterface::EPslnLaunchMode:
-            if ( aValue == CPslnSlidesetDialogInterface::EPslnNormal ||
-                 aValue == CPslnSlidesetDialogInterface::EPslnConfigureOnly )
-                {
-                iLaunchMode = aValue;
-                }
-            break;
-        default:
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// Queries for dialog parameters.
-// -----------------------------------------------------------------------------
-//
-TInt CPslnWallpaperSlidesetDialog::GetDialogFlag( const TInt aFlag )
-    {
-    TInt flagValue = KErrNotFound;
-    switch( aFlag )
-        {
-        case CPslnSlidesetDialogInterface::EPslnDialogType:
-            flagValue = EPslnWallpaperDialog;
-            break;
-        case CPslnSlidesetDialogInterface::EPslnLaunchMode:
-            flagValue = iLaunchMode;
-            break;
-        case CPslnSlidesetDialogInterface::EPslnConfigurability:
-            TRAP_IGNORE( flagValue = DeduceActivationModeL() );
-            break;
-        default:
-            break;
-        }
-    return flagValue;
-    }
-
-// -----------------------------------------------------------------------------
-// Layouts dialog before showing it.
-// -----------------------------------------------------------------------------
-//
-void CPslnWallpaperSlidesetDialog::PreLayoutDynInitL()
-    {
-    // Set title pane text.
-    SetTitlePaneL( R_PSLN_SLIDESET_WALLPAPER_DIALOG_TITLE );
-    // Set middle softkey as Change.
-    CPslnSlidesetDialog::SetMiddleSoftKeyLabelL(
-        R_PSLN_MSK_CHANGE,
-        EPslnCmdAppSetWallpaper );
-    CPslnSlidesetDialog::PreLayoutDynInitL();
-    }
-
-// -----------------------------------------------------------------------------
-// Process command.
-// -----------------------------------------------------------------------------
-//
-void CPslnWallpaperSlidesetDialog::ProcessCommandL( TInt aCommandId )
-    {
-    CPslnSlidesetDialog::ProcessCommandL( aCommandId );
-    }
-
-// -----------------------------------------------------------------------------
-// Reimplements CAknDialog::OkToExitL.
-// Possibly stores wallpaper type to cenrep.
-// -----------------------------------------------------------------------------
-//
-TBool CPslnWallpaperSlidesetDialog::OkToExitL( TInt aButtonId )
-    {
-    if ( CPslnSlidesetDialog::IsFeatureSupported( EPslnSlideSetFeatureRandom ) )
-        {
-        CRepository* repository = CRepository::NewL( KCRUidThemes );
-        TInt slideSetType = KErrNotFound;
-        repository->Get( KThemesWallpaperSlideSetType, slideSetType );
-        delete repository;
-        // If Random is selected, then set slide type wallpaper active.
-        if ( ( slideSetType == KPslnSlideSetRandomIndex ) &&
-             ( iLaunchMode == CPslnSlidesetDialogInterface::EPslnNormal ) )
-            {
-            CRepository* repository2 =
-                CRepository::NewL( KCRUidPersonalisation );
-            repository2->Set(
-                KPslnWallpaperType,
-                KPslnSsSlideSetType );
-            delete repository2;
-            }
-        }
-    return CPslnSlidesetDialog::OkToExitL( aButtonId );
-    }
-
-
-// -----------------------------------------------------------------------------
-// Adds setting list items to listbox.
-// -----------------------------------------------------------------------------
-//
-void CPslnWallpaperSlidesetDialog::CreateListBoxItemsL()
-    {
-    iItems = iCoeEnv->ReadDesC16ArrayResourceL(
-        R_PSLN_WALLPAPER_SLIDE_SETTING_LBX_ITEMS );
-    CPslnSlidesetDialog::MakeItemL( EPslnSlideSetImagesId );
-    CPslnSlidesetDialog::MakeItemL( EPslnSlideSetDurationId ); // regard as interval
-    }
-
-// ---------------------------------------------------------------------------
-// Gets help context for Help application.
-// ---------------------------------------------------------------------------
-//
-void CPslnWallpaperSlidesetDialog::GetHelpContext(
-    TCoeHelpContext& aContext ) const
-    {
-    aContext.iMajor = KUidPsln;
-    aContext.iContext = KSCREENSAVER_HLP_WP_SETTINGS;
-    }
-
-// -----------------------------------------------------------------------------
-// Show slide set image interval peridod setting page.
-// -----------------------------------------------------------------------------
-//
-void CPslnWallpaperSlidesetDialog::ShowIntervalListL()
-    {
-    // Retrieve title txt.
-    TInt titleResourceID = R_PSLN_INTERVAL_SLIDE_PAGE_TITLE;
-    HBufC* titleText = StringLoader::LoadLC( titleResourceID );
-
-    // Retrieve current setting page value.
-    TInt currentValue = iModel->GetSlideSetInterval();
-
-    // Create & show the setting page.
-    CAknRadioButtonSettingPage* dlg =
-        new( ELeave ) CAknRadioButtonSettingPage(
-            titleText,
-            EAknSettingPageNoOrdinalDisplayed,
-            EAknCtSettingPage,
-            0,
-            R_PSLN_IMAGE_SELECTION_SETTING_PAGE,
-            currentValue,
-            iIntervalItems );
-    dlg->SetSettingId( EPslnSlideSetIntervalId );
-    dlg->SetSettingPageObserver( this );
-    dlg->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted );
-    // Base class stores new value to CenRep.
-
-    CleanupStack::PopAndDestroy( titleText );
-    }
-
-// -----------------------------------------------------------------------------
-// Deduce if the slide set can be activated without showing the dialog.
-// -----------------------------------------------------------------------------
-//
-TInt CPslnWallpaperSlidesetDialog::DeduceActivationModeL()
-    {
-    TInt retValue = CPslnSlidesetDialogInterface::EPslnNeedsToBeConfigured;
-    if ( CPslnSlidesetDialog::IsFeatureSupported( EPslnSlideSetFeatureRandom ) )
-        {
-        CRepository* repository = CRepository::NewL( KCRUidThemes );
-        TInt slideSetType = KErrNotFound;
-        repository->Get( KThemesWallpaperSlideSetType, slideSetType );
-        delete repository;
-        // If selection type is set to random, then direct activation
-        // is possible.
-        if ( slideSetType == KPslnSlideSetRandomIndex )
-            {
-            return CPslnSlidesetDialogInterface::EPslnDirectActivationPossible;
-            }
-        }
-    // If slide set image list file exists, direct activation is allowed.
-    if ( iModel->SlideSetImageFileExistsL( EAknsSrvInifileSSWP ) &&
-         iModel->GetImageCountInSlideSetL( EAknsSrvInifileSSWP ) > 1 )
-        {
-        retValue = CPslnSlidesetDialogInterface::EPslnDirectActivationPossible;
-        }
-    return retValue;
-    }
-
-// -----------------------------------------------------------------------------
-// Append one line to interval setting list - make language dependant conversion.
-// -----------------------------------------------------------------------------
-//
-void CPslnWallpaperSlidesetDialog::AppendIntervalItemL( TInt aResourceText )
-    {
-    HBufC* text = iCoeEnv->AllocReadResourceLC( aResourceText );
-    TPtr ptr = text->Des();
-    AknTextUtils::LanguageSpecificNumberConversion( ptr );
-    iIntervalItems->AppendL( ptr  );
-    CleanupStack::PopAndDestroy();  // textFromResourceFile
-    }
-
-// End of File