|
|
|
<?xml version="1.0"?>
|
|
|
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
|
|
|
<!DOCTYPE overlay [
|
|
|
|
<!ENTITY % msgHdrViewOverlayDTD SYSTEM "chrome://messenger/locale/msgHdrViewOverlay.dtd">
|
|
|
|
%msgHdrViewOverlayDTD;
|
|
|
|
<!ENTITY % messengerDTD SYSTEM "chrome://messenger/locale/messenger.dtd">
|
|
|
|
%messengerDTD;
|
|
|
|
]>
|
|
|
|
|
|
|
|
<?xml-stylesheet href="chrome://messenger/skin/messageHeader.css" type="text/css"?>
|
|
|
|
<?xml-stylesheet href="chrome://messenger/skin/attachmentList.css" type="text/css"?>
|
|
|
|
<?xml-stylesheet href="chrome://messenger/content/msgHdrViewOverlay.css" type="text/css"?>
|
|
|
|
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
|
|
|
|
|
|
|
<script type="application/javascript"
|
|
|
|
src="chrome://messenger/content/msgHdrViewOverlay.js"/>
|
|
|
|
<script type="application/javascript"
|
|
|
|
src="chrome://global/content/nsDragAndDrop.js"/>
|
|
|
|
|
|
|
|
<stringbundleset id="stringbundleset">
|
|
|
|
<stringbundle id="bundle_messenger" src="chrome://messenger/locale/messenger.properties"/>
|
|
|
|
</stringbundleset>
|
|
|
|
|
|
|
|
<commandset id="mailCommands">
|
|
|
|
<commandset id="attachmentCommands">
|
|
|
|
<command id="cmd_openAllAttachments"
|
|
|
|
oncommand="goDoCommand('cmd_openAllAttachments');"
|
|
|
|
disabled="true"/>
|
|
|
|
<command id="cmd_saveAllAttachments"
|
|
|
|
oncommand="goDoCommand('cmd_saveAllAttachments');"
|
|
|
|
disabled="true"/>
|
|
|
|
<command id="cmd_detachAllAttachments"
|
|
|
|
oncommand="goDoCommand('cmd_detachAllAttachments');"
|
|
|
|
disabled="true"/>
|
|
|
|
<command id="cmd_deleteAllAttachments"
|
|
|
|
oncommand="goDoCommand('cmd_deleteAllAttachments');"
|
|
|
|
disabled="true"/>
|
|
|
|
</commandset>
|
|
|
|
</commandset>
|
|
|
|
|
|
|
|
<menupopup id="messageIdContext" popupanchor="bottomleft"
|
|
|
|
onpopupshowing="FillMessageIdContextMenu(document.popupNode);">
|
|
|
|
<menuitem id="messageIdContext-messageIdTarget"
|
|
|
|
disabled="true"/>
|
|
|
|
<menuseparator id="messageIdContext-separator"/>
|
|
|
|
<menuitem id="messageIdContext-openMessageForMsgId"
|
|
|
|
label="&OpenMessageForMsgId.label;"
|
|
|
|
accesskey="&OpenMessageForMsgId.accesskey;"
|
|
|
|
oncommand="var messageId = GetMessageIdFromNode(document.popupNode, true);
|
|
|
|
OpenMessageForMessageId(messageId)"/>
|
|
|
|
<menuitem id="messageIdContext-openBrowserWithMsgId"
|
|
|
|
label="&OpenBrowserWithMsgId.label;"
|
|
|
|
accesskey="&OpenBrowserWithMsgId.accesskey;"
|
|
|
|
oncommand="var messageId = GetMessageIdFromNode(document.popupNode, true);
|
|
|
|
OpenBrowserWithMessageId(messageId)"/>
|
|
|
|
<menuitem id="messageIdContext-copyMessageId"
|
|
|
|
label="&CopyMessageId.label;"
|
|
|
|
accesskey="&CopyMessageId.accesskey;"
|
|
|
|
oncommand="var messageId = GetMessageIdFromNode(document.popupNode, false);
|
|
|
|
CopyMessageId(messageId);"/>
|
|
|
|
</menupopup>
|
|
|
|
|
|
|
|
<menupopup id="attachmentItemContext"
|
|
|
|
onpopupshowing="return onShowAttachmentItemContextMenu();"
|
|
|
|
onpopuphiding="return onHideAttachmentItemContextMenu();">
|
|
|
|
<menuitem id="context-openAttachment"
|
|
|
|
label="&openAttachmentCmd.label;"
|
|
|
|
accesskey="&openAttachmentCmd.accesskey;"
|
|
|
|
oncommand="HandleMultipleAttachments(this.parentNode.attachments, 'open');"/>
|
|
|
|
<menuitem id="context-saveAttachment"
|
|
|
|
label="&saveAsAttachmentCmd.label;"
|
|
|
|
accesskey="&saveAsAttachmentCmd.accesskey;"
|
|
|
|
oncommand="HandleMultipleAttachments(this.parentNode.attachments, 'saveAs');"/>
|
|
|
|
<menuseparator id="context-menu-separator"/>
|
|
|
|
<menuitem id="context-detachAttachment"
|
|
|
|
label="&detachAttachmentCmd.label;"
|
|
|
|
accesskey="&detachAttachmentCmd.accesskey;"
|
|
|
|
oncommand="HandleMultipleAttachments(this.parentNode.attachments, 'detach');"/>
|
|
|
|
<menuitem id="context-deleteAttachment"
|
|
|
|
label="&deleteAttachmentCmd.label;"
|
|
|
|
accesskey="&deleteAttachmentCmd.accesskey;"
|
|
|
|
oncommand="HandleMultipleAttachments(this.parentNode.attachments, 'delete');"/>
|
|
|
|
<menuseparator id="context-menu-copyurl-separator"/>
|
|
|
|
<menuitem id="context-copyAttachmentUrl"
|
|
|
|
label="©LinkCmd.label;"
|
|
|
|
accesskey="©LinkCmd.accesskey;"
|
|
|
|
oncommand="HandleMultipleAttachments(this.parentNode.attachments, 'copyUrl');"/>
|
|
|
|
</menupopup>
|
|
|
|
|
|
|
|
<menupopup id="attachmentListContext" onpopupshowing="goUpdateAttachmentCommands();">
|
|
|
|
<menuitem id="context-openAllAttachments"
|
|
|
|
label="&openAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&openAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_openAllAttachments"/>
|
|
|
|
<menuitem id="context-saveAllAttachments"
|
|
|
|
label="&saveAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&saveAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_saveAllAttachments"/>
|
|
|
|
<menuseparator id="context-menu-separator-all"/>
|
|
|
|
<menuitem id="context-detachAllAttachments"
|
|
|
|
label="&detachAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&detachAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_detachAllAttachments"/>
|
|
|
|
<menuitem id="context-deleteAllAttachments"
|
|
|
|
label="&deleteAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&deleteAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_deleteAllAttachments"/>
|
|
|
|
</menupopup>
|
|
|
|
|
|
|
|
<menupopup id="attachmentMenuList" onpopupshowing="FillAttachmentListPopup(event, this);">
|
|
|
|
<menuseparator/>
|
|
|
|
<menuitem label="&openAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&openAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_openAllAttachments" />
|
|
|
|
<menuitem label="&saveAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&saveAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_saveAllAttachments"/>
|
|
|
|
<menuitem label="&detachAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&detachAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_detachAllAttachments" />
|
|
|
|
<menuitem label="&deleteAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&deleteAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_deleteAllAttachments" />
|
|
|
|
</menupopup>
|
|
|
|
|
|
|
|
<menupopup id="appmenu_attachmentMenuList" onpopupshowing="FillAttachmentListPopup(event, this);">
|
|
|
|
<menuseparator/>
|
|
|
|
<menuitem label="&openAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&openAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_openAllAttachments" />
|
|
|
|
<menuitem label="&saveAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&saveAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_saveAllAttachments"/>
|
|
|
|
<menuitem label="&detachAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&detachAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_detachAllAttachments" />
|
|
|
|
<menuitem label="&deleteAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&deleteAllAttachmentsCmd.accesskey;"
|
|
|
|
command="cmd_deleteAllAttachments" />
|
|
|
|
</menupopup>
|
|
|
|
|
|
|
|
<menupopup id="header-toolbar-context-menu">
|
|
|
|
<menuitem id="CustomizeHeaderToolbar"
|
|
|
|
oncommand="CustomizeMailToolbar('header-view-toolbox', 'CustomizeHeaderToolbar')"
|
|
|
|
label="&customizeToolbar.label;"
|
|
|
|
accesskey="&customizeToolbar.accesskey;"/>
|
|
|
|
</menupopup>
|
|
|
|
|
|
|
|
<menupopup id="attachment-toolbar-context-menu"
|
|
|
|
onpopupshowing="return onShowAttachmentToolbarContextMenu(event);">
|
|
|
|
<menuitem id="context-expandAttachmentBar" type="checkbox"
|
|
|
|
label="&startExpandedCmd.label;"
|
|
|
|
accesskey="&startExpandedCmd.accesskey;"
|
|
|
|
oncommand="Services.prefs.setBoolPref('mailnews.attachments.display.start_expanded', this.getAttribute('checked'));"/>
|
|
|
|
<menuseparator/>
|
|
|
|
<menuitem id="CustomizeAttachmentToolbar"
|
|
|
|
oncommand="CustomizeMailToolbar('attachment-view-toolbox', 'CustomizeAttachmentToolbar')"
|
|
|
|
label="&customizeToolbar.label;"
|
|
|
|
accesskey="&customizeToolbar.accesskey;"/>
|
|
|
|
</menupopup>
|
|
|
|
|
|
|
|
<menupopup id="copyUrlPopup" popupanchor="bottomleft">
|
|
|
|
<menuitem label="©LinkCmd.label;" accesskey="©LinkCmd.accesskey;" oncommand="CopyWebsiteAddress(document.popupNode)"/>
|
|
|
|
</menupopup>
|
|
|
|
|
|
|
|
<hbox id="msgHeaderView"
|
|
|
|
collapsed="true"
|
|
|
|
class="main-header-area">
|
|
|
|
<deck id="msgHeaderViewDeck" selectedIndex="0"
|
|
|
|
persist="selectedIndex" flex="1"
|
|
|
|
context="header-toolbar-context-menu">
|
|
|
|
|
|
|
|
<!-- the message pane consists of 3 'boxes'. Box #2 is the expanded headers view (the default view) -->
|
|
|
|
<vbox id="expandedHeaderView" flex="1">
|
|
|
|
|
|
|
|
<!-- a convenience box for ease of extension overlaying -->
|
|
|
|
<vbox id="expandedHeadersBox" flex="1">
|
|
|
|
|
|
|
|
<!-- This hbox has display:block set to imbue it with the HTML layout
|
|
|
|
model. This lets us float the message header toolbar to the right
|
|
|
|
so we don't waste space when the From field and the toolbar could
|
|
|
|
fit alongside each other. -->
|
|
|
|
<hbox id="expandedHeadersTopBox" flex="1">
|
|
|
|
|
|
|
|
<toolbox id="header-view-toolbox"
|
|
|
|
class="inline-toolbox"
|
|
|
|
defaulticonsize="small"
|
|
|
|
minwidth="50px"
|
|
|
|
defaultlabelalign="end"
|
|
|
|
defaultmode="full"
|
|
|
|
inlinetoolbox="true">
|
|
|
|
<toolbarpalette id="header-view-toolbar-palette">
|
|
|
|
<!-- XXXdmose need to move these commands to a controller, either
|
|
|
|
on the header view, the message pane, or the default
|
|
|
|
controller -->
|
|
|
|
|
|
|
|
<!-- XXXdmose need to audit our shortcut/a11y setup and make sure
|
|
|
|
these buttons are doing the right thing -->
|
|
|
|
|
|
|
|
<toolbarbutton id="hdrForwardButton"
|
|
|
|
label="&hdrForwardButton1.label;"
|
|
|
|
tooltiptext="&hdrForwardButton1.tooltip;"
|
|
|
|
oncommand="MsgForwardMessage(event);RestoreFocusAfterHdrButton();"
|
|
|
|
observes="button_forward"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrForwardButton"/>
|
|
|
|
<toolbaritem id="hdrMenuForwardButton" label="&hdrMenuForwardButton.label;">
|
|
|
|
<!-- This toolbaritem is a dummy and should only be shown when
|
|
|
|
customizing the toolbar to distinguish the forward button
|
|
|
|
from the forward dual-button. -->
|
|
|
|
<toolbarbutton id="hdrDualForwardButton"
|
|
|
|
label="&hdrForwardButton1.label;"
|
|
|
|
tooltiptext="&hdrForwardButton1.tooltip;"
|
|
|
|
oncommand="MsgForwardMessage(event);RestoreFocusAfterHdrButton();"
|
|
|
|
observes="button_forward"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrForwardButton"
|
|
|
|
type="menu-button">
|
|
|
|
<menupopup id="hdrForwardDropdown">
|
|
|
|
<menuitem id="hdrForwardAsInlineMenu"
|
|
|
|
label="&buttonMenuForwardAsInline.label;"
|
|
|
|
tooltiptext="&forwardAsInline.tooltip;"
|
|
|
|
command="cmd_forwardInline"/>
|
|
|
|
<menuitem id="hdrForwardAsAttachmentMenu"
|
|
|
|
label="&buttonMenuForwardAsAttachment.label;"
|
|
|
|
tooltiptext="&forwardAsAttachment.tooltip;"
|
|
|
|
command="cmd_forwardAttachment"/>
|
|
|
|
</menupopup>
|
|
|
|
</toolbarbutton>
|
|
|
|
</toolbaritem>
|
|
|
|
<toolbarbutton id="hdrArchiveButton"
|
|
|
|
label="&hdrArchiveButton1.label;"
|
|
|
|
tooltiptext="&hdrArchiveButton1.tooltip;"
|
|
|
|
oncommand="MsgArchiveSelectedMessages(event);RestoreFocusAfterHdrButton();"
|
|
|
|
observes="button_archive"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrArchiveButton"/>
|
|
|
|
<toolbarbutton id="hdrJunkButton" label="&hdrJunkButton1.label;"
|
|
|
|
tooltiptext="&hdrJunkButton1.tooltip;"
|
|
|
|
observes="button_junk"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrJunkButton"
|
|
|
|
oncommand="goDoCommand('button_junk');RestoreFocusAfterHdrButton();"/>
|
|
|
|
<toolbarbutton id="hdrTrashButton"
|
|
|
|
label="&hdrTrashButton1.label;"
|
|
|
|
tooltiptext="&hdrTrashButton1.tooltip;"
|
|
|
|
observes="button_delete"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrTrashButton"
|
|
|
|
oncommand="goDoCommand(event.shiftKey ? 'button_shiftDelete' :
|
|
|
|
'button_delete');RestoreFocusAfterHdrButton();"/>
|
|
|
|
<toolbarbutton id="hdrOpenConversationButton"
|
|
|
|
label="&hdrOpenConversationButton1.label;"
|
|
|
|
tooltiptext="&hdrOpenConversationButton1.tooltip;"
|
|
|
|
observes="button_showconversation"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrConversationButton"
|
|
|
|
oncommand="gConversationOpener.openConversationForMessages(gFolderDisplay.selectedMessages);RestoreFocusAfterHdrButton();"/>
|
|
|
|
<toolbarbutton id="hdrReplyToSenderButton" label="&hdrReplyButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyButton2.tooltip;"
|
|
|
|
oncommand="MsgReplySender(event);RestoreFocusAfterHdrButton();"
|
|
|
|
observes="button_reply"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrReplyToSenderButton"/>
|
|
|
|
<toolbaritem id="hdrSmartReplyButton" label="&hdrSmartReplyButton1.label;">
|
|
|
|
<!-- This button is a dummy and should only be shown when
|
|
|
|
customizing the toolbar to distinguish the smart reply
|
|
|
|
button from the reply to sender button. -->
|
|
|
|
<toolbarbutton id="hdrDummyReplyButton" label="&hdrSmartReplyButton1.label;"
|
|
|
|
hidden="true"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrDummyReplyButton"/>
|
|
|
|
<toolbarbutton id="hdrReplyButton" label="&hdrReplyButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyButton2.tooltip;"
|
|
|
|
oncommand="MsgReplySender(event);RestoreFocusAfterHdrButton();"
|
|
|
|
observes="button_reply"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrReplyButton"/>
|
|
|
|
<toolbarbutton id="hdrReplyAllButton"
|
|
|
|
label="&hdrReplyAllButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyAllButton1.tooltip;"
|
|
|
|
oncommand="MsgReplyToAllMessage(event);RestoreFocusAfterHdrButton();"
|
|
|
|
observes="button_replyall"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrReplyButton hdrReplyAllButton"
|
|
|
|
type="menu-button"
|
|
|
|
hidden="true">
|
|
|
|
<menupopup id="hdrReplyAllDropdown">
|
|
|
|
<menuitem id="hdrReplyAll_ReplyAllSubButton"
|
|
|
|
label="&hdrReplyAllButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyAllButton1.tooltip;"
|
|
|
|
observes="button_replyall"/>
|
|
|
|
<menuseparator id="hdrReplyAllSubSeparator"/>
|
|
|
|
<menuitem id="hdrReplySubButton"
|
|
|
|
label="&hdrReplyButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyButton2.tooltip;"
|
|
|
|
observes="button_reply"
|
|
|
|
oncommand="MsgReplySender(event); event.stopPropagation();
|
|
|
|
RestoreFocusAfterHdrButton();"/>
|
|
|
|
</menupopup>
|
|
|
|
</toolbarbutton>
|
|
|
|
<toolbarbutton id="hdrReplyListButton"
|
|
|
|
label="&hdrReplyListButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyListButton1.tooltip;"
|
|
|
|
oncommand="MsgReplyToListMessage(event);RestoreFocusAfterHdrButton();"
|
|
|
|
observes="button_replylist"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrReplyButton hdrReplyListButton"
|
|
|
|
type="menu-button"
|
|
|
|
hidden="true">
|
|
|
|
<menupopup id="hdrReplyListDropdown">
|
|
|
|
<menuitem id="hdrReplyList_ReplyListSubButton"
|
|
|
|
label="&hdrReplyListButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyListButton1.tooltip;"
|
|
|
|
observes="button_replylist"/>
|
|
|
|
<menuseparator id="hdrReplyListSubSeparator"/>
|
|
|
|
<menuitem id="hdrRelplyList_ReplyAllSubButton"
|
|
|
|
label="&hdrReplyAllButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyAllButton1.tooltip;"
|
|
|
|
observes="button_replyall"
|
|
|
|
oncommand="MsgReplyToAllMessage(event); event.stopPropagation();
|
|
|
|
RestoreFocusAfterHdrButton();"/>
|
|
|
|
<menuitem id="hdrReplyList_ReplySubButton"
|
|
|
|
label="&hdrReplyButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyButton2.tooltip;"
|
|
|
|
observes="button_reply"
|
|
|
|
oncommand="MsgReplySender(event); event.stopPropagation();
|
|
|
|
RestoreFocusAfterHdrButton();"/>
|
|
|
|
</menupopup>
|
|
|
|
</toolbarbutton>
|
|
|
|
<toolbarbutton id="hdrFollowupButton" label="&hdrFollowupButton1.label;"
|
|
|
|
tooltiptext="&hdrFollowupButton1.tooltip;"
|
|
|
|
oncommand="MsgReplyGroup(event);RestoreFocusAfterHdrButton();"
|
|
|
|
observes="button_followup"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrFollowupButton"
|
|
|
|
type="menu-button">
|
|
|
|
<menupopup id="hdrFollowupDropdown">
|
|
|
|
<menuitem id="hdrFollowup_FollowupSubButton"
|
|
|
|
label="&hdrFollowupButton1.label;"
|
|
|
|
tooltiptext="&hdrFollowupButton1.tooltip;"
|
|
|
|
observes="button_followup"/>
|
|
|
|
<menuseparator id="hdrFollowupSubSeparator"/>
|
|
|
|
<menuitem id="hdrFollowup_ReplyAllSubButton"
|
|
|
|
label="&hdrReplyAllButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyAllButton1.tooltip;"
|
|
|
|
observes="button_replyall"
|
|
|
|
oncommand="MsgReplyToAllMessage(event); event.stopPropagation();
|
|
|
|
RestoreFocusAfterHdrButton();"/>
|
|
|
|
<menuitem id="hdrFollowup_ReplySubButton"
|
|
|
|
label="&hdrReplyButton1.label;"
|
|
|
|
tooltiptext="&hdrReplyButton2.tooltip;"
|
|
|
|
observes="button_reply"
|
|
|
|
oncommand="MsgReplySender(event); event.stopPropagation();
|
|
|
|
RestoreFocusAfterHdrButton();"/>
|
|
|
|
</menupopup>
|
|
|
|
</toolbarbutton>
|
|
|
|
</toolbaritem>
|
|
|
|
<toolbarbutton id="hdrTagButton"
|
|
|
|
type="menu"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button hdrTagButton"
|
|
|
|
label="&tagButton.label;"
|
|
|
|
tooltiptext="&tagButton.tooltip;"
|
|
|
|
command="cmd_tag">
|
|
|
|
<menupopup id="hdrTagDropdown"
|
|
|
|
onpopupshowing="InitMessageTags(this);">
|
|
|
|
<menuitem id="hdrTagDropdown-addNewTag"
|
|
|
|
label="&addNewTag.label;"
|
|
|
|
accesskey="&addNewTag.accesskey;"
|
|
|
|
command="cmd_addTag"/>
|
|
|
|
<menuitem id="manageTags"
|
|
|
|
label="&manageTags.label;"
|
|
|
|
accesskey="&manageTags.accesskey;"
|
|
|
|
command="cmd_manageTags"/>
|
|
|
|
<menuseparator id="hdrTagDropdown-sep-afterAddNewTag"/>
|
|
|
|
<menuitem id="hdrTagDropdown-tagRemoveAll"
|
|
|
|
command="cmd_removeTags"/>
|
|
|
|
<menuseparator id="hdrTagDropdown-sep-afterTagRemoveAll"/>
|
|
|
|
</menupopup>
|
|
|
|
</toolbarbutton>
|
|
|
|
<toolbarbutton type="menu"
|
|
|
|
id="otherActionsButton"
|
|
|
|
label="&otherActionsButton2.label;"
|
|
|
|
tooltiptext="&otherActionsButton.tooltip;"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button">
|
|
|
|
<menupopup id="otherActionsPopup"
|
|
|
|
onpopupshowing="onShowOtherActionsPopup();">
|
|
|
|
<menuitem id="otherActionsOpenConversation"
|
|
|
|
label="&otherActionsOpenConversation1.label;"
|
|
|
|
accesskey="&otherActionsOpenConversation1.accesskey;"
|
|
|
|
oncommand="gConversationOpener.openConversationForMessages(gFolderDisplay.selectedMessages);"/>
|
|
|
|
<menuitem id="otherActionsOpenInNewWindow"
|
|
|
|
label="&otherActionsOpenInNewWindow1.label;"
|
|
|
|
accesskey="&otherActionsOpenInNewWindow1.accesskey;"
|
|
|
|
observes="otherActionsOpenIn"
|
|
|
|
oncommand="MsgOpenNewWindowForMessage();"/>
|
|
|
|
<menuitem id="otherActionsOpenInNewTab"
|
|
|
|
label="&otherActionsOpenInNewTab1.label;"
|
|
|
|
accesskey="&otherActionsOpenInNewTab1.accesskey;"
|
|
|
|
observes="otherActionsOpenIn"
|
|
|
|
oncommand="OpenMessageInNewTab(event);"/>
|
|
|
|
<menuitem id="viewSourceMenuItem"
|
|
|
|
label="&viewSourceMenuItem1.label;"
|
|
|
|
accesskey="&viewSourceMenuItem1.accesskey;"
|
|
|
|
oncommand="ViewPageSource(gFolderDisplay.selectedMessageUris);" />
|
|
|
|
<menuseparator id="otherActionsSeparator"/>
|
|
|
|
<menuitem id="markAsReadMenuItem"
|
|
|
|
label="&markAsReadMenuItem1.label;"
|
|
|
|
accesskey="&markAsReadMenuItem1.accesskey;"
|
|
|
|
oncommand="MsgMarkMsgAsRead();"/>
|
|
|
|
<menuitem id="markAsUnreadMenuItem"
|
|
|
|
label="&markAsUnreadMenuItem1.label;"
|
|
|
|
accesskey="&markAsUnreadMenuItem1.accesskey;"
|
|
|
|
oncommand="MsgMarkMsgAsRead();"/>
|
|
|
|
<menuitem id="saveAsMenuItem" label="&saveAsMenuItem1.label;"
|
|
|
|
accesskey="&saveAsMenuItem1.accesskey;"
|
|
|
|
oncommand="MsgSaveAsFile();"/>
|
|
|
|
<menuitem id="otherActionsPrint"
|
|
|
|
label="&otherActionsPrint1.label;"
|
|
|
|
accesskey="&otherActionsPrint1.accesskey;"
|
|
|
|
oncommand="PrintEnginePrint();"/>
|
|
|
|
</menupopup>
|
|
|
|
</toolbarbutton>
|
|
|
|
</toolbarpalette>
|
|
|
|
|
|
|
|
<toolbar id="header-view-toolbar" class="inline-toolbar" align="start"
|
|
|
|
customizable="true" mode="full"
|
|
|
|
context="header-toolbar-context-menu"
|
|
|
|
defaulticonsize="small" defaultmode="full"
|
|
|
|
defaultset="hdrReplyToSenderButton,hdrSmartReplyButton,hdrForwardButton,hdrArchiveButton,hdrJunkButton,hdrTrashButton,otherActionsButton"/>
|
|
|
|
</toolbox>
|
|
|
|
|
|
|
|
<!-- This box ensures that the expandedHeaders grid below is aligned
|
|
|
|
with the bottom of the message header toolbar. Like the
|
|
|
|
expandedHeadersTopBox, this uses display:block to give us HTML
|
|
|
|
layouting. -->
|
|
|
|
<box id="expandedBoxSpacer"/>
|
|
|
|
|
|
|
|
<!-- Theoretically, we should be able to replace this grid with just
|
|
|
|
an hbox. Unfortunately, doing that makes it very hard to sync
|
|
|
|
the column sizes between the name columns, because for currently
|
|
|
|
unclear reasons, the .clientWidth of a column is wider than the
|
|
|
|
.clientWidth of its largest contained child by an unspecified
|
|
|
|
amount. -->
|
|
|
|
<grid id="expandedHeaders">
|
|
|
|
|
|
|
|
<columns id="expandedHeadersColumns">
|
|
|
|
<column id="expandedHeadersNameColumn"/>
|
|
|
|
<column id="expandedHeadersValueColumn" flex="1"/>
|
|
|
|
</columns>
|
|
|
|
|
|
|
|
<rows id="expandedHeaderRows">
|
|
|
|
<row id="expandedfromRow">
|
|
|
|
<label id="expandedfromLabel" class="headerName"
|
|
|
|
value="&fromField4.label;"
|
|
|
|
valueFrom="&fromField4.label;" valueAuthor="&author.label;"
|
|
|
|
control="expandedfromBox"/>
|
|
|
|
<mail-multi-emailHeaderField id="expandedfromBox" flex="1"/>
|
|
|
|
</row>
|
|
|
|
</rows>
|
|
|
|
</grid>
|
|
|
|
</hbox>
|
|
|
|
|
|
|
|
<hbox id="expandedHeadersBottomBox">
|
|
|
|
|
|
|
|
<!-- The grid that contains all headers except the first one,
|
|
|
|
including any headers created dynamically from JavaScript -->
|
|
|
|
<grid id="expandedHeaders2" flex="1">
|
|
|
|
|
|
|
|
<columns id="expandedHeaders2Columns">
|
|
|
|
<column id="expandedHeaders2NameColumn"/>
|
|
|
|
<column id="expandedHeaders2ValueColumn" flex="1"/>
|
|
|
|
</columns>
|
|
|
|
|
|
|
|
<rows id="expandedHeader2Rows">
|
|
|
|
|
|
|
|
<!-- Commonly used rows are pre-specified in the XUL to avoid the
|
|
|
|
performance hit of creating them dynamically. -->
|
|
|
|
<row id="expandedsubjectRow">
|
|
|
|
<label id="expandedsubjectLabel" class="headerName"
|
|
|
|
value="&subjectField4.label;"
|
|
|
|
control="expandedsubjectBox"/>
|
|
|
|
<mail-headerfield id="expandedsubjectBox" flex="1"
|
|
|
|
headerName="subject"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedorganizationRow" collapsed="true">
|
|
|
|
<label id="expandedorganizationLabel" class="headerName"
|
|
|
|
value="&organizationField4.label;"
|
|
|
|
control="expandedorganizationBox"/>
|
|
|
|
<mail-headerfield id="expandedorganizationBox"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedsenderRow" collapsed="true">
|
|
|
|
<label id="expandedsenderLabel" class="headerName"
|
|
|
|
value="&senderField4.label;" control="expandedsenderBox"/>
|
|
|
|
<mail-emailheaderfield id="expandedsenderBox"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedreply-toRow" collapsed="true">
|
|
|
|
<label id="expandedreply-toLabel" class="headerName"
|
|
|
|
value="&replyToField4.label;"
|
|
|
|
control="expandedreply-toBox"/>
|
|
|
|
<mail-multi-emailHeaderField id="expandedreply-toBox"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedtoRow" collapsed="true">
|
|
|
|
<label id="expandedtoLabel" class="headerName"
|
|
|
|
value="&toField4.label;" control="expandedtoBox"/>
|
|
|
|
<mail-multi-emailHeaderField id="expandedtoBox" flex="1"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedccRow" collapsed="true">
|
|
|
|
<label id="expandedccLabel" class="headerName"
|
|
|
|
value="&ccField4.label;" control="expandedccBox"/>
|
|
|
|
<mail-multi-emailHeaderField id="expandedccBox" flex="1"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedbccRow" collapsed="true">
|
|
|
|
<label id="expandedbccLabel" class="headerName"
|
|
|
|
value="&bccField4.label;" control="expandedbccBox"/>
|
|
|
|
<mail-multi-emailHeaderField id="expandedbccBox"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandednewsgroupsRow" collapsed="true">
|
|
|
|
<label id="expandednewsgroupsLabel" class="headerName"
|
|
|
|
value="&newsgroupsField4.label;"
|
|
|
|
control="expandednewsgroupsBox"/>
|
|
|
|
<mail-newsgroups-headerfield id="expandednewsgroupsBox"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedfollowup-toRow" collapsed="true">
|
|
|
|
<label id="expandedfollowup-toLabel" class="headerName"
|
|
|
|
value="&followupToField4.label;"
|
|
|
|
control="expandedfollowup-toBox"/>
|
|
|
|
<mail-newsgroups-headerfield id="expandedfollowup-toBox"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandeddateRow" collapsed="true">
|
|
|
|
<label id="expandeddateLabel" class="headerName"
|
|
|
|
value="&dateField4.label;" control="expandeddateBox"/>
|
|
|
|
<mail-headerfield id="expandeddateBox" flex="1"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedmessage-idRow" collapsed="true">
|
|
|
|
<label id="expandedmessage-idLabel" class="headerName"
|
|
|
|
value="&messageIdField4.label;"
|
|
|
|
control="expandedmessage-idBox"/>
|
|
|
|
<mail-messageids-headerfield id="expandedmessage-idBox"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedin-reply-toRow" collapsed="true">
|
|
|
|
<label id="expandedin-reply-toLabel" class="headerName"
|
|
|
|
value="&inReplyToField4.label;"
|
|
|
|
control="expandedin-reply-toBox"/>
|
|
|
|
<mail-messageids-headerfield id="expandedin-reply-toBox"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedreferencesRow" collapsed="true">
|
|
|
|
<label id="expandedreferencesLabel" class="headerName"
|
|
|
|
value="&referencesField4.label;"
|
|
|
|
control="expandedReferencesBox"/>
|
|
|
|
<mail-messageids-headerfield id="expandedreferencesBox"
|
|
|
|
flex="1"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedtagsRow" collapsed="true">
|
|
|
|
<label id="expandedtagsLabel" class="headerName"
|
|
|
|
value="&tagsHdr4.label;" control="expandedtagsBox"/>
|
|
|
|
<mail-tagfield id="expandedtagsBox"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandedcontent-baseRow" collapsed="true">
|
|
|
|
<label id="expandedcontent-baseLabel" class="headerName"
|
|
|
|
value="&originalWebsite4.label;"
|
|
|
|
control="expandedcontent-baseBox"/>
|
|
|
|
<mail-urlfield id="expandedcontent-baseBox"/>
|
|
|
|
</row>
|
|
|
|
<row id="expandeduser-agentRow" collapsed="true">
|
|
|
|
<label id="expandeduser-agentLabel" class="headerName"
|
|
|
|
value="&userAgentField4.label;"
|
|
|
|
control="expandeduser-agentBox"/>
|
|
|
|
<mail-headerfield id="expandeduser-agentBox" flex="1"/>
|
|
|
|
</row>
|
|
|
|
</rows>
|
|
|
|
</grid>
|
|
|
|
|
|
|
|
<!-- perhaps this should be a customizable toolbar too -->
|
|
|
|
<vbox id="otherActionsBox" align="end">
|
|
|
|
<hbox id="dateValueBox" align="top" flex="1"> <!--For extensions-->
|
|
|
|
<label id="dateLabel" class="dateLabel" flex="1" role="textbox"
|
|
|
|
aria-readonly="true"/>
|
|
|
|
</hbox>
|
|
|
|
</vbox>
|
|
|
|
</hbox>
|
|
|
|
</vbox>
|
|
|
|
</vbox>
|
|
|
|
</deck>
|
|
|
|
</hbox>
|
|
|
|
|
|
|
|
<!-- the message pane consists of 4 'boxes'. Box #4 is the attachment box which
|
|
|
|
can be toggled into a slim or an expanded view -->
|
|
|
|
<vbox id="attachmentView" collapsed="true">
|
|
|
|
<hbox align="center" id="attachmentBar"
|
|
|
|
context="attachment-toolbar-context-menu"
|
|
|
|
onclick="if (event.button == 0) toggleAttachmentList(undefined, true);">
|
|
|
|
<button type="checkbox" id="attachmentToggle"
|
|
|
|
onmousedown="event.preventDefault();"
|
|
|
|
onclick="event.stopPropagation();"
|
|
|
|
oncommand="toggleAttachmentList(this.checked, true);"/>
|
|
|
|
<hbox align="center" id="attachmentInfo" flex="1">
|
|
|
|
<image id="attachmentIcon"/>
|
|
|
|
<label id="attachmentCount"/>
|
|
|
|
<label id="attachmentName" crop="center" flex="1"
|
|
|
|
tooltiptext="&openAttachment.tooltip;"
|
|
|
|
onclick="OpenAttachmentFromBar(event);"
|
|
|
|
ondragstart="nsDragAndDrop.startDrag(event,attachmentNameDNDObserver);"/>
|
|
|
|
<label id="attachmentSize"/>
|
|
|
|
</hbox>
|
|
|
|
<!-- Use a very large flex value here so that attachmentCount doesn't take
|
|
|
|
up more space than necessary, but still crops itself if there's not
|
|
|
|
enough space. -->
|
|
|
|
<spacer flex="9999"/>
|
|
|
|
|
|
|
|
<toolbox id="attachment-view-toolbox"
|
|
|
|
class="inline-toolbox"
|
|
|
|
defaulticonsize="small"
|
|
|
|
minwidth="50px"
|
|
|
|
defaultlabelalign="end"
|
|
|
|
defaultmode="full"
|
|
|
|
inlinetoolbox="true">
|
|
|
|
<toolbarpalette id="attachment-view-toolbar-palette">
|
|
|
|
<toolbaritem id="attachmentSaveAll"
|
|
|
|
title="&saveAllAttachmentsButton1.label;">
|
|
|
|
<toolbarbutton type="menu-button" id="attachmentSaveAllSingle"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button"
|
|
|
|
label="&saveAttachmentButton1.label;"
|
|
|
|
tooltiptext="&saveAttachmentButton1.tooltip;"
|
|
|
|
onclick="event.stopPropagation();"
|
|
|
|
oncommand="TryHandleAllAttachments('saveAs'); RestoreFocusAfterHdrButton();"
|
|
|
|
hidden="true">
|
|
|
|
<menupopup id="attachmentSaveAllSingleMenu"
|
|
|
|
onpopupshowing="onShowSaveAttachmentMenuSingle();">
|
|
|
|
<menuitem id="button-openAttachment"
|
|
|
|
oncommand="TryHandleAllAttachments('open'); event.stopPropagation(); RestoreFocusAfterHdrButton();"
|
|
|
|
label="&openAttachmentCmd.label;"
|
|
|
|
accesskey="&openAttachmentCmd.accesskey;"/>
|
|
|
|
<menuitem id="button-saveAttachment"
|
|
|
|
oncommand="TryHandleAllAttachments('saveAs'); event.stopPropagation(); RestoreFocusAfterHdrButton();"
|
|
|
|
label="&saveAsAttachmentCmd.label;"
|
|
|
|
accesskey="&saveAsAttachmentCmd.accesskey;"/>
|
|
|
|
<menuseparator id="button-menu-separator"/>
|
|
|
|
<menuitem id="button-detachAttachment"
|
|
|
|
oncommand="TryHandleAllAttachments('detach'); event.stopPropagation(); RestoreFocusAfterHdrButton();"
|
|
|
|
label="&detachAttachmentCmd.label;"
|
|
|
|
accesskey="&detachAttachmentCmd.accesskey;"/>
|
|
|
|
<menuitem id="button-deleteAttachment"
|
|
|
|
oncommand="TryHandleAllAttachments('delete'); event.stopPropagation(); RestoreFocusAfterHdrButton();"
|
|
|
|
label="&deleteAttachmentCmd.label;"
|
|
|
|
accesskey="&deleteAttachmentCmd.accesskey;"/>
|
|
|
|
</menupopup>
|
|
|
|
</toolbarbutton>
|
|
|
|
<toolbarbutton type="menu-button" id="attachmentSaveAllMultiple"
|
|
|
|
class="toolbarbutton-1 msgHeaderView-button"
|
|
|
|
label="&saveAllAttachmentsButton1.label;"
|
|
|
|
tooltiptext="&saveAllAttachmentsButton1.tooltip;"
|
|
|
|
onclick="event.stopPropagation();"
|
|
|
|
oncommand="TryHandleAllAttachments('save'); RestoreFocusAfterHdrButton();">
|
|
|
|
<menupopup id="attachmentSaveAllMultipleMenu"
|
|
|
|
onpopupshowing="onShowSaveAttachmentMenuMultiple();">
|
|
|
|
<menuitem id="button-openAllAttachments"
|
|
|
|
oncommand="TryHandleAllAttachments('open'); event.stopPropagation(); RestoreFocusAfterHdrButton();"
|
|
|
|
label="&openAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&openAllAttachmentsCmd.accesskey;"/>
|
|
|
|
<menuitem id="button-saveAllAttachments"
|
|
|
|
oncommand="TryHandleAllAttachments('save'); event.stopPropagation(); RestoreFocusAfterHdrButton();"
|
|
|
|
label="&saveAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&saveAllAttachmentsCmd.accesskey;"/>
|
|
|
|
<menuseparator id="button-menu-separator-all"/>
|
|
|
|
<menuitem id="button-detachAllAttachments"
|
|
|
|
oncommand="TryHandleAllAttachments('detach'); event.stopPropagation(); RestoreFocusAfterHdrButton();"
|
|
|
|
label="&detachAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&detachAllAttachmentsCmd.accesskey;"/>
|
|
|
|
<menuitem id="button-deleteAllAttachments"
|
|
|
|
oncommand="TryHandleAllAttachments('delete'); event.stopPropagation(); RestoreFocusAfterHdrButton();"
|
|
|
|
label="&deleteAllAttachmentsCmd.label;"
|
|
|
|
accesskey="&deleteAllAttachmentsCmd.accesskey;"/>
|
|
|
|
</menupopup>
|
|
|
|
</toolbarbutton>
|
|
|
|
</toolbaritem>
|
|
|
|
</toolbarpalette>
|
|
|
|
<toolbar id="attachment-view-toolbar" class="inline-toolbar"
|
|
|
|
customizable="true" mode="full"
|
|
|
|
context="attachment-toolbar-context-menu"
|
|
|
|
defaulticonsize="small" defaultmode="full"
|
|
|
|
defaultset="attachmentSaveAll"/>
|
|
|
|
</toolbox>
|
|
|
|
</hbox>
|
|
|
|
<attachmentlist orient="horizontal" id="attachmentList" flex="1"
|
|
|
|
seltype="multiple" context="attachmentListContext"
|
|
|
|
itemcontext="attachmentItemContext"
|
|
|
|
ondragstart="nsDragAndDrop.startDrag(event,attachmentListDNDObserver);"
|
|
|
|
ondragover="nsDragAndDrop.dragOver(event, attachmentListDNDObserver);"/>
|
|
|
|
</vbox>
|
|
|
|
|
|
|
|
</overlay>
|