зеркало из https://github.com/mozilla/pjs.git
430 строки
22 KiB
XML
430 строки
22 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"?>
|
|
|
|
<!DOCTYPE window [
|
|
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
|
|
%brandDTD;
|
|
<!ENTITY % messengerDTD SYSTEM "chrome://messenger/locale/messenger.dtd" >
|
|
%messengerDTD;
|
|
#ifdef TOOLBAR_CUSTOMIZATION_SHEET
|
|
<!ENTITY % customizeToolbarDTD SYSTEM "chrome://global/locale/customizeToolbar.dtd">
|
|
%customizeToolbarDTD;
|
|
#endif
|
|
]>
|
|
|
|
<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://global/content/contentAreaUtils.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="messageIdContext"/>
|
|
|
|
<tooltip id="folderpopup" class="folderSummaryPopup"/>
|
|
|
|
<popup id="messagePaneContext"/>
|
|
|
|
<toolbox id="mail-toolbox" class="toolbox-top">
|
|
</toolbox>
|
|
<tabmail id="tabmail" flex="1">
|
|
<box id="mailContent" orient="vertical" flex="1">
|
|
<box id="messengerBox" orient="horizontal" flex="1" minheight="100" height="100" persist="height">
|
|
<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"/>
|
|
<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"
|
|
context="folderPaneContext"
|
|
disableKeyNavigation="true"
|
|
datasources="rdf:null"
|
|
statedatasource="rdf:mailnewsfolders"
|
|
flags="dont-build-content"
|
|
ondraggesture="BeginDragFolderTree(event);"
|
|
onselect="FolderPaneSelectionChange();">
|
|
<treechildren tooltip="folderpopup"/>
|
|
<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">
|
|
<deck id="displayDeck" flex="1" selectedIndex="0"
|
|
minheight="100" height="100" persist="height"
|
|
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 -->
|
|
<hbox id="threadPaneBox">
|
|
<tree id="threadTree" persist="lastfoldersent width" 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"
|
|
label="&threadColumn.label;" tooltiptext="&threadColumn.tooltip;"/>
|
|
<splitter class="tree-splitter"/>
|
|
<treecol id="attachmentCol" persist="hidden ordinal" fixed="true"
|
|
class="treecol-image attachmentColumnHeader"
|
|
label="&attachmentColumn.label;" tooltiptext="&attachmentColumn.tooltip;"/>
|
|
<splitter class="tree-splitter"/>
|
|
<treecol id="flaggedCol" persist="hidden ordinal" fixed="true" cycler="true"
|
|
class="treecol-image flagColumnHeader"
|
|
label="&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"
|
|
label="&readColumn.label;" tooltiptext="&readColumn.tooltip;"/>
|
|
<splitter class="tree-splitter"/>
|
|
<treecol id="senderCol" persist="hidden swappedhidden ordinal width" flex="4"
|
|
hidden="false" swappedhidden="true"
|
|
label="&fromColumn.label;" tooltiptext="&fromColumn.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"
|
|
label="&junkStatusColumn.label;" tooltiptext="&junkStatusColumn.tooltip;"/>
|
|
<splitter class="tree-splitter"/>
|
|
<treecol id="receivedCol" persist="hidden ordinal width temphidden" flex="2" hidden="true"
|
|
label="&receivedColumn.label;" tooltiptext="&receivedColumn.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>
|
|
</hbox>
|
|
<!-- extensions may overlay in additional panels; don't assume that there are only 2! -->
|
|
</deck> <!-- displayDeck -->
|
|
|
|
<!-- 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="2" 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"
|
|
onresize="return messagePaneOnResize(event);"
|
|
disablesecurity="true" onclick="return contentAreaClick(event);"/>
|
|
<splitter id="attachment-splitter" collapse="after" resizebefore="closest" resizeafter="closest" collapsed="true"/>
|
|
<hbox id="attachmentView"/>
|
|
<findbar id="FindToolbar" browserid="messagepane"/>
|
|
</vbox>
|
|
</box>
|
|
</vbox>
|
|
</box>
|
|
</box> <!-- end of mailContent -->
|
|
|
|
</tabmail>
|
|
#ifdef TOOLBAR_CUSTOMIZATION_SHEET
|
|
<panel id="customizeToolbarSheetPopup" noautohide="true">
|
|
<iframe id="customizeToolbarSheetIFrame"
|
|
style="&dialog.style;"
|
|
src="chrome://global/content/customizeToolbar.xul"
|
|
hidden="true"/>
|
|
</panel>
|
|
#endif
|
|
|
|
<statusbar id="status-bar" class="chromeclass-status">
|
|
<statusbarpanel id="unreadMessageCount"/>
|
|
<statusbarpanel id="totalMessageCount"/>
|
|
</statusbar>
|
|
</window>
|