aboutsummaryrefslogblamecommitdiffstats
path: root/composer/Evolution-Composer.idl
blob: 1e3701a59478d02d5bb3cbac1b0cf903a6505d18 (plain) (tree)





























































































                                                                             
/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
 * Evolution-Composer.idl: Mail composer interfaces for Evolution
 *
 * Author:
 *   Dan Winship <danw@helixcode.com>
 * 
 * (C) 2000 Helix Code, Inc.
 */

#include <Bonobo.idl>

module Evolution {
    
    interface Composer : Bonobo::Unknown {
        struct Recipient {
            string name;    /* UTF-8 */
            string address;
        };
        typedef sequence<Recipient> RecipientList;

        /**
         * set_headers:
         * @to: the "To" recipients
         * @cc: the "CC" recipients
         * @bcc: the "Bcc" recipients
         * @subject: the subject of the message
         *
         * Sets the composer headers. Any of @to, @cc, and
         * @bcc may be an empty list, and @subject may be an
         * empty string.
         **/
        void set_headers (in RecipientList to, in RecipientList cc,
                  in RecipientList bcc, in string subject);

        /**
         * set_body_text:
         * @body: the body
         *
         * Sets the text in the body of the composer to
         * the given UTF-8 plain text.
         **/
        void set_body_text (in string body);

        /**
         * attach_MIME:
         * @data: the attachment data
         *
         * This adds an attachment to the composer. @data
         * should be a fully-formed MIME body part.
         **/
        exception CouldNotParse {};
        void attach_MIME (in string data)
            raises (CouldNotParse);

        /**
         * attach_data:
         * @content_type: the Content-Type header
         * @filename: the suggested filename, or ""
         * @description: a description of the data, or ""
         * @show_inline: whether the attachment should be
         * displayed inline or not.
         * @data: the raw attachment data
         *
         * This adds @data as an attachment, using the provided
         * information to generate MIME headers. @content_type
         * may contain just a MIME content type, or it may
         * contain a complete Content-Type header. @filename
         * is a filename for the Content-Disposition header
         * @description (if not "") provides the
         * Content-Description, and @show_inline determines if the
         * Content-Disposition is "inline" or "attachment".
         *
         * If you need to specify headers or values other than
         * what this function can do, you will need to generate
         * all of the MIME headers yourself and use
         * add_attachment ().
         **/
        void attach_data (in string content_type,
                  in string filename,
                  in string description,
                  in boolean show_inline,
                  in string data);


        /**
         * show:
         *
         * Shows the composer and lets the user edit things
         * and send the message.
         **/
        void show ();
    };
};