scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimSettingDialog.cpp
branchRCL_3
changeset 22 aaeeca1f15af
parent 21 724d4ec22f0d
child 23 e8d784ac1a4b
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimSettingDialog.cpp	Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,470 +0,0 @@
-/*
-* Copyright (c) 2005 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:     This file implements the Setting Dialog which
-*                is used to display Settings container
-*
-*/
-
-
-
-
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon/eikctrlstatus.h>
-#endif
-#include <e32std.h>
-#include <AknDialog.h>
-#include <coeaui.h>
-#include <eikenv.h>
-#include <bautils.h>
-#include <eikdialg.h>
-#include <eikmenup.h>
-#include <eikspane.h>
-
-#ifdef __SERIES60_HELP
-#include <hlplch.h>
-#endif // __SERIES60_HELP
-
-#ifdef __SERIES60_HELP
-// Help Context UID = DLL UID3
-const TUid KScreenSaverAnimPluginHelpContextUid = { 0x10207447 };
-#endif // __SERIES60_HELP
-
-#include <coeaui.h>
-#include <AknWaitNoteWrapper.h>
-#include <aknnotewrappers.h>
-#include <akntitle.h>
-#include <data_caging_path_literals.hrh>
-#include <StringLoader.h>
-#include <screensaveranimplugin.rsg>
-//-----------
-// USER INCLUDES
-#include "ScreenSaverAnimPlugin.h"
-#include "ScreenSaverAnimPlugin.hrh"
-#include "ScreenSaverAnimSettingDialog.h"
-#include "ScreenSaverAnimPluginContainer.h"
-#include "screensaver.hlp.hrh"
-
-// Middle softkey control ID
-const TInt KSanimMSKControlID = 3;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::CScreenSaverAnimSettingDialog
-// Default Constructor. Initialises Dialog State Variables.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimSettingDialog::CScreenSaverAnimSettingDialog( 
-                               CScreenSaverAnimPlugin* aCaller, 
-                               CScreenSaverAnimSettingObject* aSettingObject )
-    :iSettingObject( aSettingObject ),
-    iCaller( aCaller )
-    {
-    iCustControl = NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::ConstructL
-// Second Phase Constructor for CScreenSaverAnimSettingDialog. Opens resource file, reads the
-// dialog menu resource and calls CAknDialog::ConstructL with the resource as
-// param.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::ConstructL()
-    {  
-    CAknDialog::ConstructL( R_SANIM_DIALOG_MENUBAR );
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::NewL
-// Factory function for creating CScreenSaverAnimSettingDialog objects.
-// Returns: CScreenSaverAnimSettingDialog* ; Pointer to the created object.
-//          Leaves if error occurs during creation.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimSettingDialog* CScreenSaverAnimSettingDialog::NewL( 
-                                 CScreenSaverAnimPlugin* aCaller,
-                                 CScreenSaverAnimSettingObject* aSettingObject )
-    {
-    CScreenSaverAnimSettingDialog* self = CScreenSaverAnimSettingDialog::NewLC(
-                                             aCaller,
-                                             aSettingObject );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::NewLC
-// Factory function for creating CScreenSaverAnimSettingDialog objects.
-// It also pushes the created dialog object onto the cleanup stack.
-// Returns: CScreenSaverAnimSettingDialog* ; Pointer to the created object.
-//          Leaves if error occurs during creation.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimSettingDialog* CScreenSaverAnimSettingDialog::NewLC(
-                                CScreenSaverAnimPlugin* aCaller,
-                                CScreenSaverAnimSettingObject* aSettingObject )
-    {
-    CScreenSaverAnimSettingDialog* self = new ( ELeave ) 
-                     CScreenSaverAnimSettingDialog( aCaller, aSettingObject );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// Destructor
-CScreenSaverAnimSettingDialog::~CScreenSaverAnimSettingDialog()
-    {
-    if (this->IsFocused())
-        {
-        CEikDialog::ButtonGroupContainer().RemoveCommandObserver(
-            KSanimMSKControlID );
-        }
-
-    // Custom Control will be automatically destroyed by dialog framework
-    iCustControl = NULL;
-
-    // Set the text in status pane to the stored one            
-    if (iAppTitleText)
-        {
-        // Get the Status Pane Control
-        CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
-        // Get the title pane 
-        CAknTitlePane* tp = NULL;
-        TRAPD( errGetControl, 
-            tp = static_cast< CAknTitlePane* >( sp->ControlL( 
-            TUid::Uid( EEikStatusPaneUidTitle ) ) ) );
-        if ( errGetControl == KErrNone && tp )
-            {
-            //set application name in the title pane
-            TRAPD( errSetText, 
-                tp->SetTextL( *iAppTitleText ) );
-            if ( errSetText != KErrNone )
-                {
-                // No error handling here
-                }
-            }
-
-        delete iAppTitleText;
-        iAppTitleText = NULL;
-        }
-
-        delete iTitlePaneString;
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::ExecuteLD
-// Reimplements CAknDialog::ExecuteLD. It initialises the member variables of
-// the class and calls CAknDialog::ExecuteLD() with the dialog resource.
-// -----------------------------------------------------------------------------
-//
-TInt CScreenSaverAnimSettingDialog::ExecuteLD()
-    {
-#ifdef SCREENSAVER_LOG_ENABLED
-    _LIT( msg, "In Executeld dlg" );
-    PrintDebugMsg( msg );
-#endif
-
-    // Save this pointer since there are leaving functions in the flow
-    CleanupStack::PushL( this );    
-
-    // Get the Status Pane Control
-    CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
-
-    // Get the Title Pane Control
-    CAknTitlePane* tp = static_cast< CAknTitlePane* >( sp->ControlL(
-            TUid::Uid( EEikStatusPaneUidTitle ) ) );
-
-    // Store the Application's title text
-    iAppTitleText = HBufC::NewL( tp->Text()->Length() );
-    *iAppTitleText = *tp->Text();
-
-    // Display Settings in the title pane of application
-    iTitlePaneString = NULL;
-    iTitlePaneString = StringLoader::LoadL( R_SANIM_TITLE_SETTINGS,
-                                          iEikonEnv );
-    // SetTextL also ensures that if the length exceeds the layout space
-    // available the text is truncated from the end.
-    tp->SetTextL( iTitlePaneString->Des() );
-
-    // ExecuteLD will delete this, so we have to Pop it...
-    CleanupStack::Pop( this ); // this
-
-    return CAknDialog::ExecuteLD( R_SANIM_SETTING_DIALOG );
-
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::DynInitMenuPaneL
-// Reimplements CAknDialog::DynInitMenuPaneL inorder to support dynamic hiding
-// of menu items based on current state of the viewer.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::DynInitMenuPaneL(
-    TInt aResourceId,           // Resource Id for which this func is called
-    CEikMenuPane* aMenuPane )   // Menupane object pointer for manipulation
-    {
-    if ( ( aResourceId == R_SANIM_DIALOG_MENU ) && ( aMenuPane ) )
-        {
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// Layouts dialog before showing it.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::PreLayoutDynInitL()
-    {
-    // Set middle softkey as Change. 
-    SetMiddleSoftKeyLabelL( R_SANIM_MSK_CHANGE, ESanimDlgChangeCommand );
-
-    CAknDialog::PreLayoutDynInitL();
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::OkToExitL
-// Reimplements CAknDialog::OkToExitL inorder to display custom menu and
-// trap the back softkey to provide restore view functionality/exit.
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimSettingDialog::OkToExitL( TInt aButtonId ) // ButtonId of button pressed
-    {
-    if ( aButtonId == EAknSoftkeyOptions )
-        {
-        DisplayMenuL();
-        return EFalse;
-        }
-    else
-        {
-        if ( aButtonId == EAknSoftkeyBack )
-            {
-            }
-        else
-            {
-            // Especially handle Select Key
-            if ( ( aButtonId == EAknSoftkeySelect ) ||
-                 ( aButtonId == EEikBidOk ) ||
-                 ( aButtonId == ESanimDlgChangeCommand ) )
-                {
-                // Select button pressed, handle, do not leave dialog
-                ProcessCommandL( ESanimDlgChangeCommand );
-                return EFalse;
-                }
-            if ( aButtonId == EEikCmdExit )
-                {
-                }
-            }
-        }
-
-    return ETrue;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::HandleApplicationForegroundEvent
-// This API is used by the application to give background/foreground events
-// to the Dialog. The dialog inturn passes the events to custom control.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::HandleApplicationForegroundEvent( TBool 
-                                                 /*aForeground*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::ProcessCommandL
-// Reimplements CAknDialog::ProcessCommandL inorder to handle dialog menu
-// commands.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::ProcessCommandL( TInt aCommandId )  // Command Id
-    {
-    // The Commands are handled by the custom CCoe Control and
-    // a boolean varialble is used inorder to keep track whether
-    // the control command processing needs to be invoked or not.
-    CAknDialog::ProcessCommandL( aCommandId );
-    switch ( aCommandId )
-        {
-        case ESanimDlgChangeCommand:
-        if ( iCustControl )
-            {
-            iCustControl->HandleListBoxSelectionL();
-            }
-            break;
-        case ESanimDlgHelpCommand:
-            {
-#ifdef __SERIES60_HELP
-            HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
-                iEikonEnv->EikAppUi()->AppHelpContextL() );
-#endif
-            }
-            break;
-        case EAknSoftkeyBack: // Fall Through
-        case EEikCmdExit:
-        case EAknCmdExit:
-            // Close this dialog
-            TryExitL( aCommandId );
-            iAvkonAppUi->ProcessCommandL( aCommandId );
-            break;
-        default:
-            break;
-        }
-    }
-
-#ifdef __SERIES60_HELP
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::OfferKeyEventL
-// Handles Key events by reimplementing CCoeControl::OfferKeyEventL.
-// Returns:
-//      EKeyWasConsumed: If this control uses this key.
-//      EKeyWasNotConsumed: Otherwise.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::GetHelpContext( TCoeHelpContext& 
-                                                    aContext ) const
-    {
-    aContext.iMajor = KScreenSaverAnimPluginHelpContextUid;
-    aContext.iContext = KSCREENSAVER_HLP_ANIM_SETTINGS;
-    }
-#endif // __SERIES60_HELP
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::CreateCustomControlL
-// Reimplements CAknDialog::CreateCustomControlL inorder to add the 
-// custom control as part of the dialog in the UI framework.
-// Returns: SEikControlInfo which contains the Cust Control, if
-//                          aControlType == ESanimCustControl
-//                     else,
-//                           the structure does not contain any control.
-// -----------------------------------------------------------------------------
-//
-SEikControlInfo CScreenSaverAnimSettingDialog::CreateCustomControlL(
-        TInt aControlType ) // Control Type
-    {
-#ifdef SCREENSAVER_LOG_ENABLED
-    _LIT( msg, "In Create Custom Control" );
-    PrintDebugMsg( msg );
-#endif
-
-    SEikControlInfo controlInfo;
-    controlInfo.iControl = NULL;
-    controlInfo.iTrailerTextId = 0;
-    controlInfo.iFlags = EEikControlIsNonFocusing;
-
-    switch ( aControlType )
-        {
-        case ESanimCustControl:
-            iCustControl = CScreenSaverAnimPluginContainer::NewL( 
-                                              iCaller,
-                                              this,
-                                              iSettingObject );
-            controlInfo.iControl = iCustControl;
-            break;
-        default:
-            break;
-        }
-    return controlInfo;
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::SizeChanged
-// Reimplements CAknDialog::SizeChanged inorder to support the resize of the
-// dialog when functions such as SetRect, SetExtent are called on the dialog.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::SizeChanged()
-    {
-    CAknDialog::SizeChanged();
-    iCustControl->SetExtent( Rect().iTl, Rect().Size() );
-    DrawNow();
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::OfferKeyEventL
-// Handles Key events by reimplementing CCoeControl::OfferKeyEventL.
-// Returns:
-//      EKeyWasConsumed: If this control uses this key.
-//      EKeyWasNotConsumed: Otherwise.
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CScreenSaverAnimSettingDialog::OfferKeyEventL(
-    const TKeyEvent& aKeyEvent, // Key Event
-    TEventCode aType )           // Event Code
-    {
-    if ( iCustControl )
-        {
-        TKeyResponse lCcRetVal = iCustControl->OfferKeyEventL( aKeyEvent, aType );
-        if ( lCcRetVal == EKeyWasConsumed )
-            {
-            // Key was consumed, UNLESS it was the End key, which should be
-            // passed to base class. For some reason listboxes like to eat
-            // end keys
-            if ( aKeyEvent.iCode != EKeyEscape )
-                {
-                return EKeyWasConsumed;
-                }
-            }
-        }
-    return CAknDialog::OfferKeyEventL( aKeyEvent, aType );
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::HandleResourceChange
-// Handles change of skin/Layout
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::HandleResourceChange( TInt aType )
-    {
-    if ( iCustControl )
-        {
-        iCustControl->HandleResourceChange( aType );
-        }
-    CAknDialog::HandleResourceChange( aType );
-    }
-
-// ---------------------------------------------------------------------------
-// CScreenSaverAnimSettingDialog::FocusChanged
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::FocusChanged( TDrawNow aDrawNow )
-    {
-    // Pass focus changed event to listbox.
-    if ( iCustControl )
-        {
-        iCustControl->SetFocus( IsFocused(), aDrawNow );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// Sets middle softkey label.
-// ---------------------------------------------------------------------------
-//
-void CScreenSaverAnimSettingDialog::SetMiddleSoftKeyLabelL( 
-    const TInt aResourceId, const TInt aCommandId )
-    {
-    HBufC* middleSKText = StringLoader::LoadLC( aResourceId );
-    TPtr mskPtr = middleSKText->Des();
-    CEikDialog::ButtonGroupContainer().AddCommandToStackL( 
-        KSanimMSKControlID, 
-        aCommandId, 
-        mskPtr );
-    CEikDialog::ButtonGroupContainer().UpdateCommandObserverL( 
-        KSanimMSKControlID, 
-        *this );
-    CleanupStack::PopAndDestroy( middleSKText );
-    }
-
-// End of File