diff -r d189ee25cf9d -r 3533d4323edc emailuis/emailui/inc/ncseditor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/emailui/inc/ncseditor.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,193 @@ +/* +* Copyright (c) 2007 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: This file defines class CNcsEditor. +* +*/ + + + +#ifndef CNCSEDITOR_H +#define CNCSEDITOR_H + + +#include +#include +#include "ncscontrol.h" +#include "ncsutility.h" +#include "ncsconstants.h" + +class CAknsBasicBackgroundControlContext; +class CNcsCustomDraw; +class CNcsEditorCustomDraw; + +/** +* CNcsEditor +*/ +class CNcsEditor : public CEikRichTextEditor, public MNcsControl, public MCoeCaptionRetrieverForFep + { +public: // construction and destruction + + CNcsEditor( + MNcsFieldSizeObserver* aSizeObserver = NULL, + TBool aHeaderField = ETrue, + TNcsEditorUsage aEditorUsage = ENcsEditorDefault, + const TDesC& aCaptionText = TPtrC() ); + + void ConstructL( const CCoeControl* aParent, + TInt aNumberOfLines, + TInt aTextLimit ); + + virtual ~CNcsEditor(); + +public: // new functions + + void OpenVirtualKeyBoardL(); + + void GetLineRectL( TRect& aLineRect ) const; + + virtual TInt ScrollableLines() const; + + virtual TInt CursorLineNumber() const; + + virtual TInt LineCount() const; + + virtual TInt CursorPosition() const; + + virtual const TDesC& GetLabelText() const; + + // Platform layout change + TInt LayoutLineCount() const; + // Platform layout change + + virtual void Reposition(TPoint& /*aPt*/, TInt /*aWidth*/) {} + + void SetMaximumLabelLength( TSize aSize ); + + void SetupEditorL(); + + void PositionChanged(); + + TInt TextHeight() const; + + TInt GetLineHeightL() const; + + TInt GetNumChars() const; + + TInt DocumentLength() const; + + TInt PixelsAboveBand() const; + + TInt ChangeBandTopL(TInt aPixels); + + void UpdateFontSize(); + + TBool HasSemicolonAtTheEndL() const; + + // + void SetRealRect( TRect aRect ); + + void FormatAllTextNowL(); + // + + void UpdateCustomDrawer(); + + void SetPhysicsEmulationOngoing( TBool aPhysOngoing ); + + TBool IsPhysicsEmulationOngoing() const; + +#ifdef _DEBUG + void DebugDump(); +#endif + + void SetTextColorL( TLogicalRgb aColor ); + + TInt TrimmedTextLength(); + +// Platform layout changes + void SetNcsFontType( NcsUtility::TNcsLayoutFont aFontType ); +// Platform layout changes + +public: // from CoeControl + + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + void ActivateL(); + +public: // from CEikEdwin + + virtual void SetTextL( const TDesC* aDes ); + + virtual void HandleResourceChange( TInt aType ); + +protected: // from CEikEdwin + + // Platform layout change + // virtual CLafEdwinCustomDrawBase* CreateCustomDrawL(); + // + +protected: // from MEditObserver + + virtual void EditObserver( TInt aStart, TInt aExtent ); + +public: // CEikEdwin + TCoeInputCapabilities InputCapabilities() const; +public: // MCoeCaptionRetrieverForFep + void GetCaptionForFep(TDes& aCaption) const; + +private: // methods used internally + // Platform layout change + void UpdateFontL(); + // Platform layout change + + void UpdateColors(); + + TAknTextComponentLayout GetLayout(); + + void Draw( const TRect& aRect ) const; + +private: // data + + TInt iPreviousFontHeight; + TInt32 iPreviousLineSpacingInTwips; + + TRgb iTextColor; + CCharFormatLayer* iGlobalCharFormat; + + // Flag indicating whether this control is header field. + // Header fields have different backgrounds than message field. + TBool iHeaderField; + + // Custom drawer. Not owned. + CNcsCustomDraw* iCustomDrawer; + + // Platform layout change + NcsUtility::TNcsLayoutFont iNcsFontType; + + // Custom drawer for row lines. Own + CNcsEditorCustomDraw* iEditorCustomDrawer; + + // what purpose editor is used to + TNcsEditorUsage iEditorUsage; + + // Real screen rectangle + TRect iRealRect; + + // Caption text for virtual ITU-T + HBufC* iCaptionText; + + // flag to indicate is there physics based dragging or flicking ongoing + TBool iPhysOngoing; + }; + + +#endif