diff -r 0396474f30f5 -r 4ce476e64c59 meetingrequest/mrgui/inc/cesmrlistcomponent.h --- a/meetingrequest/mrgui/inc/cesmrlistcomponent.h Mon Mar 15 12:39:10 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,225 +0,0 @@ -/* -* Copyright (c) 2007-2009 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: ESMR Custom list component -* -*/ - -#ifndef CESMRLISTCOMPONENT_H -#define CESMRLISTCOMPONENT_H - -#include -#include -#include -#include // MAknPhysicsObserver - -#include "mesmrlistobserver.h" - -class CESMRField; -class CESMRLayoutManager; -class MESMRFieldStorage; -class MESMRCalEntry; -class CMRListPane; -class CAknPhysics; - -/** - * CESMRListComponent is custom list for Meeting Request edtior and viewer. - * List contains a List pane of CESMRField items that are stored in CESMRFieldStorage - * class. - * - * @see CESMRField - * @lib esmrgui.lib - */ -NONSHARABLE_CLASS( CESMRListComponent ): - public CCoeControl, - public MESMRListObserver, - public MEikScrollBarObserver, - public MAknPhysicsObserver - { -public: - /** - * Two-phased constructor. - * - * @param aParent Parent control for this list component - * @param aStorage Storage contains all the list items. - * @return Pointer to created and initialized esmr list component object. - */ - static CESMRListComponent* NewL( - const CCoeControl* aParent, - MESMRFieldStorage* aStorage, - CESMRLayoutManager* aLayout ); - - /** - * Destructor. - */ - ~CESMRListComponent(); - - /** - * InternalizeL is used to obtain the data from current CCalEntry. - * CCalEntry is wrapped inside MESMRCalEntry object. This call is - * propagated to all list items in the list. - * - * @param aEntry Current entry - * @see MESMRCalEntry - */ - void InternalizeL( MESMRCalEntry& aEntry ); - - /** - * ExternalizeL is used to store the list item data into current - * CCalEntry. CCalEntry is wrapped inside the MESMRCalEntry object. - * - * @param aEntry Current entry. - * @param aForceValidation ETrue if force validation should be used - * @see MESMRCalEntry - */ - void ExternalizeL( MESMRCalEntry& aEntry, TBool aForceValidation = EFalse ); - - /** - * Return MESMRListObserver interface. Interface allows the caller - * to add, remove field and update field size. - */ - MESMRListObserver& ListObserver(); - - /** - * Return focused list item. - * @return Focused list item or NULL if no focused item - */ - CESMRField* FocusedItem() const; - - /** - * Initializes all fields. Needed when theme changes - */ - void InitializeL(); - - /** - * Changes every fields font - */ - void HandleFontChange(); - - void DisableSizeChange(TBool aDisable ); - -public: // From MEikScrollBarObserver - void HandleScrollEventL( CEikScrollBar* aScrollBar, - TEikScrollEvent aEventType ); - -public: // from MAknPhysicsObserver - - /** - * @see MAknPhysicsObserver::ViewPositionChanged - */ - virtual void ViewPositionChanged( const TPoint& aNewPosition, TBool aDrawNow, TUint aFlags ); - - /** - * @see MAknPhysicsObserver::PhysicEmulationEnded - */ - virtual void PhysicEmulationEnded(); - - /** - * @see MAknPhysicsObserver::ViewPosition - */ - virtual TPoint ViewPosition() const; - - -protected: // From MESMRListObserver - void ControlSizeChanged( CESMRField* aCtrl ); - void InsertControl( TESMREntryFieldId aField ); - void RemoveControl( TESMREntryFieldId aField ); - TBool IsControlVisible( TESMREntryFieldId aField ); - void SetControlFocusedL( TESMREntryFieldId aField ); - // SCROLLING_MOD: These two methods are for CESMRRichTextViewer to - //be able to control view area - void MoveListAreaDownL( TInt aAmount ); - void MoveListAreaUpL( TInt aAmount ); - TInt ListHeight(); - TBool IsFieldBottomVisible(); - -public: // From CCoeControl - TInt CountComponentControls() const; - CCoeControl* ComponentControl( TInt aInd ) const; - void SizeChanged(); - TKeyResponse OfferKeyEventL( const TKeyEvent &aKeyEvent, - TEventCode aType ); - virtual void HandlePointerEventL(const TPointerEvent& aPointerEvent); - void MakeVisible(TBool aVisible); - - -private: - /** - * Default c++ constuctor - */ - CESMRListComponent( MESMRFieldStorage* aFactory, - CESMRLayoutManager* aLayout ); - /** - * Second phase constructor - */ - void ConstructL( const CCoeControl* aParent ); - -private: // Helper methods - - /** - * Scrolls the specific field to be fully visible - * - * @param aInd Index of the field that needs to be fully visible - * @param aSizeChanged ETrue if the field size has been changed - */ - void ScrollItemVisible( TInt aInd/*, TBool aSizeChanged*/ ); - - /** - * Scrolls items in the list up. - * - * @param aPx Amount of pixels that items are moved up - */ - void ScrollItemsUp( TInt aPx ); - - /** - * Scrolls items in the list down. - * - * @param aPx Amount of pixels that items are moved down - */ - void ScrollItemsDown( TInt aPx ); - - /** - * Updates scroll bar - */ - void UpdateScrollBar(); - - /** - * Sets physics engine parameters - */ - void UpdatePhysicsL(); - -private: - /// Own: scrollbar - CAknDoubleSpanScrollBar* iScroll; - /// Ref: scrollbar model - TAknDoubleSpanScrollBarModel iScrollModel; - /// Own: Storage for list items. - MESMRFieldStorage* iFactory; - /// Own: List item container - CMRListPane* iContainer; - /// Ref: Pointer to Layout data for list component - CESMRLayoutManager* iLayout; - // Own: Boolean for disabling SizeChanged handling - TBool iDisableSizeChanged; - // previous scroll bar thumb position - TInt iPrevThumbPos; - - CAknPhysics* iPhysics; - TBool iIsDragging; - TBool iIsScrolling; - TPoint iPreviousPosition; - TPoint iOriginalPosition; - TTime iStartTime; - TInt iCurrentScrollSpan; - }; -#endif //CESMRLISTCOMPONENT_H