examples/Messaging/TextMTM/txtu/TXTU.H

00001 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
00002 // All rights reserved.
00003 // This component and the accompanying materials are made available
00004 // under the terms of "Eclipse Public License v1.0"
00005 // which accompanies this distribution, and is available
00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
00007 //
00008 // Initial Contributors:
00009 // Nokia Corporation - initial contribution.
00010 //
00011 // Contributors:
00012 //
00013 // Description:
00014 //
00015 
00016 
00017 #if !defined(__TXTU_H__)
00018 #define __TXTU_H__
00019 
00020 #if !defined(__MTMUIBAS_H__)
00021 #include <mtmuibas.h>
00022 #endif
00023 
00024 #if !defined(__EIKCFDLG_H__)
00025 #include <eikcfdlg.h>//save as dialog
00026 #endif
00027 #if !defined(__TXUT_H__)
00028 #include "TXUT.H"        //service settings
00029 #endif
00030 
00031 //
00032 //      CTextMtmExportToFileDialog: export to file dialog
00033 //
00034 
00035 class CTextMtmExportToFileDialog : public CEikFileSaveAsDialog
00036         {
00037 public:
00038         CTextMtmExportToFileDialog(TDes* aFileName, const TDesC* aTitle);
00039         void PreLayoutDynInitL();
00040 private:
00041         const TDesC& iTitleBuf;
00042         };
00043 
00044 
00045 //
00046 //      CTextMtmEditServiceDialog: service setup dialog
00047 //
00048 
00049 class CTextMtmEditServiceDialog : public CEikDialog
00050         {
00051 public:
00052         CTextMtmEditServiceDialog(TMTMTxtSettings& aTxtSettings);
00053         void PreLayoutDynInitL();
00054 private:
00055         TBool OkToExitL(TInt aButtonId);
00056 private:
00057         TMTMTxtSettings& iTxtSettings;
00058         };
00059 
00060 //
00061 // CTextMtmUi: User Interface MTM
00062 //
00063 
00064 class CTextMtmUi : public CBaseMtmUi
00065         {
00066 public:
00067         // Construction
00068         static CTextMtmUi* NewL(CBaseMtm& aBaseMtm, CRegisteredMtmDll& aRegisteredMtmDll);
00069 
00070         // Destruction
00071         ~CTextMtmUi();
00072         CMsvOperation* CancelL(TRequestStatus& aStatus, const CMsvEntrySelection& aSelection);
00073         // Context-specific
00074         CMsvOperation* OpenL(TRequestStatus& aStatus); 
00075         CMsvOperation* OpenL(TRequestStatus& aStatus, const CMsvEntrySelection& aSelection); 
00076 
00077         CMsvOperation* CloseL(TRequestStatus& aStatus); 
00078         CMsvOperation* CloseL(TRequestStatus& aStatus, const CMsvEntrySelection& aSelection);
00079 
00080         // Launches editor/settings dialog as appropriate  
00081         CMsvOperation* EditL(TRequestStatus& aStatus);
00082         CMsvOperation* EditL(TRequestStatus& aStatus, const CMsvEntrySelection& aSelection) ;
00083 
00084         // Launches viewer/settings dialog as appropriate  
00085         CMsvOperation* ViewL(TRequestStatus& aStatus);
00086         CMsvOperation* ViewL(TRequestStatus& aStatus, const CMsvEntrySelection& aSelection);
00087 
00088         // Copy and move
00089         CMsvOperation* CopyToL(const CMsvEntrySelection& aSelection, TRequestStatus& aStatus);
00090         CMsvOperation* MoveToL(const CMsvEntrySelection& aSelection, TRequestStatus& aStatus);
00091         CMsvOperation* CopyFromL(const CMsvEntrySelection& aSelection, TMsvId aTargetId, 
00092                 TRequestStatus& aStatus);
00093         CMsvOperation* MoveFromL(const CMsvEntrySelection& aSelection, TMsvId aTargetId, 
00094                 TRequestStatus& aStatus);
00095 
00096         // Create/delete/undelete
00097         CMsvOperation* CreateL(const TMsvEntry& aEntry, CMsvEntry& aParent, TRequestStatus& aStatus);
00098         CMsvOperation* DeleteFromL(const CMsvEntrySelection& aSelection,TRequestStatus& aStatus);
00099         CMsvOperation* DeleteServiceL(const TMsvEntry& aService, TRequestStatus& aStatus);
00100 
00101         // MTM-specific
00102         void InvokeSyncFunctionL(TInt aFunctionId, const CMsvEntrySelection& aSelection, TDes8& aParameter);
00103         CMsvOperation* InvokeAsyncFunctionL(TInt aFunctionId, const CMsvEntrySelection& aSelection, TRequestStatus& aCompletionStatus, 
00104                 TDes8& aParameter);
00105 
00106         TInt GetProgress(const TDesC8& aProgress, TBuf<EProgressStringMaxLen>& aReturnString, TInt& aTotalEntryCount, TInt& aEntriesDone,
00107                 TInt& aCurrentEntrySize, TInt& aCurrentBytesTrans) const;
00108 
00109         CMsvOperation* ReplyL(TMsvId aDestination, TMsvPartList aPartList, TRequestStatus& aCompletionStatus);
00110         CMsvOperation* ForwardL(TMsvId aDestination, TMsvPartList aPartList, TRequestStatus& aCompletionStatus);
00111 
00112 
00113 public:
00114         // TextMtm-specific
00115         CMsvOperation* LaunchEditorApplicationL(TRequestStatus& aStatus, TMsvId aId, TBool aReadOnly);
00116 
00117 protected: 
00118         // from CBaseMtmUi
00119         void GetResourceFileName(TFileName& aFileName) const;
00120 
00121 protected:
00122         CTextMtmUi(CBaseMtm& aBaseMtm, CRegisteredMtmDll& aRegisteredMtmDll);
00123         void ConstructL();
00124 
00125 private:
00126         CMsvOperation* DoCopyMoveToL(const CMsvEntrySelection& aSelection, 
00127                 TRequestStatus& aStatus, TBool aAction);
00128         CMsvOperation* DoCopyMoveFromL(const CMsvEntrySelection& aSelection, 
00129                 TMsvId aTargetId, TRequestStatus& aStatus, TBool aAction);
00130         void CheckValidCopyMoveDelSelectionL(const CMsvEntry& aParent,
00131                                                                                  const CMsvEntrySelection& aSelection);
00132         // Editing routines
00133         CMsvOperation* MessageEditL(TRequestStatus& aStatus);
00134         CMsvOperation* ServiceEditL(TRequestStatus& aStatus);
00135         void CreateBodyIfNoneL();
00136 
00137         void DoExportTextFromMessageL(TMsvId anId);
00138 
00139         CMsvEntry* GetMessageEntryLC(TMsvId anId) const;
00140         CRichText* GetTextFromMessageStoreL(CMsvStore* aStore) const;
00141         void SetProgressSuccess(TPckgBuf<TMsvLocalOperationProgress>& aProgress,TMsvId aId);
00142 
00143 private:
00144         TMsvId iServiceId;
00145         };
00146 
00147 
00148 //
00149 //      CEditRemoteOperation: remote edit operation
00150 //
00151 
00152 class CEditRemoteOperation : public CMsvOperation
00153         {
00154         enum TEditRemoteState
00155                 {
00156                 EStateFinished=0,
00157                 EStateEditing,
00158                 EStateCopying,
00159                 };
00160         
00161         public:
00162                 CEditRemoteOperation(CTextMtmUi& aMtmUi, CMsvSession& aMsvSession, 
00163                         TInt aPriority, TRequestStatus& aObserverRequestStatus);
00164                 ~CEditRemoteOperation();
00165         public: // from CMsvOperation
00166                 void StartL(TMsvEntry& aSourceEntry);
00167                 const TDesC8& ProgressL();
00168         public: // from CActive
00169                 void DoCancel();
00170                 void RunL();
00171         private:
00172                 CTextMtmUi& iMtmUi;
00173                 TBuf8<10> progress;
00174                 CMsvOperation* iCopyOperation;
00175                 CMsvOperation* iEditOperation;
00176                 TEditRemoteState iState;
00177         };
00178 
00179 #endif // __TXTU_H__

Generated on Thu Jan 21 10:32:59 2010 for TB10.1 Example Applications by  doxygen 1.5.3