1.1 --- a/epoc32/include/mtmuibas.h Tue Mar 16 16:12:26 2010 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,527 +0,0 @@
1.4 -// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 -// All rights reserved.
1.6 -// This component and the accompanying materials are made available
1.7 -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.8 -// which accompanies this distribution, and is available
1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 -//
1.11 -// Initial Contributors:
1.12 -// Nokia Corporation - initial contribution.
1.13 -//
1.14 -// Contributors:
1.15 -//
1.16 -// Description:
1.17 -//
1.18 -
1.19 -#if !defined(__MTMUIBAS_H__)
1.20 -#define __MTMUIBAS_H__
1.21 -
1.22 -#if !defined(__MSVSTD_H__)
1.23 -#include <msvstd.h>
1.24 -#endif
1.25 -#if !defined(__MTCLBASE_H__)
1.26 -#include <mtclbase.h>
1.27 -#endif
1.28 -
1.29 -// Forward references
1.30 -class CMsvSession;
1.31 -class CMsvOperation;
1.32 -class CCoeEnv;
1.33 -
1.34 -///////////////////////////////////
1.35 -// CBaseMtmUi - MTMUi base API //
1.36 -///////////////////////////////////
1.37 -class CBaseMtmUi : public CBase
1.38 -/** Provides MTM-specific user interaction, such as editing, viewing, deleting,
1.39 -and copying of message entries.
1.40 -
1.41 -Message client applications use the class to access such functionality polymorphically.
1.42 -MTM implementers implement a derived class to provide such functionality for
1.43 -their message protocol.
1.44 -
1.45 -The base class is largely an interface definition: it implements little important
1.46 -functionality itself. For implementers, this documentation defines conditions
1.47 -that any implementation must fulfil, plus suggested semantics for behaviour.
1.48 -This still leaves many decisions in the hands of the implementer. A key design
1.49 -time activity is to define how the particular characteristics of the implemented
1.50 -protocol are best mapped to the interface. As this class is concerned with
1.51 -user interfaces, implementers should be sensitive to the look and feel of
1.52 -the target phone.
1.53 -
1.54 -Many functions are required to return an instance of a CMsvOperation-derived
1.55 -class to provide asynchronous control and monitoring to the caller of the
1.56 -operation being performed.
1.57 -
1.58 -The following are some significant groups of functions:
1.59 -
1.60 -Entry manipulation functions: OpenL(), CloseL(), EditL(), and ViewL() are
1.61 -all available in two overloaded versions. The first version operates on the
1.62 -current context. The second version operates upon groups of entries specified
1.63 -by a CMsvEntrySelection argument. All entries must be in same folder and all
1.64 -of the correct MTM type. The context may change after calling these functions.
1.65 -Concrete User Interface MTMs can legally ignore any of the entries within
1.66 -the selection - many may, for example, simply open the first entry.
1.67 -
1.68 -Copying and moving functions: the CopyToL(), CopyFromL(), MoveToL(), and MoveFromL()
1.69 -functions are concerned with copying and moving entries to and from remote
1.70 -servers. MTMs can implement these functions to provide any user interaction
1.71 -needed before copying or moving can proceed, such as dialogs to confirm settings;
1.72 -and, any protocol-specific setup steps that can be done at this stage: for
1.73 -example, a fax MTM could render messages into the required image format.
1.74 -
1.75 -Progress information functions: DisplayProgressSummary() and GetProgress()
1.76 -convert MTM-specific progress information about some asynchronous operation,
1.77 -such as message sending, to a human-readable form. The progress information
1.78 -to pass into these functions is, in general, obtained from an on-going CMsvOperation
1.79 -by calling CMsvOperation::Progress(). The nature of any information provided
1.80 -is MTM-specific.
1.81 -
1.82 -MTM-specific UI functions: MTM components can offer protocol-specific functionality
1.83 -not provided by base class interface functions. MTM components define IDs
1.84 -that correspond to each protocol-specific operation offered, and implement
1.85 -the InvokeSyncFunctionL() and InvokeAsyncFunctionL() functions to allow clients
1.86 -to access these operations by passing in the appropriate ID. Two functions
1.87 -are provided to allow the MTM component to offer both synchronous and asynchronous
1.88 -functionality. Message client applications can dynamically add user-interface
1.89 -features for these operations using CBaseMtmUiData::MtmSpecificFunctions().
1.90 -MTM developers should document the IDs if they wish to make the operations
1.91 -available to clients.
1.92 -@publishedAll
1.93 -@released
1.94 -*/
1.95 - {
1.96 -public:
1.97 - // --- enums ---
1.98 - /** Progress information buffer length. */
1.99 - enum {
1.100 - /** Defines the maximum buffer length used in GetProgress() to hold progress information. */
1.101 - EProgressStringMaxLen=255};
1.102 - //
1.103 - // --- Set up functionality ---
1.104 - IMPORT_C void SetPreferences(TUint aFlags);
1.105 - IMPORT_C TUint Preferences() const;
1.106 - //
1.107 - // --- Destruction ---
1.108 - IMPORT_C virtual ~CBaseMtmUi();
1.109 - //
1.110 - // --- Accessor functions ---
1.111 - IMPORT_C TUid Type() const;
1.112 - IMPORT_C CBaseMtm& BaseMtm() const;
1.113 - //
1.114 - // --- Functions NOT dependent on the current context ---
1.115 - IMPORT_C virtual CMsvOperation* CreateL(const TMsvEntry& aEntry, CMsvEntry& aParent, TRequestStatus& aStatus);
1.116 - //
1.117 - // --- Functions dependent on the current context ---
1.118 - /** Opens an entry.
1.119 -
1.120 - The behaviour that this implies is dependent on the current context:
1.121 -
1.122 - 1. for message contexts, OpenL() is the equivalent of EditL(), or for read-only
1.123 - messages, ViewL(). Whether opening of remote messages is allowed is MTM-specific.
1.124 -
1.125 - 2. for service contexts, the function may initiate a connection to obtain the
1.126 - service contents from the server, completing asynchronously
1.127 -
1.128 - 3. for remote folder contexts, dependent on implementation, the function may
1.129 - initiate a connection to obtain the folder contents from the server, completing
1.130 - asynchronously
1.131 -
1.132 - The returned CMsvOperation object completes when opening is complete.
1.133 -
1.134 - Requirements:
1.135 -
1.136 - If opening entries is not supported, implementations should leave with KErrNotSupported.
1.137 - Otherwise, implementations should:
1.138 -
1.139 - 1. check aEntry.iType.iUid to ensure that they can open the requested type of
1.140 - entry and leave with code KErrNotSupported if they cannot
1.141 -
1.142 - 2. return a CMsvOperation-derived object to provide asynchronous control and
1.143 - monitoring of the operation
1.144 -
1.145 - 3. for remote messages, typically, copy the messages to the Inbox
1.146 -
1.147 - @param aStatus The request status to be completed when the operation has finished
1.148 -
1.149 - @leave KErrNotSupported The User Interface MTM does not support open operations,
1.150 - or opening is inappropriate to the current context
1.151 - @leave Other Dependent on implementation
1.152 - @return If successful, this is an asynchronously completing open operation.
1.153 - If failed, this is a completed operation, with status set to the relevant
1.154 - error code. */
1.155 - virtual CMsvOperation* OpenL(TRequestStatus& aStatus) = 0;
1.156 - /** Closes an entry. The behaviour that this implies is dependent on the current
1.157 - context:
1.158 -
1.159 - 1. for message contexts, this usually closes any launched editors or viewers
1.160 -
1.161 - 2. for folder contexts, leaves with KErrNotSupported
1.162 -
1.163 - 3. for service contexts, causes closure of a connection to a server
1.164 -
1.165 - The returned CMsvOperation object completes when closing is complete.
1.166 -
1.167 - Requirements:
1.168 -
1.169 - Implementations should:
1.170 -
1.171 - 1. check aEntry.iType.iUid to ensure that they can close the requested type of
1.172 - entry and leave with code KErrNotSupported if they cannot
1.173 -
1.174 - 2. return a CMsvOperation-derived object to provide asynchronous control and
1.175 - monitoring of the operation
1.176 -
1.177 - @param aStatus The request status to be completed when the operation has finished
1.178 -
1.179 - @leave KErrNotSupported The User Interface MTM does not support close operations,
1.180 - or closing is inappropriate to the current context
1.181 - @leave Other Dependent on implementation
1.182 - @return If successful, this is an asynchronously completing close operation.
1.183 - If failed, this is a completed operation, with status set to the relevant
1.184 - error code. */
1.185 - virtual CMsvOperation* CloseL(TRequestStatus& aStatus) = 0;
1.186 - /** Edits an entry.
1.187 -
1.188 - The behaviour that this implies is dependent on the current
1.189 - context:
1.190 -
1.191 - 1. for message contexts, this usually launches the appropriate message editor,
1.192 - or returns status KErrReadOnly if the message is not editable
1.193 -
1.194 - 2. for remote folder contexts, launches a settings dialog, for example to rename
1.195 - the folder, completing asynchronously
1.196 -
1.197 - 3. for service contexts, launches a service settings dialog, completing asynchronously
1.198 -
1.199 - The returned CMsvOperation object completes when editing is complete.
1.200 -
1.201 - Requirements:
1.202 -
1.203 - Implementations should:
1.204 -
1.205 - 1. check aEntry.iType.iUid to ensure that they can edit the requested type of
1.206 - entry and leave with code KErrNotSupported if they cannot
1.207 -
1.208 - 2. return a CMsvOperation-derived object to provide asynchronous control and
1.209 - monitoring of the operation
1.210 -
1.211 - 3. for remote messages, typically, copy the messages to the Inbox
1.212 -
1.213 - 4. follow the leave protocols described in Leave considerations below
1.214 -
1.215 - @param aStatus The request status to be completed when the operation has finished
1.216 - @leave KErrNotSupported The User Interface MTM does not support edit operations,
1.217 - or editing is inappropriate to the current context
1.218 - @leave KErrReadOnly Context is read-only
1.219 - @leave Other Dependent on implementation
1.220 - @return If successful, this is an asynchronously completing edit operation.
1.221 - If failed, this is a completed operation, with status set to the relevant
1.222 - error code. */
1.223 - virtual CMsvOperation* EditL(TRequestStatus& aStatus) = 0;// Launches editor/settings dialog as appropriate
1.224 - /** Views an entry.
1.225 -
1.226 - For message contexts, this usually launches the appropriate
1.227 - message viewer. Other context types leave with KErrNotSupported. The returned
1.228 - CMsvOperation object completes when viewing is complete.
1.229 -
1.230 - Requirements:
1.231 -
1.232 - Implementations should:
1.233 -
1.234 - 1. check aEntry.iType.iUid to ensure that they can view the requested type of
1.235 - entry and leave with code KErrNotSupported if they cannot
1.236 -
1.237 - 2. return a CMsvOperation-derived object to provide asynchronous control and
1.238 - monitoring of the operation
1.239 -
1.240 - @param aStatus The request status to be completed when the operation has finished
1.241 - @leave KErrNotSupported The User Interface MTM does not support view operations,
1.242 - or viewing is inappropriate to the current context
1.243 - @leave Other Dependent on implementation
1.244 - @return If successful, this is an asynchronously completing view operation.
1.245 - If failed, this is a completed operation, with status set to the relevant
1.246 - error code. */
1.247 - virtual CMsvOperation* ViewL(TRequestStatus& aStatus) = 0;// Launches viewer/settings dialog as appropriate
1.248 - //
1.249 - // --- Actions upon message selections ---
1.250 - // --- Selections must be in same folder and all of the correct MTM type ---
1.251 - // --- Context may change after calling these functions ---
1.252 - /** Opens a selection of entries.
1.253 -
1.254 - The behaviour that this implies is dependent on the current context:
1.255 -
1.256 - 1. for message contexts, OpenL() is the equivalent of EditL(), or for read-only
1.257 - messages, ViewL(). Whether opening of remote messages is allowed is MTM-specific.
1.258 -
1.259 - 2. for service contexts, the function may initiate a connection to obtain the
1.260 - service contents from the server, completing asynchronously
1.261 -
1.262 - 3. for remote folder contexts, dependent on implementation, the function may
1.263 - initiate a connection to obtain the folder contents from the server, completing
1.264 - asynchronously
1.265 -
1.266 - The returned CMsvOperation object completes when opening is complete.
1.267 -
1.268 - Requirements:
1.269 -
1.270 - If opening entries is not supported, implementations should leave with KErrNotSupported.
1.271 - Otherwise, implementations should:
1.272 -
1.273 - 1. check aEntry.iType.iUid to ensure that they can open the requested type of
1.274 - entry and leave with code KErrNotSupported if they cannot
1.275 -
1.276 - 2. return a CMsvOperation-derived object to provide asynchronous control and
1.277 - monitoring of the operation
1.278 -
1.279 - 3. for remote messages, typically, copy the messages to the Inbox
1.280 -
1.281 - @param aStatus The request status to be completed when the operation has finished
1.282 - @param aSelection Selection of message entries
1.283 - @leave KErrNotSupported The User Interface MTM does not support open operations,
1.284 - or opening is inappropriate to the current context
1.285 - @leave Other Dependent on implementation
1.286 - @return If successful, this is an asynchronously completing open operation.
1.287 - If failed, this is a completed operation, with status set to the relevant
1.288 - error code. */
1.289 - virtual CMsvOperation* OpenL(TRequestStatus& aStatus, const CMsvEntrySelection& aSelection) = 0;
1.290 - /** Closes a selection of entries.
1.291 -
1.292 - The behaviour that this implies is dependent on the current context:
1.293 -
1.294 - 1. for message contexts, this usually closes any launched editors or viewers
1.295 -
1.296 - 2. for folder contexts, leaves with KErrNotSupported
1.297 -
1.298 - 3. for service contexts, causes closure of a connection to a server
1.299 -
1.300 - The returned CMsvOperation object completes when closing is complete.
1.301 -
1.302 - Requirements:
1.303 -
1.304 - Implementations should:
1.305 -
1.306 - 1. check aEntry.iType.iUid to ensure that they can close the requested type of
1.307 - entry and leave with code KErrNotSupported if they cannot
1.308 -
1.309 - 2. return a CMsvOperation-derived object to provide asynchronous control and
1.310 - monitoring of the operation
1.311 -
1.312 - @param aStatus The request status to be completed when the operation has finished
1.313 - @param aSelection Selection of message entries
1.314 - @leave KErrNotSupported The User Interface MTM does not support close operations,
1.315 - or closing is inappropriate to the current context
1.316 - @leave Other Dependent on implementation
1.317 - @return If successful, this is an asynchronously completing close operation.
1.318 - If failed, this is a completed operation, with status set to the relevant
1.319 - error code. */
1.320 - virtual CMsvOperation* CloseL(TRequestStatus& aStatus, const CMsvEntrySelection& aSelection) = 0;
1.321 - /** Edits a selection of entries.
1.322 -
1.323 - The behaviour that this implies is dependent on the current context:
1.324 -
1.325 - 1. for message contexts, this usually launches the appropriate message editor,
1.326 - or returns status KErrReadOnly if the message is not editable
1.327 -
1.328 - 2. for remote folder contexts, launches a settings dialog, for example to rename
1.329 - the folder, completing asynchronously
1.330 -
1.331 - 3. for service contexts, launches a service settings dialog, completing asynchronously
1.332 -
1.333 - The returned CMsvOperation object completes when editing is complete.
1.334 -
1.335 - Requirements:
1.336 -
1.337 - Implementations should:
1.338 -
1.339 - 1. check aEntry.iType.iUid to ensure that they can edit the requested type of
1.340 - entry and leave with code KErrNotSupported if they cannot
1.341 -
1.342 - 2. return a CMsvOperation-derived object to provide asynchronous control and
1.343 - monitoring of the operation
1.344 -
1.345 - 3. for remote messages, typically, copy the messages to the Inbox
1.346 -
1.347 - 4. follow the leave protocols described in Leave considerations below
1.348 -
1.349 - @param aStatus The request status to be completed when the operation has finished
1.350 - @param aSelection Selection of message entries
1.351 - @leave KErrNotSupported The User Interface MTM does not support edit operations,
1.352 - or editing is inappropriate to the current context
1.353 - @leave KErrReadOnly Context is read-only
1.354 - @leave Other Dependent on implementation
1.355 - @return If successful, this is an asynchronously completing edit operation.
1.356 - If failed, this is a completed operation, with status set to the relevant
1.357 - error code. */
1.358 - virtual CMsvOperation* EditL(TRequestStatus& aStatus, const CMsvEntrySelection& aSelection) = 0;// Launches editor/settings dialog as appropriate
1.359 - /** Views a selection of entries.
1.360 -
1.361 - For message contexts, this usually launches the appropriate
1.362 - message viewer. Other context types leave with KErrNotSupported. The returned
1.363 - CMsvOperation object completes when viewing is complete.
1.364 -
1.365 - Requirements:
1.366 -
1.367 - Implementations should:
1.368 -
1.369 - 1. check aEntry.iType.iUid to ensure that they can view the requested type of
1.370 - entry and leave with code KErrNotSupported if they cannot
1.371 -
1.372 - 2. return a CMsvOperation-derived object to provide asynchronous control and
1.373 - monitoring of the operation
1.374 -
1.375 - @param aStatus The request status to be completed when the operation has finished
1.376 - @param aSelection Selection of message entries
1.377 - @leave KErrNotSupported The User Interface MTM does not support view operations,
1.378 - or viewing is inappropriate to the current context
1.379 - @leave Other Dependent on implementation
1.380 - @return If successful, this is an asynchronously completing view operation.
1.381 - If failed, this is a completed operation, with status set to the relevant
1.382 - error code. */
1.383 - virtual CMsvOperation* ViewL(TRequestStatus& aStatus, const CMsvEntrySelection& aSelection) = 0;// Launches viewer/settings dialog as appropriate
1.384 - /** Cancels the sending of specified messages.
1.385 -
1.386 - @param aStatus The request status to be completed when the operation has finished
1.387 - @param aSelection Selection of message entries
1.388 - @leave KErrNotSupported The User Interface MTM does not support cancel operations,
1.389 - or cancelling is inappropriate to the current context
1.390 - @leave Other Dependent on implementation
1.391 - @return If successful, this is an asynchronously completing cancel operation.
1.392 - If failed, this is a completed operation, with status set to the relevant
1.393 - error code. */
1.394 - virtual CMsvOperation* CancelL(TRequestStatus& aStatus, const CMsvEntrySelection& aSelection) = 0;
1.395 - //
1.396 - // --- Deletion ---
1.397 - // --- Deletes entries from the current context, which must be a folder or service of the relevant MTM ---
1.398 - IMPORT_C virtual CMsvOperation* DeleteFromL(const CMsvEntrySelection& aSelection, TRequestStatus& aStatus);//Deletes selection from current context
1.399 - // --- Un-deletes entries from the current context, which must be a folder or service of the relevant MTM ---
1.400 - IMPORT_C virtual CMsvOperation* UnDeleteFromL(const CMsvEntrySelection& aSelection, TRequestStatus& aStatus);//Un-deletes selection from current context
1.401 - // --- Deletes service, which need not be the current context ---
1.402 - IMPORT_C virtual CMsvOperation* DeleteServiceL(const TMsvEntry& aService, TRequestStatus& aStatus); // default implementation simply delegates to the server
1.403 - //
1.404 - // --- Message responding ---
1.405 - /** Creates a reply message to the current message context, and allows the user
1.406 - to edit it through a message-type specific editor.
1.407 -
1.408 - Some MTMs may support inclusion of elements, specified by aPartlist, from the original message in the reply.
1.409 - The parent for the new entry is specified in aDestination. The returned CMsvOperation
1.410 - object completes when editing the reply is complete. On completion, the context
1.411 - is set to the reply message.
1.412 -
1.413 - Requirements:
1.414 -
1.415 - A typical implementation for this function would include the following steps:
1.416 -
1.417 - 1. create a new reply entry by calling CBaseMtm::ReplyL()
1.418 -
1.419 - 2. call EditL() allow the user to edit the reply
1.420 -
1.421 - 3. return a CMsvOperation-derived object to provide asynchronous control and
1.422 - monitoring of the operation
1.423 -
1.424 - If message replies are not supported, implementations should leave with KErrNotSupported.
1.425 -
1.426 - @param aDestination The entry to which to assign the reply
1.427 - @param aPartlist Defines the parts which are to be copied from the original
1.428 - message into the reply. See CBaseMtm::ReplyL() for details.
1.429 - @param aCompletionStatus The request status to be completed when the operation
1.430 - has finished
1.431 - @leave KErrNotSupported The User Interface MTM does not support reply operations
1.432 - @leave Other Dependent on implementation
1.433 - @return If successful, this is an asynchronously completing reply operation.
1.434 - If failed, this is a completed operation, with status set to the relevant
1.435 - error code. */
1.436 - virtual CMsvOperation* ReplyL(TMsvId aDestination, TMsvPartList aPartlist, TRequestStatus& aCompletionStatus) = 0;
1.437 - /**
1.438 - Creates a forwarded message from the current message context, and allows the user to edit it through a message-type
1.439 - specific editor.
1.440 -
1.441 - Some MTMs may support inclusion of elements, specified by aPartlist, from the original message in the
1.442 - forwarded message. The parent for the new entry is specified in aDestination. The returned CMsvOperation
1.443 - object completes when editing the forwarded message is complete. On completion, the context is set to the forwarded message.
1.444 -
1.445 - Requirements:
1.446 -
1.447 - A typical implementation for this function would include the following steps:
1.448 -
1.449 - 1. create a new forwarded message entry by calling CBaseMtm::ForwardL()
1.450 -
1.451 - 2. call EditL() allow the user to edit the forwarded message
1.452 -
1.453 - 3. return a CMsvOperation-derived object to provide asynchronous control and monitoring of the operation
1.454 -
1.455 - If forwarded messages are not supported, implementations should leave with KErrNotSupported.
1.456 -
1.457 - @return If successful, this is an asynchronously completing forward message operation. If failed,
1.458 - this is a completed operation, with status set to the relevant error code.
1.459 - @param aDestination The entry to which to assign the forwarded message
1.460 - @param aPartList Defines the parts which are to be copied from the original message into the forwarded message
1.461 - @param aCompletionStatus The request status to be completed when the operation has finished
1.462 - @leave KErrNotSupported The User Interface MTM does not support message forwarding operations
1.463 - @leave Other Dependent on implementation
1.464 - */
1.465 - virtual CMsvOperation* ForwardL(TMsvId aDestination, TMsvPartList aPartList, TRequestStatus& aCompletionStatus) = 0;
1.466 -
1.467 - //
1.468 - // --- Copy and move functions ---
1.469 - // --- Context should be set to folder or entry of this MTM ---
1.470 - // --- Default implementations imply call the relevant CMsvEntry functions ---
1.471 - IMPORT_C virtual CMsvOperation* CopyToL(const CMsvEntrySelection& aSelection, TRequestStatus& aStatus);// Context should be MTM folder/service to copy to
1.472 - IMPORT_C virtual CMsvOperation* MoveToL(const CMsvEntrySelection& aSelection, TRequestStatus& aStatus);// Context should be MTM folder/service to move to
1.473 - IMPORT_C virtual CMsvOperation* CopyFromL(const CMsvEntrySelection& aSelection, TMsvId aTargetId, TRequestStatus& aStatus);// Context should be MTM folder/service to copy from
1.474 - IMPORT_C virtual CMsvOperation* MoveFromL(const CMsvEntrySelection& aSelection, TMsvId aTargetId, TRequestStatus& aStatus);// Context should be MTM folder/service to move from
1.475 - //
1.476 - // --- Interpret transfer progress ---
1.477 - IMPORT_C virtual TInt DisplayProgressSummary(const TDesC8& aProgress) const;// Used for display operation summary (usually completed operations). Default implementation returns KErrNotSupported.
1.478 - IMPORT_C virtual TInt GetProgress(const TDesC8& aProgress, TBuf<EProgressStringMaxLen>& aReturnString, TInt& aTotalEntryCount, TInt& aEntriesDone,
1.479 - TInt& aCurrentEntrySize, TInt& aCurrentBytesTrans) const;// Default implementation returns KErrNotSupported
1.480 - //
1.481 - // --- RTTI functions ---
1.482 - IMPORT_C virtual TInt QueryCapability(TUid aCapability, TInt& aResponse);
1.483 - IMPORT_C virtual void InvokeSyncFunctionL(TInt aFunctionId, const CMsvEntrySelection& aSelection, TDes8& aParameter);
1.484 - IMPORT_C virtual CMsvOperation* InvokeAsyncFunctionL(TInt aFunctionId, const CMsvEntrySelection& aSelection, TRequestStatus& aCompletionStatus,
1.485 - TDes8& aParameter);
1.486 -
1.487 -protected:
1.488 - // --- Construction ---
1.489 - IMPORT_C CBaseMtmUi(CBaseMtm& aBaseMtm, CRegisteredMtmDll& aRegisteredMtmDll);
1.490 - IMPORT_C virtual void ConstructL();
1.491 - /** Sets the full path and name of the resource file associated with the User Interface MTM.
1.492 -
1.493 - Client applications do not use this function. It is relevant only to implementers of derived classes.
1.494 -
1.495 - Requirements:
1.496 -
1.497 - The function is called by CBaseMtmUi::ConstructL(), which then loads the resource
1.498 - file.
1.499 -
1.500 - @param aFileName Filename buffer to be filled with the resource file path
1.501 - and name */
1.502 - virtual void GetResourceFileName(TFileName& aFileName) const = 0;
1.503 - //
1.504 - // --- Utility functions ---
1.505 - IMPORT_C CMsvSession& Session() const;
1.506 -
1.507 - // Method used for extension: called by non virtual methods that need
1.508 - // to have a polymorphic behaviour.
1.509 - IMPORT_C virtual TAny* GetInterface(TUid aUid);
1.510 -
1.511 -protected:
1.512 - // --- Data ---
1.513 - /** The CBaseMtm-derived object (Client-side MTM) that requested the User Interface
1.514 - MTM. It is set by the constructor. */
1.515 - CBaseMtm& iBaseMtm;
1.516 - /** Control environment object. It is set by the constructor. */
1.517 - CCoeEnv* iCoeEnv;
1.518 - /** This flag records the preferences as set by SetPreferences(). */
1.519 - TUint iFlags;
1.520 -
1.521 -private:
1.522 - // --- Data ---
1.523 - CRegisteredMtmDll& iRegisteredMtmDll;
1.524 - TInt iResourceFileOffset;
1.525 - // Extra data member to allow for future extensions
1.526 - TAny* iExtensionData;
1.527 - };
1.528 -
1.529 -
1.530 -#endif // __MTMUIBAS_H__