homesync/contentmanager/mediaservant/src/mssettingitems.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 04 Oct 2010 00:34:14 +0300
changeset 35 f37b1259bd7b
parent 0 7f85d04be362
permissions -rw-r--r--
Revision: 201037 Kit: 201039

/*
* Copyright (c) 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:  Setting item class implementations
*
*/


#include <aknsettingpage.h>
#include <aknmfnesettingpage.h>
#include <aknsettingitemlist.h>
#include <mediaservant.rsg>
#include "mssettingitems.h"
#include "mediaservant.hrh"

// --------------------------------------------------------------------------
// CMSTextSettingItem::CMSTextSettingItem
// --------------------------------------------------------------------------
//
CMSTextSettingItem::CMSTextSettingItem(  TInt aIdentifier, TDes& aText ) :
    CAknTextSettingItem( aIdentifier, aText )
    {
    }

// --------------------------------------------------------------------------
// CMSTextSettingItem::HandleSettingPageEventL
// --------------------------------------------------------------------------
//
void  CMSTextSettingItem::HandleSettingPageEventL(
                                        CAknSettingPage* aSettingPage,
                                        TAknSettingPageEvent aEventType )
    {
    if ( aEventType == EEventSettingOked )
        {
        iOKPressed = ETrue;
        }
    else
        {
        iOKPressed = EFalse;
        }

    CAknTextSettingItem::HandleSettingPageEventL(
                                            aSettingPage,
                                            aEventType );
    }

// --------------------------------------------------------------------------
// CMSTextSettingItem::SettingAccepted
// --------------------------------------------------------------------------
//
TBool CMSTextSettingItem::SettingAccepted()
    {
    return iOKPressed;
    }

// --------------------------------------------------------------------------
// CMSTextSettingItem::SetAcceptState
// --------------------------------------------------------------------------
//
void CMSTextSettingItem::SetAcceptState( TBool aState )
    {
    iOKPressed = aState;
    }

// --------------------------------------------------------------------------
// CMSTextSettingItem::Text
// --------------------------------------------------------------------------
//
TPtr& CMSTextSettingItem::Text()
    {
    return CAknTextSettingItem::InternalTextPtr();
    }

// --------------------------------------------------------------------------
// CMSTextSettingItem::SetText
// --------------------------------------------------------------------------
//
void CMSTextSettingItem::SetText( TDesC& text )
    {
    CAknTextSettingItem::SetExternalText(text);
    }

// --------------------------------------------------------------------------
// CMSEnumeratedTextPopupSettingItem::CMSEnumeratedTextPopupSettingItem
// --------------------------------------------------------------------------
//
CMSEnumeratedTextPopupSettingItem::CMSEnumeratedTextPopupSettingItem(
                                                        TInt aResourceId,
                                                        TInt& aValue ):
    CAknEnumeratedTextPopupSettingItem( aResourceId, aValue )
    {
    }

// --------------------------------------------------------------------------
// CMSEnumeratedTextPopupSettingItem::HandleSettingPageEventL
// --------------------------------------------------------------------------
//
void  CMSEnumeratedTextPopupSettingItem::HandleSettingPageEventL(
                                        CAknSettingPage* aSettingPage,
                                        TAknSettingPageEvent aEventType )
    {
    if ( aEventType == EEventSettingOked )
        {
        iOKPressed = ETrue;
        }
    else
        {
        iOKPressed = EFalse;
        }

    CAknEnumeratedTextPopupSettingItem::HandleSettingPageEventL(
                                            aSettingPage,
                                            aEventType );
    }

// --------------------------------------------------------------------------
// CMSEnumeratedTextPopupSettingItem::SettingAccepted
// --------------------------------------------------------------------------
//
TBool CMSEnumeratedTextPopupSettingItem::SettingAccepted()
    {
    return iOKPressed;
    }

// --------------------------------------------------------------------------
// CMSEnumeratedTextPopupSettingItem::SetAcceptState
// --------------------------------------------------------------------------
//
void CMSEnumeratedTextPopupSettingItem::SetAcceptState( TBool aState )
    {
    iOKPressed = aState;
    }

// --------------------------------------------------------------------------
// CMSTimeOrDateSettingItem::CMSTimeOrDateSettingItem
// --------------------------------------------------------------------------
//
CMSTimeOrDateSettingItem::CMSTimeOrDateSettingItem( TInt aCMSIdentifier,
                                        TInt aIdentifier,
                                        TAknTimeOrDateSettingItemMode aMode,
                                        TTime& aTime ):
    CAknTimeOrDateSettingItem( aIdentifier, aMode, aTime ),iCMSInternalTime( aTime )
    {
    iCMSIdentifier = aCMSIdentifier;
    }

// --------------------------------------------------------------------------
// CMSTimeOrDateSettingItem::HandleSettingPageEventL
// --------------------------------------------------------------------------
//
void  CMSTimeOrDateSettingItem::HandleSettingPageEventL(
                                        CAknSettingPage* aSettingPage,
                                        TAknSettingPageEvent aEventType )
    {
    if ( aEventType == EEventSettingOked )
        {
        iOKPressed = ETrue;
        // When press OK ,the external time value should transferred to the internal time value immediately
        LoadL();
        }
    else
        {
        iOKPressed = EFalse;
        // When press cancel,externalizes the current setting
        StoreL();
        }

    CAknTimeOrDateSettingItem::HandleSettingPageEventL(
                                            aSettingPage,
                                            aEventType );
    }

// --------------------------------------------------------------------------
// CMSTimeOrDateSettingItem::SettingAccepted
// --------------------------------------------------------------------------
//
TBool CMSTimeOrDateSettingItem::SettingAccepted()
    {
    return iOKPressed;
    }

// --------------------------------------------------------------------------
// CMSTimeOrDateSettingItem::SetAcceptState
// --------------------------------------------------------------------------
//
void CMSTimeOrDateSettingItem::SetAcceptState( TBool aState )
    {
    iOKPressed = aState;
    }

// --------------------------------------------------------------------------
// CMSTimeOrDateSettingItem::EditItemL
// --------------------------------------------------------------------------
//
void CMSTimeOrDateSettingItem::EditItemL( TBool  /*aCalledFromMenu*/ )
    {
    // Access to the setting Name
    TPtrC text = SettingName();
    CAknSettingPage* dlg = KErrNone;

    // Launches the setting page resource file
    dlg = new ( ELeave )CAknDateSettingPage( iCMSIdentifier, iCMSInternalTime );

    // Set the edit page to observer
    SetSettingPage( dlg );
    SettingPage()->SetSettingPageObserver( this );

    if( ProtectionState() == CAknSettingItem::ESettingItemViewOnly )
        SettingPage()->SetEditState( EFalse );

    // Change to EUpdateWhenAccepted flag to avoid the checking every time there is an input to the field
    SettingPage()->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted );
    SetSettingPage( 0 );
   }
// End of File