calendarui/settings/settingsui/inc/calenbooleansettingitem.h
author andy simpson <andrews@symbian.org>
Thu, 02 Sep 2010 15:47:07 +0100
branchRCL_3
changeset 67 1539a383d7b6
parent 0 f979ecb2b13e
permissions -rw-r--r--
Merge after removal of incorrect RCL_3 drop

/*
* Copyright (c) 2008 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:   Calendar checkbox setting item
*
*/



#ifndef CALENBOOLEANSETTINGITEM_H_
#define CALENBOOLEANSETTINGITEM_H_

//System include
#include <e32def.h>
#include <aknsettingitemlist.h>

// FORWARD DECLARATIONS
class CSelectionItemList;
class CCalenCustomisationManager;
class TCalenPluginAvailability;

// CLASS DECLARATION
/**
 * CCalenCheckboxSettingItem - a checkbox setting item for calendar.
 * In this case, used to enable and disable plugins.
 */
class CCalenBooleanSettingItem : public CAknBinaryPopupSettingItem
    {
    public:
        
        static CCalenBooleanSettingItem* NewLC(TInt aId,
                                                TInt aOridinal,
                                                CCalenCustomisationManager& aCustMan);
        
        ~CCalenBooleanSettingItem();
        
    private:
        CCalenBooleanSettingItem(TInt aId,
                                    CCalenCustomisationManager& aCustMan);
        
        void ConstructL(TInt aOrdinal);
   
    protected:// From base classes
       /**
       * Edits the item.
       */
        void EditItemL( TBool aCalledFromMenu );
        
        // From CAknBinaryPopupSettingItem 
        virtual void StoreL();
        
        virtual void LoadL();
           
    private:
        /**
         * Matches a uid to an array item's uid. Used in Find().
         */
        static TBool PluginUidFinder( const TUid* aUid, 
                                          const CImplementationInformation& aArrayItem );
        
        
    private:
        CCalenCustomisationManager& iCustMan; //Not owns
        TBool iInternalValue; //Set internally to CAknBinaryPopupSettingItem

    };

#endif /*CALENBOOLEANSETTINGITEM_H_*/