gecko-dev/mail/base/content/aboutDialog.xul
scott%scott-macgregor.org 7ac1dd546b Bug #237603 --> Add a credits page to the Help/About dialog. Thanks to Ben Goodger and David Baron for doing all the hard work, letting
me just copy what they came up with for Firefox :).

Haven't finished putting together the names in the credits page yet.
2004-03-16 03:51:17 +00:00

145 lines
5.7 KiB
XML

<?xml version="1.0"?> <!-- -*- Mode: HTML -*- -->
# ***** 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 Thunderbird about dialog.
#
# The Initial Developer of the Original Code is
# Blake Ross (blaker@netscape.com).
# Portions created by the Initial Developer are Copyright (C) 2002
# 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 LGPL or the GPL. 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://messenger/content/aboutDialog.css" type="text/css"?>
<!DOCTYPE window [
<!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd" >
%brandDTD;
<!ENTITY % aboutDialogDTD SYSTEM "chrome://messenger/locale/aboutDialog.dtd" >
%aboutDialogDTD;
]>
<dialog xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
id="aboutDialog"
buttons="accept,extra2"
onload="onLoad();"
title="&aboutDialog.title;" creditslabel="&credits;" aboutlabel="&aboutLink;"
style="width: 299px; height: 330px;">
<script type="application/x-javascript">
<![CDATA[
function onLoad() {
var versionField = document.getElementById("versionField");
var hidversionField = document.getElementById("hidversionField");
var brandShortNameEl = document.getElementById("brandShortName");
hidversionField.value = brandShortNameEl.firstChild.nodeValue + ' ' + navigator.vendorSub + ' (' + navigator.productSub + ')';
versionField.value = hidversionField.value;
versionField.width = hidversionField.width;
var button = document.documentElement.getButton("extra2");
button.setAttribute("label", document.documentElement.getAttribute("creditslabel"));
gSelectedPage = 0;
button.addEventListener("command", switchPage, false);
}
function uninit(aEvent)
{
if (aEvent.target != document)
return;
var iframe = document.getElementById("creditsIframe");
iframe.setAttribute("src", "");
}
function loadExternalLink() {
try {
var messenger = Components.classes["@mozilla.org/messenger;1"].createInstance();
messenger = messenger.QueryInterface(Components.interfaces.nsIMessenger);
messenger.launchExternalURL(document.getElementById('copyrightLink').getAttribute("href"));
} catch (ex) {}
// return false, so we don't load the href in the about dialog
return false;
}
function switchPage(aEvent)
{
var button = aEvent.target;
if (button.localName != "button")
return;
var iframe = document.getElementById("creditsIframe");
if (gSelectedPage == 0) {
iframe.setAttribute("src", "chrome://messenger/locale/credits.html");
button.setAttribute("label", document.documentElement.getAttribute("aboutlabel"));
gSelectedPage = 1;
}
else {
iframe.setAttribute("src", "");
button.setAttribute("label", document.documentElement.getAttribute("creditslabel"));
gSelectedPage = 0;
}
var modes = document.getElementById("modes");
modes.setAttribute("selectedIndex", gSelectedPage);
}
]]>
</script>
<deck id="modes" flex="1">
<vbox flex="1" id="clientBox">
<vbox id="detailsBox" align="center" flex="1">
<separator class="thin"/>
<hbox>
<vbox>
<label id="hidversionField" style="padding: 0px; visibility: hidden; font-weight: bold;"/>
<textbox id="versionField" readonly="true" class="plain" style="padding-left: 6px !important;" tabindex="2"/>
</vbox>
</hbox>
<separator class="thin"/>
<html:a id="copyrightLink" onclick="return loadExternalLink();" href="&copyrightLink;" style="display: block;" tabindex="3">&copyrightText;</html:a>
</vbox>
</vbox>
<vbox flex="1" id="creditsBox">
<html:iframe style="border: 0px;" id="creditsIframe" src="chrome://messenger/locale/credits.html" flex="1"/>
</vbox>
</deck>
<separator class="groove" id="groove"/>
<!-- Localizable strings (from .dtd) -->
<strings style="display:none;">
<string id="brandShortName">&brandShortName;</string>
</strings>
</dialog>