diff -r 000000000000 -r 72b543305e3a email/mail/EditorSrc/MsgMailEditorAppUi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/mail/EditorSrc/MsgMailEditorAppUi.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,302 @@ +/* +* Copyright (c) 2002 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: Declares UI class for Mail application. +* +*/ + + +#ifndef MSGMAILEDITORAPPUI_H +#define MSGMAILEDITORAPPUI_H + +// INCLUDES +#include +#include +#include +#include +#include "MsgMailAppUi.h" +#include "mmsgmailappuiopdelegate.h" +#include "cmsgmailbaseop.h" + + + +// FORWARD DECLARATIONS +class CMsgMailEditorDocument; +class CMsgMailSendOptionsDlg; +class CMsgExpandableControl; +class CMsgAddressControl; +class CPbkContactEngine; +class CMsgRecipientItem; +class CAknWaitDialog; +class CMsgRecipientList; +class TAdditionalHeaderStatus; +class CMsgMailViewAttachmentsDlg; +class CMsgCheckNames; +class CMsgMailEditorHeader; +class CMsgMailNaviPaneUtils; +class CAknLocalScreenClearer; + +/** +* Application UI class. +*/ +class CMsgMailEditorAppUi + : public CMsgMailAppUi, + public MAknToolbarObserver, + public MMsgMailAppUiOpDelegate, + public MMsgMailOpObserver + { + public: // // Constructors and destructor + /** + * Default constructor + */ + CMsgMailEditorAppUi(); + + /** + * Symbian OS default constructor. + */ + void ConstructL(); + + /** + * Destructor. + */ + ~CMsgMailEditorAppUi(); + + /** + * inline + * Return pointer to mail editor document. + * @return CMsgMailEditorDocument. + * Ownership not transferred. + */ + inline CMsgMailEditorDocument* Document() const; + + public: //New functions + /** + * Fetches attachment from other application and + * adds it to message. + * @param aCommand Type of fetch operation + * we want to proceed e.g. EMsgMailEditorCmdInsertImage. + */ + void DoFetchFileL( TInt aCommand ); + + /** + * Displays toolbar Insert Other selection list. + * If option is selected proceeds to fetching. + */ + void DoShowToolBarOtherL(); + + public: // Functions from base classes + /// From MMsgEditorLauncher + void LaunchViewL(); + + //From MAknToolbarObserver + void DynInitToolbarL( TInt aResourceId, CAknToolbar* aToolbar ); + + // From MAknToolbarObserver + void OfferToolbarEventL( TInt aCommand ); + + // From CEikAppUi + void HandleCommandL(TInt aCommand); + TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent, + TEventCode aType); + + + protected: // Functions from base classes + // From MObjectProvider + TTypeUid::Ptr MopSupplyObject(TTypeUid aId); + + // From CEikAppUi + void HandleSystemEventL( const TWsEvent& aEvent ); + + private: // Functions from base classes + // From CCoeAppUi + CArrayFix< TCoeHelpContext >* HelpContextL( ) const; + + /// From MEikMenuObserver + void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane); + + /// From MMsgEditorObserver. + void EditorObserver( + TMsgEditorObserverFunc aFunc, + TAny* aArg1, + TAny* aArg2, + TAny* aArg3 ); + + /// From MMsgMailAppUiOpDelegate + void DelegateSaveMsgL(); + TMsvId DelegateMoveMsgToOutboxL(); + CMsgBodyControl& DelegateInitLaunchL(); + void DelegateExecuteViewL(); + void DelegateFinalizeLaunchL(); + + /// From MMsgMailOpObserver + void HandleOpCompleted( const CMsgMailBaseOp& aOp, + TInt aResult ); + + private: // implementation + + void HandleAttaAddedL(); + void SetTitlePaneL( TInt aResourceId ); + void DoCreateControlsL(); + void DoAttachmentL(); + void DoCheckEncodingL(); + void DoMsgSaveExitL(); + void PrepereToExitL(); + void DoSendMessageL(); + void DoSendOptionsL(); + void DoHideToolbar( const TBool aHide ); + void DoShowSelectionListL(); + void DoShowExtensionToolBar(); + + void DoShowToolBarTextL(); + void DoBackstepL(); + void DoAddRecipientL(); + void DoAdditionalHeadersL(); + void DoGetRecipientsL(); + void DoRemoveDuplicatesL(); + void DoHandleCommandL( TInt aCommand ); + void EditorObserverL( + TMsgEditorObserverFunc aFunc, + TAny* aArg1, + TAny* aArg2, + TAny* aArg3 ); + TBool CheckRecipientsL(TBool aHighLight); + void ShowIncorrectAddressErrorL(const TDesC& aTitle, + const TDesC& aAddress) const; + TBool IsEmptyL() const; + void SetSubjectL(const TDesC& aText) const; + TBool AreAddressFieldsEmptyL() const; + void UpdateMessageSizeL(); + void ShowSelectedMailboxL(); + void CheckRecipientsInFieldL(CMsgAddressControl* aAddressField, + TBool& aHighlight, TBool& aResult); + void RemoveDuplicatesL(CMsgAddressControl* aAddressField); + void RemoveDuplicatesL(CMsgAddressControl* aAddressField, + CMsgAddressControl* aLaterAddressField); + void AddRecipientArrayL(CMsgAddressControl* aControl, + const CDesCArray& aArray); + void UpdateHeaderVisibilityL( + RPointerArray& aHeaders); + void UpdatePriorityIndicatorL(); + void DoMessageInfoL(); + void InitPhoneBookL(); + void SearchUnverifiedStringL(const TDesC& aText, + CMsgAddressControl* aControl); + TBool AllAddressValidL(); + void SetFocusToFirstFreeFieldL(); + void StopWaitNote(); + void StartWaitNoteLC( + TInt aStringResourceId, + TBool aDelayOff = EFalse ); + void StartWaitNoteLC( + TInt aStringResourceId, + TBool aDelayOff, + TInt aResouceID ); + HBufC* StringLoaderLoadLC( TInt aTextResource ); + TBool SpecialScrolling( TUint aKeyCode ); + void RotateFocus( TBool aDirection, TInt aCurrentFocus ); + void SetMiddleSoftKeyLabelL( + const TInt aResourceId, const TInt aCommandId ); + void RemoveMSKCommands(); + void CheckFocusForMskL(TInt aControl); + TBool CheckGlobalReplyToSettingL(); + void SetInputModeToAddressFields( TInt aInputMode ); + void SetFocusAfterAddRecipientL( TMsgControlId aFocusBeforeAdd ); + +#ifdef RD_SCALABLE_UI_V2 + void ControlTouchedL( const CMsgBaseControl& aControl ); +#endif + + /* + * Removes unneeded prefixes from subject text + */ + void HandleSubjectL(); + + /** + * Handles enter key events. + */ + void HandleEnterKeyL(); + + private: // Data + + /** + * Own: address finder + */ + CMsgCheckNames* iCheckNames; + + /** + * Own: A wait dialog + */ + CAknWaitDialog* iWaitNote; + + /** + * Mail editor UI header handler + * Own. + */ + CMsgMailEditorHeader* iMailEditorHeader; + + /** + * Middle soft key command + */ + TInt iCurrentMskCommandId; + + /** + * Navi pane utils. Own. + */ + CMsgMailNaviPaneUtils* iNaviPaneUtils; + + /** + * Attachment dialog. Own. + */ + CMsgMailViewAttachmentsDlg* iAttachmentDlg; + + /** + * Saved focused control for touch support. + * Does not own. + */ + CMsgBaseControl* iFocusedControl; + + /** + * Operation object for sending a message. Own. + */ + CMsgMailBaseOp* iSendOp; + + /** + * Operation object for launching editor. Own. + */ + CMsgMailBaseOp* iLaunchOp; + + /** + * Operation object for fetching (attaching) files. Own. + */ + CMsgMailBaseOp* iFetchFileOp; + + /** + * Document is deleted when the editor is closed. + * ETrue : Always delete document + * EFalse : Default behaviour + */ + TBool iForceDeleteDocument; + + /** + * Screen clearer. Own. + */ + CAknLocalScreenClearer* iScreenClearer; + + }; + +// Inline functions +#include "MsgMailEditorAppUi.inl" + +#endif + +// End of File