emailuis/nmailui/inc/nmactionrequest.h
changeset 18 578830873419
child 23 2dc6caa42ec3
equal deleted inserted replaced
4:e7aa27f58ae1 18:578830873419
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #ifndef NMACTIONREQUEST_H_
       
    19 #define NMACTIONREQUEST_H_
       
    20 
       
    21 #include "nmcommon.h"
       
    22 
       
    23 /*!
       
    24     \enum NmActionContextMenuType
       
    25     \brief This value indicates action type that is requested using
       
    26     \action request class NmActionRequest and responded with NmActionResponse
       
    27 */
       
    28 enum NmActionContextMenuType
       
    29 {
       
    30     NmActionOptionsMenu=0,
       
    31     NmActionContextMenu,
       
    32     NmActionToolbar,
       
    33     NmActionVKB
       
    34 };
       
    35 
       
    36 /*!
       
    37     \enum NmActionContextView
       
    38     \brief This value defines context menu selection type
       
    39 */
       
    40 enum NmActionContextView
       
    41 {
       
    42 	NmActionContextViewNone=0,
       
    43 	NmActionContextViewMailboxList,
       
    44 	NmActionContextViewMessageList,
       
    45 	NmActionContextViewViewer,
       
    46 	NmActionContextViewEditor
       
    47     // Add more view id's when
       
    48     // funtionality is added
       
    49 };
       
    50 
       
    51 /*!
       
    52     \enum NmActionContextDataType
       
    53     \brief This value defines data of context item
       
    54 */
       
    55 enum NmActionContextDataType
       
    56 {
       
    57 	NmActionContextDataNone=0,
       
    58 	NmActionContextDataMailbox,
       
    59 	NmActionContextDataFolder,
       
    60 	NmActionContextDataMessage,
       
    61     //Add more context menu types
       
    62     //when functionality is added
       
    63 };
       
    64 
       
    65 
       
    66 
       
    67 class NmActionObserver;
       
    68 
       
    69 /*!
       
    70     \class NmActionRequest
       
    71     \brief NmUi calls extension manager to invoke menu. Context
       
    72     \information should be encapsulated using this class.
       
    73     \QVariant requestData can be used to relay NmActionContextDataType based
       
    74     \info such as message envelope, etc
       
    75 */
       
    76 class NmActionRequest
       
    77 {
       
    78 public:
       
    79     inline NmActionRequest(NmActionObserver* observer,
       
    80 		NmActionContextMenuType menuType=NmActionOptionsMenu,
       
    81 		NmActionContextView contextView=NmActionContextViewNone,
       
    82 		NmActionContextDataType contextDataType=NmActionContextDataNone,
       
    83     	NmId mailboxId=0,
       
    84    	    NmId folderId=0,
       
    85     	NmId messageId=0,
       
    86     	QVariant requestData=0
       
    87     	)
       
    88     : mObserver(observer),
       
    89     mMenuType(menuType),
       
    90     mContextView(contextView),
       
    91     mContextDataType(contextDataType),
       
    92     mMailboxId(mailboxId),
       
    93     mFolderId(folderId),
       
    94     mMessageId(messageId),
       
    95     mRequestData(requestData){};
       
    96 
       
    97     inline NmActionObserver* observer() const {return mObserver;}
       
    98     inline NmActionContextMenuType menuType() const {return mMenuType;}
       
    99     inline NmActionContextView contextView() const {return mContextView;}
       
   100     inline NmActionContextDataType contextDataType() const {return mContextDataType;}
       
   101     inline NmId mailboxId() const {return mMailboxId;}
       
   102     inline NmId folderId() const {return mFolderId;}
       
   103     inline NmId messageId() const {return mMessageId;}
       
   104     inline QVariant requestData() const {return mRequestData;}
       
   105 
       
   106 private:
       
   107     NmActionObserver *mObserver;
       
   108     NmActionContextMenuType mMenuType;
       
   109     NmActionContextView mContextView;
       
   110     NmActionContextDataType mContextDataType;
       
   111     NmId mMailboxId;
       
   112     NmId mFolderId;
       
   113     NmId mMessageId;
       
   114     QVariant mRequestData;
       
   115 };
       
   116 
       
   117 #endif /* NMACTIONREQUEST_H_ */