зеркало из https://github.com/mozilla/pjs.git
More standalone mail work.
This commit is contained in:
Родитель
fb569dfb75
Коммит
71e5bbcf3f
|
@ -24,7 +24,6 @@
|
|||
<RDF:li resource="chrome://communicator/content/pref/pref-scripts.xul"/>
|
||||
<RDF:li resource="chrome://cookie/content/pref-cookies.xul"/>
|
||||
<RDF:li resource="chrome://cookie/content/pref-images.xul"/>
|
||||
<RDF:li resource="chrome://mail/content/messengercompose/messengercompose.xul"/>
|
||||
<RDF:li resource="chrome://mail/content/addressbook/addressbook.xul"/>
|
||||
<RDF:li resource="chrome://mail/content/addressbook/abSelectAddressesDialog.xul"/>
|
||||
</RDF:Seq>
|
||||
|
@ -55,11 +54,6 @@
|
|||
<RDF:li>chrome://mail/content/mailPrefsOverlay.xul</RDF:li>
|
||||
</RDF:Seq>
|
||||
|
||||
<!-- messenger items for Mail Compose -->
|
||||
<RDF:Seq about="chrome://mail/content/messengercompose/messengercompose.xul">
|
||||
<RDF:li>chrome://mail/content/mailMessengerComposeOverlay.xul</RDF:li>
|
||||
</RDF:Seq>
|
||||
|
||||
<!-- messenger items for Addressbook -->
|
||||
<RDF:Seq about="chrome://mail/content/addressbook/addressbook.xul">
|
||||
<RDF:li>chrome://mail/content/mailABOverlay.xul</RDF:li>
|
||||
|
|
|
@ -1082,9 +1082,9 @@ Rights Reserved.
|
|||
</menupopup>
|
||||
</menu>
|
||||
|
||||
<menu id="menu_View">
|
||||
<menu label="&viewMenu.label;" accesskey="&viewMenu.accesskey;">
|
||||
<menupopup id="menu_View_Popup" onpopupshowing="view_init()">
|
||||
<menu id="menu_Toolbars">
|
||||
<menu label="&viewToolbars.label;" accesskey="&viewToolbars.accesskey;">
|
||||
<menupopup id="view_toolbars_popup">
|
||||
<menuitem id="menu_showMessengerToolbar"
|
||||
type="checkbox"
|
||||
|
@ -1098,15 +1098,15 @@ Rights Reserved.
|
|||
accesskey="&showSearchToolbarCmd.accesskey;"
|
||||
oncommand="goToggleToolbar('searchBox', 'menu_showSearchToolbar'); SearchBarToggled();"
|
||||
checked="true"/>
|
||||
<menuitem type="checkbox" id="menu_showTaskbar"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="menu_showMessage"
|
||||
type="checkbox"
|
||||
label="&showMessageCmd.label;"
|
||||
accesskey="&showMessageCmd.accesskey;"
|
||||
oncommand="MsgToggleMessagePane();"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuitem type="checkbox" id="menu_showTaskbar"/>
|
||||
<menuitem id="menu_showMessage"
|
||||
type="checkbox"
|
||||
label="&showMessageCmd.label;"
|
||||
accesskey="&showMessageCmd.accesskey;"
|
||||
oncommand="MsgToggleMessagePane();"/>
|
||||
|
||||
<menuseparator/>
|
||||
<menu id="viewSortMenu" accesskey="&sortMenu.accesskey;" label="&sortMenu.label;">
|
||||
<menupopup onpopupshowing="InitViewSortByMenu()">
|
||||
|
|
|
@ -558,4 +558,8 @@ Rights Reserved.
|
|||
<!ENTITY releaseCmd.label "Release Notes">
|
||||
<!ENTITY releaseCmd.accesskey "R">
|
||||
<!ENTITY aboutCmd.label "About">
|
||||
<!ENTITY aboutCmd.accesskey "A">
|
||||
<!ENTITY aboutCmd.accesskey "A">
|
||||
<!ENTITY viewMenu.label "View">
|
||||
<!ENTITY viewMenu.accesskey "V">
|
||||
<!ENTITY viewToolbars.label "Toolbars">
|
||||
<!ENTITY viewToolbars.accesskey "T">
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,3 +1,39 @@
|
|||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: NPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.1 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the NPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the NPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
top.MAX_RECIPIENTS = 0;
|
||||
|
||||
var inputElementType = "";
|
||||
|
@ -8,7 +44,7 @@ var gNumberOfCols = 0;
|
|||
|
||||
var gDragService = Components.classes["@mozilla.org/widget/dragservice;1"].getService();
|
||||
gDragService = gDragService.QueryInterface(Components.interfaces.nsIDragService);
|
||||
gMimeHeaderParser = null;
|
||||
var gMimeHeaderParser = null;
|
||||
|
||||
/**
|
||||
* global variable inherited from MsgComposeCommands.js
|
||||
|
@ -79,29 +115,72 @@ function Recipients2CompFields(msgCompFields)
|
|||
{
|
||||
if (msgCompFields)
|
||||
{
|
||||
var i = 1;
|
||||
var addrTo = "";
|
||||
var addrCc = "";
|
||||
var addrBcc = "";
|
||||
var addrReply = "";
|
||||
var addrNg = "";
|
||||
var addrFollow = "";
|
||||
var addrOther = "";
|
||||
var to_Sep = "";
|
||||
var cc_Sep = "";
|
||||
var bcc_Sep = "";
|
||||
var reply_Sep = "";
|
||||
var ng_Sep = "";
|
||||
var follow_Sep = "";
|
||||
|
||||
gMimeHeaderParser = Components.classes["@mozilla.org/messenger/headerparser;1"].getService(Components.interfaces.nsIMsgHeaderParser);
|
||||
|
||||
var recipientType;
|
||||
var inputField;
|
||||
var fieldValue;
|
||||
var recipient;
|
||||
while ((inputField = awGetInputElement(i)))
|
||||
{
|
||||
fieldValue = inputField.value;
|
||||
|
||||
var toValue = document.getElementById("toField").value;
|
||||
try {
|
||||
msgCompFields.to = gMimeHeaderParser.reformatUnquotedAddresses(toValue);
|
||||
} catch (ex) {
|
||||
msgCompFields.to = toValue;
|
||||
if (fieldValue == null)
|
||||
fieldValue = inputField.getAttribute("value");
|
||||
|
||||
if (fieldValue != "")
|
||||
{
|
||||
recipientType = awGetPopupElement(i).selectedItem.getAttribute("value");
|
||||
recipient = null;
|
||||
|
||||
switch (recipientType)
|
||||
{
|
||||
case "addr_to" :
|
||||
case "addr_cc" :
|
||||
case "addr_bcc" :
|
||||
case "addr_reply" :
|
||||
try {
|
||||
recipient = gMimeHeaderParser.reformatUnquotedAddresses(fieldValue);
|
||||
} catch (ex) {recipient = fieldValue;}
|
||||
break;
|
||||
}
|
||||
|
||||
switch (recipientType)
|
||||
{
|
||||
case "addr_to" : addrTo += to_Sep + recipient; to_Sep = ","; break;
|
||||
case "addr_cc" : addrCc += cc_Sep + recipient; cc_Sep = ","; break;
|
||||
case "addr_bcc" : addrBcc += bcc_Sep + recipient; bcc_Sep = ","; break;
|
||||
case "addr_reply" : addrReply += reply_Sep + recipient; reply_Sep = ","; break;
|
||||
case "addr_newsgroups" : addrNg += ng_Sep + fieldValue; ng_Sep = ","; break;
|
||||
case "addr_followup" : addrFollow += follow_Sep + fieldValue; follow_Sep = ","; break;
|
||||
case "addr_other" : addrOther += awGetPopupElement(i).selectedItem.getAttribute("label") + " " + fieldValue + "\n";break;
|
||||
}
|
||||
}
|
||||
i ++;
|
||||
}
|
||||
|
||||
var ccValue = document.getElementById("ccField").value;
|
||||
try {
|
||||
msgCompFields.cc = gMimeHeaderParser.reformatUnquotedAddresses(ccValue);
|
||||
} catch (ex) {
|
||||
msgCompFields.cc = ccValue;
|
||||
}
|
||||
|
||||
var bccValue = document.getElementById("bccField").value;
|
||||
try {
|
||||
msgCompFields.bcc = gMimeHeaderParser.reformatUnquotedAddresses(bccValue);
|
||||
} catch (ex) {
|
||||
msgCompFields.bcc = bccValue;
|
||||
}
|
||||
msgCompFields.to = addrTo;
|
||||
msgCompFields.cc = addrCc;
|
||||
msgCompFields.bcc = addrBcc;
|
||||
msgCompFields.replyTo = addrReply;
|
||||
msgCompFields.newsgroups = addrNg;
|
||||
msgCompFields.followupTo = addrFollow;
|
||||
msgCompFields.otherRandomHeaders = addrOther;
|
||||
|
||||
gMimeHeaderParser = null;
|
||||
}
|
||||
|
@ -113,22 +192,212 @@ function CompFields2Recipients(msgCompFields, msgType)
|
|||
{
|
||||
if (msgCompFields) {
|
||||
gMimeHeaderParser = Components.classes["@mozilla.org/messenger/headerparser;1"].getService(Components.interfaces.nsIMsgHeaderParser);
|
||||
|
||||
|
||||
var listbox = document.getElementById('addressingWidget');
|
||||
var newListBoxNode = listbox.cloneNode(false);
|
||||
var listBoxColsClone = listbox.firstChild.cloneNode(true);
|
||||
newListBoxNode.appendChild(listBoxColsClone);
|
||||
var templateNode = listbox.getElementsByTagName("listitem")[0];
|
||||
|
||||
top.MAX_RECIPIENTS = 0;
|
||||
var msgReplyTo = msgCompFields.replyTo;
|
||||
var msgTo = msgCompFields.to;
|
||||
var msgCC = msgCompFields.cc;
|
||||
var msgBCC = msgCompFields.bcc;
|
||||
var msgRandomHeaders = msgCompFields.otherRandomHeaders;
|
||||
var msgNewsgroups = msgCompFields.newsgroups;
|
||||
var msgFollowupTo = msgCompFields.followupTo;
|
||||
if(msgReplyTo)
|
||||
awSetInputAndPopupFromArray(msgCompFields.SplitRecipients(msgReplyTo, false),
|
||||
"addr_reply", newListBoxNode, templateNode);
|
||||
if(msgTo)
|
||||
document.getElementById("toField").value = msgTo;
|
||||
awSetInputAndPopupFromArray(msgCompFields.SplitRecipients(msgTo, false),
|
||||
"addr_to", newListBoxNode, templateNode);
|
||||
if(msgCC)
|
||||
document.getElementById("ccField").value = msgCC;
|
||||
awSetInputAndPopupFromArray(msgCompFields.SplitRecipients(msgCC, false),
|
||||
"addr_cc", newListBoxNode, templateNode);
|
||||
if(msgBCC)
|
||||
document.getElementById("bccField").value = msgBCC;
|
||||
awSetInputAndPopupFromArray(msgCompFields.SplitRecipients(msgBCC, false),
|
||||
"addr_bcc", newListBoxNode, templateNode);
|
||||
if(msgRandomHeaders)
|
||||
awSetInputAndPopup(msgRandomHeaders, "addr_other", newListBoxNode, templateNode);
|
||||
if(msgNewsgroups)
|
||||
awSetInputAndPopup(msgNewsgroups, "addr_newsgroups", newListBoxNode, templateNode);
|
||||
if(msgFollowupTo)
|
||||
awSetInputAndPopup(msgFollowupTo, "addr_followup", newListBoxNode, templateNode);
|
||||
|
||||
//If it's a new message, we need to add an extrat empty recipient.
|
||||
if (!msgTo && !msgNewsgroups)
|
||||
_awSetInputAndPopup("", "addr_to", newListBoxNode, templateNode);
|
||||
// dump("replacing child in comp fields 2 recips \n");
|
||||
var parent = listbox.parentNode;
|
||||
parent.replaceChild(newListBoxNode, listbox);
|
||||
awFitDummyRows(2);
|
||||
setTimeout("awFinishCopyNodes();", 0);
|
||||
|
||||
gMimeHeaderParser = null; //Release the mime parser
|
||||
}
|
||||
}
|
||||
|
||||
function awSetInputAndPopupValue(inputElem, inputValue, popupElem, popupValue, rowNumber)
|
||||
{
|
||||
// remove leading spaces
|
||||
while (inputValue && inputValue[0] == " " )
|
||||
inputValue = inputValue.substring(1, inputValue.length);
|
||||
|
||||
inputElem.setAttribute("value", inputValue);
|
||||
inputElem.value = inputValue;
|
||||
|
||||
popupElem.selectedItem = popupElem.childNodes[0].childNodes[awGetSelectItemIndex(popupValue)];
|
||||
|
||||
if (rowNumber >= 0)
|
||||
{
|
||||
inputElem.setAttribute("id", "addressCol2#" + rowNumber);
|
||||
popupElem.setAttribute("id", "addressCol1#" + rowNumber);
|
||||
}
|
||||
|
||||
_awSetAutoComplete(popupElem, inputElem);
|
||||
}
|
||||
|
||||
function _awSetInputAndPopup(inputValue, popupValue, parentNode, templateNode)
|
||||
{
|
||||
top.MAX_RECIPIENTS++;
|
||||
|
||||
var newNode = templateNode.cloneNode(true);
|
||||
parentNode.appendChild(newNode); // we need to insert the new node before we set the value of the select element!
|
||||
|
||||
var input = newNode.getElementsByTagName(awInputElementName());
|
||||
var select = newNode.getElementsByTagName(awSelectElementName());
|
||||
|
||||
if (input && input.length == 1 && select && select.length == 1)
|
||||
awSetInputAndPopupValue(input[0], inputValue, select[0], popupValue, top.MAX_RECIPIENTS)
|
||||
}
|
||||
|
||||
function awSetInputAndPopup(inputValue, popupValue, parentNode, templateNode)
|
||||
{
|
||||
if ( inputValue && popupValue )
|
||||
{
|
||||
var addressArray = inputValue.split(",");
|
||||
|
||||
for ( var index = 0; index < addressArray.length; index++ )
|
||||
_awSetInputAndPopup(addressArray[index], popupValue, parentNode, templateNode);
|
||||
}
|
||||
}
|
||||
|
||||
function awSetInputAndPopupFromArray(inputArray, popupValue, parentNode, templateNode)
|
||||
{
|
||||
if ( inputArray && popupValue )
|
||||
{
|
||||
var recipient;
|
||||
for ( var index = 0; index < inputArray.count; index++ )
|
||||
{
|
||||
recipient = null;
|
||||
if (gMimeHeaderParser)
|
||||
try {
|
||||
recipient = gMimeHeaderParser.unquotePhraseOrAddrWString(inputArray.StringAt(index), true);
|
||||
} catch (ex) {};
|
||||
if (!recipient)
|
||||
recipient = inputArray.StringAt(index)
|
||||
_awSetInputAndPopup(recipient, popupValue, parentNode, templateNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function awRemoveRecipients(msgCompFields, recipientType, recipientsList)
|
||||
{
|
||||
if (!msgCompFields)
|
||||
return;
|
||||
|
||||
var recipientArray = msgCompFields.SplitRecipients(recipientsList, false);
|
||||
if (! recipientArray)
|
||||
return;
|
||||
|
||||
for ( var index = 0; index < recipientArray.count; index++ )
|
||||
for (var row = 1; row <= top.MAX_RECIPIENTS; row ++)
|
||||
{
|
||||
var popup = awGetPopupElement(row);
|
||||
if (popup.selectedItem.getAttribute("value") == recipientType)
|
||||
{
|
||||
var input = awGetInputElement(row);
|
||||
if (input.value == recipientArray.StringAt(index))
|
||||
{
|
||||
awSetInputAndPopupValue(input, "", popup, "addr_to", -1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function awAddRecipients(msgCompFields, recipientType, recipientsList)
|
||||
{
|
||||
if (!msgCompFields)
|
||||
return;
|
||||
|
||||
var recipientArray = msgCompFields.SplitRecipients(recipientsList, false);
|
||||
if (! recipientArray)
|
||||
return;
|
||||
|
||||
for ( var index = 0; index < recipientArray.count; index++ )
|
||||
{
|
||||
for (var row = 1; row <= top.MAX_RECIPIENTS; row ++)
|
||||
{
|
||||
if (awGetInputElement(row).value == "")
|
||||
break;
|
||||
}
|
||||
if (row > top.MAX_RECIPIENTS)
|
||||
awAppendNewRow(false);
|
||||
|
||||
awSetInputAndPopupValue(awGetInputElement(row), recipientArray.StringAt(index), awGetPopupElement(row), recipientType, row);
|
||||
|
||||
/* be sure we still have an empty row left at the end */
|
||||
if (row == top.MAX_RECIPIENTS)
|
||||
{
|
||||
awAppendNewRow(true);
|
||||
awSetInputAndPopupValue(awGetInputElement(top.MAX_RECIPIENTS), "", awGetPopupElement(top.MAX_RECIPIENTS), "addr_to", top.MAX_RECIPIENTS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function awTestRowSequence()
|
||||
{
|
||||
/*
|
||||
This function is for debug and testing purpose only, normal user should not run it!
|
||||
|
||||
Everytime we insert or delete a row, we must be sure we didn't break the ID sequence of
|
||||
the addressing widget rows. This function will run a quick test to see if the sequence still ok
|
||||
|
||||
You need to define the pref mail.debug.test_addresses_sequence to true in order to activate it
|
||||
*/
|
||||
|
||||
if (! test_addresses_sequence)
|
||||
return true;
|
||||
|
||||
/* debug code to verify the sequence still good */
|
||||
|
||||
var listbox = document.getElementById('addressingWidget');
|
||||
var listitems = listbox.getElementsByTagName('listitem');
|
||||
if (listitems.length >= top.MAX_RECIPIENTS )
|
||||
{
|
||||
for (var i = 1; i <= listitems.length; i ++)
|
||||
{
|
||||
var item = listitems [i - 1];
|
||||
var inputID = item.getElementsByTagName(awInputElementName())[0].getAttribute("id").split("#")[1];
|
||||
var popupID = item.getElementsByTagName(awSelectElementName())[0].getAttribute("id").split("#")[1];
|
||||
if (inputID != i || popupID != i)
|
||||
{
|
||||
dump("#ERROR: sequence broken at row " + i + ", inputID=" + inputID + ", popupID=" + popupID + "\n");
|
||||
return false;
|
||||
}
|
||||
dump("---SEQUENCE OK---\n");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
dump("#ERROR: listitems.length(" + listitems.length + ") < top.MAX_RECIPIENTS(" + top.MAX_RECIPIENTS + ")\n");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function awResetAllRows()
|
||||
{
|
||||
var maxRecipients = top.MAX_RECIPIENTS;
|
||||
|
@ -175,6 +444,46 @@ function awDeleteRow(rowToDelete)
|
|||
awTestRowSequence();
|
||||
}
|
||||
|
||||
function awClickEmptySpace(target, setFocus)
|
||||
{
|
||||
if (target == null ||
|
||||
(target.localName != "listboxbody" &&
|
||||
target.localName != "listcell" &&
|
||||
target.localName != "listitem"))
|
||||
return;
|
||||
|
||||
var lastInput = awGetInputElement(top.MAX_RECIPIENTS);
|
||||
|
||||
if ( lastInput && lastInput.value )
|
||||
awAppendNewRow(setFocus);
|
||||
else
|
||||
if (setFocus)
|
||||
awSetFocus(top.MAX_RECIPIENTS, lastInput);
|
||||
}
|
||||
|
||||
function awReturnHit(inputElement)
|
||||
{
|
||||
var row = awGetRowByInputElement(inputElement);
|
||||
var nextInput = awGetInputElement(row+1);
|
||||
|
||||
if ( !nextInput )
|
||||
{
|
||||
if ( inputElement.value )
|
||||
awAppendNewRow(true);
|
||||
else // No address entered, switch to Subject field
|
||||
{
|
||||
var subjectField = document.getElementById( 'msgSubject' );
|
||||
subjectField.select();
|
||||
subjectField.focus();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
nextInput.select();
|
||||
awSetFocus(row+1, nextInput);
|
||||
}
|
||||
}
|
||||
|
||||
function awDeleteHit(inputElement)
|
||||
{
|
||||
var row = awGetRowByInputElement(inputElement);
|
||||
|
@ -200,6 +509,9 @@ function awDeleteHit(inputElement)
|
|||
|
||||
function awInputChanged(inputElement)
|
||||
{
|
||||
dump("awInputChanged\n");
|
||||
// AutoCompleteAddress(inputElement);
|
||||
|
||||
//Do we need to add a new row?
|
||||
var lastInput = awGetInputElement(top.MAX_RECIPIENTS);
|
||||
if ( lastInput && lastInput.value && !top.doNotCreateANewRow)
|
||||
|
@ -342,6 +654,52 @@ function awRemoveNodeAndChildren(parent, nodeToRemove)
|
|||
nodeToRemove.parentNode.removeChild(nodeToRemove);
|
||||
}
|
||||
|
||||
function awSetFocus(row, inputElement)
|
||||
{
|
||||
top.awRow = row;
|
||||
top.awInputElement = inputElement;
|
||||
top.awFocusRetry = 0;
|
||||
setTimeout("_awSetFocus();", 0);
|
||||
}
|
||||
|
||||
function _awSetFocus()
|
||||
{
|
||||
var listbox = document.getElementById('addressingWidget');
|
||||
//try
|
||||
//{
|
||||
var theNewRow = awGetListItem(top.awRow);
|
||||
//temporary patch for bug 26344
|
||||
awFinishCopyNode(theNewRow);
|
||||
|
||||
//Warning: firstVisibleRow is zero base but top.awRow is one base!
|
||||
var firstVisibleRow = listbox.getIndexOfFirstVisibleRow();
|
||||
var numOfVisibleRows = listbox.getNumberOfVisibleRows();
|
||||
|
||||
//Do we need to scroll in order to see the selected row?
|
||||
if (top.awRow <= firstVisibleRow)
|
||||
listbox.scrollToIndex(top.awRow - 1);
|
||||
else
|
||||
if (top.awRow - 1 >= (firstVisibleRow + numOfVisibleRows))
|
||||
listbox.scrollToIndex(top.awRow - numOfVisibleRows);
|
||||
|
||||
top.awInputElement.focus();
|
||||
// stop supressing command updating and update the toolbar, since focus has changed
|
||||
SuppressComposeCommandUpdating(false);
|
||||
/*}
|
||||
catch(ex)
|
||||
{
|
||||
top.awFocusRetry ++;
|
||||
if (top.awFocusRetry < 3)
|
||||
{
|
||||
dump("_awSetFocus failed, try it again...\n");
|
||||
setTimeout("_awSetFocus();", 0);
|
||||
}
|
||||
else
|
||||
dump("_awSetFocus failed, forget about it!\n");
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
//temporary patch for bug 26344 & 26528
|
||||
function awFinishCopyNode(node)
|
||||
{
|
||||
|
@ -356,6 +714,30 @@ function awFinishCopyNodes()
|
|||
awFinishCopyNode(listbox);
|
||||
}
|
||||
|
||||
function awTabFromRecipient(element, event)
|
||||
{
|
||||
//If we are le last element in the listbox, we don't want to create a new row.
|
||||
if (element == awGetInputElement(top.MAX_RECIPIENTS))
|
||||
top.doNotCreateANewRow = true;
|
||||
|
||||
var row = awGetRowByInputElement(element);
|
||||
if (!event.shiftKey && row < top.MAX_RECIPIENTS) {
|
||||
var listBoxRow = row - 1; // listbox row indices are 0-based, ours are 1-based.
|
||||
var listBox = document.getElementById("addressingWidget");
|
||||
listBox.listBoxObject.ensureIndexIsVisible(listBoxRow + 1);
|
||||
}
|
||||
}
|
||||
|
||||
function awTabFromMenulist(element, event)
|
||||
{
|
||||
var row = awGetRowByInputElement(element);
|
||||
if (event.shiftKey && row > 1) {
|
||||
var listBoxRow = row - 1; // listbox row indices are 0-based, ours are 1-based.
|
||||
var listBox = document.getElementById("addressingWidget");
|
||||
listBox.listBoxObject.ensureIndexIsVisible(listBoxRow - 1);
|
||||
}
|
||||
}
|
||||
|
||||
function awGetNumberOfRecipients()
|
||||
{
|
||||
return top.MAX_RECIPIENTS;
|
||||
|
@ -388,7 +770,7 @@ function DropOnAddressingWidget(event)
|
|||
var len = new Object();
|
||||
trans.getAnyTransferData ( bestFlavor, dataObj, len );
|
||||
if ( dataObj )
|
||||
dataObj = dataObj.value.QueryInterface(Components.interfaces.nsISupportsWString);
|
||||
dataObj = dataObj.value.QueryInterface(Components.interfaces.nsISupportsString);
|
||||
if ( !dataObj )
|
||||
continue;
|
||||
|
||||
|
@ -412,10 +794,7 @@ function DropRecipient(target, recipient)
|
|||
|
||||
function _awSetAutoComplete(selectElem, inputElem)
|
||||
{
|
||||
if (selectElem.value != 'addr_newsgroups' && selectElem.value != 'addr_followup')
|
||||
inputElem.disableAutocomplete = false;
|
||||
else
|
||||
inputElem.disableAutocomplete = true;
|
||||
inputElem.disableAutocomplete = selectElem.value == 'addr_newsgroups' || selectElem.value == 'addr_followup' || selectElem.value == 'addr_other';
|
||||
}
|
||||
|
||||
function awSetAutoComplete(rowNumber)
|
||||
|
@ -425,6 +804,12 @@ function awSetAutoComplete(rowNumber)
|
|||
_awSetAutoComplete(selectElem, inputElem)
|
||||
}
|
||||
|
||||
function awRecipientTextCommand(userAction, element)
|
||||
{
|
||||
if (userAction == "typing" || userAction == "scrolling")
|
||||
awReturnHit(element);
|
||||
}
|
||||
|
||||
// Called when an autocomplete session item is selected and the status of
|
||||
// the session it was selected from is nsIAutoCompleteStatus::failureItems.
|
||||
//
|
||||
|
@ -449,14 +834,14 @@ function awRecipientErrorCommand(errItem, element)
|
|||
|
||||
// try and get the string of the specific error to contruct the complete
|
||||
// err msg, otherwise fall back to something generic. This message is
|
||||
// handed to us as an nsISupportsWString in the param slot of the
|
||||
// handed to us as an nsISupportsString in the param slot of the
|
||||
// autocomplete error item, by agreement documented in
|
||||
// nsILDAPAutoCompFormatter.idl
|
||||
//
|
||||
var specificErrString = "";
|
||||
try {
|
||||
var specificError = errItem.param.QueryInterface(
|
||||
Components.interfaces.nsISupportsWString);
|
||||
Components.interfaces.nsISupportsString);
|
||||
specificErrString = specificError.data;
|
||||
} catch (ex) {
|
||||
}
|
||||
|
@ -513,6 +898,15 @@ function awKeyDown(event, listboxElement)
|
|||
}
|
||||
}
|
||||
|
||||
function awMenulistKeyPress(event, element)
|
||||
{
|
||||
switch(event.keyCode) {
|
||||
case 9:
|
||||
awTabFromMenulist(element, event);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* ::::::::::: addressing widget dummy rows ::::::::::::::::: */
|
||||
|
||||
var gAWContentHeight = 0;
|
||||
|
@ -621,3 +1015,11 @@ function awSizerMouseUp()
|
|||
document.removeEventListener("mouseup", awSizerMouseUp, false);
|
||||
}
|
||||
|
||||
function awDocumentKeyPress(event)
|
||||
{
|
||||
try {
|
||||
var id = event.target.getAttribute('id');
|
||||
if (id.substr(0, 11) == 'addressCol1')
|
||||
awMenulistKeyPress(event, event.target);
|
||||
} catch (e) { }
|
||||
}
|
||||
|
|
|
@ -19,13 +19,13 @@ Communications Corporation. Portions created by Netscape are
|
|||
Rights Reserved.
|
||||
-->
|
||||
|
||||
<!DOCTYPE window SYSTEM "chrome://messenger/locale/messengercompose/addressingWidgetOverlay.dtd">
|
||||
<!DOCTYPE window SYSTEM "chrome://mail/locale/messengercompose/addressingWidgetOverlay.dtd">
|
||||
|
||||
|
||||
<overlay xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/messengercompose/addressingWidgetOverlay.js"/>
|
||||
<script type="application/x-javascript" src="chrome://mail/content/messengercompose/addressingWidgetOverlay.js"/>
|
||||
|
||||
<!-- Addressing Widget -->
|
||||
<listbox id="addressingWidget" seltype="multiple" rows="4"
|
||||
|
@ -60,13 +60,13 @@ Rights Reserved.
|
|||
type="autocomplete" flex="1"
|
||||
searchSessions="addrbook" timeout="300" maxrows="4"
|
||||
autoFill="true" autoFillAfterMatch="true" forceComplete="true"
|
||||
minResultsForPopup="3"
|
||||
minResultsForPopup="3" ignoreBlurWhileSearching="true"
|
||||
ontextcommand="awRecipientTextCommand(eventParam, this)"
|
||||
onerrorcommand="awRecipientErrorCommand(eventParam, this)"
|
||||
oninput="gContentChanged=true; setupAutocomplete();" disableonsend="true"
|
||||
onkeypress="awRecipientKeyPress(event, this)"
|
||||
onkeydown="awRecipientKeyDown(event, this)">
|
||||
<image class="person-icon"/>
|
||||
<image class="person-icon" onclick="this.parentNode.select();"/>
|
||||
</textbox>
|
||||
</listcell>
|
||||
</listitem>
|
||||
|
|
|
@ -0,0 +1,497 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
- The contents of this file are subject to the Netscape Public
|
||||
- License Version 1.1 (the "License"); you may not use this file
|
||||
- except in compliance with the License. You may obtain a copy of
|
||||
- the License at http://www.mozilla.org/NPL/
|
||||
-
|
||||
- Software distributed under the License is distributed on an "AS
|
||||
- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
- implied. See the License for the specific language governing
|
||||
- rights and limitations under the License.
|
||||
-
|
||||
- The Original Code is Mozilla Communicator client code, released
|
||||
- March 31, 1998.
|
||||
-
|
||||
- The Initial Developer of the Original Code is Netscape
|
||||
- Communications Corporation. Portions created by Netscape are
|
||||
- Copyright (C) 1999 Netscape Communications Corporation. All
|
||||
- Rights Reserved.
|
||||
-
|
||||
- Contributor(s):
|
||||
- Ben Goodger <ben@netscape.com> (ass'td polish fixes)
|
||||
- Håkan Waara <hwaara@chello.se>
|
||||
- Neil Rashbrook <neil@parkwaycc.co.uk> (ass'td polish fix)
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://messenger/skin/messengercompose/messengercompose.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://messenger/skin/folderMenus.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://editor/skin/editorFormatToolbar.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://messenger/skin/addressingWidget.css" type="text/css"?>
|
||||
|
||||
<?xul-overlay href="chrome://global/content/charsetOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://communicator/content/tasksOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://communicator/content/communicatorOverlay.xul"?>
|
||||
|
||||
<?xul-overlay href="chrome://mail/content/messengercompose/addressingWidgetOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://global/content/globalOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://communicator/content/utilityOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://editor/content/editorOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://mail/content/messengercompose/insertMenuSmileyOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://mail/content/messengercompose/mailComposeExtrasOverlay.xul"?>
|
||||
|
||||
<!DOCTYPE window [
|
||||
<!ENTITY % messengercomposeDTD SYSTEM "chrome://mail/locale/messengercompose/messengercompose.dtd" >
|
||||
%messengercomposeDTD;
|
||||
<!ENTITY % messengerDTD SYSTEM "chrome://mail/locale/messenger.dtd" >
|
||||
%messengerDTD;
|
||||
<!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd" >
|
||||
%brandDTD;
|
||||
]>
|
||||
|
||||
<window id="msgcomposeWindow"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:nc="http://home.netscape.com/NC-rdf#"
|
||||
onunload="ComposeUnload()"
|
||||
onload="ComposeLoad()"
|
||||
onclose="return DoCommandClose()"
|
||||
onfocus="EditorOnFocus()"
|
||||
title="&msgComposeWindow.title;"
|
||||
windowtype="msgcompose"
|
||||
width="640" height="480"
|
||||
persist="screenX screenY width height sizemode">
|
||||
|
||||
<stringbundleset id="stringbundleset">
|
||||
<stringbundle id="bundle_composeMsgs" src="chrome://mail/locale/messengercompose/composeMsgs.properties"/>
|
||||
<stringbundle id="bundle_messenger" src="chrome://mail/locale/messenger.properties"/>
|
||||
<stringbundle id="bundle_offlinePrompts" src="chrome://mail/locale/offline.properties"/>
|
||||
</stringbundleset>
|
||||
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/accountUtils.js"/>
|
||||
<script type="application/x-javascript" src="chrome://mail/content/widgetglue.js"/>
|
||||
<script type="application/x-javascript" src="chrome://mail/content/mail-offline.js"/>
|
||||
<script type="application/x-javascript" src="chrome://editor/content/editor.js"/>
|
||||
<!--script type="application/x-javascript" src="chrome://editor/content/EditorCommandsDebug.js"/-->
|
||||
<script type="application/x-javascript" src="chrome://mail/content/messengercompose/MsgComposeCommands.js"/>
|
||||
|
||||
<!-- drag and drop -->
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsDragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
|
||||
<commandset id="composeCommands">
|
||||
<commandset id="msgComposeCommandUpdate"
|
||||
commandupdater="true"
|
||||
events="focus"
|
||||
oncommandupdate="CommandUpdate_MsgCompose()"/>
|
||||
|
||||
<commandset id="globalEditMenuItems"/>
|
||||
<commandset id="selectEditMenuItems"/>
|
||||
<commandset id="undoEditMenuItems"/>
|
||||
<commandset id="clipboardEditMenuItems"/>
|
||||
|
||||
<commandset id="commonEditorMenuItems"/>
|
||||
<commandset id="composerMenuItems"/>
|
||||
<commandset id="composerEditMenuItems"/>
|
||||
<commandset id="composerStyleMenuItems"/>
|
||||
<commandset id="composerTableMenuItems"/>
|
||||
<commandset id="composerListMenuItems"/>
|
||||
<commandset id="tasksCommands"/>
|
||||
<command id="cmd_quit"/>
|
||||
<!-- File Menu -->
|
||||
<command id="cmd_newNavigator"/>
|
||||
<command id="cmd_newEditor"/>
|
||||
<command id="cmd_new" oncommand="goDoCommand('cmd_newMessage')"/>
|
||||
<command id="cmd_attachFile" oncommand="goDoCommand('cmd_attachFile')"/>
|
||||
<command id="cmd_attachPage" oncommand="goDoCommand('cmd_attachPage')"/>
|
||||
<command id="cmd_close" oncommand="goDoCommand('cmd_close')"/>
|
||||
<command id="cmd_saveDefault" oncommand="goDoCommand('cmd_saveDefault')"/>
|
||||
<command id="cmd_saveAsFile" oncommand="goDoCommand('cmd_saveAsFile')"/>
|
||||
<command id="cmd_saveAsDraft" oncommand="goDoCommand('cmd_saveAsDraft')"/>
|
||||
<command id="cmd_saveAsTemplate" oncommand="goDoCommand('cmd_saveAsTemplate')"/>
|
||||
<command id="cmd_sendButton" oncommand="goDoCommand('cmd_sendButton')"/>
|
||||
<command id="cmd_sendNow" oncommand="goDoCommand('cmd_sendNow')"/>
|
||||
<command id="cmd_sendWithCheck" oncommand="goDoCommand('cmd_sendWithCheck')"/>
|
||||
<command id="cmd_sendLater" oncommand="goDoCommand('cmd_sendLater')"/>
|
||||
<command id="cmd_printSetup" oncommand="goDoCommand('cmd_printSetup')"/>
|
||||
<command id="cmd_print" oncommand="goDoCommand('cmd_print')"/>
|
||||
|
||||
<!-- Edit Menu -->
|
||||
<!--command id="cmd_pasteQuote"/ DO NOT INCLUDE THOSE PBROCASTER ESLE THE EDIT MENU WILL BE BROKEN! -->
|
||||
<!--command id="cmd_find"/-->
|
||||
<!--command id="cmd_findNext"/-->
|
||||
<command id="cmd_delete"/>
|
||||
<command id="cmd_selectAll"/>
|
||||
<command id="cmd_account" oncommand="goDoCommand('cmd_account')"/>
|
||||
|
||||
<!-- View Menu -->
|
||||
<command id="cmd_showComposeToolbar" oncommand="goDoCommand('cmd_showComposeToolbar')"/>
|
||||
<command id="cmd_showFormatToolbar" oncommand="goDoCommand('cmd_showFormatToolbar')"/>
|
||||
|
||||
<!-- Options Menu -->
|
||||
<command id="cmd_selectAddress" oncommand="goDoCommand('cmd_selectAddress')"/>
|
||||
<command id="cmd_outputFormat" oncommand="OutputFormatMenuSelect(event.target)"/>
|
||||
<command id="cmd_quoteMessage" oncommand="goDoCommand('cmd_quoteMessage')"/>
|
||||
<command id="cmd_rewrap" oncommand="goDoCommand('cmd_rewrap')"/>
|
||||
<command id="cmd_insert"/>
|
||||
</commandset>
|
||||
|
||||
<broadcasterset id="composeBroadcasters">
|
||||
<broadcaster id="Editor:Throbber" busy="false"/>
|
||||
<broadcaster id="Communicator:WorkMode"/>
|
||||
<broadcaster id="args" value="editorType=default"/>
|
||||
</broadcasterset>
|
||||
|
||||
<keyset id="tasksKeys">
|
||||
<!-- File Menu -->
|
||||
<key id="key_newNavigator"/>
|
||||
<key id="key_newBlankPage"/>
|
||||
<key id="key_close"/>
|
||||
<key id="key_save" key="&saveCmd.key;" command="cmd_saveDefault" modifiers="accel"/>
|
||||
<key id="key_send" keycode="&sendCmd.keycode;" observes="cmd_sendWithCheck" modifiers="accel"/>
|
||||
<key id="key_sendLater" keycode="&sendLaterCmd.keycode;" observes="cmd_sendLater" modifiers="accel, shift"/>
|
||||
<key id="key_print" key="&printCmd.key;" command="cmd_print" modifiers="accel"/>
|
||||
<key id="key_quit"/>
|
||||
|
||||
<!-- Edit Menu -->
|
||||
<key id="key_undo"/>
|
||||
<key id="key_redo"/>
|
||||
<key id="key_cut"/>
|
||||
<key id="key_copy"/>
|
||||
<key id="key_paste"/>
|
||||
<key id="pastequotationkb"/>
|
||||
<key id="key_delete"/>
|
||||
<key id="key_selectAll"/>
|
||||
<key id="key_find" key="&findCmd.key;" command="cmd_find" modifiers="accel"/>
|
||||
<key id="key_findNext" key="&findAgainCmd.key;" command="cmd_findNext" modifiers="accel"/>
|
||||
<key id="key_findPrev" key="&findPrevCmd.key;" command="cmd_findPrev" modifiers="accel, shift"/>
|
||||
<key keycode="&findAgainCmd.key2;" command="cmd_findNext"/>
|
||||
<key keycode="&findPrevCmd.key2;" command="cmd_findPrev" modifiers="shift"/>
|
||||
|
||||
<!-- Options Menu -->
|
||||
<!-- key id="key_selectAddresses" xulkey="true" key="&selectAddressCmd.key;" command="cmd_selectAddress"/ -->
|
||||
<key id="key_checkspelling" key="&checkSpellingCmd.key;" command="cmd_spelling" modifiers="accel"/>
|
||||
|
||||
<!-- Tab/F6 Keys -->
|
||||
<key keycode="VK_TAB" oncommand="SwitchElementFocus(event);" modifiers="control"/>
|
||||
<key keycode="VK_TAB" oncommand="SwitchElementFocus(event);" modifiers="control,shift"/>
|
||||
<key keycode="VK_F6" oncommand="SwitchElementFocus(event);" modifiers="control"/>
|
||||
<key keycode="VK_F6" oncommand="SwitchElementFocus(event);" modifiers="control,shift"/>
|
||||
<key keycode="VK_F6" oncommand="SwitchElementFocus(event);" modifiers="shift"/>
|
||||
<key keycode="VK_F6" oncommand="SwitchElementFocus(event);"/>
|
||||
</keyset>
|
||||
<keyset id="editorKeys"/>
|
||||
|
||||
<popup id="msgComposeContext" onpopupshowing="updateEditItems();">
|
||||
<menuitem label="&undo.label;" accesskey="&undo.accesskey;" command="cmd_undo"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="&cut.label;" accesskey="&cut.accesskey;" command="cmd_cut"/>
|
||||
<menuitem label="©.label;" accesskey="©.accesskey;" command="cmd_copy"/>
|
||||
<menuitem label="&paste.label;" accesskey="&paste.accesskey;" command="cmd_paste"/>
|
||||
<menuitem label="&pasteQuote.label;" accesskey="&pasteQuote.accesskey;" command="cmd_pasteQuote"/>
|
||||
<menuitem label="&delete.label;" accesskey="&delete.accesskey;" command="cmd_delete"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="&selectAll.label;" accesskey="&selectAll.accesskey;" command="cmd_selectAll"/>
|
||||
</popup>
|
||||
|
||||
<popup id="msgComposeAttachmentContext" onpopupshowing="updateEditItems();">
|
||||
<menuitem label="&delete.label;" accesskey="&delete.accesskey;" command="cmd_delete"/>
|
||||
<menuitem label="&selectAll.label;" accesskey="&selectAll.accesskey;" command="cmd_selectAll"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="&addAttachment.label;" accesskey="&addAttachment.accesskey;" command="cmd_attachFile"/>
|
||||
</popup>
|
||||
|
||||
<toolbox class="toolbox-top" id="headers-box">
|
||||
<menubar id="compose-menubar">
|
||||
<menu id="menu_File">
|
||||
<menupopup id="menu_FilePopup">
|
||||
<menu id="menu_New">
|
||||
<menupopup id="menu_NewPopup">
|
||||
<menuitem label="&newMessage.label;" accesskey="&newMessage.accesskey;" key="key_newMessage" oncommand="goOpenNewMessage();"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="menu_newNavigator"/>
|
||||
<menuitem id="menu_newEditor"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuitem label="&attachFileCmd.label;" accesskey="&attachFileCmd.accesskey;" command="cmd_attachFile"/>
|
||||
<menuitem label="&attachPageCmd.label;" accesskey="&attachPageCmd.accesskey;" command="cmd_attachPage"/>
|
||||
<menuitem hidden="true" observes="Communicator:WorkMode"/>
|
||||
<menuitem id="menu_close"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="&saveCmd.label;" accesskey="&saveCmd.accesskey;" key="key_save" command="cmd_saveDefault"/>
|
||||
<menu label="&saveAsCmd.label;" accesskey="&saveAsCmd.accesskey;">
|
||||
<menupopup>
|
||||
<menuitem label="&saveAsFileCmd.label;" accesskey="&saveAsFileCmd.accesskey;" command="cmd_saveAsFile"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="&saveAsDraftCmd.label;" accesskey="&saveAsDraftCmd.accesskey;" command="cmd_saveAsDraft"/>
|
||||
<menuitem label="&saveAsTemplateCmd.label;" accesskey="&saveAsTemplateCmd.accesskey;" command="cmd_saveAsTemplate"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuseparator/>
|
||||
<menuitem label="&sendNowCmd.label;" accesskey="&sendNowCmd.accesskey;" key="key_send" command="cmd_sendNow" id="menu-item-send-now"/>
|
||||
<menuitem label="&sendLaterCmd.label;" accesskey="&sendLaterCmd.accesskey;" key="key_sendLater" command="cmd_sendLater"/>
|
||||
<menuseparator/>
|
||||
<!--Page setup gets overlaid here from platformGlobalOverlay.xul / -->
|
||||
<menuitem id="printMenuItem" label="&printCmd.label;" accesskey="&printCmd.accesskey;" key="key_print" command="cmd_print"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu_Edit">
|
||||
<menupopup onpopupshowing="updateEditItems();">
|
||||
<menuitem id="menu_undo"/>
|
||||
<menuitem id="menu_redo"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="menu_cut"/>
|
||||
<menuitem id="menu_copy"/>
|
||||
<menuitem id="menu_paste"/>
|
||||
<menuitem id="menu_pasteQuote"/>
|
||||
<menuitem id="menu_delete"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="menu_selectAll"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="&findCmd.label;" key="key_find" accesskey="&findCmd.accesskey;" command="cmd_find"/>
|
||||
<menuitem label="&findAgainCmd.label;" key="key_findNext" accesskey="&findAgainCmd.accesskey;" command="cmd_findNext"/>
|
||||
<menuitem label="&findPrevCmd.label;" key="key_findPrev" accesskey="&findPrevCmd.accesskey;" command="cmd_findPrev"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="&accountManagerCmd.label;" accesskey="&accountManagerCmd.accesskey;" command="cmd_account"/>
|
||||
<menuitem id="menu_preferences" oncommand="goDoCommand('cmd_preferences')"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu_View">
|
||||
<menupopup id="menu_View_Popup">
|
||||
<menu id="menu_Toolbars">
|
||||
<menupopup>
|
||||
<menuitem id="menu_showComposeToolbar"
|
||||
type="checkbox"
|
||||
label="&showComposeToolbarCmd.label;"
|
||||
command="cmd_showComposeToolbar"
|
||||
accesskey="&showComposeToolbarCmd.accesskey;"
|
||||
checked="true"/>
|
||||
<menuitem id="menu_showFormatToolbar"
|
||||
type="checkbox"
|
||||
label="&showFormatToolbarCmd.label;"
|
||||
command="cmd_showFormatToolbar"
|
||||
accesskey="&showFormatToolbarCmd.accesskey;"
|
||||
checked="true"/>
|
||||
<menuitem id="menu_showTaskbar"
|
||||
type="checkbox"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuseparator/>
|
||||
<menu id = "maileditCharsetMenu" />
|
||||
</menupopup>
|
||||
</menu>
|
||||
|
||||
<menu id="insertMenu" command="cmd_insert"/>
|
||||
|
||||
<menu id="formatMenu" label="&formatMenu.label;" accesskey="&formatMenu.accesskey;" command="cmd_insert">
|
||||
<menupopup id="formatMenuPopup">
|
||||
<menu id="tableMenu"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="objectProperties"/>
|
||||
<menuitem id="colorsAndBackground"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
|
||||
<menu id="optionsMenu" label="&optionsMenu.label;" accesskey="&optionsMenu.accesskey;">
|
||||
<menupopup id="optionsMenuPopup">
|
||||
<menuitem label="&selectAddressCmd.label;" accesskey="&selectAddressCmd.accesskey;" command="cmd_selectAddress"/>
|
||||
<menuitem label="&checkSpellingCmd.label;" id="menu_checkspelling" accesskey="&checkSpellingCmd.accesskey;" key="key_checkspelling" command="cmd_spelling"/>
|
||||
<menuitem label=""eCmd.label;" accesskey=""eCmd.accesskey;" command="cmd_quoteMessage"/>
|
||||
<menuitem label="&editRewrapCmd.label;" accesskey="&editRewrapCmd.accesskey;" command="cmd_rewrap" oncommand="editorShell.Rewrap(false)"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="returnReceiptMenu" type="checkbox" label="&returnReceiptMenu.label;" accesskey="&returnReceiptMenu.accesskey;" checked="false" oncommand="ToggleReturnReceipt(event.target)"/>
|
||||
<menu id="outputFormatMenu" label="&outputFormatMenu.label;" accesskey="&outputFormatMenu.accesskey;" command="cmd_outputFormat">
|
||||
<menupopup>
|
||||
<menuitem type="radio" name="output_format" label="&autoFormatCmd.label;" accesskey="&autoFormatCmd.accesskey;" id="format_auto" checked="true"/>
|
||||
<menuitem type="radio" name="output_format" label="&plainTextFormatCmd.label;" accesskey="&plainTextFormatCmd.accesskey;" id="format_plain"/>
|
||||
<menuitem type="radio" name="output_format" label="&htmlFormatCmd.label;" accesskey="&htmlFormatCmd.accesskey;" id="format_html"/>
|
||||
<menuitem type="radio" name="output_format" label="&bothFormatCmd.label;" accesskey="&bothFormatCmd.accesskey;" id="format_both"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="priorityMenu" label="&priorityMenu.label;" accesskey="&priorityMenu.accesskey;" oncommand="PriorityMenuSelect(event.target);">
|
||||
<menupopup>
|
||||
<menuitem type="radio" name="priority" label="&lowestPriorityCmd.label;" accesskey="&lowestPriorityCmd.accesskey;" id="priority_lowest"/>
|
||||
<menuitem type="radio" name="priority" label="&lowPriorityCmd.label;" accesskey="&lowPriorityCmd.accesskey;" id="priority_low"/>
|
||||
<menuitem type="radio" name="priority" label="&normalPriorityCmd.label;" accesskey="&normalPriorityCmd.accesskey;" id="priority_normal" checked="true"/>
|
||||
<menuitem type="radio" name="priority" label="&highPriorityCmd.label;" accesskey="&highPriorityCmd.accesskey;" id="priority_high"/>
|
||||
<menuitem type="radio" name="priority" label="&highestPriorityCmd.label;" accesskey="&highestPriorityCmd.accesskey;" id="priotity_highest"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="fccMenu" label="&fileCarbonCopyCmd.label;"
|
||||
accesskey="&fileCarbonCopyCmd.accesskey;"
|
||||
sortResource="http://home.netscape.com/NC-rdf#FolderTreeName"
|
||||
sortDirection="ascending"
|
||||
datasources="rdf:msgaccountmanager rdf:mailnewsfolders"
|
||||
ref="msgaccounts:/">
|
||||
<menupopup/>
|
||||
<template>
|
||||
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
|
||||
<menupopup>
|
||||
<!--menuitem label="[current selection]" disabled="true"/>
|
||||
<menuseparator/-->
|
||||
<menu uri="..." class="folderMenuItem menu-iconic" label="rdf:http://home.netscape.com/NC-rdf#Name"
|
||||
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
|
||||
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
|
||||
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
|
||||
IsSecure="rdf:http://home.netscape.com/NC-rdf#IsSecure"
|
||||
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
|
||||
<menupopup>
|
||||
<menuitem label="&fileHereMenu.label;"
|
||||
oncommand="MessageFcc(event.target.parentNode.parentNode)"/>
|
||||
<menuseparator/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule nc:CanFileMessagesOnServer="false"/>
|
||||
<rule nc:CanFileMessages="false" iscontainer="true" isempty="false">
|
||||
<menupopup>
|
||||
<menu uri="..." class="folderMenuItem menu-iconic" label="rdf:http://home.netscape.com/NC-rdf#Name"
|
||||
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
|
||||
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
|
||||
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
|
||||
IsSecure="rdf:http://home.netscape.com/NC-rdf#IsSecure"
|
||||
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
|
||||
<menupopup/>
|
||||
</menu>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule nc:CanFileMessages="true">
|
||||
<menupopup>
|
||||
<menuitem uri="..." class="folderMenuItem menuitem-iconic" label="rdf:http://home.netscape.com/NC-rdf#Name"
|
||||
oncommand="MessageFcc(event.target)"
|
||||
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
|
||||
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
|
||||
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
|
||||
IsSecure="rdf:http://home.netscape.com/NC-rdf#IsSecure"
|
||||
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menu>
|
||||
|
||||
<!--menuseparator/>
|
||||
<menuitem label="&addSignatureCmd.label;" disabled="true" oncommand=""/>
|
||||
<menuitem label="&attachVCardCmd.label;" disabled="true" accesskey="&attachVCardCmd.accesskey;" oncommand="AttachVCard()"/-->
|
||||
</menupopup>
|
||||
</menu>
|
||||
<!--menu id="debugMenu"/-->
|
||||
<menu id="tasksMenu"/>
|
||||
<menu id="windowMenu"/>
|
||||
<menu id="menu_Help"/>
|
||||
</menubar>
|
||||
|
||||
<toolbar class="toolbar-primary chromeclass-toolbar" id="composeToolbar" persist="collapsed">
|
||||
<hbox id="toolbar_button_box">
|
||||
<toolbarbutton class="toolbarbutton-1"
|
||||
id="button-send" label="&sendButton.label;"
|
||||
tooltiptext="&sendButton.tooltip;"
|
||||
command="cmd_sendButton"
|
||||
now_label="&sendButton.label;"
|
||||
now_tooltiptext="&sendButton.tooltip;"
|
||||
later_label="&sendLaterCmd.label;"
|
||||
later_tooltiptext="&sendlaterButton.tooltip;">
|
||||
<observes element="Communicator:WorkMode" attribute="offline"/>
|
||||
</toolbarbutton>
|
||||
<toolbarseparator class="toolbarseparator-primary"/>
|
||||
<toolbarbutton class="toolbarbutton-1"
|
||||
id="button-address" label="&addressButton.label;"
|
||||
tooltiptext="&addressButton.tooltip;"
|
||||
command="cmd_selectAddress"/>
|
||||
<toolbarbutton class="toolbarbutton-1"
|
||||
id="button-attach" label="&attachButton.label;"
|
||||
tooltiptext="&attachButton.tooltip;"
|
||||
command="cmd_attachFile"/>
|
||||
<toolbarbutton class="toolbarbutton-1"
|
||||
id="spellingButton" label="&spellingButton.label;"
|
||||
command="cmd_spelling"/>
|
||||
<toolbarseparator id="saveSeparator" class="toolbarseparator-primary"/>
|
||||
<toolbarbutton class="toolbarbutton-1"
|
||||
id="button-save" label="&saveButton.label;"
|
||||
tooltiptext="&saveButton.tooltip;"
|
||||
command="cmd_saveDefault"/>
|
||||
<spacer flex="1"/>
|
||||
<hbox id="throbber-box" align="center">
|
||||
<button id="navigator-throbber"
|
||||
oncommand="goClickThrobber('compose.throbber.url')" tooltiptext="&throbber.tooltip;">
|
||||
<observes element="broadcaster_throbber" attribute="busy"/>
|
||||
</button>
|
||||
</hbox>
|
||||
</hbox>
|
||||
</toolbar>
|
||||
|
||||
<toolbar id="MsgHeadersToolbar" persist="collapsed" flex="1"
|
||||
tborient="vertical">
|
||||
<hbox id="msgheaderstoolbar-box" flex="1">
|
||||
<vbox flex="1" id="addresses-box">
|
||||
<hbox align="center">
|
||||
<label value="&fromAddr.label;" accesskey="&fromAddr.accesskey;" control="msgIdentity"/>
|
||||
<menulist id="msgIdentity" label="..." flex="1" oncommand="LoadIdentity(false);">
|
||||
<menupopup id="msgIdentityPopup"/>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<listbox id="addressingWidget" flex="1"/>
|
||||
<hbox align="center">
|
||||
<label value="&subject.label;" accesskey="&subject.accesskey;" control="msgSubject"/>
|
||||
<textbox id="msgSubject" flex="1" class="toolbar" disableonsend="true"
|
||||
oninput="gContentChanged=true;SetComposeWindowTitle();"
|
||||
onkeypress="subjectKeyPress(event);" />
|
||||
</hbox>
|
||||
</vbox>
|
||||
<splitter id="attachmentbucket-sizer" collapse="after"/>
|
||||
<vbox id="attachments-box">
|
||||
<label id="attachmentBucketText" value="&attachments.label;" crop="right"
|
||||
accesskey="&attachments.accesskey;" control="attachmentBucket"/>
|
||||
<listbox seltype="multiple" id="attachmentBucket" flex="1" rows="4"
|
||||
context="msgComposeAttachmentContext"
|
||||
onkeypress="if (event.keyCode == 8 || event.keyCode == 46) RemoveSelectedAttachment();"
|
||||
onclick="AttachmentBucketClicked(event);"
|
||||
ondragover="nsDragAndDrop.dragOver(event, attachmentBucketObserver);"
|
||||
ondragdrop="nsDragAndDrop.drop(event, attachmentBucketObserver);"
|
||||
ondragexit="nsDragAndDrop.dragExit(event, attachmentBucketObserver);"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</toolbar>
|
||||
|
||||
<!-- These toolbar items get filled out from the editorOverlay -->
|
||||
<toolbar class="chromeclass-toolbar" id="FormatToolbar" persist="collapsed" tbautostretch="never" grippytooltiptext="&formatToolbar.tooltip;">
|
||||
<menulist id="ParagraphSelect"/>
|
||||
<menulist id="FontFaceSelect"/>
|
||||
<stack id="ColorButtons"/>
|
||||
<toolbarbutton id="DecreaseFontSizeButton"/>
|
||||
<toolbarbutton id="IncreaseFontSizeButton"/>
|
||||
<toolbarseparator class="toolbarseparator-standard"/>
|
||||
<toolbarbutton id="boldButton"/>
|
||||
<toolbarbutton id="italicButton"/>
|
||||
<toolbarbutton id="underlineButton"/>
|
||||
<toolbarseparator class="toolbarseparator-standard"/>
|
||||
<toolbarbutton id="ulButton"/>
|
||||
<toolbarbutton id="olButton"/>
|
||||
<toolbarbutton id="outdentButton"/>
|
||||
<toolbarbutton id="indentButton"/>
|
||||
<toolbarseparator class="toolbarseparator-standard"/>
|
||||
<toolbarbutton id="AlignPopupButton"/>
|
||||
<toolbarbutton id="InsertPopupButton"/>
|
||||
<toolbarbutton id="smileButtonMenu" padwithspace="true"/>
|
||||
<spacer flex="1"/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
|
||||
<splitter id="compose-toolbar-sizer" onmousedown="awSizerListen()" collapse="after"/>
|
||||
|
||||
<!-- The mail message body frame -->
|
||||
<vbox id="appcontent" flex="1">
|
||||
<editor type="content-primary" id="content-frame" src="about:blank" name="browser.message.body" flex="1"
|
||||
onkeypress="editorKeyPress(event);" context="msgComposeContext"/>
|
||||
</vbox>
|
||||
|
||||
<statusbar id="status-bar" class="chromeclass-status">
|
||||
<statusbarpanel id="component-bar"/>
|
||||
<statusbarpanel id="statusText" flex="1"/>
|
||||
<statusbarpanel class="statusbarpanel-progress">
|
||||
<progressmeter id="compose-progressmeter" class="progressmeter-statusbar" mode="normal" value="0"/>
|
||||
</statusbarpanel>
|
||||
<statusbarpanel checkfunc="MailCheckBeforeOfflineChange()" id="offline-status" class="statusbarpanel-iconic"/>
|
||||
</statusbar>
|
||||
|
||||
</window>
|
||||
|
|
@ -28,23 +28,25 @@
|
|||
<?xml-stylesheet href="chrome://messenger/skin/folderMenus.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://editor/skin/editorFormatToolbar.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://messenger/skin/addressingWidget.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://messenger/skin/addressbook/abResultsPane.css" type="text/css"?>
|
||||
|
||||
<?xul-overlay href="chrome://global/content/charsetOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://communicator/content/tasksOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://communicator/content/communicatorOverlay.xul"?>
|
||||
|
||||
<?xul-overlay href="chrome://mail/content/messengercompose/addressingWidgetOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://global/content/globalOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://communicator/content/utilityOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://editor/content/editorOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://mail/content/messengercompose/insertMenuSmileyOverlay.xul"?>
|
||||
<?xul-overlay href="chrome://mail/content/messengercompose/mailComposeExtrasOverlay.xul"?>
|
||||
|
||||
<!DOCTYPE window [
|
||||
<!ENTITY % messengercomposeDTD SYSTEM "chrome://messenger/locale/messengercompose/messengercompose.dtd" >
|
||||
<!ENTITY % messengercomposeDTD SYSTEM "chrome://mail/locale/messengercompose/messengercompose.dtd" >
|
||||
%messengercomposeDTD;
|
||||
<!ENTITY % messengerDTD SYSTEM "chrome://messenger/locale/messenger.dtd" >
|
||||
<!ENTITY % messengerDTD SYSTEM "chrome://mail/locale/messenger.dtd" >
|
||||
%messengerDTD;
|
||||
<!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd" >
|
||||
%brandDTD;
|
||||
<!ENTITY % abDTD SYSTEM "chrome://messenger/locale/addressbook/abResultsPaneOverlay.dtd" >
|
||||
%abDTD;
|
||||
]>
|
||||
|
||||
<window id="msgcomposeWindow"
|
||||
|
@ -60,24 +62,22 @@
|
|||
persist="screenX screenY width height sizemode">
|
||||
|
||||
<stringbundleset id="stringbundleset">
|
||||
<stringbundle id="bundle_composeMsgs" src="chrome://messenger/locale/messengercompose/composeMsgs.properties"/>
|
||||
<stringbundle id="bundle_messenger" src="chrome://messenger/locale/messenger.properties"/>
|
||||
<stringbundle id="bundle_offlinePrompts" src="chrome://messenger/locale/offline.properties"/>
|
||||
<stringbundle id="bundle_composeMsgs" src="chrome://mail/locale/messengercompose/composeMsgs.properties"/>
|
||||
<stringbundle id="bundle_messenger" src="chrome://mail/locale/messenger.properties"/>
|
||||
<stringbundle id="bundle_offlinePrompts" src="chrome://mail/locale/offline.properties"/>
|
||||
</stringbundleset>
|
||||
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/accountUtils.js"/>
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/widgetglue.js"/>
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/mail-offline.js"/>
|
||||
<script type="application/x-javascript" src="chrome://mail/content/widgetglue.js"/>
|
||||
<script type="application/x-javascript" src="chrome://mail/content/mail-offline.js"/>
|
||||
<script type="application/x-javascript" src="chrome://editor/content/editor.js"/>
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/messengercompose/MsgComposeCommands.js"/>
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/abCommon.js"/>
|
||||
<!--script type="application/x-javascript" src="chrome://editor/content/EditorCommandsDebug.js"/-->
|
||||
<script type="application/x-javascript" src="chrome://mail/content/messengercompose/MsgComposeCommands.js"/>
|
||||
|
||||
<!-- drag and drop -->
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsDragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/messengercompose/addressingWidgetOverlay.js"/>
|
||||
|
||||
<commandset id="composeCommands">
|
||||
<commandset id="msgComposeCommandUpdate"
|
||||
commandupdater="true"
|
||||
|
@ -133,8 +133,8 @@
|
|||
<command id="cmd_quoteMessage" oncommand="goDoCommand('cmd_quoteMessage')"/>
|
||||
<command id="cmd_rewrap" oncommand="goDoCommand('cmd_rewrap')"/>
|
||||
<command id="cmd_insert"/>
|
||||
<command id="toggleABUICmd" oncommand="toggleABUI(this);" type="checkbox" autoCheck="false"/>
|
||||
</commandset>
|
||||
|
||||
<broadcasterset id="composeBroadcasters">
|
||||
<broadcaster id="Editor:Throbber" busy="false"/>
|
||||
<broadcaster id="Communicator:WorkMode"/>
|
||||
|
@ -163,6 +163,9 @@
|
|||
<key id="key_selectAll"/>
|
||||
<key id="key_find" key="&findCmd.key;" command="cmd_find" modifiers="accel"/>
|
||||
<key id="key_findNext" key="&findAgainCmd.key;" command="cmd_findNext" modifiers="accel"/>
|
||||
<key id="key_findPrev" key="&findPrevCmd.key;" command="cmd_findPrev" modifiers="accel, shift"/>
|
||||
<key keycode="&findAgainCmd.key2;" command="cmd_findNext"/>
|
||||
<key keycode="&findPrevCmd.key2;" command="cmd_findPrev" modifiers="shift"/>
|
||||
|
||||
<!-- Options Menu -->
|
||||
<!-- key id="key_selectAddresses" xulkey="true" key="&selectAddressCmd.key;" command="cmd_selectAddress"/ -->
|
||||
|
@ -196,7 +199,8 @@
|
|||
<menuseparator/>
|
||||
<menuitem label="&addAttachment.label;" accesskey="&addAttachment.accesskey;" command="cmd_attachFile"/>
|
||||
</popup>
|
||||
<toolbox>
|
||||
|
||||
<toolbox class="toolbox-top" id="headers-box">
|
||||
<menubar id="compose-menubar" grippytooltiptext="&menuBar.tooltip;">
|
||||
<menu id="menu_File">
|
||||
<menupopup id="menu_FilePopup">
|
||||
|
@ -245,9 +249,10 @@
|
|||
<menuseparator/>
|
||||
<menuitem label="&findCmd.label;" key="key_find" accesskey="&findCmd.accesskey;" command="cmd_find"/>
|
||||
<menuitem label="&findAgainCmd.label;" key="key_findNext" accesskey="&findAgainCmd.accesskey;" command="cmd_findNext"/>
|
||||
<menuitem label="&findPrevCmd.label;" key="key_findPrev" accesskey="&findPrevCmd.accesskey;" command="cmd_findPrev"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="&accountManagerCmd.label;" accesskey="&accountManagerCmd.accesskey;" command="cmd_account"/>
|
||||
<menuitem id="menu_preferences" oncommand="goPreferences('messenger.xul','chrome://messenger/content/pref-mailnews.xul','mailnews')"/>
|
||||
<menuitem id="menu_preferences" oncommand="goDoCommand('cmd_preferences')"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu_View">
|
||||
|
@ -266,8 +271,8 @@
|
|||
command="cmd_showFormatToolbar"
|
||||
accesskey="&showFormatToolbarCmd.accesskey;"
|
||||
checked="true"/>
|
||||
<!-- no statusbar to hide <menuitem id="menu_showTaskbar"
|
||||
type="checkbox"/-->
|
||||
<menuitem id="menu_showTaskbar"
|
||||
type="checkbox"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuseparator/>
|
||||
|
@ -369,7 +374,10 @@
|
|||
<menuitem label="&attachVCardCmd.label;" disabled="true" accesskey="&attachVCardCmd.accesskey;" oncommand="AttachVCard()"/-->
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu_Help"/>
|
||||
<!--menu id="debugMenu"/-->
|
||||
<menu id="tasksMenu"/>
|
||||
<menu id="windowMenu"/>
|
||||
<menu id="menu_Help"/>
|
||||
</menubar>
|
||||
|
||||
<toolbar class="toolbar-primary chromeclass-toolbar" id="composeToolbar" persist="collapsed" grippytooltiptext="&mailToolbar.tooltip;">
|
||||
|
@ -382,35 +390,25 @@
|
|||
now_tooltiptext="&sendButton.tooltip;"
|
||||
later_label="&sendLaterCmd.label;"
|
||||
later_tooltiptext="&sendlaterButton.tooltip;">
|
||||
<observes element="Communicator:WorkMode" attribute="offline"/>
|
||||
</toolbarbutton>
|
||||
<toolbarseparator class="toolbarseparator-primary"/>
|
||||
<toolbarbutton class="toolbarbutton-1"
|
||||
id="button-sendlater" label="&sendLaterCmd.label;"
|
||||
tooltiptext="&sendlaterButton.tooltip;"
|
||||
command="cmd_sendLater"/>
|
||||
id="button-address" label="&addressButton.label;"
|
||||
tooltiptext="&addressButton.tooltip;"
|
||||
command="cmd_selectAddress"/>
|
||||
<toolbarbutton class="toolbarbutton-1"
|
||||
command="toggleABUICmd"
|
||||
id="button-address" label="&addressButton.label;"
|
||||
oncommand="toggleABUI();"/>
|
||||
<toolbarbutton class="toolbarbutton-1"
|
||||
id="button-attach" label="&attachButton.label;"
|
||||
id="button-attach" label="&attachButton.label;"
|
||||
tooltiptext="&attachButton.tooltip;"
|
||||
command="cmd_attachFile"/>
|
||||
<toolbarbutton class="toolbarbutton-1"
|
||||
id="spellingButton" label="&spellButton.label;"
|
||||
id="spellingButton" label="&spellingButton.label;"
|
||||
command="cmd_spelling"/>
|
||||
<toolbarseparator id="saveSeparator" class="toolbarseparator-primary"/>
|
||||
<toolbarbutton class="toolbarbutton-1"
|
||||
id="button-save" label="&saveButton.label;"
|
||||
id="button-save" label="&saveButton.label;"
|
||||
tooltiptext="&saveButton.tooltip;"
|
||||
command="cmd_saveDefault"/>
|
||||
<toolbarbutton id="button-more" label="&moreButton.label;" type="menu" class="toolbarbutton-1">
|
||||
<menupopup id="more-menu" popupalign="topright" popupanchor="bottomright" onpopupshowing="updateRowMenuitems();">
|
||||
<menuitem id="returnReceiptMenuButton" type="checkbox" label="&returnReceiptMenu.label;" accesskey="&returnReceiptMenu.accesskey;" checked="false" oncommand="ToggleReturnReceipt(event.target)"/>
|
||||
<menuitem id="toggleCcRowVisibility" label="&toggleCcRow.label;" accesskey="&toggleCcRow.label;"
|
||||
type="checkbox" oncommand="toggleCcRowVisibility();"/>
|
||||
<menuitem id="toggleBccRowVisibility" label="&toggleBccRow.label;" accesskey="&toggleBccRow.label;"
|
||||
type="checkbox" oncommand="toggleBccRowVisibility();"/>
|
||||
</menupopup>
|
||||
</toolbarbutton>
|
||||
<spacer flex="1"/>
|
||||
<hbox id="throbber-box" align="center">
|
||||
<button id="navigator-throbber"
|
||||
|
@ -420,126 +418,31 @@
|
|||
</hbox>
|
||||
</hbox>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<hbox flex="1">
|
||||
<vbox id="abPane" hidden="true">
|
||||
<!--
|
||||
<hbox align="center">
|
||||
<label value="Find:"/>
|
||||
<textbox id="searchInput" flex="1"
|
||||
oninput="onAbSearchInput(false);"
|
||||
onkeypress="onAbSearchKeyPress(event);"/>
|
||||
</hbox>
|
||||
-->
|
||||
<hbox id="searchBox" persist="collapsed" align="center">
|
||||
<menulist id="addressbookList" flex="1"
|
||||
ref="moz-abdirectory://"
|
||||
datasources="rdf:addressdirectory"
|
||||
oncommand="ChangeAddressbookListing();"
|
||||
hidden="true">
|
||||
<template>
|
||||
<rule nc:IsMailList="false">
|
||||
<menupopup>
|
||||
<menuitem label="rdf:http://home.netscape.com/NC-rdf#DirName" uri="..."/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
<label id="searchCriteria" value="&abFind.label;"/>
|
||||
<textbox id="searchInput"
|
||||
oninput="onAbSearchInput(false);"
|
||||
onkeypress="onAbSearchKeyPress(event);"/>
|
||||
<button style="max-width: 5em;" id="clear" label="&clearButton.label;" disabled="true"
|
||||
oncommand="onAbClearSearch();"
|
||||
tooltiptext="&clearButton.tooltip;"/>
|
||||
</hbox>
|
||||
<tree id="abResultsTree" flex="1" enableColumnDrag="true" class="plain"
|
||||
onselect="this.view.selectionChanged();"
|
||||
hidecolumnpicker="true" style="min-width: 80px;">
|
||||
|
||||
<treecols id="abResultsTreeCols">
|
||||
<!-- these column ids must match up to the mork column names, except for GeneratedName, see nsIAddrDatabase.idl -->
|
||||
<treecol id="GeneratedName" class="sortDirectionIndicator"
|
||||
persist="hidden ordinal width" flex="1" label="&GeneratedName.label;" primary="true"/>
|
||||
</treecols>
|
||||
<treechildren ondraggesture="nsDragAndDrop.startDrag(event, abResultsPaneObserver);"
|
||||
ondblclick="addMailHeader('to');"/>
|
||||
</tree>
|
||||
<hbox align="center" pack="center">
|
||||
<button style="max-width: 3em;" label="&toBtn.label;" oncommand="addMailHeader('to');"/>
|
||||
<button style="max-width: 3em;" label="&ccBtn.label;" oncommand="addMailHeader('cc');"/>
|
||||
<button style="max-width: 3em;" label="&bccBtn.label;" oncommand="addMailHeader('bcc');"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<splitter id="abSplitter" hidden="true"/>
|
||||
<vbox flex="1">
|
||||
<toolbar id="MsgHeadersToolbar" persist="collapsed"
|
||||
|
||||
<toolbar id="MsgHeadersToolbar" persist="collapsed" flex="1"
|
||||
tborient="vertical" tbalign="stretch"
|
||||
grippytooltiptext="&addressBar.tooltip;">
|
||||
<hbox id="msgheaderstoolbar-box" flex="1">
|
||||
<!-- no go, since it is in the toolbar
|
||||
<vbox align="start" pack="start">
|
||||
<toolbarbutton style="list-style-image: url('chrome://messenger/skin/icons/ab-toggle.gif'); max-width: 30px !important;"
|
||||
oncommand="toggleABUI();"
|
||||
command="toggleABUICmd"/>
|
||||
<vbox flex="1" id="addresses-box">
|
||||
<hbox align="center">
|
||||
<label value="&fromAddr.label;" accesskey="&fromAddr.accesskey;" control="msgIdentity"/>
|
||||
<menulist id="msgIdentity" label="..." flex="1" oncommand="LoadIdentity(false);">
|
||||
<menupopup id="msgIdentityPopup"/>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<listbox id="addressingWidget" flex="1"/>
|
||||
<hbox align="center">
|
||||
<label value="&subject.label;" accesskey="&subject.accesskey;" control="msgSubject"/>
|
||||
<textbox id="msgSubject" flex="1" class="toolbar" disableonsend="true"
|
||||
oninput="gContentChanged=true;SetComposeWindowTitle();"
|
||||
onkeypress="subjectKeyPress(event);" />
|
||||
</hbox>
|
||||
</vbox>
|
||||
-->
|
||||
<vbox id="addresses-box" flex="1">
|
||||
<grid>
|
||||
<columns>
|
||||
<column/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row flex="1">
|
||||
<hbox align="center" pack="end">
|
||||
<label value="&toField.label;"/>
|
||||
</hbox>
|
||||
<textbox id="toField" type="autocomplete" flex="1"
|
||||
searchSessions="addrbook" timeout="20" maxrows="4"
|
||||
autoFill="true" autoFillAfterMatch="true" forceComplete="true"
|
||||
minResultsForPopup="3"
|
||||
onerrorcommand="awRecipientErrorCommand(eventParam, this)"
|
||||
oninput="gContentChanged=true; setupAutocomplete();" disableonsend="true"/>
|
||||
</row>
|
||||
<row flex="1" id="ccRow">
|
||||
<hbox align="center" pack="end">
|
||||
<label value="&ccField.label;"/>
|
||||
</hbox>
|
||||
<textbox id="ccField" type="autocomplete" flex="1"
|
||||
searchSessions="addrbook" timeout="20" maxrows="4"
|
||||
autoFill="true" autoFillAfterMatch="true" forceComplete="true"
|
||||
minResultsForPopup="3"
|
||||
onerrorcommand="awRecipientErrorCommand(eventParam, this)"
|
||||
oninput="gContentChanged=true; setupAutocomplete();" disableonsend="true"/>
|
||||
</row>
|
||||
<row flex="1" id="bccRow" hidden="true">
|
||||
<hbox align="center" pack="end">
|
||||
<label value="&bccField.label;"/>
|
||||
</hbox>
|
||||
<textbox id="bccField" type="autocomplete" flex="1"
|
||||
searchSessions="addrbook" timeout="20" maxrows="4"
|
||||
autoFill="true" autoFillAfterMatch="true" forceComplete="true"
|
||||
minResultsForPopup="3"
|
||||
onerrorcommand="awRecipientErrorCommand(eventParam, this)"
|
||||
oninput="gContentChanged=true; setupAutocomplete();" disableonsend="true"/>
|
||||
</row>
|
||||
<row flex="1">
|
||||
<hbox align="center" pack="end">
|
||||
<label value="&subject.label;" accesskey="&subject.accesskey;" control="msgSubject"/>
|
||||
</hbox>
|
||||
<textbox id="msgSubject" flex="1" disableonsend="true"
|
||||
onkeyup="SetComposeWindowTitle();"
|
||||
onkeypress="subjectKeyPress(event);"
|
||||
oninput="gContentChanged=true;"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</vbox>
|
||||
<vbox id="attachments-box" hidden="true">
|
||||
<splitter id="attachmentbucket-sizer" collapse="after"/>
|
||||
<vbox id="attachments-box">
|
||||
<label id="attachmentBucketText" value="&attachments.label;" crop="right"
|
||||
accesskey="&attachments.accesskey;" control="attachmentBucket"/>
|
||||
<listbox id="attachmentBucket" flex="1" rows="2"
|
||||
<listbox seltype="multiple" id="attachmentBucket" flex="1" rows="4"
|
||||
context="msgComposeAttachmentContext"
|
||||
onkeypress="if (event.keyCode == 8 || event.keyCode == 46) RemoveSelectedAttachment();"
|
||||
onclick="AttachmentBucketClicked(event);"
|
||||
|
@ -549,13 +452,11 @@
|
|||
</vbox>
|
||||
</hbox>
|
||||
</toolbar>
|
||||
|
||||
|
||||
<!-- These toolbar items get filled out from the editorOverlay -->
|
||||
<toolbar class="chromeclass-toolbar" id="FormatToolbar" persist="collapsed" tbautostretch="never" grippytooltiptext="&formatToolbar.tooltip;">
|
||||
<menulist id="fontsMenulist" style="max-width: 15em;">
|
||||
<observes element="cmd_fontFace" attribute="state" onbroadcast="onFontFaceChange(this.parentNode, 'cmd_fontFace')"/>
|
||||
<menupopup id="FontFacePopup" oncommand="doStatefulCommand('cmd_fontFace', event.target.value);"/>
|
||||
</menulist>
|
||||
<menulist id="ParagraphSelect"/>
|
||||
<menulist id="FontFaceSelect"/>
|
||||
<stack id="ColorButtons"/>
|
||||
<toolbarbutton id="DecreaseFontSizeButton"/>
|
||||
<toolbarbutton id="IncreaseFontSizeButton"/>
|
||||
|
@ -566,28 +467,32 @@
|
|||
<toolbarseparator class="toolbarseparator-standard"/>
|
||||
<toolbarbutton id="ulButton"/>
|
||||
<toolbarbutton id="olButton"/>
|
||||
<toolbarbutton id="outdentButton"/>
|
||||
<toolbarbutton id="indentButton"/>
|
||||
<toolbarseparator class="toolbarseparator-standard"/>
|
||||
<toolbarbutton id="AlignLeftItem" oncommand="doStatefulCommand('cmd_align', 'left')">
|
||||
<observes element="cmd_align" attribute="disabled"/>
|
||||
</toolbarbutton>
|
||||
<toolbarbutton id="AlignCenterItem" oncommand="doStatefulCommand('cmd_align', 'center')">
|
||||
<observes element="cmd_align" attribute="disabled"/>
|
||||
</toolbarbutton>
|
||||
<toolbarbutton id="AlignRightItem" oncommand="doStatefulCommand('cmd_align', 'right')">
|
||||
<observes element="cmd_align" attribute="disabled"/>
|
||||
</toolbarbutton>
|
||||
<toolbarseparator class="toolbarseparator-standard"/>
|
||||
<toolbarbutton id="InsertLinkItem" class="insert" command="cmd_link"/>
|
||||
<toolbarbutton id="InsertImageItem" class="insert" command="cmd_image"/>
|
||||
<toolbarbutton id="AlignPopupButton"/>
|
||||
<toolbarbutton id="InsertPopupButton"/>
|
||||
<toolbarbutton id="smileButtonMenu" padwithspace="true"/>
|
||||
<spacer flex="1"/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
|
||||
<splitter id="compose-toolbar-sizer" onmousedown="awSizerListen()" collapse="after"/>
|
||||
|
||||
<!-- The mail message body frame -->
|
||||
<vbox id="appcontent" flex="1">
|
||||
<editor type="content-primary" id="content-frame" src="about:blank" name="browser.message.body" flex="1"
|
||||
onkeypress="editorKeyPress(event);" context="msgComposeContext"/>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</hbox>
|
||||
|
||||
<statusbar id="status-bar" class="chromeclass-status">
|
||||
<statusbarpanel id="component-bar"/>
|
||||
<statusbarpanel id="statusText" flex="1"/>
|
||||
<statusbarpanel class="statusbarpanel-progress">
|
||||
<progressmeter id="compose-progressmeter" class="progressmeter-statusbar" mode="normal" value="0"/>
|
||||
</statusbarpanel>
|
||||
<statusbarpanel checkfunc="MailCheckBeforeOfflineChange()" id="offline-status" class="statusbarpanel-iconic"/>
|
||||
</statusbar>
|
||||
|
||||
</window>
|
||||
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
messenger.jar:
|
||||
+ content/messenger/messengercompose/addressingWidgetOverlay.js (content/addressingWidgetOverlay.js)
|
||||
+ content/messenger/messengercompose/addressingWidgetOverlay.xul (content/addressingWidgetOverlay.xul)
|
||||
+ content/messenger/messengercompose/MsgComposeCommands.js (content/MsgComposeCommands.js)
|
||||
+ content/messenger/messengercompose/messengercompose.xul (content/messengercompose.xul)
|
||||
+ content/messenger/addressbook/abCommon.js (content/abCommon.js)
|
||||
mail.jar:
|
||||
content/mail/messengercompose/compose.xul (content/compose.xul)
|
||||
content/mail/messengercompose/MsgComposeCommands.js (content/MsgComposeCommands.js)
|
||||
content/mail/messengercompose/addressingWidgetOverlay.js (content/addressingWidgetOverlay.js)
|
||||
content/mail/messengercompose/addressingWidgetOverlay.xul (content/addressingWidgetOverlay.xul)
|
||||
content/mail/messengercompose/insertMenuSmileyOverlay.xul (content/insertMenuSmileyOverlay.xul)
|
||||
content/mail/messengercompose/askSendFormat.js (content/askSendFormat.js)
|
||||
content/mail/messengercompose/askSendFormat.xul (content/askSendFormat.xul)
|
||||
content/mail/messengercompose/sendProgress.xul (content/sendProgress.xul)
|
||||
content/mail/messengercompose/sendProgress.js (content/sendProgress.js)
|
||||
content/mail/messengercompose/mailComposeBindings.xml (content/mailComposeBindings.xml)
|
||||
content/mail/messengercompose/mailComposeExtrasOverlay.xul (content/mailComposeExtrasOverlay.xul)
|
||||
content/mail/addressbook/abCommon.js (content/abCommon.js)
|
||||
|
||||
toolkit.jar:
|
||||
content/global/autocomplete.xml (content/autocomplete.xml)
|
||||
|
||||
en-US.jar:
|
||||
+ locale/en-US/messenger/messengercompose/messengercompose.dtd (locale/messengercompose.dtd)
|
||||
locale/en-US/mail/messengercompose/messengercompose.dtd (locale/messengercompose.dtd)
|
||||
locale/en-US/mail/messengercompose/addressingWidgetOverlay.dtd (locale/addressingWidgetOverlay.dtd)
|
||||
locale/en-US/mail/messengercompose/askSendFormat.dtd (locale/askSendFormat.dtd)
|
||||
locale/en-US/mail/messengercompose/sendProgress.dtd (locale/sendProgress.dtd)
|
||||
locale/en-US/mail/messengercompose/composeMsgs.properties (locale/composeMsgs.properties)
|
||||
|
||||
classic.jar:
|
||||
skin/classic/messenger/icons/more-disabled.gif (skin/more-disabled.gif)
|
||||
skin/classic/messenger/icons/more-hover.gif (skin/more-hover.gif)
|
||||
skin/classic/messenger/icons/more-normal.gif (skin/more-normal.gif)
|
||||
skin/classic/messenger/icons/more-select.gif (skin/more-select.gif)
|
||||
skin/classic/messenger/icons/sendlater-disabled.gif (skin/sendlater-disabled.gif)
|
||||
skin/classic/messenger/icons/sendlater-hover.gif (skin/sendlater-hover.gif)
|
||||
skin/classic/messenger/icons/sendlater-normal.gif (skin/sendlater-normal.gif)
|
||||
skin/classic/messenger/icons/sendlater-select.gif (skin/sendlater-select.gif)
|
||||
skin/classic/messenger/messengercompose/messengercompose.css (skin/messengercompose.css)
|
||||
|
|
|
@ -11,57 +11,62 @@
|
|||
<!-- menu items: the . means that the menu item isn't implemented yet -->
|
||||
|
||||
<!-- File menu items -->
|
||||
<!ENTITY newMessage.label "Message">
|
||||
<!ENTITY newMessage.accesskey "M">
|
||||
<!ENTITY newMessage.label "Message">
|
||||
<!ENTITY newMessage.accesskey "M">
|
||||
<!ENTITY saveCmd.label "Save">
|
||||
<!ENTITY saveCmd.key "S">
|
||||
<!ENTITY saveCmd.accesskey "s">
|
||||
<!ENTITY saveCmd.key "S">
|
||||
<!ENTITY saveCmd.accesskey "s">
|
||||
<!ENTITY saveAsCmd.label "Save As">
|
||||
<!ENTITY saveAsCmd.accesskey "A">
|
||||
<!ENTITY saveAsCmd.accesskey "A">
|
||||
<!ENTITY saveAsFileCmd.label "File...">
|
||||
<!ENTITY saveAsFileCmd.accesskey "F">
|
||||
<!ENTITY saveAsFileCmd.accesskey "F">
|
||||
<!ENTITY saveAsDraftCmd.label "Draft">
|
||||
<!ENTITY saveAsDraftCmd.accesskey "D">
|
||||
<!ENTITY saveAsDraftCmd.accesskey "D">
|
||||
<!ENTITY saveAsTemplateCmd.label "Template">
|
||||
<!ENTITY saveAsTemplateCmd.accesskey "T">
|
||||
<!ENTITY saveAsTemplateCmd.accesskey "T">
|
||||
<!ENTITY attachFileCmd.label "Attach File...">
|
||||
<!ENTITY attachFileCmd.key "">
|
||||
<!ENTITY attachFileCmd.accesskey "F">
|
||||
<!ENTITY attachFileCmd.key "">
|
||||
<!ENTITY attachFileCmd.accesskey "F">
|
||||
<!ENTITY attachPageCmd.label "Attach Web Page...">
|
||||
<!ENTITY attachPageCmd.accesskey "W">
|
||||
<!ENTITY attachPageCmd.accesskey "W">
|
||||
<!ENTITY sendNowCmd.label "Send Now">
|
||||
<!ENTITY sendCmd.keycode "VK_RETURN">
|
||||
<!ENTITY sendNowCmd.accesskey "d">
|
||||
<!ENTITY sendCmd.keycode "VK_RETURN">
|
||||
<!ENTITY sendNowCmd.accesskey "d">
|
||||
<!ENTITY sendLaterCmd.label "Send Later">
|
||||
<!ENTITY sendLaterCmd.keycode "VK_RETURN">
|
||||
<!ENTITY sendLaterCmd.accesskey "L">
|
||||
<!ENTITY sendLaterCmd.keycode "VK_RETURN">
|
||||
<!ENTITY sendLaterCmd.accesskey "L">
|
||||
<!ENTITY printSetupCmd.label "Page Setup...">
|
||||
<!ENTITY printSetupCmd.accesskey "u">
|
||||
<!ENTITY printSetupCmd.accesskey "u">
|
||||
<!ENTITY printCmd.label "Print...">
|
||||
<!ENTITY printCmd.key "P">
|
||||
<!ENTITY printCmd.accesskey "P">
|
||||
<!ENTITY printCmd.key "P">
|
||||
<!ENTITY printCmd.accesskey "P">
|
||||
<!ENTITY closeCmd.label "Close">
|
||||
|
||||
<!-- Edit menu items -->
|
||||
<!ENTITY findCmd.label "Find and Replace...">
|
||||
<!ENTITY findCmd.key "F">
|
||||
<!ENTITY findCmd.accesskey "F">
|
||||
<!ENTITY findCmd.key "F">
|
||||
<!ENTITY findCmd.accesskey "F">
|
||||
<!ENTITY findAgainCmd.label "Find Again">
|
||||
<!ENTITY findAgainCmd.key "G">
|
||||
<!ENTITY findAgainCmd.accesskey "g">
|
||||
<!ENTITY findAgainCmd.key "G">
|
||||
<!ENTITY findAgainCmd.accesskey "g">
|
||||
<!ENTITY findAgainCmd.key2 "VK_F3">
|
||||
<!ENTITY findPrevCmd.label "Find Previous">
|
||||
<!ENTITY findPrevCmd.key "G">
|
||||
<!ENTITY findPrevCmd.key2 "VK_F3">
|
||||
<!ENTITY findPrevCmd.accesskey "v">
|
||||
<!ENTITY accountManagerCmd.label "Mail & Newsgroups Account Settings...">
|
||||
<!ENTITY accountManagerCmd.accesskey "m">
|
||||
<!ENTITY accountManagerCmd.accesskey "m">
|
||||
|
||||
<!-- View menu items -->
|
||||
<!ENTITY showComposeToolbarCmd.label "Mail Toolbar">
|
||||
<!ENTITY showComposeToolbarCmd.accesskey "o">
|
||||
<!ENTITY showComposeToolbarCmd.accesskey "o">
|
||||
<!ENTITY showFormatToolbarCmd.label "Formatting Toolbar">
|
||||
<!ENTITY showFormatToolbarCmd.accesskey "F">
|
||||
<!ENTITY showFormatToolbarCmd.accesskey "F">
|
||||
<!ENTITY showParagraphMarksCmd.label ".Show Paragraph Marks">
|
||||
<!ENTITY pageSourceCmd.label ".Page Source">
|
||||
<!ENTITY pageSourceCmd.accesskey "u">
|
||||
<!ENTITY pageSourceCmd.accesskey "u">
|
||||
<!ENTITY pageInfoCmd.label ".Page Info">
|
||||
<!ENTITY pageInfoCmd.accesskey "I">
|
||||
<!ENTITY pageInfoCmd.accesskey "I">
|
||||
<!ENTITY dcharMenu.label "Character Set">
|
||||
<!ENTITY dcharIso1Cmd.label "Western (ISO-8859-1)">
|
||||
<!ENTITY dcharIso2Cmd.label "Central European (ISO-8859-2)">
|
||||
|
@ -84,6 +89,28 @@
|
|||
<!ENTITY dcharArmCmd.label "Armenian (ARMSCII-8)">
|
||||
<!ENTITY dcharDEFAULT.label "Set Default Mail Send Character Set">
|
||||
|
||||
<!-- Insert menu items -->
|
||||
<!ENTITY insertSmiley.label "Smiley">
|
||||
<!ENTITY insertSmiley.accesskey "S">
|
||||
|
||||
<!-- Insert Smiley Menu items -->
|
||||
<!ENTITY smiley1Cmd.label "Smile">
|
||||
<!ENTITY smiley1Cmd.accesskey "S">
|
||||
<!ENTITY smiley2Cmd.label "Frown">
|
||||
<!ENTITY smiley2Cmd.accesskey "F">
|
||||
<!ENTITY smiley3Cmd.label "Wink">
|
||||
<!ENTITY smiley3Cmd.accesskey "W">
|
||||
<!ENTITY smiley4Cmd.label "Tongue-out">
|
||||
<!ENTITY smiley4Cmd.accesskey "T">
|
||||
<!ENTITY smiley5Cmd.label "Laughing">
|
||||
<!ENTITY smiley5Cmd.accesskey "L">
|
||||
<!ENTITY smiley6Cmd.label "Embarrassed">
|
||||
<!ENTITY smiley6Cmd.accesskey "E">
|
||||
<!ENTITY smiley7Cmd.label "Undecided">
|
||||
<!ENTITY smiley7Cmd.accesskey "U">
|
||||
<!ENTITY SmileButton.tooltip "Insert a smiley face">
|
||||
|
||||
|
||||
<!-- Format menu items -->
|
||||
<!ENTITY formatMenu.label "Format">
|
||||
<!ENTITY formatMenu.accesskey "o">
|
||||
|
@ -98,19 +125,19 @@
|
|||
<!--LOCALIZATION NOTE attachVCardCmd.label Don't translate the term 'vCard' -->
|
||||
<!ENTITY addSignatureCmd.label ".Add Signature File">
|
||||
<!ENTITY attachVCardCmd.label ".Include Personal Card (vCard)">
|
||||
<!ENTITY attachVCardCmd.accesskey "P">
|
||||
<!ENTITY attachVCardCmd.accesskey "P">
|
||||
|
||||
<!ENTITY quoteCmd.label "Quote Message">
|
||||
<!ENTITY quoteCmd.accesskey "Q">
|
||||
<!ENTITY quoteCmd.accesskey "Q">
|
||||
<!ENTITY editRewrapCmd.label "Rewrap">
|
||||
<!ENTITY editRewrapCmd.accesskey "R">
|
||||
<!ENTITY selectAddressCmd.label "Select Addresses...">
|
||||
<!ENTITY selectAddressCmd.key "">
|
||||
<!ENTITY selectAddressCmd.accesskey "c">
|
||||
<!ENTITY selectAddressCmd.key "">
|
||||
<!ENTITY selectAddressCmd.accesskey "c">
|
||||
|
||||
<!ENTITY checkSpellingCmd.label "Check Spelling...">
|
||||
<!ENTITY checkSpellingCmd.key "K">
|
||||
<!ENTITY checkSpellingCmd.accesskey "S">
|
||||
<!ENTITY checkSpellingCmd.key "K">
|
||||
<!ENTITY checkSpellingCmd.accesskey "S">
|
||||
|
||||
<!ENTITY priorityMenu.label "Priority">
|
||||
<!ENTITY priorityMenu.accesskey "p">
|
||||
|
@ -166,6 +193,10 @@
|
|||
<!-- Toolbar items -->
|
||||
<!ENTITY sendButton.label "Send">
|
||||
<!ENTITY quoteButton.label "Quote">
|
||||
<!ENTITY addressButton.label "Address">
|
||||
<!ENTITY attachButton.label "Attach">
|
||||
<!ENTITY spellingButton.label "Spelling">
|
||||
<!ENTITY saveButton.label "Save">
|
||||
<!ENTITY stopButton.label "Stop">
|
||||
|
||||
<!--tooltips-->
|
||||
|
@ -203,26 +234,3 @@
|
|||
<!ENTITY selectAll.accesskey "A">
|
||||
<!ENTITY addAttachment.label "Add Attachment">
|
||||
<!ENTITY addAttachment.accesskey "t">
|
||||
|
||||
<!ENTITY toField.label "To:">
|
||||
<!ENTITY ccField.label "Cc:">
|
||||
<!ENTITY bccField.label "Bcc:">
|
||||
|
||||
<!ENTITY toBtn.label "To">
|
||||
<!ENTITY ccBtn.label "Cc">
|
||||
<!ENTITY bccBtn.label "Bcc">
|
||||
|
||||
<!ENTITY toggleCcRow.label "Show Cc Field">
|
||||
<!ENTITY toggleCcRow.accesskey "c">
|
||||
<!ENTITY toggleBccRow.label "Show Bcc Field">
|
||||
<!ENTITY toggleBccRow.accesskey "B">
|
||||
|
||||
<!ENTITY abFind.label "Find:">
|
||||
|
||||
<!ENTITY addressButton.label "Addresses">
|
||||
<!ENTITY attachButton.label "Add Attachments">
|
||||
<!ENTITY spellButton.label "Check Spelling">
|
||||
<!ENTITY saveButton.label "Save Draft">
|
||||
<!ENTITY moreButton.label "More">
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче