/* This file is part of libtdepim. Copyright (c) 2003 Don Sanders Copyright (c) 2005 George Staikos /** * TDEPIM classes for drag and drop of mails * * // Code example for drag and drop enabled widget * * void SomeWidget::contentsDropEvent(TQDropEvent *e) * { * if (e->provides(MailListDrag::format())) { * MailList mailList; * MailListDrag::decode( e, mailList ); * ... **/ namespace KPIM { class KDE_EXPORT MailSummary { public: MailSummary( TQ_UINT32 serialNumber, TQString messageId, TQString subject, TQString from, TQString to, time_t date ); MailSummary() {} ~MailSummary() {} /*** Set fields for this mail summary ***/ void set( TQ_UINT32, TQString, TQString, TQString, TQString, time_t ); /*** KMail unique identification number ***/ TQ_UINT32 serialNumber() const; /*** MD5 checksum of message identification string ***/ TQString messageId(); /*** Subject of the message including prefixes ***/ TQString subject(); /*** Simplified from address ***/ TQString from(); /** Simplified to address ***/ TQString to(); /*** Date the message was sent ***/ time_t date(); private: TQ_UINT32 mSerialNumber; TQString mMessageId, mSubject, mFrom, mTo; time_t mDate; }; // List of mail summaries typedef TQValueList MailList; // Object for the drag object to call-back for message fulltext class KDE_EXPORT MailTextSource { public: MailTextSource() {} virtual ~MailTextSource() {} virtual TQCString text(TQ_UINT32 serialNumber) const = 0; }; // Drag and drop object for mails class KDE_EXPORT MailListDrag : public TQStoredDrag { public: // Takes ownership of "src" and deletes it when done MailListDrag( MailList, TQWidget * parent = 0, MailTextSource *src = 0 ); ~MailListDrag(); const char *format(int i) const; bool provides(const char *mimeType) const; TQByteArray encodedData(const char *) const; /* Reset the list of mail summaries */ void setMailList( MailList ); /* The format for this drag - "x-kmail-drag/message-list" */ static const char* format(); /* Returns TRUE if the information in e can be decoded into a TQString; otherwsie returns FALSE */ static bool canDecode( TQMimeSource* e ); /* Attempts to decode the dropped information; Returns TRUE if successful; otherwise return false */ static bool decode( TQDropEvent* e, MailList& s ); /* Attempts to decode the serialNumbers of the dropped information; Returns TRUE if successful; otherwise return false */ static bool decode( TQDropEvent* e, TQByteArray& a ); /* Attempts to decode the encoded MailList; Returns TRUE if successful; otherwise return false */ static bool decode( TQByteArray& a, MailList& s ); private: MailTextSource *_src; }; } #endif /*maillistdrag_h*/