This commit is contained in:
chanial%noos.fr 2003-10-26 04:28:25 +00:00
Родитель 8ec368e5a6
Коммит 59d8595898
13 изменённых файлов: 939 добавлений и 94 удалений

Просмотреть файл

@ -0,0 +1,526 @@
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: NPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Netscape 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/NPL/
*
* 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.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1998
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Masaki Katakai <katakai@japan.sun.com>
* Roland Mainz <roland.mainz@informatik.med.uni-giessen.de>
* Asko Tontti <atontti@cc.hut.fi>
*
* 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 NPL, 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 NPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gDialog;
var paramBlock;
var gPrefs = null;
var gPrintService = null;
var gPrintSettings = null;
var gStringBundle = null;
var gDoingMetric = false;
var gPrintSettingsInterface = Components.interfaces.nsIPrintSettings;
var gDoDebug = false;
//---------------------------------------------------
function initDialog()
{
gDialog = new Object;
gDialog.orientation = document.getElementById("orientation");
gDialog.portrait = document.getElementById("portrait");
gDialog.landscape = document.getElementById("landscape");
gDialog.printBG = document.getElementById("printBG");
gDialog.shrinkToFit = document.getElementById("shrinkToFit");
gDialog.marginGroup = document.getElementById("marginGroup");
gDialog.marginPage = document.getElementById("marginPage");
gDialog.marginTop = document.getElementById("marginTop");
gDialog.marginBottom = document.getElementById("marginBottom");
gDialog.marginLeft = document.getElementById("marginLeft");
gDialog.marginRight = document.getElementById("marginRight");
gDialog.topInput = document.getElementById("topInput");
gDialog.bottomInput = document.getElementById("bottomInput");
gDialog.leftInput = document.getElementById("leftInput");
gDialog.rightInput = document.getElementById("rightInput");
gDialog.hLeftOption = document.getElementById("hLeftOption");
gDialog.hCenterOption = document.getElementById("hCenterOption");
gDialog.hRightOption = document.getElementById("hRightOption");
gDialog.fLeftOption = document.getElementById("fLeftOption");
gDialog.fCenterOption = document.getElementById("fCenterOption");
gDialog.fRightOption = document.getElementById("fRightOption");
gDialog.scalingLabel = document.getElementById("scalingInput");
gDialog.scalingInput = document.getElementById("scalingInput");
gDialog.enabled = false;
gDialog.strings = new Array;
gDialog.strings[ "marginUnits.inches" ] = document.getElementById("marginUnits.inches").childNodes[0].nodeValue;
gDialog.strings[ "marginUnits.metric" ] = document.getElementById("marginUnits.metric").childNodes[0].nodeValue;
gDialog.strings[ "customPrompt.title" ] = document.getElementById("customPrompt.title").childNodes[0].nodeValue;
gDialog.strings[ "customPrompt.prompt" ] = document.getElementById("customPrompt.prompt").childNodes[0].nodeValue;
}
//---------------------------------------------------
function isListOfPrinterFeaturesAvailable()
{
var has_printerfeatures = false;
try {
has_printerfeatures = gPrefs.getBoolPref("print.tmp.printerfeatures." + gPrintSettings.printerName + ".has_special_printerfeatures");
} catch(ex) {
}
return has_printerfeatures;
}
//---------------------------------------------------
function checkDouble(element)
{
var value = element.value;
if (value && value.length > 0) {
value = value.replace(/[^\.|^0-9]/g,"");
if (!value) value = "";
element.value = value;
}
}
// Theoretical paper width/height.
var gPageWidth = 8.5;
var gPageHeight = 11.0;
//---------------------------------------------------
function setOrientation()
{
var selection = gDialog.orientation.selectedItem;
var style = "background-color:white;";
if ((selection == gDialog.portrait && gPageWidth > gPageHeight) ||
(selection == gDialog.landscape && gPageWidth < gPageHeight)) {
// Swap width/height.
var temp = gPageHeight;
gPageHeight = gPageWidth;
gPageWidth = temp;
}
var div = gDoingMetric ? 100 : 10;
style += "width:" + gPageWidth/div + unitString() + ";height:" + gPageHeight/div + unitString() + ";";
gDialog.marginPage.setAttribute( "style", style );
}
//---------------------------------------------------
function unitString()
{
return (gPrintSettings.paperSizeUnit == gPrintSettingsInterface.kPaperSizeInches) ? "in" : "mm";
}
//---------------------------------------------------
function checkMargin( value, max, other )
{
// Don't draw this margin bigger than permitted.
return Math.min(value, max - other.value);
}
//---------------------------------------------------
function changeMargin( node )
{
// Correct invalid input.
checkDouble(node);
// Reset the margin height/width for this node.
var val = node.value;
var nodeToStyle;
var attr="width";
if ( node == gDialog.topInput ) {
nodeToStyle = gDialog.marginTop;
val = checkMargin( val, gPageHeight, gDialog.bottomInput );
attr = "height";
} else if ( node == gDialog.bottomInput ) {
nodeToStyle = gDialog.marginBottom;
val = checkMargin( val, gPageHeight, gDialog.topInput );
attr = "height";
} else if ( node == gDialog.leftInput ) {
nodeToStyle = gDialog.marginLeft;
val = checkMargin( val, gPageWidth, gDialog.rightInput );
} else {
nodeToStyle = gDialog.marginRight;
val = checkMargin( val, gPageWidth, gDialog.leftInput );
}
var style = attr + ":" + (val/10) + unitString() + ";";
nodeToStyle.setAttribute( "style", style );
}
//---------------------------------------------------
function changeMargins()
{
changeMargin( gDialog.topInput );
changeMargin( gDialog.bottomInput );
changeMargin( gDialog.leftInput );
changeMargin( gDialog.rightInput );
}
//---------------------------------------------------
function customize( node )
{
// If selection is now "Custom..." then prompt user for custom setting.
if ( node.value == 6 ) {
var prompter = Components.classes[ "@mozilla.org/embedcomp/prompt-service;1" ]
.getService( Components.interfaces.nsIPromptService );
var title = gDialog.strings[ "customPrompt.title" ];
var promptText = gDialog.strings[ "customPrompt.prompt" ];
var result = { value: node.custom };
var ok = prompter.prompt(window, title, promptText, result, null, { value: false } );
if ( ok ) {
node.custom = result.value;
}
}
}
//---------------------------------------------------
function setHeaderFooter( node, value )
{
node.value= hfValueToId(value);
if (node.value == 6) {
// Remember current Custom... value.
node.custom = value;
} else {
// Start with empty Custom... value.
node.custom = "";
}
}
//---------------------------------------------------
function getDoubleStr(val, dec)
{
var str = val.toString();
var inx = str.indexOf(".");
return str.substring(0, inx+dec+1);
}
var gHFValues = new Array;
gHFValues[ "&T" ] = 1;
gHFValues[ "&U" ] = 2;
gHFValues[ "&D" ] = 3;
gHFValues[ "&P" ] = 4;
gHFValues[ "&PT" ] = 5;
function hfValueToId(val)
{
if ( val in gHFValues ) {
return gHFValues[val];
}
if ( val.length ) {
return 6; // Custom...
} else {
return 0; // --blank--
}
}
function hfIdToValue(node)
{
var result = "";
switch ( parseInt( node.value ) ) {
case 0:
break;
case 1:
result = "&T";
break;
case 2:
result = "&U";
break;
case 3:
result = "&D";
break;
case 4:
result = "&P";
break;
case 5:
result = "&PT";
break;
case 6:
result = node.custom;
break;
}
return result;
}
function setPrinterDefaultsForSelectedPrinter()
{
if (gPrintSettings.printerName == "") {
gPrintSettings.printerName = gPrintService.defaultPrinterName;
}
// First get any defaults from the printer
gPrintService.initPrintSettingsFromPrinter(gPrintSettings.printerName, gPrintSettings);
// now augment them with any values from last time
gPrintService.initPrintSettingsFromPrefs(gPrintSettings, true, gPrintSettingsInterface.kInitSaveAll);
if (gDoDebug) {
dump("pagesetup/setPrinterDefaultsForSelectedPrinter: printerName='"+gPrintSettings.printerName+"', orientation='"+gPrintSettings.orientation+"'\n");
}
}
//---------------------------------------------------
function loadDialog()
{
var print_orientation = 0;
var print_margin_top = 0.5;
var print_margin_left = 0.5;
var print_margin_bottom = 0.5;
var print_margin_right = 0.5;
try {
gPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
gPrintService = Components.classes["@mozilla.org/gfx/printsettings-service;1"];
if (gPrintService) {
gPrintService = gPrintService.getService();
if (gPrintService) {
gPrintService = gPrintService.QueryInterface(Components.interfaces.nsIPrintSettingsService);
}
}
} catch(ex) {
dump("loadDialog: ex="+ex+"\n");
}
setPrinterDefaultsForSelectedPrinter();
gDialog.printBG.checked = gPrintSettings.printBGColors || gPrintSettings.printBGImages;
gDialog.shrinkToFit.checked = gPrintSettings.shrinkToFit;
gDialog.scalingLabel.disabled = gDialog.scalingInput.disabled = gDialog.shrinkToFit.checked;
var marginGroupLabel = gDialog.marginGroup.label;
if (gPrintSettings.paperSizeUnit == gPrintSettingsInterface.kPaperSizeInches) {
marginGroupLabel = marginGroupLabel.replace(/#1/, gDialog.strings["marginUnits.inches"]);
gDoingMetric = false;
} else {
marginGroupLabel = marginGroupLabel.replace(/#1/, gDialog.strings["marginUnits.metric"]);
// Also, set global page dimensions for A4 paper, in millimeters (assumes portrait at this point).
gPageWidth = 2100;
gPageHeight = 2970;
gDoingMetric = true;
}
gDialog.marginGroup.label = marginGroupLabel;
print_orientation = gPrintSettings.orientation;
print_margin_top = convertMarginInchesToUnits(gPrintSettings.marginTop, gDoingMetric);
print_margin_left = convertMarginInchesToUnits(gPrintSettings.marginLeft, gDoingMetric);
print_margin_right = convertMarginInchesToUnits(gPrintSettings.marginRight, gDoingMetric);
print_margin_bottom = convertMarginInchesToUnits(gPrintSettings.marginBottom, gDoingMetric);
if (gDoDebug) {
dump("print_orientation "+print_orientation+"\n");
dump("print_margin_top "+print_margin_top+"\n");
dump("print_margin_left "+print_margin_left+"\n");
dump("print_margin_right "+print_margin_right+"\n");
dump("print_margin_bottom "+print_margin_bottom+"\n");
}
if (print_orientation == gPrintSettingsInterface.kPortraitOrientation) {
gDialog.orientation.selectedItem = gDialog.portrait;
} else if (print_orientation == gPrintSettingsInterface.kLandscapeOrientation) {
gDialog.orientation.selectedItem = gDialog.landscape;
}
// Set orientation the first time on a timeout so the dialog sizes to the
// maximum height specified in the .xul file. Otherwise, if the user switches
// from landscape to portrait, the content grows and the buttons are clipped.
setTimeout( setOrientation, 0 );
gDialog.topInput.value = getDoubleStr(print_margin_top, 1);
gDialog.bottomInput.value = getDoubleStr(print_margin_bottom, 1);
gDialog.leftInput.value = getDoubleStr(print_margin_left, 1);
gDialog.rightInput.value = getDoubleStr(print_margin_right, 1);
changeMargins();
setHeaderFooter( gDialog.hLeftOption, gPrintSettings.headerStrLeft );
setHeaderFooter( gDialog.hCenterOption, gPrintSettings.headerStrCenter );
setHeaderFooter( gDialog.hRightOption, gPrintSettings.headerStrRight );
setHeaderFooter( gDialog.fLeftOption, gPrintSettings.footerStrLeft );
setHeaderFooter( gDialog.fCenterOption, gPrintSettings.footerStrCenter );
setHeaderFooter( gDialog.fRightOption, gPrintSettings.footerStrRight );
gDialog.scalingInput.value = getDoubleStr(gPrintSettings.scaling * 100.0, 3);
// Enable/disable widgets based in the information whether the selected
// printer supports the matching feature or not
if (isListOfPrinterFeaturesAvailable()) {
if (gPrefs.getBoolPref("print.tmp.printerfeatures." + gPrintSettings.printerName + ".can_change_orientation"))
gDialog.orientation.removeAttribute("disabled");
else
gDialog.orientation.setAttribute("disabled","true");
}
// Give initial focus to the orientation radio group.
// Done on a timeout due to to bug 103197.
setTimeout( function() { gDialog.orientation.focus(); }, 0 );
}
//---------------------------------------------------
function onLoad()
{
// Init gDialog.
initDialog();
if (window.arguments[0] != null) {
gPrintSettings = window.arguments[0].QueryInterface(Components.interfaces.nsIPrintSettings);
paramBlock = window.arguments[1].QueryInterface(Components.interfaces.nsIDialogParamBlock);
} else if (gDoDebug) {
alert("window.arguments[0] == null!");
}
// default return value is "cancel"
paramBlock.SetInt(0, 0);
if (gPrintSettings) {
loadDialog();
} else if (gDoDebug) {
alert("Could initialize gDialog, PrintSettings is null!");
}
}
function convertUnitsMarginToInches(aVal, aIsMetric)
{
if (aIsMetric) {
return aVal / 25.4;
} else {
return aVal;
}
}
function convertMarginInchesToUnits(aVal, aIsMetric)
{
if (aIsMetric) {
return aVal * 25.4;
} else {
return aVal;
}
}
//---------------------------------------------------
function onAccept()
{
if (gPrintSettings) {
if ( gDialog.orientation.selectedItem == gDialog.portrait ) {
gPrintSettings.orientation = gPrintSettingsInterface.kPortraitOrientation;
} else {
gPrintSettings.orientation = gPrintSettingsInterface.kLandscapeOrientation;
}
// save these out so they can be picked up by the device spec
gPrintSettings.marginTop = convertUnitsMarginToInches(gDialog.topInput.value, gDoingMetric);
gPrintSettings.marginLeft = convertUnitsMarginToInches(gDialog.leftInput.value, gDoingMetric);
gPrintSettings.marginBottom = convertUnitsMarginToInches(gDialog.bottomInput.value, gDoingMetric);
gPrintSettings.marginRight = convertUnitsMarginToInches(gDialog.rightInput.value, gDoingMetric);
gPrintSettings.headerStrLeft = hfIdToValue(gDialog.hLeftOption);
gPrintSettings.headerStrCenter = hfIdToValue(gDialog.hCenterOption);
gPrintSettings.headerStrRight = hfIdToValue(gDialog.hRightOption);
gPrintSettings.footerStrLeft = hfIdToValue(gDialog.fLeftOption);
gPrintSettings.footerStrCenter = hfIdToValue(gDialog.fCenterOption);
gPrintSettings.footerStrRight = hfIdToValue(gDialog.fRightOption);
gPrintSettings.printBGColors = gDialog.printBG.checked;
gPrintSettings.printBGImages = gDialog.printBG.checked;
gPrintSettings.shrinkToFit = gDialog.shrinkToFit.checked;
var scaling = document.getElementById("scalingInput").value;
if (scaling < 10.0) {
scaling = 10.0;
}
if (scaling > 500.0) {
scaling = 500.0;
}
scaling /= 100.0;
gPrintSettings.scaling = scaling;
if (gDoDebug) {
dump("******* Page Setup Accepting ******\n");
dump("print_margin_top "+gDialog.topInput.value+"\n");
dump("print_margin_left "+gDialog.leftInput.value+"\n");
dump("print_margin_right "+gDialog.bottomInput.value+"\n");
dump("print_margin_bottom "+gDialog.rightInput.value+"\n");
}
}
// set return value to "ok"
if (paramBlock) {
paramBlock.SetInt(0, 1);
} else {
dump("*** FATAL ERROR: No paramBlock\n");
}
var flags = gPrintSettingsInterface.kInitSaveMargins |
gPrintSettingsInterface.kInitSaveHeaderLeft |
gPrintSettingsInterface.kInitSaveHeaderCenter |
gPrintSettingsInterface.kInitSaveHeaderRight |
gPrintSettingsInterface.kInitSaveFooterLeft |
gPrintSettingsInterface.kInitSaveFooterCenter |
gPrintSettingsInterface.kInitSaveFooterRight |
gPrintSettingsInterface.kInitSaveBGColors |
gPrintSettingsInterface.kInitSaveBGImages |
gPrintSettingsInterface.kInitSaveInColor |
gPrintSettingsInterface.kInitSaveReversed |
gPrintSettingsInterface.kInitSaveOrientation |
gPrintSettingsInterface.kInitSaveOddEvenPages;
gPrintService.savePrintSettingsToPrefs(gPrintSettings, true, flags);
return true;
}
//---------------------------------------------------
function onCancel()
{
// set return value to "cancel"
if (paramBlock) {
paramBlock.SetInt(0, 0);
} else {
dump("*** FATAL ERROR: No paramBlock\n");
}
return true;
}

Просмотреть файл

@ -0,0 +1,231 @@
<?xml version="1.0"?> <!-- -*- Mode: HTML -*- -->
<!--
The contents of this file are subject to the Netscape 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/NPL/
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 Netscape are
Copyright (C) 1998-1999 Netscape Communications Corporation. All
Rights Reserved.
Contributor(s):
Masaki Katakai <katakai@japan.sun.com>
Dan Rosen <dr@netscape.com>
Roland Mainz <roland.mainz@informatik.med.uni-giessen.de>
Asko Tontti <atontti@cc.hut.fi>
Rod Spears <rods@netscape.com>
Bill Law <law@netscape.com>
-->
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://global/skin/printing/printing.css" type="text/css"?>
<!DOCTYPE dialog SYSTEM "chrome://global/locale/printing/printPageSetup.dtd">
<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="onLoad();"
ondialogaccept="return onAccept();"
oncancel="return onCancel();"
title="&printSetup.title;"
persist="screenX screenY"
screenX="24" screenY="24">
<script type="application/x-javascript" src="chrome://global/content/printing/printPageSetup.js"/>
<!-- Localizable strings manipulated at run-time. -->
<data id="marginUnits.inches">&marginUnits.inches;</data>
<data id="marginUnits.metric">&marginUnits.metric;</data>
<data id="customPrompt.title">&customPrompt.title;</data>
<data id="customPrompt.prompt">&customPrompt.prompt;</data>
<tabbox>
<tabs>
<tab label="&basic.tab;"/>
<tab label="&advanced.tab;"/>
</tabs>
<tabpanels>
<tabpanel orient="vertical">
<groupbox>
<caption label="&formatGroup.label;"/>
<vbox>
<hbox align="center">
<label value="&orientation.label;"/>
<radiogroup id="orientation" oncommand="setOrientation()" tabindex="1">
<hbox align="center">
<radio id="portrait" class="portrait-page" label="&portrait;"/>
<radio id="landscape" class="landscape-page" label="&landscape;"/>
</hbox>
</radiogroup>
</hbox>
<separator/>
<hbox align="center">
<label value="&scale.label;"/>
<textbox id="scalingInput" size="4" onfocus="this.select()" oninput="checkDouble(this)" tabindex="1"/>
<label value="&scalePercent;"/>
<separator/>
<checkbox id="shrinkToFit" label="&shrinkToFit.label;" tabindex="1"
oncommand="gDialog.scalingInput.disabled=gDialog.scalingLabel.disabled=this.checked"/>
</hbox>
</vbox>
</groupbox>
<groupbox>
<caption label="&optionsGroup.label;"/>
<checkbox id="printBG" label="&printBG.label;" tabindex="1"/>
</groupbox>
</tabpanel>
<tabpanel orient="vertical">
<groupbox>
<caption id="marginGroup" label="&marginGroup.label;"/>
<vbox>
<hbox align="center">
<spacer flex="1"/>
<label value="&marginTop.label;"/>
<textbox id="topInput" size="5" oninput="changeMargin(this)" onfocus="this.select()" tabindex="1"/>
<!-- This invisible label (with same content as the visible one!) is used
to ensure that the <textbox> is centered above the page. The same
technique is deployed for the bottom/left/right input fields, below. -->
<label value="&marginTop.label;" style="visibility: hidden;"/>
<spacer flex="1"/>
</hbox>
<hbox>
<spacer flex="1"/>
<vbox>
<spacer flex="1"/>
<label value="&marginLeft.label;"/>
<textbox id="leftInput" size="5" oninput="changeMargin(this)" onfocus="this.select()" tabindex="1"/>
<label value="&marginLeft.label;" style="visibility: hidden;"/>
<spacer flex="1"/>
</vbox>
<!-- The "margin page" draws a simulated printout page with dashed lines
for the margins. The height/width style attributes of the marginTop,
marginBottom, marginLeft, and marginRight elements are set by
the JS code dynamically based on the user input. -->
<vbox id="marginPage" style="height:29.7mm;">
<box id="marginTop" style="height:0.05in;"/>
<hbox flex="1">
<box id="marginLeft" style="width:0.025in;"/>
<box style="border: 1px; border-style: dashed; border-color: gray;" flex="1"/>
<box id="marginRight" style="width:0.025in;"/>
</hbox>
<box id="marginBottom" style="height:0.05in;"/>
</vbox>
<vbox>
<spacer flex="1"/>
<label value="&marginRight.label;"/>
<textbox id="rightInput" size="5" oninput="changeMargin(this)" onfocus="this.select()" tabindex="1"/>
<label value="&marginRight.label;" style="visibility: hidden;"/>
<spacer flex="1"/>
</vbox>
<spacer flex="1"/>
</hbox>
<hbox align="center">
<spacer flex="1"/>
<label value="&marginBottom.label;"/>
<textbox id="bottomInput" size="5" oninput="changeMargin(this)" onfocus="this.select()" tabindex="1"/>
<label value="&marginBottom.label;" style="visibility: hidden;"/>
<spacer flex="1"/>
</hbox>
</vbox>
</groupbox>
<groupbox>
<caption id="headersAndFooters" label="&headerFooter.label;"/>
<hbox>
<vbox>
<menulist id="hLeftOption" oncommand="customize(this)" tabindex="2">
<menupopup>
<menuitem value="0" label="&hfBlank;"/>
<menuitem value="1" label="&hfTitle;"/>
<menuitem value="2" label="&hfURL;"/>
<menuitem value="3" label="&hfDateAndTime;"/>
<menuitem value="4" label="&hfPage;"/>
<menuitem value="5" label="&hfPageAndTotal;"/>
<menuitem value="6" label="&hfCustom;"/>
</menupopup>
</menulist>
<vbox align="center">
<label value="&hfLeft.label;"/>
</vbox>
<menulist id="fLeftOption" oncommand="customize(this)" tabindex="3">
<menupopup>
<menuitem value="0" label="&hfBlank;"/>
<menuitem value="1" label="&hfTitle;"/>
<menuitem value="2" label="&hfURL;"/>
<menuitem value="3" label="&hfDateAndTime;"/>
<menuitem value="4" label="&hfPage;"/>
<menuitem value="5" label="&hfPageAndTotal;"/>
<menuitem value="6" label="&hfCustom;"/>
</menupopup>
</menulist>
</vbox>
<vbox>
<menulist id="hCenterOption" oncommand="customize(this)" tabindex="2">
<menupopup>
<menuitem value="0" label="&hfBlank;"/>
<menuitem value="1" label="&hfTitle;"/>
<menuitem value="2" label="&hfURL;"/>
<menuitem value="3" label="&hfDateAndTime;"/>
<menuitem value="4" label="&hfPage;"/>
<menuitem value="5" label="&hfPageAndTotal;"/>
<menuitem value="6" label="&hfCustom;"/>
</menupopup>
</menulist>
<vbox align="center">
<label value="&hfCenter.label;"/>
</vbox>
<menulist id="fCenterOption" oncommand="customize(this)" tabindex="3">
<menupopup>
<menuitem value="0" label="&hfBlank;"/>
<menuitem value="1" label="&hfTitle;"/>
<menuitem value="2" label="&hfURL;"/>
<menuitem value="3" label="&hfDateAndTime;"/>
<menuitem value="4" label="&hfPage;"/>
<menuitem value="5" label="&hfPageAndTotal;"/>
<menuitem value="6" label="&hfCustom;"/>
</menupopup>
</menulist>
</vbox>
<vbox>
<menulist id="hRightOption" oncommand="customize(this)" tabindex="2">
<menupopup>
<menuitem value="0" label="&hfBlank;"/>
<menuitem value="1" label="&hfTitle;"/>
<menuitem value="2" label="&hfURL;"/>
<menuitem value="3" label="&hfDateAndTime;"/>
<menuitem value="4" label="&hfPage;"/>
<menuitem value="5" label="&hfPageAndTotal;"/>
<menuitem value="6" label="&hfCustom;"/>
</menupopup>
</menulist>
<vbox align="center">
<label value="&hfRight.label;"/>
</vbox>
<menulist id="fRightOption" oncommand="customize(this)" tabindex="3">
<menupopup>
<menuitem value="0" label="&hfBlank;"/>
<menuitem value="1" label="&hfTitle;"/>
<menuitem value="2" label="&hfURL;"/>
<menuitem value="3" label="&hfDateAndTime;"/>
<menuitem value="4" label="&hfPage;"/>
<menuitem value="5" label="&hfPageAndTotal;"/>
<menuitem value="6" label="&hfCustom;"/>
</menupopup>
</menulist>
</vbox>
</hbox>
</groupbox>
</tabpanel>
</tabpanels>
</tabbox>
</dialog>

Просмотреть файл

@ -257,7 +257,7 @@ function createPaperArray()
//---------------------------------------------------
function createPaperSizeList(selectedInx)
{
gStringBundle = srGetStrBundle("chrome://communicator/locale/printPageSetup.properties");
gStringBundle = srGetStrBundle("chrome://global/locale/printPageSetup.properties");
var selectElement = new paperListElement(dialog.paperList);
selectElement.clearPaperList();
@ -368,7 +368,7 @@ function createPlexArray()
//---------------------------------------------------
function createPlexNameList(selectedInx)
{
gStringBundle = srGetStrBundle("chrome://communicator/locale/printPageSetup.properties");
gStringBundle = srGetStrBundle("chrome://global/locale/printPageSetup.properties");
var selectElement = new plexListElement(dialog.plexList);
selectElement.clearPlexList();

Просмотреть файл

@ -44,7 +44,7 @@
#ifdef XP_UNIX
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<!DOCTYPE dialog SYSTEM "chrome://global-platform/locale/printjoboptions.dtd">
<!DOCTYPE dialog SYSTEM "chrome://global/locale/printjoboptions.dtd">
<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="onLoad();"

Просмотреть файл

@ -3,6 +3,8 @@ toolkit.jar:
*+ content/global/printdialog.xul (content/printdialog.xul)
*+ content/global/printjoboptions.js (content/printjoboptions.js)
*+ content/global/printjoboptions.xul (content/printjoboptions.xul)
*+ content/global/printPageSetup.js (content/printPageSetup.js)
*+ content/global/printPageSetup.xul (content/printPageSetup.xul)
*+ content/global/printPreviewProgress.js (content/printPreviewProgress.js)
*+ content/global/printPreviewProgress.xul (content/printPreviewProgress.xul)
*+ content/global/printProgress.js (content/printProgress.js)
@ -10,9 +12,14 @@ toolkit.jar:
en-US.jar:
+ locale/en-US/global/printdialog.dtd (locale/printdialog.dtd)
+ locale/en-US/global/printjoboptions.dtd (locale/printjoboptions.dtd)
+ locale/en-US/global/printPageSetup.dtd (locale/printPageSetup.dtd)
+ locale/en-US/global/printPageSetup.properties (locale/printPageSetup.properties)
+ locale/en-US/global/printPreviewProgress.dtd (locale/printPreviewProgress.dtd)
+ locale/en-US/global/printProgress.dtd (locale/printProgress.dtd)
en-unix.jar:
+ locale/en-US/global-platform/printjoboptions.dtd (locale/printjoboptions.dtd)
classic.jar:
+ skin/classic/global/Landscape.png (skin/Landscape.png)
+ skin/classic/global/Landscape-small.png (skin/Landscape-small.png)
+ skin/classic/global/Portrait.png (skin/Portrait.png)
+ skin/classic/global/Portrait-small.png (skin/Portrait-small.png)

Просмотреть файл

@ -0,0 +1,52 @@
<!-- extracted from printjoboptions.xul -->
<!ENTITY printSetup.title "Page Setup">
<!ENTITY basic.tab "Format &amp; Options">
<!ENTITY formatGroup.label "Format">
<!ENTITY orientation.label "Orientation:">
<!ENTITY portrait "Portrait">
<!ENTITY landscape "Landscape">
<!ENTITY scale.label "Scale:">
<!ENTITY scalePercent "&#037;">
<!ENTITY shrinkToFit.label "Shrink To Fit Page Width">
<!ENTITY optionsGroup.label "Options">
<!ENTITY printBG.label "Print Background (colors &amp; images)">
<!ENTITY advanced.tab "Margins &amp; Header/Footer">
<!ENTITY marginGroup.label "Margins (#1)">
<!ENTITY marginUnits.inches "inches">
<!ENTITY marginUnits.metric "millimeters">
<!ENTITY marginTop.label "Top:">
<!ENTITY marginBottom.label "Bottom:">
<!ENTITY marginLeft.label "Left:">
<!ENTITY marginRight.label "Right:">
<!ENTITY headerFooter.label "Headers &amp; Footers">
<!ENTITY hfLeft.label "Left:">
<!ENTITY hfCenter.label "Center:">
<!ENTITY hfRight.label "Right:">
<!ENTITY hfTitle "Title">
<!ENTITY hfTitle.code "[&amp;T]">
<!ENTITY hfURL "URL">
<!ENTITY hfURL.code "[&amp;U]">
<!ENTITY hfDateAndTime "Date/Time">
<!ENTITY hfDateAndTime.code "&amp;D">
<!ENTITY hfPage "Page #">
<!ENTITY hfPage.code "[&amp;P]">
<!ENTITY hfPageAndTotal "Page # of #">
<!ENTITY hfPageAndTotal.code "[&amp;PT]">
<!ENTITY hfBlank "--blank--">
<!ENTITY hfCustom "Custom...">
<!ENTITY customPrompt.title "Custom...">
<!ENTITY customPrompt.prompt "Enter your custom header/footer text">

Просмотреть файл

@ -0,0 +1,31 @@
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
letterSize=Letter (8 1/2 x 11 in.)
legalSize=Legal (8 1/2 x 14 in.)
exectiveSize=Executive (7 1/2 x 10 in.)
a5Size=DIN A5 (148 x 210 mm)
a4Size=DIN A4 (210 x 297 mm)
a3Size=DIN A3 (297 x 420 mm)
a2Size=DIN A2 (420 x 594 mm)
a1Size=DIN A1 (594 x 841 mm)
a0Size=DIN A0 (841 x 1189 mm)
# EOF.

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 358 B

После

Ширина:  |  Высота:  |  Размер: 358 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.0 KiB

После

Ширина:  |  Высота:  |  Размер: 2.0 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 390 B

После

Ширина:  |  Высота:  |  Размер: 390 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.1 KiB

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Просмотреть файл

@ -0,0 +1,86 @@
# ***** 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 the Mozilla Print Preview Toolbar.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corp.
# Portions created by the Initial Developer are Copyright (C) 2002
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Samir Gehani <sgehani@netscape.com>
# Bill Law <law@netscape.com>
#
# 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 ***** */
/* ..... page navigation ..... */
.home-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-lft-sharp-end.gif");
}
.end-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-rit-sharp-end.gif");
}
.last-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-lft-sharp.gif");
}
.next-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-rit-sharp.gif");
}
/* ...... scale in/decrement ..... */
.up-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-up-sharp.gif");
}
.down-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-dn-sharp.gif");
}
/* ..... orientation ..... */
.toolbar-portrait-page {
list-style-image: url("chrome://global/skin/Portrait-small.png");
}
.toolbar-landscape-page {
list-style-image: url("chrome://global/skin/Landscape-small.png");
}
/* ::::: page setup dialog ::::: */
.portrait-page {
list-style-image: url("chrome://global/skin/Portrait.png");
}
.landscape-page {
list-style-image: url("chrome://global/skin/Landscape.png");
}

Просмотреть файл

@ -1,88 +0,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 the Mozilla Print Preview Toolbar.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corp.
* Portions created by the Initial Developer are Copyright (C) 2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Samir Gehani <sgehani@netscape.com>
* Bill Law <law@netscape.com>
*
* 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 ***** */
/* ::::: print preview toolbar ::::: */
/* ..... page navigation ..... */
.home-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-lft-sharp-end.gif");
}
.end-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-rit-sharp-end.gif");
}
.last-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-lft-sharp.gif");
}
.next-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-rit-sharp.gif");
}
/* ...... scale in/decrement ..... */
.up-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-up-sharp.gif");
}
.down-arrow {
list-style-image: url("chrome://global/skin/arrow/arrow-dn-sharp.gif");
}
/* ..... orientation ..... */
.toolbar-portrait-page {
list-style-image: url("chrome://global/skin/icons/Portrait-small.png");
}
.toolbar-landscape-page {
list-style-image: url("chrome://global/skin/icons/Landscape-small.png");
}
/* ::::: page setup dialog ::::: */
.portrait-page {
list-style-image: url("chrome://global/skin/icons/Portrait.png");
}
.landscape-page {
list-style-image: url("chrome://global/skin/icons/Landscape.png");
}