mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Add a new command to the message compose service that let you create a message from a nsIMsgCompFields
This commit is contained in:
parent
d6897f8e82
commit
1482cc8993
@ -119,7 +119,7 @@ nsMsgCompose::SetQuotingToFollow(PRBool aVal)
|
||||
|
||||
|
||||
nsresult nsMsgCompose::Initialize(nsIDOMWindow *aWindow, const PRUnichar *originalMsgURI,
|
||||
MSG_ComposeType type, MSG_ComposeFormat format, nsISupports *object)
|
||||
MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields *compFields, nsISupports *object)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
@ -153,7 +153,7 @@ nsresult nsMsgCompose::Initialize(nsIDOMWindow *aWindow, const PRUnichar *origin
|
||||
|
||||
}
|
||||
|
||||
CreateMessage(originalMsgURI, type, format, object); //object is temporary
|
||||
CreateMessage(originalMsgURI, type, format, compFields, object); //object is temporary
|
||||
|
||||
return rv;
|
||||
}
|
||||
@ -556,12 +556,20 @@ nsresult nsMsgCompose::GetWrapLength(PRInt32 *aWrapLength)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult nsMsgCompose::CreateMessage(const PRUnichar * originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsISupports * object)
|
||||
nsresult nsMsgCompose::CreateMessage(const PRUnichar * originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format,
|
||||
nsIMsgCompFields * compFields, nsISupports * object)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
/* At this point, we have a list of URI of original message to reply to or forward but as the BE isn't ready yet,
|
||||
|
||||
if (compFields)
|
||||
{
|
||||
if (m_compFields)
|
||||
m_compFields->Copy(compFields);
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* At this point, we have a list of URI of original message to reply to or forward but as the BE isn't ready yet,
|
||||
we still need to use the old patch... gather the information from the object and the temp file use to display the selected message*/
|
||||
|
||||
if (object)
|
||||
{
|
||||
nsCOMPtr<nsIMessage> message;
|
||||
|
@ -40,8 +40,8 @@ class nsMsgCompose : public nsIMsgCompose
|
||||
|
||||
/*** nsIMsgCompose pure virtual functions */
|
||||
|
||||
/* void Initialize (in nsIDOMWindow aWindow, in wstring originalMsgURI, in long type, in long format); */
|
||||
NS_IMETHOD Initialize(nsIDOMWindow *aWindow, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsISupports *object);
|
||||
/* void Initialize (in nsIDOMWindow aWindow, in wstring originalMsgURI, in MSG_ComposeType type, in MSG_ComposeFormat format, in nsIMsgCompFields compFields, in nsISupports object); */
|
||||
NS_IMETHOD Initialize(nsIDOMWindow *aWindow, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields *compFields, nsISupports *object);
|
||||
|
||||
/* void LoadFields (); */
|
||||
NS_IMETHOD LoadFields();
|
||||
@ -89,7 +89,7 @@ class nsMsgCompose : public nsIMsgCompose
|
||||
private:
|
||||
|
||||
nsresult _SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const PRUnichar *callback);
|
||||
nsresult CreateMessage(const PRUnichar * originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsISupports* object);
|
||||
nsresult CreateMessage(const PRUnichar * originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields* compFields, nsISupports* object);
|
||||
void HackToGetBody(PRInt32 what); //Temporary
|
||||
void CleanUpRecipients(nsString& recipients);
|
||||
|
||||
|
@ -141,7 +141,38 @@ nsresult nsMsgComposeService::OpenComposeWindowWithValues(const PRUnichar *msgCo
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsresult nsMsgComposeService::InitCompose(nsIDOMWindow *aWindow, const PRUnichar *originalMsgURI, PRInt32 type, PRInt32 format, nsIMsgCompose **_retval)
|
||||
nsresult nsMsgComposeService::OpenComposeWindowWithCompFields(const PRUnichar *msgComposeWindowURL,
|
||||
MSG_ComposeFormat format,
|
||||
nsIMsgCompFields *compFields)
|
||||
{
|
||||
nsAutoString args = "";
|
||||
nsresult rv;
|
||||
|
||||
NS_WITH_SERVICE(nsIDOMToolkitCore, toolkitCore, kToolkitCoreCID, &rv);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
args.Append("format=");
|
||||
args.Append(format);
|
||||
|
||||
if (compFields)
|
||||
{
|
||||
NS_ADDREF(compFields);
|
||||
args.Append(",fieldsAddr="); args.Append((PRInt32)compFields, 10);
|
||||
}
|
||||
|
||||
if (msgComposeWindowURL && *msgComposeWindowURL)
|
||||
toolkitCore->ShowWindowWithArgs(msgComposeWindowURL, nsnull, args);
|
||||
else
|
||||
toolkitCore->ShowWindowWithArgs("chrome://messengercompose/content/", nsnull, args);
|
||||
|
||||
if (NS_FAILED(rv))
|
||||
NS_IF_RELEASE(compFields);
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsresult nsMsgComposeService::InitCompose(nsIDOMWindow *aWindow, const PRUnichar *originalMsgURI, PRInt32 type, PRInt32 format, PRInt32 compFieldsAddr, nsIMsgCompose **_retval)
|
||||
{
|
||||
nsresult rv;
|
||||
nsIMsgCompose * msgCompose = nsnull;
|
||||
@ -164,8 +195,12 @@ nsresult nsMsgComposeService::InitCompose(nsIDOMWindow *aWindow, const PRUnichar
|
||||
break;
|
||||
}
|
||||
/*--- temporary hack ---*/
|
||||
|
||||
msgCompose->Initialize(aWindow, originalMsgURI, type, format, object);
|
||||
|
||||
// ducarroz: I am not quiet sure than dynamic_cast is supported on all platforms/compilers!
|
||||
// nsIMsgCompFields* compFields = dynamic_cast<nsIMsgCompFields *>((nsIMsgCompFields *)compFieldsAddr);
|
||||
nsIMsgCompFields* compFields = (nsIMsgCompFields *)compFieldsAddr;
|
||||
msgCompose->Initialize(aWindow, originalMsgURI, type, format, compFields, object);
|
||||
NS_IF_RELEASE(compFields);
|
||||
m_msgQueue->AppendElement(msgCompose);
|
||||
*_retval = msgCompose;
|
||||
|
||||
|
@ -36,8 +36,11 @@ public:
|
||||
NS_IMETHOD OpenComposeWindowWithValues(const PRUnichar *msgComposeWindowURL, MSG_ComposeFormat format, const PRUnichar *to, const PRUnichar *cc, const PRUnichar *bcc, const PRUnichar *newsgroups,
|
||||
const PRUnichar *subject, const PRUnichar *body);
|
||||
|
||||
/* nsIMsgCompose InitCompose (in nsIDOMWindow aWindow, in wstring originalMsgURI, in MSG_ComposeType type, in MSG_ComposeFormat format); */
|
||||
NS_IMETHOD InitCompose(nsIDOMWindow *aWindow, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompose **_retval);
|
||||
/* void OpenComposeWindowWithCompFields (in wstring msgComposeWindowURL, in MSG_ComposeFormat format, in nsIMsgCompFields compFields); */
|
||||
NS_IMETHOD OpenComposeWindowWithCompFields(const PRUnichar *msgComposeWindowURL, MSG_ComposeFormat format, nsIMsgCompFields *compFields);
|
||||
|
||||
/* nsIMsgCompose InitCompose (in nsIDOMWindow aWindow, in wstring originalMsgURI, in long type, in long format, in long compFieldsAddr); */
|
||||
NS_IMETHOD InitCompose(nsIDOMWindow *aWindow, const PRUnichar *originalMsgURI, PRInt32 type, PRInt32 format, PRInt32 compFieldsAddr, nsIMsgCompose **_retval);
|
||||
|
||||
/* void DisposeCompose (in nsIMsgCompose compose, in boolean closeWindow); */
|
||||
NS_IMETHOD DisposeCompose(nsIMsgCompose *compose, PRBool closeWindow);
|
||||
@ -49,5 +52,3 @@ private:
|
||||
nsString hack_uri[16];
|
||||
nsISupports* hack_object[16];
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user