// Copyright 2010 Simon Edwards <simon@simonzone.com>

//                 Generated by twine2

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as
// published by the Free Software Foundation; either version 2, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details

// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

namespace Akonadi
{
class MessageStatus
{
%TypeHeaderCode
#include <akonadi/kmime/messagestatus.h>
%End

public:
                            MessageStatus ();
    bool                    operator == (const Akonadi::MessageStatus& other) const;
    bool                    operator != (const Akonadi::MessageStatus& other) const;
    bool                    operator & (const Akonadi::MessageStatus& other) const;
    void                    clear ();
    void                    set (const Akonadi::MessageStatus& other);
    void                    toggle (const Akonadi::MessageStatus& other);
    bool                    isOfUnknownStatus () const;
    bool                    isRead () const;
    bool                    isDeleted () const;
    bool                    isReplied () const;
    bool                    isForwarded () const;
    bool                    isQueued () const;
    bool                    isSent () const;
    bool                    isImportant () const;
    bool                    isWatched () const;
    bool                    isIgnored () const;
    bool                    isToAct () const;
    bool                    isSpam () const;
    bool                    isHam () const;
    bool                    hasAttachment () const;
    bool                    hasInvitation () const;
    bool                    isSigned () const;
    bool                    isEncrypted () const;
    bool                    hasError () const;
    void                    setRead (bool read = 1);
    void                    setDeleted (bool deleted = 1);
    void                    setReplied (bool replied = 1);
    void                    setForwarded (bool forwarded = 1);
    void                    setQueued (bool queued = 1);
    void                    setSent (bool sent = 1);
    void                    setImportant (bool important = 1);
    void                    setWatched (bool watched = 1);
    void                    setIgnored (bool ignored = 1);
    void                    setToAct (bool toAct = 1);
    void                    setSpam (bool spam = 1);
    void                    setHam (bool ham = 1);
    void                    setHasAttachment (bool hasAttachment = 1);
    void                    setHasInvitation (bool hasInvitation = 1);
    void                    setSigned (bool value = 1);
    void                    setEncrypted (bool value = 1);
    void                    setHasError (bool value = 1);
    qint32                  toQInt32 () const;
    void                    fromQInt32 (qint32 status);
    QString                 statusStr () const;
    void                    setStatusFromStr (const QString& aStr);
    QSet<QByteArray>        statusFlags () const;
    void                    setStatusFromFlags (const QSet<QByteArray>& flags);
    static const Akonadi::MessageStatus  statusUnread ();
    static const Akonadi::MessageStatus  statusRead ();
    static const Akonadi::MessageStatus  statusDeleted ();
    static const Akonadi::MessageStatus  statusReplied ();
    static const Akonadi::MessageStatus  statusForwarded ();
    static const Akonadi::MessageStatus  statusQueued ();
    static const Akonadi::MessageStatus  statusSent ();
    static const Akonadi::MessageStatus  statusImportant ();
    static const Akonadi::MessageStatus  statusWatched ();
    static const Akonadi::MessageStatus  statusIgnored ();
    static const Akonadi::MessageStatus  statusToAct ();
    static const Akonadi::MessageStatus  statusSpam ();
    static const Akonadi::MessageStatus  statusHam ();
    static const Akonadi::MessageStatus  statusHasAttachment ();
    static const Akonadi::MessageStatus  statusHasInvitation ();
    static const Akonadi::MessageStatus  statusSigned ();
    static const Akonadi::MessageStatus  statusEncrypted ();
    static const Akonadi::MessageStatus  statusHasError ();
};
};
