gecko-dev/mail/base/content/messenger.xul

419 строки
21 KiB
XML

<?xml version="1.0"?>
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla 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/MPL/
#
# 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 the Initial Developer are Copyright (C) 1998-1999
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
<?xml-stylesheet href="chrome://messenger/skin/mailWindow1.css" type="text/css"?>
<?xul-overlay href="chrome://global/content/globalOverlay.xul"?>
<?xul-overlay href="chrome://communicator/content/utilityOverlay.xul"?>
<?xul-overlay href="chrome://messenger/content/msgHdrViewOverlay.xul"?>
<?xul-overlay href="chrome://messenger/content/mailWindowOverlay.xul"?>
<?xul-overlay href="chrome://messenger/content/mailOverlay.xul"?>
<?xul-overlay href="chrome://communicator/content/contentAreaContextOverlay.xul"?>
<!DOCTYPE window [
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % messengerDTD SYSTEM "chrome://messenger/locale/messenger.dtd" >
%messengerDTD;
]>
<window id="messengerWindow"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:nc="http://home.netscape.com/NC-rdf#"
title="&titledefault.label;"
titlemodifier="&titledefault.label;"
titlemenuseparator="&titleSeparator.label;"
onload="OnLoadMessenger()"
onunload="OnUnloadMessenger()"
screenX="10" screenY="10"
persist="width height screenX screenY sizemode"
windowtype="mail:3pane">
<stringbundleset id="stringbundleset">
<stringbundle id="bundle_brand" src="chrome://branding/locale/brand.properties"/>
<stringbundle id="bundle_search" src="chrome://messenger/locale/search.properties"/>
</stringbundleset>
<script type="application/x-javascript" src="chrome://messenger/content/widgetglue.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/commandglue.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/shareglue.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/msgViewNavigation.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/mailWindow.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/msgMail3PaneWindow.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/mail3PaneWindowCommands.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/nsContextMenu.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/mailContextMenus.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/messengerdnd.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/accountUtils.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/msgAccountCentral.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/searchBar.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/phishingDetector.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/contentAreaClick.js"/>
<script type="application/x-javascript" src="chrome://global/content/nsDragAndDrop.js"/>
<script type="application/x-javascript" src="chrome://global/content/XPCNativeWrapper.js"/>
<!-- move needed functions into a single js file -->
<script type="application/x-javascript" src="chrome://messenger/content/threadPane.js"/>
<commandset id="mailCommands">
<commandset id="mailFileMenuItems"/>
<commandset id="mailViewMenuItems"/>
<commandset id="mailEditMenuItems"/>
<commandset id="mailEditContextMenuItems"/>
<commandset id="mailSearchMenuItems"/>
<commandset id="mailGoMenuItems"/>
<commandset id="mailMessageMenuItems"/>
<commandset id="mailToolbarItems"/>
<commandset id="mailGetMsgMenuItems"/>
<commandset id="mailMarkMenuItems"/>
<commandset id="mailToolsMenuItems"/>
<commandset id="globalEditMenuItems"/>
<commandset id="selectEditMenuItems"/>
<commandset id="clipboardEditMenuItems"/>
<commandset id="FocusRingUpdate_Mail"
commandupdater="true"
events="focus"
oncommandupdate="FocusRingUpdate_Mail()"/>
<commandset id="tasksCommands"/>
#ifdef XP_MACOSX
<commandset id="macWindowMenuItems"/>
#endif
</commandset>
<broadcasterset id="mailBroadcasters">
<!-- File Menu -->
<broadcaster id="Communicator:WorkMode"/>
<!-- Edit Menu -->
</broadcasterset>
<keyset id="mailKeys">
<keyset id="tasksKeys"/>
</keyset>
<popup id="threadPaneContext"/>
<popup id="folderPaneContext"/>
<popup id="attachmentListContext"/>
<popup id="copyUrlPopup"/>
<popup id="toolbar-context-menu"/>
<tooltip id="attachmentListTooltip"/>
<popup id="emailAddressPopup" popupanchor="bottomleft" onpopupshowing="fillEmailAddressPopup(document.popupNode); goUpdateCommand('cmd_createFilterFromPopup')">
<menuitem id="emailAddressPlaceHolder" label=""
disabled="true"/>
<menuseparator/>
<menuitem label="&AddToAddressBook.label;"
accesskey="&AddToAddressBook.accesskey;"
oncommand="AddNodeToAddressBook(document.popupNode)"/>
<menuitem label="&SendMailTo.label;"
accesskey="&SendMailTo.accesskey;"
oncommand="SendMailToNode(document.popupNode)"/>
<menuitem label="&CopyEmailAddress.label;"
accesskey="&CopyEmailAddress.accesskey;"
oncommand="CopyEmailAddress(document.popupNode)"/>
<menuseparator/>
<menuitem label="&CreateFilter.label;"
accesskey="&CreateFilter.accesskey;"
oncommand="CreateFilter(document.popupNode)"
observes="cmd_createFilterFromPopup"/>
</popup>
<popup id="allHeadersPopup" onpopupshowing="return fillAllHeadersPopup(document.popupNode);" popupanchor="bottomleft">
<hbox id="allHeadersPopupContainer">
</hbox>
</popup>
<tooltip id="folderpopup" class="folderSummaryPopup"/>
<popup id="messagePaneContext"/>
<toolbox id="mail-toolbox" class="toolbox-top">
</toolbox>
<!-- when we move to the alternate 3-pane, mailContentWrapper gets toggled to a vertical orientation -->
<box id="mailContentWrapper" orient="horizontal" flex="1">
<hbox id="mailContent" flex="1">
<vbox id="folderPaneBox" minwidth="100" width="200" persist="collapsed width">
<label id="folderColumnLabel" hidden="true" value="&folderColumn.label;"/>
<sidebarheader id="folderPaneHeader" align="center">
<label id="folderpane-title" onclick="CycleFolderView(true);"/>
<spacer flex="1"/>
<toolbarbutton id="folderview-cycler-left" class="folderview-cycler"
onclick="CycleFolderView(false);"/>
<toolbarbutton id="folderview-cycler-right" class="folderview-cycler"
onclick="CycleFolderView(true);"/>
</sidebarheader>
<tree id="folderTree" class="plain focusring" flex="1" seltype="text"
context="folderPaneContext"
disableKeyNavigation="true"
datasources="rdf:null"
statedatasource="rdf:mailnewsfolders"
flags="dont-build-content"
tooltip="folderpopup"
ondraggesture="BeginDragFolderTree(event);"
onselect="FolderPaneSelectionChange();">
<template>
<rule>
<conditions>
<content uri="?container"/>
<member container="?container" child="?member" />
<triple subject="?member" predicate="http://home.netscape.com/NC-rdf#IsDeferred" object="false"/>
</conditions>
<bindings>
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#FolderTreeName"
object="?folderTreeName" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#FolderTreeName?sort=true"
object="?folderTreeNameSort" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#FolderTreeSimpleName"
object="?folderTreeSimpleName" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#SpecialFolder"
object="?specialFolder" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#BiffState"
object="?biffState" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#IsServer"
object="?isServer" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#NewMessages"
object="?newMessages" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#HasUnreadMessages"
object="?hasUnreadMessages" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#SubfoldersHaveUnreadMessages"
object="?subfoldersHaveUnreadMessages" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#IsSecure"
object="?isSecure" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#ServerType"
object="?serverType" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#RedirectorType"
object="?redirectorType" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#NoSelect"
object="?noSelect" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#ImapShared"
object="?imapShared" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#TotalUnreadMessages"
object="?unreadCount" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#TotalMessages"
object="?totalCount" />
<binding subject="?member"
predicate="http://home.netscape.com/NC-rdf#FolderSize"
object="?folderSize" />
</bindings>
<action>
<treechildren>
<treeitem uri="?member">
<treerow>
<treecell id="folderNameCell"
label="?folderTreeName"
properties="specialFolder-?specialFolder biffState-?biffState isServer-?isServer newMessages-?newMessages hasUnreadMessages-?hasUnreadMessages subfoldersHaveUnreadMessages-?subfoldersHaveUnreadMessages isSecure-?isSecure serverType-?serverType redirectorType-?redirectorType noSelect-?noSelect imapShared-?imapShared"/>
<treecell label="?unreadCount"
properties="hasUnreadMessages-?hasUnreadMessages subfoldersHaveUnreadMessages-?subfoldersHaveUnreadMessages"/>
<treecell label="?totalCount"
properties="hasUnreadMessages-?hasUnreadMessages subfoldersHaveUnreadMessages-?subfoldersHaveUnreadMessages"/>
<treecell label="?folderSize"/>
</treerow>
</treeitem>
</treechildren>
</action>
</rule>
</template>
<treecols>
<treecol id="folderNameCol"
flex="5"
crop="center"
persist="width"
hideheader="true"
ignoreincolumnpicker="true"
primary="true"
sort="?folderTreeNameSort"
sortActive="true"
sortDirection="ascending"/>
<splitter class="tree-splitter"/>
<treecol id="folderUnreadCol"
persist="hidden width"
flex="1"
label="&unreadColumn.label;"
selectable="false"/>
<splitter class="tree-splitter"/>
<treecol id="folderTotalCol"
persist="hidden width"
flex="1"
label="&totalColumn.label;"
selectable="false"/>
<splitter class="tree-splitter"/>
<treecol id="folderSizeCol"
persist="hidden width"
flex="1"
label="&folderSizeColumn.label;"
selectable="false"/>
</treecols>
</tree>
</vbox>
<splitter id="folderpane_splitter" collapse="before" persist="state"/>
<vbox flex="1">
<box orient="vertical" id="messagesBox" flex="1">
<hbox id="messengerBox" flex="1" minheight="100" height="100" persist="height">
<deck id="displayDeck" flex="1" selectedIndex="0"
onselect="ObserveDisplayDeckChange(event)">
<!-- first panel in displayDeck is Account Central -->
<vbox id="accountCentralBox" flex="1">
<iframe name="accountCentralPane" width="150" flex="1" src="about:blank"/>
</vbox>
<!-- second panel is the threadPane -->
<vbox id="threadPaneBox" flex="1">
<tree id="threadTree" persist="lastfoldersent" flex="2" enableColumnDrag="true" _selectDelay="500" class="plain focusring" lastfoldersent="false"
disableKeyNavigation="true"
context="threadPaneContext"
onkeypress="ThreadPaneKeyPress(event);"
onselect="ThreadPaneSelectionChanged();">
<treecols id="threadCols" pickertooltiptext="&columnChooser.tooltip;">
<treecol id="threadCol" persist="hidden ordinal" fixed="true" cycler="true"
class="treecol-image threadColumnHeader" currentView="unthreaded"
display="&threadColumn.label;" tooltiptext="&threadColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="attachmentCol" persist="hidden ordinal" fixed="true"
class="treecol-image attachmentColumnHeader"
display="&attachmentColumn.label;" tooltiptext="&attachmentColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="flaggedCol" persist="hidden ordinal" fixed="true" cycler="true"
class="treecol-image flagColumnHeader"
display="&starredColumn.label;" tooltiptext="&starredColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="subjectCol" persist="hidden ordinal width" flex="7" ignoreincolumnpicker="true"
label="&subjectColumn.label;" tooltiptext="&subjectColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="unreadButtonColHeader" persist="hidden ordinal" fixed="true" cycler="true"
class="treecol-image readColumnHeader"
display="&readColumn.label;" tooltiptext="&readColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="senderCol" persist="hidden swappedhidden ordinal width" flex="4"
hidden="false" swappedhidden="true"
label="&senderColumn.label;" tooltiptext="&senderColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="recipientCol" persist="hidden swappedhidden ordinal width" flex="4"
hidden="true" swappedhidden="false"
label="&recipientColumn.label;" tooltiptext="&recipientColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="junkStatusCol" persist="hidden ordinal width" fixed="true" cycler="true"
class="treecol-image junkStatusHeader"
display="&junkStatusColumn.label;" tooltiptext="&junkStatusColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="dateCol" persist="hidden ordinal width" flex="2"
label="&dateColumn.label;" tooltiptext="&dateColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="statusCol" persist="hidden ordinal width" flex="1" hidden="true"
label="&statusColumn.label;" tooltiptext="&statusColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="sizeCol" persist="hidden ordinal width" flex="1" hidden="true"
label="&sizeColumn.label;" tooltiptext="&sizeColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="tagsCol" persist="hidden ordinal width" flex="1" hidden="true"
label="&tagsColumn.label;" tooltiptext="&tagsColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="accountCol" persist="hidden ordinal width" flex="1" hidden="true"
label="&accountColumn.label;" tooltiptext="&accountColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="priorityCol" persist="hidden ordinal width" flex="1" hidden="true"
label="&priorityColumn.label;" tooltiptext="&priorityColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="unreadCol" persist="hidden ordinal width" flex="1" hidden="true"
label="&unreadColumn.label;" tooltiptext="&unreadColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="totalCol" persist="hidden ordinal width" flex="1" hidden="true"
label="&totalColumn.label;" tooltiptext="&totalColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="locationCol" persist="width" flex="1" hidden="true" ignoreincolumnpicker="true"
label="&locationColumn.label;" tooltiptext="&locationColumn.tooltip;"/>
<splitter class="tree-splitter"/>
<treecol id="idCol" persist="hidden ordinal width" flex="1" hidden="true"
label="&idColumn.label;" tooltiptext="&idColumn.tooltip;"/>
</treecols>
<treechildren ondraggesture="BeginDragThreadPane(event);"/>
</tree>
</vbox>
<!-- extensions may overlay in additional panels; don't assume that there are only 2! -->
</deck> <!-- displayDeck -->
</hbox>
<!-- if you change this id, please change GetThreadAndMessagePaneSplitter() and MsgToggleMessagePane() -->
<splitter id="threadpane-splitter" collapse="after" persist="state" collapsed="true"
onmouseup="OnMouseUpThreadAndMessagePaneSplitter()"/>
<vbox id="messagepanebox" flex="1" minheight="100" height="200"
minwidth="100" width="200" persist="height width">
<deck id="msgNotificationBar"/>
<hbox id="msgHeaderView"/>
<browser id="messagepane" context="messagePaneContext" autofind="false"
minheight="1" flex="1" name="messagepane"
disablehistory="true" type="content-primary" src="about:blank"
disablesecurity="true" onclick="return contentAreaClick(event);"/>
<hbox id="attachmentView"/>
<toolbar id="FindToolbar"/>
</vbox>
</box>
</vbox>
</hbox>
</box> <!-- end of mailContentWrapper -->
<statusbar id="status-bar" class="chromeclass-status">
<statusbarpanel id="unreadMessageCount"/>
<statusbarpanel id="totalMessageCount"/>
</statusbar>
</window>