landmarksui/app/inc/CLmkCategoryContentsContainer.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:31:27 +0100
branchRCL_3
changeset 18 870918037e16
parent 0 522cd55cc3d7
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2002 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:    LandmarksUi Content File -    LM application category content view's container class.
*
*/


#ifndef CLMKCATEGORYCONTENTSCONTAINER_H
#define CLMKCATEGORYCONTENTSCONTAINER_H

// INCLUDES
#include <coecobs.h>
#include "CLmkLbWithFilterContainer.h"

// FORWARD DECLARATIONS

class CAknView; // For landscape support

class CEikTextListBox;
class CLmkAppLmSelectorImpl;
class CAknNavigationDecorator;
class CPosLandmark;

// CLASS DECLARATION
/**
*  CLmkCategoryContentsContainer  container control class.
*
*/
class CLmkCategoryContentsContainer : public CLmkLbWithFilterContainer, public MCoeControlObserver
    {
    public: // Constructors and destructor
        /**
        * Two-phased constructor
		* @param aKeyProcessor
		* @param aParent
		* @param aRect A rectangle for drawing.
		* @return The newly created object.
		*/

		// For landscape Support

		static CLmkCategoryContentsContainer* NewL(
                                        MLmkKeyProcessor& aKeyProcessor,
                                        MObjectProvider* aParent,
		                                const TRect& aRect, CAknView& aView);
        /**
        * Destructor.
        */
        ~CLmkCategoryContentsContainer();

    public: // from CCoeControl
        TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
                                     TEventCode aType );
        // For Landscape Support
		void  HandleResourceChange( TInt aType );
		
	public: // New functions
		TInt GetSelectedLandmarksL(RPointerArray<CPosLandmark> &aArray);
		TBool IsLandmarkDataEmptyL(CPosLandmark* aLandmark);
	    TBool IsEditorOpened();	      
		void SetEditorOpenedBool(TBool aBoolvalue);

    public: // From MCoeControlObserver

        /**
        * HandleControlEventL handles an event from an observed control.
        *
        * @param aControl the control that reported the event
        * @param aEventType contains info about the event
        */
       void HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType);

   public://for MSK
   		/**
        * This function, removes opened category from selected landmarks.
        */
		void RemoveFromThisCategoryL();
		/**
        * This function checks, if the category opened is 'Uncategorized' .
        * @return ETrue if opened category is 'Uncategorized' else Efalse.
        */
		TBool IsUncategorizedCategory();

    protected: // From CLmkLbWithFilterContainer
        void SetupTitlePaneL();
        void SetupSelectorAndListL( CPosLandmarkDatabase& aDb,
                                    CLmkSender& aSender );
        void SetupNaviPaneL();
        
    public ://from CLmkBaseContainer
    	TLmkMskDispItem ResolveMskDisplayItem();
    	void UpdateMskContainerForFilterL();
    	
    private:
        /**
        * C++ default constructor.
        * @param aKeyProcessor
        * @return newly instantiated object
        */
		CLmkCategoryContentsContainer( MLmkKeyProcessor& aKeyProcessor , CAknView& aView);
		void FocusChanged(TDrawNow aDrawNow);

        /**
        * Symbian 2nd phase constructor
        * @param aRect
        */
        void ConstructL( const TRect& aRect );

	private://from MLmkMskObserver

    	void UpdateMskContainerL();

	private:	// Data
		CAknView& iView;
		TBool iIsEditorOpened;
		TBool iIsRemoveOperation;
    };

#endif // CLMKCATEGORYCONTENTSCONTAINER_H

// End of File