Index: chrome/browser/resources/print_preview/margin_settings.js |
diff --git a/chrome/browser/resources/print_preview/margin_settings.js b/chrome/browser/resources/print_preview/margin_settings.js |
deleted file mode 100644 |
index 0ffca9f9e8858b05123d023c422d4ed555481e94..0000000000000000000000000000000000000000 |
--- a/chrome/browser/resources/print_preview/margin_settings.js |
+++ /dev/null |
@@ -1,705 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-cr.define('print_preview', function() { |
- 'use strict'; |
- |
- /** |
- * Creates a Margins object that holds four margin values. The units in which |
- * the values are expressed can be any numeric value. |
- * @constructor |
- * @param {number} left The left margin. |
- * @param {number} top The top margin. |
- * @param {number} right The right margin. |
- * @param {number} bottom The bottom margin. |
- */ |
- function Margins(left, top, right, bottom) { |
- this[MarginSettings.LEFT_GROUP] = left; |
- this[MarginSettings.TOP_GROUP] = top; |
- this[MarginSettings.RIGHT_GROUP] = right; |
- this[MarginSettings.BOTTOM_GROUP] = bottom; |
- } |
- |
- /** |
- * Rounds |value| keeping |precision| decimal numbers. Example: 32.76643 |
- * becomes 32.77. |
- * @param {number} value The number to round. |
- * @param {number} precision The desired precision. |
- * @return {number} The rounded number. |
- */ |
- Margins.roundToPrecision = function(value, precision) { |
- return Math.round(value * Math.pow(10, precision)) / |
- Math.pow(10, precision); |
- }; |
- |
- Margins.prototype = { |
- /** |
- * Checks if |rhs| is equal to |this|. |
- * @param {Margins} rhs The Margins object to compare against. |
- * @return {boolean} true if they are equal. |
- */ |
- isEqual: function(rhs) { |
- if (!rhs) |
- return false; |
- return this[MarginSettings.TOP_GROUP] === rhs[MarginSettings.TOP_GROUP] && |
- this[MarginSettings.LEFT_GROUP] === rhs[MarginSettings.LEFT_GROUP] && |
- this[MarginSettings.RIGHT_GROUP] === |
- rhs[MarginSettings.RIGHT_GROUP] && |
- this[MarginSettings.BOTTOM_GROUP] === |
- rhs[MarginSettings.BOTTOM_GROUP]; |
- }, |
- |
- clone: function() { |
- return new Margins(this[MarginSettings.LEFT_GROUP], |
- this[MarginSettings.TOP_GROUP], |
- this[MarginSettings.RIGHT_GROUP], |
- this[MarginSettings.BOTTOM_GROUP]); |
- }, |
- |
- /** |
- * Helper method returning an array of the string indices used for accessing |
- * all margins. |
- * @return {array} An array of string indices. |
- * @private |
- */ |
- indicesAsArray_: function() { |
- return [MarginSettings.LEFT_GROUP, MarginSettings.TOP_GROUP, |
- MarginSettings.RIGHT_GROUP, MarginSettings.BOTTOM_GROUP]; |
- }, |
- |
- /** |
- * Rounds |this| based on the precision used when displaying the margins in |
- * the user's prefered units. This is done by converting from points to |
- * those units (mm/inches) and back to points. |
- */ |
- roundToLocaleUnits: function() { |
- var indicesAsArray = this.indicesAsArray_(); |
- for (var i = 0; i < indicesAsArray.length; i++) { |
- this[indicesAsArray[i]] = |
- print_preview.convertPointsToLocaleUnitsAndBack( |
- this[indicesAsArray[i]]); |
- } |
- } |
- }; |
- |
- /** |
- * @constructor |
- * Class describing the layout of the page. |
- */ |
- function PageLayout(width, height, left, top, right, bottom) { |
- this.contentWidth_ = width; |
- this.contentHeight_ = height; |
- this.margins_ = new Margins(left, top, right, bottom); |
- this.margins_.roundToLocaleUnits(); |
- } |
- |
- PageLayout.prototype = { |
- /** |
- * @type {number} The width of the page. |
- */ |
- get pageWidth() { |
- return this.margins_.left + this.margins_.right + this.contentWidth_; |
- }, |
- |
- /** |
- * @type {number} The height of the page. |
- */ |
- get pageHeight() { |
- return this.margins_.top + this.margins_.bottom + this.contentHeight_; |
- } |
- }; |
- |
- /** |
- * Creates a MarginSettings object. This object encapsulates all settings and |
- * logic related to the margins mode. |
- * @constructor |
- */ |
- function MarginSettings() { |
- this.marginsOption_ = $('margins-option'); |
- this.marginList_ = $('margin-list'); |
- this.marginsUI_ = null; |
- |
- // Holds the custom margin values in points (if set). |
- this.customMargins_ = null; |
- // Holds the previous custom margin values in points. |
- this.previousCustomMargins_ = null; |
- // Holds the width of the page in points. |
- this.pageWidth_ = -1; |
- // Holds the height of the page in points. |
- this.pageHeight_ = -1; |
- // @type {boolean} True if the margins UI should be diplayed when the next |
- // |customEvents.PDF_LOADED| event occurs. |
- this.forceMarginsUIOnPDFLoad_ = false; |
- // Holds the currently updated default page layout values. |
- this.currentDefaultPageLayout = null; |
- |
- // True if the margins UI should be shown regardless of mouse position. |
- this.forceDisplayingMarginLines_ = true; |
- |
- // @type {EventTracker} Used to keep track of certain event listeners. |
- this.eventTracker_ = new EventTracker(); |
- |
- this.addEventListeners_(); |
- } |
- |
- // Number of points per inch. |
- MarginSettings.POINTS_PER_INCH = 72; |
- // Minimum allowed distance in points between top-bottom, left-right margins. |
- MarginSettings.MINIMUM_MARGINS_DISTANCE = 36; |
- // Margin list values. Matches enum MarginType in |
- // printing/print_job_constants.h. |
- MarginSettings.MARGINS_VALUE_DEFAULT = 0; |
- MarginSettings.MARGINS_VALUE_NO_MARGINS = 1; |
- MarginSettings.MARGINS_VALUE_MINIMUM = 2; |
- MarginSettings.MARGINS_VALUE_CUSTOM = 3; |
- // Default Margins option index. |
- MarginSettings.OPTION_INDEX_DEFAULT = 0; |
- // Group name corresponding to the top margin. |
- MarginSettings.TOP_GROUP = 'top'; |
- // Group name corresponding to the left margin. |
- MarginSettings.LEFT_GROUP = 'left'; |
- // Group name corresponding to the right margin. |
- MarginSettings.RIGHT_GROUP = 'right'; |
- // Group name corresponding to the bottom margin. |
- MarginSettings.BOTTOM_GROUP = 'bottom'; |
- |
- /** |
- * Extracts the number formatting and measurement system for the current |
- * locale. |
- * @param {string} numberFormat Is the formatted version of a sample number |
- * sent from the backend. |
- * @param {number} measurementSystem 0 for SI (aka metric system), 1 for the |
- * system used in the US. Note: Mathces UMeasurementSystem enum in |
- * third_party/icu/public/i18n/unicode/ulocdata.h. |
- */ |
- MarginSettings.setNumberFormatAndMeasurementSystem = function( |
- numberFormat, measurementSystem) { |
- var symbols = parseNumberFormat(numberFormat); |
- MarginSettings.thousandsPoint = symbols[0]; |
- MarginSettings.decimalPoint = symbols[1]; |
- MarginSettings.useMetricSystem = measurementSystem == 0; |
- }; |
- |
- cr.addSingletonGetter(MarginSettings); |
- |
- MarginSettings.prototype = { |
- /** |
- * Returns a dictionary containing the four custom margin values. |
- * @return {{marginLeft: number, marginTop: number, marginRight: number, |
- * marginBottom: number}} The dictionary. |
- */ |
- get customMargins() { |
- var margins = {}; |
- margins.marginLeft = this.customMargins_.left; |
- margins.marginTop = this.customMargins_.top; |
- margins.marginRight = this.customMargins_.right; |
- margins.marginBottom = this.customMargins_.bottom; |
- return margins; |
- }, |
- |
- /** |
- * Sets |this.customMargins_| according to |margins|. |
- * @param {{marginLeft: number, marginTop: number, marginRight: number, |
- * marginBottom: number}} margins An object holding the four margin |
- * values. |
- */ |
- set customMargins(margins) { |
- this.customMargins_.left = margins.marginLeft; |
- this.customMargins_.top = margins.marginTop; |
- this.customMargins_.right = margins.marginRight; |
- this.customMargins_.bottom = margins.marginBottom; |
- }, |
- |
- /** |
- * @return {number} The value of the selected margin option. |
- */ |
- get selectedMarginsValue() { |
- var val = this.marginList_.options[this.marginList_.selectedIndex].value; |
- return parseInt(val, 10); |
- }, |
- |
- /** |
- * Sets the current margin selection to |lastUsedMarginType|. |
- * @param {number} lastUsedMarginType An integer value identifying a margin |
- * type according to MarginType enum in printing/print_job_constants.h. |
- * @param {Object} lastUsedCustomMargins The last used custom margins. If |
- * custom margins have not been used before |
- * |margin{Top|Bottom|Left|Right}| attributes are missing. |
- */ |
- setLastUsedMargins: function(lastUsedMarginsSettings) { |
- var lastUsedMarginsType = lastUsedMarginsSettings['marginsType']; |
- this.forceMarginsUIOnPDFLoad_ = |
- lastUsedMarginsType == MarginSettings.MARGINS_VALUE_CUSTOM; |
- this.marginList_.selectedIndex = |
- this.getMarginOptionIndexByValue_(lastUsedMarginsType); |
- if (lastUsedMarginsSettings.hasOwnProperty('marginTop') && |
- lastUsedMarginsSettings.hasOwnProperty('marginBottom') && |
- lastUsedMarginsSettings.hasOwnProperty('marginRight') && |
- lastUsedMarginsSettings.hasOwnProperty('marginLeft')) { |
- this.customMargins_ = new Margins(-1, -1, -1 , -1); |
- this.customMargins = lastUsedMarginsSettings; |
- } |
- }, |
- |
- /** |
- * @return {number} The total width of the plugin in points. |
- */ |
- get totalWidthInPoints() { |
- var pageInformation = previewArea.pageLocationNormalized; |
- return this.pageWidth_ / pageInformation.width; |
- }, |
- |
- /** |
- * @return {number} The total height of the plugin in points. |
- */ |
- get totalHeightInPoints() { |
- var pageInformation = previewArea.pageLocationNormalized; |
- return this.pageHeight_ / pageInformation.height; |
- }, |
- |
- /** |
- * Maps margin type values to indices within |this.marginList_|. |
- * @param {number} marginTypeValue An integer value identifying a margin |
- * type according to MarginType enum in printing/print_job_constants.h. |
- * @return {number} The index within |this.marginList_| that corrsponds to |
- * |marginTypeValue|. |
- * @private |
- */ |
- getMarginOptionIndexByValue_: function(marginTypeValue) { |
- var options = this.marginList_.options; |
- for (var i = 0; i < options.length; i++) { |
- if (options[i].getAttribute('value') == marginTypeValue) |
- return i; |
- } |
- return MarginSettings.OPTION_INDEX_DEFAULT; |
- }, |
- |
- /** |
- * @return {boolean} True if default margins are selected. |
- */ |
- isDefaultMarginsSelected: function() { |
- return this.selectedMarginsValue == MarginSettings.MARGINS_VALUE_DEFAULT; |
- }, |
- |
- /** |
- * @return {boolean} True if no margins are selected. |
- */ |
- isNoMarginsSelected: function() { |
- return this.selectedMarginsValue == |
- MarginSettings.MARGINS_VALUE_NO_MARGINS; |
- }, |
- |
- /** |
- * @return {boolean} True if custom margins are selected. |
- */ |
- isCustomMarginsSelected: function() { |
- return this.selectedMarginsValue == MarginSettings.MARGINS_VALUE_CUSTOM; |
- }, |
- |
- /** |
- * @return {boolean} True if minimum margins are selected. |
- */ |
- isMinimumMarginsSelected: function() { |
- return this.selectedMarginsValue == MarginSettings.MARGINS_VALUE_MINIMUM; |
- }, |
- |
- /** |
- * If the custom margin values have changed then request a new preview based |
- * on the newly set margins. |
- * @private |
- */ |
- requestPreviewIfNeeded_: function() { |
- if (!this.areMarginSettingsValid()) |
- return; |
- |
- if (this.customMargins_.isEqual(this.previousCustomMargins_)) |
- return; |
- |
- this.previousCustomMargins_ = this.customMargins_.clone(); |
- setDefaultValuesAndRegeneratePreview(false); |
- }, |
- |
- /** |
- * Listener executed when the mouse is over the sidebar. If the custom |
- * margin lines are displayed, then, it fades them out. |
- * @private |
- */ |
- onSidebarMouseOver_: function(e) { |
- $('mainview').onmouseover = this.onMainviewMouseOver_.bind(this); |
- $('navbar-container').onmouseover = null; |
- if (!this.forceDisplayingMarginLines_) |
- this.marginsUI.hide(false); |
- }, |
- |
- /** |
- * Listener executed when the mouse is over the main view. If the custom |
- * margin lines are hidden, then, it fades them in. |
- * @private |
- */ |
- onMainviewMouseOver_: function() { |
- $('mainview').onmouseover = null; |
- $('navbar-container').onmouseover = this.onSidebarMouseOver_.bind(this); |
- this.forceDisplayingMarginLines_ = false; |
- this.marginsUI.show(); |
- }, |
- |
- /** |
- * Adds listeners to all margin related controls. |
- * @private |
- */ |
- addEventListeners_: function() { |
- this.marginList_.onchange = this.onMarginsChanged_.bind(this); |
- document.addEventListener(customEvents.PDF_LOADED, |
- this.onPDFLoaded_.bind(this)); |
- document.addEventListener(customEvents.PDF_GENERATION_ERROR, |
- this.onPDFGenerationError_.bind(this)); |
- }, |
- |
- /** |
- * Executes when a |customEvents.PDF_GENERATION_ERROR| event occurs. |
- * @private |
- */ |
- onPDFGenerationError_: function() { |
- if (this.isCustomMarginsSelected()) { |
- this.removeCustomMarginEventListeners_(); |
- this.marginsUI.hide(true); |
- } |
- }, |
- |
- /** |
- * Executes whenever a |customEvents.MARGIN_LINE_DRAG| occurs. |
- * @param {cr.Event} e The event that triggered this listener. |
- */ |
- onMarginsLineDrag_: function(e) { |
- var dragDeltaInPoints = this.convertDragDeltaToPoints_(e.dragDelta); |
- this.marginsUI.lastClickedMarginsUIPair.updateWhileDragging( |
- dragDeltaInPoints, e.destinationPoint); |
- }, |
- |
- /** |
- * @param {number} dragDelta The difference in pixels between the original |
- * and current postion of the last clicked margin line. |
- * @return {number} The difference in points. |
- * @private |
- */ |
- convertDragDeltaToPoints_: function(dragDelta) { |
- if (this.marginsUI.lastClickedMarginsUIPair.isTop_() || |
- this.marginsUI.lastClickedMarginsUIPair.isBottom_()) { |
- return dragDelta * this.totalHeightInPoints; |
- } else { |
- return dragDelta * this.totalWidthInPoints; |
- } |
- }, |
- |
- /** |
- * @return {boolean} True if the margin settings are valid. |
- */ |
- areMarginSettingsValid: function() { |
- if (!this.isCustomMarginsSelected() || !this.marginsUI_) |
- return true; |
- |
- var pairs = this.marginsUI.pairsAsList; |
- return pairs.every(function(pair) { return pair.box_.isValid; }); |
- }, |
- |
- /** |
- * Calculates the maximum allowable value of the selected margin text for |
- * every margin. |
- * @return {array} The maximum allowable value in points in order top, left, |
- * right, bottom. |
- * @private |
- */ |
- getMarginValueLimits_: function() { |
- var marginValueLimits = []; |
- marginValueLimits[0] = this.pageHeight_ - this.customMargins_.bottom - |
- MarginSettings.MINIMUM_MARGINS_DISTANCE; |
- marginValueLimits[1] = this.pageWidth_ - this.customMargins_.right - |
- MarginSettings.MINIMUM_MARGINS_DISTANCE; |
- marginValueLimits[2] = this.pageWidth_ - this.customMargins_.left - |
- MarginSettings.MINIMUM_MARGINS_DISTANCE; |
- marginValueLimits[3] = this.pageHeight_ - this.customMargins_.top - |
- MarginSettings.MINIMUM_MARGINS_DISTANCE; |
- |
- for (var i = 0; i < marginValueLimits.length; i++) { |
- marginValueLimits[i] = Math.max(marginValueLimits[i], 0); |
- marginValueLimits[i] = print_preview.convertPointsToLocaleUnitsAndBack( |
- marginValueLimits[i]); |
- } |
- return marginValueLimits; |
- }, |
- |
- /** |
- * @return {array} The margin value limits positions normalized to the total |
- * width and height of the plugin and with respect to the top left |
- * corner of the plugin. |
- */ |
- getMarginValueLimitsInPercent_: function() { |
- var pageInformation = previewArea.pageLocationNormalized; |
- var totalWidthInPoints = this.pageWidth_ / pageInformation.width; |
- var totalHeightInPoints = this.pageHeight_ / pageInformation.height; |
- var marginValueLimits = this.getMarginValueLimits_(); |
- var marginValueLimitsInPercent = []; |
- marginValueLimitsInPercent[0] = pageInformation.y + marginValueLimits[0] / |
- totalHeightInPoints; |
- marginValueLimitsInPercent[1] = pageInformation.x + marginValueLimits[1] / |
- totalWidthInPoints; |
- marginValueLimitsInPercent[2] = pageInformation.x + |
- pageInformation.width - marginValueLimits[2] / totalWidthInPoints; |
- marginValueLimitsInPercent[3] = pageInformation.y + |
- pageInformation.height - marginValueLimits[3] / totalHeightInPoints; |
- return marginValueLimitsInPercent; |
- }, |
- |
- /** |
- * When the user stops typing in the margin text box a new print preview is |
- * requested, only if |
- * 1) The input is compeletely valid (it can be parsed in its entirety). |
- * 2) The newly selected margins differ from the previously selected. |
- * @param {cr.Event} event The change event holding information about what |
- * changed. |
- * @private |
- */ |
- onMarginTextValueMayHaveChanged_: function(event) { |
- var marginBox = event.target; |
- var marginBoxValue = |
- print_preview.convertLocaleUnitsToPoints(marginBox.margin); |
- this.customMargins_[marginBox.marginGroup] = marginBoxValue; |
- this.requestPreviewIfNeeded_(); |
- }, |
- |
- /** |
- * @type {print_preview.MarginsUI} The object holding the UI for specifying |
- * custom margins. |
- */ |
- get marginsUI() { |
- if (!this.marginsUI_) { |
- this.marginsUI_ = new print_preview.MarginsUI(); |
- $('mainview').appendChild(this.marginsUI_); |
- this.marginsUI_.addObserver( |
- this.onMarginTextValueMayHaveChanged_.bind(this)); |
- } |
- return this.marginsUI_; |
- }, |
- |
- /** |
- * Adds listeners when the custom margins option is selected. |
- * @private |
- */ |
- addCustomMarginEventListeners_: function() { |
- $('mainview').onmouseover = this.onMainviewMouseOver_.bind(this); |
- $('navbar-container').onmouseover = this.onSidebarMouseOver_.bind(this); |
- this.eventTracker_.add(this.marginsUI, |
- customEvents.MARGIN_LINE_DRAG, |
- this.onMarginsLineDrag_.bind(this), |
- false); |
- this.eventTracker_.add(document, customEvents.MARGIN_TEXTBOX_FOCUSED, |
- this.onMarginTextboxFocused_.bind(this), false); |
- }, |
- |
- /** |
- * Removes the event listeners associated with the custom margins option. |
- * @private |
- */ |
- removeCustomMarginEventListeners_: function() { |
- if (!this.marginsUI_) |
- return; |
- $('mainview').onmouseover = null; |
- $('navbar-container').onmouseover = null; |
- this.eventTracker_.remove(this.marginsUI, customEvents.MARGIN_LINE_DRAG); |
- this.eventTracker_.remove(document, customEvents.MARGIN_TEXTBOX_FOCUSED); |
- this.marginsUI.hide(true); |
- }, |
- |
- /** |
- * Updates |this.marginsUI| depending on the specified margins and the |
- * position of the page within the plugin. |
- * @private |
- */ |
- drawCustomMarginsUI_: function() { |
- // TODO(dpapad): find out why passing |!this.areMarginsSettingsValid()| |
- // directly produces the opposite value even though |
- // |this.getMarginsRectangleInPercent_()| and |
- // |this.getMarginValueLimits_()| have no side effects. |
- previewArea.update(); |
- var keepDisplayedValue = !this.areMarginSettingsValid(); |
- this.marginsUI.update(this.getMarginsRectangleInPercent_(), |
- this.customMargins_, |
- this.getMarginValueLimits_(), |
- keepDisplayedValue, |
- this.getMarginValueLimitsInPercent_()); |
- this.marginsUI.draw(); |
- }, |
- |
- /** |
- * Called when there is change in the preview position or size. |
- */ |
- onPreviewPositionChanged: function() { |
- if (!previewArea.pdfPlugin) |
- return; |
- if (this.isCustomMarginsSelected() && previewArea.pdfLoaded && |
- pageSettings.totalPageCount != undefined) { |
- this.updatePageData_(); |
- this.drawCustomMarginsUI_(); |
- } |
- }, |
- |
- /** |
- * Executes when a margin textbox is focused. Used for improved |
- * accessibility. |
- * @private |
- */ |
- onMarginTextboxFocused_: function() { |
- this.forceDisplayingMarginLines_ = true; |
- this.marginsUI.show(); |
- }, |
- |
- /** |
- * Executes when user selects a different margin option, ie, |
- * |this.marginList_.selectedIndex| is changed. |
- * @private |
- */ |
- onMarginsChanged_: function() { |
- if (this.isDefaultMarginsSelected() || this.isMinimumMarginsSelected() || |
- this.isNoMarginsSelected()) |
- this.onDefaultMinimumNoMarginsSelected_(); |
- else if (this.isCustomMarginsSelected()) |
- this.onCustomMarginsSelected_(); |
- }, |
- |
- /** |
- * Executes when the default or minimum or no margins option is selected. |
- * @private |
- */ |
- onDefaultMinimumNoMarginsSelected_: function() { |
- this.removeCustomMarginEventListeners_(); |
- this.forceDisplayingMarginLines_ = true; |
- this.previousCustomMargins_ = null; |
- setDefaultValuesAndRegeneratePreview(false); |
- }, |
- |
- /** |
- * Executes when the custom margins option is selected. |
- * @private |
- */ |
- onCustomMarginsSelected_: function() { |
- if (!previewArea.pdfPlugin) { |
- this.forceMarginsUIOnPDFLoad_ = true; |
- return; |
- } |
- var customMarginsNotSpecified = !this.customMargins_; |
- this.updatePageData_(); |
- |
- if (customMarginsNotSpecified) { |
- this.previousCustomMargins_ = this.customMargins_.clone(); |
- this.drawCustomMarginsUI_(); |
- this.addCustomMarginEventListeners_(); |
- this.marginsUI.show(); |
- } else { |
- this.forceMarginsUIOnPDFLoad_ = true; |
- this.requestPreviewIfNeeded_(); |
- } |
- }, |
- |
- /** |
- * Calculates the coordinates of the four margin lines. These are the |
- * coordinates where the margin lines should be displayed. The coordinates |
- * are expressed in terms of percentages with respect to the total width |
- * and height of the plugin. |
- * @return {print_preview.Rect} A rectnangle that describes the position of |
- * the four margin lines. |
- * @private |
- */ |
- getMarginsRectangleInPercent_: function() { |
- var pageLocation = previewArea.pageLocationNormalized; |
- var marginsInPercent = this.getMarginsInPercent_(); |
- var leftX = pageLocation.x + marginsInPercent.left; |
- var topY = pageLocation.y + marginsInPercent.top; |
- var contentWidth = pageLocation.width - (marginsInPercent.left + |
- marginsInPercent.right); |
- var contentHeight = pageLocation.height - (marginsInPercent.top + |
- marginsInPercent.bottom); |
- return new print_preview.Rect( |
- leftX, topY, contentWidth, contentHeight); |
- }, |
- |
- /** |
- * @return {print_preview.Margins} The currently selected margin values |
- * normalized to the total width and height of the plugin. |
- * @private |
- */ |
- getMarginsInPercent_: function() { |
- return this.convertMarginsInPointsToPercent(this.customMargins_); |
- }, |
- |
- /** |
- * Converts |marginsToConvert| to points and normalizes it to the height and |
- * width of the plugin. |
- * @return {print_preview.Margins} The margins in percent. |
- * @private |
- */ |
- convertMarginsInPointsToPercent: function(marginsToConvert) { |
- var pageInformation = previewArea.pageLocationNormalized; |
- var totalWidthInPoints = this.pageWidth_ / pageInformation.width; |
- var totalHeightInPoints = this.pageHeight_ / pageInformation.height; |
- var marginsInPercent = new Margins( |
- marginsToConvert.left / totalWidthInPoints, |
- marginsToConvert.top / totalHeightInPoints, |
- marginsToConvert.right / totalWidthInPoints, |
- marginsToConvert.bottom / totalHeightInPoints); |
- return marginsInPercent; |
- }, |
- |
- /** |
- * If custom margins is the currently selected option then change to the |
- * default margins option. |
- * @private |
- */ |
- resetMarginsIfNeeded: function() { |
- if (this.isCustomMarginsSelected()) { |
- this.marginList_.options[ |
- MarginSettings.OPTION_INDEX_DEFAULT].selected = true; |
- this.removeCustomMarginEventListeners_(); |
- this.forceDisplayingMarginLines_ = true; |
- this.customMargins_ = null; |
- this.previousCustomMargins_ = null; |
- } |
- }, |
- |
- /** |
- * Executes when a |customEvents.PDF_LOADED| event occurs. |
- * @private |
- */ |
- onPDFLoaded_: function() { |
- if (!previewModifiable) { |
- fadeOutOption(this.marginsOption_); |
- return; |
- } |
- |
- if (this.forceMarginsUIOnPDFLoad_) { |
- this.updatePageData_(); |
- this.drawCustomMarginsUI_(); |
- this.addCustomMarginEventListeners_(); |
- this.marginsUI.show(); |
- this.forceMarginsUIOnPDFLoad_ = false; |
- } |
- }, |
- |
- /** |
- * Updates |this.customMargins_|, |this.pageWidth_|, |this.pageHeight_|. |
- * @private |
- */ |
- updatePageData_: function() { |
- if (!this.customMargins_) |
- this.customMargins_ = this.currentDefaultPageLayout.margins_.clone(); |
- |
- this.pageWidth_ = this.currentDefaultPageLayout.pageWidth; |
- this.pageHeight_ = this.currentDefaultPageLayout.pageHeight; |
- } |
- }; |
- |
- return { |
- MarginSettings: MarginSettings, |
- PageLayout: PageLayout |
- }; |
-}); |