email_plat/nmail_client_api/inc/nmapicommon.h
author hgs
Thu, 30 Sep 2010 11:43:07 +0300
changeset 74 6c59112cfd31
permissions -rw-r--r--
201039

/*
 * Copyright (c) 2009 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:
 *
 */

#ifndef NMAPICOMMON_H_
#define NMAPICOMMON_H_

#include <QMetaType>

namespace EmailClientApi
{
    /*!
       Enum to describe mailbox events
     */
    enum NmApiMailboxEvent
    {
        MailboxCreated, MailboxDeleted
    };

    /*!
        Email to message priority
     */
    enum NmApiMessagePriority
    {
        NmApiMessagePriorityLow,
        NmApiMessagePriorityNormal,
        NmApiMessagePriorityHigh
    };

    /*!
        Enum to message flags
     */
    enum NmApiMessageFlag 
    {
        NmApiMessageFlagRead = 1,
        NmApiMessageFlagReadLocally = 2,
        NmApiMessageFlagLow = 4,
        NmApiMessageFlagImportant = 8,
        NmApiMessageFlagFollowUpComplete = 16,
        NmApiMessageFlagFollowUp = 32,
        NmApiMessageFlagAttachments = 64,
        NmApiMessageFlagMultiple = 128,
        NmApiMessageFlagCalendarMsg = 256,
        NmApiMessageFlagAnswered = 512,
        NmApiMessageFlagForwarded = 1024,
        NmApiMessageFlagOnlyToMe = 2048,
        NmApiMessageFlagRemoteDeleted = 4096,
        NmApiMessageFlagHasMsgSender = 8192
    };
    Q_DECLARE_FLAGS(NmApiMessageFlags, NmApiMessageFlag)
    Q_DECLARE_OPERATORS_FOR_FLAGS(NmApiMessageFlags)

    /*!
       Enum to describe message events.
     */
    enum NmApiMessageEvent 
    {
        MessageCreated,
        MessageDeleted,
        MessageChanged
    };
    
    /*!
       Enum to describe type of email folder 
     */
    enum NmApiEmailFolderType
    {
        Inbox, Drafts, Outbox, Sent, Deleted, EOther
    };

    /*!
        Email list sorting options
     */
    enum NmApiMailSortField
        {
        MailDontCare,            // user accepts any sort order
        MailSortByDate,          // sorting is done by date
        MailSortBySender,        // sorting is done by sender
        MailSortByRecipient,     // sorting is done by recipients
        MailSortBySubject,       // sorting is done by subject
        MailSortByPriority,      // sorting is done by priority
        MailSortByFlagStatus,    // follow up and completed   
        MailSortByUnread,        // sorting is based on unread
        MailSortBySize,          // sorting is done by size
        MailSortByAttachment     // sorting is based on if message has attachments
        };

    /*!
        Email list sort order
     */
    enum NmApiMailSortOrder
        {
        MailDescending,
        MailAscending    
        };


    /*!
        List of message related operations status
     */
    enum NmApiOperationStatus 
    {
        NotStarted,
        Pending,
        Succeeded,
        Failed,
        Canceled
    };
    
    /*!
        List of message related operations
     */
    enum NmApiOperationType
    {
        CreateDraftMessage,
        CreateForwardMessage,
        CreateReplyMessage,
        MoveMessages,
        SaveMessage,
        DeleteMessages,
        FetchMessage,
        SendMessage,
        CreateAttachment,
        RemoveAttachment,
        FetchAttachment
    };    
    
    
    /*!
        Sort criteria definion Class for searching email messages
     */
    class NmApiMailSortCriteria 
        {
        public:
            NmApiMailSortField iField;
            NmApiMailSortOrder iOrder;
        };
    
    /*!
        NmApi error codes
    */
    const int NmApiNoError = 0;
    const int NmApiNotFoundError = -1;
    const int NmApiGeneralError = -2;
    const int NmApiCancelError = -3;
    
    /*!
        NmApi predefined constants for ContentTypes
    */
    const QString NmApiContentTypeMultipartMixed = "multipart/mixed";
    const QString NmApiContentTypeMultipartAlternative = "multipart/alternative";
    const QString NmApiContentTypeMultipartDigest = "multipart/digest";
    const QString NmApiContentTypeMultipartParallel = "multipart/parallel";
    const QString NmApiContentTypeMultipartRelated =  "multipart/related";
    const QString NmApiContentTypeTextPlain = "text/plain";
    const QString NmApiContentTypeTextHtml = "text/html";
    const QString NmApiContentTypeTypeMessage = "message/rfc822";
    const QString NmApiContentTypeParamName = " name=";
    const QString NmApiContentTypeParamCharset = " charset=";
}
Q_DECLARE_METATYPE (EmailClientApi::NmApiMailboxEvent)
Q_DECLARE_METATYPE(EmailClientApi::NmApiMessageEvent)
Q_DECLARE_METATYPE (EmailClientApi::NmApiEmailFolderType)

#endif /* NMAPICOMMON_H_ */