00001 00021 #ifndef __FL_MAIL_MESSAGE_H__ 00022 #define __FL_MAIL_MESSAGE_H__ 00023 00024 #include <efltk/Fl_String.h> 00025 #include <efltk/Fl_String_List.h> 00026 #include <efltk/Fl_Ptr_List.h> 00027 00028 class Fl_Mail_Message_Part; 00029 00033 class Fl_Mail_Message_Part_List 00034 { 00035 Fl_Ptr_List m_messageParts; 00036 public: 00037 Fl_Mail_Message_Part_List() {} 00038 ~Fl_Mail_Message_Part_List() { clear(); } 00039 00040 void clear(); 00041 unsigned count() const { return m_messageParts.count(); } 00042 00043 void add(Fl_Mail_Message_Part *mpart) { m_messageParts.append(mpart); } 00044 00045 Fl_Mail_Message_Part& operator [] (unsigned i) { return *(Fl_Mail_Message_Part *)m_messageParts[i]; } 00046 const Fl_Mail_Message_Part& operator [] (unsigned i) const { return *(Fl_Mail_Message_Part *)m_messageParts[i]; } 00047 }; 00048 00052 class Fl_Mail_Message_Part 00053 { 00054 Fl_String_List m_messageText; 00055 Fl_Mail_Message_Part_List m_messageParts; 00056 Fl_String m_contentType; 00057 Fl_String m_contentTransferEncoding; 00058 protected: 00059 virtual void parse_headers(unsigned start,unsigned end) {} 00060 virtual void parse_part() {} 00061 public: 00062 Fl_Mail_Message_Part(const Fl_String_List& source,unsigned start,unsigned end); 00063 virtual ~Fl_Mail_Message_Part() {} 00064 }; 00065 00069 class Fl_Mail_Message : Fl_Mail_Message_Part 00070 { 00071 Fl_String m_returnPath; 00072 Fl_String m_from; 00073 Fl_String m_to; 00074 Fl_String m_subject; 00075 Fl_String m_boundary; 00076 Fl_String m_date; 00077 public: 00078 Fl_Mail_Message(const Fl_String_List& source) : Fl_Mail_Message_Part(source,0,source.count()) {} 00079 virtual ~Fl_Mail_Message() {} 00080 virtual void parse_headers(unsigned start,unsigned end); 00081 virtual void parse_part(); 00082 }; 00083 00084 #endif 00085 00086 /***** $Id: Fl_Mail_Message.h,v 1.3 2003/05/09 15:17:51 parshin Exp $ 00087 * Project: eFLTK 00088 *** This source code is released under GNU LGPL License 00089 * Copyright (c) EDE Team, 2000-DWYRT (DWYRT = Date When You Read This) 00090 ***** Equinox Desktop Environment, http://ede.sf.net */