diff --git a/editor/ui/composer/content/editorOverlay.xul b/editor/ui/composer/content/editorOverlay.xul index 30f39077ce0..66c2f301d2b 100644 --- a/editor/ui/composer/content/editorOverlay.xul +++ b/editor/ui/composer/content/editorOverlay.xul @@ -649,7 +649,7 @@ tooltip="aTooltip" tooltiptext="&anchorToolbarCmd.tooltip;"/> - + @@ -669,7 +669,7 @@ - + @@ -681,7 +681,7 @@ - + diff --git a/editor/ui/dialogs/content/EdAdvancedEdit.xul b/editor/ui/dialogs/content/EdAdvancedEdit.xul index f3ad0dfd764..47995b5a014 100644 --- a/editor/ui/dialogs/content/EdAdvancedEdit.xul +++ b/editor/ui/dialogs/content/EdAdvancedEdit.xul @@ -71,11 +71,10 @@ - - + + - diff --git a/editor/ui/dialogs/content/EdTableProps.xul b/editor/ui/dialogs/content/EdTableProps.xul index 05a6d1181b6..6fe3654b207 100644 --- a/editor/ui/dialogs/content/EdTableProps.xul +++ b/editor/ui/dialogs/content/EdTableProps.xul @@ -47,10 +47,9 @@ - - - - + + + diff --git a/extensions/wallet/cookieviewer/CookieViewer.xul b/extensions/wallet/cookieviewer/CookieViewer.xul index 44a455daa45..d183f7add5d 100644 --- a/extensions/wallet/cookieviewer/CookieViewer.xul +++ b/extensions/wallet/cookieviewer/CookieViewer.xul @@ -48,7 +48,6 @@ diff --git a/extensions/wallet/signonviewer/SignonViewer.xul b/extensions/wallet/signonviewer/SignonViewer.xul index 30ec917e2b7..fe1bc9427ae 100644 --- a/extensions/wallet/signonviewer/SignonViewer.xul +++ b/extensions/wallet/signonviewer/SignonViewer.xul @@ -49,7 +49,6 @@ diff --git a/mailnews/addrbook/resources/content/abCardOverlay.xul b/mailnews/addrbook/resources/content/abCardOverlay.xul index 6403bf077be..367f255f721 100644 --- a/mailnews/addrbook/resources/content/abCardOverlay.xul +++ b/mailnews/addrbook/resources/content/abCardOverlay.xul @@ -32,11 +32,10 @@ Rights Reserved. - - + + - @@ -45,9 +44,7 @@ Rights Reserved. - - <text value="&Name.box;"/> - + <box align="vertical" style="width:100%"> <box orient="horizontal"> @@ -111,9 +108,7 @@ Rights Reserved. </titledbox> <titledbox orient="vertical" flex="1"> - <title> - <text value="&Phones.box;"/> - + <box align="vertical" style="width:100%"> <box orient="horizontal"> @@ -159,9 +154,7 @@ Rights Reserved. <box index="address" align="vertical" flex="1"> <titledbox orient="vertical" flex="1"> - <title> - <text value="&Home.box;"/> - + <box align="vertical" style="width:100%"> @@ -214,9 +207,7 @@ Rights Reserved. </titledbox> <titledbox orient="vertical" style="width:100%"> - <title> - <text value="&Work.box;"/> - + <box align="vertical" style="width:100%"> @@ -295,19 +286,19 @@ Rights Reserved. <box index="other" align="vertical" flex="1"> <box align="vertical" class="alignBoxWithFieldset"> - <box orient="horizontal" flex="1"> + <box flex="1"> <text for="Custom1" value="&Custom1.label;" class="CardEditLabel"/> <textfield id="Custom1" flex="1"/> </box> - <box orient="horizontal" flex="1"> + <box flex="1"> <text for="Custom2" value="&Custom2.label;" class="CardEditLabel"/> <textfield id="Custom2" flex="1"/> </box> - <box orient="horizontal" flex="1"> + <box flex="1"> <text for="Custom3" value="&Custom3.label;" class="CardEditLabel"/> <textfield id="Custom3" flex="1"/> </box> - <box orient="horizontal" flex="1"> + <box flex="1"> <text for="Custom4" value="&Custom4.label;" class="CardEditLabel"/> <textfield id="Custom4" flex="1"/> </box> diff --git a/mailnews/compose/resources/content/MsgComposeCommands.js b/mailnews/compose/resources/content/MsgComposeCommands.js index 95e2f66f546..3eae5205bdc 100644 --- a/mailnews/compose/resources/content/MsgComposeCommands.js +++ b/mailnews/compose/resources/content/MsgComposeCommands.js @@ -1594,3 +1594,74 @@ function LoadIdentity(startup) } } } + + +function subjectKeyPress(event) +{ + switch(event.keyCode) { + case 9: + if (!event.shiftKey) { + window._content.focus(); + event.preventDefault; + } + break; + case 13: + window._content.focus(); + break; + } +} + +function editorKeyPress(event) +{ + if (event.keyCode == 9) { + if (event.shiftKey) { + document.getElementById('msgSubject').focus(); + event.preventDefault(); + } + } +} + +function AttachmentBucketClicked(event) +{ + if (event.target.localName != 'treecell') + goDoCommand('cmd_attachFile'); +} + +var attachmentBucketObserver = { + onDrop: function (aEvent, aData, aDragSession) + { + var aData = aData.length ? aData[0] : aData; + if (aData.flavour != "application/x-moz-file") + return; + + var dataObj = aData.data.data.QueryInterface(Components.interfaces.nsIFile); + if (!dataObj) + return; + + var fileURL = nsJSComponentManager.createInstance("component://netscape/network/standard-url", + "nsIFileURL"); + fileURL.file = dataObj; + AddAttachment(fileURL.spec); + }, + + onDragOver: function (aEvent, aFlavour, aDragSession) + { + if (aFlavour != "application/x-moz-file") + return; + var attachmentBucket = document.getElementById("attachmentBucket"); + attachmentBucket.setAttribute("dragover", "true"); + }, + + onDragExit: function (aEvent, aDragSession) + { + var attachmentBucket = document.getElementById("attachmentBucket"); + attachmentBucket.removeAttribute("dragover"); + }, + + getSupportedFlavours: function () + { + var flavourList = { }; + flavourList["application/x-moz-file"] = { width: 2, iid: "nsIFile" }; + return flavourList; + }, +}; diff --git a/mailnews/compose/resources/content/addressingWidgetOverlay.js b/mailnews/compose/resources/content/addressingWidgetOverlay.js index aadad9f8b42..09df1bf20b4 100644 --- a/mailnews/compose/resources/content/addressingWidgetOverlay.js +++ b/mailnews/compose/resources/content/addressingWidgetOverlay.js @@ -46,7 +46,7 @@ function awGetSelectItemIndex(itemData) selectElementIndexTable = new Object(); selectElem = document.getElementById("msgRecipientType#1"); for (var i = 0; i < selectElem.childNodes[0].childNodes.length; i ++) - { + { aData = selectElem.childNodes[0].childNodes[i].getAttribute("data"); selectElementIndexTable[aData] = i; } @@ -311,6 +311,24 @@ function awReturnHit(inputElement) } } +function awDeleteHit(inputElement) +{ + var row = awGetRowByInputElement(inputElement); + var nextRow = awGetInputElement(row+1); + var index = 1; + if (!nextRow) { + nextRow = awGetInputElement(row-1); + index = -1; + } + if (nextRow) { + awSetFocus(row+index, nextRow) + if (row) + awRemoveRow(row); + } + else + inputElement.value = ""; +} + function awInputChanged(inputElement) { dump("awInputChanged\n"); @@ -613,3 +631,41 @@ function awSetAutoComplete(rowNumber) selectElem = awGetPopupElement(rowNumber); _awSetAutoComplete(selectElem, inputElem) } + +function awRecipientKeyPress(event, element) +{ + switch(event.keyCode) { + case 13: + awReturnHit(element); + break; + case 9: + awTabFromRecipient(element, event); + break; + case 46: + case 8: + if (!element.value && !this.lastVal) + awDeleteHit(element); + break; + } + this.lastVal = element.value; +} + +function awKeyPress(event, treeElement) +{ + switch(event.keyCode) { + case 46: + case 8: + var selItems = treeElement.selectedItems; + var kids = document.getElementById("addressWidgetBody"); + for (var i = 0; i < selItems.length; i++) { + // must not delete the last item + if (kids.childNodes.length > 1) + kids.removeChild(selItems[i]); + else + selItems[i].firstChild.lastChild.childNodes[1].value = ""; + top.MAX_RECIPIENTS--; + } + break; + } +} + diff --git a/mailnews/compose/resources/content/addressingWidgetOverlay.xul b/mailnews/compose/resources/content/addressingWidgetOverlay.xul index c989e7d40f7..c7d47980e2a 100644 --- a/mailnews/compose/resources/content/addressingWidgetOverlay.xul +++ b/mailnews/compose/resources/content/addressingWidgetOverlay.xul @@ -27,67 +27,51 @@ Rights Reserved. <script language="JavaScript" src="chrome://messenger/content/messengercompose/addressingWidgetOverlay.js"/> - <!-- Addressing Widget --> - <box id="addressingWidget" - align="vertical" - > - - <tree id="addressingWidgetTree" - class="addressingWidget" - rows="3" - onclick="awClickEmptySpace(event.target, true)" - ondragover="return DragOverTree(event);" - ondragdrop="return DropOnAddressingWidgetTree(event);" - > - - <treecolgroup> - <treecol flex="1"/> - </treecolgroup> - - <treechildren flex="1" id="addressWidgetBody"> - <treeitem> - <treerow> - <treecell allowevents="true"> - <menulist id="msgRecipientType#1" - onclick="awNotAnEmptyArea(event)" - oncommand="contentChanged=true; - awSetAutoComplete(this.id.slice(this.id.lastIndexOf('#') + 1));"> - <menupopup> - <menuitem data="addr_to" value="&toAddr.label;"/> - <menuitem data="addr_cc" value="&ccAddr.label;"/> - <menuitem data="addr_bcc" value="&bccAddr.label;"/> - <menuitem data="addr_reply" value="&replyAddr.label;"/> - <menuitem data="addr_newsgroups" value="&newsgroupsAddr.label;"/> - <menuitem data="addr_followup" value="&followupAddr.label;"/> - </menupopup> - </menulist> - - <box autostretch="never"> - <image onclick="awNotAnEmptyArea(event)"/> - </box> - - <textfield id="msgRecipient#1" - flex="100%" - class="addressingWidget" - style="width:0px" - onkeypress="if (event.keyCode == 13) - awReturnHit(this); - else if (event.keyCode == 9) - awTabFromRecipient(this, event); - " - onchange="contentChanged=true;" - onclick="awNotAnEmptyArea(event);" - autocomplete="true" - timeout="300" - searchSessionType="addrbook" - displayMenu="true" - /> - </treecell> - </treerow> - </treeitem> - - </treechildren> - </tree> - </box> - + <!-- Addressing Widget --> + <tree id="addressingWidgetTree" style="height: 60px; width: 0px;" + class="addressingWidget inset" multiple="true" + onkeypress="awKeyPress(event, this);" + onclick="awClickEmptySpace(event.target, true)" + ondragover="return DragOverTree(event);" + ondragdrop="return DropOnAddressingWidgetTree(event);"> + + <treecolgroup> + <treecol flex="2"/> + <treecol flex="12"/> + </treecolgroup> + + <treechildren flex="1" id="addressWidgetBody"> + <treeitem> + <treerow> + <treecell class="treecell-addressingWidget" allowevents="true"> + <menulist id="msgRecipientType#1" class="aw-menulist menulist-compact" + onclick="awNotAnEmptyArea(event)" + oncommand="awDisableAutoComplete(this.id.slice(this.id.lastIndexOf('#') + 1));"> + <menupopup> + <menuitem data="addr_to" value="&toAddr.label;"/> + <menuitem data="addr_cc" value="&ccAddr.label;"/> + <menuitem data="addr_bcc" value="&bccAddr.label;"/> + <menuitem data="addr_reply" value="&replyAddr.label;"/> + <menuitem data="addr_newsgroups" value="&newsgroupsAddr.label;"/> + <menuitem data="addr_followup" value="&followupAddr.label;"/> + </menupopup> + </menulist> + </treecell> + <treecell class="treecell-addressingWidget"> + <box autostretch="never"> + <image onclick="awNotAnEmptyArea(event)" class="person-icon"/> + </box> + <textfield id="msgRecipient#1" flex="1" + class="plain textfield-addressingWidget" + style="width:0px;" allowevents="true" + onkeypress="awRecipientKeyPress(event, this)" + onclick="awNotAnEmptyArea(event);" + autocomplete="true" timeout="300" + searchSessionType="addrbook" displayMenu="true"/> + </treecell> + </treerow> + </treeitem> + + </treechildren> + </tree> </overlay> diff --git a/mailnews/compose/resources/content/askSendFormat.js b/mailnews/compose/resources/content/askSendFormat.js index 31bbf4a824e..84733f53195 100644 --- a/mailnews/compose/resources/content/askSendFormat.js +++ b/mailnews/compose/resources/content/askSendFormat.js @@ -1,132 +1,47 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ var msgCompSendFormat = Components.interfaces.nsIMsgCompSendFormat; -var msgCompConvertible = Components.interfaces.nsIMsgCompConvertible; -var changeDefault = false; /* Set default selection following - the recommendation. Some people think, the - default should *always* be the same. */ var param = null; function Startup() { - if (window.arguments && window.arguments[0]) + if (window.arguments && window.arguments[0] && window.arguments[0]) { - var defaultElement = document.getElementById("SendPlainTextOnly"); - // used only if changeDefault == false - // maybe make that a (default) pref - param = window.arguments[0]; - param.abort = true; //if the user hit the close box, we will abort. + param.abort = true; //if the user hit the close box, we will abort. if (param.action) { - // Set the question label - var labeldeck = document.getElementById("mailSendFormatExplanation"); - var icon = document.getElementById("convertDefault"); - switch (param.convertible) - { - case msgCompConvertible.Plain: - // We shouldn't be here at all - labeldeck.setAttribute("index", 1); - // No icon - break; - case msgCompConvertible.Yes: - labeldeck.setAttribute("index", 1); - icon.setAttribute("id", "convertYes"); - break; - case msgCompConvertible.Altering: - labeldeck.setAttribute("index", 2); - icon.setAttribute("id", "convertAltering"); - break; - case msgCompConvertible.No: - labeldeck.setAttribute("index", 3); - icon.setAttribute("id", "convertNo"); - break; - } - - // Set the default radio array value and recommendation - var group = document.getElementById("mailDefaultHTMLAction"); - var element; - var recommlabels = document.getElementById("hiddenLabels"); - var label; - var setrecomm = false; - switch (param.action) - { - case msgCompSendFormat.AskUser: - //setrecomm = false; - break; - case msgCompSendFormat.PlainText: - element = document.getElementById("SendPlainTextOnly"); - //label = recommlabels.getAttribute("plainTextOnlyRecommendedLabel"); - label = document.getElementById("plainTextOnlyRecommended"); - // elements for "recommended" are a workaround for bug 49623 - setrecomm = true; - break; - case msgCompSendFormat.Both: - element = document.getElementById("SendPlainTextAndHtml"); - //label = recommlabels.getAttribute("plainTextAndHtmlRecommendedLabel"); - label = document.getElementById("plainTextAndHtmlRecommended"); - setrecomm = true; - break; - case msgCompSendFormat.HTML: - element = document.getElementById("SendHtmlOnly"); - //label = recommlabels.getAttribute("htmlOnlyRecommendedLabel"); - label = document.getElementById("htmlOnlyRecommended"); - setrecomm = true; - break; - } - if (setrecomm) - { - /* - dump(element.getAttribute("value")); - element.setAttribute("value", label); - element.setAttribute("value", "foo"); - dump(element.getAttribute("value")); - */ - label.removeAttribute("hidden"); - if (changeDefault) - { - group.selectedItem = element; - group.data = element.data; - } - } - if (!changeDefault) - { - group.selectedItem = defaultElement; - group.data = defaultElement.data; - } + //Set the default radio array value + var group = document.getElementById("mailDefaultHTMLAction"); + var element = document.getElementById("SendPlainTextAndHtml"); + group.selectedItem= element; + group.data = element.data; //change the button label - var buttonlabels = document.getElementById("okCancelButtons"); + labels = document.getElementById("okCancelButtons"); element = document.getElementById("ok"); - element.setAttribute("value", buttonlabels.getAttribute("button1Label")); + element.setAttribute("value", labels.getAttribute("button1Label")); element = document.getElementById("cancel"); - element.setAttribute("value", buttonlabels.getAttribute("button2Label")); + element.setAttribute("value", labels.getAttribute("button2Label")); /* element = document.getElementById("Button2"); - element.setAttribute("value", buttonlabels.getAttribute("button3Label")); + element.setAttribute("value", labels.getAttribute("button3Label")); element.removeAttribute("hidden"); element.setAttribute("disabled", "true"); element = document.getElementById("Button3"); - element.setAttribute("value", buttonlabels.getAttribute("button4Label")); + element.setAttribute("value", labels.getAttribute("button4Label")); element.removeAttribute("hidden"); element.setAttribute("disabled", "true"); */ //set buttons action - doSetOKCancel(Send, Cancel, Recipients, Help); - -/* XXX Don't deliberately move windos around, compare bug 28260. Also, for any reason, the window will finally sit outside the visible screen for me. /BenB - //At this point, we cannot position the window because it still doesn't have a width and a height. - //Let move it out of the screen and then move it back at the right position, this after the first refresh. - window.moveTo(32000, 32000); - setTimeout("moveToAlertPosition();", 0); -*/ -// moveToAlertPosition(); + doSetOKCancel(Send, DontSend, Recipients, Help); + moveToAlertPosition(); } } else { dump("error, no return object registered\n"); } + } function Send() @@ -144,7 +59,7 @@ function Send() return true; } -function Cancel() +function DontSend() { if (param) param.abort = true; diff --git a/mailnews/compose/resources/content/askSendFormat.xul b/mailnews/compose/resources/content/askSendFormat.xul index ffe7cf4a1b8..ec7f38aab2e 100644 --- a/mailnews/compose/resources/content/askSendFormat.xul +++ b/mailnews/compose/resources/content/askSendFormat.xul @@ -1,59 +1,35 @@ -<?xml version="1.0"?><!-- -*- Mode: SGML; tab-width: 4; indent-tabs-mode: nil; -*- --> +<?xml version="1.0"?> -<?xml-stylesheet href="chrome://messenger/skin/messengercompose/messengercompose.css" type="text/css"?> +<?xml-stylesheet href="chrome://messenger/skin/messengercompose/messengercompose.css" type="text/css"?> -<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?> +<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?> <!DOCTYPE window SYSTEM "chrome://messenger/locale/messengercompose/askSendFormat.dtd"> -<window id="askSendFormat" - title="&windowTitle.label;" +<window title="&windowTitle.label;" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" - xmlns:html="http://www.w3.org/1999/xhtml" onload="Startup()" - orient="vertical" + align="vertical" class="dialog" - style="user-input: ignore" - > + > -<script language="JavaScript" src="chrome://messenger/content/messengercompose/askSendFormat.js"/> +<script language="JavaScript" src="chrome://messenger/content/messengercompose/askSendFormat.js"/> -<keyset id="keyset"/> + <keyset id="keyset"/> <spring style="height:0.5em"/> <box align="horizontal"> <spring style="width:10px"/> - <box orient="vertical" valign="middle"> - <image id="convertDefault" /> - </box> - <spring style="width:10px"/> - <box orient="vertical" flex="1"> - <html>&recipient.label;</html> - <deck id="mailSendFormatExplanation"> - <box orient="vertical"><html>&convertibleDefault.label;</html></box> <!-- Hack: <box> is a workaround for bug 44513. --> - <box orient="vertical"><html>&convertibleYes.label;</html></box> - <box orient="vertical"><html>&convertibleAltering.label;</html></box> - <box orient="vertical"><html>&convertibleNo.label;</html></box> - </deck> - <html>&question.label;</html> + <box align="vertical"> + <text value="&question.label;" /> + <spring style="height:1em"/> <radiogroup id="mailDefaultHTMLAction" orient="vertical" autostretch="never"> - <box orient="horizontal"> - <radio group="mailDefaultHTMLAction" id="SendPlainTextAndHtml" data="0" value="&plainTextAndHtml.label;"/> - <html id="plainTextAndHtmlRecommended" hidden="true" style="margin-top: 4px;">&recommended.label;</html> - <!-- Hack: box and html are workarounds for bug 49623 --> - </box> - <box orient="horizontal"> + <radio group="mailDefaultHTMLAction" id="SendPlainTextAndHtml" data="0" value="&plainTextAndHtml.label;"/> <radio group="mailDefaultHTMLAction" id="SendPlainTextOnly" data="1" value="&plainTextOnly.label;"/> - <html id="plainTextOnlyRecommended" hidden="true" style="margin-top: 4px;">&recommended.label;</html> - </box> - <box orient="horizontal"> <radio group="mailDefaultHTMLAction" id="SendHtmlOnly" data="2" value="&htmlOnly.label;"/> - <html id="htmlOnlyRecommended" hidden="true" style="margin-top: 4px;">&recommended.label;</html> - </box> </radiogroup> - </box> <spring style="width:10px"/> </box> @@ -61,15 +37,9 @@ <spring style="height:1em"/> <box id="okCancelButtons" button1Label="&send.label;" - button2Label="&cancel.label;" + button2Label="&dontSend.label;" button3Label="&recipients.label;" button4Label="&help.label;" /> - <box id="hiddenLabels" - plainTextAndHtmlRecommendedLabel="&plainTextAndHtmlRecommended.label;" - plainTextOnlyRecommendedLabel="&plainTextOnlyRecommended.label;" - htmlOnlyRecommendedLabel="&htmlOnlyRecommended.label;" - /> - <spring style="height:1em" /> - + <spring style="height:0.5em" /> </window> diff --git a/mailnews/compose/resources/content/messengercompose.xul b/mailnews/compose/resources/content/messengercompose.xul index 3b36f2dc795..074248d3cdf 100644 --- a/mailnews/compose/resources/content/messengercompose.xul +++ b/mailnews/compose/resources/content/messengercompose.xul @@ -19,6 +19,7 @@ - Rights Reserved. - - Contributor(s): + - Ben Goodger <ben@netscape.com> (ass'td polish fixes) --> <?xul-overlay href="chrome://global/content/charsetOverlay.xul"?> @@ -26,50 +27,37 @@ <?xul-overlay href="chrome://messenger/content/messengercompose/addressingWidgetOverlay.xul"?> <?xul-overlay href="chrome://editor/content/editorOverlay.xul"?> +<?xml-stylesheet href="chrome://messenger/skin/" type="text/css"?> <?xml-stylesheet href="chrome://messenger/skin/messengercompose/messengercompose.css" type="text/css"?> -<!-- -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) 1998-1999 Netscape Communications Corporation. All -Rights Reserved. ---> - <!DOCTYPE window SYSTEM "chrome://messenger/locale/messengercompose/messengercompose.dtd"> <window id="main-window" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:nc="http://home.netscape.com/NC-rdf#" - onunload="ComposeUnload()" - onload="ComposeLoad()" + onunload="ComposeUnload()" + onload="ComposeLoad()" onclose="return ComposeCanClose()" - title="&msgComposeWindow.title;" - windowtype="msgcompose" - align="vertical" - width="640" height="480" - persist="screenX screenY width height" - > + title="&msgComposeWindow.title;" + windowtype="msgcompose" + orient="vertical" + width="640" height="480" + persist="screenX screenY width height"> -<script language="JavaScript" src="chrome://messenger/content/accountUtils.js"/> -<script language="JavaScript" src="chrome://messenger/content/widgetglue.js"/> -<script language="JavaScript" src="chrome://editor/content/editor.js"/> -<script language="JavaScript" src="chrome://editor/content/ComposerCommands.js"/> -<script language="JavaScript" src="chrome://editor/content/EditorCommandsDebug.js"/> -<script language="JavaScript" src="chrome://global/content/strres.js"/> -<script language="JavaScript" src="chrome://messenger/content/messengercompose/MsgComposeCommands.js"/> +<script language="JavaScript" src="chrome://global/content/strres.js"></script> +<script language="JavaScript" src="chrome://messenger/content/accountUtils.js"></script> +<script language="JavaScript" src="chrome://messenger/content/widgetglue.js"></script> +<script language="JavaScript" src="chrome://editor/content/editor.js"></script> +<script language="JavaScript" src="chrome://editor/content/ComposerCommands.js"></script> +<script language="JavaScript" src="chrome://editor/content/EditorCommandsDebug.js"></script> +<script language="JavaScript" src="chrome://messenger/content/messengercompose/MsgComposeCommands.js"></script> + + +<!-- drag and drop --> +<script language="JavaScript" src="chrome://global/content/nsDragAndDrop.js"></script> +<script language="JavaScript" src="chrome://global/content/nsJSSupportsUtils.js"></script> +<script language="JavaScript" src="chrome://global/content/nsJSComponentManager.js"></script> +<script language="JavaScript" src="chrome://global/content/nsTransferable.js"></script> <commands id="commands"> <commandset id="msgComposeCommandUpdate" @@ -183,7 +171,7 @@ Rights Reserved. <!-- broadcaster id="cmd_quoteMessage" oncommand="goDoCommand('cmd_quoteMessage')"/ --> <broadcaster id="cmd_rewrap" oncommand="goDoCommand('cmd_rewrap')"/> - <broadcaster id="Editor:Throbber" busy="false"/> + <broadcaster id="Editor:Throbber" busy="false"/> </broadcasterset> <broadcaster id="args" value="editorType=default"/> @@ -244,334 +232,282 @@ Rights Reserved. <popup id="BackColorPopup"/> </popupset> -<!-- box id="toolbar" align="vertical" style="width:100%;height:100%" --> -<toolbox class="toolbox-top"> - <menubar> - <menu id="menu_File"> - <menupopup id="menu_FilePopup"> - <menuitem value="&newMessage.label;" accessKey="&newMessage.accesskey;" key="key_newMessage" observes="cmd_new"/> - <menu id="menu_New"> - <menupopup id="menu_NewPopup"> - <menuitem id="menu_newNavigator"/> - <menuitem id="menu_newEditor"/> + <toolbox class="toolbox-top"> + <menubar id="compose-menubar"> + <menu id="menu_File"> + <menupopup id="menu_FilePopup"> + <menuitem value="&newMessage.label;" accessKey="&newMessage.accesskey;" key="key_newMessage" observes="cmd_new"/> + <menu id="menu_New"> + <menupopup id="menu_NewPopup"> + <menuitem id="menu_newNavigator"/> + <menuitem id="menu_newEditor"/> + </menupopup> + </menu> + <menuitem value="&attachFileCmd.label;" accesskey="&attachFileCmd.accesskey;" observes="cmd_attachFile"/> + <menuitem value="&attachPageCmd.label;" accesskey="&attachPageCmd.accesskey;" observes="cmd_attachPage"/> + <menuseparator/> + <menuitem id="menu_close"/> + <menuitem value="&saveCmd.label;" key="key_save" observes="cmd_saveDefault"/> + <menu value="&saveAsCmd.label;" accessKey="&saveAsCmd.accesskey;"> + <menupopup> + <menuitem value="&saveAsFileCmd.label;" accessKey="&saveAsFileCmd.accesskey;" observes="cmd_saveAsFile"/> + <menuseparator/> + <menuitem value="&saveAsDraftCmd.label;" accessKey="&saveAsDraftCmd.accesskey;" observes="cmd_saveAsDraft"/> + <menuitem value="&saveAsTemplateCmd.label;" accessKey="&saveAsTemplateCmd.accesskey;" observes="cmd_saveAsTemplate"/> + </menupopup> + </menu> + <menuseparator/> + <menuitem value="&sendNowCmd.label;" accessKey="&sendNowCmd.accesskey;" observes="cmd_sendNow"/> + <menuitem value="&sendLaterCmd.label;" accessKey="&sendLaterCmd.accesskey;" observes="cmd_sendLater"/> + <menuseparator/> </menupopup> </menu> - <menuitem value="&attachFileCmd.label;" accesskey="&attachFileCmd.accesskey;" observes="cmd_attachFile"/> - <menuitem value="&attachPageCmd.label;" accesskey="&attachPageCmd.accesskey;" observes="cmd_attachPage"/> - <menuseparator/> - - <menuitem id="menu_close"/> - <menuitem value="&saveCmd.label;" key="key_save" observes="cmd_saveDefault"/> - <menu value="&saveAsCmd.label;" accessKey="&saveAsCmd.accesskey;"> - <menupopup> - <menuitem value="&saveAsFileCmd.label;" accessKey="&saveAsFileCmd.accesskey;" observes="cmd_saveAsFile"/> - <menuseparator/> - <menuitem value="&saveAsDraftCmd.label;" accessKey="&saveAsDraftCmd.accesskey;" observes="cmd_saveAsDraft"/> - <menuitem value="&saveAsTemplateCmd.label;" accessKey="&saveAsTemplateCmd.accesskey;" observes="cmd_saveAsTemplate"/> - </menupopup> - </menu> - <menuseparator/> - - <menuitem value="&sendNowCmd.label;" accessKey="&sendNowCmd.accesskey;" observes="cmd_sendNow"/> - <menuitem value="&sendLaterCmd.label;" accessKey="&sendLaterCmd.accesskey;" observes="cmd_sendLater"/> - <menuseparator/> - </menupopup> - </menu> - - <menu id="menu_Edit"> - <menupopup oncreate="EditorInitEditMenu()"> - <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 value="&findCmd.label;" key="key_find" accesskey="&findCmd.accesskey;" observes="cmd_find"/> - <menuitem value="&findAgainCmd.label;" key="key_findNext" accesskey="&findAgainCmd.accesskey;" observes="cmd_findNext"/> - <menuseparator/> - <menuitem value="&accountManagerCmd.label;" accesskey="&accountManagerCmd.accesskey;" observes="cmd_account"/> - <menuitem id="menu_preferences" observes="cmd_preferences"/> - </menupopup> - </menu> - <menu id="menu_View"> - <menupopup> - <menu id="menu_Toolbars"> - <menupopup> - <menuitem id="menu_showComposeToolbar" - value="&showComposeToolbarCmd.label;" - observes="cmd_showComposeToolbar" - accesskey="&showComposeToolbarCmd.accesskey;" - checked="true"/> - <menuitem id="menu_showFormatToolbar" - value="&showFormatToolbarCmd.label;" - observes="cmd_showFormatToolbar" - accesskey="&showFormatToolbarCmd.accesskey;" - checked="true"/> - <menuitem id="menu_showTaskbar"/> - </menupopup> - </menu> - <menuseparator/> - <!-- - <menuitem value="&pageInfoCmd.label;" disabled="true" accesskey="&pageInfoCmd.accesskey;" cmd="nsCmd:ComposeNYI"/> - <menuseparator/> - --> - <menu id = "maileditCharsetMenu" /> - </menupopup> - </menu> - - - <!-- entire menus comes from editorOverlay --> - <menu id="insertMenu" observes="cmd_insert"/> - - <!-- menu items come from editorOverlay --> - <menu id="formatMenu" value="&formatMenu.label;" accesskey="&formatMenu.accesskey;" observes="cmd_format"> - <menupopup id="formatMenuPopup"> - <menu id="tableMenu"/> - <menuseparator/> - <menuitem id="objectProperties"/> - <menuitem id="colorsAndBackground"/> - </menupopup> - </menu> - - - <menu value="&optionsMenu.label;" accesskey="&optionsMenu.accesskey;"> - <menupopup> - <menuitem value="&selectAddressCmd.label;" accesskey="&selectAddressCmd.accesskey;" observes="cmd_selectAddress"/> - <menuitem value="&checkSpellingCmd.label;" id="menu_checkspelling" accesskey="&checkSpellingCmd.accesskey;" key="key_checkspelling" observes="cmd_spelling"/> - <!--menuitem value=""eOrigCmd.label;" accesskey=""eOrigCmd.accesskey;" observes="cmd_quoteMessage"/--> - <menuitem value="&editRewrapCmd.label;" observes="cmd_rewrap" oncommand="editorShell.Rewrap(false)"/> - <menuseparator/> - - <menu value="&outputFormatMenu.label;" observes="cmd_outputFormat"> - <menupopup> - <menuitem type="radio" name="output_format" value="&askmeFormatCmd.label;" id="1" checked="true"/> - <menuitem type="radio" name="output_format" value="&plainTextFormatCmd.label;" id="2"/> - <menuitem type="radio" name="output_format" value="&htmlFormatCmd.label;" id="3"/> - <menuitem type="radio" name="output_format" value="&bothFormatCmd.label;" id="4"/> - </menupopup> - </menu> - <menu value="&priorityMenu.label;" oncommand="PriorityMenuSelect(event.target);"> - <menupopup> - <menuitem type="radio" name="priority" value="&lowestPriorityCmd.label;" id="lowest"/> - <menuitem type="radio" name="priority" value="&lowPriorityCmd.label;" id="low"/> - <menuitem type="radio" name="priority" value="&normalPriorityCmd.label;" id="normal" checked="true"/> - <menuitem type="radio" name="priority" value="&highPriorityCmd.label;" id="high"/> - <menuitem type="radio" name="priority" value="&highestPriorityCmd.label;" id="highest"/> - </menupopup> - </menu> - - <menu value="&fileCarbonCopyCmd.label;" id="fccMenu" datasources="rdf:mailnewsfolders rdf:msgaccountmanager" ref="msgaccounts:/" rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild"> - <menupopup/> - <template> - <rule nc:CanFileMessages="true" iscontainer="true" isempty="false"> + <menu id="menu_Edit"> + <menupopup oncreate="EditorInitEditMenu()"> + <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 value="&findCmd.label;" key="key_find" accesskey="&findCmd.accesskey;" observes="cmd_find"/> + <menuitem value="&findAgainCmd.label;" key="key_findNext" accesskey="&findAgainCmd.accesskey;" observes="cmd_findNext"/> + <menuseparator/> + <menuitem value="&accountManagerCmd.label;" accesskey="&accountManagerCmd.accesskey;" observes="cmd_account"/> + <menuitem id="menu_preferences" observes="cmd_preferences"/> + </menupopup> + </menu> + <menu id="menu_View"> + <menupopup> + <menu id="menu_Toolbars"> <menupopup> - <!--menuitem value="[current selection]" disabled="true"/--> - <!--menuseparator/--> - <menu uri="..." class="folderMenuItem" value="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" - ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"> - <menupopup> - <menuitem uri="..." value="&fileHereMenu.label;" - 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" - ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType" /> - <menuseparator/> - </menupopup> - </menu> + <menuitem id="menu_showComposeToolbar" + value="&showComposeToolbarCmd.label;" + observes="cmd_showComposeToolbar" + accesskey="&showComposeToolbarCmd.accesskey;" + checked="true"/> + <menuitem id="menu_showFormatToolbar" + value="&showFormatToolbarCmd.label;" + observes="cmd_showFormatToolbar" + accesskey="&showFormatToolbarCmd.accesskey;" + checked="true"/> + <menuitem id="menu_showTaskbar"/> </menupopup> - </rule> - <rule nc:CanFileMessages="false" nc:ServerType="nntp"> - <!-- don't show nntp servers in the file and copies menus --> - </rule> - <rule nc:CanFileMessages="false" iscontainer="true" isempty="false"> - <!-- note, there is no "file here" --> + </menu> + <menuseparator/> + <menu id = "maileditCharsetMenu" /> + </menupopup> + </menu> + + <menu id="insertMenu" observes="cmd_insert"/> + + <menu id="formatMenu" value="&formatMenu.label;" accesskey="&formatMenu.accesskey;" observes="cmd_format"> + <menupopup id="formatMenuPopup"> + <menu id="tableMenu"/> + <menuseparator/> + <menuitem id="objectProperties"/> + <menuitem id="colorsAndBackground"/> + </menupopup> + </menu> + + <menu value="&optionsMenu.label;" accesskey="&optionsMenu.accesskey;"> + <menupopup> + <menuitem value="&selectAddressCmd.label;" accesskey="&selectAddressCmd.accesskey;" observes="cmd_selectAddress"/> + <menuitem value="&checkSpellingCmd.label;" id="menu_checkspelling" accesskey="&checkSpellingCmd.accesskey;" key="key_checkspelling" observes="cmd_spelling"/> + <menuitem value=""eOrigCmd.label;" accesskey=""eOrigCmd.accesskey;" observes="cmd_quoteMessage"/> + <menuitem value="&editRewrapCmd.label;" observes="cmd_rewrap" oncommand="editorShell.Rewrap(false)"/> + <menuseparator/> + <menu value="&outputFormatMenu.label;" observes="cmd_outputFormat"> <menupopup> - <menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name" + <menuitem type="radio" name="output_format" value="&askmeFormatCmd.label;" id="1" checked="true"/> + <menuitem type="radio" name="output_format" value="&plainTextFormatCmd.label;" id="2"/> + <menuitem type="radio" name="output_format" value="&htmlFormatCmd.label;" id="3"/> + <menuitem type="radio" name="output_format" value="&bothFormatCmd.label;" id="4"/> + </menupopup> + </menu> + <menu value="&priorityMenu.label;" oncommand="PriorityMenuSelect(event.target);"> + <menupopup> + <menuitem type="radio" name="priority" value="&lowestPriorityCmd.label;" id="lowest"/> + <menuitem type="radio" name="priority" value="&lowPriorityCmd.label;" id="low"/> + <menuitem type="radio" name="priority" value="&normalPriorityCmd.label;" id="normal" checked="true"/> + <menuitem type="radio" name="priority" value="&highPriorityCmd.label;" id="high"/> + <menuitem type="radio" name="priority" value="&highestPriorityCmd.label;" id="highest"/> + </menupopup> + </menu> + <menu value="&fileCarbonCopyCmd.label;" id="fccMenu" datasources="rdf:mailnewsfolders rdf:msgaccountmanager" ref="msgaccounts:/" rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild"> + <menupopup/> + <template> + <rule nc:CanFileMessages="true" iscontainer="true" isempty="false"> + <menupopup> + <!--menuitem value="[current selection]" disabled="true"/> + <menuseparator/--> + <menu uri="..." class="folderMenuItem" value="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" + ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"> + <menupopup> + <menuitem uri="..." value="&fileHereMenu.label;" + 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" - ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"> - <menupopup/> - </menu> - </menupopup> - </rule> - <rule nc:CanFileMessages="true"> - <menupopup> - <menuitem uri="..." class="folderMenuItem" value="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" - ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/> - </menupopup> - </rule> - </template> - </menu> + ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType" /> + <menuseparator/> + </menupopup> + </menu> + </menupopup> + </rule> + <rule nc:CanFileMessages="false" nc:ServerType="nntp"/> + <rule nc:CanFileMessages="false" iscontainer="true" isempty="false"> + <menupopup> + <menu uri="..." class="folderMenuItem" value="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" + ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"> + <menupopup/> + </menu> + </menupopup> + </rule> + <rule nc:CanFileMessages="true"> + <menupopup> + <menuitem uri="..." class="folderMenuItem" value="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" + ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/> + </menupopup> + </rule> + </template> + </menu> + <!--menuseparator/> + <menuitem value="&addSignatureCmd.label;" disabled="true" oncommand=""/> + <menuitem value="&attachVCardCmd.label;" disabled="true" accesskey="&attachVCardCmd.accesskey;" oncommand="AttachVCard()"/--> + </menupopup> + </menu> + <menu id="debugMenu"/> + <menu id="tasksMenu"/> + <menu id="menu_Help"/> + </menubar> - <!-- - <menuseparator/> - <menuitem value="&addSignatureCmd.label;" disabled="true" oncommand=""/> - <menuitem value="&attachVCardCmd.label;" disabled="true" accesskey="&attachVCardCmd.accesskey;" oncommand="AttachVCard()"/> - --> - </menupopup> - </menu> - - <menu id="debugMenu"/> - <menu id="tasksMenu"/> - <menu id="menu_Help"/> - <spring flex="100%"/> - </menubar> <toolbar class="toolbar-primary" id="composeToolbar" persist="collapsed"> - <box id="toolbar_button_box"> - <button class="button-toolbar-2 top" id="button-send" value="&sendButton.label;" tooltip="aTooltip" tooltiptext="&sendButton.tooltip;" observes="cmd_sendNow"/> - <separator/> - <button class="button-toolbar-2 top" id="button-address" value="&addressButton.label;" tooltip="aTooltip" tooltiptext="&addressButton.tooltip;" observes="cmd_selectAddress"/> - <button class="button-toolbar-2 top" id="button-attach" value="&attachButton.label;" tooltip="aTooltip" tooltiptext="&attachButton.tooltip;" observes="cmd_attachFile"/> - <!--button class="button-toolbar-2 top" id="button-quote" value=""eButton.label;" tooltip="aTooltip" tooltiptext=""eButton.tooltip;" observes="cmd_quoteMessage"/--> - <button class="button-toolbar-2 top" id="spellingButton" value="&spellingButton.label;" observes="cmd_spelling"/> - <separator/> - <button class="button-toolbar-2 top" id="button-save" value="&saveButton.label;" tooltip="aTooltip" tooltiptext="&saveButton.tooltip;" observes="cmd_saveDefault"/> - <spring flex="100%"/> - </box> - <button class="plain" id="navigator-throbber" oncommand='goClickThrobber("compose.throbber.url")'> - <observes element="broadcaster_throbber" attribute="busy"/> - </button> - </toolbar> - - <toolbar id="MsgHeadersToolbar" persist="collapsed"> - <box align="horizontal" flex="100%"> - <spring style="width:0.5em; min-width:0.5em"/> - <box align="vertical" flex="75%" style="min-width: 20em"> - <spring style="height:0.5em"/> - <box align="horizontal"> - <text value="&fromAddr.label;"/> - <spring style="width:0.5em"/> - <menulist id="msgIdentity" value="..." flex="100%" oncommand="contentChanged=true; LoadIdentity(false);"> - <menupopup id="msgIdentityPopup" flex="100%"/> - </menulist> - </box> - <spring style="height:0.5em"/> - - <!-- addressing widget --> - <box id="addressingWidget"/> - <spring style="height:0.5em"/> - - <box align="horizontal"> - <text value="&subject.label;"/> - <spring style="width:0.5em"/> - <textfield id="msgSubject" type="text" flex="100%" - onkeyup="SetComposeWindowTitle(event.keyCode);" - onkeypress="if (event.keyCode == 9) { - if (event.shiftKey == false) { - window._content.focus(); - event.preventDefault(); - } - } - else - if (event.keyCode == 13) - window._content.focus();" - onchange="contentChanged=true;" - /> - </box> - <spring style="height:0.5em"/> - </box> - - <!--spring style="width:0.5em"/--> - <splitter id="gray_horizontal_splitter" persist="state"/> - - <box align="vertical" flex="25%"> - <spring style="height:0.5em"/> - <box align="vertical" style="height:1em"> - <text value="&attachments.label;" flex="100%"/> - </box> - <spring style="height:0.5em"/> - <box align="vertical" style="height:8.5em; background-color:white; border-top:solid black 1px"> - <tree id="attachmentBucket" flex="100%" style="width:0px" - onkeypress="if (event.keyCode == 8 || event.keyCode == 46) RemoveSelectedAttachment();" - onchange="contentChanged=true;"> - <treecolgroup> - <treecol flex="1"/> - </treecolgroup> - - <treechildren id="bucketBody" flex="1"> - </treechildren> - </tree> - </box> - <spring style="height:0.5em"/> - </box> - <spring style="width:0.5em; min-width:0.5em"/> - </box> - </toolbar> - - <!-- These toolbar items get filled out from the editorOverlay --> - <toolbar id="FormatToolbar" persist="collapsed" tbautostretch="always"> - <!-- We need this else menulists get stretched --> - <box autostretch="never"> - <menulist id="ParagraphSelect"/> - <menulist id="FontFaceSelect"/> - - <stack id="ColorButtons"/> + <button class="button-toolbar-2 top" + id="button-send" value="&sendButton.label;" + tooltip="aTooltip" tooltiptext="&sendButton.tooltip;" + observes="cmd_sendNow"/> + <toolbarseparator/> + <button class="button-toolbar-2 top" + id="button-address" value="&addressButton.label;" + tooltip="aTooltip" tooltiptext="&addressButton.tooltip;" + observes="cmd_selectAddress"/> + <button class="button-toolbar-2 top" + id="button-attach" value="&attachButton.label;" + tooltip="aTooltip" tooltiptext="&attachButton.tooltip;" + observes="cmd_attachFile"/> + <button class="button-toolbar-2 top" + id="spellingButton" value="&spellingButton.label;" + observes="cmd_spelling"/> + <toolbarseparator/> + <button class="button-toolbar-2 top" + id="button-save" value="&saveButton.label;" + tooltip="aTooltip" tooltiptext="&saveButton.tooltip;" + observes="cmd_saveDefault"/> + <spring flex="1"/> + <button id="navigator-throbber" + oncommand="goClickThrobber('compose.throbber.url')"> + <observes element="broadcaster_throbber" attribute="busy"/> + </button> + </toolbar> + + <toolbar id="MsgHeadersToolbar" persist="collapsed" tborient="vertical" tbautostretch="always" flex="1"> + <box id="msgheaderstoolbar-box" flex="1"> + <box orient="vertical" flex="75"> + <box autostretch="never"> + <text class="label" value="&fromAddr.label;"/> + <menulist id="msgIdentity" value="..." flex="1" oncommand="LoadIdentity(false);"> + <menupopup id="msgIdentityPopup"/> + </menulist> + </box> + <tree id="addressingWidgetTree" flex="1"/> + <box autostretch="never"> + <text class="label" value="&subject.label;"/> + <textfield id="msgSubject" type="text" flex="1" onkeyup="SetComposeWindowTitle(event.which);" + onkeypress="subjectKeyPress(event);" onchange="contentChanged=true;"/> + </box> + </box> + <splitter id="attachmentbucket-sizer" collapse="after"/> + <box orient="vertical" flex="25"> + <text class="label" id="attachmentBucketText" value="&attachments.label;" crop="right"/> + <tree id="attachmentBucket" class="inset toolbar-focustarget" flex="1" style="height: 0px; width: 0px;" + dragdroptree="true" + onkeypress="if (event.keyCode == 8 || event.keyCode == 46) RemoveSelectedAttachment();" + onchange="contentChanged=true;" + onclick="AttachmentBucketClicked(event);" + ondragover="nsDragAndDrop.dragOver(event, attachmentBucketObserver);" + ondragdrop="nsDragAndDrop.drop(event, attachmentBucketObserver);" + ondragexit="nsDragAndDrop.dragExit(event, attachmentBucketObserver);"> + + <treecolgroup> + <treecol flex="1"/> + </treecolgroup> + <treechildren id="bucketBody" flex="1"/> + </tree> + </box> </box> - + </toolbar> + + <!-- These toolbar items get filled out from the editorOverlay --> + <toolbar id="FormatToolbar" persist="collapsed" tbautostretch="never"> + <menulist id="ParagraphSelect"/> + <menulist id="FontFaceSelect"/> + <stack id="ColorButtons"/> <button id="DecreaseFontSizeButton"/> <button id="IncreaseFontSizeButton"/> - <toolbarseparator class="toolbarseparator-standard"/> - <button id="boldButton"/> <button id="italicButton"/> <button id="underlineButton"/> - <toolbarseparator class="toolbarseparator-standard"/> - <button id="ulButton"/> <button id="olButton"/> <button id="outdentButton"/> <button id="indentButton"/> - <toolbarseparator class="toolbarseparator-standard"/> - + <menu> <button id="AlignPopupButton"/> <menupopup id="AlignmentPopup"/> </menu> - + <menu> <button id="InsertPopupButton"/> - <menupopup id="InsertPopup"/> + <menupopup id="InsertPopup"/> </menu> <spring flex="1"/> </toolbar> -</toolbox> + </toolbox> - <!-- The mail message body frame --> - <editor type="content-primary" id="content-frame" src="about:blank" name="browser.message.body" flex="100%" - onkeypress="if (event.keyCode == 9) - if (event.shiftKey == true) { - document.getElementById('msgSubject').focus(); - event.preventDefault(); - }" - /> + <splitter id="compose-toolbar-sizer" collapse="after"/> - <!-- Some of this is from globarOverlay.xul --> - <statusbar id="status-bar"> - <statusbarpanel class="statusbarpanel-icononly" id="offline-status"/> - <progressmeter class="progressmeter-statusbar" statusbar="true" id="statusbar-icon" mode="normal" value="0"> - <observes element="Editor:Throbber" attribute="busy"/> - </progressmeter> - <statusbarpanel id="statusText" value="&defaultStatusText.label;" flex="1" crop="right"/> - </statusbar> + <!-- The mail message body frame --> + <box id="appcontent" orient="vertical" flex="1"> + <editor type="content-primary" id="content-frame" src="about:blank" name="browser.message.body" flex="1" + onkeypress="editorKeyPress(event);"/> + </box> + + <statusbar id="status-bar"> + <progressmeter class="progressmeter-statusbar" mode="normal" value="0"/> + <statusbarpanel id="statusText" flex="1" value="&defaultStatusText.label;"/> + </statusbar> + + <box id="taskbar"/> -<!-- /box --> - <box id="taskbar" class="toolbox-bottom"/> </window> diff --git a/mailnews/compose/resources/locale/en-US/askSendFormat.dtd b/mailnews/compose/resources/locale/en-US/askSendFormat.dtd index cc1d5c5c41f..18614e27f27 100644 --- a/mailnews/compose/resources/locale/en-US/askSendFormat.dtd +++ b/mailnews/compose/resources/locale/en-US/askSendFormat.dtd @@ -1,25 +1,13 @@ -<!--LOCALIZATION NOTE askSendFormat.dtd UI for dialog that asks the user, which format to use for sending a message --> +<!--LOCALIZATION NOTE askSendFormat.dtd UI for dialog that ask the user which format to use for sending a message --> <!ENTITY windowTitle.label "HTML Mail Question"> -<!ENTITY recipient.label "Some of the recipients are not listed as being able to receive HTML mail."> +<!ENTITY question.label "Some of the recipients are not listed as being able to receive HTML mail. Would you like to convert the message to plain text or send it in HTML anyway?"> -<!ENTITY convertibleDefault.label ""> -<!ENTITY convertibleYes.label "Your message can be converted to plaintext without losing information."> -<!ENTITY convertibleAltering.label "Your message can be converted to plaintext without losing important information. However, the plaintext version might look different from what you saw in the composer."> -<!ENTITY convertibleNo.label "However, you used formatting (e.g. colors) that cannot be converted to plaintext."> - -<!ENTITY question.label "Would you like to convert the message to plaintext or send it in HTML anyway?"> - -<!ENTITY plainTextAndHtml.label "Send in Plaintext and HTML"> -<!ENTITY plainTextOnly.label "Send in Plaintext Only"> +<!ENTITY plainTextAndHtml.label "Send in Plain Text and HTML"> +<!ENTITY plainTextOnly.label "Send in Plain Text Only"> <!ENTITY htmlOnly.label "Send in HTML Only"> -<!ENTITY plainTextAndHtmlRecommended.label "Send in Plaintext and HTML (recommended)"> -<!ENTITY plainTextOnlyRecommended.label "Send in Plaintext Only (recommended)"> -<!ENTITY htmlOnlyRecommended.label "Send in HTML Only (recommended)"> -<!ENTITY recommended.label "(recommended)"> - <!ENTITY send.label "Send"> -<!ENTITY cancel.label "Cancel"> +<!ENTITY dontSend.label "Don't Send"> <!ENTITY recipients.label "Recipients..."> <!ENTITY help.label "Help"> diff --git a/themes/classic/communicator/win/brand.css b/themes/classic/communicator/win/brand.css index eef1701b06c..a30548263c5 100644 --- a/themes/classic/communicator/win/brand.css +++ b/themes/classic/communicator/win/brand.css @@ -7,6 +7,7 @@ margin : 1px 2px 1px 10px; min-width : 0px; cursor : pointer; + user-focus : none; } #navigator-throbber > .button-internal-box diff --git a/themes/classic/global/win/menulist.css b/themes/classic/global/win/menulist.css index 2f69ef87b63..b04429e0a8d 100644 --- a/themes/classic/global/win/menulist.css +++ b/themes/classic/global/win/menulist.css @@ -130,6 +130,7 @@ .menulist-compact { behavior : url("chrome://global/skin/menulistBindings.xml#menulist-compact"); + user-focus : none; /* we don't take focus */ border-left : 1px solid threedhighlight; border-top : 1px solid threedhighlight; border-right : 1px solid threeddarkshadow; diff --git a/themes/classic/global/win/menulistBindings.xml b/themes/classic/global/win/menulistBindings.xml index 5f620840741..00d0baf3e54 100644 --- a/themes/classic/global/win/menulistBindings.xml +++ b/themes/classic/global/win/menulistBindings.xml @@ -38,7 +38,7 @@ <xul:box class="menulist-compact-internal-box" flex="1" autostretch="never"> <xul:image class="menulist-compact-dropmarker" inherits="disabled"/> <xul:spring flex="1"/> - <xul:text class="menulist-compact-text" inherits="value,accesskey,crop,disabled" crop="right" flex="1"/> + <xul:text class="menulist-compact-text" inherits="value,accesskey,crop,disabled" crop="right"/> </xul:box> </content> </binding> diff --git a/themes/classic/global/win/radio.css b/themes/classic/global/win/radio.css index 1db799e68cb..bb03db1285c 100644 --- a/themes/classic/global/win/radio.css +++ b/themes/classic/global/win/radio.css @@ -76,7 +76,7 @@ color : graytext; } - radio:focus > .radio-internal-box > .radio-text + radio[focused="true"] > .radio-internal-box > .radio-text { border : 1px dotted threeddarkshadow; padding : 0px; diff --git a/themes/classic/global/win/toolbar.css b/themes/classic/global/win/toolbar.css index ededce61a6d..a26e8f49700 100644 --- a/themes/classic/global/win/toolbar.css +++ b/themes/classic/global/win/toolbar.css @@ -94,4 +94,7 @@ toolbarseparator margin : 2px 0.2em 2px 0.2em; } - \ No newline at end of file +.toolbar-focustarget + { + user-focus : none !important; + } \ No newline at end of file diff --git a/themes/classic/global/win/tree.css b/themes/classic/global/win/tree.css index d221229a7ab..5ee5a793f84 100644 --- a/themes/classic/global/win/tree.css +++ b/themes/classic/global/win/tree.css @@ -15,6 +15,12 @@ tree border-bottom : 1px solid threedhighlight; } +.tree-container-treerows[dragover="true"][dragdroptree="true"] + { + border : 2px solid highlight; + padding : 0px; + } + .tree-container-treerows { border-left : 1px solid threeddarkshadow; @@ -22,6 +28,11 @@ tree border-right : 1px solid threedface; border-bottom : 1px solid threedface; } + +.tree-container-treerows[dragdroptree="true"] + { + padding : 1px; + } tree.inset { diff --git a/themes/classic/messenger/messengercompose/messengercompose.css b/themes/classic/messenger/messengercompose/messengercompose.css index 3c48aab14b1..112287f5d34 100644 --- a/themes/classic/messenger/messengercompose/messengercompose.css +++ b/themes/classic/messenger/messengercompose/messengercompose.css @@ -1,85 +1,38 @@ -@import url(chrome://messenger/skin/messenger.css); - @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* set default namespace to HTML */ @namespace html url("http://www.w3.org/1999/xhtml"); /* namespace for HTML elements */ -spring.spacer { - width: 5px; - height: 5px; -} - -box.cleanborder { - margin: 10px; - padding: 10px; - border: 2px groove white; - width: 100%; -} - -box.padded { - margin: 10px; - width: 100%; -} - - /* addressing widget */ +.treecell-addressingWidget + { + border-bottom : 1px solid #CACAFF; + padding : 0px !important; + } -tree[class="addressingWidget"] treeitem > treerow > treecell > box > image { - vertical-align: middle; - padding:2px; - border:none; - list-style-image: url("chrome://messenger/skin/abcard.gif"); - user-focus: ignore; -} +.aw-menulist + { + margin : 0px; + } + +.person-icon + { + list-style-image : url("chrome://messenger/skin/abcard.gif"); + margin : 0px 3px 0px 3px; + } + +.textfield-addressingWidget + { + margin : 0px; + } -/* -menulist.outset -{ - padding : 0px; - border : 1px solid #000000; - background-color : #CCCCCC; - -moz-border-radius : 3px 2px 2px 3px; - margin : 1px; -} - -menulist.outset > menupopup > menuitem -{ - max-width: auto; - min-width: 32px; -} - -menulist.outset > .menu-text -{ - border : 1px outset #CCCCCC;; - padding : 1px 4px 2px 4px; - margin-right : 0px; -} - -menulist.outset[open="true"] > .menu-text -{ - border : 1px inset #CCCCCC;; - padding : 2px 4px 1px 4px; -} -*/ - -textfield.addressingWidget[autocomplete="true"] { - border : 2px solid #FFFFFF; - margin : 1px; -} - -textfield.addressingWidget[autocomplete="true"][focused="true"] -{ - border : 2px solid #6699cc; - margin : 1px; -} - -textfield.addressingWidget[autocomplete="true"] > box -{ - border : none; -} - -#button-send { - list-style-image:url("chrome://messenger/skin/messengercompose/send.gif"); -} +#msgheaderstoolbar-box + { + margin-top : 2px; + } + +#button-send + { + list-style-image : url("chrome://messenger/skin/messengercompose/send.gif"); + } #button-send[disabled="true"], #button-send[disabled="true"]:hover, @@ -98,9 +51,10 @@ textfield.addressingWidget[autocomplete="true"] > box list-style-image : url("chrome://messenger/skin/messengercompose/send-hover-active.gif"); } -#button-address { - list-style-image:url("chrome://messenger/skin/messengercompose/address.gif"); -} +#button-address + { + list-style-image : url("chrome://messenger/skin/messengercompose/address.gif"); + } #button-address[disabled="true"], #button-address[disabled="true"]:hover, @@ -119,9 +73,10 @@ textfield.addressingWidget[autocomplete="true"] > box list-style-image : url("chrome://messenger/skin/messengercompose/address-hover-active.gif"); } -#button-attach { - list-style-image:url("chrome://messenger/skin/messengercompose/attach.gif"); -} +#button-attach + { + list-style-image : url("chrome://messenger/skin/messengercompose/attach.gif"); + } #button-attach[disabled="true"], #button-attach[disabled="true"]:hover, @@ -140,9 +95,10 @@ textfield.addressingWidget[autocomplete="true"] > box list-style-image : url("chrome://messenger/skin/messengercompose/attach-hover-active.gif"); } -#button-quote { - list-style-image:url("chrome://messenger/skin/messengercompose/quote.gif"); -} +#button-quote + { + list-style-image : url("chrome://messenger/skin/messengercompose/quote.gif"); + } #button-quote[disabled="true"], #button-quote[disabled="true"]:hover, @@ -161,9 +117,10 @@ textfield.addressingWidget[autocomplete="true"] > box list-style-image : url("chrome://messenger/skin/messengercompose/quote-hover-active.gif"); } -#button-spelling { - list-style-image:url("chrome://messenger/skin/messengercompose/spelling.gif"); -} +#button-spelling + { + list-style-image : url("chrome://messenger/skin/messengercompose/spelling.gif"); + } #button-spelling[disabled="true"], #button-spelling[disabled="true"]:hover, @@ -182,9 +139,10 @@ textfield.addressingWidget[autocomplete="true"] > box list-style-image : url("chrome://messenger/skin/messengercompose/spelling-hover-active.gif"); } -#button-save { - list-style-image:url("chrome://messenger/skin/messengercompose/savemsg.gif"); -} +#button-save + { + list-style-image : url("chrome://messenger/skin/messengercompose/savemsg.gif"); + } #button-save[disabled="true"], #button-save[disabled="true"]:hover, @@ -203,9 +161,10 @@ textfield.addressingWidget[autocomplete="true"] > box list-style-image : url("chrome://messenger/skin/messengercompose/savemsg-hover-active.gif"); } -#button-stop { - list-style-image:url("chrome://global/skin/stop.gif"); -} +#button-stop + { + list-style-image : url("chrome://global/skin/stop.gif"); + } #button-stop[disabled="true"], #button-stop[disabled="true"]:hover, @@ -224,60 +183,46 @@ textfield.addressingWidget[autocomplete="true"] > box list-style-image : url("chrome://global/skin/stop-hover-active.gif"); } -toolbar#MsgHeadersToolbar { - border-bottom: 1px solid #999999; -} +#compose-toolbar-sizer + { + height : 3px; + border-top : 1px solid threedhighlight; + } + +#content-frame + { + border-left : 1px solid threeddarkshadow; + border-top : 1px solid threeddarkshadow; + border-right : 1px solid threedface; + border-bottom : 1px solid threedface; + } -box#addressingWidget { - user-focus: normal; -} +#appcontent + { + border-left : 1px solid threeddarkshadow; + border-right : 1px solid threedhighlight; + border-top : 1px solid threedshadow; + } -tree#attachmentBucket { - user-focus: normal; -} - -#msgSubject { - user-focus: normal; -} - -#msgIdentity { - user-focus: normal; -} - -.identity-popup-item -{ - behavior: url(chrome://messenger/content/messengercompose/mailComposeBindings.xml#fromMenuitem); -} - -.composemenu-text-2 -{ - color: gray; - font-style: italic; -} - -/* askSendFormat dialog */ - -#askSendFormat { - width: 40em; -} - -#convertYes, #convertAltering, #convertNo { - border: 1px solid black; -} - -#convertYes { - list-style-image:url("chrome://messenger/skin/messengercompose/sendConvYes.gif"); -} - -#convertAltering { - list-style-image:url("chrome://messenger/skin/messengercompose/sendConvAltering.gif"); -} - -#convertNo { - list-style-image:url("chrome://messenger/skin/messengercompose/sendConvNo.gif"); -} - -#convertDefault { - border: 1px solid black; - list-style-image:url("chrome://messenger/skin/messengercompose/sendConvYes.gif"); -} /* Workaround for bug 50217. Please remove this rule, when this bug is fixed. */ +#attachmentbucket-sizer + { + width : 5px; + } + +#msgIdentity, #addressingWidgetTree, #msgSubject + { + margin-right : 0px; + } + +#addressingWidgetTree + { + user-focus : none; + } + +#attachmentBucket, #attachmentBucketText + { + margin-left : 0px; + user-focus : none; + } + + \ No newline at end of file diff --git a/xpfe/components/search/resources/search.xul b/xpfe/components/search/resources/search.xul index e06c19f0355..2d9300dec99 100644 --- a/xpfe/components/search/resources/search.xul +++ b/xpfe/components/search/resources/search.xul @@ -31,12 +31,11 @@ <html:script src="chrome://communicator/content/search/search.js" /> <tabcontrol align="vertical"> - <tabbox align="horizontal"> - <tab id="findTab" onclick="loadPage('find', null);" value="&find.title.label;"/> - <tab id="internetTab" onclick="loadPage('internet', null);" value="&internet.title.label;"/> - <tab id="mailnewsTab" onclick="loadPage('mail', null);" value="&mailnews.title.label;"/> - <tab id="addressbookTab" onclick="loadPage('addressbook', null);" value="&addressbook.title.label;"/> - <spring flex="1"/> + <tabbox> + <tab id="findTab" oncommand="loadPage('find', null);" value="&find.title.label;"/> + <tab id="internetTab" oncommand="loadPage('internet', null);" value="&internet.title.label;"/> + <tab id="mailnewsTab" oncommand="loadPage('mail', null);" value="&mailnews.title.label;"/> + <tab id="addressbookTab" oncommand="loadPage('addressbook', null);" value="&addressbook.title.label;"/> </tabbox> <tabpanel /> diff --git a/xpfe/global/resources/content/about.xul b/xpfe/global/resources/content/about.xul index 70d9553b6cb..43370332534 100644 --- a/xpfe/global/resources/content/about.xul +++ b/xpfe/global/resources/content/about.xul @@ -35,7 +35,7 @@ Contributor(s): Michael Lowe <michael.lowe@bigfoot.com> --> <tabcontrol flex="100%" align="vertical"> <tabbox> - <tab selected="true" value="&aboutTab.label;"/> + <tab value="&aboutTab.label;"/> <tab value="&contributorsTab.label;"/> </tabbox> diff --git a/xpfe/global/resources/content/commonDialog.xul b/xpfe/global/resources/content/commonDialog.xul index 699417f96c9..e52039ac65f 100644 --- a/xpfe/global/resources/content/commonDialog.xul +++ b/xpfe/global/resources/content/commonDialog.xul @@ -23,7 +23,7 @@ <box orient="vertical" flex="1"> <!-- text --> <html id="info.header" class="header" flex="1"/> - <box id="info.box" flex="1" orient="vertical" style="max-width: 45em;"/> + <html id="info.box" flex="1" orient="vertical" style="max-width: 45em;"/> <!-- edit fields --> <box orient="vertical" id="loginEditField" collapsed="true"> diff --git a/xpfe/global/resources/content/treeBindings.xml b/xpfe/global/resources/content/treeBindings.xml index f5aae56c925..6867b735821 100644 --- a/xpfe/global/resources/content/treeBindings.xml +++ b/xpfe/global/resources/content/treeBindings.xml @@ -102,7 +102,7 @@ <binding id="tree"> <content> <children/> - <xul:treerows class="tree-container-treerows"> + <xul:treerows class="tree-container-treerows" inherits="dragover,dragdroptree"> <children includes="treehead,treechildren"/> </xul:treerows> </content>