classicui_pub/editors_api/inc/EIKGTED.H
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_pub/editors_api/inc/EIKGTED.H	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,446 @@
+/*
+* Copyright (c) 1997-1999 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:
+*
+*/
+
+
+#if !defined(__EIKGTED_H__)
+#define __EIKGTED_H__
+
+#if !defined(__EIKEDWIN_H__)
+#include <eikedwin.h>
+#endif
+
+
+#if !defined(__BADESCA_H__)
+#include <badesca.h>
+#endif
+
+#if !defined(__EIKON_HRH__)
+#include <eikon.hrh>
+#endif
+
+class CGlobalText;
+class CControlEnv;
+class CEikDialogToolBar;
+class CPrintSetup;
+class CTextPageRegionPrinter;
+class CEikDialogToolBar;
+
+/**
+ * Global text editor.
+ *
+ * This is an edit window which supports globally formatted text. Supports
+ * a line cursor and provides functions which make it easy to launch various
+ * dialogs, for instance search, replace, set font etc. 
+ * 
+ * @since Symbian 5.0
+ */ 
+class CEikGlobalTextEditor : public CEikEdwin
+	{
+
+public:
+
+    /**
+     * Font style
+     */
+	enum TFontStyleFlags
+		{
+        /** Normal font */
+        EStandard	=0x00,
+
+        /** Bolded font */
+		EBold		=0x01,
+
+        /** Italic font */
+		EItalic		=0x02,
+
+        /** Underlined font */
+		EUnderline	=0x04
+		};
+
+public: // construction and destruction
+
+    /** 
+     * C++ default constructor.
+     */
+    IMPORT_C CEikGlobalTextEditor();
+	
+    /** 
+     * C++ default constructor.
+     *
+     * @param aBorder The editor's border.
+     */ 
+    IMPORT_C CEikGlobalTextEditor(const TGulBorder& aBorder);
+	
+    /**
+     * Destructor.
+     */
+    IMPORT_C ~CEikGlobalTextEditor();
+	
+    /** 
+     * By Default symbian 2nd phase constructor is private.
+     *
+     * Completes construction of the global text editor.
+     *
+     * The editor's paragraph and character formatting is set to 
+     * default values.
+     *
+     * @param aParent The editor's parent control. Omit if the 
+     *        editor has no parent.
+     * @param aNumberOfLines The editor's number of lines.
+     * @param aTextLimit The maximum length of the editor in characters.
+     * @param aEdwinFlags The editor's flags. See @c CEikEdwin::TFlags.
+     * @param aFontControlFlags A set of flags that specify which font 
+     *        controls should appear, e.g. specifying @c EGulFontControlBold
+     *        removes the bold checkbox control. The default shows all. 
+     *        For possible values, see @c gulftflg.hrh.
+     * @param aFontNameFlags The editor's font name flags. For possible 
+     *        values, see @c gulftflg.hrh.
+     */ 
+    IMPORT_C void ConstructL(const CCoeControl* aParent,
+                             TInt aNumberOfLines,
+                             TInt aTextLimit,
+                             TInt aEdwinFlags,
+                             TInt aFontControlFlags,
+                             TInt aFontNameFlags);
+	
+    // This feature is not supported in Avkon; type made more general for 
+    // source compatibility
+
+    /**
+     * Not implemented.
+     *
+     * @param aButtonGroup Not used
+     */ 
+	IMPORT_C void SetButtonGroup(CCoeControl* aButtonGroup);
+	
+    // This feature is not supported in Avkon
+    /**
+     * Not implemented.
+     *
+     * @param aBitmap Not used
+     */
+	IMPORT_C void SetLineCursorBitmapL(CFbsBitmap* aBitmap);
+
+public: // formatting dialogs
+
+    /**
+     * Runs a dialog enabling a user to set the font.
+     *
+     * Updates the button group to reflect any text formatting applied.
+     *
+     * @param aFontFlags = EGulNoSymbolFonts Specifies which font types should
+     *        appear in the list. For possible values see @c gulftflg.hrh.
+     * @param aGraphicsDevice = NULL The graphics device. This is used to get 
+     *        the list of available fonts. If NULL the default screen device 
+     *        is used.
+     * @param aFontControlFlags = EGulFontControlAll A set of flags that specify 
+     *        which font controls should appear in the dialog e.g. specifying 
+     *        @c EGulFontControlBold removes the bold checkbox control. 
+     *        The default shows all. For possible values see @c gulftflg.hrh.
+     * @return @c ETrue if user made a change and pressed @c OK. 
+     *         @c EFalse if user pressed cancel or made no changes.
+     */
+    IMPORT_C TBool RunFontDialogL(TInt aFontFlags=EGulNoSymbolFonts,
+                                  CGraphicsDevice* aGraphicsDevice=NULL,
+                                  TInt aFontControlFlags=EGulFontControlAll);
+	
+    /**
+     * Runs a dialog enabling an user to set tab position.
+     *
+     * @param aPageWidth Width of the page in twips.
+     */
+    IMPORT_C void RunTabsDialogL(TInt aPageWidth);
+	
+    /** 
+     * Runs indents dialog.
+     *
+     * Changes the paragraph format to indent all text.
+     *
+     * @param aPageWidth Width of page in twips.
+     */
+    IMPORT_C void RunIndentsDialogL(TInt aPageWidth);
+	
+    /**
+     * Sets the Graphics device to be used.
+     *
+     * @param aGraphicsDevice Wanted graphics device.
+     */
+    IMPORT_C void SetGraphicsDevice(CGraphicsDevice* aGraphicsDevice);
+	
+    /**
+     * Runs the find dialog.
+     * Enables an user to specify the text for which to search for. 
+     */ 
+    IMPORT_C void RunFindDialogL();
+	
+    /**
+     * Runs the find dialog again. 
+     */ 
+    IMPORT_C void RunFindAgainDialogL();
+	
+    /** 
+     * Runs the replace dialog.
+     *
+     * Enables the user to specify the text to be searched for and the
+     * replacement for that text. Can replace single or multiple occurances.
+     */ 
+    IMPORT_C void RunReplaceDialogL();
+	
+    /**
+     * Sets up the find model, the find list and the replace list ready
+     * for find or replace operations.
+     * 
+     * @param aModel The find model to be used.
+     * @param aFindList The find list to be used.
+     * @param aReplaceList The replace list to be used.
+     */
+    IMPORT_C void InitFindL(SEdwinFindModel*& aModel,
+                            CDesCArray*& aFindList,
+                            CDesCArray*& aReplaceList);
+	
+    /**
+     * Searches for text.
+     * 
+     * Returns @c ETrue if text is found.
+     *
+     * Used by @c RunFindDialogL(), @c RunFindAgainDialogL() and 
+     * @c RunReplaceDialogL() methods.
+     *
+     * @return @c ETrue if the text is found @c EFalse otherwise.
+     */ 
+    IMPORT_C TBool DoFindL();
+	
+    /**
+     * Runs a dialog enabling a user to set one of text alignment, spacing or
+     * borders.
+     *
+     * Depending on the user's choice another dialog is run enabling them to 
+     * set their requirements.
+     *
+     * @param aCommand User selected command. One of @c EEikCmdParaAlign, 
+     *        @c EEikCmdParaSpacing or @c EEikCmdParaBorder. 
+     */
+    IMPORT_C void RunParaDialogsL(TInt aCommand);	
+	
+    /**
+     * Runs a dialog enabling a user to do pagination.
+     * 
+     * @param aPrintSetup The printer setup.
+     * @param aCharsPerPage Page table (array of characters per page).
+     * @return @c ETrue if pagination is succesfull @c EFalse otherwise.
+     */ 
+    IMPORT_C TBool RunPaginateDialogL(CPrintSetup* aPrintSetup,
+                                      CArrayFix<TInt>* aCharsPerPage);
+
+public: // other functions
+
+    /**
+     * Gets the global text that is being edited.
+     * 
+     * @return The global text being edited.
+     */
+    IMPORT_C CGlobalText* GlobalText() const;
+	
+    /** 
+     * Applies the paragraph formatting and updates the screen layout.
+     *
+     * The attributes which are set in the mask are read from @c aParaMask. 
+     * The attributes which are not set in the mask are not changed. 
+     * 
+     * @param aParaFormat Contains the new paragraph formatting values 
+     *        to apply.
+     * @param aParaMask Bitmask specifying the paragraph format attributes 
+     *        to change.
+     */
+    IMPORT_C void ApplyParaFormatL(CParaFormat* aParaFormat,
+                                   TParaFormatMask& aParaMask);
+	
+    /**
+     * Applies the character formatting and updates the screen layout. 
+     * 
+     * The attributes which are set in the mask are read from @c aCharFormat.
+     * The attributes which are not set in the mask are not changed. 
+     *
+     * @param aCharFormat Contain the new character formatting values 
+     *        to apply.
+     * @param aCharMask Bitmask specifying the character format attributes 
+     *        to change.
+     */
+    IMPORT_C void ApplyCharFormatL(TCharFormat& aCharFormat,
+                                   TCharFormatMask& aCharMask);
+	
+    /** 
+     * Toggles format in the current selection. 
+     * 
+     * For a global text editor the format change is applied globally.
+     * For a rich text editor where there is no selection the format 
+     * change is applied to the word at the current cursor position.
+     *
+     * @param aFontFlag The format attribute toggle. See the 
+     *        @c TFontStyleFlags enum.
+     */
+    IMPORT_C void BoldItalicUnderlineEventL(TInt aFontFlag);
+	
+    /**
+     * Update the buttons in the button group so that they reflect the 
+     * formatting of the global text object.
+     */ 
+    IMPORT_C void UpdateButtonGroup();
+
+public: // from CCoeControl
+
+    /**
+     * From @c CCoeControl.
+     *
+     * Completes construction of the global text editor from a resource file.
+     * 
+     * The editor's paragraph and character formatting is set to default 
+     * values.
+     *
+     * See the @c GTXTED resource struct
+     *
+     * @param aReader A reader positioned for reading from a @c GTXTED 
+     *        resource.
+     */
+    IMPORT_C void ConstructFromResourceL(TResourceReader& aReader);
+	
+    /**
+     * From @c CCoeControl.
+     *
+     * Handles key events.
+     *
+     * @param aKeyEvent The key code and modifier 
+     * @param aType The type of the event: e.g. Key up.
+     * @return @c EKeyWasConsumed if the event was handled.
+     *         @c EKeyWasNotConsumed if the event was not handled.
+     */
+    IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,
+                                         TEventCode aType);
+    /**
+     * From @c CCoeControl.
+     *
+     * Sets the editor ready for drawing.
+     */ 
+    IMPORT_C void ActivateL();
+    
+    /**
+     * From @c CCoeControl.
+     *
+     * Handles pointer events.
+     *
+     * @param aPointerEvent Pointer to an event that is to be handled. 
+     */
+    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+
+public: // from CEikEdwin
+
+    /**
+     * From @c CEikEdwin.
+     *
+     * Gets the width of a line cursor in pixels.
+     *
+     * @return The width of the line cursor in pixels.  
+     */ 
+    IMPORT_C TInt LineCursorWidth() const;
+
+protected:
+
+    /**
+     * Completes the second-phase construction of a @c CEikEdwin object. 
+     * This protected function is called by @c ConstructL() and 
+     * @c ConstructFromResourceL() after the @c Edwin’s size, flags and 
+     * text limit have been set. Derived classes should call either this 
+     * function or @c CEikEdwin’s @c ConstructL() or 
+     * @c ConstructFromResourceL() functions during their construction 
+     * before initialising their own members.
+     */ 
+    IMPORT_C void BaseConstructL();
+
+protected: //from CCoeControl
+
+    /**
+     * From @c CCoeControl.
+     *
+     * Writes the internal state to the specified stream. Does nothing
+     * in release mode. 
+     * 
+     * @param aWriteStream The stream to write to.
+     */
+    IMPORT_C void WriteInternalStateL(RWriteStream& aWriteStream) const;
+
+private: // from CoeControl
+
+    IMPORT_C void Reserved_2();
+
+private:
+
+    /**
+    * From CAknControl
+    */
+    IMPORT_C void* ExtensionInterface( TUid aInterface );
+
+private: // from CEikEdwin
+
+    IMPORT_C void Reserved_3();
+
+private:
+
+    void CheckDocumentNotEmptyL();
+	
+    void CreateFindModelL();
+	
+    void GetTextForFindL();
+
+protected:
+
+    /** 
+     * Stores the object's global character formatting. 
+     */
+    CCharFormatLayer* iCharFormatLayer;
+	
+    /** 
+     * Stores the object's global paragraph formatting. 
+     */
+    CParaFormatLayer* iParaFormatLayer;
+
+private:
+
+    CDesCArray* iFindList; 
+	
+    CDesCArray* iReplaceList;
+	
+    SEdwinFindModel* iFindModel;
+	
+    CEikDialogToolBar* iButGroup;
+	
+    TInt iLineCursorWidth;
+	
+    CFbsBitmap* iLineCursor;
+	
+    TInt iFontControlFlags;
+	
+    TInt iFontNameFlags;
+	
+    CGraphicsDevice* iGraphicsDevice;
+    
+    TInt iSpare[4];
+	};
+
+
+#endif  // __EIKGTED_H__
+
+// enf of file