00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <coemain.h>
00018
00019
00020 #include <mtclbase.h>
00021 #include <msvstd.hrh>
00022 #include <mtmdef.hrh>
00023 #include <msvuids.h>
00024 #include <msvids.h>
00025
00026
00027 #include "TXUT.H"
00028 #include "TXTUCMDS.H"
00029 #include "TXCLIENT.H"
00030 #include "TXTI.H"
00031 #include "Txtipan.h"
00032 #include <txti.rsg>
00033 #include <txti.mbg>
00034 #include <mtmuidef.hrh>
00035 #include <mtmuidsdef.hrh>
00036
00037
00038 const TInt KTxtiMtmUdZoomNumberOfStates = 1;
00039
00040 #ifdef __WINS__
00041
00042 _LIT(KTxtiMtmUdResourceFile,"Z:\\resource\\messaging\\TXTI.RSC");
00043 _LIT(KTxtiMtmUdBitmapFile,"Z:\\resource\\messaging\\TXTI.MBM");
00044 #else
00045 _LIT(KTxtiMtmUdResourceFile,"Z:\\resource\\messaging\\TXTI.RSC");
00046 _LIT(KTxtiMtmUdBitmapFile,"Z:\\resource\\messaging\\TXTI.MBM");
00047 #endif //WINS
00048
00049 _LIT(KTxtiReadyToSend,"Ready To Send");
00050
00051
00052
00053
00054 enum TTxtiBitmapIndexes
00055 {
00056 ETxtiLowPriority=0,
00057 ETxtiNormalPriority,
00058 ETxtiHighPriority,
00059 ETxtiService,
00060 ETxtiFolder
00061 };
00062
00063
00064
00065 #define KUidMtmQueryCanCreateNewMsgValue 0x10008b24
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075 CTxtiMtmUiData* CTxtiMtmUiData::NewL(CRegisteredMtmDll& aRegisteredDll)
00076 {
00077 CTxtiMtmUiData* base=new(ELeave) CTxtiMtmUiData(aRegisteredDll);
00078 CleanupStack::PushL(base);
00079 base->ConstructL();
00080 CleanupStack::Pop();
00081 return base;
00082 }
00083
00084 CTxtiMtmUiData::~CTxtiMtmUiData()
00085 {
00086 }
00087
00088 void CTxtiMtmUiData::PopulateArraysL()
00089
00090 {
00091
00092 ReadFunctionsFromResourceFileL(R_TEXTUD_FUNCTION_ARRAY);
00093
00094
00095 CreateBitmapsL(KTxtiMtmUdZoomNumberOfStates, KTxtiMtmUdBitmapFile, EMbmTxtiTextl1, EMbmTxtiFold1);
00096 }
00097
00098 CTxtiMtmUiData::CTxtiMtmUiData(CRegisteredMtmDll& aRegisteredDll)
00099 : CBaseMtmUiData(aRegisteredDll)
00100 {}
00101
00102
00103 void CTxtiMtmUiData::GetResourceFileName(TFileName& aFileName) const
00104
00105 {
00106 aFileName=KTxtiMtmUdResourceFile;
00107 }
00108
00109
00110
00111
00112
00113
00114 TInt CTxtiMtmUiData::OperationSupportedL(TInt aOperationId, const TMsvEntry& aContext) const
00115
00116 {
00117 TInt aReasonResourceId=0;
00118
00119 if (aContext.iMtm!=KUidMsgTypeText) return R_TEXTUD_NOT_SUPPORTED;
00120
00121 const TBool isMessage=aContext.iType==KUidMsvMessageEntry;
00122 const TBool isService=aContext.iType==KUidMsvServiceEntry;
00123
00124 if (aOperationId==ETxtuCommandRefreshMBox)
00125 {
00126
00127 if (!isService)
00128 aReasonResourceId=R_TEXTUD_ONLY_REFRESH_SERVICES;
00129 }
00130 else if (aOperationId==ETxtuCommandExportText)
00131 {
00132
00133 if ( (!isMessage) || (aContext.iServiceId != KMsvLocalServiceIndexEntryId) )
00134 aReasonResourceId=R_TEXTUD_ONLY_MESSAGES;
00135 }
00136 return aReasonResourceId;
00137 }
00138
00139
00140 TInt CTxtiMtmUiData::QueryCapability(TUid aCapability, TInt& aResponse) const
00141
00142 {
00143 switch (aCapability.iUid)
00144 {
00145
00146 case KUidMtmQueryMaxBodySizeValue:
00147 aResponse=KMaxTextMessageSize;
00148 break;
00149 case KUidMtmQueryMaxTotalMsgSizeValue:
00150 aResponse=KMaxTextMessageSize;
00151 break;
00152
00153
00154
00155 case KUidMtmQuerySupportedBodyValue:
00156 case KUidMtmQueryCanSendMsgValue:
00157 case KUidMtmQueryOffLineAllowedValue:
00158 case KUidMtmQueryCanReceiveMsgValue:
00159 case KUidMtmQueryCanCreateNewMsgValue:
00160 aResponse=ETrue;
00161 break;
00162
00163
00164
00165 case KUidMtmQuerySupportAttachmentsValue:
00166 aResponse=EFalse;
00167 break;
00168 default:
00169 return KErrNotSupported;
00170 };
00171 return KErrNone;
00172 }
00173
00174 const CBaseMtmUiData::CBitmapArray& CTxtiMtmUiData::ContextIcon(const TMsvEntry& aContext, TInt ) const
00175
00176
00177 {
00178 __ASSERT_ALWAYS(aContext.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00179 __ASSERT_ALWAYS(aContext.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdNoIconForAttachment));
00180
00181 TInt retIndex=ETxtiLowPriority;
00182 if (aContext.iType == KUidMsvServiceEntry)
00183 retIndex=ETxtiService;
00184 else if (aContext.iType == KUidMsvFolderEntry)
00185 retIndex=ETxtiFolder;
00186 else if (aContext.Priority()==EMsvMediumPriority)
00187 retIndex=ETxtiNormalPriority;
00188 else if (aContext.Priority()==EMsvHighPriority)
00189 retIndex=ETxtiHighPriority;
00190 return *iIconArrays->At(retIndex);
00191 }
00192
00193
00194
00195
00196
00197 TBool CTxtiMtmUiData::CanOpenEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
00198 {
00199 __ASSERT_ALWAYS(aContext.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00200 __ASSERT_ALWAYS(aContext.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdAttachmentsNotSupported));
00201
00202 aReasonResourceId=0;
00203 if ( aContext.iType != KUidMsvMessageEntry )
00204 {
00205 aReasonResourceId=R_TEXTUD_ONLY_MESSAGES;
00206 return KErrNotSupported;
00207 }
00208 else
00209 return KErrNone;
00210 }
00211
00212 TBool CTxtiMtmUiData::CanCloseEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
00213 {
00214 __ASSERT_ALWAYS(aContext.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00215 __ASSERT_ALWAYS(aContext.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdAttachmentsNotSupported));
00216
00217 aReasonResourceId=0;
00218 if ( aContext.iType != KUidMsvMessageEntry )
00219 {
00220 aReasonResourceId=R_TEXTUD_ONLY_MESSAGES;
00221 return KErrNotSupported;
00222 }
00223 else
00224 return KErrNone;
00225 }
00226
00227 TBool CTxtiMtmUiData::CanViewEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
00228 {
00229 __ASSERT_ALWAYS(aContext.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00230 __ASSERT_ALWAYS(aContext.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdAttachmentsNotSupported));
00231
00232 aReasonResourceId=0;
00233 if ( aContext.iType != KUidMsvMessageEntry )
00234 {
00235 aReasonResourceId=R_TEXTUD_ONLY_MESSAGES;
00236 return KErrNotSupported;
00237 }
00238 else
00239 return KErrNone;
00240 }
00241
00242 TBool CTxtiMtmUiData::CanEditEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
00243 {
00244 __ASSERT_ALWAYS(aContext.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00245 __ASSERT_ALWAYS(aContext.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdAttachmentsNotSupported));
00246
00247 aReasonResourceId=0;
00248 if ( aContext.iType == KUidMsvFolderEntry )
00249 {
00250 aReasonResourceId=R_TEXTUD_CAN_NOT_EDIT_FOLDERS;
00251 return KErrNotSupported;
00252 }
00253 else
00254 return KErrNone;
00255 }
00256
00257
00258 TBool CTxtiMtmUiData::CanDeleteFromEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
00259 {
00260 __ASSERT_ALWAYS(aContext.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00261 __ASSERT_ALWAYS(aContext.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdAttachmentsNotSupported));
00262
00263 aReasonResourceId=0;
00264 return KErrNone;
00265 }
00266
00267 TBool CTxtiMtmUiData::CanCopyMoveToEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
00268 {
00269 __ASSERT_ALWAYS(aContext.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00270 __ASSERT_ALWAYS(aContext.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdAttachmentsNotSupported));
00271
00272 aReasonResourceId=0;
00273 return KErrNone;
00274 }
00275
00276 TBool CTxtiMtmUiData::CanCopyMoveFromEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
00277 {
00278 __ASSERT_ALWAYS(aContext.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00279 __ASSERT_ALWAYS(aContext.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdAttachmentsNotSupported));
00280
00281 aReasonResourceId=0;
00282 return KErrNone;
00283 }
00284
00285 TBool CTxtiMtmUiData::CanReplyToEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
00286
00287
00288
00289 {
00290 __ASSERT_ALWAYS(aContext.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00291 __ASSERT_ALWAYS(aContext.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdAttachmentsNotSupported));
00292
00293 aReasonResourceId=R_TEXTUD_NOT_SUPPORTED;
00294 return KErrNotSupported;
00295 }
00296
00297 TBool CTxtiMtmUiData::CanForwardEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
00298
00299
00300
00301 {
00302 __ASSERT_ALWAYS(aContext.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00303 __ASSERT_ALWAYS(aContext.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdAttachmentsNotSupported));
00304
00305 aReasonResourceId=R_TEXTUD_NOT_SUPPORTED;
00306 return KErrNotSupported;
00307 }
00308
00309
00310 TBool CTxtiMtmUiData::CanCreateEntryL(const TMsvEntry& aParent, TMsvEntry& aNewEntry,
00311 TInt& aReasonResourceId) const
00312 {
00313 __ASSERT_ALWAYS(aNewEntry.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00314 __ASSERT_ALWAYS(aNewEntry.iType!=KUidMsvAttachmentEntry, Panic(ETxtiMtmUdAttachmentsNotSupported));
00315
00316 aReasonResourceId=0;
00317
00318 if (aNewEntry.iType == KUidMsvServiceEntry)
00319 return (aParent.Id() == KMsvRootIndexEntryIdValue);
00320
00321
00322 if (aNewEntry.iType == KUidMsvMessageEntry)
00323 return (aParent.iMtm.iUid == KMsvLocalServiceIndexEntryIdValue);
00324
00325 return KErrNotSupported;
00326 }
00327
00328 TBool CTxtiMtmUiData::CanDeleteServiceL(const TMsvEntry& aService, TInt& aReasonResourceId)const
00329 {
00330 __ASSERT_ALWAYS(aService.iMtm==KUidMsgTypeText, Panic(ETxtiMtmUdWrongMtm));
00331
00332 aReasonResourceId=0;
00333 return KErrNone;
00334 }
00335
00336 TBool CTxtiMtmUiData::CanCancelL(const TMsvEntry& , TInt& ) const
00337 {
00338 return EFalse;
00339 }
00340
00341 HBufC* CTxtiMtmUiData::StatusTextL(const TMsvEntry& ) const
00342 {
00343 HBufC* statusBuffer = HBufC::NewL(15);
00344 *statusBuffer = KTxtiReadyToSend;
00345 return statusBuffer;
00346 }