diff -r d189ee25cf9d -r 3533d4323edc meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdescriptionfield.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdescriptionfield.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,120 @@ +/* +* 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: Meeting request description field + * +*/ + +#ifndef CESMRVIEWERDESCRIPTIONFIELD_H +#define CESMRVIEWERDESCRIPTIONFIELD_H + +#include +#include +#include "cesmrfield.h" +#include "cesmrrichtextviewer.h" + +class CESMRLocationPlugin; +class CESMRFeatureSettings; +class CESMRUrlParserPlugin; + +/** + * Description field is a custom control + * that shows the description of a calendar event. + */ +NONSHARABLE_CLASS( CESMRViewerDescriptionField ): public CESMRField, + public MEikEdwinSizeObserver, + public MESMRRichTextObserver + { + +public: + /** + * Constructor of the description field. + * + * @return New description field object. + */ + static CESMRViewerDescriptionField* NewL(); + + // Destructor + ~CESMRViewerDescriptionField(); + +protected: // From CESMRField + void InternalizeL( MESMRCalEntry& aEntry ); + void InitializeL(); + void GetCursorLineVerticalPos( TInt& aUpper, TInt& aLower ); + void ListObserverSet(); + TBool ExecuteGenericCommandL( TInt aCommand ); + void SetOutlineFocusL( TBool aFocus ); + void HandleLongtapEventL( const TPoint& aPosition ); + TBool SupportsLongTapFunctionalityL( + const TPointerEvent &aPointerEvent ); + +public: // From CCoeControl + TKeyResponse OfferKeyEventL(const TKeyEvent& aEvent, TEventCode aType ); + TSize MinimumSize(); + void SizeChanged(); + TInt CountComponentControls() const; + CCoeControl* ComponentControl( TInt aIndex ) const; + +public: + // From MEikEdwinSizeObserver + TBool HandleEdwinSizeEventL( CEikEdwin* aEdwin, TEdwinSizeEvent aType, + TSize aSize ); + +protected: + TBool HandleRichTextLinkSelection( const CESMRRichTextLink* aLink ); + +private: // Implementation + CESMRViewerDescriptionField(); + void ConstructL(); + void AddShowOnMapLinkL( MESMRCalEntry& aEntry ); + void SetShowOnMapLinkMiddleSoftKeyL(); + CESMRFeatureSettings& FeaturesL(); + CESMRLocationPlugin& LocationPluginL(); + void ShowLocationOnMapL( const CESMRRichTextLink& aLink ); + void StoreGeoValueL( CCalEntry& aCalEntry, + const TDesC& aLocationUrl ); + CESMRUrlParserPlugin& UrlParserL(); + +private: + + /** + * Field size. + */ + TSize iSize; + + /** + * Rich text viewer. + * Own. + */ + CESMRRichTextViewer* iRichTextViewer; + + /** + * Location plugin. + * Own. + */ + CESMRLocationPlugin* iLocationPlugin; + + /** + * Feature settings. + * Own. + */ + CESMRFeatureSettings* iFeatures; + + /** + * Location URL parser. + * Own. + */ + CESMRUrlParserPlugin* iUrlParser; + }; + +#endif /* CESMRVIEWERDESCRIPTIONFIELD_H */