summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/compose/public/nsIMsgComposeParams.idl
blob: bafe7ef4e0a1bb7dfcfe8980acf41d934c3bce09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#include "nsISupports.idl"
#include "nsIMsgIdentity.idl"
#include "nsIMsgCompFields.idl"
#include "nsIMsgSendListener.idl"

interface nsIMsgDBHdr;
typedef long MSG_ComposeType;

[scriptable, uuid(c7035852-7531-11d3-9a73-006008948010)]
interface nsIMsgCompType : nsISupports {
    const long New                      = 0;
    const long Reply                    = 1;
    const long ReplyAll                 = 2;
    const long ForwardAsAttachment      = 3;
    const long ForwardInline            = 4;
    const long NewsPost                 = 5;
    const long ReplyToSender            = 6;
    const long ReplyToGroup             = 7;
    const long ReplyToSenderAndGroup    = 8;
    const long Draft                    = 9;
    const long Template                 = 10;  // New message from template.
    const long MailToUrl                = 11;
    const long ReplyWithTemplate        = 12;
    const long ReplyToList              = 13;

    /**
     * Will resend the original message keeping the Subject and the body the
     * same, and will set the Reply-To: header to the sender of the original
     * message.  This gets the redirector "out of the loop" because replies
     * to the message will go to the original sender.  This is not the same
     * as the Resent mechanism described in section 3.6.6 of RFC 2822, and
     * so therefore does not use Resent-* headers.
     */
    const long Redirect                 = 14;

    /**
     * Used to compose a new message from an existing message. Links
     * are sanitized since the message could be from external sources.
     */
    const long EditAsNew                = 15;

    /**
     * Used to edit an existing template.
     */
    const long EditTemplate             = 16;
};


typedef long MSG_ComposeFormat;

[scriptable, uuid(a28325e8-7531-11d3-8f1c-006008948010)]
interface nsIMsgCompFormat : nsISupports{
    const long Default                  = 0;
    const long HTML                     = 1;
    const long PlainText                = 2;
    const long OppositeOfDefault        = 3;
};


[scriptable, uuid(930895f2-d610-43f4-9e3c-25e1d1fe4143)]
interface nsIMsgComposeParams : nsISupports {
  attribute MSG_ComposeType       type;
  attribute MSG_ComposeFormat     format;
  attribute AUTF8String           originalMsgURI;
  attribute nsIMsgIdentity        identity;

  attribute nsIMsgCompFields      composeFields;
  attribute boolean               bodyIsLink;

  attribute nsIMsgSendListener    sendListener;
  attribute AString               smtpPassword;
  attribute nsIMsgDBHdr           origMsgHdr;
  attribute boolean               autodetectCharset;

  /**
   * HTML-formatted content to quote in the body of the message.
   * Set this to get different content than what would normally
   * appear in the body, e.g. the original message body in a reply.
   */
  attribute AUTF8String           htmlToQuote;
};