Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2005)

Unified Diff: chrome/browser/resources/print_preview/print_preview.js

Issue 7891016: Print Preview: Adding UI for margin settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing comments Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/print_preview/print_preview.js
diff --git a/chrome/browser/resources/print_preview/print_preview.js b/chrome/browser/resources/print_preview/print_preview.js
index 3d4be808bf5eb5eaf0a99f29f282710a141bd2d0..8f302f99ac4f81ac05fd0259e6b315b502dbe0cb 100644
--- a/chrome/browser/resources/print_preview/print_preview.js
+++ b/chrome/browser/resources/print_preview/print_preview.js
@@ -71,6 +71,8 @@ var headerFooterSettings;
// Object holding all the color related settings.
var colorSettings;
+var previewArea;
Evan Stade 2011/10/05 03:05:23 docs
dpapad 2011/10/05 16:39:49 Done. Also updated the doc of the remaining object
+
// True if the user has click 'Advanced...' in order to open the system print
// dialog.
var showingSystemDialog = false;
@@ -125,6 +127,7 @@ function onLoad() {
marginSettings = print_preview.MarginSettings.getInstance();
headerFooterSettings = print_preview.HeaderFooterSettings.getInstance();
colorSettings = print_preview.ColorSettings.getInstance();
+ previewArea = print_preview.PreviewArea.getInstance();
printHeader.addEventListeners();
pageSettings.addEventListeners();
copiesSettings.addEventListeners();
@@ -132,6 +135,7 @@ function onLoad() {
layoutSettings.addEventListeners();
marginSettings.addEventListeners();
colorSettings.addEventListeners();
+ previewArea.addEventListeners();
$('printer-list').onchange = updateControlsWithSelectedPrinterCapabilities;
showLoadingAnimation();
@@ -312,9 +316,9 @@ function finishedCloudPrinting() {
*/
function areSettingsValid() {
var selectedPrinter = getSelectedPrinterName();
- return pageSettings.isPageSelectionValid() &&
- (copiesSettings.isValid() ||
- selectedPrinter == PRINT_TO_PDF ||
+ return pageSettings.isPageSelectionValid()
+ && marginSettings.areMarginSettingsValid() &&
Evan Stade 2011/10/05 03:05:23 operator on end of line
dpapad 2011/10/05 16:39:49 Done.
+ (copiesSettings.isValid() || selectedPrinter == PRINT_TO_PDF ||
selectedPrinter == PRINT_WITH_CLOUD_PRINT);
}
@@ -496,6 +500,7 @@ function requestPrintPreview() {
printSettings.save();
layoutSettings.updateState();
+ previewArea.resetState();
isPrintReadyMetafileReady = false;
isFirstPageLoaded = false;
@@ -673,6 +678,7 @@ function addDestinationListOptionAtPosition(position,
printerList.add(option, before);
return option;
}
+
/**
* Sets the color mode for the PDF plugin.
* Called from PrintPreviewHandler::ProcessColorSetting().
@@ -754,7 +760,6 @@ function onPDFLoad() {
if (previewModifiable) {
setPluginPreviewPageCount();
}
- $('pdf-viewer').fitToHeight();
cr.dispatchSimpleEvent(document, 'PDFLoaded');
isFirstPageLoaded = true;
checkAndHideOverlayLayerIfValid();
@@ -786,8 +791,18 @@ function onDidGetPreviewPageCount(pageCount, isModifiable, previewResponseId) {
cr.dispatchSimpleEvent(document, 'updateSummary');
}
+/**
+ * @param {printing::PageSizeMargins} pageLayout The default layout of the page
+ * in points.
+ */
function onDidGetDefaultPageLayout(pageLayout) {
- // TODO(aayushkumar): Do something here!
+ marginSettings.currentDefaultPageLayout = new print_preview.PageLayout(
+ pageLayout.contentWidth,
+ pageLayout.contentHeight,
+ pageLayout.marginLeft,
+ pageLayout.marginTop,
+ pageLayout.marginRight,
+ pageLayout.marginBottom);
}
/**
@@ -963,21 +978,48 @@ function createPDFPlugin(srcDataIndex) {
pdfViewer.setAttribute('aria-atomic', 'true');
$('mainview').appendChild(pdfViewer);
pdfViewer.onload('onPDFLoad()');
+ pdfViewer.onScroll('onPreviewPositionChanged()');
+ pdfViewer.onPluginSizeChanged('onPreviewPositionChanged()');
pdfViewer.removePrintButton();
pdfViewer.grayscale(true);
}
/**
+ * Called either when there is a scroll event or when the plugin size changes.
+ */
+function onPreviewPositionChanged() {
+ marginSettings.onPreviewPositionChanged();
+}
+
+/**
* @return {boolean} true if a compatible pdf plugin exists.
*/
function checkCompatiblePluginExists() {
- var dummyPlugin = $('dummy-viewer')
- return !!(dummyPlugin.onload &&
- dummyPlugin.goToPage &&
- dummyPlugin.removePrintButton &&
- dummyPlugin.loadPreviewPage &&
- dummyPlugin.printPreviewPageCount &&
- dummyPlugin.resetPrintPreviewUrl);
+ var dummyPlugin = $('dummy-viewer');
+ var pluginInterface = [ dummyPlugin.onload,
+ dummyPlugin.goToPage,
+ dummyPlugin.removePrintButton,
+ dummyPlugin.loadPreviewPage,
+ dummyPlugin.printPreviewPageCount,
+ dummyPlugin.resetPrintPreviewUrl,
+ dummyPlugin.onPluginSizeChanged,
+ dummyPlugin.onScroll,
+ dummyPlugin.pageXOffset,
+ dummyPlugin.pageYOffset,
+ dummyPlugin.setZoomLevel,
+ dummyPlugin.setPageXOffset,
+ dummyPlugin.setPageYOffset,
+ dummyPlugin.getHorizontalScrollbarThickness,
+ dummyPlugin.getVerticalScrollbarThickness,
+ dummyPlugin.getPageLocationNormalized,
+ dummyPlugin.getHeight,
+ dummyPlugin.getWidth ];
+
+ for (var i = 0; i < pluginInterface.length; i++) {
+ if (!pluginInterface[i])
+ return false;
+ }
+ return true;
}
window.addEventListener('DOMContentLoaded', onLoad);
@@ -1035,3 +1077,8 @@ function setInitiatorTabTitle(initiatorTabTitle) {
<include src="layout_settings.js"/>
<include src="color_settings.js"/>
<include src="margin_settings.js"/>
+<include src="margin_textbox.js"/>
+<include src="margin_line.js"/>
+<include src="margin_utils.js"/>
+<include src="margins_ui.js"/>
+<include src="preview_area.js"/>

Powered by Google App Engine
This is Rietveld 408576698