--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_plat/extended_editors_api/inc/AknPhoneNumberEditor.h Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,308 @@
+/*
+* Copyright (c) 2002 - 2005 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:
+*
+*/
+
+#ifndef AKNPHONENUMBEREDITOR_H
+#define AKNPHONENUMBEREDITOR_H
+
+#include <babitflags.h>
+#include <eikbctrl.h>
+#include <fepbase.h>
+#include <gulutil.h>
+#include <eikdef.h>
+#include <eikccpu.h>
+#include <baclipb.h>
+#include <aknedstsobs.h>
+
+class CEikScrollBarFrame;
+class CAknPhedModel;
+class CAknPhedView;
+class CAknPhoneNumberEditorExtension;
+
+class CAknPhoneNumberEditor : public CEikBorderedControl, public MCoeFepAwareTextEditor,
+ public MCoeFepAwareTextEditor_Extension1, public MEikCcpuEditor
+ {
+public:
+ class TFormat
+ {
+ public:
+ IMPORT_C TFormat();
+ // MUST NOT BE USED; LAYOUT INFO CANNOT BE IN RESOURCES OR FACE VARIATION TROUBLE.
+ IMPORT_C TFormat( TResourceReader& aReader );
+ IMPORT_C TFormat( const TRect& aOuterRect, TInt aBorderType, TInt aNumLines,
+ TInt aBottomBaselineOffset, TInt aBaselineSeparation, const CFont* aFont );
+ public:
+ TRect iOuterRect;
+ TInt iBorderType;
+ TInt iNumLines;
+ TInt iBottomBaselineOffset;
+ TInt iBaselineSeparation;
+ const CFont* iFont;
+ };
+
+public:
+ IMPORT_C CAknPhoneNumberEditor();
+ IMPORT_C ~CAknPhoneNumberEditor();
+ IMPORT_C void ConstructFromResourceL( TResourceReader& aReader );
+ IMPORT_C void ConstructL( TInt aMaxChars, TInt aMaxLines,
+ TInt aMaxFormats, const TDesC& aTruncation );
+
+ // Format manipulation functions
+ IMPORT_C void AddFormat( const TFormat& aFormat );
+ IMPORT_C TInt CountFormats() const;
+ IMPORT_C TFormat& Format( TInt aFormatIndex ) const;
+ IMPORT_C TInt CurrentFormatIndex() const;
+ IMPORT_C TBool WouldTextFitInFormat( TInt aFormatIndex ) const;
+ IMPORT_C void SetFormat( TInt aFormatIndex );
+
+ // Text access functions
+ IMPORT_C TPtrC Text(TInt aFrom = 0) const;
+ IMPORT_C void SetText( const TDesC& aText );
+
+ // from CCoeControl
+ IMPORT_C void SizeChanged();
+ IMPORT_C TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+ IMPORT_C TSize MinimumSize();
+ IMPORT_C void FocusChanged( TDrawNow aDrawNow );
+ IMPORT_C void Draw( const TRect& aRect ) const;
+ IMPORT_C TCoeInputCapabilities InputCapabilities() const;
+
+ // Edwin like interface
+ IMPORT_C TInt TextLength() const;
+ IMPORT_C TInt CursorPos() const;
+ IMPORT_C TInt SelectionLength() const;
+ IMPORT_C TCursorSelection Selection() const;
+ IMPORT_C void ClearSelectionL();
+ IMPORT_C void SetSelectionL( TInt aCursorPos,TInt aAnchorPos );
+ IMPORT_C void SetCursorPosL( TInt aCursorPos,TBool aSelect );
+ IMPORT_C void SelectAllL();
+ IMPORT_C void GetText(TDes& aDes) const;
+ IMPORT_C HBufC* GetTextInHBufL() const;
+ IMPORT_C void SetTextL( const TDesC* aDes );
+ // this is particularly important for when the front-end processor
+ // is inline-editing a CEikEdwin
+ IMPORT_C void CancelFepTransaction();
+ IMPORT_C void UpdateScrollBarsL();
+ IMPORT_C CEikScrollBarFrame* CreateScrollBarFrameL();
+ inline CEikScrollBarFrame* CreatePreAllocatedScrollBarFrameL();
+ inline CEikScrollBarFrame* ScrollBarFrame();
+ IMPORT_C virtual TInt LineCursorWidth() const;
+ IMPORT_C TMargins8 Margins() const;
+ IMPORT_C TInt AknEditorFlags() ;
+ // Event reporting
+ void StateChanged();
+
+private:
+ TInt TargetCursorPos( TInt aCurrentPos );
+ void DrawChanges();
+ CEikScrollBarFrame* CreateScrollBarFrameL( TBool aPreAlloc );
+ void CreateFepStateL();
+
+private: // from MCoeFepAwareTextEditor
+ void StartFepInlineEditL( const TDesC& aInitialInlineText,
+ TInt aPositionOfInsertionPointInInlineText,
+ TBool aCursorVisibility,
+ const MFormCustomDraw* aCustomDraw,
+ MFepInlineTextFormatRetriever& aInlineTextFormatRetriever,
+ MFepPointerEventHandlerDuringInlineEdit& aPointerEventHandlerDuringInlineEdit );
+
+ void UpdateFepInlineTextL( const TDesC& aNewInlineText,
+ TInt aPositionOfInsertionPointInInlineText );
+
+ void SetInlineEditingCursorVisibilityL( TBool aCursorVisibility );
+ void CancelFepInlineEdit();
+ // with regard to the behaviour of the following functions when inline editing,
+ // note that the contents of the editor will be such that the text constituting
+ // the selection immediately prior to inline editing will be replaced by the
+ // inline text (CancelFepInlineEdit reinstates the previous selection)
+ TInt DocumentLengthForFep() const;
+ TInt DocumentMaximumLengthForFep() const;
+ void SetCursorSelectionForFepL( const TCursorSelection& aCursorSelection );
+ void GetCursorSelectionForFep(TCursorSelection& aCursorSelection) const;
+ void GetEditorContentForFep( TDes& aEditorContent, TInt aDocumentPosition,
+ TInt aLengthToRetrieve) const;
+ void GetFormatForFep( TCharFormat& aFormat, TInt aDocumentPosition ) const;
+ void GetScreenCoordinatesForFepL( TPoint& aLeftSideOfBaseLine, TInt& aHeight,
+ TInt& aAscent, TInt aDocumentPosition ) const;
+ void DoCommitFepInlineEditL();
+ MCoeFepAwareTextEditor_Extension1* Extension1( TBool& aSetToTrue );
+
+private: // from MCoeFepAwareTextEditor
+ void SetStateTransferingOwnershipL( CState* aState, TUid aTypeSafetyUid );
+ CState* State( TUid aTypeSafetyUid ); // this function does *not* transfer ownership
+
+private: // from MCoeFepAwareTextEditor
+ IMPORT_C void MCoeFepAwareTextEditor_Reserved_2();
+
+private: // from MCoeFepAwareTextEditor_Extension1
+ IMPORT_C virtual void MCoeFepAwareTextEditor_Extension1_Reserved_2();
+ IMPORT_C virtual void MCoeFepAwareTextEditor_Extension1_Reserved_3();
+ IMPORT_C virtual void MCoeFepAwareTextEditor_Extension1_Reserved_4();
+
+public:
+ IMPORT_C TInt ChangeEditorMode( TBool aDefaultMode = EFalse );
+ IMPORT_C TInt GetEditorMode() const;
+ IMPORT_C void ResetEditorToDefaultValues();
+
+public:
+// from CCoeControl
+ /**
+ * Handle pointer events.
+ * @param aPointerEvent, the pointer event.
+ * @since 5.0
+ */
+ IMPORT_C void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
+ /**
+ * Retrieves an object of the same type as that encapsulated in aId.
+ * @param aId, encapsulated object type
+ * @return Pointer to the object as the same type as in aId, if there is
+ * no object as the type, NULL will be returned.
+ * @since 5.0
+ */
+ TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
+
+// From MEikCcpuEditor
+
+ /**
+ * Tests whether the editor is focused.
+ *
+ * @return If editor is focused, @c ETrue is returned.
+ * @since 5.0
+ */
+ IMPORT_C TBool CcpuIsFocused() const;
+
+ /**
+ * Tests whether the selected text can be cut.
+ *
+ * @return @c ETrue if it is possible to cut the selected text.
+ * @since 5.0
+ */
+ IMPORT_C TBool CcpuCanCut() const;
+
+ /**
+ * Cuts selected text.
+ * @since 5.0
+ */
+ IMPORT_C void CcpuCutL();
+
+ /**
+ * Tests whether the selected text can be copied.
+ *
+ * @return @c ETrue if it is possible to copy the selected text.
+ * @since 5.0
+ */
+ IMPORT_C TBool CcpuCanCopy() const;
+
+ /**
+ * Copies selected text.
+ * @since 5.0
+ */
+ IMPORT_C void CcpuCopyL();
+
+ /**
+ * Tests whether text can be pasted from the clipboard.
+ *
+ * @return @c ETrue if it is possible to paste the clipboard text.
+ * @since 5.0
+ */
+ IMPORT_C TBool CcpuCanPaste() const;
+
+ /**
+ * Pastes text from the clipboard to the editor.
+ * @since 5.0
+ */
+ IMPORT_C void CcpuPasteL();
+
+ /**
+ * Tests is it possible to undo previous operation.
+ *
+ * @return @c ETrue if it is possible to undo previous operation.
+ * @since 5.0
+ */
+ IMPORT_C TBool CcpuCanUndo() const;
+
+ /**
+ * Undoes the most recent text operation when the Edwin supports this
+ * feature and when the undo store is not empty
+ * @since 5.0
+ */
+ IMPORT_C void CcpuUndoL();
+
+ /**
+ * Open VKB .
+ */
+ EXPORT_C void OpenVKB();
+
+
+private:
+//new functions, for ccpu support
+ /**
+ * Handle clipboard operation.
+ * @param aIsCopy, ETrue means this is copy operation, otherwise
+ * it is cut operation
+ */
+ void ClipboardL( TBool aIsCopy );
+
+ /**
+ * Enable or disable ccpu support.
+ * @param aSupport, ETrue enable, EFalse disable
+ */
+ void EnableCcpuSupportL( TBool aSupport );
+
+ /**
+ * Place text on clipboard.
+ * @param aText, the text that will be put on clipboard
+ */
+ void PlaceDataOnClipboardL( const TDesC& aText );
+
+ /**
+ * Check if paste operation is valid or not. If paste is invalid,
+ * this function will leave.
+ */
+ void DoCanPasteL() const;
+
+ /**
+ * Report event to pen input method.
+ * @param aStateEvent, MAknEdStateObserver::EAknEdwinStateEvent
+ */
+ void ReportAknEdStateEventL(
+ MAknEdStateObserver::EAknEdwinStateEvent aStateEvent );
+ /**
+ * close VKB .
+ */
+ void CloseVKB( );
+private:
+ CAknPhoneNumberEditorExtension* iExtension;
+ TInt iNumFormats;
+ TInt iCurrentFormatIndex;
+ CAknPhedModel* iModel;
+ CAknPhedView* iView;
+ TInt iTargetCursorPos;
+ TBitFlags32 iFlags;
+ CEikScrollBarFrame* iSBFrame;
+ CState* iFepState;
+ };
+
+
+inline CEikScrollBarFrame* CAknPhoneNumberEditor::CreatePreAllocatedScrollBarFrameL()
+ { return CreateScrollBarFrameL( ETrue );}
+inline CEikScrollBarFrame* CAknPhoneNumberEditor::ScrollBarFrame()
+ { return ( ( CEikScrollBarFrame* const )iSBFrame ); }
+
+
+#endif