diff -r 000000000000 -r 2f259fa3e83a classicui_pub/editors_api/inc/EIKGTED.H --- /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 +#endif + + +#if !defined(__BADESCA_H__) +#include +#endif + +#if !defined(__EIKON_HRH__) +#include +#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* 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