зеркало из https://github.com/mozilla/snowl.git
177 строки
7.9 KiB
XML
177 строки
7.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!-- ***** 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 Snowl.
|
|
-
|
|
- The Initial Developer of the Original Code is Mozilla.
|
|
- Portions created by the Initial Developer are Copyright (C) 2008
|
|
- the Initial Developer. All Rights Reserved.
|
|
-
|
|
- Contributor(s):
|
|
- Myk Melez <myk@mozilla.org>
|
|
-
|
|
- 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://global/skin/" type="text/css"?>
|
|
<?xml-stylesheet href="chrome://snowl/content/river.css" type="text/css"?>
|
|
<?xml-stylesheet href="chrome://snowl/content/riverContent.css" type="text/css"?>
|
|
<?xml-stylesheet href="chrome://snowl/content/toolbarbutton.css" type="text/css"?>
|
|
|
|
<!-- We load overlays via xul-overlay processing instructions rather than
|
|
- chrome.manifest instructions because manifest instructions require us
|
|
- to specify the exact URL to overlay, and our URL changes based on
|
|
- query parameters that get set in response to user searches. -->
|
|
<?xul-overlay href="chrome://snowl/content/write.xul"?>
|
|
|
|
<!-- toolbar.dtd gives us writeButton.tooltip -->
|
|
<!DOCTYPE page [
|
|
<!ENTITY % riverDTD SYSTEM "chrome://snowl/locale/river.dtd">
|
|
%riverDTD;
|
|
<!ENTITY % toolbarDTD SYSTEM "chrome://snowl/locale/toolbar.dtd">
|
|
%toolbarDTD;
|
|
<!ENTITY % filterTextboxDTD SYSTEM "chrome://snowl/locale/filterTextbox.dtd">
|
|
%filterTextboxDTD;
|
|
]>
|
|
|
|
<page id="snowlRiver"
|
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
xmlns:html="http://www.w3.org/1999/xhtml"
|
|
title="&page.title;"
|
|
onload="SnowlMessageView.onLoad()">
|
|
|
|
<!-- Note: the page intentionally has no onunload handler, as onunload
|
|
- would suppress the bfcache, which would cause Firefox to reload the view
|
|
- every time the user goes back to it after following a link away from it,
|
|
- and we want the user to be able to return to the page without causing it
|
|
- to be reloaded, since a reload will lose the user's place on it. -->
|
|
|
|
<script type="application/javascript" src="chrome://snowl/locale/date.js"/>
|
|
<script type="application/javascript" src="chrome://snowl/content/river.js"/>
|
|
|
|
<keyset>
|
|
<key id="pageLeftKey" keycode="VK_PAGE_UP" oncommand="SnowlMessageView.doPageMove(-1)" disabled="true"/>
|
|
<key id="pageRightKey" keycode="VK_PAGE_DOWN" oncommand="SnowlMessageView.doPageMove(1)" disabled="true"/>
|
|
<key keycode="VK_PAGE_UP" modifiers="shift" oncommand="SnowlMessageView.doColumnMove(-1)"/>
|
|
<key keycode="VK_PAGE_DOWN" modifiers="shift" oncommand="SnowlMessageView.doColumnMove(1)"/>
|
|
<key keycode="VK_HOME" oncommand="SnowlMessageView.onHome()"/>
|
|
<key keycode="VK_END" oncommand="SnowlMessageView.onEnd()"/>
|
|
</keyset>
|
|
|
|
<panel id="sourcePanel" onpopupshowing="Sources.onPopupShowing(event)">
|
|
<button label="&unsubscribe.title;" oncommand="Sources.onCommandUnstoreButton(event)"/>
|
|
</panel>
|
|
|
|
<stack flex="1" align="start" pack="end" >
|
|
<hbox flex="1">
|
|
<vbox flex="1">
|
|
<toolbar id="toolbar" align="center">
|
|
<!-- <toolbarbutton oncommand="dump(new XMLSerializer().serializeToString(document))"/> -->
|
|
|
|
<toolbarbutton id="bodyButton"
|
|
type="checkbox"
|
|
persist="checked"
|
|
class="tabbable"
|
|
oncommand="SnowlMessageView.onCommandBodyButton(event)"
|
|
tooltiptext="&bodyButton.tooltip;"/>
|
|
<toolbarbutton id="columnsButton"
|
|
type="checkbox"
|
|
persist="checked"
|
|
class="tabbable"
|
|
oncommand="SnowlMessageView.onCommandColumnsButton(event)"
|
|
tooltiptext="&columnsButton.tooltip;"/>
|
|
|
|
<menulist id="periodMenu" oncommand="SnowlMessageView.onSelectPeriod(event)">
|
|
<menupopup id="periodMenuPopup">
|
|
<menuitem label="&periodDay.label;"
|
|
class="menuitem-iconic"
|
|
image="chrome://snowl/content/icons/date.png"/>
|
|
<menuitem label="&periodWeek.label;"
|
|
class="menuitem-iconic"
|
|
image="chrome://snowl/content/icons/calendar_view_week.png"/>
|
|
<menuitem label="&periodMonth.label;"
|
|
class="menuitem-iconic"
|
|
image="chrome://snowl/content/icons/calendar_view_month.png"/>
|
|
</menupopup>
|
|
</menulist>
|
|
|
|
<toolbarbutton id="decrementPeriodButton" label="<"
|
|
class="tabbable"
|
|
oncommand="SnowlMessageView.onDecrementPeriod()"
|
|
tooltiptext="&decrementPeriodButton.tooltip;"/>
|
|
<label id="periodLabel"/>
|
|
<toolbarbutton id="incrementPeriodButton" label=">"
|
|
class="tabbable"
|
|
oncommand="SnowlMessageView.onIncrementPeriod()"
|
|
tooltiptext="&incrementPeriodButton.tooltip;"/>
|
|
|
|
<spacer flex="1"/>
|
|
|
|
<!-- FIXME: change type="timed" to type="search" once we no longer
|
|
- support Firefox 3.0. -->
|
|
<textbox id="filterTextbox" type="timed" timeout="200"
|
|
emptytext="&filterTextbox.emptytext;"
|
|
oncommand="SnowlMessageView.onFilter()"
|
|
hidden="true"/>
|
|
</toolbar>
|
|
|
|
<stack id="contentStack" flex="1">
|
|
<html:div id="contentBox"
|
|
onoverflow="SnowlMessageView.onFlowChange(event)"
|
|
onunderflow="SnowlMessageView.onFlowChange(event)"/>
|
|
<splitter id="columnResizeSplitter" left="410"
|
|
onmousedown="splitterDragObserver.onMouseDown(event)"
|
|
onmouseup="splitterDragObserver.onMouseUp(event)"/>
|
|
</stack>
|
|
</vbox>
|
|
|
|
<splitter id="sidebarSplitter"/>
|
|
|
|
<vbox id="sidebar" style="width: 200px;">
|
|
<richlistbox id="sourcesList" flex="1" onselect="Sources.onSelect(event)"/>
|
|
|
|
<vbox id="writeForm"/>
|
|
|
|
<toolbar id="snowlToolbar">
|
|
<toolbarbutton id="snowlRefreshButton"
|
|
class="tabbable"
|
|
oncommand="SnowlMessageView.onRefresh()"
|
|
tooltiptext="&refreshButton.tooltip;"/>
|
|
<toolbarspring/>
|
|
<toolbarbutton id="writeButton" type="checkbox"
|
|
class="tabbable"
|
|
oncommand="SnowlMessageView.onToggleWrite(event)"
|
|
tooltiptext="&writeButton.tooltip;"/>
|
|
</toolbar>
|
|
</vbox>
|
|
|
|
</hbox>
|
|
|
|
<image id="dogmark" left="0" top="0" state="open" width="24" height="24"
|
|
onclick="SnowlMessageView.onClickDogmark(event)"/>
|
|
</stack>
|
|
</page>
|