diff -r d189ee25cf9d -r 3533d4323edc meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrlocationfield.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrlocationfield.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,134 @@ +/* +* Copyright (c) 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 location field. + * +*/ + + +#ifndef CESMRLOCATIONFIELD_H +#define CESMRLOCATIONFIELD_H + +#include +#include // MEikEdwinSizeObserver +#include // MEikMenuObserver + +#include "cesmrfield.h" + +//Forward declarations +class CESMREditor; +class CESMRFeatureSettings; +class CFbsBitmap; +class CMRImage; +class CAknsBasicBackgroundControlContext; +class CMRStylusPopupMenu; +class CMRLabel; +class CMRButton; + +/** + * This class is a custom field control that shows the location of calendar events + */ +NONSHARABLE_CLASS( CESMRLocationField ): public CESMRField, + public MEikEdwinSizeObserver, + public MEikEdwinObserver, + public MEikMenuObserver + { + public: + /** + * Creates new CESMRLocationField object. Ownership + * is transferred to caller. + * @return Pointer to created object, + */ + static CESMRLocationField* NewL(); + + /** + * C++ Destructor. + */ + ~CESMRLocationField(); + + protected: // From CESMRField + TSize MinimumSize(); + void InitializeL(); + void InternalizeL( MESMRCalEntry& aEntry ); + void ExternalizeL( MESMRCalEntry& aEntry ); + void SetOutlineFocusL( TBool aFocus ); + void GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower); + void ListObserverSet(); + TBool ExecuteGenericCommandL( TInt aCommand ); + TBool HandleSingletapEventL( const TPoint& aPosition ); + void HandleLongtapEventL( const TPoint& aPosition ); + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + protected: // From MEikEdwinSizeObserver + TBool HandleEdwinSizeEventL( CEikEdwin* aEdwin, TEdwinSizeEvent aType, TSize aSize ); + + protected: // From MEikEdwinObserver + void HandleEdwinEventL(CEikEdwin* aEdwin, TEdwinEvent aEventType); + + protected: // From MEikMenuObserver + void ProcessCommandL( TInt aCommandId ); + void SetEmphasis(CCoeControl* /*aMenuControl*/,TBool /*aEmphasis*/){} + + protected: // From CCoeControl + TInt CountComponentControls() const; + CCoeControl* ComponentControl( TInt aInd ) const; + void SizeChanged(); + void SetContainerWindowL( const CCoeControl& aContainer ); + TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent, + TEventCode aType ); + TBool HandleRawPointerEventL( const TPointerEvent &aPointerEvent ); + + private: + /** + * Constructor. + */ + CESMRLocationField(); + + /** + * Second phase constructor. + */ + void ConstructL(); + + CESMRFeatureSettings& FeaturesL(); + void SetWaypointIconL( TBool aEnabled ); + + // From MESMRFieldEventObserver + void HandleFieldEventL( const MESMRFieldEvent& aEvent ); + + private: + // Own: Title of this field + CMRLabel* iTitle; + // Not owned. Location editor. + CESMREditor* iLocation; + // Own: Edwin size + TSize iSize; + // Feature settings. own. + CESMRFeatureSettings* iFeatures; + // Location text. Own. + HBufC* iLocationText; + // Own:Field left button + CMRButton* iFieldButton; + // Own: Waypoint icon + CMRImage* iWaypointIcon; + // Field editor line count + TInt iLineCount; + // Own: Background for the editor when it is focused + CAknsBasicBackgroundControlContext* iBgControlContext; + // Field rect for comparison purposes + TRect iFieldRect; + /// Own: Stylus popup menu + CMRStylusPopupMenu* iMenu; TBool iMenuIsShown; + }; + +#endif // CESMRLOCATIONFIELD_H +