diff -r 000000000000 -r 1fb32624e06b textrendering/word/SRC/WPAPPUI.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/word/SRC/WPAPPUI.H Tue Feb 02 02:02:46 2010 +0200 @@ -0,0 +1,375 @@ +/* +* Copyright (c) 1997-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: +* +*/ + + +#ifndef __WORD_H__ +#define __WORD_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "WPTEXTED.H" +#include "WPDOC.H" +#include "WNGMODEL.H" + +class CRichText; +class CCharFormatLayer; +class CParaFormatLayer; +class CStreamStore; +class CPrintSetup; +class CTextPageRegionPrinter; +class CWordDocument; +class CWordToolBarUpdate; +class CWordTextListBox; +class CEikColumnListBox; +class CWordSnakingColumnListBox; +class CEikCommandButtonBase; +class CWordTest; + +/** +@internalComponent +*/ +const TUid KUidPrinterDevice={0x1000010b}; + +const CParagraphStyle::TApplyParaStyleMode KApplyParaStyleMode=CParagraphStyle::ERetainSpecificCharFormat; +const TInt KThinBorderThicknessInTwips=20; +const TInt KThickBorderThicknessInTwips=30; + +const TInt KVersionAppConfigurationData=1; + +const TInt KFileBusyInitialDelayInMicroSeconds=1000000; + +# if defined(__GCC32__) + const TInt KClippedTextCharacter=0; +# else + const TChar KClippedTextCharacter=0; +#endif + +class CWordAppUi : public CEikAppUi, public MCoeControlObserver, public MEikEdwinObserver, public MPrintPreviewDialogObserver +/** +@internalComponent +*/ + { + + friend class CWordToolBarUpdate; +public: + CWordAppUi(); + ~CWordAppUi(); + void ConstructL(); +// + void GetUiData(TWordUiData& aData)const; + void SetUiData(); + inline void SetReadOnly(TBool aReadOnly); + inline void NotifyNewTextL(); +// +private: + enum TButtons + { + EAll, + EStyleName, + EFontName, + EFontHeight, + EBold, + EItalic, + EUnderline, + EAlignment, + EBullet, + EBorder + }; + enum TToolBarUpdate + { + EVisibilityDependant, + EVisibilityIndependant + }; + enum TToolBarType + { + EToolBar, + EToolBand + }; + enum TWordFlags + { + EFNameBoxPopped =0x001, + EFHeightBoxPopped =0x002, + EBordersPopped =0x004, + EWysiwygModeOn =0x008, + EStyleBoxPopped =0x010, + EAlignBoxPopped =0x020, + }; + enum TBorderFlags + { + ESingleFull=3, + ESingleTop, + ESingleBottom, + ESingleTopAndBottom, + EDoubleFull, + EDoubleTop, + EDoubleBottom, + ENullBorder + }; + enum TNpcFlags + { + ENpcTabsVisible =0x001, + ENpcSpacesVisible =0x002, + NpcParagraphsVisible =0x004, + NpcForcedLineBreaksVisible =0x008, + NpcSoftHyphensVisible =0x010, + NpcHardHyphensVisible =0x020, + NpcHardSpacesVisible =0x040 + }; + enum TPicturePrefFlags + { + ESketchAsGlass =0x001, + EGraphAsGlass =0x002, + EConfirmDeleteObject=0x004 + }; + + enum TConfirmationText + { + ERevertTitle, + ERevertText, + }; +private: + // + // from CCoeAppUi + TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + void SetAndDrawFocus(TBool aFocus); + virtual TCoeInputCapabilities InputCapabilities() const; + // + // from CEikAppUi + virtual void HandleCommandL(TInt aCommand); + virtual void HandleModelChangeL(); + virtual TBool ProcessCommandParametersL(TApaCommand aCommand,TFileName& aDocumentName,const TDesC8& aTail); + virtual void OpenFileL(const TDesC& aFileName); + virtual void CreateFileL(const TDesC& aFileName); + // overload to provide template functionality + virtual void CreateFileL(const TDesC& aFileName, const TDesC& aTemplateFileName); + // + // from MCoeControlObserver + virtual void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType); + // + // from MEikEdwinObserver + virtual void HandleEdwinEventL(CEikEdwin* aEdwin,TEdwinEvent aEventType); + // + // from MEikMenuObserver + virtual void DynInitMenuPaneL(TInt aMenuId,CEikMenuPane* aMenuPane); + // + // from MPrintPreviewDialogObserver + virtual TBool PageSetupChangedL(CPrintSetup* aPrintSetup,TInt& aNumPagesInDoc); + virtual TBool RunPrintRangeDialogL(CPrintSetup* aPrintSetup,TInt& aNumPagesInDoc); + void RunPrintDialogL(); + void DoPrintL(); + // + // in WPAPFILE.CPP + void CmdFileNewL(); + void CmdFileOpenL(); + void CmdFileSaveL(); + void CmdFileSaveAsL(); + void CmdFileRevertL(); + void CmdFileSaveAsTemplateL(); + void CmdFileDeleteTemplateL(); + void CmdFileTextImportL(); + void CmdFileTextExportL()const; + void CmdFileHtmlImportL(); + void DoFileOpenL(const TFileName& aFileName); + void DoFileSaveL(TBool aEchoInfoMessage); + TFileName CurrentFilePath()const; + void SetInitialPathL(TFileName& aFileName)const; + TFileName NormalTemplateFileNameL()const; + // + // paginate/print/preview stuff + void RunPageSetupDialogL(); + // + // in WPAPPTBR.CPP + void UpdateToolBarAndBandL(TInt aCommand); + TBool ToggleToolbarControlL(CEikToolBar& aToolBar); + void UpdateToolbandButtonsL(TToolBarUpdate aUpdate=EVisibilityDependant); + void UpdateCharFormatButtonsL(); + void UpdateParaFormatButtonsL(); + void UpdateToolBandFontNameButtonL(TDesC& NewFontName); + void UpdateToolBandFontNameButtonL(TDes& aNewFontName); + void UpdateToolBandFontHeightButtonL(const TInt aNewFontHeight); + void UpdateStyleButtonL(); + void UpdateAlignButtonL(RTmParFormat::TAlignment aNewAlignment); + TInt AlignmentBitmapId(TInt aId)const; + void UpdateBorderButtonL(TBool aBordersPresent); + void UpdateFileNameLabelL(); + void UpdateToolBandButton(TInt aCommand,CEikButtonBase::TState aNewState); + // + // in WPAPPUT.CPP + TBool RunPaginationDialogL(); + void RunPreviewDialogL(); + void RunGoToDialogL(); + void RunViewPreferencesDialogL(); + void RunOutlineDialogL(); + void RunObjectPreferencesDialogL(); + TBool ConfirmationDialogL(TConfirmationText aTitle,TConfirmationText aText)const; + void ReformatDueToStateChangeL(); + inline CRichText* Text()const; + inline CWordDocument* Document()const; + inline CTextPageRegionPrinter& PageRegionPrinter()const; + inline TBool WysiwygModeIsSet()const; + inline TBool ToggleWysiwygMode(); + inline TBool SketchAsGlass()const; + inline void SetSketchAsGlass(TBool aSketchAsGlass); + inline TBool GraphAsGlass()const; + inline void SetGraphAsGlass(TBool aGraphAsGlass); + TKeyResponse ProcessStyleHotKeyL(const TChar& aKey); + // + inline void SetPaginationOutOfDate(TBool aPaginationOutOfDate); + inline TBool PaginationOutOfDate()const; + void CreateEdwinL(); + void SetEdwinL(); + void ResetEdwinL(); + void ResetPrint(); + void UpdateToolbarsL(); + void SetParaAlignmentL(TInt aCommand); + void CmdChangeAlignmentL(); + void SetBulletL(); + void RunSelectBulletDialogL(); + void CreateDefaultBulletL(); + void ZoomL(TInt aZoomCmd); + void AlterParaStylesL(TInt aCommand); + void InsertCharacterL(TChar aCharacter); + void CmdWrapToScreenL(); + void UpdatePageLayoutL(); + TInt PageLayoutWidth() const; + void ResetFlags(); + TFileName BitmapStore() const; + void AppendAndTrim(TDes& aTargetBuf,const TDesC& aSourceBuf); + TBool DocHasChanged() const; + // + // in WPLBOX.CPP + CDesCArray* BuildFontNameListLC() const; + CDesCArray* BuildStyleNameListLC() const; + CDesCArray* BuildAlignListLC(CArrayPtrFlat& aIcons) const; + TInt FindStyleName(CDesCArray* aStyleList) const; + TInt FindFontName(CDesCArray* aFontList) const; + TInt FindAlignmentL() const; + TInt NearestHeightIndex() const; + CDesCArray* UpdateHeightListLC(); + void LaunchFontsPopupL(); + void LaunchStylesPopupL(); + void LaunchFontHeightsPopupL(); + void LaunchBordersPopupL(); + void LaunchAlignPopupL(); + void DestroyPopoutLBox(); + void DoCreatePopoutL(CDesCArray* aText,TInt aIndex,CEikCommandButtonBase* aLaunchingButton,TToolBarType aType, + TBool aLimitWidth); + void DoCreateBitmapPopoutL(CDesCArray* aText, CArrayPtrFlat* aIcons, TInt aIndex, + CEikCommandButtonBase* aControl, TToolBarType aType); + void DoCreateMcBitmapPopoutL(CDesCArray* aText, CArrayPtrFlat* aBitmaps, TInt aIndex, + CEikCommandButtonBase* aLaunchingButton, TInt aColumnWidth, const TRect& aRect); + +private: +// + CPrintSetup* iPrintSetup; + CWordModel* iModel; +// + CWordTextEditor* iRichEd; + CArrayFixFlat* iTwipsList; + CWordTextListBox* iPopoutListBox; + CEikColumnListBox* iBitmapPopout; + CWordSnakingColumnListBox* iMcBitmapPopout; + RTmParFormat::TAlignment iAlignment; + TBool iBorderPresent; + TZoomFactor iAppZoom; + TBullet* iBullet; + CWordToolBarUpdate* iToolBarUpdate; +// + __MUTABLE HBufC8* iConfirmationText; // Pre-allocated QueryWin title text- for reporting. + TPrintParameters iPrintParameters; + TBool iPaginateDialogCalled; + TBool iPaginationOutOfDate; + TUint16 iWordFlags; + TUint16 iPicturePrefs; + TUint iBorderFlags; + + CWordTest* iTest; // test functions and data (GA) + }; + + +class TWordUiData +/** +@internalComponent +*/ + { +public: + TWordUiData(); + void Reset(); + void InternalizeL(RReadStream& aStream); + void ExternalizeL(RWriteStream& aStream)const; +public: + TUint16 iNpcVisibility; // non-printing characters visibility + TUint16 iPicturePrefs; // new objects as icon/glass + TBool iToolbandVisibility; + TBool iToolbarVisibility; + TInt iCursorPos; + TInt iZoomFactor; + TBool iWysiwygOn; + }; + + +class CWordToolBarUpdate : public CActive +/** +@internalComponent +*/ + { +public: + enum TUpdateType + { + EFullUpdate, + ECharFormatUpdate + }; +public: + static CWordToolBarUpdate* NewL(CWordAppUi& aAppUi); + ~CWordToolBarUpdate(); + void RunL(); + void Start(TUpdateType aUpdateType); +private: + CWordToolBarUpdate(CWordAppUi& aAppUi); + void DoCancel(); +private: + CWordAppUi& iAppUi; + TInt iCount; + TUpdateType iUpdateType; +public: + // + // Character format + TInt iFontHeightInTwips; + TFontStrokeWeight iStrokeWeight; + TFontPosture iPosture; + TBool iUnderline; + // + // Paragraph format + CParaFormat::TAlignment iAlignment; + TBool iBulletPresent; + TBool iBordersPresent; + }; + +#include "WPAPPUI.INL" + +#endif