/*
 * mail.idl: Mail interfaces for Evolution
 *
 * Author:
 *   Miguel de Icaza (miguel@ximian.com)
 * 
 * (C) 2000 Ximian, Inc.
 */

#include <Bonobo.idl>

module GNOME {
module Evolution {
	
	interface MessageList : Bonobo::Unknown {
		
		void selectMessage (in long message_number);
		void openMessage   (in long message_number);
	};
	
	/*
	 * FolderBrowser object.
	 *
	 * configuration of this widget is done trough 
	 * Bonobo Properties
	 */
	interface FolderBrowser : Bonobo::Unknown {
		MessageList getMessageList ();
	};

	interface FolderInfo : Bonobo::Unknown {
		struct MessageCount {
			string path;
			long count;
			long unread;
		};

		void getInfo (in string foldername,
			      in Bonobo::Listener listener);
	};

	interface MailConfig : Bonobo::Unknown {

		struct Identity {
			string name;
			string address;
			string organization;
			string signature;
			string html_signature;
			boolean has_html_signature;
		};

		struct Service {
			string url;
			boolean keep_on_server;
			boolean auto_check;
			long auto_check_time;
			boolean save_passwd;
			boolean enabled;
		};

		struct Account {
			string name;

			Identity id;
			Service source;
			Service transport;

			string drafts_folder_name;
			string drafts_folder_uri;
			string sent_folder_name;
			string sent_folder_uri;
		};

		void addAccount (in Account acc);
	};

	interface MailFilter : Bonobo::Unknown {

		void addFilter (in string rule);

		void removeFilter (in string rule);
	};
};
};